├── .gitignore ├── .npmignore ├── .travis.yml ├── CHANGELOG.md ├── ISSUE_TEMPLATE.md ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src ├── actions.ts ├── index.ts ├── reducer.ts └── router.ts ├── tsconfig.es6.json ├── tsconfig.esm.json ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | typings/ 3 | lib/ 4 | examples/counter/node_modules/ 5 | examples/counter/dist/* 6 | npm-debug.log 7 | **/*.ngsummary.json 8 | *.tgz 9 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | typings/ 3 | examples/ 4 | npm-debug.log 5 | *.tgz 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | install: 5 | npm i 6 | script: 7 | npm run build 8 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 9.0.0 - Angular 6, RxJS 6 Support 2 | 3 | Adapts to breaking changes in Angular 6 and RxJS 6. Also updates to Typescript 2.7.2. 4 | 5 | # 7.0.0 - Angular 5+ only support 6 | 7 | * Update to Angular 5 compiler 8 | * Update RxJS, change to use let-able operators 9 | * Requires @angular-redux/store 7+ 10 | 11 | ** Breaking Change ** 12 | 13 | * NgReduxRouterModule now needs to be imported with `.forRoot` 14 | 15 | **before** 16 | 17 | ```ts 18 | @NgModule({ 19 | declarations: [AppComponent], 20 | imports: [ 21 | RouterModule.forRoot(appRoutes), 22 | /* .... */ 23 | NgReduxRouterModule 24 | ], 25 | bootstrap: [AppComponent] 26 | }) 27 | export class AppModule {} 28 | ``` 29 | 30 | **after** 31 | 32 | ```ts 33 | @NgModule({ 34 | declarations: [AppComponent], 35 | imports: [ 36 | RouterModule.forRoot(appRoutes), 37 | /* .... */ 38 | NgReduxRouterModule.forRoot() 39 | ], 40 | bootstrap: [AppComponent] 41 | }) 42 | export class AppModule {} 43 | ``` 44 | 45 | # 6.4.0 - Angular 5 Support 46 | 47 | Added support for Angular 5. 48 | 49 | # 6.3.1 - Toolchain Update 50 | 51 | * Typescript 2.4.1 52 | * Compile with `strict: true` in tsconfig.json 53 | * Fix for issue #17. 54 | * Add package-lock.json for contributors using npm 5+. 55 | 56 | # 6.3.0 - Version bump to match Store@6.3.0 57 | 58 | https://github.com/angular-redux/store/blob/master/CHANGELOG.md 59 | 60 | # 6.2.0 - Version bump to match Store@6.2.0 61 | 62 | https://github.com/angular-redux/store/blob/master/CHANGELOG.md 63 | 64 | # 6.1.0 - Angular 4 Support 65 | 66 | We now support versions 2 and 4 of Angular. Version 2 support is deprecated and 67 | support will be removed in the next major version. 68 | 69 | # 6.0.1 70 | 71 | * Include the `src`-folder in the release so webpack can build source maps. 72 | 73 | # 6.0.0 - The big-rename. 74 | 75 | Due to the impending release of Angular4, the name 'ng2-redux' no longer makes a 76 | ton of sense. The Angular folks have moved to a model where all versions are 77 | just called 'Angular', and we should match that. 78 | 79 | After discussion with the other maintainers, we decided that since we have to 80 | rename things anyway, this is a good opportunity to collect ng2-redux and its 81 | related libraries into a set of scoped packages. This will allow us to grow the 82 | feature set in a coherent but decoupled way. 83 | 84 | As of v6, the following packages are deprecated: 85 | 86 | * ng2-redux 87 | * ng2-redux-router 88 | * ng2-redux-form 89 | 90 | Those packages will still be available on npm for as long as they are being 91 | used. 92 | 93 | However we have published the same code under a new package naming scheme: 94 | 95 | * @angular-redux/store (formerly ng2-redux) 96 | * @angular-redux/router (formerly ng2-redux-router) 97 | * @angular-redux/form (formerly ng2-redux-form). 98 | 99 | We have also decided that it's easier to reason about things if these packages 100 | align at least on major versions. So everything has at this point been bumped to 101 | 6.0.0. 102 | 103 | # Breaking changes 104 | 105 | Apart from the rename, the following API changes are noted: 106 | 107 | * @angular-redux/store: none. 108 | * @angular-redux/router: none. 109 | * @angular-redux/form: `NgReduxForms` renamed to `NgReduxFormModule` for 110 | consistency. 111 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### This is a... 2 | 3 | * [ ] feature request 4 | * [ ] bug report 5 | * [ ] usage question 6 | 7 | ### What toolchain are you using for transpilation/bundling? 8 | 9 | * [ ] @angular/cli 10 | * [ ] Custom @ngTools/webpack 11 | * [ ] Raw `ngc` 12 | * [ ] SystemJS 13 | * [ ] Rollup 14 | * [ ] Other 15 | 16 | ### Environment 17 | 18 | NodeJS Version: 19 | Typescript Version: 20 | Angular Version: 21 | @angular-redux/store version: 22 | @angular/cli version: (if applicable) 23 | OS: 24 | 25 | ### Link to repo showing the issus 26 | (optional, but helps _a lot_) 27 | 28 | ### Expected Behaviour: 29 | 30 | 31 | 32 | ### Actual Behaviour: 33 | 34 | 35 | 36 | ### Stack Trace/Error Message: 37 | 38 | 39 | 40 | ### Additional Notes: 41 | (optional) 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Dag Stuan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ****REPO DEPRECATED**** 2 | 3 | Please note that this repo has been deprecated. Code and issues are being migrated to a monorepo at https://github.com/angular-redux/platform where we are beginning work on a new and improved v10. To file any new issues or see the state of the current code base, we would love to see you there! Thanks for your support! 4 | 5 | # @angular-redux/router 6 | 7 | [![Join the chat at https://gitter.im/angular-redux/ng2-redux](https://badges.gitter.im/angular-redux/ng2-redux.svg)](https://gitter.im/angular-redux/ng2-redux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 8 | [![npm version](https://img.shields.io/npm/v/@angular-redux/router.svg)](https://www.npmjs.com/package/@angular-redux/router) 9 | [![downloads per month](https://img.shields.io/npm/dm/@angular-redux/router.svg)](https://www.npmjs.com/package/@angular-redux/router) 10 | 11 | Bindings to connect @angular/router to @angular-redux/core 12 | 13 | ## Which version should I use? 14 | 15 | For use with Angular 6: Use v9. 16 | 17 | For use with Angular 5: Use v7. 18 | 19 | For use with Angular 2-4: Use v6. 20 | 21 | ### Setup 22 | 23 | 1. Use npm to install the bindings: 24 | ``` 25 | npm install @angular-redux/router --save 26 | ``` 27 | 28 | 2. Use the `routerReducer` when providing `Store`: 29 | ```ts 30 | import { combineReducers } from 'redux'; 31 | import { routerReducer } from '@angular-redux/router'; 32 | 33 | export default combineReducers({ 34 | // your reducers.. 35 | router: routerReducer 36 | }); 37 | ``` 38 | 39 | 3. Add the bindings to your root module. 40 | ```ts 41 | import { NgModule } from '@angular/core'; 42 | import { NgReduxModule, NgRedux } from '@angular-redux/core'; 43 | import { NgReduxRouterModule, NgReduxRouter } from '@angular-redux/router'; 44 | import { RouterModule } from '@angular/router'; 45 | import { routes } from './routes'; 46 | 47 | @NgModule({ 48 | imports: [ 49 | RouterModule.forRoot(routes), 50 | NgReduxModule, 51 | NgReduxRouterModule.forRoot() 52 | // ...your imports 53 | ], 54 | // Other stuff.. 55 | }) 56 | export class AppModule { 57 | constructor( 58 | ngRedux: NgRedux, 59 | ngReduxRouter: NgReduxRouter 60 | ) { 61 | ngRedux.configureStore(/* args */); 62 | ngReduxRouter.initialize(/* args */); 63 | } 64 | } 65 | ``` 66 | 67 | ### What if I use Immutable.js with my Redux store? 68 | 69 | When using a wrapper for your store's state, such as Immutable.js, you will need to change two things from the standard setup: 70 | 71 | 1. Provide your own reducer function that will receive actions of type `UPDATE_LOCATION` and return the payload merged into state. 72 | 2. Pass a selector to access the payload state and convert it to a JS object via the `selectLocationFromState` option on `NgReduxRouter`'s `initialize()`. 73 | 74 | These two hooks will allow you to store the state that this library uses in whatever format or wrapper you would like. 75 | 76 | ### What if I have a different way of supplying the current URL of the page? 77 | 78 | Depending on your app's needs. It may need to supply the current URL of the page differently than directly 79 | through the router. This can be achieved by initializing the bindings with a second argument: `urlState$`. 80 | The `urlState$` argument lets you give `NgReduxRouter` an `Observable` of the current URL of the page. 81 | If this argument is not given to the bindings, it defaults to subscribing to the `@angular/router`'s events, and 82 | getting the URL from there. 83 | 84 | ### Examples 85 | 86 | * [Example-app: An example of using @angular-redux/router along with the other companion packages.](https://github.com/angular-redux/example-app) 87 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@angular-redux/router", 3 | "version": "9.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@angular-redux/store": { 8 | "version": "9.0.0", 9 | "resolved": "https://registry.npmjs.org/@angular-redux/store/-/store-9.0.0.tgz", 10 | "integrity": "sha512-0aWUktzTK88xDoDlGUDmDBnGW1ZB21W3H9dq0E52fuaN87cwtdca83ioi20/YT+M6EOecYPY7il9fSpy/Ewd1A==", 11 | "dev": true 12 | }, 13 | "@angular/common": { 14 | "version": "6.0.3", 15 | "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.3.tgz", 16 | "integrity": "sha512-tqEYeEXoaw2kzSUfTrmC3ruJ87trS61SHayIf56f/jtEVn+4pbgJDTNvLSnB6QEaMTn7sX6QBroauMWmdTVSvA==", 17 | "dev": true, 18 | "requires": { 19 | "tslib": "1.9.1" 20 | } 21 | }, 22 | "@angular/compiler": { 23 | "version": "6.0.3", 24 | "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.3.tgz", 25 | "integrity": "sha512-nS65UI6f7grs2k+ggtkwXSBUQ1D/LVSFfXjWR5olxATx25QbIKABec90JphPE4FfhhVm1uonQ/vaSVCjh83Euw==", 26 | "dev": true, 27 | "requires": { 28 | "tslib": "1.9.1" 29 | } 30 | }, 31 | "@angular/compiler-cli": { 32 | "version": "6.0.3", 33 | "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.3.tgz", 34 | "integrity": "sha512-n7L/g2leGSl1LffZ3ZuB5bY4sJoZWjkG5tg9IafXQ8nAIUtKPl+ovoiNUhAaA4CvlUlgYHMcbezKpc9285LnyQ==", 35 | "dev": true, 36 | "requires": { 37 | "chokidar": "1.7.0", 38 | "minimist": "1.2.0", 39 | "reflect-metadata": "0.1.12", 40 | "tsickle": "0.27.5" 41 | } 42 | }, 43 | "@angular/core": { 44 | "version": "6.0.3", 45 | "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.3.tgz", 46 | "integrity": "sha512-YJk0kS/V9C2JFKMHfiw6TNxmfkYWGW4HzqGOm/VoPkvj9O4Erkz/OtOOc8hYGmXFmQz1UpOAByzY2XIlEi72XQ==", 47 | "dev": true, 48 | "requires": { 49 | "tslib": "1.9.1" 50 | } 51 | }, 52 | "@angular/platform-browser": { 53 | "version": "6.0.3", 54 | "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.3.tgz", 55 | "integrity": "sha512-OTgOE6WzytV9fnnCwvoyyXI4Avzmfu9RbBUhVRVontov6LlN9XL8BrzLidT7/lPAEQmHuoRCuNrSSY8TokPJCA==", 56 | "dev": true, 57 | "requires": { 58 | "tslib": "1.9.1" 59 | } 60 | }, 61 | "@angular/platform-browser-dynamic": { 62 | "version": "6.0.3", 63 | "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.3.tgz", 64 | "integrity": "sha512-OSaBiog3jH52c+pJhG6qsZjVipzw3ThTcFaymetlBwdRkZ9ch7eIQFhlIXPe4oM3wJt39LTG7peRymWPbnx4uw==", 65 | "dev": true, 66 | "requires": { 67 | "tslib": "1.9.1" 68 | } 69 | }, 70 | "@angular/router": { 71 | "version": "6.0.3", 72 | "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.0.3.tgz", 73 | "integrity": "sha512-7pQYu5DnNXwZ8nZrKtTpBo3HQoirKSP2hGAoHA0rPsqZvavBfuhUzsksYVvKvFEtoPmBe69uEYydhr115MTTNQ==", 74 | "dev": true, 75 | "requires": { 76 | "tslib": "1.9.1" 77 | } 78 | }, 79 | "@types/core-js": { 80 | "version": "0.9.42", 81 | "resolved": "https://registry.npmjs.org/@types/core-js/-/core-js-0.9.42.tgz", 82 | "integrity": "sha512-AiEZz42jF2f4nkcJ2OhKWxIbXU62pEHmFoaGoGo83seUzDEncxEZtBPX2i2DLUpcVpaVVxAsqAAZzTyrV0A/RQ==", 83 | "dev": true 84 | }, 85 | "@types/jasmine": { 86 | "version": "2.5.53", 87 | "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.53.tgz", 88 | "integrity": "sha512-2YNL0jXYuN7w07mb1sMZQ6T6zOvGi83v8UbjhBZ8mhvI1VkQ2STU9XOrTFyvWswMyh5rW1evS+e7qltYJvTqPA==", 89 | "dev": true 90 | }, 91 | "anymatch": { 92 | "version": "1.3.2", 93 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 94 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 95 | "dev": true, 96 | "requires": { 97 | "micromatch": "2.3.11", 98 | "normalize-path": "2.1.1" 99 | } 100 | }, 101 | "arr-diff": { 102 | "version": "2.0.0", 103 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 104 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 105 | "dev": true, 106 | "requires": { 107 | "arr-flatten": "1.1.0" 108 | } 109 | }, 110 | "arr-flatten": { 111 | "version": "1.1.0", 112 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 113 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 114 | "dev": true 115 | }, 116 | "array-unique": { 117 | "version": "0.2.1", 118 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 119 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 120 | "dev": true 121 | }, 122 | "async-each": { 123 | "version": "1.0.1", 124 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 125 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 126 | "dev": true 127 | }, 128 | "balanced-match": { 129 | "version": "1.0.0", 130 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 131 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 132 | "dev": true 133 | }, 134 | "binary-extensions": { 135 | "version": "1.11.0", 136 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 137 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", 138 | "dev": true 139 | }, 140 | "brace-expansion": { 141 | "version": "1.1.8", 142 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 143 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 144 | "dev": true, 145 | "requires": { 146 | "balanced-match": "1.0.0", 147 | "concat-map": "0.0.1" 148 | } 149 | }, 150 | "braces": { 151 | "version": "1.8.5", 152 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 153 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 154 | "dev": true, 155 | "requires": { 156 | "expand-range": "1.8.2", 157 | "preserve": "0.2.0", 158 | "repeat-element": "1.1.2" 159 | } 160 | }, 161 | "buffer-from": { 162 | "version": "1.0.0", 163 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", 164 | "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", 165 | "dev": true 166 | }, 167 | "chokidar": { 168 | "version": "1.7.0", 169 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 170 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 171 | "dev": true, 172 | "requires": { 173 | "anymatch": "1.3.2", 174 | "async-each": "1.0.1", 175 | "fsevents": "1.2.4", 176 | "glob-parent": "2.0.0", 177 | "inherits": "2.0.3", 178 | "is-binary-path": "1.0.1", 179 | "is-glob": "2.0.1", 180 | "path-is-absolute": "1.0.1", 181 | "readdirp": "2.1.0" 182 | } 183 | }, 184 | "concat-map": { 185 | "version": "0.0.1", 186 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 187 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 188 | "dev": true 189 | }, 190 | "core-util-is": { 191 | "version": "1.0.2", 192 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 193 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 194 | "dev": true 195 | }, 196 | "expand-brackets": { 197 | "version": "0.1.5", 198 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 199 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 200 | "dev": true, 201 | "requires": { 202 | "is-posix-bracket": "0.1.1" 203 | } 204 | }, 205 | "expand-range": { 206 | "version": "1.8.2", 207 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 208 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 209 | "dev": true, 210 | "requires": { 211 | "fill-range": "2.2.4" 212 | } 213 | }, 214 | "extglob": { 215 | "version": "0.3.2", 216 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 217 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 218 | "dev": true, 219 | "requires": { 220 | "is-extglob": "1.0.0" 221 | } 222 | }, 223 | "filename-regex": { 224 | "version": "2.0.1", 225 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 226 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 227 | "dev": true 228 | }, 229 | "fill-range": { 230 | "version": "2.2.4", 231 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", 232 | "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", 233 | "dev": true, 234 | "requires": { 235 | "is-number": "2.1.0", 236 | "isobject": "2.1.0", 237 | "randomatic": "3.0.0", 238 | "repeat-element": "1.1.2", 239 | "repeat-string": "1.6.1" 240 | } 241 | }, 242 | "for-in": { 243 | "version": "1.0.2", 244 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 245 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 246 | "dev": true 247 | }, 248 | "for-own": { 249 | "version": "0.1.5", 250 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 251 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 252 | "dev": true, 253 | "requires": { 254 | "for-in": "1.0.2" 255 | } 256 | }, 257 | "fs.realpath": { 258 | "version": "1.0.0", 259 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 260 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 261 | "dev": true 262 | }, 263 | "fsevents": { 264 | "version": "1.2.4", 265 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", 266 | "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", 267 | "dev": true, 268 | "optional": true, 269 | "requires": { 270 | "nan": "2.10.0", 271 | "node-pre-gyp": "0.10.0" 272 | }, 273 | "dependencies": { 274 | "abbrev": { 275 | "version": "1.1.1", 276 | "bundled": true, 277 | "dev": true, 278 | "optional": true 279 | }, 280 | "ansi-regex": { 281 | "version": "2.1.1", 282 | "bundled": true, 283 | "dev": true 284 | }, 285 | "aproba": { 286 | "version": "1.2.0", 287 | "bundled": true, 288 | "dev": true, 289 | "optional": true 290 | }, 291 | "are-we-there-yet": { 292 | "version": "1.1.4", 293 | "bundled": true, 294 | "dev": true, 295 | "optional": true, 296 | "requires": { 297 | "delegates": "1.0.0", 298 | "readable-stream": "2.3.6" 299 | } 300 | }, 301 | "balanced-match": { 302 | "version": "1.0.0", 303 | "bundled": true, 304 | "dev": true 305 | }, 306 | "brace-expansion": { 307 | "version": "1.1.11", 308 | "bundled": true, 309 | "dev": true, 310 | "requires": { 311 | "balanced-match": "1.0.0", 312 | "concat-map": "0.0.1" 313 | } 314 | }, 315 | "chownr": { 316 | "version": "1.0.1", 317 | "bundled": true, 318 | "dev": true, 319 | "optional": true 320 | }, 321 | "code-point-at": { 322 | "version": "1.1.0", 323 | "bundled": true, 324 | "dev": true 325 | }, 326 | "concat-map": { 327 | "version": "0.0.1", 328 | "bundled": true, 329 | "dev": true 330 | }, 331 | "console-control-strings": { 332 | "version": "1.1.0", 333 | "bundled": true, 334 | "dev": true 335 | }, 336 | "core-util-is": { 337 | "version": "1.0.2", 338 | "bundled": true, 339 | "dev": true, 340 | "optional": true 341 | }, 342 | "debug": { 343 | "version": "2.6.9", 344 | "bundled": true, 345 | "dev": true, 346 | "optional": true, 347 | "requires": { 348 | "ms": "2.0.0" 349 | } 350 | }, 351 | "deep-extend": { 352 | "version": "0.5.1", 353 | "bundled": true, 354 | "dev": true, 355 | "optional": true 356 | }, 357 | "delegates": { 358 | "version": "1.0.0", 359 | "bundled": true, 360 | "dev": true, 361 | "optional": true 362 | }, 363 | "detect-libc": { 364 | "version": "1.0.3", 365 | "bundled": true, 366 | "dev": true, 367 | "optional": true 368 | }, 369 | "fs-minipass": { 370 | "version": "1.2.5", 371 | "bundled": true, 372 | "dev": true, 373 | "optional": true, 374 | "requires": { 375 | "minipass": "2.2.4" 376 | } 377 | }, 378 | "fs.realpath": { 379 | "version": "1.0.0", 380 | "bundled": true, 381 | "dev": true, 382 | "optional": true 383 | }, 384 | "gauge": { 385 | "version": "2.7.4", 386 | "bundled": true, 387 | "dev": true, 388 | "optional": true, 389 | "requires": { 390 | "aproba": "1.2.0", 391 | "console-control-strings": "1.1.0", 392 | "has-unicode": "2.0.1", 393 | "object-assign": "4.1.1", 394 | "signal-exit": "3.0.2", 395 | "string-width": "1.0.2", 396 | "strip-ansi": "3.0.1", 397 | "wide-align": "1.1.2" 398 | } 399 | }, 400 | "glob": { 401 | "version": "7.1.2", 402 | "bundled": true, 403 | "dev": true, 404 | "optional": true, 405 | "requires": { 406 | "fs.realpath": "1.0.0", 407 | "inflight": "1.0.6", 408 | "inherits": "2.0.3", 409 | "minimatch": "3.0.4", 410 | "once": "1.4.0", 411 | "path-is-absolute": "1.0.1" 412 | } 413 | }, 414 | "has-unicode": { 415 | "version": "2.0.1", 416 | "bundled": true, 417 | "dev": true, 418 | "optional": true 419 | }, 420 | "iconv-lite": { 421 | "version": "0.4.21", 422 | "bundled": true, 423 | "dev": true, 424 | "optional": true, 425 | "requires": { 426 | "safer-buffer": "2.1.2" 427 | } 428 | }, 429 | "ignore-walk": { 430 | "version": "3.0.1", 431 | "bundled": true, 432 | "dev": true, 433 | "optional": true, 434 | "requires": { 435 | "minimatch": "3.0.4" 436 | } 437 | }, 438 | "inflight": { 439 | "version": "1.0.6", 440 | "bundled": true, 441 | "dev": true, 442 | "optional": true, 443 | "requires": { 444 | "once": "1.4.0", 445 | "wrappy": "1.0.2" 446 | } 447 | }, 448 | "inherits": { 449 | "version": "2.0.3", 450 | "bundled": true, 451 | "dev": true 452 | }, 453 | "ini": { 454 | "version": "1.3.5", 455 | "bundled": true, 456 | "dev": true, 457 | "optional": true 458 | }, 459 | "is-fullwidth-code-point": { 460 | "version": "1.0.0", 461 | "bundled": true, 462 | "dev": true, 463 | "requires": { 464 | "number-is-nan": "1.0.1" 465 | } 466 | }, 467 | "isarray": { 468 | "version": "1.0.0", 469 | "bundled": true, 470 | "dev": true, 471 | "optional": true 472 | }, 473 | "minimatch": { 474 | "version": "3.0.4", 475 | "bundled": true, 476 | "dev": true, 477 | "requires": { 478 | "brace-expansion": "1.1.11" 479 | } 480 | }, 481 | "minimist": { 482 | "version": "0.0.8", 483 | "bundled": true, 484 | "dev": true 485 | }, 486 | "minipass": { 487 | "version": "2.2.4", 488 | "bundled": true, 489 | "dev": true, 490 | "requires": { 491 | "safe-buffer": "5.1.1", 492 | "yallist": "3.0.2" 493 | } 494 | }, 495 | "minizlib": { 496 | "version": "1.1.0", 497 | "bundled": true, 498 | "dev": true, 499 | "optional": true, 500 | "requires": { 501 | "minipass": "2.2.4" 502 | } 503 | }, 504 | "mkdirp": { 505 | "version": "0.5.1", 506 | "bundled": true, 507 | "dev": true, 508 | "requires": { 509 | "minimist": "0.0.8" 510 | } 511 | }, 512 | "ms": { 513 | "version": "2.0.0", 514 | "bundled": true, 515 | "dev": true, 516 | "optional": true 517 | }, 518 | "needle": { 519 | "version": "2.2.0", 520 | "bundled": true, 521 | "dev": true, 522 | "optional": true, 523 | "requires": { 524 | "debug": "2.6.9", 525 | "iconv-lite": "0.4.21", 526 | "sax": "1.2.4" 527 | } 528 | }, 529 | "node-pre-gyp": { 530 | "version": "0.10.0", 531 | "bundled": true, 532 | "dev": true, 533 | "optional": true, 534 | "requires": { 535 | "detect-libc": "1.0.3", 536 | "mkdirp": "0.5.1", 537 | "needle": "2.2.0", 538 | "nopt": "4.0.1", 539 | "npm-packlist": "1.1.10", 540 | "npmlog": "4.1.2", 541 | "rc": "1.2.7", 542 | "rimraf": "2.6.2", 543 | "semver": "5.5.0", 544 | "tar": "4.4.1" 545 | } 546 | }, 547 | "nopt": { 548 | "version": "4.0.1", 549 | "bundled": true, 550 | "dev": true, 551 | "optional": true, 552 | "requires": { 553 | "abbrev": "1.1.1", 554 | "osenv": "0.1.5" 555 | } 556 | }, 557 | "npm-bundled": { 558 | "version": "1.0.3", 559 | "bundled": true, 560 | "dev": true, 561 | "optional": true 562 | }, 563 | "npm-packlist": { 564 | "version": "1.1.10", 565 | "bundled": true, 566 | "dev": true, 567 | "optional": true, 568 | "requires": { 569 | "ignore-walk": "3.0.1", 570 | "npm-bundled": "1.0.3" 571 | } 572 | }, 573 | "npmlog": { 574 | "version": "4.1.2", 575 | "bundled": true, 576 | "dev": true, 577 | "optional": true, 578 | "requires": { 579 | "are-we-there-yet": "1.1.4", 580 | "console-control-strings": "1.1.0", 581 | "gauge": "2.7.4", 582 | "set-blocking": "2.0.0" 583 | } 584 | }, 585 | "number-is-nan": { 586 | "version": "1.0.1", 587 | "bundled": true, 588 | "dev": true 589 | }, 590 | "object-assign": { 591 | "version": "4.1.1", 592 | "bundled": true, 593 | "dev": true, 594 | "optional": true 595 | }, 596 | "once": { 597 | "version": "1.4.0", 598 | "bundled": true, 599 | "dev": true, 600 | "requires": { 601 | "wrappy": "1.0.2" 602 | } 603 | }, 604 | "os-homedir": { 605 | "version": "1.0.2", 606 | "bundled": true, 607 | "dev": true, 608 | "optional": true 609 | }, 610 | "os-tmpdir": { 611 | "version": "1.0.2", 612 | "bundled": true, 613 | "dev": true, 614 | "optional": true 615 | }, 616 | "osenv": { 617 | "version": "0.1.5", 618 | "bundled": true, 619 | "dev": true, 620 | "optional": true, 621 | "requires": { 622 | "os-homedir": "1.0.2", 623 | "os-tmpdir": "1.0.2" 624 | } 625 | }, 626 | "path-is-absolute": { 627 | "version": "1.0.1", 628 | "bundled": true, 629 | "dev": true, 630 | "optional": true 631 | }, 632 | "process-nextick-args": { 633 | "version": "2.0.0", 634 | "bundled": true, 635 | "dev": true, 636 | "optional": true 637 | }, 638 | "rc": { 639 | "version": "1.2.7", 640 | "bundled": true, 641 | "dev": true, 642 | "optional": true, 643 | "requires": { 644 | "deep-extend": "0.5.1", 645 | "ini": "1.3.5", 646 | "minimist": "1.2.0", 647 | "strip-json-comments": "2.0.1" 648 | }, 649 | "dependencies": { 650 | "minimist": { 651 | "version": "1.2.0", 652 | "bundled": true, 653 | "dev": true, 654 | "optional": true 655 | } 656 | } 657 | }, 658 | "readable-stream": { 659 | "version": "2.3.6", 660 | "bundled": true, 661 | "dev": true, 662 | "optional": true, 663 | "requires": { 664 | "core-util-is": "1.0.2", 665 | "inherits": "2.0.3", 666 | "isarray": "1.0.0", 667 | "process-nextick-args": "2.0.0", 668 | "safe-buffer": "5.1.1", 669 | "string_decoder": "1.1.1", 670 | "util-deprecate": "1.0.2" 671 | } 672 | }, 673 | "rimraf": { 674 | "version": "2.6.2", 675 | "bundled": true, 676 | "dev": true, 677 | "optional": true, 678 | "requires": { 679 | "glob": "7.1.2" 680 | } 681 | }, 682 | "safe-buffer": { 683 | "version": "5.1.1", 684 | "bundled": true, 685 | "dev": true 686 | }, 687 | "safer-buffer": { 688 | "version": "2.1.2", 689 | "bundled": true, 690 | "dev": true, 691 | "optional": true 692 | }, 693 | "sax": { 694 | "version": "1.2.4", 695 | "bundled": true, 696 | "dev": true, 697 | "optional": true 698 | }, 699 | "semver": { 700 | "version": "5.5.0", 701 | "bundled": true, 702 | "dev": true, 703 | "optional": true 704 | }, 705 | "set-blocking": { 706 | "version": "2.0.0", 707 | "bundled": true, 708 | "dev": true, 709 | "optional": true 710 | }, 711 | "signal-exit": { 712 | "version": "3.0.2", 713 | "bundled": true, 714 | "dev": true, 715 | "optional": true 716 | }, 717 | "string-width": { 718 | "version": "1.0.2", 719 | "bundled": true, 720 | "dev": true, 721 | "requires": { 722 | "code-point-at": "1.1.0", 723 | "is-fullwidth-code-point": "1.0.0", 724 | "strip-ansi": "3.0.1" 725 | } 726 | }, 727 | "string_decoder": { 728 | "version": "1.1.1", 729 | "bundled": true, 730 | "dev": true, 731 | "optional": true, 732 | "requires": { 733 | "safe-buffer": "5.1.1" 734 | } 735 | }, 736 | "strip-ansi": { 737 | "version": "3.0.1", 738 | "bundled": true, 739 | "dev": true, 740 | "requires": { 741 | "ansi-regex": "2.1.1" 742 | } 743 | }, 744 | "strip-json-comments": { 745 | "version": "2.0.1", 746 | "bundled": true, 747 | "dev": true, 748 | "optional": true 749 | }, 750 | "tar": { 751 | "version": "4.4.1", 752 | "bundled": true, 753 | "dev": true, 754 | "optional": true, 755 | "requires": { 756 | "chownr": "1.0.1", 757 | "fs-minipass": "1.2.5", 758 | "minipass": "2.2.4", 759 | "minizlib": "1.1.0", 760 | "mkdirp": "0.5.1", 761 | "safe-buffer": "5.1.1", 762 | "yallist": "3.0.2" 763 | } 764 | }, 765 | "util-deprecate": { 766 | "version": "1.0.2", 767 | "bundled": true, 768 | "dev": true, 769 | "optional": true 770 | }, 771 | "wide-align": { 772 | "version": "1.1.2", 773 | "bundled": true, 774 | "dev": true, 775 | "optional": true, 776 | "requires": { 777 | "string-width": "1.0.2" 778 | } 779 | }, 780 | "wrappy": { 781 | "version": "1.0.2", 782 | "bundled": true, 783 | "dev": true 784 | }, 785 | "yallist": { 786 | "version": "3.0.2", 787 | "bundled": true, 788 | "dev": true 789 | } 790 | } 791 | }, 792 | "glob": { 793 | "version": "7.1.2", 794 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 795 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 796 | "dev": true, 797 | "requires": { 798 | "fs.realpath": "1.0.0", 799 | "inflight": "1.0.6", 800 | "inherits": "2.0.3", 801 | "minimatch": "3.0.4", 802 | "once": "1.4.0", 803 | "path-is-absolute": "1.0.1" 804 | } 805 | }, 806 | "glob-base": { 807 | "version": "0.3.0", 808 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 809 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 810 | "dev": true, 811 | "requires": { 812 | "glob-parent": "2.0.0", 813 | "is-glob": "2.0.1" 814 | } 815 | }, 816 | "glob-parent": { 817 | "version": "2.0.0", 818 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 819 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 820 | "dev": true, 821 | "requires": { 822 | "is-glob": "2.0.1" 823 | } 824 | }, 825 | "graceful-fs": { 826 | "version": "4.1.11", 827 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 828 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 829 | "dev": true 830 | }, 831 | "inflight": { 832 | "version": "1.0.6", 833 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 834 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 835 | "dev": true, 836 | "requires": { 837 | "once": "1.4.0", 838 | "wrappy": "1.0.2" 839 | } 840 | }, 841 | "inherits": { 842 | "version": "2.0.3", 843 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 844 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 845 | "dev": true 846 | }, 847 | "is-binary-path": { 848 | "version": "1.0.1", 849 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 850 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 851 | "dev": true, 852 | "requires": { 853 | "binary-extensions": "1.11.0" 854 | } 855 | }, 856 | "is-buffer": { 857 | "version": "1.1.6", 858 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 859 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 860 | "dev": true 861 | }, 862 | "is-dotfile": { 863 | "version": "1.0.3", 864 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 865 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 866 | "dev": true 867 | }, 868 | "is-equal-shallow": { 869 | "version": "0.1.3", 870 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 871 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 872 | "dev": true, 873 | "requires": { 874 | "is-primitive": "2.0.0" 875 | } 876 | }, 877 | "is-extendable": { 878 | "version": "0.1.1", 879 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 880 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 881 | "dev": true 882 | }, 883 | "is-extglob": { 884 | "version": "1.0.0", 885 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 886 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 887 | "dev": true 888 | }, 889 | "is-glob": { 890 | "version": "2.0.1", 891 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 892 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 893 | "dev": true, 894 | "requires": { 895 | "is-extglob": "1.0.0" 896 | } 897 | }, 898 | "is-number": { 899 | "version": "2.1.0", 900 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 901 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 902 | "dev": true, 903 | "requires": { 904 | "kind-of": "3.2.2" 905 | } 906 | }, 907 | "is-posix-bracket": { 908 | "version": "0.1.1", 909 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 910 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 911 | "dev": true 912 | }, 913 | "is-primitive": { 914 | "version": "2.0.0", 915 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 916 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 917 | "dev": true 918 | }, 919 | "isarray": { 920 | "version": "1.0.0", 921 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 922 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 923 | "dev": true 924 | }, 925 | "isobject": { 926 | "version": "2.1.0", 927 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 928 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 929 | "dev": true, 930 | "requires": { 931 | "isarray": "1.0.0" 932 | } 933 | }, 934 | "js-tokens": { 935 | "version": "3.0.2", 936 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 937 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 938 | "dev": true 939 | }, 940 | "kind-of": { 941 | "version": "3.2.2", 942 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 943 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 944 | "dev": true, 945 | "requires": { 946 | "is-buffer": "1.1.6" 947 | } 948 | }, 949 | "loose-envify": { 950 | "version": "1.3.1", 951 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 952 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 953 | "dev": true, 954 | "requires": { 955 | "js-tokens": "3.0.2" 956 | } 957 | }, 958 | "math-random": { 959 | "version": "1.0.1", 960 | "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", 961 | "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", 962 | "dev": true 963 | }, 964 | "micromatch": { 965 | "version": "2.3.11", 966 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 967 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 968 | "dev": true, 969 | "requires": { 970 | "arr-diff": "2.0.0", 971 | "array-unique": "0.2.1", 972 | "braces": "1.8.5", 973 | "expand-brackets": "0.1.5", 974 | "extglob": "0.3.2", 975 | "filename-regex": "2.0.1", 976 | "is-extglob": "1.0.0", 977 | "is-glob": "2.0.1", 978 | "kind-of": "3.2.2", 979 | "normalize-path": "2.1.1", 980 | "object.omit": "2.0.1", 981 | "parse-glob": "3.0.4", 982 | "regex-cache": "0.4.4" 983 | } 984 | }, 985 | "minimatch": { 986 | "version": "3.0.4", 987 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 988 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 989 | "dev": true, 990 | "requires": { 991 | "brace-expansion": "1.1.8" 992 | } 993 | }, 994 | "minimist": { 995 | "version": "1.2.0", 996 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 997 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 998 | "dev": true 999 | }, 1000 | "mkdirp": { 1001 | "version": "0.5.1", 1002 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1003 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1004 | "dev": true, 1005 | "requires": { 1006 | "minimist": "0.0.8" 1007 | }, 1008 | "dependencies": { 1009 | "minimist": { 1010 | "version": "0.0.8", 1011 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1012 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1013 | "dev": true 1014 | } 1015 | } 1016 | }, 1017 | "nan": { 1018 | "version": "2.10.0", 1019 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", 1020 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", 1021 | "dev": true, 1022 | "optional": true 1023 | }, 1024 | "normalize-path": { 1025 | "version": "2.1.1", 1026 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 1027 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1028 | "dev": true, 1029 | "requires": { 1030 | "remove-trailing-separator": "1.1.0" 1031 | } 1032 | }, 1033 | "object.omit": { 1034 | "version": "2.0.1", 1035 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 1036 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1037 | "dev": true, 1038 | "requires": { 1039 | "for-own": "0.1.5", 1040 | "is-extendable": "0.1.1" 1041 | } 1042 | }, 1043 | "once": { 1044 | "version": "1.4.0", 1045 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1046 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1047 | "dev": true, 1048 | "requires": { 1049 | "wrappy": "1.0.2" 1050 | } 1051 | }, 1052 | "parse-glob": { 1053 | "version": "3.0.4", 1054 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 1055 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1056 | "dev": true, 1057 | "requires": { 1058 | "glob-base": "0.3.0", 1059 | "is-dotfile": "1.0.3", 1060 | "is-extglob": "1.0.0", 1061 | "is-glob": "2.0.1" 1062 | } 1063 | }, 1064 | "path-is-absolute": { 1065 | "version": "1.0.1", 1066 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1067 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1068 | "dev": true 1069 | }, 1070 | "preserve": { 1071 | "version": "0.2.0", 1072 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 1073 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 1074 | "dev": true 1075 | }, 1076 | "process-nextick-args": { 1077 | "version": "2.0.0", 1078 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 1079 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 1080 | "dev": true 1081 | }, 1082 | "randomatic": { 1083 | "version": "3.0.0", 1084 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", 1085 | "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", 1086 | "dev": true, 1087 | "requires": { 1088 | "is-number": "4.0.0", 1089 | "kind-of": "6.0.2", 1090 | "math-random": "1.0.1" 1091 | }, 1092 | "dependencies": { 1093 | "is-number": { 1094 | "version": "4.0.0", 1095 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", 1096 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", 1097 | "dev": true 1098 | }, 1099 | "kind-of": { 1100 | "version": "6.0.2", 1101 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", 1102 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", 1103 | "dev": true 1104 | } 1105 | } 1106 | }, 1107 | "readable-stream": { 1108 | "version": "2.3.6", 1109 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1110 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1111 | "dev": true, 1112 | "requires": { 1113 | "core-util-is": "1.0.2", 1114 | "inherits": "2.0.3", 1115 | "isarray": "1.0.0", 1116 | "process-nextick-args": "2.0.0", 1117 | "safe-buffer": "5.1.2", 1118 | "string_decoder": "1.1.1", 1119 | "util-deprecate": "1.0.2" 1120 | } 1121 | }, 1122 | "readdirp": { 1123 | "version": "2.1.0", 1124 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 1125 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 1126 | "dev": true, 1127 | "requires": { 1128 | "graceful-fs": "4.1.11", 1129 | "minimatch": "3.0.4", 1130 | "readable-stream": "2.3.6", 1131 | "set-immediate-shim": "1.0.1" 1132 | } 1133 | }, 1134 | "redux": { 1135 | "version": "4.0.0", 1136 | "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz", 1137 | "integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==", 1138 | "dev": true, 1139 | "requires": { 1140 | "loose-envify": "1.3.1", 1141 | "symbol-observable": "1.2.0" 1142 | } 1143 | }, 1144 | "reflect-metadata": { 1145 | "version": "0.1.12", 1146 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", 1147 | "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", 1148 | "dev": true 1149 | }, 1150 | "regex-cache": { 1151 | "version": "0.4.4", 1152 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 1153 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 1154 | "dev": true, 1155 | "requires": { 1156 | "is-equal-shallow": "0.1.3" 1157 | } 1158 | }, 1159 | "remove-trailing-separator": { 1160 | "version": "1.1.0", 1161 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 1162 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 1163 | "dev": true 1164 | }, 1165 | "repeat-element": { 1166 | "version": "1.1.2", 1167 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 1168 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 1169 | "dev": true 1170 | }, 1171 | "repeat-string": { 1172 | "version": "1.6.1", 1173 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1174 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 1175 | "dev": true 1176 | }, 1177 | "rimraf": { 1178 | "version": "2.6.1", 1179 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 1180 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 1181 | "dev": true, 1182 | "requires": { 1183 | "glob": "7.1.2" 1184 | } 1185 | }, 1186 | "rxjs": { 1187 | "version": "6.2.0", 1188 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.0.tgz", 1189 | "integrity": "sha512-qBzf5uu6eOKiCZuAE0SgZ0/Qp+l54oeVxFfC2t+mJ2SFI6IB8gmMdJHs5DUMu5kqifqcCtsKS2XHjhZu6RKvAw==", 1190 | "dev": true, 1191 | "requires": { 1192 | "tslib": "1.9.1" 1193 | } 1194 | }, 1195 | "safe-buffer": { 1196 | "version": "5.1.2", 1197 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1198 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1199 | "dev": true 1200 | }, 1201 | "set-immediate-shim": { 1202 | "version": "1.0.1", 1203 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 1204 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 1205 | "dev": true 1206 | }, 1207 | "source-map": { 1208 | "version": "0.6.1", 1209 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1210 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1211 | "dev": true 1212 | }, 1213 | "source-map-support": { 1214 | "version": "0.5.6", 1215 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", 1216 | "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", 1217 | "dev": true, 1218 | "requires": { 1219 | "buffer-from": "1.0.0", 1220 | "source-map": "0.6.1" 1221 | } 1222 | }, 1223 | "string_decoder": { 1224 | "version": "1.1.1", 1225 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1226 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1227 | "dev": true, 1228 | "requires": { 1229 | "safe-buffer": "5.1.2" 1230 | } 1231 | }, 1232 | "symbol-observable": { 1233 | "version": "1.2.0", 1234 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", 1235 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", 1236 | "dev": true 1237 | }, 1238 | "tsickle": { 1239 | "version": "0.27.5", 1240 | "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.5.tgz", 1241 | "integrity": "sha512-NP+CjM1EXza/M8mOXBLH3vkFEJiu1zfEAlC5WdJxHPn8l96QPz5eooP6uAgYtw1CcKfuSyIiheNUdKxtDWCNeg==", 1242 | "dev": true, 1243 | "requires": { 1244 | "minimist": "1.2.0", 1245 | "mkdirp": "0.5.1", 1246 | "source-map": "0.6.1", 1247 | "source-map-support": "0.5.6" 1248 | } 1249 | }, 1250 | "tslib": { 1251 | "version": "1.9.1", 1252 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", 1253 | "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", 1254 | "dev": true 1255 | }, 1256 | "typescript": { 1257 | "version": "2.7.2", 1258 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", 1259 | "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", 1260 | "dev": true 1261 | }, 1262 | "util-deprecate": { 1263 | "version": "1.0.2", 1264 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1265 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1266 | "dev": true 1267 | }, 1268 | "wrappy": { 1269 | "version": "1.0.2", 1270 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1271 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1272 | "dev": true 1273 | }, 1274 | "zone.js": { 1275 | "version": "0.8.26", 1276 | "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", 1277 | "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==", 1278 | "dev": true 1279 | } 1280 | } 1281 | } 1282 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@angular-redux/router", 3 | "version": "9.0.0", 4 | "description": "Keep your Angular 2+ router state in Redux.", 5 | "main": "./lib/es5/src/index.js", 6 | "module": "./lib/esm/src/index.js", 7 | "typings": "./lib/es5/src/index.d.ts", 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/angular-redux/router.git" 11 | }, 12 | "scripts": { 13 | "prepublish": "npm run build", 14 | "build": "rimraf ./lib && npm run build:es5 && npm run build:esm && npm run build:es6", 15 | "postbuild": "rimraf \"src/**/*.ngfactory.ts\"", 16 | "build:es6": "ngc -p tsconfig.es6.json && npm run postbuild", 17 | "build:esm": "ngc -p tsconfig.esm.json && npm run postbuild", 18 | "build:es5": "ngc -p tsconfig.json && npm run postbuild" 19 | }, 20 | "peerDependencies": { 21 | "@angular/core": "^6.0.3", 22 | "@angular/router": "^6.0.3" 23 | }, 24 | "devDependencies": { 25 | "@angular-redux/store": "^9.0.0", 26 | "@angular/common": "^6.0.3", 27 | "@angular/compiler": "^6.0.3", 28 | "@angular/compiler-cli": "^6.0.3", 29 | "@angular/core": "^6.0.3", 30 | "@angular/platform-browser": "^6.0.3", 31 | "@angular/platform-browser-dynamic": "^6.0.3", 32 | "@angular/router": "^6.0.3", 33 | "@types/core-js": "^0.9.39", 34 | "@types/jasmine": "^2.5.37", 35 | "redux": "^4.0.0", 36 | "rimraf": "^2.5.4", 37 | "rxjs": "^6.1.0", 38 | "typescript": "2.7.2", 39 | "zone.js": "^0.8.26" 40 | }, 41 | "author": "Dag Stuan", 42 | "license": "MIT" 43 | } 44 | -------------------------------------------------------------------------------- /src/actions.ts: -------------------------------------------------------------------------------- 1 | export const UPDATE_LOCATION: string = "@angular-redux/router::UPDATE_LOCATION"; 2 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { ModuleWithProviders } from '@angular/core'; 2 | import { NgModule } from '@angular/core'; 3 | import { NgReduxRouter } from './router'; 4 | import { RouterAction, routerReducer } from './reducer'; 5 | import { UPDATE_LOCATION } from './actions'; 6 | 7 | @NgModule() 8 | export class NgReduxRouterModule { 9 | static forRoot(): ModuleWithProviders { 10 | return { 11 | ngModule: NgReduxRouterModule, 12 | providers: [NgReduxRouter] 13 | }; 14 | } 15 | } 16 | 17 | export { NgReduxRouter, RouterAction, routerReducer, UPDATE_LOCATION }; 18 | -------------------------------------------------------------------------------- /src/reducer.ts: -------------------------------------------------------------------------------- 1 | import { Action } from 'redux'; 2 | 3 | import { UPDATE_LOCATION } from './actions'; 4 | 5 | export const DefaultRouterState: string = ''; 6 | 7 | export interface RouterAction extends Action { 8 | payload?: string 9 | } 10 | 11 | export function routerReducer(state: string = DefaultRouterState, action: RouterAction): string { 12 | switch (action.type) { 13 | case UPDATE_LOCATION: 14 | return action.payload || DefaultRouterState; 15 | default: 16 | return state; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/router.ts: -------------------------------------------------------------------------------- 1 | import { map, filter, distinctUntilChanged } from 'rxjs/operators'; 2 | import { Injectable, ApplicationRef } from '@angular/core'; 3 | import { Location } from '@angular/common'; 4 | import { 5 | Router, 6 | NavigationEnd, 7 | NavigationCancel, 8 | DefaultUrlSerializer 9 | } from '@angular/router'; 10 | import { NgRedux } from '@angular-redux/store'; 11 | import { Observable, Subscription } from 'rxjs'; 12 | import { UPDATE_LOCATION } from './actions'; 13 | import { RouterAction, DefaultRouterState } from './reducer'; 14 | 15 | @Injectable() 16 | export class NgReduxRouter { 17 | private initialized = false; 18 | private currentLocation?: string; 19 | private initialLocation?: string; 20 | 21 | private selectLocationFromState: (state: any) => string = state => 22 | state.router; 23 | private urlState?: Observable; 24 | 25 | private urlStateSubscription?: Subscription; 26 | private reduxSubscription?: Subscription; 27 | 28 | constructor( 29 | private router: Router, 30 | private ngRedux: NgRedux, 31 | private applicationRef: ApplicationRef, 32 | private location: Location 33 | ) {} 34 | 35 | /** 36 | * Destroys the bindings between @angular-redux/router and @angular/router. 37 | * This method unsubscribes from both @angular-redux/router and @angular router, in case 38 | * your app needs to tear down the bindings without destroying Angular or Redux 39 | * at the same time. 40 | */ 41 | destroy() { 42 | if (this.urlStateSubscription) { 43 | this.urlStateSubscription.unsubscribe(); 44 | } 45 | 46 | if (this.reduxSubscription) { 47 | this.reduxSubscription.unsubscribe(); 48 | } 49 | 50 | this.initialized = false; 51 | } 52 | 53 | /** 54 | * Initialize the bindings between @angular-redux/router and @angular/router 55 | * 56 | * This should only be called once for the lifetime of your app, for 57 | * example in the constructor of your root component. 58 | * 59 | * 60 | * @param {(state: any) => string} selectLocationFromState Optional: If your 61 | * router state is in a custom location, supply this argument to tell the 62 | * bindings where to find the router location in the state. 63 | * @param {Observable} urlState$ Optional: If you have a custom setup 64 | * when listening to router changes, or use a different router than @angular/router 65 | * you can supply this argument as an Observable of the current url state. 66 | */ 67 | initialize( 68 | selectLocationFromState: (state: any) => string = state => state.router, 69 | urlState$: Observable | undefined = undefined 70 | ) { 71 | if (this.initialized) { 72 | throw new Error( 73 | '@angular-redux/router already initialized! If you meant to re-initialize, call destroy first.' 74 | ); 75 | } 76 | 77 | this.selectLocationFromState = selectLocationFromState; 78 | 79 | this.urlState = urlState$ || this.getDefaultUrlStateObservable(); 80 | 81 | this.listenToRouterChanges(); 82 | this.listenToReduxChanges(); 83 | this.initialized = true; 84 | } 85 | 86 | private getDefaultUrlStateObservable() { 87 | return this.router.events.pipe( 88 | filter(event => event instanceof NavigationEnd), 89 | map(event => this.location.path()), 90 | distinctUntilChanged() 91 | ); 92 | } 93 | 94 | private getLocationFromStore(useInitial: boolean = false) { 95 | return ( 96 | this.selectLocationFromState(this.ngRedux.getState()) || 97 | (useInitial ? this.initialLocation : '') 98 | ); 99 | } 100 | 101 | private listenToRouterChanges() { 102 | const handleLocationChange = (location: string) => { 103 | if (this.currentLocation === location) { 104 | // Dont dispatch changes if we haven't changed location. 105 | return; 106 | } 107 | 108 | this.currentLocation = location; 109 | if (this.initialLocation === undefined) { 110 | this.initialLocation = location; 111 | 112 | // Fetch initial location from store and make sure 113 | // we dont dispath an event if the current url equals 114 | // the initial url. 115 | let locationFromStore = this.getLocationFromStore(); 116 | if (locationFromStore === this.currentLocation) { 117 | return; 118 | } 119 | } 120 | 121 | this.ngRedux.dispatch({ 122 | type: UPDATE_LOCATION, 123 | payload: location 124 | }); 125 | }; 126 | 127 | if (this.urlState) { 128 | this.urlStateSubscription = this.urlState.subscribe(handleLocationChange); 129 | } 130 | } 131 | 132 | private listenToReduxChanges() { 133 | const handleLocationChange = (location: string) => { 134 | if (this.initialLocation === undefined) { 135 | // Wait for router to set initial location. 136 | return; 137 | } 138 | 139 | let locationInStore = this.getLocationFromStore(true); 140 | if (this.currentLocation === locationInStore) { 141 | // Dont change router location if its equal to the one in the store. 142 | return; 143 | } 144 | 145 | this.currentLocation = location; 146 | this.router.navigateByUrl(location); 147 | }; 148 | 149 | this.reduxSubscription = this.ngRedux 150 | .select(state => this.selectLocationFromState(state)) 151 | .pipe(distinctUntilChanged()) 152 | .subscribe(handleLocationChange); 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /tsconfig.es6.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "buildOnSave": false, 4 | "compilerOptions": { 5 | "outDir": "./lib/es6", 6 | "target": "es6", 7 | "module": "es6", 8 | "moduleResolution": "node", 9 | "sourceMap": true, 10 | "emitDecoratorMetadata": true, 11 | "experimentalDecorators": true, 12 | "removeComments": false, 13 | "declaration": true, 14 | "lib": ["es2015", "es2015.iterable", "dom"], 15 | "skipLibCheck": true 16 | }, 17 | "exclude": ["lib", "node_modules", "spec", "release", "examples"], 18 | "angularCompilerOptions": { 19 | "generateCodeForLibraries": false, 20 | "strictMetadataEmit": true, 21 | "genDir": ".compiled", 22 | "annotationsAs": "decorators" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "buildOnSave": false, 4 | "compilerOptions": { 5 | "outDir": "./lib/esm", 6 | "target": "es5", 7 | "module": "es2015", 8 | "moduleResolution": "node", 9 | "sourceMap": true, 10 | "emitDecoratorMetadata": true, 11 | "experimentalDecorators": true, 12 | "removeComments": false, 13 | "declaration": true, 14 | "lib": ["es2015", "es2015.iterable", "dom"], 15 | "skipLibCheck": true 16 | }, 17 | "exclude": ["lib", "node_modules", "spec", "release", "examples"], 18 | "angularCompilerOptions": { 19 | "generateCodeForLibraries": false, 20 | "strictMetadataEmit": true, 21 | "genDir": ".compiled", 22 | "annotationsAs": "decorators" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "buildOnSave": false, 4 | "compilerOptions": { 5 | "outDir": "./lib/es5", 6 | "target": "es5", 7 | "module": "commonjs", 8 | "moduleResolution": "node", 9 | "sourceMap": true, 10 | "emitDecoratorMetadata": true, 11 | "experimentalDecorators": true, 12 | "removeComments": false, 13 | "declaration": true, 14 | "lib": ["es2015", "es2015.iterable", "dom"], 15 | "strict": true, 16 | "skipLibCheck": true 17 | }, 18 | "exclude": ["lib", "node_modules", "spec", "release", "examples"], 19 | "angularCompilerOptions": { 20 | "generateCodeForLibraries": true, 21 | "strictMetadataEmit": true, 22 | "genDir": ".compiled", 23 | "annotationsAs": "decorators" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@angular-redux/store@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@angular-redux/store/-/store-7.0.0.tgz#06b4f5a7a6f99996f89bf0cf84a4f5a9a80a817e" 8 | 9 | "@angular/common@^5.0.0": 10 | version "5.0.3" 11 | resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.0.3.tgz#9b0b874e0c8cb088d7c7de2af72c2c3f3ebd00bb" 12 | dependencies: 13 | tslib "^1.7.1" 14 | 15 | "@angular/compiler-cli@^5.0.0": 16 | version "5.0.3" 17 | resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.0.3.tgz#820fe95f5653c1418ad9ac9ca9e819a879cce4ae" 18 | dependencies: 19 | chokidar "^1.4.2" 20 | minimist "^1.2.0" 21 | reflect-metadata "^0.1.2" 22 | tsickle "^0.24.0" 23 | 24 | "@angular/compiler@^5.0.0": 25 | version "5.0.3" 26 | resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.0.3.tgz#45817c9a32b1b103c0307b0f55660f530f4a06aa" 27 | dependencies: 28 | tslib "^1.7.1" 29 | 30 | "@angular/core@^5.0.0": 31 | version "5.0.3" 32 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.0.3.tgz#2566400f6713bf1c39f7e00bc03a63280a87e66b" 33 | dependencies: 34 | tslib "^1.7.1" 35 | 36 | "@angular/platform-browser-dynamic@^5.0.0": 37 | version "5.0.3" 38 | resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.0.3.tgz#be6dcf03a04fa51c6a0484b40e5f1a7d7e54cc87" 39 | dependencies: 40 | tslib "^1.7.1" 41 | 42 | "@angular/platform-browser@^5.0.0": 43 | version "5.0.3" 44 | resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.0.3.tgz#4ac872404a2a8162dd28a5b164238b76bf5e1261" 45 | dependencies: 46 | tslib "^1.7.1" 47 | 48 | "@angular/router@^5.0.0": 49 | version "5.0.3" 50 | resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.0.3.tgz#616cc6a7ae33575b54e613b70af5c7f291c8cd1e" 51 | dependencies: 52 | tslib "^1.7.1" 53 | 54 | "@types/core-js@^0.9.39": 55 | version "0.9.43" 56 | resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.43.tgz#65d646c5e8c0cd1bdee37065799f9d3d48748253" 57 | 58 | "@types/jasmine@^2.5.37": 59 | version "2.8.2" 60 | resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.2.tgz#6ae4d8740c0da5d5a627df725b4eed71b8e36668" 61 | 62 | abbrev@1: 63 | version "1.1.1" 64 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 65 | 66 | ajv@^4.9.1: 67 | version "4.11.8" 68 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 69 | dependencies: 70 | co "^4.6.0" 71 | json-stable-stringify "^1.0.1" 72 | 73 | ansi-regex@^2.0.0: 74 | version "2.1.1" 75 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 76 | 77 | anymatch@^1.3.0: 78 | version "1.3.2" 79 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 80 | dependencies: 81 | micromatch "^2.1.5" 82 | normalize-path "^2.0.0" 83 | 84 | aproba@^1.0.3: 85 | version "1.2.0" 86 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 87 | 88 | are-we-there-yet@~1.1.2: 89 | version "1.1.4" 90 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 91 | dependencies: 92 | delegates "^1.0.0" 93 | readable-stream "^2.0.6" 94 | 95 | arr-diff@^2.0.0: 96 | version "2.0.0" 97 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 98 | dependencies: 99 | arr-flatten "^1.0.1" 100 | 101 | arr-flatten@^1.0.1: 102 | version "1.1.0" 103 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 104 | 105 | array-unique@^0.2.1: 106 | version "0.2.1" 107 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 108 | 109 | asn1@~0.2.3: 110 | version "0.2.3" 111 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 112 | 113 | assert-plus@1.0.0, assert-plus@^1.0.0: 114 | version "1.0.0" 115 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 116 | 117 | assert-plus@^0.2.0: 118 | version "0.2.0" 119 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 120 | 121 | async-each@^1.0.0: 122 | version "1.0.1" 123 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 124 | 125 | asynckit@^0.4.0: 126 | version "0.4.0" 127 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 128 | 129 | aws-sign2@~0.6.0: 130 | version "0.6.0" 131 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 132 | 133 | aws4@^1.2.1: 134 | version "1.6.0" 135 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 136 | 137 | balanced-match@^1.0.0: 138 | version "1.0.0" 139 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 140 | 141 | bcrypt-pbkdf@^1.0.0: 142 | version "1.0.1" 143 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 144 | dependencies: 145 | tweetnacl "^0.14.3" 146 | 147 | binary-extensions@^1.0.0: 148 | version "1.11.0" 149 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 150 | 151 | block-stream@*: 152 | version "0.0.9" 153 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 154 | dependencies: 155 | inherits "~2.0.0" 156 | 157 | boom@2.x.x: 158 | version "2.10.1" 159 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 160 | dependencies: 161 | hoek "2.x.x" 162 | 163 | brace-expansion@^1.1.7: 164 | version "1.1.8" 165 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 166 | dependencies: 167 | balanced-match "^1.0.0" 168 | concat-map "0.0.1" 169 | 170 | braces@^1.8.2: 171 | version "1.8.5" 172 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 173 | dependencies: 174 | expand-range "^1.8.1" 175 | preserve "^0.2.0" 176 | repeat-element "^1.1.2" 177 | 178 | caseless@~0.12.0: 179 | version "0.12.0" 180 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 181 | 182 | chokidar@^1.4.2: 183 | version "1.7.0" 184 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 185 | dependencies: 186 | anymatch "^1.3.0" 187 | async-each "^1.0.0" 188 | glob-parent "^2.0.0" 189 | inherits "^2.0.1" 190 | is-binary-path "^1.0.0" 191 | is-glob "^2.0.0" 192 | path-is-absolute "^1.0.0" 193 | readdirp "^2.0.0" 194 | optionalDependencies: 195 | fsevents "^1.0.0" 196 | 197 | co@^4.6.0: 198 | version "4.6.0" 199 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 200 | 201 | code-point-at@^1.0.0: 202 | version "1.1.0" 203 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 204 | 205 | combined-stream@^1.0.5, combined-stream@~1.0.5: 206 | version "1.0.5" 207 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 208 | dependencies: 209 | delayed-stream "~1.0.0" 210 | 211 | concat-map@0.0.1: 212 | version "0.0.1" 213 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 214 | 215 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 216 | version "1.1.0" 217 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 218 | 219 | core-util-is@1.0.2, core-util-is@~1.0.0: 220 | version "1.0.2" 221 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 222 | 223 | cryptiles@2.x.x: 224 | version "2.0.5" 225 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 226 | dependencies: 227 | boom "2.x.x" 228 | 229 | dashdash@^1.12.0: 230 | version "1.14.1" 231 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 232 | dependencies: 233 | assert-plus "^1.0.0" 234 | 235 | debug@^2.2.0: 236 | version "2.6.9" 237 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 238 | dependencies: 239 | ms "2.0.0" 240 | 241 | deep-extend@~0.4.0: 242 | version "0.4.2" 243 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 244 | 245 | delayed-stream@~1.0.0: 246 | version "1.0.0" 247 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 248 | 249 | delegates@^1.0.0: 250 | version "1.0.0" 251 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 252 | 253 | detect-libc@^1.0.2: 254 | version "1.0.3" 255 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 256 | 257 | ecc-jsbn@~0.1.1: 258 | version "0.1.1" 259 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 260 | dependencies: 261 | jsbn "~0.1.0" 262 | 263 | expand-brackets@^0.1.4: 264 | version "0.1.5" 265 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 266 | dependencies: 267 | is-posix-bracket "^0.1.0" 268 | 269 | expand-range@^1.8.1: 270 | version "1.8.2" 271 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 272 | dependencies: 273 | fill-range "^2.1.0" 274 | 275 | extend@~3.0.0: 276 | version "3.0.1" 277 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 278 | 279 | extglob@^0.3.1: 280 | version "0.3.2" 281 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 282 | dependencies: 283 | is-extglob "^1.0.0" 284 | 285 | extsprintf@1.3.0, extsprintf@^1.2.0: 286 | version "1.3.0" 287 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 288 | 289 | filename-regex@^2.0.0: 290 | version "2.0.1" 291 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 292 | 293 | fill-range@^2.1.0: 294 | version "2.2.3" 295 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 296 | dependencies: 297 | is-number "^2.1.0" 298 | isobject "^2.0.0" 299 | randomatic "^1.1.3" 300 | repeat-element "^1.1.2" 301 | repeat-string "^1.5.2" 302 | 303 | for-in@^1.0.1: 304 | version "1.0.2" 305 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 306 | 307 | for-own@^0.1.4: 308 | version "0.1.5" 309 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 310 | dependencies: 311 | for-in "^1.0.1" 312 | 313 | forever-agent@~0.6.1: 314 | version "0.6.1" 315 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 316 | 317 | form-data@~2.1.1: 318 | version "2.1.4" 319 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 320 | dependencies: 321 | asynckit "^0.4.0" 322 | combined-stream "^1.0.5" 323 | mime-types "^2.1.12" 324 | 325 | fs.realpath@^1.0.0: 326 | version "1.0.0" 327 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 328 | 329 | fsevents@^1.0.0: 330 | version "1.1.3" 331 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" 332 | dependencies: 333 | nan "^2.3.0" 334 | node-pre-gyp "^0.6.39" 335 | 336 | fstream-ignore@^1.0.5: 337 | version "1.0.5" 338 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 339 | dependencies: 340 | fstream "^1.0.0" 341 | inherits "2" 342 | minimatch "^3.0.0" 343 | 344 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 345 | version "1.0.11" 346 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 347 | dependencies: 348 | graceful-fs "^4.1.2" 349 | inherits "~2.0.0" 350 | mkdirp ">=0.5 0" 351 | rimraf "2" 352 | 353 | gauge@~2.7.3: 354 | version "2.7.4" 355 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 356 | dependencies: 357 | aproba "^1.0.3" 358 | console-control-strings "^1.0.0" 359 | has-unicode "^2.0.0" 360 | object-assign "^4.1.0" 361 | signal-exit "^3.0.0" 362 | string-width "^1.0.1" 363 | strip-ansi "^3.0.1" 364 | wide-align "^1.1.0" 365 | 366 | getpass@^0.1.1: 367 | version "0.1.7" 368 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 369 | dependencies: 370 | assert-plus "^1.0.0" 371 | 372 | glob-base@^0.3.0: 373 | version "0.3.0" 374 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 375 | dependencies: 376 | glob-parent "^2.0.0" 377 | is-glob "^2.0.0" 378 | 379 | glob-parent@^2.0.0: 380 | version "2.0.0" 381 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 382 | dependencies: 383 | is-glob "^2.0.0" 384 | 385 | glob@^7.0.5: 386 | version "7.1.2" 387 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 388 | dependencies: 389 | fs.realpath "^1.0.0" 390 | inflight "^1.0.4" 391 | inherits "2" 392 | minimatch "^3.0.4" 393 | once "^1.3.0" 394 | path-is-absolute "^1.0.0" 395 | 396 | graceful-fs@^4.1.2: 397 | version "4.1.11" 398 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 399 | 400 | har-schema@^1.0.5: 401 | version "1.0.5" 402 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 403 | 404 | har-validator@~4.2.1: 405 | version "4.2.1" 406 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 407 | dependencies: 408 | ajv "^4.9.1" 409 | har-schema "^1.0.5" 410 | 411 | has-unicode@^2.0.0: 412 | version "2.0.1" 413 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 414 | 415 | hawk@3.1.3, hawk@~3.1.3: 416 | version "3.1.3" 417 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 418 | dependencies: 419 | boom "2.x.x" 420 | cryptiles "2.x.x" 421 | hoek "2.x.x" 422 | sntp "1.x.x" 423 | 424 | hoek@2.x.x: 425 | version "2.16.3" 426 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 427 | 428 | http-signature@~1.1.0: 429 | version "1.1.1" 430 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 431 | dependencies: 432 | assert-plus "^0.2.0" 433 | jsprim "^1.2.2" 434 | sshpk "^1.7.0" 435 | 436 | inflight@^1.0.4: 437 | version "1.0.6" 438 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 439 | dependencies: 440 | once "^1.3.0" 441 | wrappy "1" 442 | 443 | inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: 444 | version "2.0.3" 445 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 446 | 447 | ini@~1.3.0: 448 | version "1.3.5" 449 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 450 | 451 | is-binary-path@^1.0.0: 452 | version "1.0.1" 453 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 454 | dependencies: 455 | binary-extensions "^1.0.0" 456 | 457 | is-buffer@^1.1.5: 458 | version "1.1.6" 459 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 460 | 461 | is-dotfile@^1.0.0: 462 | version "1.0.3" 463 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 464 | 465 | is-equal-shallow@^0.1.3: 466 | version "0.1.3" 467 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 468 | dependencies: 469 | is-primitive "^2.0.0" 470 | 471 | is-extendable@^0.1.1: 472 | version "0.1.1" 473 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 474 | 475 | is-extglob@^1.0.0: 476 | version "1.0.0" 477 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 478 | 479 | is-fullwidth-code-point@^1.0.0: 480 | version "1.0.0" 481 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 482 | dependencies: 483 | number-is-nan "^1.0.0" 484 | 485 | is-glob@^2.0.0, is-glob@^2.0.1: 486 | version "2.0.1" 487 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 488 | dependencies: 489 | is-extglob "^1.0.0" 490 | 491 | is-number@^2.1.0: 492 | version "2.1.0" 493 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 494 | dependencies: 495 | kind-of "^3.0.2" 496 | 497 | is-number@^3.0.0: 498 | version "3.0.0" 499 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 500 | dependencies: 501 | kind-of "^3.0.2" 502 | 503 | is-posix-bracket@^0.1.0: 504 | version "0.1.1" 505 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 506 | 507 | is-primitive@^2.0.0: 508 | version "2.0.0" 509 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 510 | 511 | is-typedarray@~1.0.0: 512 | version "1.0.0" 513 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 514 | 515 | isarray@1.0.0, isarray@~1.0.0: 516 | version "1.0.0" 517 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 518 | 519 | isobject@^2.0.0: 520 | version "2.1.0" 521 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 522 | dependencies: 523 | isarray "1.0.0" 524 | 525 | isstream@~0.1.2: 526 | version "0.1.2" 527 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 528 | 529 | js-tokens@^3.0.0: 530 | version "3.0.2" 531 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 532 | 533 | jsbn@~0.1.0: 534 | version "0.1.1" 535 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 536 | 537 | json-schema@0.2.3: 538 | version "0.2.3" 539 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 540 | 541 | json-stable-stringify@^1.0.1: 542 | version "1.0.1" 543 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 544 | dependencies: 545 | jsonify "~0.0.0" 546 | 547 | json-stringify-safe@~5.0.1: 548 | version "5.0.1" 549 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 550 | 551 | jsonify@~0.0.0: 552 | version "0.0.0" 553 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 554 | 555 | jsprim@^1.2.2: 556 | version "1.4.1" 557 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 558 | dependencies: 559 | assert-plus "1.0.0" 560 | extsprintf "1.3.0" 561 | json-schema "0.2.3" 562 | verror "1.10.0" 563 | 564 | kind-of@^3.0.2: 565 | version "3.2.2" 566 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 567 | dependencies: 568 | is-buffer "^1.1.5" 569 | 570 | kind-of@^4.0.0: 571 | version "4.0.0" 572 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 573 | dependencies: 574 | is-buffer "^1.1.5" 575 | 576 | lodash-es@^4.2.1: 577 | version "4.17.4" 578 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" 579 | 580 | lodash@^4.2.1: 581 | version "4.17.4" 582 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 583 | 584 | loose-envify@^1.1.0: 585 | version "1.3.1" 586 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 587 | dependencies: 588 | js-tokens "^3.0.0" 589 | 590 | micromatch@^2.1.5: 591 | version "2.3.11" 592 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 593 | dependencies: 594 | arr-diff "^2.0.0" 595 | array-unique "^0.2.1" 596 | braces "^1.8.2" 597 | expand-brackets "^0.1.4" 598 | extglob "^0.3.1" 599 | filename-regex "^2.0.0" 600 | is-extglob "^1.0.0" 601 | is-glob "^2.0.1" 602 | kind-of "^3.0.2" 603 | normalize-path "^2.0.1" 604 | object.omit "^2.0.0" 605 | parse-glob "^3.0.4" 606 | regex-cache "^0.4.2" 607 | 608 | mime-db@~1.30.0: 609 | version "1.30.0" 610 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" 611 | 612 | mime-types@^2.1.12, mime-types@~2.1.7: 613 | version "2.1.17" 614 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" 615 | dependencies: 616 | mime-db "~1.30.0" 617 | 618 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 619 | version "3.0.4" 620 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 621 | dependencies: 622 | brace-expansion "^1.1.7" 623 | 624 | minimist@0.0.8: 625 | version "0.0.8" 626 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 627 | 628 | minimist@^1.2.0: 629 | version "1.2.0" 630 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 631 | 632 | "mkdirp@>=0.5 0", mkdirp@^0.5.1: 633 | version "0.5.1" 634 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 635 | dependencies: 636 | minimist "0.0.8" 637 | 638 | ms@2.0.0: 639 | version "2.0.0" 640 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 641 | 642 | nan@^2.3.0: 643 | version "2.8.0" 644 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" 645 | 646 | node-pre-gyp@^0.6.39: 647 | version "0.6.39" 648 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" 649 | dependencies: 650 | detect-libc "^1.0.2" 651 | hawk "3.1.3" 652 | mkdirp "^0.5.1" 653 | nopt "^4.0.1" 654 | npmlog "^4.0.2" 655 | rc "^1.1.7" 656 | request "2.81.0" 657 | rimraf "^2.6.1" 658 | semver "^5.3.0" 659 | tar "^2.2.1" 660 | tar-pack "^3.4.0" 661 | 662 | nopt@^4.0.1: 663 | version "4.0.1" 664 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 665 | dependencies: 666 | abbrev "1" 667 | osenv "^0.1.4" 668 | 669 | normalize-path@^2.0.0, normalize-path@^2.0.1: 670 | version "2.1.1" 671 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 672 | dependencies: 673 | remove-trailing-separator "^1.0.1" 674 | 675 | npmlog@^4.0.2: 676 | version "4.1.2" 677 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 678 | dependencies: 679 | are-we-there-yet "~1.1.2" 680 | console-control-strings "~1.1.0" 681 | gauge "~2.7.3" 682 | set-blocking "~2.0.0" 683 | 684 | number-is-nan@^1.0.0: 685 | version "1.0.1" 686 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 687 | 688 | oauth-sign@~0.8.1: 689 | version "0.8.2" 690 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 691 | 692 | object-assign@^4.1.0: 693 | version "4.1.1" 694 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 695 | 696 | object.omit@^2.0.0: 697 | version "2.0.1" 698 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 699 | dependencies: 700 | for-own "^0.1.4" 701 | is-extendable "^0.1.1" 702 | 703 | once@^1.3.0, once@^1.3.3: 704 | version "1.4.0" 705 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 706 | dependencies: 707 | wrappy "1" 708 | 709 | os-homedir@^1.0.0: 710 | version "1.0.2" 711 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 712 | 713 | os-tmpdir@^1.0.0: 714 | version "1.0.2" 715 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 716 | 717 | osenv@^0.1.4: 718 | version "0.1.4" 719 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 720 | dependencies: 721 | os-homedir "^1.0.0" 722 | os-tmpdir "^1.0.0" 723 | 724 | parse-glob@^3.0.4: 725 | version "3.0.4" 726 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 727 | dependencies: 728 | glob-base "^0.3.0" 729 | is-dotfile "^1.0.0" 730 | is-extglob "^1.0.0" 731 | is-glob "^2.0.0" 732 | 733 | path-is-absolute@^1.0.0: 734 | version "1.0.1" 735 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 736 | 737 | performance-now@^0.2.0: 738 | version "0.2.0" 739 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 740 | 741 | preserve@^0.2.0: 742 | version "0.2.0" 743 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 744 | 745 | process-nextick-args@~1.0.6: 746 | version "1.0.7" 747 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 748 | 749 | punycode@^1.4.1: 750 | version "1.4.1" 751 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 752 | 753 | qs@~6.4.0: 754 | version "6.4.0" 755 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 756 | 757 | randomatic@^1.1.3: 758 | version "1.1.7" 759 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 760 | dependencies: 761 | is-number "^3.0.0" 762 | kind-of "^4.0.0" 763 | 764 | rc@^1.1.7: 765 | version "1.2.2" 766 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" 767 | dependencies: 768 | deep-extend "~0.4.0" 769 | ini "~1.3.0" 770 | minimist "^1.2.0" 771 | strip-json-comments "~2.0.1" 772 | 773 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: 774 | version "2.3.3" 775 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 776 | dependencies: 777 | core-util-is "~1.0.0" 778 | inherits "~2.0.3" 779 | isarray "~1.0.0" 780 | process-nextick-args "~1.0.6" 781 | safe-buffer "~5.1.1" 782 | string_decoder "~1.0.3" 783 | util-deprecate "~1.0.1" 784 | 785 | readdirp@^2.0.0: 786 | version "2.1.0" 787 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 788 | dependencies: 789 | graceful-fs "^4.1.2" 790 | minimatch "^3.0.2" 791 | readable-stream "^2.0.2" 792 | set-immediate-shim "^1.0.1" 793 | 794 | redux@^3.6.0: 795 | version "3.7.2" 796 | resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" 797 | dependencies: 798 | lodash "^4.2.1" 799 | lodash-es "^4.2.1" 800 | loose-envify "^1.1.0" 801 | symbol-observable "^1.0.3" 802 | 803 | reflect-metadata@^0.1.2: 804 | version "0.1.10" 805 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" 806 | 807 | regex-cache@^0.4.2: 808 | version "0.4.4" 809 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 810 | dependencies: 811 | is-equal-shallow "^0.1.3" 812 | 813 | remove-trailing-separator@^1.0.1: 814 | version "1.1.0" 815 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 816 | 817 | repeat-element@^1.1.2: 818 | version "1.1.2" 819 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 820 | 821 | repeat-string@^1.5.2: 822 | version "1.6.1" 823 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 824 | 825 | request@2.81.0: 826 | version "2.81.0" 827 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 828 | dependencies: 829 | aws-sign2 "~0.6.0" 830 | aws4 "^1.2.1" 831 | caseless "~0.12.0" 832 | combined-stream "~1.0.5" 833 | extend "~3.0.0" 834 | forever-agent "~0.6.1" 835 | form-data "~2.1.1" 836 | har-validator "~4.2.1" 837 | hawk "~3.1.3" 838 | http-signature "~1.1.0" 839 | is-typedarray "~1.0.0" 840 | isstream "~0.1.2" 841 | json-stringify-safe "~5.0.1" 842 | mime-types "~2.1.7" 843 | oauth-sign "~0.8.1" 844 | performance-now "^0.2.0" 845 | qs "~6.4.0" 846 | safe-buffer "^5.0.1" 847 | stringstream "~0.0.4" 848 | tough-cookie "~2.3.0" 849 | tunnel-agent "^0.6.0" 850 | uuid "^3.0.0" 851 | 852 | rimraf@2, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: 853 | version "2.6.2" 854 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 855 | dependencies: 856 | glob "^7.0.5" 857 | 858 | rxjs@^5.5.2: 859 | version "5.5.2" 860 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3" 861 | dependencies: 862 | symbol-observable "^1.0.1" 863 | 864 | safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 865 | version "5.1.1" 866 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 867 | 868 | semver@^5.3.0: 869 | version "5.4.1" 870 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 871 | 872 | set-blocking@~2.0.0: 873 | version "2.0.0" 874 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 875 | 876 | set-immediate-shim@^1.0.1: 877 | version "1.0.1" 878 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 879 | 880 | signal-exit@^3.0.0: 881 | version "3.0.2" 882 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 883 | 884 | sntp@1.x.x: 885 | version "1.0.9" 886 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 887 | dependencies: 888 | hoek "2.x.x" 889 | 890 | source-map-support@^0.4.2: 891 | version "0.4.18" 892 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 893 | dependencies: 894 | source-map "^0.5.6" 895 | 896 | source-map@^0.5.6: 897 | version "0.5.7" 898 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 899 | 900 | sshpk@^1.7.0: 901 | version "1.13.1" 902 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 903 | dependencies: 904 | asn1 "~0.2.3" 905 | assert-plus "^1.0.0" 906 | dashdash "^1.12.0" 907 | getpass "^0.1.1" 908 | optionalDependencies: 909 | bcrypt-pbkdf "^1.0.0" 910 | ecc-jsbn "~0.1.1" 911 | jsbn "~0.1.0" 912 | tweetnacl "~0.14.0" 913 | 914 | string-width@^1.0.1, string-width@^1.0.2: 915 | version "1.0.2" 916 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 917 | dependencies: 918 | code-point-at "^1.0.0" 919 | is-fullwidth-code-point "^1.0.0" 920 | strip-ansi "^3.0.0" 921 | 922 | string_decoder@~1.0.3: 923 | version "1.0.3" 924 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 925 | dependencies: 926 | safe-buffer "~5.1.0" 927 | 928 | stringstream@~0.0.4: 929 | version "0.0.5" 930 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 931 | 932 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 933 | version "3.0.1" 934 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 935 | dependencies: 936 | ansi-regex "^2.0.0" 937 | 938 | strip-json-comments@~2.0.1: 939 | version "2.0.1" 940 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 941 | 942 | symbol-observable@^1.0.1, symbol-observable@^1.0.3: 943 | version "1.1.0" 944 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32" 945 | 946 | tar-pack@^3.4.0: 947 | version "3.4.1" 948 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" 949 | dependencies: 950 | debug "^2.2.0" 951 | fstream "^1.0.10" 952 | fstream-ignore "^1.0.5" 953 | once "^1.3.3" 954 | readable-stream "^2.1.4" 955 | rimraf "^2.5.1" 956 | tar "^2.2.1" 957 | uid-number "^0.0.6" 958 | 959 | tar@^2.2.1: 960 | version "2.2.1" 961 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 962 | dependencies: 963 | block-stream "*" 964 | fstream "^1.0.2" 965 | inherits "2" 966 | 967 | tough-cookie@~2.3.0: 968 | version "2.3.3" 969 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" 970 | dependencies: 971 | punycode "^1.4.1" 972 | 973 | tsickle@^0.24.0: 974 | version "0.24.1" 975 | resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.24.1.tgz#039343b205bf517a333b0703978892f80a7d848e" 976 | dependencies: 977 | minimist "^1.2.0" 978 | mkdirp "^0.5.1" 979 | source-map "^0.5.6" 980 | source-map-support "^0.4.2" 981 | 982 | tslib@^1.7.1: 983 | version "1.8.0" 984 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.0.tgz#dc604ebad64bcbf696d613da6c954aa0e7ea1eb6" 985 | 986 | tunnel-agent@^0.6.0: 987 | version "0.6.0" 988 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 989 | dependencies: 990 | safe-buffer "^5.0.1" 991 | 992 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 993 | version "0.14.5" 994 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 995 | 996 | typescript@2.4.2: 997 | version "2.4.2" 998 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" 999 | 1000 | uid-number@^0.0.6: 1001 | version "0.0.6" 1002 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 1003 | 1004 | util-deprecate@~1.0.1: 1005 | version "1.0.2" 1006 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1007 | 1008 | uuid@^3.0.0: 1009 | version "3.1.0" 1010 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 1011 | 1012 | verror@1.10.0: 1013 | version "1.10.0" 1014 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1015 | dependencies: 1016 | assert-plus "^1.0.0" 1017 | core-util-is "1.0.2" 1018 | extsprintf "^1.2.0" 1019 | 1020 | wide-align@^1.1.0: 1021 | version "1.1.2" 1022 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 1023 | dependencies: 1024 | string-width "^1.0.2" 1025 | 1026 | wrappy@1: 1027 | version "1.0.2" 1028 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1029 | 1030 | zone.js@^0.8.18: 1031 | version "0.8.18" 1032 | resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.18.tgz#8cecb3977fcd1b3090562ff4570e2847e752b48d" 1033 | --------------------------------------------------------------------------------