├── .editorconfig ├── .gitignore ├── .vscode ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src ├── app.ts ├── components │ ├── App.ts │ ├── BackButton.ts │ ├── Header │ │ ├── NavMenu.ts │ │ └── index.ts │ └── NavLink.ts ├── drivers │ └── github.ts ├── favicon.ico ├── fonts │ └── .gitkeep ├── images │ └── .gitkeep ├── index.html ├── layouts │ ├── HeaderLayout.ts │ └── index.ts ├── routes │ ├── About │ │ └── index.ts │ ├── Commits │ │ ├── index.ts │ │ └── routes │ │ │ ├── Details │ │ │ └── index.ts │ │ │ └── List │ │ │ ├── components │ │ │ └── CommitListItem.ts │ │ │ └── index.ts │ ├── Home │ │ └── index.ts │ └── index.ts └── utils │ └── pluck.ts ├── tsconfig.json └── webpack.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | indent_style = space 7 | indent_size = 2 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | 39 | # Generated files 40 | dist 41 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "chrome", 9 | "request": "launch", 10 | "name": "Launch Chrome against localhost", 11 | "url": "http://localhost:3030", 12 | "webRoot": "${workspaceRoot}" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "**/.git": true, 5 | "**/.svn": true, 6 | "**/.DS_Store": true, 7 | "node_modules": true, 8 | "dist": true, 9 | "**/*.js": { "when": "$(basename).ts"}, 10 | "**/*.js.map": true 11 | } 12 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Sudarsan Balaji and Cycle.js Community 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 | # typescript-starter-cycle 2 | An opinionated starter for Cycle.js projects powered by TypeScript. 3 | 4 | ## Opinions 5 | * TypeScript rocks. We use TypeScript as much as possible. 6 | * Visual Studio Code rocks. We use Visual Studio Code as the recommended editor. 7 | * Webpack rocks. We use webpack only. 8 | 9 | ## Features 10 | * TypeScript 11 | * Webpack 12 | * TypeStyle for styles 13 | * Simple routing with layouts 14 | * Hot Module Reloading 15 | * Async imports and dynamic routing 16 | * Visual Studio Code integrations 17 | 18 | ### Planned 19 | * Unit testing with Mocha and Chai 20 | * UI Integration tests with Cypress 21 | * Explanation of folder structure 22 | * Wiki section on recommended/best practices 23 | * Better README (duh!) 24 | 25 | ## Notes 26 | 27 | ### Visual Studio Code Specifics 28 | This repository is optimized for [Visual Studio Code](https://code.visualstudio.com/). 29 | We have launch configurations, an editor config file, and workspace settings. 30 | 31 | To make full use of these, you need the following extensions: 32 | * [Debugger for Chrome](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) 33 | * [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) 34 | 35 | ### Troubleshooting / Tips 36 | * If using on Windows machines, make sure you have the [build tools](https://github.com/felixrieseberg/windows-build-tools) ready before doing an `npm install`. 37 | * If hosting on a subdirectory, you need to change the `PROJECT_PUBLIC_PATH` in `webpack.config.js` only for production. You can do this by changing line #32 of the file to `var PROJECT_PUBLIC_PATH = __PROD__ ? '' : '/';` 38 | * If you need help with something, or have feedback, suggestions, feel free to open an issue on this repository. 39 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript-starter-cycle", 3 | "version": "2.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@cycle/dom": { 8 | "version": "18.3.0", 9 | "resolved": "https://registry.npmjs.org/@cycle/dom/-/dom-18.3.0.tgz", 10 | "integrity": "sha1-N7n1XGsPYp0baJ7OV2N3aPvu0rA=", 11 | "requires": { 12 | "@cycle/run": "3.3.0", 13 | "es6-map": "0.1.5", 14 | "snabbdom": "0.7.0", 15 | "snabbdom-selector": "1.2.1" 16 | } 17 | }, 18 | "@cycle/history": { 19 | "version": "6.4.0", 20 | "resolved": "https://registry.npmjs.org/@cycle/history/-/history-6.4.0.tgz", 21 | "integrity": "sha1-qZT2dWE95Zhi9efs8tKC8+zhW9M=", 22 | "requires": { 23 | "@cycle/run": "3.3.0", 24 | "history": "4.6.3" 25 | } 26 | }, 27 | "@cycle/http": { 28 | "version": "14.5.0", 29 | "resolved": "https://registry.npmjs.org/@cycle/http/-/http-14.5.0.tgz", 30 | "integrity": "sha1-BbRMo+Z1ySgCvRuclaImOrgm4tU=", 31 | "requires": { 32 | "@cycle/run": "3.3.0", 33 | "@types/superagent": "3.5.6", 34 | "superagent": "3.6.3" 35 | } 36 | }, 37 | "@cycle/isolate": { 38 | "version": "3.1.0", 39 | "resolved": "https://registry.npmjs.org/@cycle/isolate/-/isolate-3.1.0.tgz", 40 | "integrity": "sha1-+xWBdQ1BP4DCMGN+F/wki+ff0W8=" 41 | }, 42 | "@cycle/run": { 43 | "version": "3.3.0", 44 | "resolved": "https://registry.npmjs.org/@cycle/run/-/run-3.3.0.tgz", 45 | "integrity": "sha1-oA3WOODpNJ/PDXt2KPnzcwlVm58=", 46 | "requires": { 47 | "xstream": "11.0.0" 48 | } 49 | }, 50 | "@types/node": { 51 | "version": "8.0.44", 52 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.44.tgz", 53 | "integrity": "sha512-56TeARKE2uMi7xWhpRRws/QdnpSVx9i7E8esGiPYoj90jnonGfmV1vwRLvHWYjPxF5u5l7p5fgdKwdse+VeAQQ==" 54 | }, 55 | "@types/superagent": { 56 | "version": "3.5.6", 57 | "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-3.5.6.tgz", 58 | "integrity": "sha512-yGiVkRbB1qtIkRCpEJIxlHazBoILmu33xbbu4IiwxTJjwDi/EudiPYAD7QwWe035jkE40yQgTVXZsAePFtleww==", 59 | "requires": { 60 | "@types/node": "8.0.44" 61 | } 62 | }, 63 | "accepts": { 64 | "version": "1.3.4", 65 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", 66 | "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", 67 | "dev": true, 68 | "requires": { 69 | "mime-types": "2.1.17", 70 | "negotiator": "0.6.1" 71 | } 72 | }, 73 | "acorn": { 74 | "version": "5.1.2", 75 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", 76 | "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", 77 | "dev": true 78 | }, 79 | "acorn-dynamic-import": { 80 | "version": "2.0.2", 81 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", 82 | "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", 83 | "dev": true, 84 | "requires": { 85 | "acorn": "4.0.13" 86 | }, 87 | "dependencies": { 88 | "acorn": { 89 | "version": "4.0.13", 90 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 91 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", 92 | "dev": true 93 | } 94 | } 95 | }, 96 | "ajv": { 97 | "version": "5.2.3", 98 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", 99 | "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", 100 | "dev": true, 101 | "requires": { 102 | "co": "4.6.0", 103 | "fast-deep-equal": "1.0.0", 104 | "json-schema-traverse": "0.3.1", 105 | "json-stable-stringify": "1.0.1" 106 | } 107 | }, 108 | "ajv-keywords": { 109 | "version": "2.1.0", 110 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", 111 | "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", 112 | "dev": true 113 | }, 114 | "align-text": { 115 | "version": "0.1.4", 116 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 117 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 118 | "dev": true, 119 | "requires": { 120 | "kind-of": "3.2.2", 121 | "longest": "1.0.1", 122 | "repeat-string": "1.6.1" 123 | } 124 | }, 125 | "amdefine": { 126 | "version": "1.0.1", 127 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 128 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 129 | "dev": true 130 | }, 131 | "ansi-html": { 132 | "version": "0.0.7", 133 | "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", 134 | "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", 135 | "dev": true 136 | }, 137 | "ansi-regex": { 138 | "version": "2.1.1", 139 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 140 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 141 | "dev": true 142 | }, 143 | "ansi-styles": { 144 | "version": "3.2.0", 145 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 146 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 147 | "dev": true, 148 | "requires": { 149 | "color-convert": "1.9.0" 150 | } 151 | }, 152 | "anymatch": { 153 | "version": "1.3.2", 154 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 155 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 156 | "dev": true, 157 | "requires": { 158 | "micromatch": "2.3.11", 159 | "normalize-path": "2.1.1" 160 | } 161 | }, 162 | "aproba": { 163 | "version": "1.2.0", 164 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 165 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 166 | "dev": true 167 | }, 168 | "arr-diff": { 169 | "version": "2.0.0", 170 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 171 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 172 | "dev": true, 173 | "requires": { 174 | "arr-flatten": "1.1.0" 175 | } 176 | }, 177 | "arr-flatten": { 178 | "version": "1.1.0", 179 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 180 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 181 | "dev": true 182 | }, 183 | "array-find-index": { 184 | "version": "1.0.2", 185 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 186 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 187 | "dev": true 188 | }, 189 | "array-flatten": { 190 | "version": "2.1.1", 191 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", 192 | "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", 193 | "dev": true 194 | }, 195 | "array-includes": { 196 | "version": "3.0.3", 197 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", 198 | "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", 199 | "dev": true, 200 | "requires": { 201 | "define-properties": "1.1.2", 202 | "es-abstract": "1.9.0" 203 | } 204 | }, 205 | "array-union": { 206 | "version": "1.0.2", 207 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 208 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 209 | "dev": true, 210 | "requires": { 211 | "array-uniq": "1.0.3" 212 | } 213 | }, 214 | "array-uniq": { 215 | "version": "1.0.3", 216 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 217 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 218 | "dev": true 219 | }, 220 | "array-unique": { 221 | "version": "0.2.1", 222 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 223 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 224 | "dev": true 225 | }, 226 | "asn1.js": { 227 | "version": "4.9.1", 228 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", 229 | "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", 230 | "dev": true, 231 | "requires": { 232 | "bn.js": "4.11.8", 233 | "inherits": "2.0.3", 234 | "minimalistic-assert": "1.0.0" 235 | } 236 | }, 237 | "assert": { 238 | "version": "1.4.1", 239 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 240 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 241 | "dev": true, 242 | "requires": { 243 | "util": "0.10.3" 244 | } 245 | }, 246 | "async": { 247 | "version": "0.9.2", 248 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", 249 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", 250 | "dev": true 251 | }, 252 | "async-each": { 253 | "version": "1.0.1", 254 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 255 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 256 | "dev": true 257 | }, 258 | "asynckit": { 259 | "version": "0.4.0", 260 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 261 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 262 | }, 263 | "balanced-match": { 264 | "version": "1.0.0", 265 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 266 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 267 | "dev": true 268 | }, 269 | "base64-js": { 270 | "version": "1.2.1", 271 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", 272 | "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", 273 | "dev": true 274 | }, 275 | "batch": { 276 | "version": "0.6.1", 277 | "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", 278 | "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", 279 | "dev": true 280 | }, 281 | "big.js": { 282 | "version": "3.2.0", 283 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", 284 | "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", 285 | "dev": true 286 | }, 287 | "binary-extensions": { 288 | "version": "1.10.0", 289 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", 290 | "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", 291 | "dev": true 292 | }, 293 | "bluebird": { 294 | "version": "3.5.1", 295 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 296 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", 297 | "dev": true 298 | }, 299 | "bn.js": { 300 | "version": "4.11.8", 301 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 302 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", 303 | "dev": true 304 | }, 305 | "body-parser": { 306 | "version": "1.18.2", 307 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", 308 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", 309 | "dev": true, 310 | "requires": { 311 | "bytes": "3.0.0", 312 | "content-type": "1.0.4", 313 | "debug": "2.6.9", 314 | "depd": "1.1.1", 315 | "http-errors": "1.6.2", 316 | "iconv-lite": "0.4.19", 317 | "on-finished": "2.3.0", 318 | "qs": "6.5.1", 319 | "raw-body": "2.3.2", 320 | "type-is": "1.6.15" 321 | } 322 | }, 323 | "bonjour": { 324 | "version": "3.5.0", 325 | "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", 326 | "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", 327 | "dev": true, 328 | "requires": { 329 | "array-flatten": "2.1.1", 330 | "deep-equal": "1.0.1", 331 | "dns-equal": "1.0.0", 332 | "dns-txt": "2.0.2", 333 | "multicast-dns": "6.1.1", 334 | "multicast-dns-service-types": "1.1.0" 335 | } 336 | }, 337 | "boolbase": { 338 | "version": "1.0.0", 339 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 340 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", 341 | "dev": true 342 | }, 343 | "brace-expansion": { 344 | "version": "1.1.8", 345 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 346 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 347 | "dev": true, 348 | "requires": { 349 | "balanced-match": "1.0.0", 350 | "concat-map": "0.0.1" 351 | } 352 | }, 353 | "braces": { 354 | "version": "1.8.5", 355 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 356 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 357 | "dev": true, 358 | "requires": { 359 | "expand-range": "1.8.2", 360 | "preserve": "0.2.0", 361 | "repeat-element": "1.1.2" 362 | } 363 | }, 364 | "brorand": { 365 | "version": "1.1.0", 366 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 367 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 368 | "dev": true 369 | }, 370 | "browserify-aes": { 371 | "version": "1.1.0", 372 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.0.tgz", 373 | "integrity": "sha512-W2bIMLYoZ9oow7TyePpMJk9l9LY7O3R61a/68bVCDOtnJynnwe3ZeW2IzzSkrQnPKNdJrxVDn3ALZNisSBwb7g==", 374 | "dev": true, 375 | "requires": { 376 | "buffer-xor": "1.0.3", 377 | "cipher-base": "1.0.4", 378 | "create-hash": "1.1.3", 379 | "evp_bytestokey": "1.0.3", 380 | "inherits": "2.0.3", 381 | "safe-buffer": "5.1.1" 382 | } 383 | }, 384 | "browserify-cipher": { 385 | "version": "1.0.0", 386 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", 387 | "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", 388 | "dev": true, 389 | "requires": { 390 | "browserify-aes": "1.1.0", 391 | "browserify-des": "1.0.0", 392 | "evp_bytestokey": "1.0.3" 393 | } 394 | }, 395 | "browserify-des": { 396 | "version": "1.0.0", 397 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", 398 | "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", 399 | "dev": true, 400 | "requires": { 401 | "cipher-base": "1.0.4", 402 | "des.js": "1.0.0", 403 | "inherits": "2.0.3" 404 | } 405 | }, 406 | "browserify-rsa": { 407 | "version": "4.0.1", 408 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 409 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 410 | "dev": true, 411 | "requires": { 412 | "bn.js": "4.11.8", 413 | "randombytes": "2.0.5" 414 | } 415 | }, 416 | "browserify-sign": { 417 | "version": "4.0.4", 418 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 419 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 420 | "dev": true, 421 | "requires": { 422 | "bn.js": "4.11.8", 423 | "browserify-rsa": "4.0.1", 424 | "create-hash": "1.1.3", 425 | "create-hmac": "1.1.6", 426 | "elliptic": "6.4.0", 427 | "inherits": "2.0.3", 428 | "parse-asn1": "5.1.0" 429 | } 430 | }, 431 | "browserify-zlib": { 432 | "version": "0.1.4", 433 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", 434 | "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", 435 | "dev": true, 436 | "requires": { 437 | "pako": "0.2.9" 438 | } 439 | }, 440 | "buffer": { 441 | "version": "4.9.1", 442 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 443 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 444 | "dev": true, 445 | "requires": { 446 | "base64-js": "1.2.1", 447 | "ieee754": "1.1.8", 448 | "isarray": "1.0.0" 449 | } 450 | }, 451 | "buffer-indexof": { 452 | "version": "1.1.1", 453 | "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", 454 | "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", 455 | "dev": true 456 | }, 457 | "buffer-xor": { 458 | "version": "1.0.3", 459 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 460 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 461 | "dev": true 462 | }, 463 | "builtin-modules": { 464 | "version": "1.1.1", 465 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 466 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 467 | "dev": true 468 | }, 469 | "builtin-status-codes": { 470 | "version": "3.0.0", 471 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 472 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 473 | "dev": true 474 | }, 475 | "bytes": { 476 | "version": "3.0.0", 477 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 478 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", 479 | "dev": true 480 | }, 481 | "cacache": { 482 | "version": "9.3.0", 483 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-9.3.0.tgz", 484 | "integrity": "sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g==", 485 | "dev": true, 486 | "requires": { 487 | "bluebird": "3.5.1", 488 | "chownr": "1.0.1", 489 | "glob": "7.1.2", 490 | "graceful-fs": "4.1.11", 491 | "lru-cache": "4.1.1", 492 | "mississippi": "1.3.0", 493 | "mkdirp": "0.5.1", 494 | "move-concurrently": "1.0.1", 495 | "promise-inflight": "1.0.1", 496 | "rimraf": "2.6.2", 497 | "ssri": "4.1.6", 498 | "unique-filename": "1.1.0", 499 | "y18n": "3.2.1" 500 | } 501 | }, 502 | "camel-case": { 503 | "version": "3.0.0", 504 | "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", 505 | "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", 506 | "dev": true, 507 | "requires": { 508 | "no-case": "2.3.2", 509 | "upper-case": "1.1.3" 510 | } 511 | }, 512 | "camelcase": { 513 | "version": "1.2.1", 514 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 515 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 516 | "dev": true 517 | }, 518 | "camelcase-keys": { 519 | "version": "2.1.0", 520 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 521 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 522 | "dev": true, 523 | "requires": { 524 | "camelcase": "2.1.1", 525 | "map-obj": "1.0.1" 526 | }, 527 | "dependencies": { 528 | "camelcase": { 529 | "version": "2.1.1", 530 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 531 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 532 | "dev": true 533 | } 534 | } 535 | }, 536 | "center-align": { 537 | "version": "0.1.3", 538 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 539 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 540 | "dev": true, 541 | "requires": { 542 | "align-text": "0.1.4", 543 | "lazy-cache": "1.0.4" 544 | } 545 | }, 546 | "chalk": { 547 | "version": "2.2.0", 548 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", 549 | "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", 550 | "dev": true, 551 | "requires": { 552 | "ansi-styles": "3.2.0", 553 | "escape-string-regexp": "1.0.5", 554 | "supports-color": "4.5.0" 555 | } 556 | }, 557 | "chokidar": { 558 | "version": "1.7.0", 559 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 560 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 561 | "dev": true, 562 | "requires": { 563 | "anymatch": "1.3.2", 564 | "async-each": "1.0.1", 565 | "glob-parent": "2.0.0", 566 | "inherits": "2.0.3", 567 | "is-binary-path": "1.0.1", 568 | "is-glob": "2.0.1", 569 | "path-is-absolute": "1.0.1", 570 | "readdirp": "2.1.0" 571 | } 572 | }, 573 | "chownr": { 574 | "version": "1.0.1", 575 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", 576 | "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", 577 | "dev": true 578 | }, 579 | "cipher-base": { 580 | "version": "1.0.4", 581 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 582 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 583 | "dev": true, 584 | "requires": { 585 | "inherits": "2.0.3", 586 | "safe-buffer": "5.1.1" 587 | } 588 | }, 589 | "clean-css": { 590 | "version": "4.1.9", 591 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", 592 | "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", 593 | "dev": true, 594 | "requires": { 595 | "source-map": "0.5.7" 596 | }, 597 | "dependencies": { 598 | "source-map": { 599 | "version": "0.5.7", 600 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 601 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 602 | "dev": true 603 | } 604 | } 605 | }, 606 | "cliui": { 607 | "version": "2.1.0", 608 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 609 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 610 | "dev": true, 611 | "requires": { 612 | "center-align": "0.1.3", 613 | "right-align": "0.1.3", 614 | "wordwrap": "0.0.2" 615 | } 616 | }, 617 | "co": { 618 | "version": "4.6.0", 619 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 620 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 621 | "dev": true 622 | }, 623 | "code-point-at": { 624 | "version": "1.1.0", 625 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 626 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 627 | "dev": true 628 | }, 629 | "color-convert": { 630 | "version": "1.9.0", 631 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", 632 | "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", 633 | "dev": true, 634 | "requires": { 635 | "color-name": "1.1.3" 636 | } 637 | }, 638 | "color-name": { 639 | "version": "1.1.3", 640 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 641 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 642 | "dev": true 643 | }, 644 | "combined-stream": { 645 | "version": "1.0.5", 646 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 647 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 648 | "requires": { 649 | "delayed-stream": "1.0.0" 650 | } 651 | }, 652 | "commander": { 653 | "version": "2.11.0", 654 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 655 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 656 | "dev": true 657 | }, 658 | "commondir": { 659 | "version": "1.0.1", 660 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 661 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 662 | "dev": true 663 | }, 664 | "component-emitter": { 665 | "version": "1.2.1", 666 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", 667 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" 668 | }, 669 | "compressible": { 670 | "version": "2.0.11", 671 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz", 672 | "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=", 673 | "dev": true, 674 | "requires": { 675 | "mime-db": "1.30.0" 676 | } 677 | }, 678 | "compression": { 679 | "version": "1.7.1", 680 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", 681 | "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", 682 | "dev": true, 683 | "requires": { 684 | "accepts": "1.3.4", 685 | "bytes": "3.0.0", 686 | "compressible": "2.0.11", 687 | "debug": "2.6.9", 688 | "on-headers": "1.0.1", 689 | "safe-buffer": "5.1.1", 690 | "vary": "1.1.2" 691 | } 692 | }, 693 | "concat-map": { 694 | "version": "0.0.1", 695 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 696 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 697 | "dev": true 698 | }, 699 | "concat-stream": { 700 | "version": "1.6.0", 701 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 702 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 703 | "dev": true, 704 | "requires": { 705 | "inherits": "2.0.3", 706 | "readable-stream": "2.3.3", 707 | "typedarray": "0.0.6" 708 | } 709 | }, 710 | "connect-history-api-fallback": { 711 | "version": "1.4.0", 712 | "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz", 713 | "integrity": "sha1-PbJPlz9LkjsOgvYZzg3wJBHKYj0=", 714 | "dev": true 715 | }, 716 | "console-browserify": { 717 | "version": "1.1.0", 718 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 719 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 720 | "dev": true, 721 | "requires": { 722 | "date-now": "0.1.4" 723 | } 724 | }, 725 | "constants-browserify": { 726 | "version": "1.0.0", 727 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 728 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 729 | "dev": true 730 | }, 731 | "content-disposition": { 732 | "version": "0.5.2", 733 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 734 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", 735 | "dev": true 736 | }, 737 | "content-type": { 738 | "version": "1.0.4", 739 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 740 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 741 | "dev": true 742 | }, 743 | "cookie": { 744 | "version": "0.3.1", 745 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 746 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", 747 | "dev": true 748 | }, 749 | "cookie-signature": { 750 | "version": "1.0.6", 751 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 752 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", 753 | "dev": true 754 | }, 755 | "cookiejar": { 756 | "version": "2.1.1", 757 | "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", 758 | "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=" 759 | }, 760 | "copy-concurrently": { 761 | "version": "1.0.5", 762 | "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", 763 | "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", 764 | "dev": true, 765 | "requires": { 766 | "aproba": "1.2.0", 767 | "fs-write-stream-atomic": "1.0.10", 768 | "iferr": "0.1.5", 769 | "mkdirp": "0.5.1", 770 | "rimraf": "2.6.2", 771 | "run-queue": "1.0.3" 772 | } 773 | }, 774 | "copy-webpack-plugin": { 775 | "version": "4.1.1", 776 | "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.1.1.tgz", 777 | "integrity": "sha512-qcjV9uj5PFuKo9GDr0xYAZ3DwFA3ugwDcfbLHfiDrvnUx66Z7C4r00/ds856GaGb2cGHqLTwrGxwfvW+lgAQew==", 778 | "dev": true, 779 | "requires": { 780 | "bluebird": "3.5.1", 781 | "fs-extra": "4.0.2", 782 | "glob": "7.1.2", 783 | "is-glob": "4.0.0", 784 | "loader-utils": "0.2.17", 785 | "lodash": "4.17.4", 786 | "minimatch": "3.0.4", 787 | "node-dir": "0.1.17" 788 | }, 789 | "dependencies": { 790 | "is-extglob": { 791 | "version": "2.1.1", 792 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 793 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 794 | "dev": true 795 | }, 796 | "is-glob": { 797 | "version": "4.0.0", 798 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", 799 | "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", 800 | "dev": true, 801 | "requires": { 802 | "is-extglob": "2.1.1" 803 | } 804 | } 805 | } 806 | }, 807 | "core-util-is": { 808 | "version": "1.0.2", 809 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 810 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 811 | }, 812 | "create-ecdh": { 813 | "version": "4.0.0", 814 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", 815 | "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", 816 | "dev": true, 817 | "requires": { 818 | "bn.js": "4.11.8", 819 | "elliptic": "6.4.0" 820 | } 821 | }, 822 | "create-hash": { 823 | "version": "1.1.3", 824 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", 825 | "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", 826 | "dev": true, 827 | "requires": { 828 | "cipher-base": "1.0.4", 829 | "inherits": "2.0.3", 830 | "ripemd160": "2.0.1", 831 | "sha.js": "2.4.9" 832 | } 833 | }, 834 | "create-hmac": { 835 | "version": "1.1.6", 836 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", 837 | "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", 838 | "dev": true, 839 | "requires": { 840 | "cipher-base": "1.0.4", 841 | "create-hash": "1.1.3", 842 | "inherits": "2.0.3", 843 | "ripemd160": "2.0.1", 844 | "safe-buffer": "5.1.1", 845 | "sha.js": "2.4.9" 846 | } 847 | }, 848 | "cross-env": { 849 | "version": "5.1.0", 850 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.0.tgz", 851 | "integrity": "sha512-R+0paw9UZQc7odHjIxElqyYotgyMlhcUMTfRxiv4I22grgvS5WOSSfCpyfAZUDhP/c9ShSRv+Hzfxs6fY4JA7g==", 852 | "dev": true, 853 | "requires": { 854 | "cross-spawn": "5.1.0", 855 | "is-windows": "1.0.1" 856 | } 857 | }, 858 | "cross-spawn": { 859 | "version": "5.1.0", 860 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 861 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 862 | "dev": true, 863 | "requires": { 864 | "lru-cache": "4.1.1", 865 | "shebang-command": "1.2.0", 866 | "which": "1.3.0" 867 | } 868 | }, 869 | "crypto-browserify": { 870 | "version": "3.11.1", 871 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", 872 | "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", 873 | "dev": true, 874 | "requires": { 875 | "browserify-cipher": "1.0.0", 876 | "browserify-sign": "4.0.4", 877 | "create-ecdh": "4.0.0", 878 | "create-hash": "1.1.3", 879 | "create-hmac": "1.1.6", 880 | "diffie-hellman": "5.0.2", 881 | "inherits": "2.0.3", 882 | "pbkdf2": "3.0.14", 883 | "public-encrypt": "4.0.0", 884 | "randombytes": "2.0.5" 885 | } 886 | }, 887 | "css-select": { 888 | "version": "1.2.0", 889 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", 890 | "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", 891 | "dev": true, 892 | "requires": { 893 | "boolbase": "1.0.0", 894 | "css-what": "2.1.0", 895 | "domutils": "1.5.1", 896 | "nth-check": "1.0.1" 897 | } 898 | }, 899 | "css-what": { 900 | "version": "2.1.0", 901 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", 902 | "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", 903 | "dev": true 904 | }, 905 | "cssauron": { 906 | "version": "1.4.0", 907 | "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", 908 | "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", 909 | "requires": { 910 | "through": "2.3.8" 911 | } 912 | }, 913 | "csstips": { 914 | "version": "0.2.2", 915 | "resolved": "https://registry.npmjs.org/csstips/-/csstips-0.2.2.tgz", 916 | "integrity": "sha1-uOClGUqkOr4WCuZuyykTYoON9oM=" 917 | }, 918 | "csx": { 919 | "version": "8.5.0", 920 | "resolved": "https://registry.npmjs.org/csx/-/csx-8.5.0.tgz", 921 | "integrity": "sha512-eSlD5gAfRztU64a5u6Rt6agNYcNti3Bv0c5weLXyQZRKhE1/hBGKIAZSw6mXcFhoPZIv2xlrTPpYdXmU9A6U2A==" 922 | }, 923 | "currently-unhandled": { 924 | "version": "0.4.1", 925 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 926 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 927 | "dev": true, 928 | "requires": { 929 | "array-find-index": "1.0.2" 930 | } 931 | }, 932 | "cyclist": { 933 | "version": "0.2.2", 934 | "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", 935 | "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", 936 | "dev": true 937 | }, 938 | "d": { 939 | "version": "1.0.0", 940 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", 941 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", 942 | "requires": { 943 | "es5-ext": "0.10.35" 944 | } 945 | }, 946 | "date-now": { 947 | "version": "0.1.4", 948 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 949 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 950 | "dev": true 951 | }, 952 | "debug": { 953 | "version": "2.6.9", 954 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 955 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 956 | "dev": true, 957 | "requires": { 958 | "ms": "2.0.0" 959 | } 960 | }, 961 | "decamelize": { 962 | "version": "1.2.0", 963 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 964 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 965 | "dev": true 966 | }, 967 | "deep-equal": { 968 | "version": "1.0.1", 969 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", 970 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", 971 | "dev": true 972 | }, 973 | "define-properties": { 974 | "version": "1.1.2", 975 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", 976 | "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", 977 | "dev": true, 978 | "requires": { 979 | "foreach": "2.0.5", 980 | "object-keys": "1.0.11" 981 | } 982 | }, 983 | "del": { 984 | "version": "3.0.0", 985 | "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", 986 | "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", 987 | "dev": true, 988 | "requires": { 989 | "globby": "6.1.0", 990 | "is-path-cwd": "1.0.0", 991 | "is-path-in-cwd": "1.0.0", 992 | "p-map": "1.2.0", 993 | "pify": "3.0.0", 994 | "rimraf": "2.6.2" 995 | }, 996 | "dependencies": { 997 | "pify": { 998 | "version": "3.0.0", 999 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1000 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 1001 | "dev": true 1002 | } 1003 | } 1004 | }, 1005 | "delayed-stream": { 1006 | "version": "1.0.0", 1007 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1008 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 1009 | }, 1010 | "depd": { 1011 | "version": "1.1.1", 1012 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", 1013 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", 1014 | "dev": true 1015 | }, 1016 | "des.js": { 1017 | "version": "1.0.0", 1018 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 1019 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 1020 | "dev": true, 1021 | "requires": { 1022 | "inherits": "2.0.3", 1023 | "minimalistic-assert": "1.0.0" 1024 | } 1025 | }, 1026 | "destroy": { 1027 | "version": "1.0.4", 1028 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 1029 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", 1030 | "dev": true 1031 | }, 1032 | "detect-node": { 1033 | "version": "2.0.3", 1034 | "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", 1035 | "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", 1036 | "dev": true 1037 | }, 1038 | "diffie-hellman": { 1039 | "version": "5.0.2", 1040 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", 1041 | "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", 1042 | "dev": true, 1043 | "requires": { 1044 | "bn.js": "4.11.8", 1045 | "miller-rabin": "4.0.1", 1046 | "randombytes": "2.0.5" 1047 | } 1048 | }, 1049 | "dns-equal": { 1050 | "version": "1.0.0", 1051 | "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", 1052 | "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", 1053 | "dev": true 1054 | }, 1055 | "dns-packet": { 1056 | "version": "1.2.2", 1057 | "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", 1058 | "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", 1059 | "dev": true, 1060 | "requires": { 1061 | "ip": "1.1.5", 1062 | "safe-buffer": "5.1.1" 1063 | } 1064 | }, 1065 | "dns-txt": { 1066 | "version": "2.0.2", 1067 | "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", 1068 | "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", 1069 | "dev": true, 1070 | "requires": { 1071 | "buffer-indexof": "1.1.1" 1072 | } 1073 | }, 1074 | "dom-converter": { 1075 | "version": "0.1.4", 1076 | "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", 1077 | "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", 1078 | "dev": true, 1079 | "requires": { 1080 | "utila": "0.3.3" 1081 | }, 1082 | "dependencies": { 1083 | "utila": { 1084 | "version": "0.3.3", 1085 | "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", 1086 | "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", 1087 | "dev": true 1088 | } 1089 | } 1090 | }, 1091 | "dom-serializer": { 1092 | "version": "0.1.0", 1093 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", 1094 | "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", 1095 | "dev": true, 1096 | "requires": { 1097 | "domelementtype": "1.1.3", 1098 | "entities": "1.1.1" 1099 | }, 1100 | "dependencies": { 1101 | "domelementtype": { 1102 | "version": "1.1.3", 1103 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", 1104 | "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", 1105 | "dev": true 1106 | } 1107 | } 1108 | }, 1109 | "domain-browser": { 1110 | "version": "1.1.7", 1111 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", 1112 | "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", 1113 | "dev": true 1114 | }, 1115 | "domelementtype": { 1116 | "version": "1.3.0", 1117 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", 1118 | "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", 1119 | "dev": true 1120 | }, 1121 | "domhandler": { 1122 | "version": "2.1.0", 1123 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", 1124 | "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", 1125 | "dev": true, 1126 | "requires": { 1127 | "domelementtype": "1.3.0" 1128 | } 1129 | }, 1130 | "domutils": { 1131 | "version": "1.5.1", 1132 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", 1133 | "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 1134 | "dev": true, 1135 | "requires": { 1136 | "dom-serializer": "0.1.0", 1137 | "domelementtype": "1.3.0" 1138 | } 1139 | }, 1140 | "duplexify": { 1141 | "version": "3.5.1", 1142 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", 1143 | "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", 1144 | "dev": true, 1145 | "requires": { 1146 | "end-of-stream": "1.4.0", 1147 | "inherits": "2.0.3", 1148 | "readable-stream": "2.3.3", 1149 | "stream-shift": "1.0.0" 1150 | } 1151 | }, 1152 | "ee-first": { 1153 | "version": "1.1.1", 1154 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1155 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", 1156 | "dev": true 1157 | }, 1158 | "elliptic": { 1159 | "version": "6.4.0", 1160 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", 1161 | "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", 1162 | "dev": true, 1163 | "requires": { 1164 | "bn.js": "4.11.8", 1165 | "brorand": "1.1.0", 1166 | "hash.js": "1.1.3", 1167 | "hmac-drbg": "1.0.1", 1168 | "inherits": "2.0.3", 1169 | "minimalistic-assert": "1.0.0", 1170 | "minimalistic-crypto-utils": "1.0.1" 1171 | } 1172 | }, 1173 | "emojis-list": { 1174 | "version": "2.1.0", 1175 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 1176 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", 1177 | "dev": true 1178 | }, 1179 | "encodeurl": { 1180 | "version": "1.0.1", 1181 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", 1182 | "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", 1183 | "dev": true 1184 | }, 1185 | "end-of-stream": { 1186 | "version": "1.4.0", 1187 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", 1188 | "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", 1189 | "dev": true, 1190 | "requires": { 1191 | "once": "1.4.0" 1192 | } 1193 | }, 1194 | "enhanced-resolve": { 1195 | "version": "3.4.1", 1196 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", 1197 | "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", 1198 | "dev": true, 1199 | "requires": { 1200 | "graceful-fs": "4.1.11", 1201 | "memory-fs": "0.4.1", 1202 | "object-assign": "4.1.1", 1203 | "tapable": "0.2.8" 1204 | } 1205 | }, 1206 | "entities": { 1207 | "version": "1.1.1", 1208 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", 1209 | "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", 1210 | "dev": true 1211 | }, 1212 | "errno": { 1213 | "version": "0.1.4", 1214 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", 1215 | "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", 1216 | "dev": true, 1217 | "requires": { 1218 | "prr": "0.0.0" 1219 | } 1220 | }, 1221 | "error-ex": { 1222 | "version": "1.3.1", 1223 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 1224 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 1225 | "dev": true, 1226 | "requires": { 1227 | "is-arrayish": "0.2.1" 1228 | } 1229 | }, 1230 | "es-abstract": { 1231 | "version": "1.9.0", 1232 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", 1233 | "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", 1234 | "dev": true, 1235 | "requires": { 1236 | "es-to-primitive": "1.1.1", 1237 | "function-bind": "1.1.1", 1238 | "has": "1.0.1", 1239 | "is-callable": "1.1.3", 1240 | "is-regex": "1.0.4" 1241 | } 1242 | }, 1243 | "es-to-primitive": { 1244 | "version": "1.1.1", 1245 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", 1246 | "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", 1247 | "dev": true, 1248 | "requires": { 1249 | "is-callable": "1.1.3", 1250 | "is-date-object": "1.0.1", 1251 | "is-symbol": "1.0.1" 1252 | } 1253 | }, 1254 | "es5-ext": { 1255 | "version": "0.10.35", 1256 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", 1257 | "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", 1258 | "requires": { 1259 | "es6-iterator": "2.0.3", 1260 | "es6-symbol": "3.1.1" 1261 | } 1262 | }, 1263 | "es6-iterator": { 1264 | "version": "2.0.3", 1265 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 1266 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", 1267 | "requires": { 1268 | "d": "1.0.0", 1269 | "es5-ext": "0.10.35", 1270 | "es6-symbol": "3.1.1" 1271 | } 1272 | }, 1273 | "es6-map": { 1274 | "version": "0.1.5", 1275 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", 1276 | "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", 1277 | "requires": { 1278 | "d": "1.0.0", 1279 | "es5-ext": "0.10.35", 1280 | "es6-iterator": "2.0.3", 1281 | "es6-set": "0.1.5", 1282 | "es6-symbol": "3.1.1", 1283 | "event-emitter": "0.3.5" 1284 | } 1285 | }, 1286 | "es6-set": { 1287 | "version": "0.1.5", 1288 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", 1289 | "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", 1290 | "requires": { 1291 | "d": "1.0.0", 1292 | "es5-ext": "0.10.35", 1293 | "es6-iterator": "2.0.3", 1294 | "es6-symbol": "3.1.1", 1295 | "event-emitter": "0.3.5" 1296 | } 1297 | }, 1298 | "es6-symbol": { 1299 | "version": "3.1.1", 1300 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", 1301 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", 1302 | "requires": { 1303 | "d": "1.0.0", 1304 | "es5-ext": "0.10.35" 1305 | } 1306 | }, 1307 | "es6-weak-map": { 1308 | "version": "2.0.2", 1309 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", 1310 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", 1311 | "dev": true, 1312 | "requires": { 1313 | "d": "1.0.0", 1314 | "es5-ext": "0.10.35", 1315 | "es6-iterator": "2.0.3", 1316 | "es6-symbol": "3.1.1" 1317 | } 1318 | }, 1319 | "escape-html": { 1320 | "version": "1.0.3", 1321 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1322 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", 1323 | "dev": true 1324 | }, 1325 | "escape-string-regexp": { 1326 | "version": "1.0.5", 1327 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1328 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1329 | "dev": true 1330 | }, 1331 | "escope": { 1332 | "version": "3.6.0", 1333 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", 1334 | "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", 1335 | "dev": true, 1336 | "requires": { 1337 | "es6-map": "0.1.5", 1338 | "es6-weak-map": "2.0.2", 1339 | "esrecurse": "4.2.0", 1340 | "estraverse": "4.2.0" 1341 | } 1342 | }, 1343 | "esrecurse": { 1344 | "version": "4.2.0", 1345 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 1346 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 1347 | "dev": true, 1348 | "requires": { 1349 | "estraverse": "4.2.0", 1350 | "object-assign": "4.1.1" 1351 | } 1352 | }, 1353 | "estraverse": { 1354 | "version": "4.2.0", 1355 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1356 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1357 | "dev": true 1358 | }, 1359 | "etag": { 1360 | "version": "1.8.1", 1361 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1362 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 1363 | "dev": true 1364 | }, 1365 | "event-emitter": { 1366 | "version": "0.3.5", 1367 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 1368 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 1369 | "requires": { 1370 | "d": "1.0.0", 1371 | "es5-ext": "0.10.35" 1372 | } 1373 | }, 1374 | "eventemitter3": { 1375 | "version": "1.2.0", 1376 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", 1377 | "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", 1378 | "dev": true 1379 | }, 1380 | "events": { 1381 | "version": "1.1.1", 1382 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 1383 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", 1384 | "dev": true 1385 | }, 1386 | "eventsource": { 1387 | "version": "0.1.6", 1388 | "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", 1389 | "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", 1390 | "dev": true, 1391 | "requires": { 1392 | "original": "1.0.0" 1393 | } 1394 | }, 1395 | "evp_bytestokey": { 1396 | "version": "1.0.3", 1397 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 1398 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 1399 | "dev": true, 1400 | "requires": { 1401 | "md5.js": "1.3.4", 1402 | "safe-buffer": "5.1.1" 1403 | } 1404 | }, 1405 | "execa": { 1406 | "version": "0.7.0", 1407 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 1408 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 1409 | "dev": true, 1410 | "requires": { 1411 | "cross-spawn": "5.1.0", 1412 | "get-stream": "3.0.0", 1413 | "is-stream": "1.1.0", 1414 | "npm-run-path": "2.0.2", 1415 | "p-finally": "1.0.0", 1416 | "signal-exit": "3.0.2", 1417 | "strip-eof": "1.0.0" 1418 | } 1419 | }, 1420 | "expand-brackets": { 1421 | "version": "0.1.5", 1422 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1423 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1424 | "dev": true, 1425 | "requires": { 1426 | "is-posix-bracket": "0.1.1" 1427 | } 1428 | }, 1429 | "expand-range": { 1430 | "version": "1.8.2", 1431 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1432 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1433 | "dev": true, 1434 | "requires": { 1435 | "fill-range": "2.2.3" 1436 | } 1437 | }, 1438 | "express": { 1439 | "version": "4.16.2", 1440 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", 1441 | "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", 1442 | "dev": true, 1443 | "requires": { 1444 | "accepts": "1.3.4", 1445 | "array-flatten": "1.1.1", 1446 | "body-parser": "1.18.2", 1447 | "content-disposition": "0.5.2", 1448 | "content-type": "1.0.4", 1449 | "cookie": "0.3.1", 1450 | "cookie-signature": "1.0.6", 1451 | "debug": "2.6.9", 1452 | "depd": "1.1.1", 1453 | "encodeurl": "1.0.1", 1454 | "escape-html": "1.0.3", 1455 | "etag": "1.8.1", 1456 | "finalhandler": "1.1.0", 1457 | "fresh": "0.5.2", 1458 | "merge-descriptors": "1.0.1", 1459 | "methods": "1.1.2", 1460 | "on-finished": "2.3.0", 1461 | "parseurl": "1.3.2", 1462 | "path-to-regexp": "0.1.7", 1463 | "proxy-addr": "2.0.2", 1464 | "qs": "6.5.1", 1465 | "range-parser": "1.2.0", 1466 | "safe-buffer": "5.1.1", 1467 | "send": "0.16.1", 1468 | "serve-static": "1.13.1", 1469 | "setprototypeof": "1.1.0", 1470 | "statuses": "1.3.1", 1471 | "type-is": "1.6.15", 1472 | "utils-merge": "1.0.1", 1473 | "vary": "1.1.2" 1474 | }, 1475 | "dependencies": { 1476 | "array-flatten": { 1477 | "version": "1.1.1", 1478 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 1479 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", 1480 | "dev": true 1481 | } 1482 | } 1483 | }, 1484 | "extend": { 1485 | "version": "3.0.1", 1486 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1487 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" 1488 | }, 1489 | "extglob": { 1490 | "version": "0.3.2", 1491 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1492 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1493 | "dev": true, 1494 | "requires": { 1495 | "is-extglob": "1.0.0" 1496 | } 1497 | }, 1498 | "fast-deep-equal": { 1499 | "version": "1.0.0", 1500 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 1501 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", 1502 | "dev": true 1503 | }, 1504 | "faye-websocket": { 1505 | "version": "0.10.0", 1506 | "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", 1507 | "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", 1508 | "dev": true, 1509 | "requires": { 1510 | "websocket-driver": "0.7.0" 1511 | } 1512 | }, 1513 | "filename-regex": { 1514 | "version": "2.0.1", 1515 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1516 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1517 | "dev": true 1518 | }, 1519 | "fill-range": { 1520 | "version": "2.2.3", 1521 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1522 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1523 | "dev": true, 1524 | "requires": { 1525 | "is-number": "2.1.0", 1526 | "isobject": "2.1.0", 1527 | "randomatic": "1.1.7", 1528 | "repeat-element": "1.1.2", 1529 | "repeat-string": "1.6.1" 1530 | } 1531 | }, 1532 | "finalhandler": { 1533 | "version": "1.1.0", 1534 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", 1535 | "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", 1536 | "dev": true, 1537 | "requires": { 1538 | "debug": "2.6.9", 1539 | "encodeurl": "1.0.1", 1540 | "escape-html": "1.0.3", 1541 | "on-finished": "2.3.0", 1542 | "parseurl": "1.3.2", 1543 | "statuses": "1.3.1", 1544 | "unpipe": "1.0.0" 1545 | } 1546 | }, 1547 | "find-cache-dir": { 1548 | "version": "1.0.0", 1549 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", 1550 | "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", 1551 | "dev": true, 1552 | "requires": { 1553 | "commondir": "1.0.1", 1554 | "make-dir": "1.0.0", 1555 | "pkg-dir": "2.0.0" 1556 | } 1557 | }, 1558 | "find-up": { 1559 | "version": "2.1.0", 1560 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1561 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1562 | "dev": true, 1563 | "requires": { 1564 | "locate-path": "2.0.0" 1565 | } 1566 | }, 1567 | "flush-write-stream": { 1568 | "version": "1.0.2", 1569 | "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", 1570 | "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", 1571 | "dev": true, 1572 | "requires": { 1573 | "inherits": "2.0.3", 1574 | "readable-stream": "2.3.3" 1575 | } 1576 | }, 1577 | "for-in": { 1578 | "version": "1.0.2", 1579 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1580 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1581 | "dev": true 1582 | }, 1583 | "for-own": { 1584 | "version": "0.1.5", 1585 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1586 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1587 | "dev": true, 1588 | "requires": { 1589 | "for-in": "1.0.2" 1590 | } 1591 | }, 1592 | "foreach": { 1593 | "version": "2.0.5", 1594 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 1595 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 1596 | "dev": true 1597 | }, 1598 | "form-data": { 1599 | "version": "2.3.1", 1600 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", 1601 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", 1602 | "requires": { 1603 | "asynckit": "0.4.0", 1604 | "combined-stream": "1.0.5", 1605 | "mime-types": "2.1.17" 1606 | } 1607 | }, 1608 | "formidable": { 1609 | "version": "1.1.1", 1610 | "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", 1611 | "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" 1612 | }, 1613 | "forwarded": { 1614 | "version": "0.1.2", 1615 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 1616 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", 1617 | "dev": true 1618 | }, 1619 | "free-style": { 1620 | "version": "2.4.1", 1621 | "resolved": "https://registry.npmjs.org/free-style/-/free-style-2.4.1.tgz", 1622 | "integrity": "sha512-MvYHzGTpNbEdESMD0Luj3GOf5PEfnl+jIpkss1C3nexFzvAnDO6GSS8PILvIErg5Cr8vwKH+1C9+q8ruLue41Q==" 1623 | }, 1624 | "fresh": { 1625 | "version": "0.5.2", 1626 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1627 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 1628 | "dev": true 1629 | }, 1630 | "from2": { 1631 | "version": "2.3.0", 1632 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 1633 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 1634 | "dev": true, 1635 | "requires": { 1636 | "inherits": "2.0.3", 1637 | "readable-stream": "2.3.3" 1638 | } 1639 | }, 1640 | "fs-extra": { 1641 | "version": "4.0.2", 1642 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", 1643 | "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", 1644 | "dev": true, 1645 | "requires": { 1646 | "graceful-fs": "4.1.11", 1647 | "jsonfile": "4.0.0", 1648 | "universalify": "0.1.1" 1649 | } 1650 | }, 1651 | "fs-write-stream-atomic": { 1652 | "version": "1.0.10", 1653 | "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", 1654 | "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", 1655 | "dev": true, 1656 | "requires": { 1657 | "graceful-fs": "4.1.11", 1658 | "iferr": "0.1.5", 1659 | "imurmurhash": "0.1.4", 1660 | "readable-stream": "2.3.3" 1661 | } 1662 | }, 1663 | "fs.realpath": { 1664 | "version": "1.0.0", 1665 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1666 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1667 | "dev": true 1668 | }, 1669 | "function-bind": { 1670 | "version": "1.1.1", 1671 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1672 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1673 | "dev": true 1674 | }, 1675 | "get-caller-file": { 1676 | "version": "1.0.2", 1677 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", 1678 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", 1679 | "dev": true 1680 | }, 1681 | "get-stdin": { 1682 | "version": "4.0.1", 1683 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 1684 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 1685 | "dev": true 1686 | }, 1687 | "get-stream": { 1688 | "version": "3.0.0", 1689 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1690 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1691 | "dev": true 1692 | }, 1693 | "glob": { 1694 | "version": "7.1.2", 1695 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1696 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1697 | "dev": true, 1698 | "requires": { 1699 | "fs.realpath": "1.0.0", 1700 | "inflight": "1.0.6", 1701 | "inherits": "2.0.3", 1702 | "minimatch": "3.0.4", 1703 | "once": "1.4.0", 1704 | "path-is-absolute": "1.0.1" 1705 | } 1706 | }, 1707 | "glob-base": { 1708 | "version": "0.3.0", 1709 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1710 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1711 | "dev": true, 1712 | "requires": { 1713 | "glob-parent": "2.0.0", 1714 | "is-glob": "2.0.1" 1715 | } 1716 | }, 1717 | "glob-parent": { 1718 | "version": "2.0.0", 1719 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1720 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1721 | "dev": true, 1722 | "requires": { 1723 | "is-glob": "2.0.1" 1724 | } 1725 | }, 1726 | "globby": { 1727 | "version": "6.1.0", 1728 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 1729 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", 1730 | "dev": true, 1731 | "requires": { 1732 | "array-union": "1.0.2", 1733 | "glob": "7.1.2", 1734 | "object-assign": "4.1.1", 1735 | "pify": "2.3.0", 1736 | "pinkie-promise": "2.0.1" 1737 | } 1738 | }, 1739 | "graceful-fs": { 1740 | "version": "4.1.11", 1741 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1742 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1743 | "dev": true 1744 | }, 1745 | "handle-thing": { 1746 | "version": "1.2.5", 1747 | "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", 1748 | "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", 1749 | "dev": true 1750 | }, 1751 | "has": { 1752 | "version": "1.0.1", 1753 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 1754 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 1755 | "dev": true, 1756 | "requires": { 1757 | "function-bind": "1.1.1" 1758 | } 1759 | }, 1760 | "has-flag": { 1761 | "version": "2.0.0", 1762 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 1763 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 1764 | "dev": true 1765 | }, 1766 | "hash-base": { 1767 | "version": "2.0.2", 1768 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", 1769 | "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", 1770 | "dev": true, 1771 | "requires": { 1772 | "inherits": "2.0.3" 1773 | } 1774 | }, 1775 | "hash.js": { 1776 | "version": "1.1.3", 1777 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", 1778 | "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", 1779 | "dev": true, 1780 | "requires": { 1781 | "inherits": "2.0.3", 1782 | "minimalistic-assert": "1.0.0" 1783 | } 1784 | }, 1785 | "he": { 1786 | "version": "1.1.1", 1787 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 1788 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", 1789 | "dev": true 1790 | }, 1791 | "history": { 1792 | "version": "4.6.3", 1793 | "resolved": "https://registry.npmjs.org/history/-/history-4.6.3.tgz", 1794 | "integrity": "sha1-bXI6hxLFgda+836MJvSu3G64aWc=", 1795 | "requires": { 1796 | "invariant": "2.2.2", 1797 | "loose-envify": "1.3.1", 1798 | "resolve-pathname": "2.2.0", 1799 | "value-equal": "0.2.1", 1800 | "warning": "3.0.0" 1801 | } 1802 | }, 1803 | "hmac-drbg": { 1804 | "version": "1.0.1", 1805 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 1806 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 1807 | "dev": true, 1808 | "requires": { 1809 | "hash.js": "1.1.3", 1810 | "minimalistic-assert": "1.0.0", 1811 | "minimalistic-crypto-utils": "1.0.1" 1812 | } 1813 | }, 1814 | "hosted-git-info": { 1815 | "version": "2.5.0", 1816 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 1817 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", 1818 | "dev": true 1819 | }, 1820 | "hpack.js": { 1821 | "version": "2.1.6", 1822 | "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", 1823 | "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", 1824 | "dev": true, 1825 | "requires": { 1826 | "inherits": "2.0.3", 1827 | "obuf": "1.1.1", 1828 | "readable-stream": "2.3.3", 1829 | "wbuf": "1.7.2" 1830 | } 1831 | }, 1832 | "html-entities": { 1833 | "version": "1.2.1", 1834 | "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", 1835 | "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", 1836 | "dev": true 1837 | }, 1838 | "html-minifier": { 1839 | "version": "3.5.6", 1840 | "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.6.tgz", 1841 | "integrity": "sha512-88FjtKrlak2XjczhxrBomgzV4jmGzM3UnHRBScRkJcmcRum0kb+IwhVAETJ8AVp7j0p3xugjSaw9L+RmI5/QOA==", 1842 | "dev": true, 1843 | "requires": { 1844 | "camel-case": "3.0.0", 1845 | "clean-css": "4.1.9", 1846 | "commander": "2.11.0", 1847 | "he": "1.1.1", 1848 | "ncname": "1.0.0", 1849 | "param-case": "2.1.1", 1850 | "relateurl": "0.2.7", 1851 | "uglify-js": "3.1.4" 1852 | }, 1853 | "dependencies": { 1854 | "source-map": { 1855 | "version": "0.6.1", 1856 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1857 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1858 | "dev": true 1859 | }, 1860 | "uglify-js": { 1861 | "version": "3.1.4", 1862 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.4.tgz", 1863 | "integrity": "sha512-DcbkPg11Lw2lAWpwCmQDX+qoR4JiII6ypsQmF6tscZtlxGPFAmSRUGuMoVT3/0EHqypVik/TpkH4ITiMJeQqQA==", 1864 | "dev": true, 1865 | "requires": { 1866 | "commander": "2.11.0", 1867 | "source-map": "0.6.1" 1868 | } 1869 | } 1870 | } 1871 | }, 1872 | "html-webpack-plugin": { 1873 | "version": "2.30.1", 1874 | "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", 1875 | "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", 1876 | "dev": true, 1877 | "requires": { 1878 | "bluebird": "3.5.1", 1879 | "html-minifier": "3.5.6", 1880 | "loader-utils": "0.2.17", 1881 | "lodash": "4.17.4", 1882 | "pretty-error": "2.1.1", 1883 | "toposort": "1.0.6" 1884 | } 1885 | }, 1886 | "htmlparser2": { 1887 | "version": "3.3.0", 1888 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", 1889 | "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", 1890 | "dev": true, 1891 | "requires": { 1892 | "domelementtype": "1.3.0", 1893 | "domhandler": "2.1.0", 1894 | "domutils": "1.1.6", 1895 | "readable-stream": "1.0.34" 1896 | }, 1897 | "dependencies": { 1898 | "domutils": { 1899 | "version": "1.1.6", 1900 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", 1901 | "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", 1902 | "dev": true, 1903 | "requires": { 1904 | "domelementtype": "1.3.0" 1905 | } 1906 | }, 1907 | "isarray": { 1908 | "version": "0.0.1", 1909 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1910 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 1911 | "dev": true 1912 | }, 1913 | "readable-stream": { 1914 | "version": "1.0.34", 1915 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1916 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 1917 | "dev": true, 1918 | "requires": { 1919 | "core-util-is": "1.0.2", 1920 | "inherits": "2.0.3", 1921 | "isarray": "0.0.1", 1922 | "string_decoder": "0.10.31" 1923 | } 1924 | }, 1925 | "string_decoder": { 1926 | "version": "0.10.31", 1927 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1928 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 1929 | "dev": true 1930 | } 1931 | } 1932 | }, 1933 | "http-deceiver": { 1934 | "version": "1.2.7", 1935 | "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", 1936 | "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", 1937 | "dev": true 1938 | }, 1939 | "http-errors": { 1940 | "version": "1.6.2", 1941 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", 1942 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 1943 | "dev": true, 1944 | "requires": { 1945 | "depd": "1.1.1", 1946 | "inherits": "2.0.3", 1947 | "setprototypeof": "1.0.3", 1948 | "statuses": "1.3.1" 1949 | }, 1950 | "dependencies": { 1951 | "setprototypeof": { 1952 | "version": "1.0.3", 1953 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 1954 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", 1955 | "dev": true 1956 | } 1957 | } 1958 | }, 1959 | "http-parser-js": { 1960 | "version": "0.4.9", 1961 | "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", 1962 | "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", 1963 | "dev": true 1964 | }, 1965 | "http-proxy": { 1966 | "version": "1.16.2", 1967 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", 1968 | "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", 1969 | "dev": true, 1970 | "requires": { 1971 | "eventemitter3": "1.2.0", 1972 | "requires-port": "1.0.0" 1973 | } 1974 | }, 1975 | "http-proxy-middleware": { 1976 | "version": "0.17.4", 1977 | "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", 1978 | "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", 1979 | "dev": true, 1980 | "requires": { 1981 | "http-proxy": "1.16.2", 1982 | "is-glob": "3.1.0", 1983 | "lodash": "4.17.4", 1984 | "micromatch": "2.3.11" 1985 | }, 1986 | "dependencies": { 1987 | "is-extglob": { 1988 | "version": "2.1.1", 1989 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1990 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1991 | "dev": true 1992 | }, 1993 | "is-glob": { 1994 | "version": "3.1.0", 1995 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 1996 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 1997 | "dev": true, 1998 | "requires": { 1999 | "is-extglob": "2.1.1" 2000 | } 2001 | } 2002 | } 2003 | }, 2004 | "https-browserify": { 2005 | "version": "0.0.1", 2006 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", 2007 | "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", 2008 | "dev": true 2009 | }, 2010 | "iconv-lite": { 2011 | "version": "0.4.19", 2012 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 2013 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", 2014 | "dev": true 2015 | }, 2016 | "ieee754": { 2017 | "version": "1.1.8", 2018 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", 2019 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", 2020 | "dev": true 2021 | }, 2022 | "iferr": { 2023 | "version": "0.1.5", 2024 | "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", 2025 | "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", 2026 | "dev": true 2027 | }, 2028 | "imurmurhash": { 2029 | "version": "0.1.4", 2030 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2031 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2032 | "dev": true 2033 | }, 2034 | "indent-string": { 2035 | "version": "2.1.0", 2036 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 2037 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 2038 | "dev": true, 2039 | "requires": { 2040 | "repeating": "2.0.1" 2041 | } 2042 | }, 2043 | "indexof": { 2044 | "version": "0.0.1", 2045 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 2046 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", 2047 | "dev": true 2048 | }, 2049 | "inflight": { 2050 | "version": "1.0.6", 2051 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2052 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2053 | "dev": true, 2054 | "requires": { 2055 | "once": "1.4.0", 2056 | "wrappy": "1.0.2" 2057 | } 2058 | }, 2059 | "inherits": { 2060 | "version": "2.0.3", 2061 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2062 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 2063 | }, 2064 | "internal-ip": { 2065 | "version": "1.2.0", 2066 | "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", 2067 | "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", 2068 | "dev": true, 2069 | "requires": { 2070 | "meow": "3.7.0" 2071 | } 2072 | }, 2073 | "interpret": { 2074 | "version": "1.0.4", 2075 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", 2076 | "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", 2077 | "dev": true 2078 | }, 2079 | "invariant": { 2080 | "version": "2.2.2", 2081 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 2082 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 2083 | "requires": { 2084 | "loose-envify": "1.3.1" 2085 | } 2086 | }, 2087 | "invert-kv": { 2088 | "version": "1.0.0", 2089 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 2090 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 2091 | "dev": true 2092 | }, 2093 | "ip": { 2094 | "version": "1.1.5", 2095 | "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", 2096 | "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", 2097 | "dev": true 2098 | }, 2099 | "ipaddr.js": { 2100 | "version": "1.5.2", 2101 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", 2102 | "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", 2103 | "dev": true 2104 | }, 2105 | "is-arrayish": { 2106 | "version": "0.2.1", 2107 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2108 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2109 | "dev": true 2110 | }, 2111 | "is-binary-path": { 2112 | "version": "1.0.1", 2113 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2114 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2115 | "dev": true, 2116 | "requires": { 2117 | "binary-extensions": "1.10.0" 2118 | } 2119 | }, 2120 | "is-buffer": { 2121 | "version": "1.1.5", 2122 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 2123 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 2124 | "dev": true 2125 | }, 2126 | "is-builtin-module": { 2127 | "version": "1.0.0", 2128 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2129 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2130 | "dev": true, 2131 | "requires": { 2132 | "builtin-modules": "1.1.1" 2133 | } 2134 | }, 2135 | "is-callable": { 2136 | "version": "1.1.3", 2137 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", 2138 | "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", 2139 | "dev": true 2140 | }, 2141 | "is-date-object": { 2142 | "version": "1.0.1", 2143 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 2144 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 2145 | "dev": true 2146 | }, 2147 | "is-dotfile": { 2148 | "version": "1.0.3", 2149 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 2150 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 2151 | "dev": true 2152 | }, 2153 | "is-equal-shallow": { 2154 | "version": "0.1.3", 2155 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2156 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2157 | "dev": true, 2158 | "requires": { 2159 | "is-primitive": "2.0.0" 2160 | } 2161 | }, 2162 | "is-extendable": { 2163 | "version": "0.1.1", 2164 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2165 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2166 | "dev": true 2167 | }, 2168 | "is-extglob": { 2169 | "version": "1.0.0", 2170 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2171 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2172 | "dev": true 2173 | }, 2174 | "is-finite": { 2175 | "version": "1.0.2", 2176 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2177 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2178 | "dev": true, 2179 | "requires": { 2180 | "number-is-nan": "1.0.1" 2181 | } 2182 | }, 2183 | "is-fullwidth-code-point": { 2184 | "version": "1.0.0", 2185 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2186 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2187 | "dev": true, 2188 | "requires": { 2189 | "number-is-nan": "1.0.1" 2190 | } 2191 | }, 2192 | "is-glob": { 2193 | "version": "2.0.1", 2194 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2195 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2196 | "dev": true, 2197 | "requires": { 2198 | "is-extglob": "1.0.0" 2199 | } 2200 | }, 2201 | "is-number": { 2202 | "version": "2.1.0", 2203 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2204 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2205 | "dev": true, 2206 | "requires": { 2207 | "kind-of": "3.2.2" 2208 | } 2209 | }, 2210 | "is-path-cwd": { 2211 | "version": "1.0.0", 2212 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 2213 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 2214 | "dev": true 2215 | }, 2216 | "is-path-in-cwd": { 2217 | "version": "1.0.0", 2218 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 2219 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 2220 | "dev": true, 2221 | "requires": { 2222 | "is-path-inside": "1.0.0" 2223 | } 2224 | }, 2225 | "is-path-inside": { 2226 | "version": "1.0.0", 2227 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 2228 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 2229 | "dev": true, 2230 | "requires": { 2231 | "path-is-inside": "1.0.2" 2232 | } 2233 | }, 2234 | "is-posix-bracket": { 2235 | "version": "0.1.1", 2236 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2237 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2238 | "dev": true 2239 | }, 2240 | "is-primitive": { 2241 | "version": "2.0.0", 2242 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2243 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2244 | "dev": true 2245 | }, 2246 | "is-regex": { 2247 | "version": "1.0.4", 2248 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 2249 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 2250 | "dev": true, 2251 | "requires": { 2252 | "has": "1.0.1" 2253 | } 2254 | }, 2255 | "is-stream": { 2256 | "version": "1.1.0", 2257 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2258 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2259 | "dev": true 2260 | }, 2261 | "is-symbol": { 2262 | "version": "1.0.1", 2263 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", 2264 | "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", 2265 | "dev": true 2266 | }, 2267 | "is-utf8": { 2268 | "version": "0.2.1", 2269 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2270 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2271 | "dev": true 2272 | }, 2273 | "is-windows": { 2274 | "version": "1.0.1", 2275 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", 2276 | "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", 2277 | "dev": true 2278 | }, 2279 | "is-wsl": { 2280 | "version": "1.1.0", 2281 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 2282 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 2283 | "dev": true 2284 | }, 2285 | "isarray": { 2286 | "version": "1.0.0", 2287 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2288 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2289 | }, 2290 | "isexe": { 2291 | "version": "2.0.0", 2292 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2293 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2294 | "dev": true 2295 | }, 2296 | "isobject": { 2297 | "version": "2.1.0", 2298 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2299 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2300 | "dev": true, 2301 | "requires": { 2302 | "isarray": "1.0.0" 2303 | } 2304 | }, 2305 | "js-tokens": { 2306 | "version": "3.0.2", 2307 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2308 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" 2309 | }, 2310 | "json-loader": { 2311 | "version": "0.5.7", 2312 | "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", 2313 | "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", 2314 | "dev": true 2315 | }, 2316 | "json-schema-traverse": { 2317 | "version": "0.3.1", 2318 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 2319 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 2320 | "dev": true 2321 | }, 2322 | "json-stable-stringify": { 2323 | "version": "1.0.1", 2324 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 2325 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 2326 | "dev": true, 2327 | "requires": { 2328 | "jsonify": "0.0.0" 2329 | } 2330 | }, 2331 | "json3": { 2332 | "version": "3.3.2", 2333 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", 2334 | "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", 2335 | "dev": true 2336 | }, 2337 | "json5": { 2338 | "version": "0.5.1", 2339 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 2340 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 2341 | "dev": true 2342 | }, 2343 | "jsonfile": { 2344 | "version": "4.0.0", 2345 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 2346 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 2347 | "dev": true, 2348 | "requires": { 2349 | "graceful-fs": "4.1.11" 2350 | } 2351 | }, 2352 | "jsonify": { 2353 | "version": "0.0.0", 2354 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2355 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2356 | "dev": true 2357 | }, 2358 | "kind-of": { 2359 | "version": "3.2.2", 2360 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2361 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2362 | "dev": true, 2363 | "requires": { 2364 | "is-buffer": "1.1.5" 2365 | } 2366 | }, 2367 | "lazy-cache": { 2368 | "version": "1.0.4", 2369 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 2370 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 2371 | "dev": true 2372 | }, 2373 | "lcid": { 2374 | "version": "1.0.0", 2375 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 2376 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 2377 | "dev": true, 2378 | "requires": { 2379 | "invert-kv": "1.0.0" 2380 | } 2381 | }, 2382 | "load-json-file": { 2383 | "version": "2.0.0", 2384 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 2385 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 2386 | "dev": true, 2387 | "requires": { 2388 | "graceful-fs": "4.1.11", 2389 | "parse-json": "2.2.0", 2390 | "pify": "2.3.0", 2391 | "strip-bom": "3.0.0" 2392 | } 2393 | }, 2394 | "loader-runner": { 2395 | "version": "2.3.0", 2396 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", 2397 | "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", 2398 | "dev": true 2399 | }, 2400 | "loader-utils": { 2401 | "version": "0.2.17", 2402 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", 2403 | "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", 2404 | "dev": true, 2405 | "requires": { 2406 | "big.js": "3.2.0", 2407 | "emojis-list": "2.1.0", 2408 | "json5": "0.5.1", 2409 | "object-assign": "4.1.1" 2410 | } 2411 | }, 2412 | "locate-path": { 2413 | "version": "2.0.0", 2414 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2415 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2416 | "dev": true, 2417 | "requires": { 2418 | "p-locate": "2.0.0", 2419 | "path-exists": "3.0.0" 2420 | } 2421 | }, 2422 | "lodash": { 2423 | "version": "4.17.4", 2424 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 2425 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 2426 | "dev": true 2427 | }, 2428 | "lodash.union": { 2429 | "version": "4.6.0", 2430 | "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", 2431 | "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", 2432 | "dev": true 2433 | }, 2434 | "loglevel": { 2435 | "version": "1.5.1", 2436 | "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.5.1.tgz", 2437 | "integrity": "sha1-GJB4yUq5BT7iFaCs2/JCROoPZQI=", 2438 | "dev": true 2439 | }, 2440 | "longest": { 2441 | "version": "1.0.1", 2442 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 2443 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 2444 | "dev": true 2445 | }, 2446 | "loose-envify": { 2447 | "version": "1.3.1", 2448 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 2449 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 2450 | "requires": { 2451 | "js-tokens": "3.0.2" 2452 | } 2453 | }, 2454 | "loud-rejection": { 2455 | "version": "1.6.0", 2456 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 2457 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 2458 | "dev": true, 2459 | "requires": { 2460 | "currently-unhandled": "0.4.1", 2461 | "signal-exit": "3.0.2" 2462 | } 2463 | }, 2464 | "lower-case": { 2465 | "version": "1.1.4", 2466 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", 2467 | "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", 2468 | "dev": true 2469 | }, 2470 | "lru-cache": { 2471 | "version": "4.1.1", 2472 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 2473 | "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", 2474 | "dev": true, 2475 | "requires": { 2476 | "pseudomap": "1.0.2", 2477 | "yallist": "2.1.2" 2478 | } 2479 | }, 2480 | "make-dir": { 2481 | "version": "1.0.0", 2482 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", 2483 | "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", 2484 | "dev": true, 2485 | "requires": { 2486 | "pify": "2.3.0" 2487 | } 2488 | }, 2489 | "map-obj": { 2490 | "version": "1.0.1", 2491 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 2492 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 2493 | "dev": true 2494 | }, 2495 | "md5.js": { 2496 | "version": "1.3.4", 2497 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 2498 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 2499 | "dev": true, 2500 | "requires": { 2501 | "hash-base": "3.0.4", 2502 | "inherits": "2.0.3" 2503 | }, 2504 | "dependencies": { 2505 | "hash-base": { 2506 | "version": "3.0.4", 2507 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 2508 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 2509 | "dev": true, 2510 | "requires": { 2511 | "inherits": "2.0.3", 2512 | "safe-buffer": "5.1.1" 2513 | } 2514 | } 2515 | } 2516 | }, 2517 | "media-typer": { 2518 | "version": "0.3.0", 2519 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 2520 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 2521 | "dev": true 2522 | }, 2523 | "mem": { 2524 | "version": "1.1.0", 2525 | "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", 2526 | "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", 2527 | "dev": true, 2528 | "requires": { 2529 | "mimic-fn": "1.1.0" 2530 | } 2531 | }, 2532 | "memory-fs": { 2533 | "version": "0.4.1", 2534 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", 2535 | "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", 2536 | "dev": true, 2537 | "requires": { 2538 | "errno": "0.1.4", 2539 | "readable-stream": "2.3.3" 2540 | } 2541 | }, 2542 | "meow": { 2543 | "version": "3.7.0", 2544 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 2545 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 2546 | "dev": true, 2547 | "requires": { 2548 | "camelcase-keys": "2.1.0", 2549 | "decamelize": "1.2.0", 2550 | "loud-rejection": "1.6.0", 2551 | "map-obj": "1.0.1", 2552 | "minimist": "1.2.0", 2553 | "normalize-package-data": "2.4.0", 2554 | "object-assign": "4.1.1", 2555 | "read-pkg-up": "1.0.1", 2556 | "redent": "1.0.0", 2557 | "trim-newlines": "1.0.0" 2558 | }, 2559 | "dependencies": { 2560 | "find-up": { 2561 | "version": "1.1.2", 2562 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 2563 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 2564 | "dev": true, 2565 | "requires": { 2566 | "path-exists": "2.1.0", 2567 | "pinkie-promise": "2.0.1" 2568 | } 2569 | }, 2570 | "load-json-file": { 2571 | "version": "1.1.0", 2572 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 2573 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 2574 | "dev": true, 2575 | "requires": { 2576 | "graceful-fs": "4.1.11", 2577 | "parse-json": "2.2.0", 2578 | "pify": "2.3.0", 2579 | "pinkie-promise": "2.0.1", 2580 | "strip-bom": "2.0.0" 2581 | } 2582 | }, 2583 | "minimist": { 2584 | "version": "1.2.0", 2585 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2586 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2587 | "dev": true 2588 | }, 2589 | "path-exists": { 2590 | "version": "2.1.0", 2591 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 2592 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 2593 | "dev": true, 2594 | "requires": { 2595 | "pinkie-promise": "2.0.1" 2596 | } 2597 | }, 2598 | "path-type": { 2599 | "version": "1.1.0", 2600 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 2601 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 2602 | "dev": true, 2603 | "requires": { 2604 | "graceful-fs": "4.1.11", 2605 | "pify": "2.3.0", 2606 | "pinkie-promise": "2.0.1" 2607 | } 2608 | }, 2609 | "read-pkg": { 2610 | "version": "1.1.0", 2611 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 2612 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 2613 | "dev": true, 2614 | "requires": { 2615 | "load-json-file": "1.1.0", 2616 | "normalize-package-data": "2.4.0", 2617 | "path-type": "1.1.0" 2618 | } 2619 | }, 2620 | "read-pkg-up": { 2621 | "version": "1.0.1", 2622 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 2623 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 2624 | "dev": true, 2625 | "requires": { 2626 | "find-up": "1.1.2", 2627 | "read-pkg": "1.1.0" 2628 | } 2629 | }, 2630 | "strip-bom": { 2631 | "version": "2.0.0", 2632 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 2633 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 2634 | "dev": true, 2635 | "requires": { 2636 | "is-utf8": "0.2.1" 2637 | } 2638 | } 2639 | } 2640 | }, 2641 | "merge-descriptors": { 2642 | "version": "1.0.1", 2643 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 2644 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", 2645 | "dev": true 2646 | }, 2647 | "methods": { 2648 | "version": "1.1.2", 2649 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 2650 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 2651 | }, 2652 | "micromatch": { 2653 | "version": "2.3.11", 2654 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2655 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2656 | "dev": true, 2657 | "requires": { 2658 | "arr-diff": "2.0.0", 2659 | "array-unique": "0.2.1", 2660 | "braces": "1.8.5", 2661 | "expand-brackets": "0.1.5", 2662 | "extglob": "0.3.2", 2663 | "filename-regex": "2.0.1", 2664 | "is-extglob": "1.0.0", 2665 | "is-glob": "2.0.1", 2666 | "kind-of": "3.2.2", 2667 | "normalize-path": "2.1.1", 2668 | "object.omit": "2.0.1", 2669 | "parse-glob": "3.0.4", 2670 | "regex-cache": "0.4.4" 2671 | } 2672 | }, 2673 | "miller-rabin": { 2674 | "version": "4.0.1", 2675 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 2676 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 2677 | "dev": true, 2678 | "requires": { 2679 | "bn.js": "4.11.8", 2680 | "brorand": "1.1.0" 2681 | } 2682 | }, 2683 | "mime": { 2684 | "version": "1.4.1", 2685 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", 2686 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" 2687 | }, 2688 | "mime-db": { 2689 | "version": "1.30.0", 2690 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 2691 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" 2692 | }, 2693 | "mime-types": { 2694 | "version": "2.1.17", 2695 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 2696 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 2697 | "requires": { 2698 | "mime-db": "1.30.0" 2699 | } 2700 | }, 2701 | "mimic-fn": { 2702 | "version": "1.1.0", 2703 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", 2704 | "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", 2705 | "dev": true 2706 | }, 2707 | "minimalistic-assert": { 2708 | "version": "1.0.0", 2709 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", 2710 | "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", 2711 | "dev": true 2712 | }, 2713 | "minimalistic-crypto-utils": { 2714 | "version": "1.0.1", 2715 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2716 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 2717 | "dev": true 2718 | }, 2719 | "minimatch": { 2720 | "version": "3.0.4", 2721 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2722 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2723 | "dev": true, 2724 | "requires": { 2725 | "brace-expansion": "1.1.8" 2726 | } 2727 | }, 2728 | "minimist": { 2729 | "version": "0.0.8", 2730 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2731 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2732 | "dev": true 2733 | }, 2734 | "mississippi": { 2735 | "version": "1.3.0", 2736 | "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz", 2737 | "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=", 2738 | "dev": true, 2739 | "requires": { 2740 | "concat-stream": "1.6.0", 2741 | "duplexify": "3.5.1", 2742 | "end-of-stream": "1.4.0", 2743 | "flush-write-stream": "1.0.2", 2744 | "from2": "2.3.0", 2745 | "parallel-transform": "1.1.0", 2746 | "pump": "1.0.2", 2747 | "pumpify": "1.3.5", 2748 | "stream-each": "1.2.2", 2749 | "through2": "2.0.3" 2750 | } 2751 | }, 2752 | "mkdirp": { 2753 | "version": "0.5.1", 2754 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2755 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2756 | "dev": true, 2757 | "requires": { 2758 | "minimist": "0.0.8" 2759 | } 2760 | }, 2761 | "move-concurrently": { 2762 | "version": "1.0.1", 2763 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", 2764 | "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", 2765 | "dev": true, 2766 | "requires": { 2767 | "aproba": "1.2.0", 2768 | "copy-concurrently": "1.0.5", 2769 | "fs-write-stream-atomic": "1.0.10", 2770 | "mkdirp": "0.5.1", 2771 | "rimraf": "2.6.2", 2772 | "run-queue": "1.0.3" 2773 | } 2774 | }, 2775 | "ms": { 2776 | "version": "2.0.0", 2777 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2778 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2779 | }, 2780 | "multicast-dns": { 2781 | "version": "6.1.1", 2782 | "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", 2783 | "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", 2784 | "dev": true, 2785 | "requires": { 2786 | "dns-packet": "1.2.2", 2787 | "thunky": "0.1.0" 2788 | } 2789 | }, 2790 | "multicast-dns-service-types": { 2791 | "version": "1.1.0", 2792 | "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", 2793 | "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", 2794 | "dev": true 2795 | }, 2796 | "ncname": { 2797 | "version": "1.0.0", 2798 | "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", 2799 | "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", 2800 | "dev": true, 2801 | "requires": { 2802 | "xml-char-classes": "1.0.0" 2803 | } 2804 | }, 2805 | "negotiator": { 2806 | "version": "0.6.1", 2807 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 2808 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", 2809 | "dev": true 2810 | }, 2811 | "no-case": { 2812 | "version": "2.3.2", 2813 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", 2814 | "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", 2815 | "dev": true, 2816 | "requires": { 2817 | "lower-case": "1.1.4" 2818 | } 2819 | }, 2820 | "node-dir": { 2821 | "version": "0.1.17", 2822 | "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", 2823 | "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", 2824 | "dev": true, 2825 | "requires": { 2826 | "minimatch": "3.0.4" 2827 | } 2828 | }, 2829 | "node-forge": { 2830 | "version": "0.6.33", 2831 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", 2832 | "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", 2833 | "dev": true 2834 | }, 2835 | "node-libs-browser": { 2836 | "version": "2.0.0", 2837 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", 2838 | "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", 2839 | "dev": true, 2840 | "requires": { 2841 | "assert": "1.4.1", 2842 | "browserify-zlib": "0.1.4", 2843 | "buffer": "4.9.1", 2844 | "console-browserify": "1.1.0", 2845 | "constants-browserify": "1.0.0", 2846 | "crypto-browserify": "3.11.1", 2847 | "domain-browser": "1.1.7", 2848 | "events": "1.1.1", 2849 | "https-browserify": "0.0.1", 2850 | "os-browserify": "0.2.1", 2851 | "path-browserify": "0.0.0", 2852 | "process": "0.11.10", 2853 | "punycode": "1.4.1", 2854 | "querystring-es3": "0.2.1", 2855 | "readable-stream": "2.3.3", 2856 | "stream-browserify": "2.0.1", 2857 | "stream-http": "2.7.2", 2858 | "string_decoder": "0.10.31", 2859 | "timers-browserify": "2.0.4", 2860 | "tty-browserify": "0.0.0", 2861 | "url": "0.11.0", 2862 | "util": "0.10.3", 2863 | "vm-browserify": "0.0.4" 2864 | }, 2865 | "dependencies": { 2866 | "string_decoder": { 2867 | "version": "0.10.31", 2868 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 2869 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 2870 | "dev": true 2871 | } 2872 | } 2873 | }, 2874 | "normalize-package-data": { 2875 | "version": "2.4.0", 2876 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2877 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2878 | "dev": true, 2879 | "requires": { 2880 | "hosted-git-info": "2.5.0", 2881 | "is-builtin-module": "1.0.0", 2882 | "semver": "5.4.1", 2883 | "validate-npm-package-license": "3.0.1" 2884 | } 2885 | }, 2886 | "normalize-path": { 2887 | "version": "2.1.1", 2888 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2889 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2890 | "dev": true, 2891 | "requires": { 2892 | "remove-trailing-separator": "1.1.0" 2893 | } 2894 | }, 2895 | "npm-run-path": { 2896 | "version": "2.0.2", 2897 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 2898 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 2899 | "dev": true, 2900 | "requires": { 2901 | "path-key": "2.0.1" 2902 | } 2903 | }, 2904 | "nth-check": { 2905 | "version": "1.0.1", 2906 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", 2907 | "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", 2908 | "dev": true, 2909 | "requires": { 2910 | "boolbase": "1.0.0" 2911 | } 2912 | }, 2913 | "number-is-nan": { 2914 | "version": "1.0.1", 2915 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2916 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2917 | "dev": true 2918 | }, 2919 | "object-assign": { 2920 | "version": "4.1.1", 2921 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2922 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2923 | "dev": true 2924 | }, 2925 | "object-keys": { 2926 | "version": "1.0.11", 2927 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 2928 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", 2929 | "dev": true 2930 | }, 2931 | "object.omit": { 2932 | "version": "2.0.1", 2933 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 2934 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 2935 | "dev": true, 2936 | "requires": { 2937 | "for-own": "0.1.5", 2938 | "is-extendable": "0.1.1" 2939 | } 2940 | }, 2941 | "obuf": { 2942 | "version": "1.1.1", 2943 | "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", 2944 | "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", 2945 | "dev": true 2946 | }, 2947 | "on-finished": { 2948 | "version": "2.3.0", 2949 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 2950 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 2951 | "dev": true, 2952 | "requires": { 2953 | "ee-first": "1.1.1" 2954 | } 2955 | }, 2956 | "on-headers": { 2957 | "version": "1.0.1", 2958 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", 2959 | "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", 2960 | "dev": true 2961 | }, 2962 | "once": { 2963 | "version": "1.4.0", 2964 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2965 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2966 | "dev": true, 2967 | "requires": { 2968 | "wrappy": "1.0.2" 2969 | } 2970 | }, 2971 | "opn": { 2972 | "version": "5.1.0", 2973 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", 2974 | "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", 2975 | "dev": true, 2976 | "requires": { 2977 | "is-wsl": "1.1.0" 2978 | } 2979 | }, 2980 | "original": { 2981 | "version": "1.0.0", 2982 | "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", 2983 | "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", 2984 | "dev": true, 2985 | "requires": { 2986 | "url-parse": "1.0.5" 2987 | }, 2988 | "dependencies": { 2989 | "url-parse": { 2990 | "version": "1.0.5", 2991 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", 2992 | "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", 2993 | "dev": true, 2994 | "requires": { 2995 | "querystringify": "0.0.4", 2996 | "requires-port": "1.0.0" 2997 | } 2998 | } 2999 | } 3000 | }, 3001 | "os-browserify": { 3002 | "version": "0.2.1", 3003 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", 3004 | "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", 3005 | "dev": true 3006 | }, 3007 | "os-locale": { 3008 | "version": "2.1.0", 3009 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", 3010 | "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", 3011 | "dev": true, 3012 | "requires": { 3013 | "execa": "0.7.0", 3014 | "lcid": "1.0.0", 3015 | "mem": "1.1.0" 3016 | } 3017 | }, 3018 | "p-finally": { 3019 | "version": "1.0.0", 3020 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3021 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 3022 | "dev": true 3023 | }, 3024 | "p-limit": { 3025 | "version": "1.1.0", 3026 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 3027 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 3028 | "dev": true 3029 | }, 3030 | "p-locate": { 3031 | "version": "2.0.0", 3032 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3033 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3034 | "dev": true, 3035 | "requires": { 3036 | "p-limit": "1.1.0" 3037 | } 3038 | }, 3039 | "p-map": { 3040 | "version": "1.2.0", 3041 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", 3042 | "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", 3043 | "dev": true 3044 | }, 3045 | "pako": { 3046 | "version": "0.2.9", 3047 | "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", 3048 | "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", 3049 | "dev": true 3050 | }, 3051 | "parallel-transform": { 3052 | "version": "1.1.0", 3053 | "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", 3054 | "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", 3055 | "dev": true, 3056 | "requires": { 3057 | "cyclist": "0.2.2", 3058 | "inherits": "2.0.3", 3059 | "readable-stream": "2.3.3" 3060 | } 3061 | }, 3062 | "param-case": { 3063 | "version": "2.1.1", 3064 | "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", 3065 | "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", 3066 | "dev": true, 3067 | "requires": { 3068 | "no-case": "2.3.2" 3069 | } 3070 | }, 3071 | "parse-asn1": { 3072 | "version": "5.1.0", 3073 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", 3074 | "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", 3075 | "dev": true, 3076 | "requires": { 3077 | "asn1.js": "4.9.1", 3078 | "browserify-aes": "1.1.0", 3079 | "create-hash": "1.1.3", 3080 | "evp_bytestokey": "1.0.3", 3081 | "pbkdf2": "3.0.14" 3082 | } 3083 | }, 3084 | "parse-glob": { 3085 | "version": "3.0.4", 3086 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 3087 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 3088 | "dev": true, 3089 | "requires": { 3090 | "glob-base": "0.3.0", 3091 | "is-dotfile": "1.0.3", 3092 | "is-extglob": "1.0.0", 3093 | "is-glob": "2.0.1" 3094 | } 3095 | }, 3096 | "parse-json": { 3097 | "version": "2.2.0", 3098 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3099 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3100 | "dev": true, 3101 | "requires": { 3102 | "error-ex": "1.3.1" 3103 | } 3104 | }, 3105 | "parseurl": { 3106 | "version": "1.3.2", 3107 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 3108 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", 3109 | "dev": true 3110 | }, 3111 | "path-browserify": { 3112 | "version": "0.0.0", 3113 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 3114 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", 3115 | "dev": true 3116 | }, 3117 | "path-exists": { 3118 | "version": "3.0.0", 3119 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3120 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3121 | "dev": true 3122 | }, 3123 | "path-is-absolute": { 3124 | "version": "1.0.1", 3125 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3126 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3127 | "dev": true 3128 | }, 3129 | "path-is-inside": { 3130 | "version": "1.0.2", 3131 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 3132 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 3133 | "dev": true 3134 | }, 3135 | "path-key": { 3136 | "version": "2.0.1", 3137 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3138 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 3139 | "dev": true 3140 | }, 3141 | "path-to-regexp": { 3142 | "version": "0.1.7", 3143 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 3144 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", 3145 | "dev": true 3146 | }, 3147 | "path-type": { 3148 | "version": "2.0.0", 3149 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 3150 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 3151 | "dev": true, 3152 | "requires": { 3153 | "pify": "2.3.0" 3154 | } 3155 | }, 3156 | "pbkdf2": { 3157 | "version": "3.0.14", 3158 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", 3159 | "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", 3160 | "dev": true, 3161 | "requires": { 3162 | "create-hash": "1.1.3", 3163 | "create-hmac": "1.1.6", 3164 | "ripemd160": "2.0.1", 3165 | "safe-buffer": "5.1.1", 3166 | "sha.js": "2.4.9" 3167 | } 3168 | }, 3169 | "pify": { 3170 | "version": "2.3.0", 3171 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3172 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3173 | "dev": true 3174 | }, 3175 | "pinkie": { 3176 | "version": "2.0.4", 3177 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3178 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3179 | "dev": true 3180 | }, 3181 | "pinkie-promise": { 3182 | "version": "2.0.1", 3183 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3184 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3185 | "dev": true, 3186 | "requires": { 3187 | "pinkie": "2.0.4" 3188 | } 3189 | }, 3190 | "pkg-dir": { 3191 | "version": "2.0.0", 3192 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 3193 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 3194 | "dev": true, 3195 | "requires": { 3196 | "find-up": "2.1.0" 3197 | } 3198 | }, 3199 | "portfinder": { 3200 | "version": "1.0.13", 3201 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", 3202 | "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", 3203 | "dev": true, 3204 | "requires": { 3205 | "async": "1.5.2", 3206 | "debug": "2.6.9", 3207 | "mkdirp": "0.5.1" 3208 | }, 3209 | "dependencies": { 3210 | "async": { 3211 | "version": "1.5.2", 3212 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 3213 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 3214 | "dev": true 3215 | } 3216 | } 3217 | }, 3218 | "preserve": { 3219 | "version": "0.2.0", 3220 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3221 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 3222 | "dev": true 3223 | }, 3224 | "pretty-error": { 3225 | "version": "2.1.1", 3226 | "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", 3227 | "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", 3228 | "dev": true, 3229 | "requires": { 3230 | "renderkid": "2.0.1", 3231 | "utila": "0.4.0" 3232 | } 3233 | }, 3234 | "process": { 3235 | "version": "0.11.10", 3236 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 3237 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 3238 | "dev": true 3239 | }, 3240 | "process-nextick-args": { 3241 | "version": "1.0.7", 3242 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 3243 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 3244 | }, 3245 | "promise-inflight": { 3246 | "version": "1.0.1", 3247 | "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", 3248 | "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", 3249 | "dev": true 3250 | }, 3251 | "proxy-addr": { 3252 | "version": "2.0.2", 3253 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", 3254 | "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", 3255 | "dev": true, 3256 | "requires": { 3257 | "forwarded": "0.1.2", 3258 | "ipaddr.js": "1.5.2" 3259 | } 3260 | }, 3261 | "prr": { 3262 | "version": "0.0.0", 3263 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", 3264 | "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", 3265 | "dev": true 3266 | }, 3267 | "pseudomap": { 3268 | "version": "1.0.2", 3269 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3270 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 3271 | "dev": true 3272 | }, 3273 | "public-encrypt": { 3274 | "version": "4.0.0", 3275 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", 3276 | "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", 3277 | "dev": true, 3278 | "requires": { 3279 | "bn.js": "4.11.8", 3280 | "browserify-rsa": "4.0.1", 3281 | "create-hash": "1.1.3", 3282 | "parse-asn1": "5.1.0", 3283 | "randombytes": "2.0.5" 3284 | } 3285 | }, 3286 | "pump": { 3287 | "version": "1.0.2", 3288 | "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", 3289 | "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", 3290 | "dev": true, 3291 | "requires": { 3292 | "end-of-stream": "1.4.0", 3293 | "once": "1.4.0" 3294 | } 3295 | }, 3296 | "pumpify": { 3297 | "version": "1.3.5", 3298 | "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz", 3299 | "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=", 3300 | "dev": true, 3301 | "requires": { 3302 | "duplexify": "3.5.1", 3303 | "inherits": "2.0.3", 3304 | "pump": "1.0.2" 3305 | } 3306 | }, 3307 | "punycode": { 3308 | "version": "1.4.1", 3309 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3310 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 3311 | "dev": true 3312 | }, 3313 | "qs": { 3314 | "version": "6.5.1", 3315 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 3316 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" 3317 | }, 3318 | "querystring": { 3319 | "version": "0.2.0", 3320 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 3321 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 3322 | "dev": true 3323 | }, 3324 | "querystring-es3": { 3325 | "version": "0.2.1", 3326 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 3327 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 3328 | "dev": true 3329 | }, 3330 | "querystringify": { 3331 | "version": "0.0.4", 3332 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", 3333 | "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", 3334 | "dev": true 3335 | }, 3336 | "ramda": { 3337 | "version": "0.25.0", 3338 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", 3339 | "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" 3340 | }, 3341 | "randomatic": { 3342 | "version": "1.1.7", 3343 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3344 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3345 | "dev": true, 3346 | "requires": { 3347 | "is-number": "3.0.0", 3348 | "kind-of": "4.0.0" 3349 | }, 3350 | "dependencies": { 3351 | "is-number": { 3352 | "version": "3.0.0", 3353 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3354 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3355 | "dev": true, 3356 | "requires": { 3357 | "kind-of": "3.2.2" 3358 | }, 3359 | "dependencies": { 3360 | "kind-of": { 3361 | "version": "3.2.2", 3362 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3363 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3364 | "dev": true, 3365 | "requires": { 3366 | "is-buffer": "1.1.5" 3367 | } 3368 | } 3369 | } 3370 | }, 3371 | "kind-of": { 3372 | "version": "4.0.0", 3373 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3374 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3375 | "dev": true, 3376 | "requires": { 3377 | "is-buffer": "1.1.5" 3378 | } 3379 | } 3380 | } 3381 | }, 3382 | "randombytes": { 3383 | "version": "2.0.5", 3384 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", 3385 | "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", 3386 | "dev": true, 3387 | "requires": { 3388 | "safe-buffer": "5.1.1" 3389 | } 3390 | }, 3391 | "range-parser": { 3392 | "version": "1.2.0", 3393 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 3394 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", 3395 | "dev": true 3396 | }, 3397 | "raw-body": { 3398 | "version": "2.3.2", 3399 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", 3400 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", 3401 | "dev": true, 3402 | "requires": { 3403 | "bytes": "3.0.0", 3404 | "http-errors": "1.6.2", 3405 | "iconv-lite": "0.4.19", 3406 | "unpipe": "1.0.0" 3407 | } 3408 | }, 3409 | "read-pkg": { 3410 | "version": "2.0.0", 3411 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 3412 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 3413 | "dev": true, 3414 | "requires": { 3415 | "load-json-file": "2.0.0", 3416 | "normalize-package-data": "2.4.0", 3417 | "path-type": "2.0.0" 3418 | } 3419 | }, 3420 | "read-pkg-up": { 3421 | "version": "2.0.0", 3422 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 3423 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 3424 | "dev": true, 3425 | "requires": { 3426 | "find-up": "2.1.0", 3427 | "read-pkg": "2.0.0" 3428 | } 3429 | }, 3430 | "readable-stream": { 3431 | "version": "2.3.3", 3432 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 3433 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 3434 | "requires": { 3435 | "core-util-is": "1.0.2", 3436 | "inherits": "2.0.3", 3437 | "isarray": "1.0.0", 3438 | "process-nextick-args": "1.0.7", 3439 | "safe-buffer": "5.1.1", 3440 | "string_decoder": "1.0.3", 3441 | "util-deprecate": "1.0.2" 3442 | } 3443 | }, 3444 | "readdirp": { 3445 | "version": "2.1.0", 3446 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 3447 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 3448 | "dev": true, 3449 | "requires": { 3450 | "graceful-fs": "4.1.11", 3451 | "minimatch": "3.0.4", 3452 | "readable-stream": "2.3.3", 3453 | "set-immediate-shim": "1.0.1" 3454 | } 3455 | }, 3456 | "recursive-readdir-sync": { 3457 | "version": "1.0.6", 3458 | "resolved": "https://registry.npmjs.org/recursive-readdir-sync/-/recursive-readdir-sync-1.0.6.tgz", 3459 | "integrity": "sha1-Hb9tMvPFu4083pemxYjVR6nhPVY=", 3460 | "dev": true 3461 | }, 3462 | "redent": { 3463 | "version": "1.0.0", 3464 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 3465 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 3466 | "dev": true, 3467 | "requires": { 3468 | "indent-string": "2.1.0", 3469 | "strip-indent": "1.0.1" 3470 | } 3471 | }, 3472 | "regex-cache": { 3473 | "version": "0.4.4", 3474 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3475 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3476 | "dev": true, 3477 | "requires": { 3478 | "is-equal-shallow": "0.1.3" 3479 | } 3480 | }, 3481 | "relateurl": { 3482 | "version": "0.2.7", 3483 | "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", 3484 | "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", 3485 | "dev": true 3486 | }, 3487 | "remove-trailing-separator": { 3488 | "version": "1.1.0", 3489 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3490 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3491 | "dev": true 3492 | }, 3493 | "renderkid": { 3494 | "version": "2.0.1", 3495 | "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", 3496 | "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", 3497 | "dev": true, 3498 | "requires": { 3499 | "css-select": "1.2.0", 3500 | "dom-converter": "0.1.4", 3501 | "htmlparser2": "3.3.0", 3502 | "strip-ansi": "3.0.1", 3503 | "utila": "0.3.3" 3504 | }, 3505 | "dependencies": { 3506 | "utila": { 3507 | "version": "0.3.3", 3508 | "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", 3509 | "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", 3510 | "dev": true 3511 | } 3512 | } 3513 | }, 3514 | "repeat-element": { 3515 | "version": "1.1.2", 3516 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3517 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 3518 | "dev": true 3519 | }, 3520 | "repeat-string": { 3521 | "version": "1.6.1", 3522 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3523 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3524 | "dev": true 3525 | }, 3526 | "repeating": { 3527 | "version": "2.0.1", 3528 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3529 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3530 | "dev": true, 3531 | "requires": { 3532 | "is-finite": "1.0.2" 3533 | } 3534 | }, 3535 | "require-directory": { 3536 | "version": "2.1.1", 3537 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3538 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3539 | "dev": true 3540 | }, 3541 | "require-main-filename": { 3542 | "version": "1.0.1", 3543 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 3544 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 3545 | "dev": true 3546 | }, 3547 | "requires-port": { 3548 | "version": "1.0.0", 3549 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 3550 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 3551 | "dev": true 3552 | }, 3553 | "resolve-pathname": { 3554 | "version": "2.2.0", 3555 | "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", 3556 | "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" 3557 | }, 3558 | "right-align": { 3559 | "version": "0.1.3", 3560 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 3561 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 3562 | "dev": true, 3563 | "requires": { 3564 | "align-text": "0.1.4" 3565 | } 3566 | }, 3567 | "rimraf": { 3568 | "version": "2.6.2", 3569 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 3570 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 3571 | "dev": true, 3572 | "requires": { 3573 | "glob": "7.1.2" 3574 | } 3575 | }, 3576 | "ripemd160": { 3577 | "version": "2.0.1", 3578 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", 3579 | "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", 3580 | "dev": true, 3581 | "requires": { 3582 | "hash-base": "2.0.2", 3583 | "inherits": "2.0.3" 3584 | } 3585 | }, 3586 | "run-queue": { 3587 | "version": "1.0.3", 3588 | "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", 3589 | "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", 3590 | "dev": true, 3591 | "requires": { 3592 | "aproba": "1.2.0" 3593 | } 3594 | }, 3595 | "safe-buffer": { 3596 | "version": "5.1.1", 3597 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 3598 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 3599 | }, 3600 | "schema-utils": { 3601 | "version": "0.3.0", 3602 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", 3603 | "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", 3604 | "dev": true, 3605 | "requires": { 3606 | "ajv": "5.2.3" 3607 | } 3608 | }, 3609 | "select-hose": { 3610 | "version": "2.0.0", 3611 | "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", 3612 | "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", 3613 | "dev": true 3614 | }, 3615 | "selfsigned": { 3616 | "version": "1.10.1", 3617 | "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", 3618 | "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", 3619 | "dev": true, 3620 | "requires": { 3621 | "node-forge": "0.6.33" 3622 | } 3623 | }, 3624 | "semver": { 3625 | "version": "5.4.1", 3626 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 3627 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", 3628 | "dev": true 3629 | }, 3630 | "send": { 3631 | "version": "0.16.1", 3632 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", 3633 | "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", 3634 | "dev": true, 3635 | "requires": { 3636 | "debug": "2.6.9", 3637 | "depd": "1.1.1", 3638 | "destroy": "1.0.4", 3639 | "encodeurl": "1.0.1", 3640 | "escape-html": "1.0.3", 3641 | "etag": "1.8.1", 3642 | "fresh": "0.5.2", 3643 | "http-errors": "1.6.2", 3644 | "mime": "1.4.1", 3645 | "ms": "2.0.0", 3646 | "on-finished": "2.3.0", 3647 | "range-parser": "1.2.0", 3648 | "statuses": "1.3.1" 3649 | } 3650 | }, 3651 | "serve-index": { 3652 | "version": "1.9.1", 3653 | "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", 3654 | "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", 3655 | "dev": true, 3656 | "requires": { 3657 | "accepts": "1.3.4", 3658 | "batch": "0.6.1", 3659 | "debug": "2.6.9", 3660 | "escape-html": "1.0.3", 3661 | "http-errors": "1.6.2", 3662 | "mime-types": "2.1.17", 3663 | "parseurl": "1.3.2" 3664 | } 3665 | }, 3666 | "serve-static": { 3667 | "version": "1.13.1", 3668 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", 3669 | "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", 3670 | "dev": true, 3671 | "requires": { 3672 | "encodeurl": "1.0.1", 3673 | "escape-html": "1.0.3", 3674 | "parseurl": "1.3.2", 3675 | "send": "0.16.1" 3676 | } 3677 | }, 3678 | "set-blocking": { 3679 | "version": "2.0.0", 3680 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3681 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3682 | "dev": true 3683 | }, 3684 | "set-immediate-shim": { 3685 | "version": "1.0.1", 3686 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 3687 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 3688 | "dev": true 3689 | }, 3690 | "setimmediate": { 3691 | "version": "1.0.5", 3692 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 3693 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 3694 | "dev": true 3695 | }, 3696 | "setprototypeof": { 3697 | "version": "1.1.0", 3698 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 3699 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", 3700 | "dev": true 3701 | }, 3702 | "sha.js": { 3703 | "version": "2.4.9", 3704 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", 3705 | "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", 3706 | "dev": true, 3707 | "requires": { 3708 | "inherits": "2.0.3", 3709 | "safe-buffer": "5.1.1" 3710 | } 3711 | }, 3712 | "shebang-command": { 3713 | "version": "1.2.0", 3714 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3715 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3716 | "dev": true, 3717 | "requires": { 3718 | "shebang-regex": "1.0.0" 3719 | } 3720 | }, 3721 | "shebang-regex": { 3722 | "version": "1.0.0", 3723 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3724 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3725 | "dev": true 3726 | }, 3727 | "signal-exit": { 3728 | "version": "3.0.2", 3729 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 3730 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 3731 | "dev": true 3732 | }, 3733 | "snabbdom": { 3734 | "version": "0.7.0", 3735 | "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-0.7.0.tgz", 3736 | "integrity": "sha512-LCg6lH9p2OD5n52SI4LlpYmDW2bscxsyN7rhnGJB/R3LQy/FdJfqNBM5aVST+zOfM4OdKFl8pxVUhjGsPtQA1w==" 3737 | }, 3738 | "snabbdom-selector": { 3739 | "version": "1.2.1", 3740 | "resolved": "https://registry.npmjs.org/snabbdom-selector/-/snabbdom-selector-1.2.1.tgz", 3741 | "integrity": "sha512-g0w2Ft4RJl+F/1/tQvA4BUsH09s+RNd0RRa+So24Inv5yzce5xUnPzxlEWNUBG5TwQjfKDZSFWrf2rXz+e1Q2g==", 3742 | "requires": { 3743 | "cssauron": "1.4.0" 3744 | } 3745 | }, 3746 | "sockjs": { 3747 | "version": "0.3.18", 3748 | "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", 3749 | "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", 3750 | "dev": true, 3751 | "requires": { 3752 | "faye-websocket": "0.10.0", 3753 | "uuid": "2.0.3" 3754 | } 3755 | }, 3756 | "sockjs-client": { 3757 | "version": "1.1.4", 3758 | "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", 3759 | "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", 3760 | "dev": true, 3761 | "requires": { 3762 | "debug": "2.6.9", 3763 | "eventsource": "0.1.6", 3764 | "faye-websocket": "0.11.1", 3765 | "inherits": "2.0.3", 3766 | "json3": "3.3.2", 3767 | "url-parse": "1.1.9" 3768 | }, 3769 | "dependencies": { 3770 | "faye-websocket": { 3771 | "version": "0.11.1", 3772 | "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", 3773 | "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", 3774 | "dev": true, 3775 | "requires": { 3776 | "websocket-driver": "0.7.0" 3777 | } 3778 | } 3779 | } 3780 | }, 3781 | "source-list-map": { 3782 | "version": "2.0.0", 3783 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", 3784 | "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", 3785 | "dev": true 3786 | }, 3787 | "source-map": { 3788 | "version": "0.1.43", 3789 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", 3790 | "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", 3791 | "dev": true, 3792 | "requires": { 3793 | "amdefine": "1.0.1" 3794 | } 3795 | }, 3796 | "source-map-loader": { 3797 | "version": "0.2.2", 3798 | "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.2.tgz", 3799 | "integrity": "sha512-C3iYM6IqMT6jVzo6HTDmeZz9QP0ott9LtOeDJAPDQlHG5uJx+whP3c39TCMc1/FqP0feo546wCgt89JCn6DBMg==", 3800 | "dev": true, 3801 | "requires": { 3802 | "async": "0.9.2", 3803 | "loader-utils": "0.2.17", 3804 | "source-map": "0.1.43" 3805 | } 3806 | }, 3807 | "spdx-correct": { 3808 | "version": "1.0.2", 3809 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 3810 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 3811 | "dev": true, 3812 | "requires": { 3813 | "spdx-license-ids": "1.2.2" 3814 | } 3815 | }, 3816 | "spdx-expression-parse": { 3817 | "version": "1.0.4", 3818 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 3819 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 3820 | "dev": true 3821 | }, 3822 | "spdx-license-ids": { 3823 | "version": "1.2.2", 3824 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 3825 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 3826 | "dev": true 3827 | }, 3828 | "spdy": { 3829 | "version": "3.4.7", 3830 | "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", 3831 | "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", 3832 | "dev": true, 3833 | "requires": { 3834 | "debug": "2.6.9", 3835 | "handle-thing": "1.2.5", 3836 | "http-deceiver": "1.2.7", 3837 | "safe-buffer": "5.1.1", 3838 | "select-hose": "2.0.0", 3839 | "spdy-transport": "2.0.20" 3840 | } 3841 | }, 3842 | "spdy-transport": { 3843 | "version": "2.0.20", 3844 | "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", 3845 | "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", 3846 | "dev": true, 3847 | "requires": { 3848 | "debug": "2.6.9", 3849 | "detect-node": "2.0.3", 3850 | "hpack.js": "2.1.6", 3851 | "obuf": "1.1.1", 3852 | "readable-stream": "2.3.3", 3853 | "safe-buffer": "5.1.1", 3854 | "wbuf": "1.7.2" 3855 | } 3856 | }, 3857 | "ssri": { 3858 | "version": "4.1.6", 3859 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-4.1.6.tgz", 3860 | "integrity": "sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==", 3861 | "dev": true, 3862 | "requires": { 3863 | "safe-buffer": "5.1.1" 3864 | } 3865 | }, 3866 | "statuses": { 3867 | "version": "1.3.1", 3868 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", 3869 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", 3870 | "dev": true 3871 | }, 3872 | "stream-browserify": { 3873 | "version": "2.0.1", 3874 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 3875 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 3876 | "dev": true, 3877 | "requires": { 3878 | "inherits": "2.0.3", 3879 | "readable-stream": "2.3.3" 3880 | } 3881 | }, 3882 | "stream-each": { 3883 | "version": "1.2.2", 3884 | "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", 3885 | "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", 3886 | "dev": true, 3887 | "requires": { 3888 | "end-of-stream": "1.4.0", 3889 | "stream-shift": "1.0.0" 3890 | } 3891 | }, 3892 | "stream-http": { 3893 | "version": "2.7.2", 3894 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", 3895 | "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", 3896 | "dev": true, 3897 | "requires": { 3898 | "builtin-status-codes": "3.0.0", 3899 | "inherits": "2.0.3", 3900 | "readable-stream": "2.3.3", 3901 | "to-arraybuffer": "1.0.1", 3902 | "xtend": "4.0.1" 3903 | } 3904 | }, 3905 | "stream-shift": { 3906 | "version": "1.0.0", 3907 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", 3908 | "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", 3909 | "dev": true 3910 | }, 3911 | "string_decoder": { 3912 | "version": "1.0.3", 3913 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 3914 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 3915 | "requires": { 3916 | "safe-buffer": "5.1.1" 3917 | } 3918 | }, 3919 | "string-width": { 3920 | "version": "2.1.1", 3921 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 3922 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 3923 | "dev": true, 3924 | "requires": { 3925 | "is-fullwidth-code-point": "2.0.0", 3926 | "strip-ansi": "4.0.0" 3927 | }, 3928 | "dependencies": { 3929 | "ansi-regex": { 3930 | "version": "3.0.0", 3931 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3932 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3933 | "dev": true 3934 | }, 3935 | "is-fullwidth-code-point": { 3936 | "version": "2.0.0", 3937 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 3938 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 3939 | "dev": true 3940 | }, 3941 | "strip-ansi": { 3942 | "version": "4.0.0", 3943 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3944 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3945 | "dev": true, 3946 | "requires": { 3947 | "ansi-regex": "3.0.0" 3948 | } 3949 | } 3950 | } 3951 | }, 3952 | "strip-ansi": { 3953 | "version": "3.0.1", 3954 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3955 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3956 | "dev": true, 3957 | "requires": { 3958 | "ansi-regex": "2.1.1" 3959 | } 3960 | }, 3961 | "strip-bom": { 3962 | "version": "3.0.0", 3963 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 3964 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 3965 | "dev": true 3966 | }, 3967 | "strip-eof": { 3968 | "version": "1.0.0", 3969 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3970 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3971 | "dev": true 3972 | }, 3973 | "strip-indent": { 3974 | "version": "1.0.1", 3975 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 3976 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 3977 | "dev": true, 3978 | "requires": { 3979 | "get-stdin": "4.0.1" 3980 | } 3981 | }, 3982 | "superagent": { 3983 | "version": "3.6.3", 3984 | "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.6.3.tgz", 3985 | "integrity": "sha512-GjsfCFijfjqoz2tRiStSOoTdy7gNZOcK3ar4zONP9D8dXQWE+Qg7cbePHimRpapo06WUvoU3dmgi2e4q+sab5A==", 3986 | "requires": { 3987 | "component-emitter": "1.2.1", 3988 | "cookiejar": "2.1.1", 3989 | "debug": "3.1.0", 3990 | "extend": "3.0.1", 3991 | "form-data": "2.3.1", 3992 | "formidable": "1.1.1", 3993 | "methods": "1.1.2", 3994 | "mime": "1.4.1", 3995 | "qs": "6.5.1", 3996 | "readable-stream": "2.3.3" 3997 | }, 3998 | "dependencies": { 3999 | "debug": { 4000 | "version": "3.1.0", 4001 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 4002 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 4003 | "requires": { 4004 | "ms": "2.0.0" 4005 | } 4006 | } 4007 | } 4008 | }, 4009 | "supports-color": { 4010 | "version": "4.5.0", 4011 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", 4012 | "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", 4013 | "dev": true, 4014 | "requires": { 4015 | "has-flag": "2.0.0" 4016 | } 4017 | }, 4018 | "switch-path": { 4019 | "version": "1.2.0", 4020 | "resolved": "https://registry.npmjs.org/switch-path/-/switch-path-1.2.0.tgz", 4021 | "integrity": "sha1-P4css8frK3f7lQnepOPz/yXs9VY=" 4022 | }, 4023 | "symbol-observable": { 4024 | "version": "1.0.4", 4025 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", 4026 | "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" 4027 | }, 4028 | "tapable": { 4029 | "version": "0.2.8", 4030 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", 4031 | "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", 4032 | "dev": true 4033 | }, 4034 | "through": { 4035 | "version": "2.3.8", 4036 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 4037 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 4038 | }, 4039 | "through2": { 4040 | "version": "2.0.3", 4041 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 4042 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 4043 | "dev": true, 4044 | "requires": { 4045 | "readable-stream": "2.3.3", 4046 | "xtend": "4.0.1" 4047 | } 4048 | }, 4049 | "thunky": { 4050 | "version": "0.1.0", 4051 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", 4052 | "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", 4053 | "dev": true 4054 | }, 4055 | "time-stamp": { 4056 | "version": "2.0.0", 4057 | "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", 4058 | "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", 4059 | "dev": true 4060 | }, 4061 | "timers-browserify": { 4062 | "version": "2.0.4", 4063 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", 4064 | "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", 4065 | "dev": true, 4066 | "requires": { 4067 | "setimmediate": "1.0.5" 4068 | } 4069 | }, 4070 | "to-arraybuffer": { 4071 | "version": "1.0.1", 4072 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 4073 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 4074 | "dev": true 4075 | }, 4076 | "toposort": { 4077 | "version": "1.0.6", 4078 | "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz", 4079 | "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=", 4080 | "dev": true 4081 | }, 4082 | "trim-newlines": { 4083 | "version": "1.0.0", 4084 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 4085 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 4086 | "dev": true 4087 | }, 4088 | "ts-loader": { 4089 | "version": "3.0.2", 4090 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-3.0.2.tgz", 4091 | "integrity": "sha512-dy82zfGOAZtF2LRsmryU1aKebtcdIS+diswWoMjFx0wY+knHLENVI2vOvmjB7fy8i4kWRuUPK2FAxjMB4CDmCA==", 4092 | "dev": true, 4093 | "requires": { 4094 | "chalk": "2.2.0", 4095 | "enhanced-resolve": "3.4.1", 4096 | "loader-utils": "1.1.0", 4097 | "semver": "5.4.1" 4098 | }, 4099 | "dependencies": { 4100 | "loader-utils": { 4101 | "version": "1.1.0", 4102 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", 4103 | "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", 4104 | "dev": true, 4105 | "requires": { 4106 | "big.js": "3.2.0", 4107 | "emojis-list": "2.1.0", 4108 | "json5": "0.5.1" 4109 | } 4110 | } 4111 | } 4112 | }, 4113 | "tty-browserify": { 4114 | "version": "0.0.0", 4115 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 4116 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 4117 | "dev": true 4118 | }, 4119 | "type-is": { 4120 | "version": "1.6.15", 4121 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", 4122 | "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", 4123 | "dev": true, 4124 | "requires": { 4125 | "media-typer": "0.3.0", 4126 | "mime-types": "2.1.17" 4127 | } 4128 | }, 4129 | "typedarray": { 4130 | "version": "0.0.6", 4131 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 4132 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 4133 | "dev": true 4134 | }, 4135 | "typescript": { 4136 | "version": "2.5.3", 4137 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", 4138 | "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==", 4139 | "dev": true 4140 | }, 4141 | "typestyle": { 4142 | "version": "1.4.3", 4143 | "resolved": "https://registry.npmjs.org/typestyle/-/typestyle-1.4.3.tgz", 4144 | "integrity": "sha512-4XErmGDEVS60bYDAxSBKWX4WPyYuiJG+/a3mhggoirinU/d2GSmgZGJ/4SILobpuBa9fEMY9WJOGJAjBMaFuJA==", 4145 | "requires": { 4146 | "free-style": "2.4.1" 4147 | } 4148 | }, 4149 | "uglify-es": { 4150 | "version": "3.1.3", 4151 | "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.1.3.tgz", 4152 | "integrity": "sha512-Nuo5gkv/Q6PmLa+Ui2LvK+87YdMAcuXfRIWF0uVfkHVSfpT3Ue0euCSu4t0b8xv4Bt05lmXUT8bLI9OmnyPj8A==", 4153 | "dev": true, 4154 | "requires": { 4155 | "commander": "2.11.0", 4156 | "source-map": "0.5.7" 4157 | }, 4158 | "dependencies": { 4159 | "source-map": { 4160 | "version": "0.5.7", 4161 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4162 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4163 | "dev": true 4164 | } 4165 | } 4166 | }, 4167 | "uglify-to-browserify": { 4168 | "version": "1.0.2", 4169 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 4170 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 4171 | "dev": true, 4172 | "optional": true 4173 | }, 4174 | "uglifyjs-webpack-plugin": { 4175 | "version": "1.0.0-beta.3", 4176 | "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.0.0-beta.3.tgz", 4177 | "integrity": "sha512-4fpQrnoYEuzAwDxI2zLrKMgrknaWu71CpG4XaMRXWWyUJ7yBM4ueIhNNf0/AcKVSUgBpVudi1i9h9lWdfrU7ZQ==", 4178 | "dev": true, 4179 | "requires": { 4180 | "cacache": "9.3.0", 4181 | "find-cache-dir": "1.0.0", 4182 | "schema-utils": "0.3.0", 4183 | "source-map": "0.5.7", 4184 | "uglify-es": "3.1.3", 4185 | "webpack-sources": "1.0.1", 4186 | "worker-farm": "1.5.0" 4187 | }, 4188 | "dependencies": { 4189 | "source-map": { 4190 | "version": "0.5.7", 4191 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4192 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4193 | "dev": true 4194 | } 4195 | } 4196 | }, 4197 | "unique-filename": { 4198 | "version": "1.1.0", 4199 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", 4200 | "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", 4201 | "dev": true, 4202 | "requires": { 4203 | "unique-slug": "2.0.0" 4204 | } 4205 | }, 4206 | "unique-slug": { 4207 | "version": "2.0.0", 4208 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", 4209 | "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", 4210 | "dev": true, 4211 | "requires": { 4212 | "imurmurhash": "0.1.4" 4213 | } 4214 | }, 4215 | "universalify": { 4216 | "version": "0.1.1", 4217 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", 4218 | "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", 4219 | "dev": true 4220 | }, 4221 | "unpipe": { 4222 | "version": "1.0.0", 4223 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 4224 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 4225 | "dev": true 4226 | }, 4227 | "upper-case": { 4228 | "version": "1.1.3", 4229 | "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", 4230 | "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", 4231 | "dev": true 4232 | }, 4233 | "url": { 4234 | "version": "0.11.0", 4235 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 4236 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 4237 | "dev": true, 4238 | "requires": { 4239 | "punycode": "1.3.2", 4240 | "querystring": "0.2.0" 4241 | }, 4242 | "dependencies": { 4243 | "punycode": { 4244 | "version": "1.3.2", 4245 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 4246 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 4247 | "dev": true 4248 | } 4249 | } 4250 | }, 4251 | "url-parse": { 4252 | "version": "1.1.9", 4253 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", 4254 | "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", 4255 | "dev": true, 4256 | "requires": { 4257 | "querystringify": "1.0.0", 4258 | "requires-port": "1.0.0" 4259 | }, 4260 | "dependencies": { 4261 | "querystringify": { 4262 | "version": "1.0.0", 4263 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", 4264 | "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", 4265 | "dev": true 4266 | } 4267 | } 4268 | }, 4269 | "util": { 4270 | "version": "0.10.3", 4271 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 4272 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 4273 | "dev": true, 4274 | "requires": { 4275 | "inherits": "2.0.1" 4276 | }, 4277 | "dependencies": { 4278 | "inherits": { 4279 | "version": "2.0.1", 4280 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 4281 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 4282 | "dev": true 4283 | } 4284 | } 4285 | }, 4286 | "util-deprecate": { 4287 | "version": "1.0.2", 4288 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4289 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 4290 | }, 4291 | "utila": { 4292 | "version": "0.4.0", 4293 | "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", 4294 | "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", 4295 | "dev": true 4296 | }, 4297 | "utils-merge": { 4298 | "version": "1.0.1", 4299 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 4300 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 4301 | "dev": true 4302 | }, 4303 | "uuid": { 4304 | "version": "2.0.3", 4305 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", 4306 | "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", 4307 | "dev": true 4308 | }, 4309 | "validate-npm-package-license": { 4310 | "version": "3.0.1", 4311 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 4312 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 4313 | "dev": true, 4314 | "requires": { 4315 | "spdx-correct": "1.0.2", 4316 | "spdx-expression-parse": "1.0.4" 4317 | } 4318 | }, 4319 | "value-equal": { 4320 | "version": "0.2.1", 4321 | "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.2.1.tgz", 4322 | "integrity": "sha1-wiCjBDYfzmmU277ao8fhobiVhx0=" 4323 | }, 4324 | "vary": { 4325 | "version": "1.1.2", 4326 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 4327 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 4328 | "dev": true 4329 | }, 4330 | "vm-browserify": { 4331 | "version": "0.0.4", 4332 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 4333 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 4334 | "dev": true, 4335 | "requires": { 4336 | "indexof": "0.0.1" 4337 | } 4338 | }, 4339 | "warning": { 4340 | "version": "3.0.0", 4341 | "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", 4342 | "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", 4343 | "requires": { 4344 | "loose-envify": "1.3.1" 4345 | } 4346 | }, 4347 | "watchpack": { 4348 | "version": "1.4.0", 4349 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", 4350 | "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", 4351 | "dev": true, 4352 | "requires": { 4353 | "async": "2.5.0", 4354 | "chokidar": "1.7.0", 4355 | "graceful-fs": "4.1.11" 4356 | }, 4357 | "dependencies": { 4358 | "async": { 4359 | "version": "2.5.0", 4360 | "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", 4361 | "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", 4362 | "dev": true, 4363 | "requires": { 4364 | "lodash": "4.17.4" 4365 | } 4366 | } 4367 | } 4368 | }, 4369 | "wbuf": { 4370 | "version": "1.7.2", 4371 | "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", 4372 | "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", 4373 | "dev": true, 4374 | "requires": { 4375 | "minimalistic-assert": "1.0.0" 4376 | } 4377 | }, 4378 | "webpack": { 4379 | "version": "3.8.1", 4380 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", 4381 | "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", 4382 | "dev": true, 4383 | "requires": { 4384 | "acorn": "5.1.2", 4385 | "acorn-dynamic-import": "2.0.2", 4386 | "ajv": "5.2.3", 4387 | "ajv-keywords": "2.1.0", 4388 | "async": "2.5.0", 4389 | "enhanced-resolve": "3.4.1", 4390 | "escope": "3.6.0", 4391 | "interpret": "1.0.4", 4392 | "json-loader": "0.5.7", 4393 | "json5": "0.5.1", 4394 | "loader-runner": "2.3.0", 4395 | "loader-utils": "1.1.0", 4396 | "memory-fs": "0.4.1", 4397 | "mkdirp": "0.5.1", 4398 | "node-libs-browser": "2.0.0", 4399 | "source-map": "0.5.7", 4400 | "supports-color": "4.5.0", 4401 | "tapable": "0.2.8", 4402 | "uglifyjs-webpack-plugin": "0.4.6", 4403 | "watchpack": "1.4.0", 4404 | "webpack-sources": "1.0.1", 4405 | "yargs": "8.0.2" 4406 | }, 4407 | "dependencies": { 4408 | "async": { 4409 | "version": "2.5.0", 4410 | "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", 4411 | "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", 4412 | "dev": true, 4413 | "requires": { 4414 | "lodash": "4.17.4" 4415 | } 4416 | }, 4417 | "loader-utils": { 4418 | "version": "1.1.0", 4419 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", 4420 | "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", 4421 | "dev": true, 4422 | "requires": { 4423 | "big.js": "3.2.0", 4424 | "emojis-list": "2.1.0", 4425 | "json5": "0.5.1" 4426 | } 4427 | }, 4428 | "source-map": { 4429 | "version": "0.5.7", 4430 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4431 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4432 | "dev": true 4433 | }, 4434 | "uglify-js": { 4435 | "version": "2.8.29", 4436 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 4437 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 4438 | "dev": true, 4439 | "requires": { 4440 | "source-map": "0.5.7", 4441 | "uglify-to-browserify": "1.0.2", 4442 | "yargs": "3.10.0" 4443 | }, 4444 | "dependencies": { 4445 | "yargs": { 4446 | "version": "3.10.0", 4447 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 4448 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 4449 | "dev": true, 4450 | "requires": { 4451 | "camelcase": "1.2.1", 4452 | "cliui": "2.1.0", 4453 | "decamelize": "1.2.0", 4454 | "window-size": "0.1.0" 4455 | } 4456 | } 4457 | } 4458 | }, 4459 | "uglifyjs-webpack-plugin": { 4460 | "version": "0.4.6", 4461 | "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", 4462 | "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", 4463 | "dev": true, 4464 | "requires": { 4465 | "source-map": "0.5.7", 4466 | "uglify-js": "2.8.29", 4467 | "webpack-sources": "1.0.1" 4468 | } 4469 | }, 4470 | "yargs": { 4471 | "version": "8.0.2", 4472 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", 4473 | "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", 4474 | "dev": true, 4475 | "requires": { 4476 | "camelcase": "4.1.0", 4477 | "cliui": "3.2.0", 4478 | "decamelize": "1.2.0", 4479 | "get-caller-file": "1.0.2", 4480 | "os-locale": "2.1.0", 4481 | "read-pkg-up": "2.0.0", 4482 | "require-directory": "2.1.1", 4483 | "require-main-filename": "1.0.1", 4484 | "set-blocking": "2.0.0", 4485 | "string-width": "2.1.1", 4486 | "which-module": "2.0.0", 4487 | "y18n": "3.2.1", 4488 | "yargs-parser": "7.0.0" 4489 | }, 4490 | "dependencies": { 4491 | "camelcase": { 4492 | "version": "4.1.0", 4493 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 4494 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 4495 | "dev": true 4496 | }, 4497 | "cliui": { 4498 | "version": "3.2.0", 4499 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 4500 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 4501 | "dev": true, 4502 | "requires": { 4503 | "string-width": "1.0.2", 4504 | "strip-ansi": "3.0.1", 4505 | "wrap-ansi": "2.1.0" 4506 | }, 4507 | "dependencies": { 4508 | "string-width": { 4509 | "version": "1.0.2", 4510 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 4511 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 4512 | "dev": true, 4513 | "requires": { 4514 | "code-point-at": "1.1.0", 4515 | "is-fullwidth-code-point": "1.0.0", 4516 | "strip-ansi": "3.0.1" 4517 | } 4518 | } 4519 | } 4520 | } 4521 | } 4522 | } 4523 | } 4524 | }, 4525 | "webpack-cleanup-plugin": { 4526 | "version": "0.5.1", 4527 | "resolved": "https://registry.npmjs.org/webpack-cleanup-plugin/-/webpack-cleanup-plugin-0.5.1.tgz", 4528 | "integrity": "sha1-3y1wa9dTZMBuZbBRGGMW1nTrlq8=", 4529 | "dev": true, 4530 | "requires": { 4531 | "lodash.union": "4.6.0", 4532 | "minimatch": "3.0.3", 4533 | "recursive-readdir-sync": "1.0.6" 4534 | }, 4535 | "dependencies": { 4536 | "minimatch": { 4537 | "version": "3.0.3", 4538 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", 4539 | "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", 4540 | "dev": true, 4541 | "requires": { 4542 | "brace-expansion": "1.1.8" 4543 | } 4544 | } 4545 | } 4546 | }, 4547 | "webpack-dev-middleware": { 4548 | "version": "1.12.0", 4549 | "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz", 4550 | "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=", 4551 | "dev": true, 4552 | "requires": { 4553 | "memory-fs": "0.4.1", 4554 | "mime": "1.4.1", 4555 | "path-is-absolute": "1.0.1", 4556 | "range-parser": "1.2.0", 4557 | "time-stamp": "2.0.0" 4558 | } 4559 | }, 4560 | "webpack-dev-server": { 4561 | "version": "2.9.2", 4562 | "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.2.tgz", 4563 | "integrity": "sha512-ppL53TttdTPfiZA4EphKRE4QgtXssjLdHBwNs/MOx/fWLHCrZ0JeyE+eFcHrAcv7qOJgvR5jFZ1quO7i1LNieA==", 4564 | "dev": true, 4565 | "requires": { 4566 | "ansi-html": "0.0.7", 4567 | "array-includes": "3.0.3", 4568 | "bonjour": "3.5.0", 4569 | "chokidar": "1.7.0", 4570 | "compression": "1.7.1", 4571 | "connect-history-api-fallback": "1.4.0", 4572 | "del": "3.0.0", 4573 | "express": "4.16.2", 4574 | "html-entities": "1.2.1", 4575 | "http-proxy-middleware": "0.17.4", 4576 | "internal-ip": "1.2.0", 4577 | "ip": "1.1.5", 4578 | "loglevel": "1.5.1", 4579 | "opn": "5.1.0", 4580 | "portfinder": "1.0.13", 4581 | "selfsigned": "1.10.1", 4582 | "serve-index": "1.9.1", 4583 | "sockjs": "0.3.18", 4584 | "sockjs-client": "1.1.4", 4585 | "spdy": "3.4.7", 4586 | "strip-ansi": "3.0.1", 4587 | "supports-color": "4.5.0", 4588 | "webpack-dev-middleware": "1.12.0", 4589 | "yargs": "6.6.0" 4590 | }, 4591 | "dependencies": { 4592 | "camelcase": { 4593 | "version": "3.0.0", 4594 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 4595 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 4596 | "dev": true 4597 | }, 4598 | "cliui": { 4599 | "version": "3.2.0", 4600 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 4601 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 4602 | "dev": true, 4603 | "requires": { 4604 | "string-width": "1.0.2", 4605 | "strip-ansi": "3.0.1", 4606 | "wrap-ansi": "2.1.0" 4607 | } 4608 | }, 4609 | "find-up": { 4610 | "version": "1.1.2", 4611 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 4612 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 4613 | "dev": true, 4614 | "requires": { 4615 | "path-exists": "2.1.0", 4616 | "pinkie-promise": "2.0.1" 4617 | } 4618 | }, 4619 | "load-json-file": { 4620 | "version": "1.1.0", 4621 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 4622 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 4623 | "dev": true, 4624 | "requires": { 4625 | "graceful-fs": "4.1.11", 4626 | "parse-json": "2.2.0", 4627 | "pify": "2.3.0", 4628 | "pinkie-promise": "2.0.1", 4629 | "strip-bom": "2.0.0" 4630 | } 4631 | }, 4632 | "os-locale": { 4633 | "version": "1.4.0", 4634 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 4635 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 4636 | "dev": true, 4637 | "requires": { 4638 | "lcid": "1.0.0" 4639 | } 4640 | }, 4641 | "path-exists": { 4642 | "version": "2.1.0", 4643 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 4644 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 4645 | "dev": true, 4646 | "requires": { 4647 | "pinkie-promise": "2.0.1" 4648 | } 4649 | }, 4650 | "path-type": { 4651 | "version": "1.1.0", 4652 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 4653 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 4654 | "dev": true, 4655 | "requires": { 4656 | "graceful-fs": "4.1.11", 4657 | "pify": "2.3.0", 4658 | "pinkie-promise": "2.0.1" 4659 | } 4660 | }, 4661 | "read-pkg": { 4662 | "version": "1.1.0", 4663 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 4664 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 4665 | "dev": true, 4666 | "requires": { 4667 | "load-json-file": "1.1.0", 4668 | "normalize-package-data": "2.4.0", 4669 | "path-type": "1.1.0" 4670 | } 4671 | }, 4672 | "read-pkg-up": { 4673 | "version": "1.0.1", 4674 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 4675 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 4676 | "dev": true, 4677 | "requires": { 4678 | "find-up": "1.1.2", 4679 | "read-pkg": "1.1.0" 4680 | } 4681 | }, 4682 | "string-width": { 4683 | "version": "1.0.2", 4684 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 4685 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 4686 | "dev": true, 4687 | "requires": { 4688 | "code-point-at": "1.1.0", 4689 | "is-fullwidth-code-point": "1.0.0", 4690 | "strip-ansi": "3.0.1" 4691 | } 4692 | }, 4693 | "strip-bom": { 4694 | "version": "2.0.0", 4695 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 4696 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 4697 | "dev": true, 4698 | "requires": { 4699 | "is-utf8": "0.2.1" 4700 | } 4701 | }, 4702 | "which-module": { 4703 | "version": "1.0.0", 4704 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 4705 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", 4706 | "dev": true 4707 | }, 4708 | "yargs": { 4709 | "version": "6.6.0", 4710 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", 4711 | "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", 4712 | "dev": true, 4713 | "requires": { 4714 | "camelcase": "3.0.0", 4715 | "cliui": "3.2.0", 4716 | "decamelize": "1.2.0", 4717 | "get-caller-file": "1.0.2", 4718 | "os-locale": "1.4.0", 4719 | "read-pkg-up": "1.0.1", 4720 | "require-directory": "2.1.1", 4721 | "require-main-filename": "1.0.1", 4722 | "set-blocking": "2.0.0", 4723 | "string-width": "1.0.2", 4724 | "which-module": "1.0.0", 4725 | "y18n": "3.2.1", 4726 | "yargs-parser": "4.2.1" 4727 | } 4728 | }, 4729 | "yargs-parser": { 4730 | "version": "4.2.1", 4731 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", 4732 | "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", 4733 | "dev": true, 4734 | "requires": { 4735 | "camelcase": "3.0.0" 4736 | } 4737 | } 4738 | } 4739 | }, 4740 | "webpack-sources": { 4741 | "version": "1.0.1", 4742 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", 4743 | "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", 4744 | "dev": true, 4745 | "requires": { 4746 | "source-list-map": "2.0.0", 4747 | "source-map": "0.5.7" 4748 | }, 4749 | "dependencies": { 4750 | "source-map": { 4751 | "version": "0.5.7", 4752 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4753 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4754 | "dev": true 4755 | } 4756 | } 4757 | }, 4758 | "websocket-driver": { 4759 | "version": "0.7.0", 4760 | "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", 4761 | "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", 4762 | "dev": true, 4763 | "requires": { 4764 | "http-parser-js": "0.4.9", 4765 | "websocket-extensions": "0.1.2" 4766 | } 4767 | }, 4768 | "websocket-extensions": { 4769 | "version": "0.1.2", 4770 | "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz", 4771 | "integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=", 4772 | "dev": true 4773 | }, 4774 | "which": { 4775 | "version": "1.3.0", 4776 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 4777 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 4778 | "dev": true, 4779 | "requires": { 4780 | "isexe": "2.0.0" 4781 | } 4782 | }, 4783 | "which-module": { 4784 | "version": "2.0.0", 4785 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 4786 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 4787 | "dev": true 4788 | }, 4789 | "window-size": { 4790 | "version": "0.1.0", 4791 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 4792 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 4793 | "dev": true 4794 | }, 4795 | "wordwrap": { 4796 | "version": "0.0.2", 4797 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 4798 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 4799 | "dev": true 4800 | }, 4801 | "worker-farm": { 4802 | "version": "1.5.0", 4803 | "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz", 4804 | "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", 4805 | "dev": true, 4806 | "requires": { 4807 | "errno": "0.1.4", 4808 | "xtend": "4.0.1" 4809 | } 4810 | }, 4811 | "wrap-ansi": { 4812 | "version": "2.1.0", 4813 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 4814 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 4815 | "dev": true, 4816 | "requires": { 4817 | "string-width": "1.0.2", 4818 | "strip-ansi": "3.0.1" 4819 | }, 4820 | "dependencies": { 4821 | "string-width": { 4822 | "version": "1.0.2", 4823 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 4824 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 4825 | "dev": true, 4826 | "requires": { 4827 | "code-point-at": "1.1.0", 4828 | "is-fullwidth-code-point": "1.0.0", 4829 | "strip-ansi": "3.0.1" 4830 | } 4831 | } 4832 | } 4833 | }, 4834 | "wrappy": { 4835 | "version": "1.0.2", 4836 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4837 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4838 | "dev": true 4839 | }, 4840 | "xml-char-classes": { 4841 | "version": "1.0.0", 4842 | "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", 4843 | "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", 4844 | "dev": true 4845 | }, 4846 | "xstream": { 4847 | "version": "11.0.0", 4848 | "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.0.0.tgz", 4849 | "integrity": "sha1-IBjDxOVz92tiuc+WoXpGh2qxIOA=", 4850 | "requires": { 4851 | "symbol-observable": "1.0.4" 4852 | } 4853 | }, 4854 | "xtend": { 4855 | "version": "4.0.1", 4856 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 4857 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 4858 | "dev": true 4859 | }, 4860 | "y18n": { 4861 | "version": "3.2.1", 4862 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 4863 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 4864 | "dev": true 4865 | }, 4866 | "yallist": { 4867 | "version": "2.1.2", 4868 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 4869 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 4870 | "dev": true 4871 | }, 4872 | "yargs": { 4873 | "version": "9.0.1", 4874 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", 4875 | "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", 4876 | "dev": true, 4877 | "requires": { 4878 | "camelcase": "4.1.0", 4879 | "cliui": "3.2.0", 4880 | "decamelize": "1.2.0", 4881 | "get-caller-file": "1.0.2", 4882 | "os-locale": "2.1.0", 4883 | "read-pkg-up": "2.0.0", 4884 | "require-directory": "2.1.1", 4885 | "require-main-filename": "1.0.1", 4886 | "set-blocking": "2.0.0", 4887 | "string-width": "2.1.1", 4888 | "which-module": "2.0.0", 4889 | "y18n": "3.2.1", 4890 | "yargs-parser": "7.0.0" 4891 | }, 4892 | "dependencies": { 4893 | "camelcase": { 4894 | "version": "4.1.0", 4895 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 4896 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 4897 | "dev": true 4898 | }, 4899 | "cliui": { 4900 | "version": "3.2.0", 4901 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 4902 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 4903 | "dev": true, 4904 | "requires": { 4905 | "string-width": "1.0.2", 4906 | "strip-ansi": "3.0.1", 4907 | "wrap-ansi": "2.1.0" 4908 | }, 4909 | "dependencies": { 4910 | "string-width": { 4911 | "version": "1.0.2", 4912 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 4913 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 4914 | "dev": true, 4915 | "requires": { 4916 | "code-point-at": "1.1.0", 4917 | "is-fullwidth-code-point": "1.0.0", 4918 | "strip-ansi": "3.0.1" 4919 | } 4920 | } 4921 | } 4922 | } 4923 | } 4924 | }, 4925 | "yargs-parser": { 4926 | "version": "7.0.0", 4927 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", 4928 | "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", 4929 | "dev": true, 4930 | "requires": { 4931 | "camelcase": "4.1.0" 4932 | }, 4933 | "dependencies": { 4934 | "camelcase": { 4935 | "version": "4.1.0", 4936 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 4937 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 4938 | "dev": true 4939 | } 4940 | } 4941 | } 4942 | } 4943 | } 4944 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript-starter-cycle", 3 | "version": "2.0.0", 4 | "description": "An opinionated starter for Cycle.js projects powered by TypeScript", 5 | "scripts": { 6 | "build": "cross-env NODE_ENV=production webpack", 7 | "dev": "cross-env NODE_ENV=development webpack-dev-server --content-base ./dist --hot --inline --colors --port 3030 --open --history-api-fallback", 8 | "start": "npm run dev" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/cyclejs-community/typescript-starter-cycle.git" 13 | }, 14 | "keywords": [ 15 | "typescript", 16 | "cyclejs", 17 | "cycle", 18 | "starter", 19 | "webpack" 20 | ], 21 | "author": "Sudarsan Balaji", 22 | "license": "MIT", 23 | "bugs": { 24 | "url": "https://github.com/cyclejs-community/typescript-starter-cycle/issues" 25 | }, 26 | "homepage": "https://github.com/cyclejs-community/typescript-starter-cycle", 27 | "dependencies": { 28 | "@cycle/dom": "^18.3.0", 29 | "@cycle/history": "^6.4.0", 30 | "@cycle/http": "^14.5.0", 31 | "@cycle/isolate": "^3.1.0", 32 | "@cycle/run": "^3.3.0", 33 | "csstips": "^0.2.2", 34 | "csx": "^8.5.0", 35 | "ramda": "^0.25.0", 36 | "switch-path": "^1.2.0", 37 | "typestyle": "^1.4.3", 38 | "xstream": "^11.0.0" 39 | }, 40 | "devDependencies": { 41 | "copy-webpack-plugin": "^4.1.1", 42 | "cross-env": "^5.1.0", 43 | "html-webpack-plugin": "^2.30.1", 44 | "source-map-loader": "^0.2.2", 45 | "ts-loader": "^3.0.2", 46 | "typescript": "^2.5.3", 47 | "uglifyjs-webpack-plugin": "^1.0.0-beta.3", 48 | "webpack": "^3.8.1", 49 | "webpack-cleanup-plugin": "^0.5.1", 50 | "webpack-dev-server": "^2.9.2", 51 | "yargs": "^9.0.1" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/app.ts: -------------------------------------------------------------------------------- 1 | import { run } from '@cycle/run'; 2 | import { App } from 'components/App'; 3 | import { makeDOMDriver } from '@cycle/dom'; 4 | import { captureClicks, makeHashHistoryDriver } from '@cycle/history'; 5 | import { cssRaw } from 'typestyle'; 6 | import { normalize, setupPage } from 'csstips'; 7 | import { makeGithubDriver } from 'drivers/github'; 8 | 9 | normalize(); 10 | setupPage('#app'); 11 | 12 | cssRaw(` 13 | #app { 14 | font-family: medium-content-sans-serif-font,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Geneva,Arial,sans-serif; 15 | background: white; 16 | color: #333; 17 | display: flex; 18 | } 19 | 20 | .layout { 21 | display: flex; 22 | flex: 1; 23 | flex-direction: column; 24 | } 25 | 26 | h1, h2, h3, h4, h5, h6 { 27 | font-family: medium-ui-sans-serif-text-font,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif; 28 | font-weight: 100; 29 | } 30 | `); 31 | 32 | run(App, { 33 | dom: makeDOMDriver('#app'), 34 | history: captureClicks(makeHashHistoryDriver()), 35 | github: makeGithubDriver() 36 | }); 37 | -------------------------------------------------------------------------------- /src/components/App.ts: -------------------------------------------------------------------------------- 1 | import { Stream, MemoryStream } from 'xstream'; 2 | import { DOMSource, VNode, div } from '@cycle/dom'; 3 | import { HistoryInput, Location } from '@cycle/history'; 4 | import { resolve } from 'routes'; 5 | import { pluck } from 'utils/pluck'; 6 | import { GithubSource } from 'drivers/github'; 7 | 8 | export interface Sources { 9 | dom: DOMSource; 10 | history: MemoryStream; 11 | github: GithubSource; 12 | } 13 | 14 | export interface Sinks { 15 | dom: Stream; 16 | history: Stream; 17 | github: Stream; 18 | } 19 | 20 | const xs = Stream; 21 | 22 | export const App = (sources: Sources): Sinks => { 23 | const app$ = 24 | sources.history 25 | .map(location => resolve(location.pathname)) 26 | .map(({ getComponent, getLayout, ...resolution }) => 27 | xs.fromPromise( 28 | getComponent() 29 | .then(Component => Component({ ...sources, ...(resolution.sources || {}) })) 30 | .then(component => 31 | !getLayout 32 | ? Promise.resolve(component) 33 | : getLayout().then(Layout => Layout({ ...sources, component })) 34 | ) 35 | ) 36 | ) 37 | .flatten(); 38 | return { 39 | dom: pluck(app$, app$ => app$.dom), 40 | history: pluck(app$, app$ => app$.history), 41 | github: pluck(app$, app$ => app$.github) 42 | }; 43 | }; 44 | -------------------------------------------------------------------------------- /src/components/BackButton.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | import { HistoryInput } from '@cycle/history'; 3 | import { DOMSource, VNode, button } from '@cycle/dom'; 4 | import isolate from '@cycle/isolate'; 5 | 6 | interface Sources { 7 | dom: DOMSource; 8 | class$?: Stream; 9 | } 10 | 11 | interface Sinks { 12 | dom: Stream; 13 | history: Stream; 14 | } 15 | 16 | const xs = Stream; 17 | 18 | const BackButtonComponent = ({ dom, class$ }: Sources): Sinks => { 19 | const goBack$ = 20 | dom.select('button') 21 | .events('click', { preventDefault: true }) 22 | .mapTo({ type: 'goBack' }); 23 | const vdom$ = 24 | (class$ || xs.of('')) 25 | .map(className => button(`.back-button.${className}`, ['Back'])); 26 | return { 27 | dom: vdom$, 28 | history: goBack$ 29 | } 30 | }; 31 | 32 | export const BackButton = (sources: Sources): Sinks => isolate(BackButtonComponent)(sources); 33 | -------------------------------------------------------------------------------- /src/components/Header/NavMenu.ts: -------------------------------------------------------------------------------- 1 | import { Stream, MemoryStream } from 'xstream'; 2 | import { DOMSource, VNode, nav, a } from '@cycle/dom'; 3 | import isolate from '@cycle/isolate'; 4 | import { style } from 'typestyle'; 5 | import { rem } from 'csx'; 6 | import { NavLink } from '../NavLink'; 7 | import { Location } from '@cycle/history'; 8 | 9 | interface Sources { 10 | dom: DOMSource; 11 | history: MemoryStream; 12 | } 13 | 14 | interface Sinks { 15 | dom: Stream; 16 | } 17 | 18 | const navLink = { 19 | color: '#999', 20 | fontSize: rem(1), 21 | fontWeight: 700, 22 | marginRight: rem(1), 23 | textDecoration: 'none', 24 | transition: 'color .3s' 25 | }; 26 | const navLinkHover = { 27 | ...navLink, 28 | cursor: 'pointer', 29 | color: '#666' 30 | }; 31 | 32 | const className = style({ 33 | display: 'flex', 34 | alignContent: 'flex-end', 35 | $nest: { 36 | '& > a': { 37 | ...navLink, 38 | textTransform: 'uppercase', 39 | $nest: { 40 | '&:first-child': { 41 | marginLeft: 'auto' 42 | }, 43 | '&:hover': navLinkHover, 44 | '&.active': { 45 | color: '#333' 46 | } 47 | } 48 | } 49 | } 50 | }); 51 | 52 | const xs = Stream; 53 | const menuItems = [ 54 | { 55 | href: '/', 56 | title: 'Home' 57 | }, 58 | { 59 | href: '/commits', 60 | title: 'Commits' 61 | }, 62 | { 63 | href: '/about', 64 | title: 'About' 65 | } 66 | ]; 67 | 68 | const NavMenuComponent = ({ dom, history }: Sources): Sinks => { 69 | const navLinks = menuItems.map(({ href, title }) => NavLink({ dom, history, href$: xs.of(href), title$: xs.of(title) })); 70 | const navLinksDom$ = xs.combine(...navLinks.map(navLink => navLink.dom)) 71 | const vdom$ = navLinksDom$.map(navLinks => nav(`.${className}`, navLinks)); 72 | return { 73 | dom: vdom$ 74 | }; 75 | }; 76 | 77 | export const NavMenu = (sources: Sources): Sinks => isolate(NavMenuComponent)(sources); 78 | -------------------------------------------------------------------------------- /src/components/Header/index.ts: -------------------------------------------------------------------------------- 1 | import { Stream, MemoryStream } from 'xstream'; 2 | import { DOMSource, VNode, div, h1, em, br } from '@cycle/dom'; 3 | import { style } from 'typestyle'; 4 | import { rem } from 'csx'; 5 | import { NavMenu } from './NavMenu'; 6 | import { Location } from '@cycle/history'; 7 | 8 | interface Sources { 9 | dom: DOMSource; 10 | history: MemoryStream; 11 | } 12 | 13 | interface Sinks { 14 | dom: Stream; 15 | } 16 | 17 | const className = style({ 18 | display: 'flex', 19 | $nest: { 20 | '& h1': { 21 | marginBottom: 0, 22 | marginTop: 0, 23 | flex: '1 0 60%', 24 | lineHeight: 1 25 | }, 26 | '& em': { 27 | fontSize: rem(1) 28 | }, 29 | '& nav': { 30 | flex: 1 31 | } 32 | } 33 | }); 34 | 35 | const xs = Stream; 36 | 37 | export const Header = ({ dom, history }: Sources): Sinks => { 38 | const navMenu = NavMenu({ dom, history }); 39 | const vdom$ = navMenu.dom.map(navMenu => 40 | div(`.${className}`, [ 41 | h1([ 42 | 'TypeScript Starter Cycle', 43 | br(), 44 | em('An opinionated starter for Cycle.js projects powered by TypeScript') 45 | ]), 46 | navMenu 47 | ]) 48 | ); 49 | return { 50 | dom: vdom$ 51 | }; 52 | }; 53 | -------------------------------------------------------------------------------- /src/components/NavLink.ts: -------------------------------------------------------------------------------- 1 | import { Stream, MemoryStream } from 'xstream'; 2 | import { DOMSource, VNode, a } from '@cycle/dom'; 3 | import { Location } from '@cycle/history'; 4 | import isolate from '@cycle/isolate'; 5 | 6 | interface Sources { 7 | dom: DOMSource; 8 | history: MemoryStream; 9 | href$: Stream; 10 | title$: Stream; 11 | } 12 | 13 | interface Sinks { 14 | dom: Stream; 15 | history: Stream; 16 | } 17 | 18 | const xs = Stream; 19 | 20 | const NavLinkComponent = ({ dom, history, href$, title$ }: Sources): Sinks => { 21 | const currentHref$ = history.map(location => location.pathname); 22 | const active$ = 23 | currentHref$ 24 | .map(href => href$.map(h => href === h)) 25 | .flatten(); 26 | const vdom$ = 27 | xs.combine(href$, active$, title$) 28 | .map(([ href, active, title ]) => a(`${!!active ? '.active' : ''}`, { attrs: { href, title } }, [title])); 29 | return { 30 | dom: vdom$, 31 | history: xs.empty() 32 | }; 33 | }; 34 | 35 | export const NavLink = (sources: Sources): Sinks => isolate(NavLinkComponent)(sources); 36 | -------------------------------------------------------------------------------- /src/drivers/github.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | import { HTTPSource, RequestOptions, Response, makeHTTPDriver } from '@cycle/http'; 3 | 4 | const toRequestOptions = (sha: string): RequestOptions => { 5 | const single = !!sha; 6 | const url = 7 | 'https://api.github.com/repos/cyclejs-community/typescript-starter-cycle/commits' 8 | + (single ? `/${sha}` : ''); 9 | const category = single ? `commit-by-sha-${sha}` : 'commits'; 10 | return { 11 | url, 12 | method: 'GET', 13 | category, 14 | accept: 'application/vnd.github.v3+json' 15 | }; 16 | }; 17 | 18 | export interface Commit { 19 | sha: string; 20 | commit: { 21 | message: string; 22 | author: { 23 | name: string; 24 | email: string; 25 | date: Date; 26 | } 27 | } 28 | } 29 | 30 | const xs = Stream; 31 | 32 | export class GithubSource { 33 | http: HTTPSource; 34 | commits(): Stream; 35 | commits(sha: string): Stream; 36 | commits(sha?: string) { 37 | return !!sha 38 | ? this.__commitBySha(sha) 39 | : this.__commits(); 40 | } 41 | constructor(commitsRequest$: Stream) { 42 | const request$ = commitsRequest$.map(sha => toRequestOptions(sha)); 43 | this.http = makeHTTPDriver()(request$, 'githubHttp'); 44 | } 45 | private __commits() { 46 | const response$$: Stream> = this.http.select('commits'); 47 | return response$$ 48 | .map(response$ => response$.replaceError(() => xs.of({ status: 500, body: [] } as Response))) 49 | .flatten() 50 | .map(response => response.body as Commit[]); 51 | } 52 | private __commitBySha(sha: string) { 53 | const response$$: Stream> = this.http.select(`commit-by-sha-${sha}`); 54 | return response$$ 55 | .map(response$ => response$.replaceError(() => xs.of({ status: 500, body: {} } as Response))) 56 | .flatten() 57 | .map(response => response.body as Commit); 58 | } 59 | } 60 | 61 | export const makeGithubDriver = () => (commitsRequest$: Stream) => new GithubSource(commitsRequest$); 62 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyclejs-community/typescript-starter-cycle/c47fbd5a3a54fe3f5627e4a0bbce86223b101b99/src/favicon.ico -------------------------------------------------------------------------------- /src/fonts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyclejs-community/typescript-starter-cycle/c47fbd5a3a54fe3f5627e4a0bbce86223b101b99/src/fonts/.gitkeep -------------------------------------------------------------------------------- /src/images/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyclejs-community/typescript-starter-cycle/c47fbd5a3a54fe3f5627e4a0bbce86223b101b99/src/images/.gitkeep -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TypeScript Starter for cycle.js with Webpack 6 | 7 | 8 | 9 |
10 | 11 | -------------------------------------------------------------------------------- /src/layouts/HeaderLayout.ts: -------------------------------------------------------------------------------- 1 | import { pluck } from 'utils/pluck'; 2 | import { Layout } from './'; 3 | import { Header } from 'components/Header'; 4 | import { Stream } from 'xstream'; 5 | import { header, div, hr, main } from '@cycle/dom'; 6 | import { style } from 'typestyle'; 7 | import { rem } from 'csx'; 8 | 9 | const className = style({ 10 | $nest: { 11 | '&>header': { 12 | padding: rem(1), 13 | }, 14 | '&>main': { 15 | padding: rem(1) 16 | } 17 | } 18 | }); 19 | 20 | const xs = Stream; 21 | 22 | export const HeaderLayout: Layout = ({ dom, history, github, component: { dom: componentDom, ...component } }) => { 23 | const headerComponent = Header({ dom, history }); 24 | const vdom$ = 25 | xs.combine(headerComponent.dom, componentDom || xs.empty()) 26 | .map(([headerDom, component]) => 27 | div(`.header.layout.${className}`, [ 28 | header(headerDom), 29 | hr(), 30 | main(component) 31 | ]) 32 | ); 33 | return { 34 | dom: vdom$, 35 | ...component 36 | }; 37 | }; 38 | -------------------------------------------------------------------------------- /src/layouts/index.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | import { Sources, Sinks } from 'components/App'; 3 | 4 | interface LayoutSources extends Sources { 5 | component: Partial; 6 | } 7 | 8 | export interface Layout { 9 | (sources: LayoutSources): Partial; 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/About/index.ts: -------------------------------------------------------------------------------- 1 | import { RouteComponent } from 'routes'; 2 | import { Stream } from 'xstream'; 3 | import { h2 } from '@cycle/dom'; 4 | 5 | const xs = Stream; 6 | 7 | export const About: RouteComponent = sources => ({ 8 | dom: xs.of(h2(['About'])), 9 | history: xs.empty() 10 | }); 11 | -------------------------------------------------------------------------------- /src/routes/Commits/index.ts: -------------------------------------------------------------------------------- 1 | import { RouteDefinitions } from 'routes'; 2 | import { Stream } from 'xstream'; 3 | 4 | // Example of async layout loading 5 | // This could be shared between the top level routes and this file 6 | const getHeaderLayout = async () => { 7 | const { HeaderLayout } = await import(/* webpackChunkName: "HeaderLayout" */'layouts/HeaderLayout'); 8 | return HeaderLayout; 9 | }; 10 | 11 | const xs = Stream; 12 | 13 | export const Commits: RouteDefinitions = { 14 | '/': { 15 | getComponent: async () => { 16 | const { List } = await import(/* webpackChunkName: "CommitsList" */'./routes/List'); 17 | return List; 18 | }, 19 | getLayout: getHeaderLayout 20 | }, 21 | // Example of providing additional sources based on route parameters 22 | '/:sha': sha => ({ 23 | getComponent: async () => { 24 | const { Details } = await import(/* webpackChunkName: "CommitDetails" */'./routes/Details'); 25 | return Details; 26 | }, 27 | sources: { 28 | sha$: xs.of(sha) 29 | }, 30 | getLayout: getHeaderLayout 31 | }) 32 | }; 33 | -------------------------------------------------------------------------------- /src/routes/Commits/routes/Details/index.ts: -------------------------------------------------------------------------------- 1 | import { Sources as RouteComponentSources, Sinks } from 'components/App'; 2 | import { Stream } from 'xstream'; 3 | import { div, h2, h3, hr, p, h4, strong, em } from '@cycle/dom'; 4 | import { BackButton } from 'components/BackButton'; 5 | import { style } from 'typestyle'; 6 | import { rem } from 'csx'; 7 | import { Commit } from 'drivers/github'; 8 | 9 | interface Sources extends RouteComponentSources { 10 | sha$: Stream; 11 | } 12 | 13 | const className = style({ 14 | display: 'inline', 15 | marginLeft: rem(1) 16 | }); 17 | 18 | const xs = Stream; 19 | 20 | const getDom = ({ sha, commit: { message, author: { name, email, date } } }: Commit) => [ 21 | h3([message.split('\n\n')[0]]), 22 | h4([strong([name])]), 23 | h4([email]), 24 | h4([em([date])]), 25 | p([message.split('\n\n')[1] || '']) 26 | ]; 27 | 28 | export const Details: (sources: Sources) => Partial = ({ dom, github, sha$ }) => { 29 | const backButton = BackButton({ dom }); 30 | const details$ = 31 | sha$ 32 | .map(sha => github.commits(sha)) 33 | .flatten() 34 | .remember(); 35 | const loaded$ = details$.mapTo(true).startWith(false).debug(); 36 | const contents$ = loaded$.map(loaded => 37 | loaded 38 | ? details$.map(commit => getDom(commit)) 39 | : xs.of([h3(['Loading...'])]) 40 | ).flatten(); 41 | const vdom$ = 42 | xs.combine(backButton.dom, contents$) 43 | .map(([backButton, contents]) => 44 | div([ 45 | backButton, 46 | h2(`.${className}`, ['Details']), 47 | hr(), 48 | ...contents 49 | ]) 50 | ); 51 | return { 52 | dom: vdom$, 53 | history: backButton.history, 54 | github: sha$ 55 | }; 56 | }; 57 | -------------------------------------------------------------------------------- /src/routes/Commits/routes/List/components/CommitListItem.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | import { DOMSource, VNode, li, h4, h5, strong, em } from '@cycle/dom'; 3 | import isolate from '@cycle/isolate'; 4 | import { Commit } from 'drivers/github'; 5 | import { style } from 'typestyle'; 6 | import { rem } from 'csx'; 7 | 8 | interface Sources { 9 | dom: DOMSource; 10 | commit$: Stream; 11 | } 12 | 13 | interface Sinks { 14 | dom: Stream; 15 | history: Stream; 16 | } 17 | 18 | const className = style({ 19 | marginBottom: rem(1), 20 | border: `${rem(.1)} solid #ddd`, 21 | padding: rem(1), 22 | listStyle: 'none', 23 | borderRadius: rem(.5), 24 | $nest: { 25 | 'h4, h5': { 26 | marginTop: 0, 27 | marginBottom: rem(.5) 28 | }, 29 | h5: { 30 | marginBottom: 0 31 | } 32 | } 33 | }); 34 | 35 | const CommitListItemComponent = ({ dom, commit$ }: Sources): Sinks => { 36 | const navigateTo$ = 37 | commit$ 38 | .map(({ sha }) => dom.select('li').events('click', { preventDefault: true }).map(ev => `/commits/${sha}`)) 39 | .flatten(); 40 | const vdom$ = 41 | commit$ 42 | .map(({ sha, commit: { message, author: { name, email, date } } }) => 43 | li(`.${className}`, [ 44 | h4([strong([message.split('\n\n')[0]])]), 45 | h5([ 46 | 'by ', 47 | strong([name]), 48 | ' at ', 49 | em([date]) 50 | ]) 51 | ]) 52 | ); 53 | return { 54 | dom: vdom$, 55 | history: navigateTo$ 56 | }; 57 | } 58 | 59 | export const CommitListItem = (sources: Sources): Sinks => isolate(CommitListItemComponent)(sources); 60 | -------------------------------------------------------------------------------- /src/routes/Commits/routes/List/index.ts: -------------------------------------------------------------------------------- 1 | import { RouteComponent } from 'routes'; 2 | import { Stream } from 'xstream'; 3 | import { div, h2, p, ul, li, VNode } from '@cycle/dom'; 4 | import { Commit } from 'drivers/github'; 5 | import { CommitListItem } from './components/CommitListItem'; 6 | 7 | const xs = Stream; 8 | 9 | export const List: RouteComponent = ({ dom, history, github }) => { 10 | const commits$ = github.commits(); 11 | const loaded$ = commits$.mapTo(true).startWith(false); 12 | const commitListItems$ = 13 | commits$.map(commits => 14 | commits 15 | .filter(commit => !commit.commit.message.startsWith('Merge')) 16 | .map(commit => CommitListItem({ dom, commit$: xs.of(commit) })) 17 | ); 18 | const navigateTo$ = 19 | commitListItems$ 20 | .map(clis => xs.merge(...clis.map(cli => cli.history))) 21 | .flatten(); 22 | const commitListItemDoms$ = 23 | commitListItems$ 24 | .map>(clis => xs.combine(...clis.map(cli => cli.dom))) 25 | .flatten(); 26 | const content$ = loaded$.map(loaded => 27 | loaded 28 | ? commitListItemDoms$.map(commits => ul(commits)) 29 | : xs.of(p(['Loading...'])) 30 | ).flatten(); 31 | const vdom$ = content$.map(content => 32 | div([ 33 | h2('Commits List'), 34 | content 35 | ]) 36 | ); 37 | const request$ = xs.of(''); 38 | return { 39 | dom: vdom$, 40 | history: navigateTo$, 41 | github: request$ 42 | }; 43 | }; 44 | -------------------------------------------------------------------------------- /src/routes/Home/index.ts: -------------------------------------------------------------------------------- 1 | import { RouteComponent } from 'routes'; 2 | import { Stream } from 'xstream'; 3 | import { h2 } from '@cycle/dom'; 4 | 5 | const xs = Stream; 6 | 7 | export const Home: RouteComponent = sources => ({ 8 | dom: xs.of(h2(['Home'])), 9 | history: xs.empty() 10 | }); 11 | -------------------------------------------------------------------------------- /src/routes/index.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | import { Home } from './Home'; 3 | import { Sources, Sinks } from 'components/App'; 4 | import { Layout } from 'layouts'; 5 | import switchPath from 'switch-path'; 6 | import { Commits } from './Commits'; 7 | 8 | export interface RouteComponent { 9 | (sources: Sources): Partial; 10 | } 11 | 12 | interface RouteResolution { 13 | path?: string; 14 | getComponent: () => Promise; 15 | getLayout?: () => Promise; 16 | sources?: any; 17 | } 18 | 19 | interface ParameterizedRouteResolution { 20 | (a: string, b?:string, c?: string, d?: string): RouteResolution; 21 | } 22 | 23 | export interface RouteDefinitions { 24 | [path: string]: RouteResolution | ParameterizedRouteResolution | RouteDefinitions; 25 | } 26 | 27 | // Example of async layout loading 28 | const getHeaderLayout = async () => { 29 | const { HeaderLayout } = await import(/* webpackChunkName: "HeaderLayout" */'layouts/HeaderLayout'); 30 | return HeaderLayout; 31 | }; 32 | 33 | // Helper to directly load components and layouts 34 | const getComponent = (component: T) => async () => await Promise.resolve(component); 35 | 36 | const routes: RouteDefinitions = { 37 | '/': { 38 | getComponent: getComponent(Home), 39 | getLayout: getHeaderLayout 40 | }, 41 | '/about': { 42 | // Example of async component loading 43 | // The component does not expose its own async loader because the requiring component 44 | // should have the power to decide on async loading. 45 | getComponent: async () => { 46 | const { About } = await import(/* webpackChunkName: "About" */'./About'); 47 | return About; 48 | }, 49 | getLayout: getHeaderLayout 50 | }, 51 | // Example of loading route definitions (and nested routes) 52 | // The synchronous sub routes are instantly loaded, the async sub routes 53 | // are loaded asynchronously on demand. 54 | '/commits': Commits 55 | }; 56 | 57 | const resolveImplementation = (routes: RouteDefinitions, route: string): RouteResolution => { 58 | const { path, value: { getComponent, getLayout, sources } } = switchPath(route, routes); 59 | return { 60 | path, 61 | getComponent, 62 | getLayout, 63 | sources 64 | }; 65 | } 66 | 67 | export const resolve = (route: string) => resolveImplementation(routes, route); 68 | -------------------------------------------------------------------------------- /src/utils/pluck.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | 3 | export const pluck = (stream: Stream, getter: (single: T) => Stream): Stream => 4 | stream.map(str => getter(str) || Stream.empty()).flatten(); 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "target": "es5", 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "sourceMap": true, 8 | "experimentalDecorators": true, 9 | "lib": [ "dom", "es6", "es5" ], 10 | "baseUrl": "./src" 11 | }, 12 | "include": [ 13 | "./src/**/*" 14 | ], 15 | "exclude": [ 16 | "./src/**/*.spec.ts" 17 | ], 18 | "compileOnSave": false 19 | } 20 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var argv = require('yargs').argv; 2 | var webpack = require('webpack'); 3 | var path = require('path'); 4 | var debug = require('debug')('app:config:webpack'); 5 | var HtmlWebpackPlugin = require('html-webpack-plugin'); 6 | var CleanupPlugin = require('webpack-cleanup-plugin'); 7 | var UglifyJSPlugin = require('uglifyjs-webpack-plugin'); 8 | var CopyWebpackPlugin = require('copy-webpack-plugin'); 9 | 10 | // Environment Constants 11 | var NODE_ENV = process.env.NODE_ENV; 12 | var API_ENDPOINT = JSON.stringify(process.env.API_ENDPOINT); 13 | var APP_URL = JSON.stringify(process.env.APP_URL); 14 | var __DEV__ = NODE_ENV === 'development'; 15 | var __PROD__ = NODE_ENV === 'production'; 16 | var __TEST__ = NODE_ENV === 'test'; 17 | var __COVERAGE__ = !argv.watch && __TEST__; 18 | var __BASENAME__ = JSON.stringify(process.env.BASENAME || ''); 19 | var GLOBALS = { 20 | 'process.env': { NODE_ENV: JSON.stringify(NODE_ENV) }, 21 | NODE_ENV: NODE_ENV, 22 | __DEV__: __DEV__, 23 | __PROD__: __PROD__, 24 | __TEST__: __TEST__, 25 | __COVERAGE__: __COVERAGE__, 26 | __BASENAME__: __BASENAME__ 27 | }; 28 | 29 | // Constants 30 | var ROOT = path.resolve(__dirname); 31 | var DIST = path.join(ROOT, 'dist'); 32 | var SRC = path.join(ROOT, 'src'); 33 | var PROJECT_PUBLIC_PATH = '/'; 34 | 35 | // Base Configuration 36 | var webpackConfig = { 37 | name: 'client', 38 | target: 'web', 39 | devtool: 'source-map', 40 | resolve: { 41 | modules: [ SRC, 'node_modules' ], 42 | extensions: ['.ts', '.js', '.json'] 43 | }, 44 | module: { rules: [] } 45 | }; 46 | 47 | // Entry 48 | var APP_ENTRY = path.join(SRC, 'app.ts'); 49 | var WEBPACK_DEV_SERVER = `webpack-dev-server/client?path=${PROJECT_PUBLIC_PATH}` 50 | webpackConfig.entry = { 51 | app: __DEV__ 52 | ? [WEBPACK_DEV_SERVER, APP_ENTRY] 53 | : [APP_ENTRY], 54 | vendor: [ 55 | '@cycle/run', 56 | '@cycle/http', 57 | '@cycle/history', 58 | '@cycle/isolate', 59 | '@cycle/dom', 60 | 'xstream', 61 | 'typestyle', 62 | 'switch-path', 63 | 'ramda' 64 | ] 65 | }; 66 | 67 | // Output 68 | webpackConfig.output = { 69 | filename: `[name].[hash].js`, 70 | chunkFilename: '[name].[chunkhash].js', 71 | path: DIST, 72 | publicPath: PROJECT_PUBLIC_PATH 73 | }; 74 | 75 | // Plugins 76 | webpackConfig.plugins = [ 77 | new webpack.DefinePlugin(GLOBALS), 78 | new CleanupPlugin(), 79 | new HtmlWebpackPlugin({ 80 | template: path.join(SRC, 'index.html'), 81 | hash: false, 82 | favicon: path.join(SRC, 'favicon.ico'), 83 | filename: 'index.html', 84 | inject: 'body', 85 | minify: { collapseWhitespace: true } 86 | }), 87 | new CopyWebpackPlugin([ 88 | { from: 'src/images', to: 'images' }, 89 | { from: 'src/fonts', to: 'fonts' } 90 | ]) 91 | ]; 92 | 93 | if (__DEV__) { 94 | debug('Enabling plugins for live development (HMR, NoErrors).') 95 | webpackConfig.plugins.push( 96 | new webpack.HotModuleReplacementPlugin(), 97 | new webpack.NoEmitOnErrorsPlugin() 98 | ) 99 | } else if (__PROD__) { 100 | debug('Enabling plugins for production (OccurrenceOrder & UglifyJS).') 101 | webpackConfig.plugins.push( 102 | new webpack.optimize.OccurrenceOrderPlugin(), 103 | new UglifyJSPlugin({ 104 | uglifyOptions: { 105 | compress: { 106 | unused: true, 107 | dead_code: true, 108 | warnings: false 109 | } 110 | } 111 | }), 112 | new webpack.optimize.AggressiveMergingPlugin() 113 | ) 114 | } 115 | 116 | // Don't split bundles during testing, since we only want import one bundle 117 | if (!__TEST__) { 118 | webpackConfig.plugins.push( 119 | new webpack.optimize.CommonsChunkPlugin({ 120 | names: ['vendor'] 121 | }) 122 | ) 123 | } 124 | 125 | // Rules 126 | function addRules(rules) { 127 | webpackConfig.module.rules = webpackConfig.module.rules.concat(rules); 128 | } 129 | // TypeScript and source maps 130 | addRules([ 131 | { test: /\.ts$/, loader: 'ts-loader' }, 132 | { test: /\.js$/, loader: 'source-map-loader', enforce: 'pre', exclude: [path.join(ROOT, 'node_modules')] } 133 | ]); 134 | 135 | module.exports = webpackConfig; 136 | --------------------------------------------------------------------------------