├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── circle.yml ├── docs └── docs.md ├── index.ts ├── package-lock.json ├── package.json ├── rollup.config.js ├── src └── index.ts ├── tsconfig.es6.json ├── tsconfig.json ├── tslint.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Node generated files 2 | node_modules 3 | npm-debug.log 4 | # OS generated files 5 | Thumbs.db 6 | .DS_Store 7 | # Ignored files 8 | *.js 9 | *.map 10 | *.d.ts 11 | .idea 12 | dist 13 | typings 14 | 15 | !rollup.config.js -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | .idea 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | tmp 29 | typings -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Brandon Roberts 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## ngrx-store-freeze 2 | 3 | [![npm version](https://badge.fury.io/js/ngrx-store-freeze.svg)](https://badge.fury.io/js/ngrx-store-freeze) 4 | [![CircleCI](https://circleci.com/gh/brandonroberts/ngrx-store-freeze/tree/master.svg?style=svg&circle-token=6ba0f6b74d2186f7896a58377b8607346c07cee6)](https://circleci.com/gh/brandonroberts/ngrx-store-freeze/tree/master) 5 | 6 | ngrx-store-freeze is a meta-reducer that prevents state from being mutated 7 | 8 | * Recursively freezes the **current state**, the dispatched **action payload** if provided and the **new state**. 9 | * When mutation occurs, an exception will be thrown. 10 | * Should be used **only in development** to ensure that the state remains immutable. 11 | 12 | 13 | ### Installation 14 | 15 | ```sh 16 | npm i --save-dev ngrx-store-freeze 17 | ``` 18 | 19 | OR 20 | 21 | ```sh 22 | yarn add ngrx-store-freeze --dev 23 | ``` 24 | 25 | ### Setup 26 | 27 | ```ts 28 | import { StoreModule, MetaReducer, ActionReducerMap } from '@ngrx/store'; 29 | import { storeFreeze } from 'ngrx-store-freeze'; 30 | import { environment } from '../environments/environment'; // Angular CLI environment 31 | 32 | export interface State { 33 | // reducer interfaces 34 | } 35 | 36 | export const reducers: ActionReducerMap = { 37 | // reducers 38 | } 39 | 40 | export const metaReducers: MetaReducer[] = !environment.production ? [storeFreeze]: []; 41 | 42 | @NgModule({ 43 | imports: [ 44 | StoreModule.forRoot(reducers, { metaReducers }), 45 | ] 46 | }) 47 | export class AppModule {} 48 | ``` 49 | 50 | ## Additional Documentation 51 | 52 | * [Usage with `@ngrx/router-store`](./docs/docs.md#router-store-compatibility) 53 | 54 | ## Credits 55 | 56 | [redux-freeze](https://github.com/buunguyen/redux-freeze) - Redux middleware that prevents state from being mutated 57 | [Attila Egyed](https://github.com/tsm91) - The original maintainer of this project 58 | -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | node: 3 | version: 6.9.5 4 | 5 | dependencies: 6 | pre: 7 | - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.28.1 8 | cache_directories: 9 | - ~/.cache/yarn 10 | override: 11 | - yarn 12 | 13 | test: 14 | override: 15 | - yarn run build 16 | -------------------------------------------------------------------------------- /docs/docs.md: -------------------------------------------------------------------------------- 1 | # Additional Documentation 2 | 3 | ### Router Store Compatibility 4 | 5 | `@ngrx/router-store` provides a snapshot of the `RouterState` during each navigation cycle. This snapshot is a complex mutable object that can cause issues when used with `ngrx-store-freeze`. In order to use this library along with `@ngrx/router-store`, you need to implement a custom serializer for the `RouterStateSnapshot`. See the [@ngrx/router-store documentation](https://github.com/ngrx/platform/blob/master/docs/router-store/api.md#custom-router-state-serializer) for instructions for creating a custom serializer. -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngrx-store-freeze", 3 | "version": "0.2.4", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@angular/core": { 8 | "version": "6.0.0", 9 | "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.0.tgz", 10 | "integrity": "sha512-52X2ZKXOoaMRYaC/ycHePTkXuwku8qJFxoEXAFBItAkk9rebLU4CD8Fx1Z9vUd8aWu1uFfLTxqkgE0mUyBANZw==", 11 | "dev": true, 12 | "requires": { 13 | "tslib": "^1.9.0" 14 | } 15 | }, 16 | "@ngrx/store": { 17 | "version": "6.0.1", 18 | "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-6.0.1.tgz", 19 | "integrity": "sha512-cSgfT8CgpOr6BOQac9M3DH6QQC5gxCVjdEcZH//Zn/kwdse86X73iK7KWv6B6AiIEdyVbFfggXNZwd/HiyLGOA==", 20 | "dev": true 21 | }, 22 | "@types/deep-freeze-strict": { 23 | "version": "1.1.0", 24 | "resolved": "https://registry.npmjs.org/@types/deep-freeze-strict/-/deep-freeze-strict-1.1.0.tgz", 25 | "integrity": "sha1-RHpqJXYZE0SqQjEBMd099cQUksQ=", 26 | "dev": true 27 | }, 28 | "@types/node": { 29 | "version": "8.10.13", 30 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.13.tgz", 31 | "integrity": "sha512-AorNXRHoPVxIUIVmr6uJXRnvlPOSNKAJF5jZ1JOj1/IxYMocZzvQooNeLU02Db6kpy1IVIySTOvuIxmUF1HrOg==", 32 | "dev": true 33 | }, 34 | "ansi-align": { 35 | "version": "2.0.0", 36 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 37 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", 38 | "dev": true, 39 | "requires": { 40 | "string-width": "^2.0.0" 41 | } 42 | }, 43 | "ansi-regex": { 44 | "version": "2.1.1", 45 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 46 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 47 | "dev": true 48 | }, 49 | "ansi-styles": { 50 | "version": "2.2.1", 51 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 52 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 53 | "dev": true 54 | }, 55 | "array-find-index": { 56 | "version": "1.0.2", 57 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 58 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 59 | "dev": true 60 | }, 61 | "array-union": { 62 | "version": "1.0.2", 63 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 64 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 65 | "dev": true, 66 | "requires": { 67 | "array-uniq": "^1.0.1" 68 | } 69 | }, 70 | "array-uniq": { 71 | "version": "1.0.3", 72 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 73 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 74 | "dev": true 75 | }, 76 | "arrify": { 77 | "version": "1.0.1", 78 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 79 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 80 | "dev": true 81 | }, 82 | "babel-code-frame": { 83 | "version": "6.26.0", 84 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 85 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 86 | "dev": true, 87 | "requires": { 88 | "chalk": "^1.1.3", 89 | "esutils": "^2.0.2", 90 | "js-tokens": "^3.0.2" 91 | } 92 | }, 93 | "balanced-match": { 94 | "version": "1.0.0", 95 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 96 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 97 | "dev": true 98 | }, 99 | "boxen": { 100 | "version": "1.3.0", 101 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", 102 | "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", 103 | "dev": true, 104 | "requires": { 105 | "ansi-align": "^2.0.0", 106 | "camelcase": "^4.0.0", 107 | "chalk": "^2.0.1", 108 | "cli-boxes": "^1.0.0", 109 | "string-width": "^2.0.0", 110 | "term-size": "^1.2.0", 111 | "widest-line": "^2.0.0" 112 | }, 113 | "dependencies": { 114 | "ansi-styles": { 115 | "version": "3.2.1", 116 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 117 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 118 | "dev": true, 119 | "requires": { 120 | "color-convert": "^1.9.0" 121 | } 122 | }, 123 | "camelcase": { 124 | "version": "4.1.0", 125 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 126 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 127 | "dev": true 128 | }, 129 | "chalk": { 130 | "version": "2.4.1", 131 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 132 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 133 | "dev": true, 134 | "requires": { 135 | "ansi-styles": "^3.2.1", 136 | "escape-string-regexp": "^1.0.5", 137 | "supports-color": "^5.3.0" 138 | } 139 | }, 140 | "supports-color": { 141 | "version": "5.4.0", 142 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 143 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 144 | "dev": true, 145 | "requires": { 146 | "has-flag": "^3.0.0" 147 | } 148 | } 149 | } 150 | }, 151 | "brace-expansion": { 152 | "version": "1.1.11", 153 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 154 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 155 | "dev": true, 156 | "requires": { 157 | "balanced-match": "^1.0.0", 158 | "concat-map": "0.0.1" 159 | } 160 | }, 161 | "builtin-modules": { 162 | "version": "1.1.1", 163 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 164 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 165 | "dev": true 166 | }, 167 | "camelcase": { 168 | "version": "2.1.1", 169 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 170 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 171 | "dev": true 172 | }, 173 | "camelcase-keys": { 174 | "version": "2.1.0", 175 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 176 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 177 | "dev": true, 178 | "requires": { 179 | "camelcase": "^2.0.0", 180 | "map-obj": "^1.0.0" 181 | } 182 | }, 183 | "capture-stack-trace": { 184 | "version": "1.0.0", 185 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", 186 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", 187 | "dev": true 188 | }, 189 | "chalk": { 190 | "version": "1.1.3", 191 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 192 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 193 | "dev": true, 194 | "requires": { 195 | "ansi-styles": "^2.2.1", 196 | "escape-string-regexp": "^1.0.2", 197 | "has-ansi": "^2.0.0", 198 | "strip-ansi": "^3.0.0", 199 | "supports-color": "^2.0.0" 200 | } 201 | }, 202 | "ci-info": { 203 | "version": "1.1.3", 204 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", 205 | "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", 206 | "dev": true 207 | }, 208 | "cli-boxes": { 209 | "version": "1.0.0", 210 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", 211 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", 212 | "dev": true 213 | }, 214 | "color-convert": { 215 | "version": "1.9.1", 216 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", 217 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", 218 | "dev": true, 219 | "requires": { 220 | "color-name": "^1.1.1" 221 | } 222 | }, 223 | "color-name": { 224 | "version": "1.1.3", 225 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 226 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 227 | "dev": true 228 | }, 229 | "colors": { 230 | "version": "1.2.4", 231 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.4.tgz", 232 | "integrity": "sha512-6Y+iBnWmXL+AWtlOp2Vr6R2w5MUlNJRwR0ShVFaAb1CqWzhPOpQg4L0jxD+xpw/Nc8QJwaq3KM79QUCriY8CWQ==", 233 | "dev": true 234 | }, 235 | "concat-map": { 236 | "version": "0.0.1", 237 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 238 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 239 | "dev": true 240 | }, 241 | "configstore": { 242 | "version": "3.1.2", 243 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", 244 | "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", 245 | "dev": true, 246 | "requires": { 247 | "dot-prop": "^4.1.0", 248 | "graceful-fs": "^4.1.2", 249 | "make-dir": "^1.0.0", 250 | "unique-string": "^1.0.0", 251 | "write-file-atomic": "^2.0.0", 252 | "xdg-basedir": "^3.0.0" 253 | } 254 | }, 255 | "core-util-is": { 256 | "version": "1.0.2", 257 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 258 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 259 | "dev": true 260 | }, 261 | "cp-file": { 262 | "version": "3.2.0", 263 | "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-3.2.0.tgz", 264 | "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", 265 | "dev": true, 266 | "requires": { 267 | "graceful-fs": "^4.1.2", 268 | "mkdirp": "^0.5.0", 269 | "nested-error-stacks": "^1.0.1", 270 | "object-assign": "^4.0.1", 271 | "pify": "^2.3.0", 272 | "pinkie-promise": "^2.0.0", 273 | "readable-stream": "^2.1.4" 274 | } 275 | }, 276 | "cpy": { 277 | "version": "4.0.1", 278 | "resolved": "https://registry.npmjs.org/cpy/-/cpy-4.0.1.tgz", 279 | "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=", 280 | "dev": true, 281 | "requires": { 282 | "cp-file": "^3.1.0", 283 | "globby": "^4.0.0", 284 | "meow": "^3.6.0", 285 | "nested-error-stacks": "^1.0.0", 286 | "object-assign": "^4.0.1", 287 | "pinkie-promise": "^2.0.0" 288 | } 289 | }, 290 | "cpy-cli": { 291 | "version": "1.0.1", 292 | "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-1.0.1.tgz", 293 | "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=", 294 | "dev": true, 295 | "requires": { 296 | "cpy": "^4.0.0", 297 | "meow": "^3.6.0" 298 | } 299 | }, 300 | "create-error-class": { 301 | "version": "3.0.2", 302 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 303 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 304 | "dev": true, 305 | "requires": { 306 | "capture-stack-trace": "^1.0.0" 307 | } 308 | }, 309 | "cross-spawn": { 310 | "version": "5.1.0", 311 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 312 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 313 | "dev": true, 314 | "requires": { 315 | "lru-cache": "^4.0.1", 316 | "shebang-command": "^1.2.0", 317 | "which": "^1.2.9" 318 | } 319 | }, 320 | "crypto-random-string": { 321 | "version": "1.0.0", 322 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 323 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", 324 | "dev": true 325 | }, 326 | "currently-unhandled": { 327 | "version": "0.4.1", 328 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 329 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 330 | "dev": true, 331 | "requires": { 332 | "array-find-index": "^1.0.1" 333 | } 334 | }, 335 | "decamelize": { 336 | "version": "1.2.0", 337 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 338 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 339 | "dev": true 340 | }, 341 | "deep-extend": { 342 | "version": "0.5.1", 343 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", 344 | "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", 345 | "dev": true 346 | }, 347 | "deep-freeze-strict": { 348 | "version": "1.1.1", 349 | "resolved": "https://registry.npmjs.org/deep-freeze-strict/-/deep-freeze-strict-1.1.1.tgz", 350 | "integrity": "sha1-d9BYPKJKab5LvZrC+uQV1VUj5bA=" 351 | }, 352 | "diff": { 353 | "version": "3.5.0", 354 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 355 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 356 | "dev": true 357 | }, 358 | "dot-prop": { 359 | "version": "4.2.0", 360 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", 361 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", 362 | "dev": true, 363 | "requires": { 364 | "is-obj": "^1.0.0" 365 | } 366 | }, 367 | "duplexer3": { 368 | "version": "0.1.4", 369 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 370 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 371 | "dev": true 372 | }, 373 | "error-ex": { 374 | "version": "1.3.1", 375 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 376 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 377 | "dev": true, 378 | "requires": { 379 | "is-arrayish": "^0.2.1" 380 | } 381 | }, 382 | "escape-string-regexp": { 383 | "version": "1.0.5", 384 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 385 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 386 | "dev": true 387 | }, 388 | "esutils": { 389 | "version": "2.0.2", 390 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 391 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 392 | "dev": true 393 | }, 394 | "execa": { 395 | "version": "0.7.0", 396 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 397 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 398 | "dev": true, 399 | "requires": { 400 | "cross-spawn": "^5.0.1", 401 | "get-stream": "^3.0.0", 402 | "is-stream": "^1.1.0", 403 | "npm-run-path": "^2.0.0", 404 | "p-finally": "^1.0.0", 405 | "signal-exit": "^3.0.0", 406 | "strip-eof": "^1.0.0" 407 | } 408 | }, 409 | "find-up": { 410 | "version": "1.1.2", 411 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 412 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 413 | "dev": true, 414 | "requires": { 415 | "path-exists": "^2.0.0", 416 | "pinkie-promise": "^2.0.0" 417 | } 418 | }, 419 | "findup-sync": { 420 | "version": "0.3.0", 421 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", 422 | "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", 423 | "dev": true, 424 | "requires": { 425 | "glob": "~5.0.0" 426 | }, 427 | "dependencies": { 428 | "glob": { 429 | "version": "5.0.15", 430 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", 431 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 432 | "dev": true, 433 | "requires": { 434 | "inflight": "^1.0.4", 435 | "inherits": "2", 436 | "minimatch": "2 || 3", 437 | "once": "^1.3.0", 438 | "path-is-absolute": "^1.0.0" 439 | } 440 | } 441 | } 442 | }, 443 | "fs.realpath": { 444 | "version": "1.0.0", 445 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 446 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 447 | "dev": true 448 | }, 449 | "get-stdin": { 450 | "version": "4.0.1", 451 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 452 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 453 | "dev": true 454 | }, 455 | "get-stream": { 456 | "version": "3.0.0", 457 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 458 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 459 | "dev": true 460 | }, 461 | "glob": { 462 | "version": "6.0.4", 463 | "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", 464 | "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", 465 | "dev": true, 466 | "requires": { 467 | "inflight": "^1.0.4", 468 | "inherits": "2", 469 | "minimatch": "2 || 3", 470 | "once": "^1.3.0", 471 | "path-is-absolute": "^1.0.0" 472 | } 473 | }, 474 | "global-dirs": { 475 | "version": "0.1.1", 476 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 477 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 478 | "dev": true, 479 | "requires": { 480 | "ini": "^1.3.4" 481 | } 482 | }, 483 | "globby": { 484 | "version": "4.1.0", 485 | "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", 486 | "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", 487 | "dev": true, 488 | "requires": { 489 | "array-union": "^1.0.1", 490 | "arrify": "^1.0.0", 491 | "glob": "^6.0.1", 492 | "object-assign": "^4.0.1", 493 | "pify": "^2.0.0", 494 | "pinkie-promise": "^2.0.0" 495 | } 496 | }, 497 | "got": { 498 | "version": "6.7.1", 499 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 500 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 501 | "dev": true, 502 | "requires": { 503 | "create-error-class": "^3.0.0", 504 | "duplexer3": "^0.1.4", 505 | "get-stream": "^3.0.0", 506 | "is-redirect": "^1.0.0", 507 | "is-retry-allowed": "^1.0.0", 508 | "is-stream": "^1.0.0", 509 | "lowercase-keys": "^1.0.0", 510 | "safe-buffer": "^5.0.1", 511 | "timed-out": "^4.0.0", 512 | "unzip-response": "^2.0.1", 513 | "url-parse-lax": "^1.0.0" 514 | } 515 | }, 516 | "graceful-fs": { 517 | "version": "4.1.11", 518 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 519 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 520 | "dev": true 521 | }, 522 | "has-ansi": { 523 | "version": "2.0.0", 524 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 525 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 526 | "dev": true, 527 | "requires": { 528 | "ansi-regex": "^2.0.0" 529 | } 530 | }, 531 | "has-flag": { 532 | "version": "3.0.0", 533 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 534 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 535 | "dev": true 536 | }, 537 | "hosted-git-info": { 538 | "version": "2.6.0", 539 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", 540 | "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", 541 | "dev": true 542 | }, 543 | "import-lazy": { 544 | "version": "2.1.0", 545 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 546 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", 547 | "dev": true 548 | }, 549 | "imurmurhash": { 550 | "version": "0.1.4", 551 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 552 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 553 | "dev": true 554 | }, 555 | "indent-string": { 556 | "version": "2.1.0", 557 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 558 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 559 | "dev": true, 560 | "requires": { 561 | "repeating": "^2.0.0" 562 | } 563 | }, 564 | "inflight": { 565 | "version": "1.0.6", 566 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 567 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 568 | "dev": true, 569 | "requires": { 570 | "once": "^1.3.0", 571 | "wrappy": "1" 572 | } 573 | }, 574 | "inherits": { 575 | "version": "2.0.3", 576 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 577 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 578 | "dev": true 579 | }, 580 | "ini": { 581 | "version": "1.3.5", 582 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 583 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 584 | "dev": true 585 | }, 586 | "is-arrayish": { 587 | "version": "0.2.1", 588 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 589 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 590 | "dev": true 591 | }, 592 | "is-builtin-module": { 593 | "version": "1.0.0", 594 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 595 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 596 | "dev": true, 597 | "requires": { 598 | "builtin-modules": "^1.0.0" 599 | } 600 | }, 601 | "is-ci": { 602 | "version": "1.1.0", 603 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", 604 | "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", 605 | "dev": true, 606 | "requires": { 607 | "ci-info": "^1.0.0" 608 | } 609 | }, 610 | "is-finite": { 611 | "version": "1.0.2", 612 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 613 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 614 | "dev": true, 615 | "requires": { 616 | "number-is-nan": "^1.0.0" 617 | } 618 | }, 619 | "is-fullwidth-code-point": { 620 | "version": "2.0.0", 621 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 622 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 623 | "dev": true 624 | }, 625 | "is-installed-globally": { 626 | "version": "0.1.0", 627 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", 628 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", 629 | "dev": true, 630 | "requires": { 631 | "global-dirs": "^0.1.0", 632 | "is-path-inside": "^1.0.0" 633 | } 634 | }, 635 | "is-npm": { 636 | "version": "1.0.0", 637 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 638 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", 639 | "dev": true 640 | }, 641 | "is-obj": { 642 | "version": "1.0.1", 643 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 644 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 645 | "dev": true 646 | }, 647 | "is-path-inside": { 648 | "version": "1.0.1", 649 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 650 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 651 | "dev": true, 652 | "requires": { 653 | "path-is-inside": "^1.0.1" 654 | } 655 | }, 656 | "is-redirect": { 657 | "version": "1.0.0", 658 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 659 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 660 | "dev": true 661 | }, 662 | "is-retry-allowed": { 663 | "version": "1.1.0", 664 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 665 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", 666 | "dev": true 667 | }, 668 | "is-stream": { 669 | "version": "1.1.0", 670 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 671 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 672 | "dev": true 673 | }, 674 | "is-utf8": { 675 | "version": "0.2.1", 676 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 677 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 678 | "dev": true 679 | }, 680 | "isarray": { 681 | "version": "1.0.0", 682 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 683 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 684 | "dev": true 685 | }, 686 | "isexe": { 687 | "version": "2.0.0", 688 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 689 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 690 | "dev": true 691 | }, 692 | "js-tokens": { 693 | "version": "3.0.2", 694 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 695 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 696 | "dev": true 697 | }, 698 | "latest-version": { 699 | "version": "3.1.0", 700 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", 701 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", 702 | "dev": true, 703 | "requires": { 704 | "package-json": "^4.0.0" 705 | } 706 | }, 707 | "load-json-file": { 708 | "version": "1.1.0", 709 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 710 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 711 | "dev": true, 712 | "requires": { 713 | "graceful-fs": "^4.1.2", 714 | "parse-json": "^2.2.0", 715 | "pify": "^2.0.0", 716 | "pinkie-promise": "^2.0.0", 717 | "strip-bom": "^2.0.0" 718 | } 719 | }, 720 | "loud-rejection": { 721 | "version": "1.6.0", 722 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 723 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 724 | "dev": true, 725 | "requires": { 726 | "currently-unhandled": "^0.4.1", 727 | "signal-exit": "^3.0.0" 728 | } 729 | }, 730 | "lowercase-keys": { 731 | "version": "1.0.1", 732 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 733 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 734 | "dev": true 735 | }, 736 | "lru-cache": { 737 | "version": "4.1.3", 738 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", 739 | "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", 740 | "dev": true, 741 | "requires": { 742 | "pseudomap": "^1.0.2", 743 | "yallist": "^2.1.2" 744 | } 745 | }, 746 | "make-dir": { 747 | "version": "1.2.0", 748 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", 749 | "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", 750 | "dev": true, 751 | "requires": { 752 | "pify": "^3.0.0" 753 | }, 754 | "dependencies": { 755 | "pify": { 756 | "version": "3.0.0", 757 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 758 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 759 | "dev": true 760 | } 761 | } 762 | }, 763 | "map-obj": { 764 | "version": "1.0.1", 765 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 766 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 767 | "dev": true 768 | }, 769 | "meow": { 770 | "version": "3.7.0", 771 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 772 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 773 | "dev": true, 774 | "requires": { 775 | "camelcase-keys": "^2.0.0", 776 | "decamelize": "^1.1.2", 777 | "loud-rejection": "^1.0.0", 778 | "map-obj": "^1.0.1", 779 | "minimist": "^1.1.3", 780 | "normalize-package-data": "^2.3.4", 781 | "object-assign": "^4.0.1", 782 | "read-pkg-up": "^1.0.1", 783 | "redent": "^1.0.0", 784 | "trim-newlines": "^1.0.0" 785 | }, 786 | "dependencies": { 787 | "minimist": { 788 | "version": "1.2.0", 789 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 790 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 791 | "dev": true 792 | } 793 | } 794 | }, 795 | "minimatch": { 796 | "version": "3.0.4", 797 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 798 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 799 | "dev": true, 800 | "requires": { 801 | "brace-expansion": "^1.1.7" 802 | } 803 | }, 804 | "minimist": { 805 | "version": "0.0.8", 806 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 807 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 808 | "dev": true 809 | }, 810 | "mkdirp": { 811 | "version": "0.5.1", 812 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 813 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 814 | "dev": true, 815 | "requires": { 816 | "minimist": "0.0.8" 817 | } 818 | }, 819 | "nested-error-stacks": { 820 | "version": "1.0.2", 821 | "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", 822 | "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", 823 | "dev": true, 824 | "requires": { 825 | "inherits": "~2.0.1" 826 | } 827 | }, 828 | "normalize-package-data": { 829 | "version": "2.4.0", 830 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 831 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 832 | "dev": true, 833 | "requires": { 834 | "hosted-git-info": "^2.1.4", 835 | "is-builtin-module": "^1.0.0", 836 | "semver": "2 || 3 || 4 || 5", 837 | "validate-npm-package-license": "^3.0.1" 838 | } 839 | }, 840 | "npm-run-path": { 841 | "version": "2.0.2", 842 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 843 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 844 | "dev": true, 845 | "requires": { 846 | "path-key": "^2.0.0" 847 | } 848 | }, 849 | "number-is-nan": { 850 | "version": "1.0.1", 851 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 852 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 853 | "dev": true 854 | }, 855 | "object-assign": { 856 | "version": "4.1.1", 857 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 858 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 859 | "dev": true 860 | }, 861 | "once": { 862 | "version": "1.4.0", 863 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 864 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 865 | "dev": true, 866 | "requires": { 867 | "wrappy": "1" 868 | } 869 | }, 870 | "optimist": { 871 | "version": "0.6.1", 872 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 873 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 874 | "dev": true, 875 | "requires": { 876 | "minimist": "~0.0.1", 877 | "wordwrap": "~0.0.2" 878 | } 879 | }, 880 | "p-finally": { 881 | "version": "1.0.0", 882 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 883 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 884 | "dev": true 885 | }, 886 | "package-json": { 887 | "version": "4.0.1", 888 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", 889 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", 890 | "dev": true, 891 | "requires": { 892 | "got": "^6.7.1", 893 | "registry-auth-token": "^3.0.1", 894 | "registry-url": "^3.0.3", 895 | "semver": "^5.1.0" 896 | } 897 | }, 898 | "parse-json": { 899 | "version": "2.2.0", 900 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 901 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 902 | "dev": true, 903 | "requires": { 904 | "error-ex": "^1.2.0" 905 | } 906 | }, 907 | "path-exists": { 908 | "version": "2.1.0", 909 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 910 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 911 | "dev": true, 912 | "requires": { 913 | "pinkie-promise": "^2.0.0" 914 | } 915 | }, 916 | "path-is-absolute": { 917 | "version": "1.0.1", 918 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 919 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 920 | "dev": true 921 | }, 922 | "path-is-inside": { 923 | "version": "1.0.2", 924 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 925 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 926 | "dev": true 927 | }, 928 | "path-key": { 929 | "version": "2.0.1", 930 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 931 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 932 | "dev": true 933 | }, 934 | "path-parse": { 935 | "version": "1.0.5", 936 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 937 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 938 | "dev": true 939 | }, 940 | "path-type": { 941 | "version": "1.1.0", 942 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 943 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 944 | "dev": true, 945 | "requires": { 946 | "graceful-fs": "^4.1.2", 947 | "pify": "^2.0.0", 948 | "pinkie-promise": "^2.0.0" 949 | } 950 | }, 951 | "pify": { 952 | "version": "2.3.0", 953 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 954 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 955 | "dev": true 956 | }, 957 | "pinkie": { 958 | "version": "2.0.4", 959 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 960 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 961 | "dev": true 962 | }, 963 | "pinkie-promise": { 964 | "version": "2.0.1", 965 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 966 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 967 | "dev": true, 968 | "requires": { 969 | "pinkie": "^2.0.0" 970 | } 971 | }, 972 | "prepend-http": { 973 | "version": "1.0.4", 974 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 975 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 976 | "dev": true 977 | }, 978 | "process-nextick-args": { 979 | "version": "2.0.0", 980 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 981 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 982 | "dev": true 983 | }, 984 | "pseudomap": { 985 | "version": "1.0.2", 986 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 987 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 988 | "dev": true 989 | }, 990 | "rc": { 991 | "version": "1.2.7", 992 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", 993 | "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", 994 | "dev": true, 995 | "requires": { 996 | "deep-extend": "^0.5.1", 997 | "ini": "~1.3.0", 998 | "minimist": "^1.2.0", 999 | "strip-json-comments": "~2.0.1" 1000 | }, 1001 | "dependencies": { 1002 | "minimist": { 1003 | "version": "1.2.0", 1004 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1005 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 1006 | "dev": true 1007 | } 1008 | } 1009 | }, 1010 | "read-pkg": { 1011 | "version": "1.1.0", 1012 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 1013 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 1014 | "dev": true, 1015 | "requires": { 1016 | "load-json-file": "^1.0.0", 1017 | "normalize-package-data": "^2.3.2", 1018 | "path-type": "^1.0.0" 1019 | } 1020 | }, 1021 | "read-pkg-up": { 1022 | "version": "1.0.1", 1023 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 1024 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 1025 | "dev": true, 1026 | "requires": { 1027 | "find-up": "^1.0.0", 1028 | "read-pkg": "^1.0.0" 1029 | } 1030 | }, 1031 | "readable-stream": { 1032 | "version": "2.3.6", 1033 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1034 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1035 | "dev": true, 1036 | "requires": { 1037 | "core-util-is": "~1.0.0", 1038 | "inherits": "~2.0.3", 1039 | "isarray": "~1.0.0", 1040 | "process-nextick-args": "~2.0.0", 1041 | "safe-buffer": "~5.1.1", 1042 | "string_decoder": "~1.1.1", 1043 | "util-deprecate": "~1.0.1" 1044 | } 1045 | }, 1046 | "redent": { 1047 | "version": "1.0.0", 1048 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1049 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1050 | "dev": true, 1051 | "requires": { 1052 | "indent-string": "^2.1.0", 1053 | "strip-indent": "^1.0.1" 1054 | } 1055 | }, 1056 | "registry-auth-token": { 1057 | "version": "3.3.2", 1058 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", 1059 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", 1060 | "dev": true, 1061 | "requires": { 1062 | "rc": "^1.1.6", 1063 | "safe-buffer": "^5.0.1" 1064 | } 1065 | }, 1066 | "registry-url": { 1067 | "version": "3.1.0", 1068 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 1069 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 1070 | "dev": true, 1071 | "requires": { 1072 | "rc": "^1.0.1" 1073 | } 1074 | }, 1075 | "repeating": { 1076 | "version": "2.0.1", 1077 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 1078 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 1079 | "dev": true, 1080 | "requires": { 1081 | "is-finite": "^1.0.0" 1082 | } 1083 | }, 1084 | "resolve": { 1085 | "version": "1.7.1", 1086 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", 1087 | "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", 1088 | "dev": true, 1089 | "requires": { 1090 | "path-parse": "^1.0.5" 1091 | } 1092 | }, 1093 | "rimraf": { 1094 | "version": "2.6.2", 1095 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 1096 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 1097 | "dev": true, 1098 | "requires": { 1099 | "glob": "^7.0.5" 1100 | }, 1101 | "dependencies": { 1102 | "glob": { 1103 | "version": "7.1.2", 1104 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1105 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1106 | "dev": true, 1107 | "requires": { 1108 | "fs.realpath": "^1.0.0", 1109 | "inflight": "^1.0.4", 1110 | "inherits": "2", 1111 | "minimatch": "^3.0.4", 1112 | "once": "^1.3.0", 1113 | "path-is-absolute": "^1.0.0" 1114 | } 1115 | } 1116 | } 1117 | }, 1118 | "rollup": { 1119 | "version": "0.41.6", 1120 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.41.6.tgz", 1121 | "integrity": "sha1-4NBUl4d6OYwQTYFtJzOnGKepTio=", 1122 | "dev": true, 1123 | "requires": { 1124 | "source-map-support": "^0.4.0" 1125 | } 1126 | }, 1127 | "rxjs": { 1128 | "version": "6.1.0", 1129 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.1.0.tgz", 1130 | "integrity": "sha512-lMZdl6xbHJCSb5lmnb6nOhsoBVCyoDC5LDJQK9WWyq+tsI7KnlDIZ0r0AZAlBpRPLbwQA9kzSBAZwNIZEZ+hcw==", 1131 | "dev": true, 1132 | "requires": { 1133 | "tslib": "^1.9.0" 1134 | } 1135 | }, 1136 | "safe-buffer": { 1137 | "version": "5.1.2", 1138 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1139 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1140 | "dev": true 1141 | }, 1142 | "semver": { 1143 | "version": "5.5.0", 1144 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 1145 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 1146 | "dev": true 1147 | }, 1148 | "semver-diff": { 1149 | "version": "2.1.0", 1150 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 1151 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 1152 | "dev": true, 1153 | "requires": { 1154 | "semver": "^5.0.3" 1155 | } 1156 | }, 1157 | "shebang-command": { 1158 | "version": "1.2.0", 1159 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1160 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1161 | "dev": true, 1162 | "requires": { 1163 | "shebang-regex": "^1.0.0" 1164 | } 1165 | }, 1166 | "shebang-regex": { 1167 | "version": "1.0.0", 1168 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1169 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1170 | "dev": true 1171 | }, 1172 | "signal-exit": { 1173 | "version": "3.0.2", 1174 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1175 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1176 | "dev": true 1177 | }, 1178 | "source-map": { 1179 | "version": "0.5.7", 1180 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1181 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1182 | "dev": true 1183 | }, 1184 | "source-map-support": { 1185 | "version": "0.4.18", 1186 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 1187 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 1188 | "dev": true, 1189 | "requires": { 1190 | "source-map": "^0.5.6" 1191 | } 1192 | }, 1193 | "spdx-correct": { 1194 | "version": "3.0.0", 1195 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", 1196 | "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", 1197 | "dev": true, 1198 | "requires": { 1199 | "spdx-expression-parse": "^3.0.0", 1200 | "spdx-license-ids": "^3.0.0" 1201 | } 1202 | }, 1203 | "spdx-exceptions": { 1204 | "version": "2.1.0", 1205 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", 1206 | "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", 1207 | "dev": true 1208 | }, 1209 | "spdx-expression-parse": { 1210 | "version": "3.0.0", 1211 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1212 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1213 | "dev": true, 1214 | "requires": { 1215 | "spdx-exceptions": "^2.1.0", 1216 | "spdx-license-ids": "^3.0.0" 1217 | } 1218 | }, 1219 | "spdx-license-ids": { 1220 | "version": "3.0.0", 1221 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", 1222 | "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", 1223 | "dev": true 1224 | }, 1225 | "string-width": { 1226 | "version": "2.1.1", 1227 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1228 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1229 | "dev": true, 1230 | "requires": { 1231 | "is-fullwidth-code-point": "^2.0.0", 1232 | "strip-ansi": "^4.0.0" 1233 | }, 1234 | "dependencies": { 1235 | "ansi-regex": { 1236 | "version": "3.0.0", 1237 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1238 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1239 | "dev": true 1240 | }, 1241 | "strip-ansi": { 1242 | "version": "4.0.0", 1243 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1244 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1245 | "dev": true, 1246 | "requires": { 1247 | "ansi-regex": "^3.0.0" 1248 | } 1249 | } 1250 | } 1251 | }, 1252 | "string_decoder": { 1253 | "version": "1.1.1", 1254 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1255 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1256 | "dev": true, 1257 | "requires": { 1258 | "safe-buffer": "~5.1.0" 1259 | } 1260 | }, 1261 | "strip-ansi": { 1262 | "version": "3.0.1", 1263 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1264 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1265 | "dev": true, 1266 | "requires": { 1267 | "ansi-regex": "^2.0.0" 1268 | } 1269 | }, 1270 | "strip-bom": { 1271 | "version": "2.0.0", 1272 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1273 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1274 | "dev": true, 1275 | "requires": { 1276 | "is-utf8": "^0.2.0" 1277 | } 1278 | }, 1279 | "strip-eof": { 1280 | "version": "1.0.0", 1281 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1282 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 1283 | "dev": true 1284 | }, 1285 | "strip-indent": { 1286 | "version": "1.0.1", 1287 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1288 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1289 | "dev": true, 1290 | "requires": { 1291 | "get-stdin": "^4.0.1" 1292 | } 1293 | }, 1294 | "strip-json-comments": { 1295 | "version": "2.0.1", 1296 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1297 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1298 | "dev": true 1299 | }, 1300 | "supports-color": { 1301 | "version": "2.0.0", 1302 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1303 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1304 | "dev": true 1305 | }, 1306 | "term-size": { 1307 | "version": "1.2.0", 1308 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", 1309 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", 1310 | "dev": true, 1311 | "requires": { 1312 | "execa": "^0.7.0" 1313 | } 1314 | }, 1315 | "timed-out": { 1316 | "version": "4.0.1", 1317 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 1318 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 1319 | "dev": true 1320 | }, 1321 | "trim-newlines": { 1322 | "version": "1.0.0", 1323 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1324 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1325 | "dev": true 1326 | }, 1327 | "tslib": { 1328 | "version": "1.9.0", 1329 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", 1330 | "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", 1331 | "dev": true 1332 | }, 1333 | "tslint": { 1334 | "version": "4.5.1", 1335 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-4.5.1.tgz", 1336 | "integrity": "sha1-BTVocb7yOkNJBnNABvwYgza6gks=", 1337 | "dev": true, 1338 | "requires": { 1339 | "babel-code-frame": "^6.20.0", 1340 | "colors": "^1.1.2", 1341 | "diff": "^3.0.1", 1342 | "findup-sync": "~0.3.0", 1343 | "glob": "^7.1.1", 1344 | "optimist": "~0.6.0", 1345 | "resolve": "^1.1.7", 1346 | "tsutils": "^1.1.0", 1347 | "update-notifier": "^2.0.0" 1348 | }, 1349 | "dependencies": { 1350 | "glob": { 1351 | "version": "7.1.2", 1352 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1353 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1354 | "dev": true, 1355 | "requires": { 1356 | "fs.realpath": "^1.0.0", 1357 | "inflight": "^1.0.4", 1358 | "inherits": "2", 1359 | "minimatch": "^3.0.4", 1360 | "once": "^1.3.0", 1361 | "path-is-absolute": "^1.0.0" 1362 | } 1363 | } 1364 | } 1365 | }, 1366 | "tsutils": { 1367 | "version": "1.9.1", 1368 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-1.9.1.tgz", 1369 | "integrity": "sha1-ufmrROVa+WgYMdXyjQrur1x1DLA=", 1370 | "dev": true 1371 | }, 1372 | "typescript": { 1373 | "version": "2.4.2", 1374 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.2.tgz", 1375 | "integrity": "sha1-+DlfhdRZJ2BnyYiqQYN6j4KHCEQ=", 1376 | "dev": true 1377 | }, 1378 | "unique-string": { 1379 | "version": "1.0.0", 1380 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 1381 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 1382 | "dev": true, 1383 | "requires": { 1384 | "crypto-random-string": "^1.0.0" 1385 | } 1386 | }, 1387 | "unzip-response": { 1388 | "version": "2.0.1", 1389 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 1390 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", 1391 | "dev": true 1392 | }, 1393 | "update-notifier": { 1394 | "version": "2.5.0", 1395 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", 1396 | "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", 1397 | "dev": true, 1398 | "requires": { 1399 | "boxen": "^1.2.1", 1400 | "chalk": "^2.0.1", 1401 | "configstore": "^3.0.0", 1402 | "import-lazy": "^2.1.0", 1403 | "is-ci": "^1.0.10", 1404 | "is-installed-globally": "^0.1.0", 1405 | "is-npm": "^1.0.0", 1406 | "latest-version": "^3.0.0", 1407 | "semver-diff": "^2.0.0", 1408 | "xdg-basedir": "^3.0.0" 1409 | }, 1410 | "dependencies": { 1411 | "ansi-styles": { 1412 | "version": "3.2.1", 1413 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1414 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1415 | "dev": true, 1416 | "requires": { 1417 | "color-convert": "^1.9.0" 1418 | } 1419 | }, 1420 | "chalk": { 1421 | "version": "2.4.1", 1422 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 1423 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 1424 | "dev": true, 1425 | "requires": { 1426 | "ansi-styles": "^3.2.1", 1427 | "escape-string-regexp": "^1.0.5", 1428 | "supports-color": "^5.3.0" 1429 | } 1430 | }, 1431 | "supports-color": { 1432 | "version": "5.4.0", 1433 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 1434 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 1435 | "dev": true, 1436 | "requires": { 1437 | "has-flag": "^3.0.0" 1438 | } 1439 | } 1440 | } 1441 | }, 1442 | "url-parse-lax": { 1443 | "version": "1.0.0", 1444 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 1445 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 1446 | "dev": true, 1447 | "requires": { 1448 | "prepend-http": "^1.0.1" 1449 | } 1450 | }, 1451 | "util-deprecate": { 1452 | "version": "1.0.2", 1453 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1454 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1455 | "dev": true 1456 | }, 1457 | "validate-npm-package-license": { 1458 | "version": "3.0.3", 1459 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", 1460 | "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", 1461 | "dev": true, 1462 | "requires": { 1463 | "spdx-correct": "^3.0.0", 1464 | "spdx-expression-parse": "^3.0.0" 1465 | } 1466 | }, 1467 | "which": { 1468 | "version": "1.3.0", 1469 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 1470 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 1471 | "dev": true, 1472 | "requires": { 1473 | "isexe": "^2.0.0" 1474 | } 1475 | }, 1476 | "widest-line": { 1477 | "version": "2.0.0", 1478 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", 1479 | "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", 1480 | "dev": true, 1481 | "requires": { 1482 | "string-width": "^2.1.1" 1483 | } 1484 | }, 1485 | "wordwrap": { 1486 | "version": "0.0.3", 1487 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 1488 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 1489 | "dev": true 1490 | }, 1491 | "wrappy": { 1492 | "version": "1.0.2", 1493 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1494 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1495 | "dev": true 1496 | }, 1497 | "write-file-atomic": { 1498 | "version": "2.3.0", 1499 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", 1500 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", 1501 | "dev": true, 1502 | "requires": { 1503 | "graceful-fs": "^4.1.11", 1504 | "imurmurhash": "^0.1.4", 1505 | "signal-exit": "^3.0.2" 1506 | } 1507 | }, 1508 | "xdg-basedir": { 1509 | "version": "3.0.0", 1510 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 1511 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 1512 | "dev": true 1513 | }, 1514 | "yallist": { 1515 | "version": "2.1.2", 1516 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 1517 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 1518 | "dev": true 1519 | }, 1520 | "zone.js": { 1521 | "version": "0.8.26", 1522 | "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", 1523 | "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==", 1524 | "dev": true 1525 | } 1526 | } 1527 | } 1528 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngrx-store-freeze", 3 | "version": "0.2.4", 4 | "description": "@ngrx/store meta reducer that prevents state from being mutated.", 5 | "module": "index.js", 6 | "es2015": "es6/index.js", 7 | "main": "bundles/ngrx-store-freeze.umd.js", 8 | "scripts": { 9 | "clean": "rimraf dist", 10 | "compile": "tsc", 11 | "prebuild": "npm run clean", 12 | "build": "npm run compile && npm run build:umd && npm run build:docs", 13 | "build:es6": "tsc -p tsconfig.es6.json", 14 | "build:docs": "cpy LICENSE package.json README.md dist", 15 | "build:umd": "npm run build:es6 && rollup -c rollup.config.js", 16 | "lint": "tslint 'src/**/*.ts'" 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "git+https://github.com/brandonroberts/ngrx-store-freeze.git" 21 | }, 22 | "keywords": [ 23 | "RxJS", 24 | "Angular", 25 | "Redux", 26 | "Store", 27 | "@ngrx/store", 28 | "deep-freeze", 29 | "meta reducer" 30 | ], 31 | "authors": [ 32 | "Attila Egyed ", 33 | "Brandon Roberts " 34 | ], 35 | "contributors": [ 36 | "Kwinten Pisman ", 37 | "Igor Fischer ", 38 | "André Werlang" 39 | ], 40 | "license": "MIT", 41 | "bugs": { 42 | "url": "https://github.com/brandonroberts/ngrx-store-freeze/issues" 43 | }, 44 | "homepage": "https://github.com/brandonroberts/ngrx-store-freeze#readme", 45 | "peerDependencies": { 46 | "@ngrx/store": ">=4.0.0" 47 | }, 48 | "dependencies": { 49 | "deep-freeze-strict": "^1.1.1" 50 | }, 51 | "devDependencies": { 52 | "@angular/core": "^6.0.0", 53 | "@ngrx/store": "^6.0.0", 54 | "@types/deep-freeze-strict": "^1.1.0", 55 | "@types/node": "^8.0.30", 56 | "cpy-cli": "^1.0.1", 57 | "rimraf": "^2.5.4", 58 | "rollup": "^0.41.4", 59 | "rxjs": "^6.1.0", 60 | "tslint": "^4.0.2", 61 | "typescript": "~2.4.2", 62 | "zone.js": "^0.8.4" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | entry: './dist/es6/index.js', 3 | dest: './dist/bundles/ngrx-store-freeze.umd.js', 4 | format: 'umd', 5 | moduleName: 'ngrxStoreFreeze', 6 | external: [ 7 | 'deep-freeze-strict' 8 | ], 9 | context: 'window' 10 | }; 11 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { ActionReducer, Action } from '@ngrx/store'; 2 | const deepFreeze = require('deep-freeze-strict'); 3 | 4 | /** 5 | * Meta-reducer that prevents state from being mutated anywhere in the app. 6 | */ 7 | export function storeFreeze( 8 | reducer: ActionReducer 9 | ): ActionReducer; 10 | export function storeFreeze( 11 | reducer: ActionReducer 12 | ): ActionReducer { 13 | return function freeze(state, action): any { 14 | state = state || {}; 15 | 16 | deepFreeze(state); 17 | 18 | // guard against trying to freeze null or undefined types 19 | if (action.payload) { 20 | deepFreeze(action.payload); 21 | } 22 | 23 | const nextState = reducer(state, action); 24 | 25 | deepFreeze(nextState); 26 | 27 | return nextState; 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /tsconfig.es6.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "dist/es6", 5 | "module": "es2015" 6 | } 7 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "declaration": true, 5 | "stripInternal": true, 6 | "emitDecoratorMetadata": true, 7 | "experimentalDecorators": true, 8 | "module": "commonjs", 9 | "moduleResolution": "node", 10 | "noEmitOnError": false, 11 | "outDir": "./dist", 12 | "rootDir": ".", 13 | "sourceMap": true, 14 | "inlineSources": true, 15 | "lib": ["es2015", "dom"], 16 | "target": "es5", 17 | "skipLibCheck": true, 18 | "strictNullChecks": true 19 | }, 20 | "files": [ 21 | "index.ts" 22 | ] 23 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "class-name": true, 4 | "comment-format": [ 5 | true, 6 | "check-space" 7 | ], 8 | "indent": [ 9 | true, 10 | "spaces" 11 | ], 12 | "no-duplicate-variable": true, 13 | "no-eval": true, 14 | "no-internal-module": true, 15 | "no-trailing-whitespace": true, 16 | "no-var-keyword": true, 17 | "one-line": [ 18 | true, 19 | "check-open-brace", 20 | "check-whitespace" 21 | ], 22 | "quotemark": [ 23 | true, 24 | "single" 25 | ], 26 | "semicolon": true, 27 | "triple-equals": [ 28 | true, 29 | "allow-null-check" 30 | ], 31 | "typedef-whitespace": [ 32 | true, 33 | { 34 | "call-signature": "nospace", 35 | "index-signature": "nospace", 36 | "parameter": "nospace", 37 | "property-declaration": "nospace", 38 | "variable-declaration": "nospace" 39 | } 40 | ], 41 | "variable-name": [ 42 | true, 43 | "ban-keywords", 44 | "allow-leading-underscore" 45 | ], 46 | "whitespace": [ 47 | true, 48 | "check-branch", 49 | "check-decl", 50 | "check-operator", 51 | "check-separator", 52 | "check-type" 53 | ] 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@angular/core@^6.0.0": 6 | version "6.0.3" 7 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.0.3.tgz#50502115105c3784d24338dd8ffb7dddcb55b58d" 8 | dependencies: 9 | tslib "^1.9.0" 10 | 11 | "@ngrx/store@^6.0.0": 12 | version "6.0.1" 13 | resolved "https://registry.yarnpkg.com/@ngrx/store/-/store-6.0.1.tgz#02c806ce20c698b997e81f5671e0edc07d32cf86" 14 | 15 | "@types/deep-freeze-strict@^1.1.0": 16 | version "1.1.0" 17 | resolved "https://registry.yarnpkg.com/@types/deep-freeze-strict/-/deep-freeze-strict-1.1.0.tgz#447a6a2576191344aa42310131dd3df5c41492c4" 18 | 19 | "@types/node@^8.0.30": 20 | version "8.0.30" 21 | resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.30.tgz#aa3c42946fc6357737eb215349fe728b38679d05" 22 | 23 | ansi-align@^2.0.0: 24 | version "2.0.0" 25 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 26 | dependencies: 27 | string-width "^2.0.0" 28 | 29 | ansi-regex@^2.0.0: 30 | version "2.1.1" 31 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 32 | 33 | ansi-regex@^3.0.0: 34 | version "3.0.0" 35 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 36 | 37 | ansi-styles@^2.2.1: 38 | version "2.2.1" 39 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 40 | 41 | ansi-styles@^3.1.0: 42 | version "3.2.0" 43 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" 44 | dependencies: 45 | color-convert "^1.9.0" 46 | 47 | array-find-index@^1.0.1: 48 | version "1.0.2" 49 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 50 | 51 | array-union@^1.0.1: 52 | version "1.0.2" 53 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 54 | dependencies: 55 | array-uniq "^1.0.1" 56 | 57 | array-uniq@^1.0.1: 58 | version "1.0.3" 59 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 60 | 61 | arrify@^1.0.0: 62 | version "1.0.1" 63 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 64 | 65 | babel-code-frame@^6.20.0: 66 | version "6.26.0" 67 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 68 | dependencies: 69 | chalk "^1.1.3" 70 | esutils "^2.0.2" 71 | js-tokens "^3.0.2" 72 | 73 | balanced-match@^1.0.0: 74 | version "1.0.0" 75 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 76 | 77 | boxen@^1.0.0: 78 | version "1.2.1" 79 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.1.tgz#0f11e7fe344edb9397977fc13ede7f64d956481d" 80 | dependencies: 81 | ansi-align "^2.0.0" 82 | camelcase "^4.0.0" 83 | chalk "^2.0.1" 84 | cli-boxes "^1.0.0" 85 | string-width "^2.0.0" 86 | term-size "^1.2.0" 87 | widest-line "^1.0.0" 88 | 89 | brace-expansion@^1.1.7: 90 | version "1.1.8" 91 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 92 | dependencies: 93 | balanced-match "^1.0.0" 94 | concat-map "0.0.1" 95 | 96 | builtin-modules@^1.0.0: 97 | version "1.1.1" 98 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 99 | 100 | camelcase-keys@^2.0.0: 101 | version "2.1.0" 102 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 103 | dependencies: 104 | camelcase "^2.0.0" 105 | map-obj "^1.0.0" 106 | 107 | camelcase@^2.0.0: 108 | version "2.1.1" 109 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 110 | 111 | camelcase@^4.0.0: 112 | version "4.1.0" 113 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 114 | 115 | capture-stack-trace@^1.0.0: 116 | version "1.0.0" 117 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 118 | 119 | chalk@^1.0.0, chalk@^1.1.3: 120 | version "1.1.3" 121 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 122 | dependencies: 123 | ansi-styles "^2.2.1" 124 | escape-string-regexp "^1.0.2" 125 | has-ansi "^2.0.0" 126 | strip-ansi "^3.0.0" 127 | supports-color "^2.0.0" 128 | 129 | chalk@^2.0.1: 130 | version "2.1.0" 131 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" 132 | dependencies: 133 | ansi-styles "^3.1.0" 134 | escape-string-regexp "^1.0.5" 135 | supports-color "^4.0.0" 136 | 137 | cli-boxes@^1.0.0: 138 | version "1.0.0" 139 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 140 | 141 | code-point-at@^1.0.0: 142 | version "1.1.0" 143 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 144 | 145 | color-convert@^1.9.0: 146 | version "1.9.0" 147 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" 148 | dependencies: 149 | color-name "^1.1.1" 150 | 151 | color-name@^1.1.1: 152 | version "1.1.3" 153 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 154 | 155 | colors@^1.1.2: 156 | version "1.1.2" 157 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 158 | 159 | concat-map@0.0.1: 160 | version "0.0.1" 161 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 162 | 163 | configstore@^3.0.0: 164 | version "3.1.1" 165 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" 166 | dependencies: 167 | dot-prop "^4.1.0" 168 | graceful-fs "^4.1.2" 169 | make-dir "^1.0.0" 170 | unique-string "^1.0.0" 171 | write-file-atomic "^2.0.0" 172 | xdg-basedir "^3.0.0" 173 | 174 | core-util-is@~1.0.0: 175 | version "1.0.2" 176 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 177 | 178 | cp-file@^3.1.0: 179 | version "3.2.0" 180 | resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-3.2.0.tgz#6f83616254624f0ad58aa4aa8d076f026be7e188" 181 | dependencies: 182 | graceful-fs "^4.1.2" 183 | mkdirp "^0.5.0" 184 | nested-error-stacks "^1.0.1" 185 | object-assign "^4.0.1" 186 | pify "^2.3.0" 187 | pinkie-promise "^2.0.0" 188 | readable-stream "^2.1.4" 189 | 190 | cpy-cli@^1.0.1: 191 | version "1.0.1" 192 | resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-1.0.1.tgz#67fb5a4a2dec28ca8abff375de4b9e71f6a7561c" 193 | dependencies: 194 | cpy "^4.0.0" 195 | meow "^3.6.0" 196 | 197 | cpy@^4.0.0: 198 | version "4.0.1" 199 | resolved "https://registry.yarnpkg.com/cpy/-/cpy-4.0.1.tgz#b67267eba2f3960ba06a5a61ac94033422833424" 200 | dependencies: 201 | cp-file "^3.1.0" 202 | globby "^4.0.0" 203 | meow "^3.6.0" 204 | nested-error-stacks "^1.0.0" 205 | object-assign "^4.0.1" 206 | pinkie-promise "^2.0.0" 207 | 208 | create-error-class@^3.0.0: 209 | version "3.0.2" 210 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 211 | dependencies: 212 | capture-stack-trace "^1.0.0" 213 | 214 | cross-spawn@^5.0.1: 215 | version "5.1.0" 216 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 217 | dependencies: 218 | lru-cache "^4.0.1" 219 | shebang-command "^1.2.0" 220 | which "^1.2.9" 221 | 222 | crypto-random-string@^1.0.0: 223 | version "1.0.0" 224 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 225 | 226 | currently-unhandled@^0.4.1: 227 | version "0.4.1" 228 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 229 | dependencies: 230 | array-find-index "^1.0.1" 231 | 232 | decamelize@^1.1.2: 233 | version "1.2.0" 234 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 235 | 236 | deep-extend@~0.4.0: 237 | version "0.4.2" 238 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 239 | 240 | deep-freeze-strict@^1.1.1: 241 | version "1.1.1" 242 | resolved "https://registry.yarnpkg.com/deep-freeze-strict/-/deep-freeze-strict-1.1.1.tgz#77d0583ca24a69be4bbd9ac2fae415d55523e5b0" 243 | 244 | diff@^3.0.1: 245 | version "3.3.1" 246 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" 247 | 248 | dot-prop@^4.1.0: 249 | version "4.2.0" 250 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 251 | dependencies: 252 | is-obj "^1.0.0" 253 | 254 | duplexer3@^0.1.4: 255 | version "0.1.4" 256 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 257 | 258 | error-ex@^1.2.0: 259 | version "1.3.1" 260 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 261 | dependencies: 262 | is-arrayish "^0.2.1" 263 | 264 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 265 | version "1.0.5" 266 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 267 | 268 | esutils@^2.0.2: 269 | version "2.0.2" 270 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 271 | 272 | execa@^0.7.0: 273 | version "0.7.0" 274 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 275 | dependencies: 276 | cross-spawn "^5.0.1" 277 | get-stream "^3.0.0" 278 | is-stream "^1.1.0" 279 | npm-run-path "^2.0.0" 280 | p-finally "^1.0.0" 281 | signal-exit "^3.0.0" 282 | strip-eof "^1.0.0" 283 | 284 | find-up@^1.0.0: 285 | version "1.1.2" 286 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 287 | dependencies: 288 | path-exists "^2.0.0" 289 | pinkie-promise "^2.0.0" 290 | 291 | findup-sync@~0.3.0: 292 | version "0.3.0" 293 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" 294 | dependencies: 295 | glob "~5.0.0" 296 | 297 | fs.realpath@^1.0.0: 298 | version "1.0.0" 299 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 300 | 301 | get-stdin@^4.0.1: 302 | version "4.0.1" 303 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 304 | 305 | get-stream@^3.0.0: 306 | version "3.0.0" 307 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 308 | 309 | glob@^6.0.1: 310 | version "6.0.4" 311 | resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" 312 | dependencies: 313 | inflight "^1.0.4" 314 | inherits "2" 315 | minimatch "2 || 3" 316 | once "^1.3.0" 317 | path-is-absolute "^1.0.0" 318 | 319 | glob@^7.0.5, glob@^7.1.1: 320 | version "7.1.2" 321 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 322 | dependencies: 323 | fs.realpath "^1.0.0" 324 | inflight "^1.0.4" 325 | inherits "2" 326 | minimatch "^3.0.4" 327 | once "^1.3.0" 328 | path-is-absolute "^1.0.0" 329 | 330 | glob@~5.0.0: 331 | version "5.0.15" 332 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" 333 | dependencies: 334 | inflight "^1.0.4" 335 | inherits "2" 336 | minimatch "2 || 3" 337 | once "^1.3.0" 338 | path-is-absolute "^1.0.0" 339 | 340 | globby@^4.0.0: 341 | version "4.1.0" 342 | resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" 343 | dependencies: 344 | array-union "^1.0.1" 345 | arrify "^1.0.0" 346 | glob "^6.0.1" 347 | object-assign "^4.0.1" 348 | pify "^2.0.0" 349 | pinkie-promise "^2.0.0" 350 | 351 | got@^6.7.1: 352 | version "6.7.1" 353 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 354 | dependencies: 355 | create-error-class "^3.0.0" 356 | duplexer3 "^0.1.4" 357 | get-stream "^3.0.0" 358 | is-redirect "^1.0.0" 359 | is-retry-allowed "^1.0.0" 360 | is-stream "^1.0.0" 361 | lowercase-keys "^1.0.0" 362 | safe-buffer "^5.0.1" 363 | timed-out "^4.0.0" 364 | unzip-response "^2.0.1" 365 | url-parse-lax "^1.0.0" 366 | 367 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 368 | version "4.1.11" 369 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 370 | 371 | has-ansi@^2.0.0: 372 | version "2.0.0" 373 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 374 | dependencies: 375 | ansi-regex "^2.0.0" 376 | 377 | has-flag@^2.0.0: 378 | version "2.0.0" 379 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 380 | 381 | hosted-git-info@^2.1.4: 382 | version "2.5.0" 383 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" 384 | 385 | import-lazy@^2.1.0: 386 | version "2.1.0" 387 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 388 | 389 | imurmurhash@^0.1.4: 390 | version "0.1.4" 391 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 392 | 393 | indent-string@^2.1.0: 394 | version "2.1.0" 395 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 396 | dependencies: 397 | repeating "^2.0.0" 398 | 399 | inflight@^1.0.4: 400 | version "1.0.6" 401 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 402 | dependencies: 403 | once "^1.3.0" 404 | wrappy "1" 405 | 406 | inherits@2, inherits@~2.0.1, inherits@~2.0.3: 407 | version "2.0.3" 408 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 409 | 410 | ini@~1.3.0: 411 | version "1.3.4" 412 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 413 | 414 | is-arrayish@^0.2.1: 415 | version "0.2.1" 416 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 417 | 418 | is-builtin-module@^1.0.0: 419 | version "1.0.0" 420 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 421 | dependencies: 422 | builtin-modules "^1.0.0" 423 | 424 | is-finite@^1.0.0: 425 | version "1.0.2" 426 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 427 | dependencies: 428 | number-is-nan "^1.0.0" 429 | 430 | is-fullwidth-code-point@^1.0.0: 431 | version "1.0.0" 432 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 433 | dependencies: 434 | number-is-nan "^1.0.0" 435 | 436 | is-fullwidth-code-point@^2.0.0: 437 | version "2.0.0" 438 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 439 | 440 | is-npm@^1.0.0: 441 | version "1.0.0" 442 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 443 | 444 | is-obj@^1.0.0: 445 | version "1.0.1" 446 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 447 | 448 | is-redirect@^1.0.0: 449 | version "1.0.0" 450 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 451 | 452 | is-retry-allowed@^1.0.0: 453 | version "1.1.0" 454 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 455 | 456 | is-stream@^1.0.0, is-stream@^1.1.0: 457 | version "1.1.0" 458 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 459 | 460 | is-utf8@^0.2.0: 461 | version "0.2.1" 462 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 463 | 464 | isarray@~1.0.0: 465 | version "1.0.0" 466 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 467 | 468 | isexe@^2.0.0: 469 | version "2.0.0" 470 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 471 | 472 | js-tokens@^3.0.2: 473 | version "3.0.2" 474 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 475 | 476 | latest-version@^3.0.0: 477 | version "3.1.0" 478 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 479 | dependencies: 480 | package-json "^4.0.0" 481 | 482 | load-json-file@^1.0.0: 483 | version "1.1.0" 484 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 485 | dependencies: 486 | graceful-fs "^4.1.2" 487 | parse-json "^2.2.0" 488 | pify "^2.0.0" 489 | pinkie-promise "^2.0.0" 490 | strip-bom "^2.0.0" 491 | 492 | loud-rejection@^1.0.0: 493 | version "1.6.0" 494 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 495 | dependencies: 496 | currently-unhandled "^0.4.1" 497 | signal-exit "^3.0.0" 498 | 499 | lowercase-keys@^1.0.0: 500 | version "1.0.0" 501 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 502 | 503 | lru-cache@^4.0.1: 504 | version "4.1.1" 505 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 506 | dependencies: 507 | pseudomap "^1.0.2" 508 | yallist "^2.1.2" 509 | 510 | make-dir@^1.0.0: 511 | version "1.0.0" 512 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" 513 | dependencies: 514 | pify "^2.3.0" 515 | 516 | map-obj@^1.0.0, map-obj@^1.0.1: 517 | version "1.0.1" 518 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 519 | 520 | meow@^3.6.0: 521 | version "3.7.0" 522 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 523 | dependencies: 524 | camelcase-keys "^2.0.0" 525 | decamelize "^1.1.2" 526 | loud-rejection "^1.0.0" 527 | map-obj "^1.0.1" 528 | minimist "^1.1.3" 529 | normalize-package-data "^2.3.4" 530 | object-assign "^4.0.1" 531 | read-pkg-up "^1.0.1" 532 | redent "^1.0.0" 533 | trim-newlines "^1.0.0" 534 | 535 | "minimatch@2 || 3", minimatch@^3.0.4: 536 | version "3.0.4" 537 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 538 | dependencies: 539 | brace-expansion "^1.1.7" 540 | 541 | minimist@0.0.8: 542 | version "0.0.8" 543 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 544 | 545 | minimist@^1.1.3, minimist@^1.2.0: 546 | version "1.2.0" 547 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 548 | 549 | minimist@~0.0.1: 550 | version "0.0.10" 551 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 552 | 553 | mkdirp@^0.5.0: 554 | version "0.5.1" 555 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 556 | dependencies: 557 | minimist "0.0.8" 558 | 559 | nested-error-stacks@^1.0.0, nested-error-stacks@^1.0.1: 560 | version "1.0.2" 561 | resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" 562 | dependencies: 563 | inherits "~2.0.1" 564 | 565 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 566 | version "2.4.0" 567 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 568 | dependencies: 569 | hosted-git-info "^2.1.4" 570 | is-builtin-module "^1.0.0" 571 | semver "2 || 3 || 4 || 5" 572 | validate-npm-package-license "^3.0.1" 573 | 574 | npm-run-path@^2.0.0: 575 | version "2.0.2" 576 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 577 | dependencies: 578 | path-key "^2.0.0" 579 | 580 | number-is-nan@^1.0.0: 581 | version "1.0.1" 582 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 583 | 584 | object-assign@^4.0.1: 585 | version "4.1.1" 586 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 587 | 588 | once@^1.3.0: 589 | version "1.4.0" 590 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 591 | dependencies: 592 | wrappy "1" 593 | 594 | optimist@~0.6.0: 595 | version "0.6.1" 596 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 597 | dependencies: 598 | minimist "~0.0.1" 599 | wordwrap "~0.0.2" 600 | 601 | p-finally@^1.0.0: 602 | version "1.0.0" 603 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 604 | 605 | package-json@^4.0.0: 606 | version "4.0.1" 607 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 608 | dependencies: 609 | got "^6.7.1" 610 | registry-auth-token "^3.0.1" 611 | registry-url "^3.0.3" 612 | semver "^5.1.0" 613 | 614 | parse-json@^2.2.0: 615 | version "2.2.0" 616 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 617 | dependencies: 618 | error-ex "^1.2.0" 619 | 620 | path-exists@^2.0.0: 621 | version "2.1.0" 622 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 623 | dependencies: 624 | pinkie-promise "^2.0.0" 625 | 626 | path-is-absolute@^1.0.0: 627 | version "1.0.1" 628 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 629 | 630 | path-key@^2.0.0: 631 | version "2.0.1" 632 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 633 | 634 | path-parse@^1.0.5: 635 | version "1.0.5" 636 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 637 | 638 | path-type@^1.0.0: 639 | version "1.1.0" 640 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 641 | dependencies: 642 | graceful-fs "^4.1.2" 643 | pify "^2.0.0" 644 | pinkie-promise "^2.0.0" 645 | 646 | pify@^2.0.0, pify@^2.3.0: 647 | version "2.3.0" 648 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 649 | 650 | pinkie-promise@^2.0.0: 651 | version "2.0.1" 652 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 653 | dependencies: 654 | pinkie "^2.0.0" 655 | 656 | pinkie@^2.0.0: 657 | version "2.0.4" 658 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 659 | 660 | prepend-http@^1.0.1: 661 | version "1.0.4" 662 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 663 | 664 | process-nextick-args@~1.0.6: 665 | version "1.0.7" 666 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 667 | 668 | pseudomap@^1.0.2: 669 | version "1.0.2" 670 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 671 | 672 | rc@^1.0.1, rc@^1.1.6: 673 | version "1.2.1" 674 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 675 | dependencies: 676 | deep-extend "~0.4.0" 677 | ini "~1.3.0" 678 | minimist "^1.2.0" 679 | strip-json-comments "~2.0.1" 680 | 681 | read-pkg-up@^1.0.1: 682 | version "1.0.1" 683 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 684 | dependencies: 685 | find-up "^1.0.0" 686 | read-pkg "^1.0.0" 687 | 688 | read-pkg@^1.0.0: 689 | version "1.1.0" 690 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 691 | dependencies: 692 | load-json-file "^1.0.0" 693 | normalize-package-data "^2.3.2" 694 | path-type "^1.0.0" 695 | 696 | readable-stream@^2.1.4: 697 | version "2.3.3" 698 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 699 | dependencies: 700 | core-util-is "~1.0.0" 701 | inherits "~2.0.3" 702 | isarray "~1.0.0" 703 | process-nextick-args "~1.0.6" 704 | safe-buffer "~5.1.1" 705 | string_decoder "~1.0.3" 706 | util-deprecate "~1.0.1" 707 | 708 | redent@^1.0.0: 709 | version "1.0.0" 710 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 711 | dependencies: 712 | indent-string "^2.1.0" 713 | strip-indent "^1.0.1" 714 | 715 | registry-auth-token@^3.0.1: 716 | version "3.3.1" 717 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" 718 | dependencies: 719 | rc "^1.1.6" 720 | safe-buffer "^5.0.1" 721 | 722 | registry-url@^3.0.3: 723 | version "3.1.0" 724 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 725 | dependencies: 726 | rc "^1.0.1" 727 | 728 | repeating@^2.0.0: 729 | version "2.0.1" 730 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 731 | dependencies: 732 | is-finite "^1.0.0" 733 | 734 | resolve@^1.1.7: 735 | version "1.4.0" 736 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" 737 | dependencies: 738 | path-parse "^1.0.5" 739 | 740 | rimraf@^2.5.4: 741 | version "2.6.2" 742 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 743 | dependencies: 744 | glob "^7.0.5" 745 | 746 | rollup@^0.41.4: 747 | version "0.41.6" 748 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" 749 | dependencies: 750 | source-map-support "^0.4.0" 751 | 752 | rxjs@^6.1.0: 753 | version "6.2.0" 754 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.0.tgz#e024d0e180b72756a83c2aaea8f25423751ba978" 755 | dependencies: 756 | tslib "^1.9.0" 757 | 758 | safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 759 | version "5.1.1" 760 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 761 | 762 | semver-diff@^2.0.0: 763 | version "2.1.0" 764 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 765 | dependencies: 766 | semver "^5.0.3" 767 | 768 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0: 769 | version "5.4.1" 770 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 771 | 772 | shebang-command@^1.2.0: 773 | version "1.2.0" 774 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 775 | dependencies: 776 | shebang-regex "^1.0.0" 777 | 778 | shebang-regex@^1.0.0: 779 | version "1.0.0" 780 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 781 | 782 | signal-exit@^3.0.0, signal-exit@^3.0.2: 783 | version "3.0.2" 784 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 785 | 786 | source-map-support@^0.4.0: 787 | version "0.4.18" 788 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 789 | dependencies: 790 | source-map "^0.5.6" 791 | 792 | source-map@^0.5.6: 793 | version "0.5.7" 794 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 795 | 796 | spdx-correct@~1.0.0: 797 | version "1.0.2" 798 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 799 | dependencies: 800 | spdx-license-ids "^1.0.2" 801 | 802 | spdx-expression-parse@~1.0.0: 803 | version "1.0.4" 804 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 805 | 806 | spdx-license-ids@^1.0.2: 807 | version "1.2.2" 808 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 809 | 810 | string-width@^1.0.1: 811 | version "1.0.2" 812 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 813 | dependencies: 814 | code-point-at "^1.0.0" 815 | is-fullwidth-code-point "^1.0.0" 816 | strip-ansi "^3.0.0" 817 | 818 | string-width@^2.0.0: 819 | version "2.1.1" 820 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 821 | dependencies: 822 | is-fullwidth-code-point "^2.0.0" 823 | strip-ansi "^4.0.0" 824 | 825 | string_decoder@~1.0.3: 826 | version "1.0.3" 827 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 828 | dependencies: 829 | safe-buffer "~5.1.0" 830 | 831 | strip-ansi@^3.0.0: 832 | version "3.0.1" 833 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 834 | dependencies: 835 | ansi-regex "^2.0.0" 836 | 837 | strip-ansi@^4.0.0: 838 | version "4.0.0" 839 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 840 | dependencies: 841 | ansi-regex "^3.0.0" 842 | 843 | strip-bom@^2.0.0: 844 | version "2.0.0" 845 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 846 | dependencies: 847 | is-utf8 "^0.2.0" 848 | 849 | strip-eof@^1.0.0: 850 | version "1.0.0" 851 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 852 | 853 | strip-indent@^1.0.1: 854 | version "1.0.1" 855 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 856 | dependencies: 857 | get-stdin "^4.0.1" 858 | 859 | strip-json-comments@~2.0.1: 860 | version "2.0.1" 861 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 862 | 863 | supports-color@^2.0.0: 864 | version "2.0.0" 865 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 866 | 867 | supports-color@^4.0.0: 868 | version "4.4.0" 869 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 870 | dependencies: 871 | has-flag "^2.0.0" 872 | 873 | term-size@^1.2.0: 874 | version "1.2.0" 875 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 876 | dependencies: 877 | execa "^0.7.0" 878 | 879 | timed-out@^4.0.0: 880 | version "4.0.1" 881 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 882 | 883 | trim-newlines@^1.0.0: 884 | version "1.0.0" 885 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 886 | 887 | tslib@^1.9.0: 888 | version "1.9.2" 889 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.2.tgz#8be0cc9a1f6dc7727c38deb16c2ebd1a2892988e" 890 | 891 | tslint@^4.0.2: 892 | version "4.5.1" 893 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b" 894 | dependencies: 895 | babel-code-frame "^6.20.0" 896 | colors "^1.1.2" 897 | diff "^3.0.1" 898 | findup-sync "~0.3.0" 899 | glob "^7.1.1" 900 | optimist "~0.6.0" 901 | resolve "^1.1.7" 902 | tsutils "^1.1.0" 903 | update-notifier "^2.0.0" 904 | 905 | tsutils@^1.1.0: 906 | version "1.9.1" 907 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" 908 | 909 | typescript@~2.4.2: 910 | version "2.4.2" 911 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" 912 | 913 | unique-string@^1.0.0: 914 | version "1.0.0" 915 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 916 | dependencies: 917 | crypto-random-string "^1.0.0" 918 | 919 | unzip-response@^2.0.1: 920 | version "2.0.1" 921 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 922 | 923 | update-notifier@^2.0.0: 924 | version "2.2.0" 925 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" 926 | dependencies: 927 | boxen "^1.0.0" 928 | chalk "^1.0.0" 929 | configstore "^3.0.0" 930 | import-lazy "^2.1.0" 931 | is-npm "^1.0.0" 932 | latest-version "^3.0.0" 933 | semver-diff "^2.0.0" 934 | xdg-basedir "^3.0.0" 935 | 936 | url-parse-lax@^1.0.0: 937 | version "1.0.0" 938 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 939 | dependencies: 940 | prepend-http "^1.0.1" 941 | 942 | util-deprecate@~1.0.1: 943 | version "1.0.2" 944 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 945 | 946 | validate-npm-package-license@^3.0.1: 947 | version "3.0.1" 948 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 949 | dependencies: 950 | spdx-correct "~1.0.0" 951 | spdx-expression-parse "~1.0.0" 952 | 953 | which@^1.2.9: 954 | version "1.3.0" 955 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 956 | dependencies: 957 | isexe "^2.0.0" 958 | 959 | widest-line@^1.0.0: 960 | version "1.0.0" 961 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" 962 | dependencies: 963 | string-width "^1.0.1" 964 | 965 | wordwrap@~0.0.2: 966 | version "0.0.3" 967 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 968 | 969 | wrappy@1: 970 | version "1.0.2" 971 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 972 | 973 | write-file-atomic@^2.0.0: 974 | version "2.3.0" 975 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 976 | dependencies: 977 | graceful-fs "^4.1.11" 978 | imurmurhash "^0.1.4" 979 | signal-exit "^3.0.2" 980 | 981 | xdg-basedir@^3.0.0: 982 | version "3.0.0" 983 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 984 | 985 | yallist@^2.1.2: 986 | version "2.1.2" 987 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 988 | 989 | zone.js@^0.8.4: 990 | version "0.8.17" 991 | resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.17.tgz#4c5e5185a857da8da793daf3919371c5a36b2a0b" 992 | --------------------------------------------------------------------------------