├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── _config.yml ├── dist ├── bootstrap │ └── index.js ├── index.js └── instagram │ ├── index.js │ ├── instagram_home_phone.png │ ├── instagram_screenshot5_2x.jpg │ └── instagram_sprite_core_2x.png ├── example ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json ├── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ └── registerServiceWorker.js └── yarn.lock ├── media ├── a_theme_bootstrap.png └── a_theme_instagram.png ├── package-lock.json ├── package.json └── src ├── bootstrap └── index.js ├── index.js └── instagram ├── index.js ├── instagram_home_phone.png ├── instagram_screenshot5_2x.jpg └── instagram_sprite_core_2x.png /.gitignore: -------------------------------------------------------------------------------- 1 | **node_modules** 2 | **aws-exports.js** 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | **node_modules** 2 | **aws-exports.js** 3 | example/ 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Richard Zhang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A Theme React 2 | 3 | AWS Amplify UI is theme based. Developers are able to customize UI with theme. 4 | 5 | Here we build alternative themes for AWS Amplify. 6 | 7 | * [Install](#install) 8 | * [Apply](#apply) 9 | * [Themes](#themes) 10 | - [Bootstrap](#bootstrap) 11 | - [Instagram](#instagram) 12 | * [Example](#example) 13 | 14 | ## Install 15 | 16 | ``` 17 | npm install --save a-theme-react 18 | ``` 19 | 20 | ## Apply 21 | 22 | AWS Amplify UI is theme 23 | 24 | ``` 25 | import { Bootstrap } from 'a-theme-react'; 26 | 27 | 28 | ``` 29 | 30 | ## Themes 31 | 32 | ### Bootstrap 33 | 34 | A theme base on default Bootstrap theme CSS. 35 | 36 | 37 | 38 | ``` 39 | import { Bootstrap } from 'a-theme-react'; 40 | 41 | 42 | ``` 43 | 44 | **FontAwsome Icons** 45 | 46 | `Bootstrap` theme uses icons from [Font Awesome](http://fontawesome.io/). [react-fontawesome](https://github.com/danawoodman/react-fontawesome) does not include CSS. So you have to include the CSS by yourself. One way is from [CDN](https://www.bootstrapcdn.com/fontawesome/). 47 | 48 | For example add this line to HTML file: 49 | ``` 50 | 51 | ``` 52 | 53 | The icons won't display without the CSS file. Everything else is not affected. 54 | 55 | ### Instagram 56 | 57 | A theme imitates [Instagram](https://www.instagram.com) 58 | 59 | 60 | 61 | ``` 62 | import { Instagram } from 'a-theme-react'; 63 | 64 | 65 | ``` 66 | 67 | **CSS Pseudo-Elements** 68 | 69 | One of the limitation in React inline styling is no pseudo-elements. 70 | 71 | Among CSS pseudo-elements, `::before` and `::after` are the two most frequent used. AWS Amplify UI is made to support these two. 72 | 73 | Here we take benefit of `before` and `after` to make this theme possible. 74 | 75 | Example: 76 | 77 | ``` 78 | const beforeImg = ( 79 | 88 | ) 89 | 90 | export const FormSection = { 91 | margin: '0 0 10px', 92 | color: '#262626', 93 | backgroundColor: '#fff', 94 | border: '1px solid #e6e6e6', 95 | borderRadius: '1px', 96 | textAlign: 'center', 97 | width: '350px', 98 | display: 'inline-block', 99 | verticalAlign: 'middle', 100 | before: { 101 | content: beforeImg, 102 | display: 'inline-block', 103 | width: '400px', 104 | height: '560px', 105 | verticalAlign: 'middle', 106 | backgroundImage: 'url(' + home_phone + ')', 107 | backgroundSize: '400px 560px' 108 | } 109 | } 110 | ``` 111 | 112 | ## Example 113 | 114 | `example/` folder is a basic React app with theme 115 | 116 | ``` 117 | git clone https://github.com/richardzcode/a-theme-react.git 118 | cd a-theme-react/example 119 | npm install 120 | npm start 121 | ``` 122 | 123 | Then copy `aws-exports.js` file to `src/` folder for AWS Amplify to work. 124 | 125 | **Other themes** 126 | 127 | The example uses `Bootstrap` theme. Modify `src/index.js` for other themes. 128 | 129 | ``` 130 | import { Instagram as theme } from 'a-theme-react' 131 | ``` 132 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /dist/bootstrap/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import FontAwesome from 'react-fontawesome'; 3 | 4 | export const Container = { 5 | fontFamily: `-apple-system, 6 | BlinkMacSystemFont, 7 | "Segoe UI", 8 | Roboto, 9 | "Helvetica Neue", 10 | Arial, 11 | sans-serif, 12 | "Apple Color Emoji", 13 | "Segoe UI Emoji", 14 | "Segoe UI Symbol"`, 15 | fontWeight: '400', 16 | lineHeight: '1.5', 17 | color: '#212529', 18 | textAlign: 'left', 19 | paddingLeft: '15px', 20 | paddingRight: '15px' 21 | }; 22 | 23 | export const NavBar = { 24 | position: 'relative', 25 | marginBottom: '20px', 26 | marginLeft: '-15px', 27 | marginRight: '-15px', 28 | border: '1px solid transparent', 29 | backgroundColor: '#f8f8f8', 30 | borderColor: '#e7e7e7' 31 | }; 32 | 33 | export const NavRight = { 34 | textAlign: 'right' 35 | }; 36 | 37 | export const Nav = { 38 | margin: '7.5px' 39 | }; 40 | 41 | export const NavItem = { 42 | display: 'inline-block', 43 | padding: '10px 5px', 44 | lineHeight: '20px' 45 | }; 46 | 47 | export const NavButton = { 48 | display: 'inline-block', 49 | padding: '6px 12px', 50 | marginTop: '8px', 51 | marginBottom: '8px', 52 | fontSize: '14px', 53 | fontWeight: 400, 54 | lineHeight: '1.42857143', 55 | textAlign: 'center', 56 | whiteSpace: 'nowrap', 57 | verticalAlign: 'middle', 58 | touchAction: 'manipulation', 59 | cursor: 'pointer', 60 | userSelect: 'none', 61 | backgroundImage: 'none', 62 | border: '1px solid transparent', 63 | borderRadius: '4px', 64 | color: '#333', 65 | backgroundColor: '#fff', 66 | borderColor: '#ccc' 67 | }; 68 | 69 | export const FormContainer = { 70 | textAlign: 'center' 71 | }; 72 | 73 | export const FormSection = { 74 | marginBottom: '20px', 75 | backgroundColor: '#fff', 76 | border: '1px solid #ddd', 77 | borderRadius: '4px', 78 | textAlign: 'left', 79 | width: '500px', 80 | display: 'inline-block' 81 | }; 82 | 83 | export const ErrorSection = { 84 | marginBottom: '20px', 85 | color: '#fff', 86 | backgroundColor: '#f0ad4e', 87 | border: '1px solid #eea236', 88 | borderRadius: '4px', 89 | textAlign: 'left' 90 | }; 91 | 92 | export const SectionHeader = { 93 | color: '#fff', 94 | backgroundColor: '#337ab7', 95 | borderColor: '#337ab7', 96 | padding: '10px 15px', 97 | borderBottom: '1px solid transparent', 98 | borderTopLeftRadius: '3px', 99 | borderTopRightRadius: '3px', 100 | textAlign: 'center' 101 | }; 102 | 103 | export const SectionFooter = { 104 | color: '#333', 105 | backgroundColor: '#f5f5f5', 106 | padding: '10px 15px', 107 | borderTop: '1px solid #ddd', 108 | borderTopLeftRadius: '3px', 109 | borderTopRightRadius: '3px' 110 | }; 111 | 112 | export const SectionBody = { 113 | padding: '15px' 114 | }; 115 | 116 | export const FormRow = { 117 | marginBottom: '15px' 118 | }; 119 | 120 | export const ActionRow = { 121 | marginBottom: '15px' 122 | }; 123 | 124 | export const Input = { 125 | display: 'block', 126 | width: '100%', 127 | height: '34px', 128 | padding: '6px 12px', 129 | fontSize: '14px', 130 | lineHeight: '1.42857143', 131 | color: '#555', 132 | backgroundColor: '#fff', 133 | backgroundImage: 'none', 134 | border: '1px solid #ccc', 135 | borderRadius: '4px', 136 | boxShadow: 'inset 0 1px 1px rgba(0,0,0,.075)', 137 | boxSizing: 'border-box', 138 | transition: 'border-color ease-in-out .15s,box-shadow ease-in-out .15s' 139 | }; 140 | 141 | export const Button = { 142 | display: 'inline-block', 143 | padding: '6px 12px', 144 | marginBottom: '0', 145 | fontSize: '14px', 146 | fontWeight: 400, 147 | lineHeight: '1.42857143', 148 | textAlign: 'center', 149 | whiteSpace: 'nowrap', 150 | verticalAlign: 'middle', 151 | touchAction: 'manipulation', 152 | cursor: 'pointer', 153 | userSelect: 'none', 154 | backgroundImage: 'none', 155 | border: '1px solid transparent', 156 | borderRadius: '4px', 157 | color: '#333', 158 | backgroundColor: '#fff', 159 | borderColor: '#ccc' 160 | }; 161 | 162 | export const SignInButton = { 163 | position: 'relative', 164 | padding: '6px 12px 6px 44px', 165 | fontSize: '14px', 166 | textAlign: 'left', 167 | whiteSpace: 'nowrap', 168 | overflow: 'hidden', 169 | textOverflow: 'ellipsis', 170 | display: 'block', 171 | width: '100%', 172 | marginTop: '2px', 173 | '#google_signin_btn': { 174 | color: '#fff', 175 | backgroundColor: '#dd4b39', 176 | borderColor: 'rgba(0,0,0,0.2)', 177 | before: { 178 | content: React.createElement(FontAwesome, { name: 'google' }), 179 | position: 'absolute', 180 | top: 0, 181 | left: 0, 182 | zIndex: 10, 183 | color: '#fff', 184 | padding: '2px 12px 0', 185 | fontSize: '20px' 186 | } 187 | }, 188 | '#facebook_signin_btn': { 189 | color: '#fff', 190 | backgroundColor: '#3b5998', 191 | borderColor: 'rgba(0,0,0,0.2)', 192 | before: { 193 | content: React.createElement(FontAwesome, { name: 'facebook' }), 194 | position: 'absolute', 195 | top: 0, 196 | left: 0, 197 | zIndex: 10, 198 | color: '#fff', 199 | padding: '2px 12px 0', 200 | fontSize: '20px' 201 | } 202 | } 203 | }; 204 | 205 | export const Space = { 206 | display: 'inline-block', 207 | width: '20px' 208 | }; 209 | 210 | export const A = { 211 | color: '#007bff' 212 | }; 213 | 214 | export const Pre = { 215 | overflow: 'auto', 216 | fontFamily: `Menlo, 217 | Monaco, 218 | Consolas, 219 | "Courier New", 220 | monospace`, 221 | display: 'block', 222 | padding: '9.5px', 223 | margin: '0 0 10px', 224 | fontSize: '13px', 225 | lineHeight: '1.42857143', 226 | color: '#333', 227 | wordBreak: 'break-all', 228 | wordWrap: 'break-word', 229 | backgroundColor: '#f5f5f5', 230 | border: '1px solid #ccc', 231 | borderRadius: '4px' 232 | }; 233 | 234 | export const Col1 = { 235 | display: 'inline-block', 236 | width: '8.33333333%' 237 | }; 238 | 239 | export const Col2 = { 240 | display: 'inline-block', 241 | width: '16.66666667%' 242 | }; 243 | 244 | export const Col3 = { 245 | display: 'inline-block', 246 | width: '25%' 247 | }; 248 | 249 | export const Col4 = { 250 | display: 'inline-block', 251 | width: '33.33333333%' 252 | }; 253 | 254 | export const Col5 = { 255 | display: 'inline-block', 256 | width: '41.66666667%' 257 | }; 258 | 259 | export const Col6 = { 260 | display: 'inline-block', 261 | width: '50%' 262 | }; 263 | 264 | export const Col7 = { 265 | display: 'inline-block', 266 | width: '58.33333333%' 267 | }; 268 | 269 | export const Col8 = { 270 | display: 'inline-block', 271 | width: '66.66666667%' 272 | }; 273 | 274 | export const Col9 = { 275 | display: 'inline-block', 276 | width: '75%' 277 | }; 278 | 279 | export const Col10 = { 280 | display: 'inline-block', 281 | width: '83.33333333%' 282 | }; 283 | 284 | export const Col11 = { 285 | display: 'inline-block', 286 | width: '91.66666667%' 287 | }; 288 | 289 | export const Col12 = { 290 | display: 'inline-block', 291 | width: '100%' 292 | }; 293 | 294 | const Bootstrap = { 295 | container: Container, 296 | 297 | navBar: NavBar, 298 | nav: Nav, 299 | navRight: NavRight, 300 | navItem: NavItem, 301 | navButton: NavButton, 302 | 303 | formContainer: FormContainer, 304 | formSection: FormSection, 305 | errorSection: ErrorSection, 306 | sectionHeader: SectionHeader, 307 | sectionBody: SectionBody, 308 | sectionFooter: SectionFooter, 309 | 310 | formRow: FormRow, 311 | actionRow: ActionRow, 312 | 313 | space: Space, 314 | 315 | signInButton: SignInButton, 316 | 317 | input: Input, 318 | button: Button, 319 | a: A, 320 | pre: Pre, 321 | 322 | col1: Col1, 323 | col2: Col2, 324 | col3: Col3, 325 | col4: Col4, 326 | col5: Col5, 327 | col6: Col6, 328 | col7: Col7, 329 | col8: Col8, 330 | col9: Col9, 331 | col10: Col10, 332 | col11: Col11, 333 | col12: Col12 334 | }; 335 | 336 | export default Bootstrap; -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | export { default as Bootstrap } from './bootstrap'; 2 | export { default as Instagram } from './instagram'; -------------------------------------------------------------------------------- /dist/instagram/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import home_phone from './instagram_home_phone.png'; 3 | import screenshot5 from './instagram_screenshot5_2x.jpg'; 4 | import sprint_core from './instagram_sprite_core_2x.png'; 5 | 6 | export const Container = { 7 | fontFamily: `-apple-system, 8 | BlinkMacSystemFont, 9 | "Segoe UI", 10 | Roboto, 11 | Helvetica, 12 | Arial, 13 | sans-serif`, 14 | fontSize: '14px', 15 | lineHeight: '18px', 16 | backgroundColor: '#fafafa', 17 | textAlign: 'left' 18 | }; 19 | 20 | export const NavBar = { 21 | position: 'fixed', 22 | borderBottom: '1px solid rgba(0,0,0,.0975)', 23 | top: 0, 24 | width: '100%', 25 | zIndex: 1, 26 | backgroundColor: '#fff', 27 | height: '77px', 28 | fontWeight: '300' 29 | }; 30 | 31 | export const NavRight = { 32 | textAlign: 'right' 33 | }; 34 | 35 | export const Nav = { 36 | padding: '26px 40px' 37 | }; 38 | 39 | export const NavItem = { 40 | display: 'inline-block', 41 | padding: '10px 5px', 42 | lineHeight: '20px' 43 | }; 44 | 45 | export const NavButton = { 46 | display: 'inline-block', 47 | padding: '6px 12px', 48 | fontSize: '14px', 49 | fontWeight: 300, 50 | textAlign: 'center', 51 | whiteSpace: 'nowrap', 52 | verticalAlign: 'middle', 53 | touchAction: 'manipulation', 54 | cursor: 'pointer', 55 | userSelect: 'none', 56 | backgroundImage: 'none', 57 | border: '1px solid #aaa', 58 | borderRadius: '4px', 59 | color: '#333', 60 | backgroundColor: '#fff' 61 | }; 62 | 63 | export const FormContainer = { 64 | textAlign: 'center', 65 | paddingTop: '77px' 66 | }; 67 | 68 | const beforeImg = React.createElement('img', { 69 | src: screenshot5, 70 | style: { 71 | width: '216px', 72 | marginTop: '87px', 73 | marginLeft: '79px', 74 | height: '393px' 75 | } 76 | }); 77 | 78 | export const FormSection = { 79 | margin: '0 0 10px', 80 | color: '#262626', 81 | backgroundColor: '#fff', 82 | border: '1px solid #e6e6e6', 83 | borderRadius: '1px', 84 | textAlign: 'center', 85 | width: '350px', 86 | display: 'inline-block', 87 | verticalAlign: 'middle', 88 | before: { 89 | content: beforeImg, 90 | display: 'inline-block', 91 | width: '400px', 92 | height: '560px', 93 | verticalAlign: 'middle', 94 | backgroundImage: 'url(' + home_phone + ')', 95 | backgroundSize: '400px 560px' 96 | } 97 | }; 98 | 99 | export const ErrorSection = { 100 | marginBottom: '20px', 101 | color: '#fff', 102 | backgroundColor: '#f0ad4e', 103 | border: '1px solid #eea236', 104 | borderRadius: '4px', 105 | textAlign: 'left' 106 | }; 107 | 108 | export const SectionHeader = { 109 | margin: '22px auto 8px', 110 | overflow: 'hidden' 111 | }; 112 | 113 | export const SectionHeaderContent = { 114 | height: '51px', 115 | width: '175px', 116 | display: 'inline-block', 117 | textIndent: '110%', 118 | whiteSpace: 'nowrap', 119 | backgroundSize: '405px 379px', 120 | backgroundPosition: '0 0', 121 | backgroundImage: 'url(' + sprint_core + ')' 122 | }; 123 | 124 | export const SectionFooter = { 125 | fontSize: '14px', 126 | textAlign: 'left', 127 | color: '##262626', 128 | backgroundColor: '#fff', 129 | margin: '10px 1px 10px', 130 | padding: '20px 15px 10px 15px', 131 | boxSizing: 'border-box', 132 | borderTop: '1px solid #e6e6e6' 133 | }; 134 | 135 | export const SectionBody = { 136 | padding: '0', 137 | margin: '0', 138 | borderBottom: '1px solid rgb(230, 230, 230)', 139 | minHeight: '240px' 140 | }; 141 | 142 | export const FormRow = { 143 | margin: '0 40px 6px', 144 | textAlign: 'left' 145 | }; 146 | 147 | export const ActionRow = { 148 | margin: '0 40px 6px' 149 | }; 150 | 151 | export const Input = { 152 | fontFamily: `-apple-system, 153 | BlinkMacSystemFont, 154 | "Segoe UI", 155 | Roboto, 156 | Helvetica, 157 | Arial, 158 | sans-serif`, 159 | display: 'block', 160 | width: '100%', 161 | background: '#fafafa', 162 | padding: '9px 0 7px 8px', 163 | border: '1px solid #efefef', 164 | borderRadius: '3px', 165 | fontSize: '14px', 166 | lineHeight: '18px', 167 | boxSizing: 'border-box' 168 | }; 169 | 170 | export const Button = { 171 | display: 'inline-block', 172 | fontSize: '14px', 173 | fontWeight: '600', 174 | lineHeight: '26px', 175 | padding: '0 8px', 176 | marginTop: '8px', 177 | marginBottom: '8px', 178 | border: '1px solid', 179 | borderRadius: '3px', 180 | color: '#fff', 181 | backgroundColor: '#3897f0', 182 | borderColor: '#3897f0', 183 | width: '100%' 184 | }; 185 | 186 | export const SignInButton = { 187 | display: 'inline-block', 188 | fontSize: '14px', 189 | fontWeight: '600', 190 | lineHeight: '26px', 191 | padding: '0 8px', 192 | margin: '8px 0', 193 | border: '1px solid', 194 | borderRadius: '3px', 195 | color: '#fff', 196 | backgroundColor: '#3897f0', 197 | borderColor: '#3897f0', 198 | width: '100%', 199 | '#google_signin_btn': { display: 'none' } 200 | }; 201 | 202 | export const Space = { 203 | display: 'none' 204 | }; 205 | 206 | export const A = { 207 | color: '#3897f0' 208 | }; 209 | 210 | export const Pre = { 211 | overflow: 'auto', 212 | fontFamily: `Menlo, 213 | Monaco, 214 | Consolas, 215 | "Courier New", 216 | monospace`, 217 | display: 'block', 218 | padding: '9.5px', 219 | margin: '0 0 10px', 220 | fontSize: '13px', 221 | lineHeight: '1.42857143', 222 | color: '#333', 223 | wordBreak: 'break-all', 224 | wordWrap: 'break-word', 225 | backgroundColor: '#f5f5f5', 226 | border: '1px solid #ccc', 227 | borderRadius: '4px' 228 | }; 229 | 230 | export const Col6 = { 231 | display: 'inline-block', 232 | width: '50%' 233 | }; 234 | 235 | const Instagram = { 236 | container: Container, 237 | 238 | navBar: NavBar, 239 | nav: Nav, 240 | navRight: NavRight, 241 | navItem: NavItem, 242 | navButton: NavButton, 243 | 244 | formContainer: FormContainer, 245 | formSection: FormSection, 246 | errorSection: ErrorSection, 247 | sectionHeader: SectionHeader, 248 | sectionHeaderContent: SectionHeaderContent, 249 | sectionBody: SectionBody, 250 | sectionFooter: SectionFooter, 251 | 252 | formRow: FormRow, 253 | actionRow: ActionRow, 254 | 255 | space: Space, 256 | 257 | signInButton: SignInButton, 258 | 259 | input: Input, 260 | button: Button, 261 | a: A, 262 | pre: Pre, 263 | 264 | col6: Col6 265 | }; 266 | 267 | export default Instagram; -------------------------------------------------------------------------------- /dist/instagram/instagram_home_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/dist/instagram/instagram_home_phone.png -------------------------------------------------------------------------------- /dist/instagram/instagram_screenshot5_2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/dist/instagram/instagram_screenshot5_2x.jpg -------------------------------------------------------------------------------- /dist/instagram/instagram_sprite_core_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/dist/instagram/instagram_sprite_core_2x.png -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "a-theme-react": "0.0.5", 7 | "aws-amplify": "^0.1.20", 8 | "aws-amplify-react": "^0.1.21", 9 | "react": "^16.2.0", 10 | "react-dom": "^16.2.0", 11 | "react-scripts": "1.0.17" 12 | }, 13 | "scripts": { 14 | "start": "react-scripts start", 15 | "build": "react-scripts build", 16 | "test": "react-scripts test --env=jsdom", 17 | "eject": "react-scripts eject" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /example/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/example/public/favicon.ico -------------------------------------------------------------------------------- /example/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | React App 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /example/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /example/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | animation: App-logo-spin infinite 20s linear; 7 | height: 80px; 8 | } 9 | 10 | .App-header { 11 | background-color: #222; 12 | height: 150px; 13 | padding: 20px; 14 | color: white; 15 | } 16 | 17 | .App-title { 18 | font-size: 1.5em; 19 | } 20 | 21 | .App-intro { 22 | font-size: large; 23 | } 24 | 25 | @keyframes App-logo-spin { 26 | from { transform: rotate(0deg); } 27 | to { transform: rotate(360deg); } 28 | } 29 | -------------------------------------------------------------------------------- /example/src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import logo from './logo.svg'; 3 | import './App.css'; 4 | 5 | import { withAuthenticator } from 'aws-amplify-react'; 6 | 7 | class App extends Component { 8 | render() { 9 | return ( 10 |
11 |
12 | logo 13 |

Welcome to React

14 |
15 |

16 | To get started, edit src/App.js and save to reload. 17 |

18 |
19 | ); 20 | } 21 | } 22 | 23 | export default withAuthenticator(App); 24 | -------------------------------------------------------------------------------- /example/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | }); 9 | -------------------------------------------------------------------------------- /example/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: sans-serif; 5 | } 6 | -------------------------------------------------------------------------------- /example/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import registerServiceWorker from './registerServiceWorker'; 6 | 7 | import Amplify from 'aws-amplify'; 8 | import aws_exports from './aws-exports'; 9 | 10 | import { Bootstrap as theme } from 'a-theme-react'; 11 | 12 | Amplify.configure(aws_exports); 13 | 14 | const federated = { 15 | google_client_id: 'replace with your client_id', 16 | facebook_app_id: 'replace with your app_id' 17 | } 18 | 19 | const app = 20 | 21 | ReactDOM.render(app, document.getElementById('root')); 22 | registerServiceWorker(); 23 | -------------------------------------------------------------------------------- /example/src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example/src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Lets check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl); 38 | } else { 39 | // Is not local host. Just register service worker 40 | registerValidSW(swUrl); 41 | } 42 | }); 43 | } 44 | } 45 | 46 | function registerValidSW(swUrl) { 47 | navigator.serviceWorker 48 | .register(swUrl) 49 | .then(registration => { 50 | registration.onupdatefound = () => { 51 | const installingWorker = registration.installing; 52 | installingWorker.onstatechange = () => { 53 | if (installingWorker.state === 'installed') { 54 | if (navigator.serviceWorker.controller) { 55 | // At this point, the old content will have been purged and 56 | // the fresh content will have been added to the cache. 57 | // It's the perfect time to display a "New content is 58 | // available; please refresh." message in your web app. 59 | console.log('New content is available; please refresh.'); 60 | } else { 61 | // At this point, everything has been precached. 62 | // It's the perfect time to display a 63 | // "Content is cached for offline use." message. 64 | console.log('Content is cached for offline use.'); 65 | } 66 | } 67 | }; 68 | }; 69 | }) 70 | .catch(error => { 71 | console.error('Error during service worker registration:', error); 72 | }); 73 | } 74 | 75 | function checkValidServiceWorker(swUrl) { 76 | // Check if the service worker can be found. If it can't reload the page. 77 | fetch(swUrl) 78 | .then(response => { 79 | // Ensure service worker exists, and that we really are getting a JS file. 80 | if ( 81 | response.status === 404 || 82 | response.headers.get('content-type').indexOf('javascript') === -1 83 | ) { 84 | // No service worker found. Probably a different app. Reload the page. 85 | navigator.serviceWorker.ready.then(registration => { 86 | registration.unregister().then(() => { 87 | window.location.reload(); 88 | }); 89 | }); 90 | } else { 91 | // Service worker found. Proceed as normal. 92 | registerValidSW(swUrl); 93 | } 94 | }) 95 | .catch(() => { 96 | console.log( 97 | 'No internet connection found. App is running in offline mode.' 98 | ); 99 | }); 100 | } 101 | 102 | export function unregister() { 103 | if ('serviceWorker' in navigator) { 104 | navigator.serviceWorker.ready.then(registration => { 105 | registration.unregister(); 106 | }); 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /media/a_theme_bootstrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/media/a_theme_bootstrap.png -------------------------------------------------------------------------------- /media/a_theme_instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/media/a_theme_instagram.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "a-theme-react", 3 | "version": "0.0.5", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "ansi-regex": { 8 | "version": "2.1.1", 9 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 10 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 11 | "dev": true 12 | }, 13 | "ansi-styles": { 14 | "version": "2.2.1", 15 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 16 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 17 | "dev": true 18 | }, 19 | "anymatch": { 20 | "version": "1.3.2", 21 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 22 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 23 | "dev": true, 24 | "optional": true, 25 | "requires": { 26 | "micromatch": "2.3.11", 27 | "normalize-path": "2.1.1" 28 | } 29 | }, 30 | "arr-diff": { 31 | "version": "2.0.0", 32 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 33 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 34 | "dev": true, 35 | "optional": true, 36 | "requires": { 37 | "arr-flatten": "1.1.0" 38 | } 39 | }, 40 | "arr-flatten": { 41 | "version": "1.1.0", 42 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 43 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 44 | "dev": true, 45 | "optional": true 46 | }, 47 | "array-unique": { 48 | "version": "0.2.1", 49 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 50 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 51 | "dev": true, 52 | "optional": true 53 | }, 54 | "asap": { 55 | "version": "2.0.6", 56 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", 57 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" 58 | }, 59 | "async-each": { 60 | "version": "1.0.1", 61 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 62 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 63 | "dev": true, 64 | "optional": true 65 | }, 66 | "babel-cli": { 67 | "version": "6.26.0", 68 | "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", 69 | "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", 70 | "dev": true, 71 | "requires": { 72 | "babel-core": "6.26.0", 73 | "babel-polyfill": "6.26.0", 74 | "babel-register": "6.26.0", 75 | "babel-runtime": "6.26.0", 76 | "chokidar": "1.7.0", 77 | "commander": "2.12.2", 78 | "convert-source-map": "1.5.1", 79 | "fs-readdir-recursive": "1.1.0", 80 | "glob": "7.1.2", 81 | "lodash": "4.17.4", 82 | "output-file-sync": "1.1.2", 83 | "path-is-absolute": "1.0.1", 84 | "slash": "1.0.0", 85 | "source-map": "0.5.7", 86 | "v8flags": "2.1.1" 87 | } 88 | }, 89 | "babel-code-frame": { 90 | "version": "6.26.0", 91 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 92 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 93 | "dev": true, 94 | "requires": { 95 | "chalk": "1.1.3", 96 | "esutils": "2.0.2", 97 | "js-tokens": "3.0.2" 98 | } 99 | }, 100 | "babel-core": { 101 | "version": "6.26.0", 102 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 103 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 104 | "dev": true, 105 | "requires": { 106 | "babel-code-frame": "6.26.0", 107 | "babel-generator": "6.26.0", 108 | "babel-helpers": "6.24.1", 109 | "babel-messages": "6.23.0", 110 | "babel-register": "6.26.0", 111 | "babel-runtime": "6.26.0", 112 | "babel-template": "6.26.0", 113 | "babel-traverse": "6.26.0", 114 | "babel-types": "6.26.0", 115 | "babylon": "6.18.0", 116 | "convert-source-map": "1.5.1", 117 | "debug": "2.6.9", 118 | "json5": "0.5.1", 119 | "lodash": "4.17.4", 120 | "minimatch": "3.0.4", 121 | "path-is-absolute": "1.0.1", 122 | "private": "0.1.8", 123 | "slash": "1.0.0", 124 | "source-map": "0.5.7" 125 | } 126 | }, 127 | "babel-generator": { 128 | "version": "6.26.0", 129 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 130 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 131 | "dev": true, 132 | "requires": { 133 | "babel-messages": "6.23.0", 134 | "babel-runtime": "6.26.0", 135 | "babel-types": "6.26.0", 136 | "detect-indent": "4.0.0", 137 | "jsesc": "1.3.0", 138 | "lodash": "4.17.4", 139 | "source-map": "0.5.7", 140 | "trim-right": "1.0.1" 141 | } 142 | }, 143 | "babel-helper-builder-react-jsx": { 144 | "version": "6.26.0", 145 | "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", 146 | "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", 147 | "dev": true, 148 | "requires": { 149 | "babel-runtime": "6.26.0", 150 | "babel-types": "6.26.0", 151 | "esutils": "2.0.2" 152 | } 153 | }, 154 | "babel-helpers": { 155 | "version": "6.24.1", 156 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 157 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 158 | "dev": true, 159 | "requires": { 160 | "babel-runtime": "6.26.0", 161 | "babel-template": "6.26.0" 162 | } 163 | }, 164 | "babel-messages": { 165 | "version": "6.23.0", 166 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 167 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 168 | "dev": true, 169 | "requires": { 170 | "babel-runtime": "6.26.0" 171 | } 172 | }, 173 | "babel-plugin-syntax-flow": { 174 | "version": "6.18.0", 175 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", 176 | "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", 177 | "dev": true 178 | }, 179 | "babel-plugin-syntax-jsx": { 180 | "version": "6.18.0", 181 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", 182 | "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", 183 | "dev": true 184 | }, 185 | "babel-plugin-transform-flow-strip-types": { 186 | "version": "6.22.0", 187 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", 188 | "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", 189 | "dev": true, 190 | "requires": { 191 | "babel-plugin-syntax-flow": "6.18.0", 192 | "babel-runtime": "6.26.0" 193 | } 194 | }, 195 | "babel-plugin-transform-react-display-name": { 196 | "version": "6.25.0", 197 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", 198 | "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", 199 | "dev": true, 200 | "requires": { 201 | "babel-runtime": "6.26.0" 202 | } 203 | }, 204 | "babel-plugin-transform-react-jsx": { 205 | "version": "6.24.1", 206 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", 207 | "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", 208 | "dev": true, 209 | "requires": { 210 | "babel-helper-builder-react-jsx": "6.26.0", 211 | "babel-plugin-syntax-jsx": "6.18.0", 212 | "babel-runtime": "6.26.0" 213 | } 214 | }, 215 | "babel-plugin-transform-react-jsx-self": { 216 | "version": "6.22.0", 217 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", 218 | "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", 219 | "dev": true, 220 | "requires": { 221 | "babel-plugin-syntax-jsx": "6.18.0", 222 | "babel-runtime": "6.26.0" 223 | } 224 | }, 225 | "babel-plugin-transform-react-jsx-source": { 226 | "version": "6.22.0", 227 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", 228 | "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", 229 | "dev": true, 230 | "requires": { 231 | "babel-plugin-syntax-jsx": "6.18.0", 232 | "babel-runtime": "6.26.0" 233 | } 234 | }, 235 | "babel-polyfill": { 236 | "version": "6.26.0", 237 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", 238 | "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", 239 | "dev": true, 240 | "requires": { 241 | "babel-runtime": "6.26.0", 242 | "core-js": "2.5.1", 243 | "regenerator-runtime": "0.10.5" 244 | }, 245 | "dependencies": { 246 | "regenerator-runtime": { 247 | "version": "0.10.5", 248 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", 249 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", 250 | "dev": true 251 | } 252 | } 253 | }, 254 | "babel-preset-flow": { 255 | "version": "6.23.0", 256 | "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", 257 | "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", 258 | "dev": true, 259 | "requires": { 260 | "babel-plugin-transform-flow-strip-types": "6.22.0" 261 | } 262 | }, 263 | "babel-preset-react": { 264 | "version": "6.24.1", 265 | "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", 266 | "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", 267 | "dev": true, 268 | "requires": { 269 | "babel-plugin-syntax-jsx": "6.18.0", 270 | "babel-plugin-transform-react-display-name": "6.25.0", 271 | "babel-plugin-transform-react-jsx": "6.24.1", 272 | "babel-plugin-transform-react-jsx-self": "6.22.0", 273 | "babel-plugin-transform-react-jsx-source": "6.22.0", 274 | "babel-preset-flow": "6.23.0" 275 | } 276 | }, 277 | "babel-register": { 278 | "version": "6.26.0", 279 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 280 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 281 | "dev": true, 282 | "requires": { 283 | "babel-core": "6.26.0", 284 | "babel-runtime": "6.26.0", 285 | "core-js": "2.5.1", 286 | "home-or-tmp": "2.0.0", 287 | "lodash": "4.17.4", 288 | "mkdirp": "0.5.1", 289 | "source-map-support": "0.4.18" 290 | } 291 | }, 292 | "babel-runtime": { 293 | "version": "6.26.0", 294 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 295 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 296 | "dev": true, 297 | "requires": { 298 | "core-js": "2.5.1", 299 | "regenerator-runtime": "0.11.0" 300 | } 301 | }, 302 | "babel-template": { 303 | "version": "6.26.0", 304 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 305 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 306 | "dev": true, 307 | "requires": { 308 | "babel-runtime": "6.26.0", 309 | "babel-traverse": "6.26.0", 310 | "babel-types": "6.26.0", 311 | "babylon": "6.18.0", 312 | "lodash": "4.17.4" 313 | } 314 | }, 315 | "babel-traverse": { 316 | "version": "6.26.0", 317 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 318 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 319 | "dev": true, 320 | "requires": { 321 | "babel-code-frame": "6.26.0", 322 | "babel-messages": "6.23.0", 323 | "babel-runtime": "6.26.0", 324 | "babel-types": "6.26.0", 325 | "babylon": "6.18.0", 326 | "debug": "2.6.9", 327 | "globals": "9.18.0", 328 | "invariant": "2.2.2", 329 | "lodash": "4.17.4" 330 | } 331 | }, 332 | "babel-types": { 333 | "version": "6.26.0", 334 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 335 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 336 | "dev": true, 337 | "requires": { 338 | "babel-runtime": "6.26.0", 339 | "esutils": "2.0.2", 340 | "lodash": "4.17.4", 341 | "to-fast-properties": "1.0.3" 342 | } 343 | }, 344 | "babylon": { 345 | "version": "6.18.0", 346 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 347 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 348 | "dev": true 349 | }, 350 | "balanced-match": { 351 | "version": "1.0.0", 352 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 353 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 354 | "dev": true 355 | }, 356 | "binary-extensions": { 357 | "version": "1.11.0", 358 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 359 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", 360 | "dev": true, 361 | "optional": true 362 | }, 363 | "brace-expansion": { 364 | "version": "1.1.8", 365 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 366 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 367 | "dev": true, 368 | "requires": { 369 | "balanced-match": "1.0.0", 370 | "concat-map": "0.0.1" 371 | } 372 | }, 373 | "braces": { 374 | "version": "1.8.5", 375 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 376 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 377 | "dev": true, 378 | "optional": true, 379 | "requires": { 380 | "expand-range": "1.8.2", 381 | "preserve": "0.2.0", 382 | "repeat-element": "1.1.2" 383 | } 384 | }, 385 | "chalk": { 386 | "version": "1.1.3", 387 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 388 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 389 | "dev": true, 390 | "requires": { 391 | "ansi-styles": "2.2.1", 392 | "escape-string-regexp": "1.0.5", 393 | "has-ansi": "2.0.0", 394 | "strip-ansi": "3.0.1", 395 | "supports-color": "2.0.0" 396 | } 397 | }, 398 | "chokidar": { 399 | "version": "1.7.0", 400 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 401 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 402 | "dev": true, 403 | "optional": true, 404 | "requires": { 405 | "anymatch": "1.3.2", 406 | "async-each": "1.0.1", 407 | "fsevents": "1.1.3", 408 | "glob-parent": "2.0.0", 409 | "inherits": "2.0.3", 410 | "is-binary-path": "1.0.1", 411 | "is-glob": "2.0.1", 412 | "path-is-absolute": "1.0.1", 413 | "readdirp": "2.1.0" 414 | } 415 | }, 416 | "commander": { 417 | "version": "2.12.2", 418 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", 419 | "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==", 420 | "dev": true 421 | }, 422 | "concat-map": { 423 | "version": "0.0.1", 424 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 425 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 426 | "dev": true 427 | }, 428 | "convert-source-map": { 429 | "version": "1.5.1", 430 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", 431 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", 432 | "dev": true 433 | }, 434 | "core-js": { 435 | "version": "2.5.1", 436 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", 437 | "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", 438 | "dev": true 439 | }, 440 | "core-util-is": { 441 | "version": "1.0.2", 442 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 443 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 444 | "dev": true, 445 | "optional": true 446 | }, 447 | "debug": { 448 | "version": "2.6.9", 449 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 450 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 451 | "dev": true, 452 | "requires": { 453 | "ms": "2.0.0" 454 | } 455 | }, 456 | "detect-indent": { 457 | "version": "4.0.0", 458 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 459 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 460 | "dev": true, 461 | "requires": { 462 | "repeating": "2.0.1" 463 | } 464 | }, 465 | "encoding": { 466 | "version": "0.1.12", 467 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", 468 | "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", 469 | "requires": { 470 | "iconv-lite": "0.4.19" 471 | } 472 | }, 473 | "escape-string-regexp": { 474 | "version": "1.0.5", 475 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 476 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 477 | "dev": true 478 | }, 479 | "esutils": { 480 | "version": "2.0.2", 481 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 482 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 483 | "dev": true 484 | }, 485 | "expand-brackets": { 486 | "version": "0.1.5", 487 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 488 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 489 | "dev": true, 490 | "optional": true, 491 | "requires": { 492 | "is-posix-bracket": "0.1.1" 493 | } 494 | }, 495 | "expand-range": { 496 | "version": "1.8.2", 497 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 498 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 499 | "dev": true, 500 | "optional": true, 501 | "requires": { 502 | "fill-range": "2.2.3" 503 | } 504 | }, 505 | "extglob": { 506 | "version": "0.3.2", 507 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 508 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 509 | "dev": true, 510 | "optional": true, 511 | "requires": { 512 | "is-extglob": "1.0.0" 513 | } 514 | }, 515 | "fbjs": { 516 | "version": "0.8.16", 517 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", 518 | "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", 519 | "requires": { 520 | "core-js": "1.2.7", 521 | "isomorphic-fetch": "2.2.1", 522 | "loose-envify": "1.3.1", 523 | "object-assign": "4.1.1", 524 | "promise": "7.3.1", 525 | "setimmediate": "1.0.5", 526 | "ua-parser-js": "0.7.17" 527 | }, 528 | "dependencies": { 529 | "core-js": { 530 | "version": "1.2.7", 531 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", 532 | "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" 533 | } 534 | } 535 | }, 536 | "filename-regex": { 537 | "version": "2.0.1", 538 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 539 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 540 | "dev": true, 541 | "optional": true 542 | }, 543 | "fill-range": { 544 | "version": "2.2.3", 545 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 546 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 547 | "dev": true, 548 | "optional": true, 549 | "requires": { 550 | "is-number": "2.1.0", 551 | "isobject": "2.1.0", 552 | "randomatic": "1.1.7", 553 | "repeat-element": "1.1.2", 554 | "repeat-string": "1.6.1" 555 | } 556 | }, 557 | "for-in": { 558 | "version": "1.0.2", 559 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 560 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 561 | "dev": true, 562 | "optional": true 563 | }, 564 | "for-own": { 565 | "version": "0.1.5", 566 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 567 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 568 | "dev": true, 569 | "optional": true, 570 | "requires": { 571 | "for-in": "1.0.2" 572 | } 573 | }, 574 | "fs-readdir-recursive": { 575 | "version": "1.1.0", 576 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", 577 | "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", 578 | "dev": true 579 | }, 580 | "fs.realpath": { 581 | "version": "1.0.0", 582 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 583 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 584 | "dev": true 585 | }, 586 | "fsevents": { 587 | "version": "1.1.3", 588 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", 589 | "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", 590 | "dev": true, 591 | "optional": true, 592 | "requires": { 593 | "nan": "2.8.0", 594 | "node-pre-gyp": "0.6.39" 595 | }, 596 | "dependencies": { 597 | "abbrev": { 598 | "version": "1.1.0", 599 | "bundled": true, 600 | "dev": true, 601 | "optional": true 602 | }, 603 | "ajv": { 604 | "version": "4.11.8", 605 | "bundled": true, 606 | "dev": true, 607 | "optional": true, 608 | "requires": { 609 | "co": "4.6.0", 610 | "json-stable-stringify": "1.0.1" 611 | } 612 | }, 613 | "ansi-regex": { 614 | "version": "2.1.1", 615 | "bundled": true, 616 | "dev": true 617 | }, 618 | "aproba": { 619 | "version": "1.1.1", 620 | "bundled": true, 621 | "dev": true, 622 | "optional": true 623 | }, 624 | "are-we-there-yet": { 625 | "version": "1.1.4", 626 | "bundled": true, 627 | "dev": true, 628 | "optional": true, 629 | "requires": { 630 | "delegates": "1.0.0", 631 | "readable-stream": "2.2.9" 632 | } 633 | }, 634 | "asn1": { 635 | "version": "0.2.3", 636 | "bundled": true, 637 | "dev": true, 638 | "optional": true 639 | }, 640 | "assert-plus": { 641 | "version": "0.2.0", 642 | "bundled": true, 643 | "dev": true, 644 | "optional": true 645 | }, 646 | "asynckit": { 647 | "version": "0.4.0", 648 | "bundled": true, 649 | "dev": true, 650 | "optional": true 651 | }, 652 | "aws-sign2": { 653 | "version": "0.6.0", 654 | "bundled": true, 655 | "dev": true, 656 | "optional": true 657 | }, 658 | "aws4": { 659 | "version": "1.6.0", 660 | "bundled": true, 661 | "dev": true, 662 | "optional": true 663 | }, 664 | "balanced-match": { 665 | "version": "0.4.2", 666 | "bundled": true, 667 | "dev": true 668 | }, 669 | "bcrypt-pbkdf": { 670 | "version": "1.0.1", 671 | "bundled": true, 672 | "dev": true, 673 | "optional": true, 674 | "requires": { 675 | "tweetnacl": "0.14.5" 676 | } 677 | }, 678 | "block-stream": { 679 | "version": "0.0.9", 680 | "bundled": true, 681 | "dev": true, 682 | "requires": { 683 | "inherits": "2.0.3" 684 | } 685 | }, 686 | "boom": { 687 | "version": "2.10.1", 688 | "bundled": true, 689 | "dev": true, 690 | "requires": { 691 | "hoek": "2.16.3" 692 | } 693 | }, 694 | "brace-expansion": { 695 | "version": "1.1.7", 696 | "bundled": true, 697 | "dev": true, 698 | "requires": { 699 | "balanced-match": "0.4.2", 700 | "concat-map": "0.0.1" 701 | } 702 | }, 703 | "buffer-shims": { 704 | "version": "1.0.0", 705 | "bundled": true, 706 | "dev": true 707 | }, 708 | "caseless": { 709 | "version": "0.12.0", 710 | "bundled": true, 711 | "dev": true, 712 | "optional": true 713 | }, 714 | "co": { 715 | "version": "4.6.0", 716 | "bundled": true, 717 | "dev": true, 718 | "optional": true 719 | }, 720 | "code-point-at": { 721 | "version": "1.1.0", 722 | "bundled": true, 723 | "dev": true 724 | }, 725 | "combined-stream": { 726 | "version": "1.0.5", 727 | "bundled": true, 728 | "dev": true, 729 | "requires": { 730 | "delayed-stream": "1.0.0" 731 | } 732 | }, 733 | "concat-map": { 734 | "version": "0.0.1", 735 | "bundled": true, 736 | "dev": true 737 | }, 738 | "console-control-strings": { 739 | "version": "1.1.0", 740 | "bundled": true, 741 | "dev": true 742 | }, 743 | "core-util-is": { 744 | "version": "1.0.2", 745 | "bundled": true, 746 | "dev": true 747 | }, 748 | "cryptiles": { 749 | "version": "2.0.5", 750 | "bundled": true, 751 | "dev": true, 752 | "requires": { 753 | "boom": "2.10.1" 754 | } 755 | }, 756 | "dashdash": { 757 | "version": "1.14.1", 758 | "bundled": true, 759 | "dev": true, 760 | "optional": true, 761 | "requires": { 762 | "assert-plus": "1.0.0" 763 | }, 764 | "dependencies": { 765 | "assert-plus": { 766 | "version": "1.0.0", 767 | "bundled": true, 768 | "dev": true, 769 | "optional": true 770 | } 771 | } 772 | }, 773 | "debug": { 774 | "version": "2.6.8", 775 | "bundled": true, 776 | "dev": true, 777 | "optional": true, 778 | "requires": { 779 | "ms": "2.0.0" 780 | } 781 | }, 782 | "deep-extend": { 783 | "version": "0.4.2", 784 | "bundled": true, 785 | "dev": true, 786 | "optional": true 787 | }, 788 | "delayed-stream": { 789 | "version": "1.0.0", 790 | "bundled": true, 791 | "dev": true 792 | }, 793 | "delegates": { 794 | "version": "1.0.0", 795 | "bundled": true, 796 | "dev": true, 797 | "optional": true 798 | }, 799 | "detect-libc": { 800 | "version": "1.0.2", 801 | "bundled": true, 802 | "dev": true, 803 | "optional": true 804 | }, 805 | "ecc-jsbn": { 806 | "version": "0.1.1", 807 | "bundled": true, 808 | "dev": true, 809 | "optional": true, 810 | "requires": { 811 | "jsbn": "0.1.1" 812 | } 813 | }, 814 | "extend": { 815 | "version": "3.0.1", 816 | "bundled": true, 817 | "dev": true, 818 | "optional": true 819 | }, 820 | "extsprintf": { 821 | "version": "1.0.2", 822 | "bundled": true, 823 | "dev": true 824 | }, 825 | "forever-agent": { 826 | "version": "0.6.1", 827 | "bundled": true, 828 | "dev": true, 829 | "optional": true 830 | }, 831 | "form-data": { 832 | "version": "2.1.4", 833 | "bundled": true, 834 | "dev": true, 835 | "optional": true, 836 | "requires": { 837 | "asynckit": "0.4.0", 838 | "combined-stream": "1.0.5", 839 | "mime-types": "2.1.15" 840 | } 841 | }, 842 | "fs.realpath": { 843 | "version": "1.0.0", 844 | "bundled": true, 845 | "dev": true 846 | }, 847 | "fstream": { 848 | "version": "1.0.11", 849 | "bundled": true, 850 | "dev": true, 851 | "requires": { 852 | "graceful-fs": "4.1.11", 853 | "inherits": "2.0.3", 854 | "mkdirp": "0.5.1", 855 | "rimraf": "2.6.1" 856 | } 857 | }, 858 | "fstream-ignore": { 859 | "version": "1.0.5", 860 | "bundled": true, 861 | "dev": true, 862 | "optional": true, 863 | "requires": { 864 | "fstream": "1.0.11", 865 | "inherits": "2.0.3", 866 | "minimatch": "3.0.4" 867 | } 868 | }, 869 | "gauge": { 870 | "version": "2.7.4", 871 | "bundled": true, 872 | "dev": true, 873 | "optional": true, 874 | "requires": { 875 | "aproba": "1.1.1", 876 | "console-control-strings": "1.1.0", 877 | "has-unicode": "2.0.1", 878 | "object-assign": "4.1.1", 879 | "signal-exit": "3.0.2", 880 | "string-width": "1.0.2", 881 | "strip-ansi": "3.0.1", 882 | "wide-align": "1.1.2" 883 | } 884 | }, 885 | "getpass": { 886 | "version": "0.1.7", 887 | "bundled": true, 888 | "dev": true, 889 | "optional": true, 890 | "requires": { 891 | "assert-plus": "1.0.0" 892 | }, 893 | "dependencies": { 894 | "assert-plus": { 895 | "version": "1.0.0", 896 | "bundled": true, 897 | "dev": true, 898 | "optional": true 899 | } 900 | } 901 | }, 902 | "glob": { 903 | "version": "7.1.2", 904 | "bundled": true, 905 | "dev": true, 906 | "requires": { 907 | "fs.realpath": "1.0.0", 908 | "inflight": "1.0.6", 909 | "inherits": "2.0.3", 910 | "minimatch": "3.0.4", 911 | "once": "1.4.0", 912 | "path-is-absolute": "1.0.1" 913 | } 914 | }, 915 | "graceful-fs": { 916 | "version": "4.1.11", 917 | "bundled": true, 918 | "dev": true 919 | }, 920 | "har-schema": { 921 | "version": "1.0.5", 922 | "bundled": true, 923 | "dev": true, 924 | "optional": true 925 | }, 926 | "har-validator": { 927 | "version": "4.2.1", 928 | "bundled": true, 929 | "dev": true, 930 | "optional": true, 931 | "requires": { 932 | "ajv": "4.11.8", 933 | "har-schema": "1.0.5" 934 | } 935 | }, 936 | "has-unicode": { 937 | "version": "2.0.1", 938 | "bundled": true, 939 | "dev": true, 940 | "optional": true 941 | }, 942 | "hawk": { 943 | "version": "3.1.3", 944 | "bundled": true, 945 | "dev": true, 946 | "requires": { 947 | "boom": "2.10.1", 948 | "cryptiles": "2.0.5", 949 | "hoek": "2.16.3", 950 | "sntp": "1.0.9" 951 | } 952 | }, 953 | "hoek": { 954 | "version": "2.16.3", 955 | "bundled": true, 956 | "dev": true 957 | }, 958 | "http-signature": { 959 | "version": "1.1.1", 960 | "bundled": true, 961 | "dev": true, 962 | "optional": true, 963 | "requires": { 964 | "assert-plus": "0.2.0", 965 | "jsprim": "1.4.0", 966 | "sshpk": "1.13.0" 967 | } 968 | }, 969 | "inflight": { 970 | "version": "1.0.6", 971 | "bundled": true, 972 | "dev": true, 973 | "requires": { 974 | "once": "1.4.0", 975 | "wrappy": "1.0.2" 976 | } 977 | }, 978 | "inherits": { 979 | "version": "2.0.3", 980 | "bundled": true, 981 | "dev": true 982 | }, 983 | "ini": { 984 | "version": "1.3.4", 985 | "bundled": true, 986 | "dev": true, 987 | "optional": true 988 | }, 989 | "is-fullwidth-code-point": { 990 | "version": "1.0.0", 991 | "bundled": true, 992 | "dev": true, 993 | "requires": { 994 | "number-is-nan": "1.0.1" 995 | } 996 | }, 997 | "is-typedarray": { 998 | "version": "1.0.0", 999 | "bundled": true, 1000 | "dev": true, 1001 | "optional": true 1002 | }, 1003 | "isarray": { 1004 | "version": "1.0.0", 1005 | "bundled": true, 1006 | "dev": true 1007 | }, 1008 | "isstream": { 1009 | "version": "0.1.2", 1010 | "bundled": true, 1011 | "dev": true, 1012 | "optional": true 1013 | }, 1014 | "jodid25519": { 1015 | "version": "1.0.2", 1016 | "bundled": true, 1017 | "dev": true, 1018 | "optional": true, 1019 | "requires": { 1020 | "jsbn": "0.1.1" 1021 | } 1022 | }, 1023 | "jsbn": { 1024 | "version": "0.1.1", 1025 | "bundled": true, 1026 | "dev": true, 1027 | "optional": true 1028 | }, 1029 | "json-schema": { 1030 | "version": "0.2.3", 1031 | "bundled": true, 1032 | "dev": true, 1033 | "optional": true 1034 | }, 1035 | "json-stable-stringify": { 1036 | "version": "1.0.1", 1037 | "bundled": true, 1038 | "dev": true, 1039 | "optional": true, 1040 | "requires": { 1041 | "jsonify": "0.0.0" 1042 | } 1043 | }, 1044 | "json-stringify-safe": { 1045 | "version": "5.0.1", 1046 | "bundled": true, 1047 | "dev": true, 1048 | "optional": true 1049 | }, 1050 | "jsonify": { 1051 | "version": "0.0.0", 1052 | "bundled": true, 1053 | "dev": true, 1054 | "optional": true 1055 | }, 1056 | "jsprim": { 1057 | "version": "1.4.0", 1058 | "bundled": true, 1059 | "dev": true, 1060 | "optional": true, 1061 | "requires": { 1062 | "assert-plus": "1.0.0", 1063 | "extsprintf": "1.0.2", 1064 | "json-schema": "0.2.3", 1065 | "verror": "1.3.6" 1066 | }, 1067 | "dependencies": { 1068 | "assert-plus": { 1069 | "version": "1.0.0", 1070 | "bundled": true, 1071 | "dev": true, 1072 | "optional": true 1073 | } 1074 | } 1075 | }, 1076 | "mime-db": { 1077 | "version": "1.27.0", 1078 | "bundled": true, 1079 | "dev": true 1080 | }, 1081 | "mime-types": { 1082 | "version": "2.1.15", 1083 | "bundled": true, 1084 | "dev": true, 1085 | "requires": { 1086 | "mime-db": "1.27.0" 1087 | } 1088 | }, 1089 | "minimatch": { 1090 | "version": "3.0.4", 1091 | "bundled": true, 1092 | "dev": true, 1093 | "requires": { 1094 | "brace-expansion": "1.1.7" 1095 | } 1096 | }, 1097 | "minimist": { 1098 | "version": "0.0.8", 1099 | "bundled": true, 1100 | "dev": true 1101 | }, 1102 | "mkdirp": { 1103 | "version": "0.5.1", 1104 | "bundled": true, 1105 | "dev": true, 1106 | "requires": { 1107 | "minimist": "0.0.8" 1108 | } 1109 | }, 1110 | "ms": { 1111 | "version": "2.0.0", 1112 | "bundled": true, 1113 | "dev": true, 1114 | "optional": true 1115 | }, 1116 | "node-pre-gyp": { 1117 | "version": "0.6.39", 1118 | "bundled": true, 1119 | "dev": true, 1120 | "optional": true, 1121 | "requires": { 1122 | "detect-libc": "1.0.2", 1123 | "hawk": "3.1.3", 1124 | "mkdirp": "0.5.1", 1125 | "nopt": "4.0.1", 1126 | "npmlog": "4.1.0", 1127 | "rc": "1.2.1", 1128 | "request": "2.81.0", 1129 | "rimraf": "2.6.1", 1130 | "semver": "5.3.0", 1131 | "tar": "2.2.1", 1132 | "tar-pack": "3.4.0" 1133 | } 1134 | }, 1135 | "nopt": { 1136 | "version": "4.0.1", 1137 | "bundled": true, 1138 | "dev": true, 1139 | "optional": true, 1140 | "requires": { 1141 | "abbrev": "1.1.0", 1142 | "osenv": "0.1.4" 1143 | } 1144 | }, 1145 | "npmlog": { 1146 | "version": "4.1.0", 1147 | "bundled": true, 1148 | "dev": true, 1149 | "optional": true, 1150 | "requires": { 1151 | "are-we-there-yet": "1.1.4", 1152 | "console-control-strings": "1.1.0", 1153 | "gauge": "2.7.4", 1154 | "set-blocking": "2.0.0" 1155 | } 1156 | }, 1157 | "number-is-nan": { 1158 | "version": "1.0.1", 1159 | "bundled": true, 1160 | "dev": true 1161 | }, 1162 | "oauth-sign": { 1163 | "version": "0.8.2", 1164 | "bundled": true, 1165 | "dev": true, 1166 | "optional": true 1167 | }, 1168 | "object-assign": { 1169 | "version": "4.1.1", 1170 | "bundled": true, 1171 | "dev": true, 1172 | "optional": true 1173 | }, 1174 | "once": { 1175 | "version": "1.4.0", 1176 | "bundled": true, 1177 | "dev": true, 1178 | "requires": { 1179 | "wrappy": "1.0.2" 1180 | } 1181 | }, 1182 | "os-homedir": { 1183 | "version": "1.0.2", 1184 | "bundled": true, 1185 | "dev": true, 1186 | "optional": true 1187 | }, 1188 | "os-tmpdir": { 1189 | "version": "1.0.2", 1190 | "bundled": true, 1191 | "dev": true, 1192 | "optional": true 1193 | }, 1194 | "osenv": { 1195 | "version": "0.1.4", 1196 | "bundled": true, 1197 | "dev": true, 1198 | "optional": true, 1199 | "requires": { 1200 | "os-homedir": "1.0.2", 1201 | "os-tmpdir": "1.0.2" 1202 | } 1203 | }, 1204 | "path-is-absolute": { 1205 | "version": "1.0.1", 1206 | "bundled": true, 1207 | "dev": true 1208 | }, 1209 | "performance-now": { 1210 | "version": "0.2.0", 1211 | "bundled": true, 1212 | "dev": true, 1213 | "optional": true 1214 | }, 1215 | "process-nextick-args": { 1216 | "version": "1.0.7", 1217 | "bundled": true, 1218 | "dev": true 1219 | }, 1220 | "punycode": { 1221 | "version": "1.4.1", 1222 | "bundled": true, 1223 | "dev": true, 1224 | "optional": true 1225 | }, 1226 | "qs": { 1227 | "version": "6.4.0", 1228 | "bundled": true, 1229 | "dev": true, 1230 | "optional": true 1231 | }, 1232 | "rc": { 1233 | "version": "1.2.1", 1234 | "bundled": true, 1235 | "dev": true, 1236 | "optional": true, 1237 | "requires": { 1238 | "deep-extend": "0.4.2", 1239 | "ini": "1.3.4", 1240 | "minimist": "1.2.0", 1241 | "strip-json-comments": "2.0.1" 1242 | }, 1243 | "dependencies": { 1244 | "minimist": { 1245 | "version": "1.2.0", 1246 | "bundled": true, 1247 | "dev": true, 1248 | "optional": true 1249 | } 1250 | } 1251 | }, 1252 | "readable-stream": { 1253 | "version": "2.2.9", 1254 | "bundled": true, 1255 | "dev": true, 1256 | "requires": { 1257 | "buffer-shims": "1.0.0", 1258 | "core-util-is": "1.0.2", 1259 | "inherits": "2.0.3", 1260 | "isarray": "1.0.0", 1261 | "process-nextick-args": "1.0.7", 1262 | "string_decoder": "1.0.1", 1263 | "util-deprecate": "1.0.2" 1264 | } 1265 | }, 1266 | "request": { 1267 | "version": "2.81.0", 1268 | "bundled": true, 1269 | "dev": true, 1270 | "optional": true, 1271 | "requires": { 1272 | "aws-sign2": "0.6.0", 1273 | "aws4": "1.6.0", 1274 | "caseless": "0.12.0", 1275 | "combined-stream": "1.0.5", 1276 | "extend": "3.0.1", 1277 | "forever-agent": "0.6.1", 1278 | "form-data": "2.1.4", 1279 | "har-validator": "4.2.1", 1280 | "hawk": "3.1.3", 1281 | "http-signature": "1.1.1", 1282 | "is-typedarray": "1.0.0", 1283 | "isstream": "0.1.2", 1284 | "json-stringify-safe": "5.0.1", 1285 | "mime-types": "2.1.15", 1286 | "oauth-sign": "0.8.2", 1287 | "performance-now": "0.2.0", 1288 | "qs": "6.4.0", 1289 | "safe-buffer": "5.0.1", 1290 | "stringstream": "0.0.5", 1291 | "tough-cookie": "2.3.2", 1292 | "tunnel-agent": "0.6.0", 1293 | "uuid": "3.0.1" 1294 | } 1295 | }, 1296 | "rimraf": { 1297 | "version": "2.6.1", 1298 | "bundled": true, 1299 | "dev": true, 1300 | "requires": { 1301 | "glob": "7.1.2" 1302 | } 1303 | }, 1304 | "safe-buffer": { 1305 | "version": "5.0.1", 1306 | "bundled": true, 1307 | "dev": true 1308 | }, 1309 | "semver": { 1310 | "version": "5.3.0", 1311 | "bundled": true, 1312 | "dev": true, 1313 | "optional": true 1314 | }, 1315 | "set-blocking": { 1316 | "version": "2.0.0", 1317 | "bundled": true, 1318 | "dev": true, 1319 | "optional": true 1320 | }, 1321 | "signal-exit": { 1322 | "version": "3.0.2", 1323 | "bundled": true, 1324 | "dev": true, 1325 | "optional": true 1326 | }, 1327 | "sntp": { 1328 | "version": "1.0.9", 1329 | "bundled": true, 1330 | "dev": true, 1331 | "requires": { 1332 | "hoek": "2.16.3" 1333 | } 1334 | }, 1335 | "sshpk": { 1336 | "version": "1.13.0", 1337 | "bundled": true, 1338 | "dev": true, 1339 | "optional": true, 1340 | "requires": { 1341 | "asn1": "0.2.3", 1342 | "assert-plus": "1.0.0", 1343 | "bcrypt-pbkdf": "1.0.1", 1344 | "dashdash": "1.14.1", 1345 | "ecc-jsbn": "0.1.1", 1346 | "getpass": "0.1.7", 1347 | "jodid25519": "1.0.2", 1348 | "jsbn": "0.1.1", 1349 | "tweetnacl": "0.14.5" 1350 | }, 1351 | "dependencies": { 1352 | "assert-plus": { 1353 | "version": "1.0.0", 1354 | "bundled": true, 1355 | "dev": true, 1356 | "optional": true 1357 | } 1358 | } 1359 | }, 1360 | "string-width": { 1361 | "version": "1.0.2", 1362 | "bundled": true, 1363 | "dev": true, 1364 | "requires": { 1365 | "code-point-at": "1.1.0", 1366 | "is-fullwidth-code-point": "1.0.0", 1367 | "strip-ansi": "3.0.1" 1368 | } 1369 | }, 1370 | "string_decoder": { 1371 | "version": "1.0.1", 1372 | "bundled": true, 1373 | "dev": true, 1374 | "requires": { 1375 | "safe-buffer": "5.0.1" 1376 | } 1377 | }, 1378 | "stringstream": { 1379 | "version": "0.0.5", 1380 | "bundled": true, 1381 | "dev": true, 1382 | "optional": true 1383 | }, 1384 | "strip-ansi": { 1385 | "version": "3.0.1", 1386 | "bundled": true, 1387 | "dev": true, 1388 | "requires": { 1389 | "ansi-regex": "2.1.1" 1390 | } 1391 | }, 1392 | "strip-json-comments": { 1393 | "version": "2.0.1", 1394 | "bundled": true, 1395 | "dev": true, 1396 | "optional": true 1397 | }, 1398 | "tar": { 1399 | "version": "2.2.1", 1400 | "bundled": true, 1401 | "dev": true, 1402 | "requires": { 1403 | "block-stream": "0.0.9", 1404 | "fstream": "1.0.11", 1405 | "inherits": "2.0.3" 1406 | } 1407 | }, 1408 | "tar-pack": { 1409 | "version": "3.4.0", 1410 | "bundled": true, 1411 | "dev": true, 1412 | "optional": true, 1413 | "requires": { 1414 | "debug": "2.6.8", 1415 | "fstream": "1.0.11", 1416 | "fstream-ignore": "1.0.5", 1417 | "once": "1.4.0", 1418 | "readable-stream": "2.2.9", 1419 | "rimraf": "2.6.1", 1420 | "tar": "2.2.1", 1421 | "uid-number": "0.0.6" 1422 | } 1423 | }, 1424 | "tough-cookie": { 1425 | "version": "2.3.2", 1426 | "bundled": true, 1427 | "dev": true, 1428 | "optional": true, 1429 | "requires": { 1430 | "punycode": "1.4.1" 1431 | } 1432 | }, 1433 | "tunnel-agent": { 1434 | "version": "0.6.0", 1435 | "bundled": true, 1436 | "dev": true, 1437 | "optional": true, 1438 | "requires": { 1439 | "safe-buffer": "5.0.1" 1440 | } 1441 | }, 1442 | "tweetnacl": { 1443 | "version": "0.14.5", 1444 | "bundled": true, 1445 | "dev": true, 1446 | "optional": true 1447 | }, 1448 | "uid-number": { 1449 | "version": "0.0.6", 1450 | "bundled": true, 1451 | "dev": true, 1452 | "optional": true 1453 | }, 1454 | "util-deprecate": { 1455 | "version": "1.0.2", 1456 | "bundled": true, 1457 | "dev": true 1458 | }, 1459 | "uuid": { 1460 | "version": "3.0.1", 1461 | "bundled": true, 1462 | "dev": true, 1463 | "optional": true 1464 | }, 1465 | "verror": { 1466 | "version": "1.3.6", 1467 | "bundled": true, 1468 | "dev": true, 1469 | "optional": true, 1470 | "requires": { 1471 | "extsprintf": "1.0.2" 1472 | } 1473 | }, 1474 | "wide-align": { 1475 | "version": "1.1.2", 1476 | "bundled": true, 1477 | "dev": true, 1478 | "optional": true, 1479 | "requires": { 1480 | "string-width": "1.0.2" 1481 | } 1482 | }, 1483 | "wrappy": { 1484 | "version": "1.0.2", 1485 | "bundled": true, 1486 | "dev": true 1487 | } 1488 | } 1489 | }, 1490 | "glob": { 1491 | "version": "7.1.2", 1492 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1493 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1494 | "dev": true, 1495 | "requires": { 1496 | "fs.realpath": "1.0.0", 1497 | "inflight": "1.0.6", 1498 | "inherits": "2.0.3", 1499 | "minimatch": "3.0.4", 1500 | "once": "1.4.0", 1501 | "path-is-absolute": "1.0.1" 1502 | } 1503 | }, 1504 | "glob-base": { 1505 | "version": "0.3.0", 1506 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1507 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1508 | "dev": true, 1509 | "optional": true, 1510 | "requires": { 1511 | "glob-parent": "2.0.0", 1512 | "is-glob": "2.0.1" 1513 | } 1514 | }, 1515 | "glob-parent": { 1516 | "version": "2.0.0", 1517 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1518 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1519 | "dev": true, 1520 | "requires": { 1521 | "is-glob": "2.0.1" 1522 | } 1523 | }, 1524 | "globals": { 1525 | "version": "9.18.0", 1526 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1527 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 1528 | "dev": true 1529 | }, 1530 | "graceful-fs": { 1531 | "version": "4.1.11", 1532 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1533 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1534 | "dev": true 1535 | }, 1536 | "has-ansi": { 1537 | "version": "2.0.0", 1538 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1539 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1540 | "dev": true, 1541 | "requires": { 1542 | "ansi-regex": "2.1.1" 1543 | } 1544 | }, 1545 | "home-or-tmp": { 1546 | "version": "2.0.0", 1547 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 1548 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 1549 | "dev": true, 1550 | "requires": { 1551 | "os-homedir": "1.0.2", 1552 | "os-tmpdir": "1.0.2" 1553 | } 1554 | }, 1555 | "iconv-lite": { 1556 | "version": "0.4.19", 1557 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 1558 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" 1559 | }, 1560 | "inflight": { 1561 | "version": "1.0.6", 1562 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1563 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1564 | "dev": true, 1565 | "requires": { 1566 | "once": "1.4.0", 1567 | "wrappy": "1.0.2" 1568 | } 1569 | }, 1570 | "inherits": { 1571 | "version": "2.0.3", 1572 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1573 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1574 | "dev": true 1575 | }, 1576 | "invariant": { 1577 | "version": "2.2.2", 1578 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 1579 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 1580 | "dev": true, 1581 | "requires": { 1582 | "loose-envify": "1.3.1" 1583 | } 1584 | }, 1585 | "is-binary-path": { 1586 | "version": "1.0.1", 1587 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 1588 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 1589 | "dev": true, 1590 | "optional": true, 1591 | "requires": { 1592 | "binary-extensions": "1.11.0" 1593 | } 1594 | }, 1595 | "is-buffer": { 1596 | "version": "1.1.6", 1597 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 1598 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 1599 | "dev": true 1600 | }, 1601 | "is-dotfile": { 1602 | "version": "1.0.3", 1603 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1604 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 1605 | "dev": true, 1606 | "optional": true 1607 | }, 1608 | "is-equal-shallow": { 1609 | "version": "0.1.3", 1610 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 1611 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1612 | "dev": true, 1613 | "optional": true, 1614 | "requires": { 1615 | "is-primitive": "2.0.0" 1616 | } 1617 | }, 1618 | "is-extendable": { 1619 | "version": "0.1.1", 1620 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1621 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 1622 | "dev": true, 1623 | "optional": true 1624 | }, 1625 | "is-extglob": { 1626 | "version": "1.0.0", 1627 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1628 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 1629 | "dev": true 1630 | }, 1631 | "is-finite": { 1632 | "version": "1.0.2", 1633 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1634 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1635 | "dev": true, 1636 | "requires": { 1637 | "number-is-nan": "1.0.1" 1638 | } 1639 | }, 1640 | "is-glob": { 1641 | "version": "2.0.1", 1642 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 1643 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1644 | "dev": true, 1645 | "requires": { 1646 | "is-extglob": "1.0.0" 1647 | } 1648 | }, 1649 | "is-number": { 1650 | "version": "2.1.0", 1651 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 1652 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1653 | "dev": true, 1654 | "optional": true, 1655 | "requires": { 1656 | "kind-of": "3.2.2" 1657 | } 1658 | }, 1659 | "is-posix-bracket": { 1660 | "version": "0.1.1", 1661 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 1662 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 1663 | "dev": true, 1664 | "optional": true 1665 | }, 1666 | "is-primitive": { 1667 | "version": "2.0.0", 1668 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 1669 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 1670 | "dev": true, 1671 | "optional": true 1672 | }, 1673 | "is-stream": { 1674 | "version": "1.1.0", 1675 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1676 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 1677 | }, 1678 | "isarray": { 1679 | "version": "1.0.0", 1680 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1681 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1682 | "dev": true 1683 | }, 1684 | "isobject": { 1685 | "version": "2.1.0", 1686 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 1687 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 1688 | "dev": true, 1689 | "optional": true, 1690 | "requires": { 1691 | "isarray": "1.0.0" 1692 | } 1693 | }, 1694 | "isomorphic-fetch": { 1695 | "version": "2.2.1", 1696 | "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", 1697 | "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", 1698 | "requires": { 1699 | "node-fetch": "1.7.3", 1700 | "whatwg-fetch": "2.0.3" 1701 | } 1702 | }, 1703 | "js-tokens": { 1704 | "version": "3.0.2", 1705 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1706 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" 1707 | }, 1708 | "jsesc": { 1709 | "version": "1.3.0", 1710 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 1711 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 1712 | "dev": true 1713 | }, 1714 | "json5": { 1715 | "version": "0.5.1", 1716 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1717 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 1718 | "dev": true 1719 | }, 1720 | "kind-of": { 1721 | "version": "3.2.2", 1722 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1723 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1724 | "dev": true, 1725 | "requires": { 1726 | "is-buffer": "1.1.6" 1727 | } 1728 | }, 1729 | "lodash": { 1730 | "version": "4.17.4", 1731 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1732 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 1733 | "dev": true 1734 | }, 1735 | "loose-envify": { 1736 | "version": "1.3.1", 1737 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 1738 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 1739 | "requires": { 1740 | "js-tokens": "3.0.2" 1741 | } 1742 | }, 1743 | "micromatch": { 1744 | "version": "2.3.11", 1745 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 1746 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1747 | "dev": true, 1748 | "optional": true, 1749 | "requires": { 1750 | "arr-diff": "2.0.0", 1751 | "array-unique": "0.2.1", 1752 | "braces": "1.8.5", 1753 | "expand-brackets": "0.1.5", 1754 | "extglob": "0.3.2", 1755 | "filename-regex": "2.0.1", 1756 | "is-extglob": "1.0.0", 1757 | "is-glob": "2.0.1", 1758 | "kind-of": "3.2.2", 1759 | "normalize-path": "2.1.1", 1760 | "object.omit": "2.0.1", 1761 | "parse-glob": "3.0.4", 1762 | "regex-cache": "0.4.4" 1763 | } 1764 | }, 1765 | "minimatch": { 1766 | "version": "3.0.4", 1767 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1768 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1769 | "dev": true, 1770 | "requires": { 1771 | "brace-expansion": "1.1.8" 1772 | } 1773 | }, 1774 | "minimist": { 1775 | "version": "0.0.8", 1776 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1777 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1778 | "dev": true 1779 | }, 1780 | "mkdirp": { 1781 | "version": "0.5.1", 1782 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1783 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1784 | "dev": true, 1785 | "requires": { 1786 | "minimist": "0.0.8" 1787 | } 1788 | }, 1789 | "ms": { 1790 | "version": "2.0.0", 1791 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1792 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1793 | "dev": true 1794 | }, 1795 | "nan": { 1796 | "version": "2.8.0", 1797 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", 1798 | "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", 1799 | "dev": true, 1800 | "optional": true 1801 | }, 1802 | "node-fetch": { 1803 | "version": "1.7.3", 1804 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", 1805 | "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", 1806 | "requires": { 1807 | "encoding": "0.1.12", 1808 | "is-stream": "1.1.0" 1809 | } 1810 | }, 1811 | "normalize-path": { 1812 | "version": "2.1.1", 1813 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 1814 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1815 | "dev": true, 1816 | "requires": { 1817 | "remove-trailing-separator": "1.1.0" 1818 | } 1819 | }, 1820 | "number-is-nan": { 1821 | "version": "1.0.1", 1822 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1823 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1824 | "dev": true 1825 | }, 1826 | "object-assign": { 1827 | "version": "4.1.1", 1828 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1829 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1830 | }, 1831 | "object.omit": { 1832 | "version": "2.0.1", 1833 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 1834 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1835 | "dev": true, 1836 | "optional": true, 1837 | "requires": { 1838 | "for-own": "0.1.5", 1839 | "is-extendable": "0.1.1" 1840 | } 1841 | }, 1842 | "once": { 1843 | "version": "1.4.0", 1844 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1845 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1846 | "dev": true, 1847 | "requires": { 1848 | "wrappy": "1.0.2" 1849 | } 1850 | }, 1851 | "os-homedir": { 1852 | "version": "1.0.2", 1853 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1854 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1855 | "dev": true 1856 | }, 1857 | "os-tmpdir": { 1858 | "version": "1.0.2", 1859 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1860 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1861 | "dev": true 1862 | }, 1863 | "output-file-sync": { 1864 | "version": "1.1.2", 1865 | "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", 1866 | "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", 1867 | "dev": true, 1868 | "requires": { 1869 | "graceful-fs": "4.1.11", 1870 | "mkdirp": "0.5.1", 1871 | "object-assign": "4.1.1" 1872 | } 1873 | }, 1874 | "parse-glob": { 1875 | "version": "3.0.4", 1876 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 1877 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1878 | "dev": true, 1879 | "optional": true, 1880 | "requires": { 1881 | "glob-base": "0.3.0", 1882 | "is-dotfile": "1.0.3", 1883 | "is-extglob": "1.0.0", 1884 | "is-glob": "2.0.1" 1885 | } 1886 | }, 1887 | "path-is-absolute": { 1888 | "version": "1.0.1", 1889 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1890 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1891 | "dev": true 1892 | }, 1893 | "preserve": { 1894 | "version": "0.2.0", 1895 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 1896 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 1897 | "dev": true, 1898 | "optional": true 1899 | }, 1900 | "private": { 1901 | "version": "0.1.8", 1902 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 1903 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 1904 | "dev": true 1905 | }, 1906 | "process-nextick-args": { 1907 | "version": "1.0.7", 1908 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1909 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 1910 | "dev": true, 1911 | "optional": true 1912 | }, 1913 | "promise": { 1914 | "version": "7.3.1", 1915 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", 1916 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", 1917 | "requires": { 1918 | "asap": "2.0.6" 1919 | } 1920 | }, 1921 | "prop-types": { 1922 | "version": "15.6.0", 1923 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", 1924 | "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", 1925 | "requires": { 1926 | "fbjs": "0.8.16", 1927 | "loose-envify": "1.3.1", 1928 | "object-assign": "4.1.1" 1929 | } 1930 | }, 1931 | "randomatic": { 1932 | "version": "1.1.7", 1933 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 1934 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 1935 | "dev": true, 1936 | "optional": true, 1937 | "requires": { 1938 | "is-number": "3.0.0", 1939 | "kind-of": "4.0.0" 1940 | }, 1941 | "dependencies": { 1942 | "is-number": { 1943 | "version": "3.0.0", 1944 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 1945 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 1946 | "dev": true, 1947 | "optional": true, 1948 | "requires": { 1949 | "kind-of": "3.2.2" 1950 | }, 1951 | "dependencies": { 1952 | "kind-of": { 1953 | "version": "3.2.2", 1954 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1955 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1956 | "dev": true, 1957 | "optional": true, 1958 | "requires": { 1959 | "is-buffer": "1.1.6" 1960 | } 1961 | } 1962 | } 1963 | }, 1964 | "kind-of": { 1965 | "version": "4.0.0", 1966 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 1967 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 1968 | "dev": true, 1969 | "optional": true, 1970 | "requires": { 1971 | "is-buffer": "1.1.6" 1972 | } 1973 | } 1974 | } 1975 | }, 1976 | "react-fontawesome": { 1977 | "version": "1.6.1", 1978 | "resolved": "https://registry.npmjs.org/react-fontawesome/-/react-fontawesome-1.6.1.tgz", 1979 | "integrity": "sha1-7dzhfn3HMaoJ/UoYZoimF5OhbFw=", 1980 | "requires": { 1981 | "prop-types": "15.6.0" 1982 | } 1983 | }, 1984 | "readable-stream": { 1985 | "version": "2.3.3", 1986 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 1987 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 1988 | "dev": true, 1989 | "optional": true, 1990 | "requires": { 1991 | "core-util-is": "1.0.2", 1992 | "inherits": "2.0.3", 1993 | "isarray": "1.0.0", 1994 | "process-nextick-args": "1.0.7", 1995 | "safe-buffer": "5.1.1", 1996 | "string_decoder": "1.0.3", 1997 | "util-deprecate": "1.0.2" 1998 | } 1999 | }, 2000 | "readdirp": { 2001 | "version": "2.1.0", 2002 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 2003 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 2004 | "dev": true, 2005 | "optional": true, 2006 | "requires": { 2007 | "graceful-fs": "4.1.11", 2008 | "minimatch": "3.0.4", 2009 | "readable-stream": "2.3.3", 2010 | "set-immediate-shim": "1.0.1" 2011 | } 2012 | }, 2013 | "regenerator-runtime": { 2014 | "version": "0.11.0", 2015 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 2016 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", 2017 | "dev": true 2018 | }, 2019 | "regex-cache": { 2020 | "version": "0.4.4", 2021 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 2022 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 2023 | "dev": true, 2024 | "optional": true, 2025 | "requires": { 2026 | "is-equal-shallow": "0.1.3" 2027 | } 2028 | }, 2029 | "remove-trailing-separator": { 2030 | "version": "1.1.0", 2031 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 2032 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 2033 | "dev": true 2034 | }, 2035 | "repeat-element": { 2036 | "version": "1.1.2", 2037 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 2038 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 2039 | "dev": true 2040 | }, 2041 | "repeat-string": { 2042 | "version": "1.6.1", 2043 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 2044 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 2045 | "dev": true, 2046 | "optional": true 2047 | }, 2048 | "repeating": { 2049 | "version": "2.0.1", 2050 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 2051 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 2052 | "dev": true, 2053 | "requires": { 2054 | "is-finite": "1.0.2" 2055 | } 2056 | }, 2057 | "safe-buffer": { 2058 | "version": "5.1.1", 2059 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2060 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 2061 | "dev": true 2062 | }, 2063 | "set-immediate-shim": { 2064 | "version": "1.0.1", 2065 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 2066 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 2067 | "dev": true, 2068 | "optional": true 2069 | }, 2070 | "setimmediate": { 2071 | "version": "1.0.5", 2072 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 2073 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 2074 | }, 2075 | "slash": { 2076 | "version": "1.0.0", 2077 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 2078 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 2079 | "dev": true 2080 | }, 2081 | "source-map": { 2082 | "version": "0.5.7", 2083 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2084 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2085 | "dev": true 2086 | }, 2087 | "source-map-support": { 2088 | "version": "0.4.18", 2089 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 2090 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 2091 | "dev": true, 2092 | "requires": { 2093 | "source-map": "0.5.7" 2094 | } 2095 | }, 2096 | "string_decoder": { 2097 | "version": "1.0.3", 2098 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2099 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2100 | "dev": true, 2101 | "optional": true, 2102 | "requires": { 2103 | "safe-buffer": "5.1.1" 2104 | } 2105 | }, 2106 | "strip-ansi": { 2107 | "version": "3.0.1", 2108 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2109 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2110 | "dev": true, 2111 | "requires": { 2112 | "ansi-regex": "2.1.1" 2113 | } 2114 | }, 2115 | "supports-color": { 2116 | "version": "2.0.0", 2117 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2118 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2119 | "dev": true 2120 | }, 2121 | "to-fast-properties": { 2122 | "version": "1.0.3", 2123 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 2124 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 2125 | "dev": true 2126 | }, 2127 | "trim-right": { 2128 | "version": "1.0.1", 2129 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 2130 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 2131 | "dev": true 2132 | }, 2133 | "ua-parser-js": { 2134 | "version": "0.7.17", 2135 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", 2136 | "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" 2137 | }, 2138 | "user-home": { 2139 | "version": "1.1.1", 2140 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", 2141 | "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", 2142 | "dev": true 2143 | }, 2144 | "util-deprecate": { 2145 | "version": "1.0.2", 2146 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2147 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2148 | "dev": true, 2149 | "optional": true 2150 | }, 2151 | "v8flags": { 2152 | "version": "2.1.1", 2153 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", 2154 | "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", 2155 | "dev": true, 2156 | "requires": { 2157 | "user-home": "1.1.1" 2158 | } 2159 | }, 2160 | "whatwg-fetch": { 2161 | "version": "2.0.3", 2162 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", 2163 | "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" 2164 | }, 2165 | "wrappy": { 2166 | "version": "1.0.2", 2167 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2168 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2169 | "dev": true 2170 | } 2171 | } 2172 | } 2173 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "a-theme-react", 3 | "version": "0.0.5", 4 | "description": "AWS Amplify theme for React", 5 | "main": "dist/index.js", 6 | "scripts": { 7 | "build": "babel src --presets babel-preset-react --out-dir dist --copy-files" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/richardzcode/a-theme-react.git" 12 | }, 13 | "keywords": [ 14 | "AWS", 15 | "Amplify", 16 | "style", 17 | "theme" 18 | ], 19 | "author": "Richard Zhang ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/richardzcode/a-theme-react/issues" 23 | }, 24 | "homepage": "https://github.com/richardzcode/a-theme-react#readme", 25 | "devDependencies": { 26 | "babel-cli": "^6.26.0", 27 | "babel-preset-react": "^6.24.1" 28 | }, 29 | "dependencies": { 30 | "react-fontawesome": "^1.6.1" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/bootstrap/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import FontAwesome from 'react-fontawesome' 3 | 4 | export const Container = { 5 | fontFamily: `-apple-system, 6 | BlinkMacSystemFont, 7 | "Segoe UI", 8 | Roboto, 9 | "Helvetica Neue", 10 | Arial, 11 | sans-serif, 12 | "Apple Color Emoji", 13 | "Segoe UI Emoji", 14 | "Segoe UI Symbol"`, 15 | fontWeight: '400', 16 | lineHeight: '1.5', 17 | color: '#212529', 18 | textAlign: 'left', 19 | paddingLeft: '15px', 20 | paddingRight: '15px' 21 | } 22 | 23 | export const NavBar = { 24 | position: 'relative', 25 | marginBottom: '20px', 26 | marginLeft: '-15px', 27 | marginRight: '-15px', 28 | border: '1px solid transparent', 29 | backgroundColor: '#f8f8f8', 30 | borderColor: '#e7e7e7' 31 | } 32 | 33 | export const NavRight = { 34 | textAlign: 'right' 35 | } 36 | 37 | export const Nav = { 38 | margin: '7.5px' 39 | } 40 | 41 | export const NavItem = { 42 | display: 'inline-block', 43 | padding: '10px 5px', 44 | lineHeight: '20px' 45 | } 46 | 47 | export const NavButton = { 48 | display: 'inline-block', 49 | padding: '6px 12px', 50 | marginTop: '8px', 51 | marginBottom: '8px', 52 | fontSize: '14px', 53 | fontWeight: 400, 54 | lineHeight: '1.42857143', 55 | textAlign: 'center', 56 | whiteSpace: 'nowrap', 57 | verticalAlign: 'middle', 58 | touchAction: 'manipulation', 59 | cursor: 'pointer', 60 | userSelect: 'none', 61 | backgroundImage: 'none', 62 | border: '1px solid transparent', 63 | borderRadius: '4px', 64 | color: '#333', 65 | backgroundColor: '#fff', 66 | borderColor: '#ccc' 67 | } 68 | 69 | export const FormContainer = { 70 | textAlign: 'center' 71 | } 72 | 73 | export const FormSection = { 74 | marginBottom: '20px', 75 | backgroundColor: '#fff', 76 | border: '1px solid #ddd', 77 | borderRadius: '4px', 78 | textAlign: 'left', 79 | width: '500px', 80 | display: 'inline-block' 81 | } 82 | 83 | export const ErrorSection = { 84 | marginBottom: '20px', 85 | color: '#fff', 86 | backgroundColor: '#f0ad4e', 87 | border: '1px solid #eea236', 88 | borderRadius: '4px', 89 | textAlign: 'left' 90 | } 91 | 92 | export const SectionHeader = { 93 | color: '#fff', 94 | backgroundColor: '#337ab7', 95 | borderColor: '#337ab7', 96 | padding: '10px 15px', 97 | borderBottom: '1px solid transparent', 98 | borderTopLeftRadius: '3px', 99 | borderTopRightRadius: '3px', 100 | textAlign: 'center' 101 | } 102 | 103 | export const SectionFooter = { 104 | color: '#333', 105 | backgroundColor: '#f5f5f5', 106 | padding: '10px 15px', 107 | borderTop: '1px solid #ddd', 108 | borderTopLeftRadius: '3px', 109 | borderTopRightRadius: '3px' 110 | } 111 | 112 | export const SectionBody = { 113 | padding: '15px' 114 | } 115 | 116 | export const FormRow = { 117 | marginBottom: '15px' 118 | } 119 | 120 | export const ActionRow = { 121 | marginBottom: '15px' 122 | } 123 | 124 | export const Input = { 125 | display: 'block', 126 | width: '100%', 127 | height: '34px', 128 | padding: '6px 12px', 129 | fontSize: '14px', 130 | lineHeight: '1.42857143', 131 | color: '#555', 132 | backgroundColor: '#fff', 133 | backgroundImage: 'none', 134 | border: '1px solid #ccc', 135 | borderRadius: '4px', 136 | boxShadow: 'inset 0 1px 1px rgba(0,0,0,.075)', 137 | boxSizing: 'border-box', 138 | transition: 'border-color ease-in-out .15s,box-shadow ease-in-out .15s' 139 | } 140 | 141 | export const Button = { 142 | display: 'inline-block', 143 | padding: '6px 12px', 144 | marginBottom: '0', 145 | fontSize: '14px', 146 | fontWeight: 400, 147 | lineHeight: '1.42857143', 148 | textAlign: 'center', 149 | whiteSpace: 'nowrap', 150 | verticalAlign: 'middle', 151 | touchAction: 'manipulation', 152 | cursor: 'pointer', 153 | userSelect: 'none', 154 | backgroundImage: 'none', 155 | border: '1px solid transparent', 156 | borderRadius: '4px', 157 | color: '#333', 158 | backgroundColor: '#fff', 159 | borderColor: '#ccc' 160 | } 161 | 162 | export const SignInButton = { 163 | position: 'relative', 164 | padding: '6px 12px 6px 44px', 165 | fontSize: '14px', 166 | textAlign: 'left', 167 | whiteSpace: 'nowrap', 168 | overflow: 'hidden', 169 | textOverflow: 'ellipsis', 170 | display: 'block', 171 | width: '100%', 172 | marginTop: '2px', 173 | '#google_signin_btn': { 174 | color: '#fff', 175 | backgroundColor: '#dd4b39', 176 | borderColor: 'rgba(0,0,0,0.2)', 177 | before: { 178 | content: , 179 | position: 'absolute', 180 | top: 0, 181 | left: 0, 182 | zIndex: 10, 183 | color: '#fff', 184 | padding: '2px 12px 0', 185 | fontSize: '20px' 186 | } 187 | }, 188 | '#facebook_signin_btn': { 189 | color: '#fff', 190 | backgroundColor: '#3b5998', 191 | borderColor: 'rgba(0,0,0,0.2)', 192 | before: { 193 | content: , 194 | position: 'absolute', 195 | top: 0, 196 | left: 0, 197 | zIndex: 10, 198 | color: '#fff', 199 | padding: '2px 12px 0', 200 | fontSize: '20px' 201 | } 202 | } 203 | } 204 | 205 | export const Space = { 206 | display: 'inline-block', 207 | width: '20px' 208 | } 209 | 210 | export const A = { 211 | color: '#007bff' 212 | } 213 | 214 | export const Pre = { 215 | overflow: 'auto', 216 | fontFamily: `Menlo, 217 | Monaco, 218 | Consolas, 219 | "Courier New", 220 | monospace`, 221 | display: 'block', 222 | padding: '9.5px', 223 | margin: '0 0 10px', 224 | fontSize: '13px', 225 | lineHeight: '1.42857143', 226 | color: '#333', 227 | wordBreak: 'break-all', 228 | wordWrap: 'break-word', 229 | backgroundColor: '#f5f5f5', 230 | border: '1px solid #ccc', 231 | borderRadius: '4px' 232 | } 233 | 234 | export const Col1 = { 235 | display: 'inline-block', 236 | width: '8.33333333%' 237 | } 238 | 239 | export const Col2 = { 240 | display: 'inline-block', 241 | width: '16.66666667%' 242 | } 243 | 244 | export const Col3 = { 245 | display: 'inline-block', 246 | width: '25%' 247 | } 248 | 249 | export const Col4 = { 250 | display: 'inline-block', 251 | width: '33.33333333%' 252 | } 253 | 254 | export const Col5 = { 255 | display: 'inline-block', 256 | width: '41.66666667%' 257 | } 258 | 259 | export const Col6 = { 260 | display: 'inline-block', 261 | width: '50%' 262 | } 263 | 264 | export const Col7 = { 265 | display: 'inline-block', 266 | width: '58.33333333%' 267 | } 268 | 269 | export const Col8 = { 270 | display: 'inline-block', 271 | width: '66.66666667%' 272 | } 273 | 274 | export const Col9 = { 275 | display: 'inline-block', 276 | width: '75%' 277 | } 278 | 279 | export const Col10 = { 280 | display: 'inline-block', 281 | width: '83.33333333%' 282 | } 283 | 284 | export const Col11 = { 285 | display: 'inline-block', 286 | width: '91.66666667%' 287 | } 288 | 289 | export const Col12 = { 290 | display: 'inline-block', 291 | width: '100%' 292 | } 293 | 294 | const Bootstrap = { 295 | container: Container, 296 | 297 | navBar: NavBar, 298 | nav: Nav, 299 | navRight: NavRight, 300 | navItem: NavItem, 301 | navButton: NavButton, 302 | 303 | formContainer: FormContainer, 304 | formSection: FormSection, 305 | errorSection: ErrorSection, 306 | sectionHeader: SectionHeader, 307 | sectionBody: SectionBody, 308 | sectionFooter: SectionFooter, 309 | 310 | formRow: FormRow, 311 | actionRow: ActionRow, 312 | 313 | space: Space, 314 | 315 | signInButton: SignInButton, 316 | 317 | input: Input, 318 | button: Button, 319 | a: A, 320 | pre: Pre, 321 | 322 | col1: Col1, 323 | col2: Col2, 324 | col3: Col3, 325 | col4: Col4, 326 | col5: Col5, 327 | col6: Col6, 328 | col7: Col7, 329 | col8: Col8, 330 | col9: Col9, 331 | col10: Col10, 332 | col11: Col11, 333 | col12: Col12 334 | } 335 | 336 | export default Bootstrap 337 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export { default as Bootstrap } from './bootstrap' 2 | export { default as Instagram } from './instagram' 3 | -------------------------------------------------------------------------------- /src/instagram/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import home_phone from './instagram_home_phone.png' 3 | import screenshot5 from './instagram_screenshot5_2x.jpg' 4 | import sprint_core from './instagram_sprite_core_2x.png' 5 | 6 | export const Container = { 7 | fontFamily: `-apple-system, 8 | BlinkMacSystemFont, 9 | "Segoe UI", 10 | Roboto, 11 | Helvetica, 12 | Arial, 13 | sans-serif`, 14 | fontSize: '14px', 15 | lineHeight: '18px', 16 | backgroundColor: '#fafafa', 17 | textAlign: 'left' 18 | } 19 | 20 | export const NavBar = { 21 | position: 'fixed', 22 | borderBottom: '1px solid rgba(0,0,0,.0975)', 23 | top: 0, 24 | width: '100%', 25 | zIndex: 1, 26 | backgroundColor: '#fff', 27 | height: '77px', 28 | fontWeight: '300' 29 | } 30 | 31 | export const NavRight = { 32 | textAlign: 'right' 33 | } 34 | 35 | export const Nav = { 36 | padding: '26px 40px' 37 | } 38 | 39 | export const NavItem = { 40 | display: 'inline-block', 41 | padding: '10px 5px', 42 | lineHeight: '20px' 43 | } 44 | 45 | export const NavButton = { 46 | display: 'inline-block', 47 | padding: '6px 12px', 48 | fontSize: '14px', 49 | fontWeight: 300, 50 | textAlign: 'center', 51 | whiteSpace: 'nowrap', 52 | verticalAlign: 'middle', 53 | touchAction: 'manipulation', 54 | cursor: 'pointer', 55 | userSelect: 'none', 56 | backgroundImage: 'none', 57 | border: '1px solid #aaa', 58 | borderRadius: '4px', 59 | color: '#333', 60 | backgroundColor: '#fff' 61 | } 62 | 63 | export const FormContainer = { 64 | textAlign: 'center', 65 | paddingTop: '77px' 66 | } 67 | 68 | const beforeImg = ( 69 | 78 | ) 79 | 80 | export const FormSection = { 81 | margin: '0 0 10px', 82 | color: '#262626', 83 | backgroundColor: '#fff', 84 | border: '1px solid #e6e6e6', 85 | borderRadius: '1px', 86 | textAlign: 'center', 87 | width: '350px', 88 | display: 'inline-block', 89 | verticalAlign: 'middle', 90 | before: { 91 | content: beforeImg, 92 | display: 'inline-block', 93 | width: '400px', 94 | height: '560px', 95 | verticalAlign: 'middle', 96 | backgroundImage: 'url(' + home_phone + ')', 97 | backgroundSize: '400px 560px' 98 | } 99 | } 100 | 101 | export const ErrorSection = { 102 | marginBottom: '20px', 103 | color: '#fff', 104 | backgroundColor: '#f0ad4e', 105 | border: '1px solid #eea236', 106 | borderRadius: '4px', 107 | textAlign: 'left' 108 | } 109 | 110 | export const SectionHeader = { 111 | margin: '22px auto 8px', 112 | overflow: 'hidden' 113 | } 114 | 115 | export const SectionHeaderContent = { 116 | height: '51px', 117 | width: '175px', 118 | display: 'inline-block', 119 | textIndent: '110%', 120 | whiteSpace: 'nowrap', 121 | backgroundSize: '405px 379px', 122 | backgroundPosition: '0 0', 123 | backgroundImage: 'url(' + sprint_core + ')' 124 | } 125 | 126 | export const SectionFooter = { 127 | fontSize: '14px', 128 | textAlign: 'left', 129 | color: '##262626', 130 | backgroundColor: '#fff', 131 | margin: '10px 1px 10px', 132 | padding: '20px 15px 10px 15px', 133 | boxSizing: 'border-box', 134 | borderTop: '1px solid #e6e6e6' 135 | } 136 | 137 | export const SectionBody = { 138 | padding: '0', 139 | margin: '0', 140 | borderBottom: '1px solid rgb(230, 230, 230)', 141 | minHeight: '240px' 142 | } 143 | 144 | export const FormRow = { 145 | margin: '0 40px 6px', 146 | textAlign: 'left' 147 | } 148 | 149 | export const ActionRow = { 150 | margin: '0 40px 6px' 151 | } 152 | 153 | export const Input = { 154 | fontFamily: `-apple-system, 155 | BlinkMacSystemFont, 156 | "Segoe UI", 157 | Roboto, 158 | Helvetica, 159 | Arial, 160 | sans-serif`, 161 | display: 'block', 162 | width: '100%', 163 | background: '#fafafa', 164 | padding: '9px 0 7px 8px', 165 | border: '1px solid #efefef', 166 | borderRadius: '3px', 167 | fontSize: '14px', 168 | lineHeight: '18px', 169 | boxSizing: 'border-box' 170 | } 171 | 172 | export const Button = { 173 | display: 'inline-block', 174 | fontSize: '14px', 175 | fontWeight: '600', 176 | lineHeight: '26px', 177 | padding: '0 8px', 178 | marginTop: '8px', 179 | marginBottom: '8px', 180 | border: '1px solid', 181 | borderRadius: '3px', 182 | color: '#fff', 183 | backgroundColor: '#3897f0', 184 | borderColor: '#3897f0', 185 | width: '100%' 186 | } 187 | 188 | export const SignInButton = { 189 | display: 'inline-block', 190 | fontSize: '14px', 191 | fontWeight: '600', 192 | lineHeight: '26px', 193 | padding: '0 8px', 194 | margin: '8px 0', 195 | border: '1px solid', 196 | borderRadius: '3px', 197 | color: '#fff', 198 | backgroundColor: '#3897f0', 199 | borderColor: '#3897f0', 200 | width: '100%', 201 | '#google_signin_btn': { display: 'none' } 202 | } 203 | 204 | export const Space = { 205 | display: 'none' 206 | } 207 | 208 | export const A = { 209 | color: '#3897f0' 210 | } 211 | 212 | export const Pre = { 213 | overflow: 'auto', 214 | fontFamily: `Menlo, 215 | Monaco, 216 | Consolas, 217 | "Courier New", 218 | monospace`, 219 | display: 'block', 220 | padding: '9.5px', 221 | margin: '0 0 10px', 222 | fontSize: '13px', 223 | lineHeight: '1.42857143', 224 | color: '#333', 225 | wordBreak: 'break-all', 226 | wordWrap: 'break-word', 227 | backgroundColor: '#f5f5f5', 228 | border: '1px solid #ccc', 229 | borderRadius: '4px' 230 | } 231 | 232 | export const Col6 = { 233 | display: 'inline-block', 234 | width: '50%' 235 | } 236 | 237 | const Instagram = { 238 | container: Container, 239 | 240 | navBar: NavBar, 241 | nav: Nav, 242 | navRight: NavRight, 243 | navItem: NavItem, 244 | navButton: NavButton, 245 | 246 | formContainer: FormContainer, 247 | formSection: FormSection, 248 | errorSection: ErrorSection, 249 | sectionHeader: SectionHeader, 250 | sectionHeaderContent: SectionHeaderContent, 251 | sectionBody: SectionBody, 252 | sectionFooter: SectionFooter, 253 | 254 | formRow: FormRow, 255 | actionRow: ActionRow, 256 | 257 | space: Space, 258 | 259 | signInButton: SignInButton, 260 | 261 | input: Input, 262 | button: Button, 263 | a: A, 264 | pre: Pre, 265 | 266 | col6: Col6 267 | } 268 | 269 | export default Instagram 270 | -------------------------------------------------------------------------------- /src/instagram/instagram_home_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/src/instagram/instagram_home_phone.png -------------------------------------------------------------------------------- /src/instagram/instagram_screenshot5_2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/src/instagram/instagram_screenshot5_2x.jpg -------------------------------------------------------------------------------- /src/instagram/instagram_sprite_core_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/richardzcode/a-theme-react/c4e96d4ed0253aabebca9b0ffd86211c0a90d073/src/instagram/instagram_sprite_core_2x.png --------------------------------------------------------------------------------