diff --git a/CHANGELOG.md b/CHANGELOG.md index 5da57e5..8a323cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# 7.0.0 - Angular 5 Upgrade + +* Update dependencies to Angular 5 +* Update RxJS to 5.5.2 and use lettable operators +* Update peer dependencies to only Angular 5+ + +note: This version requires Angular 5, the code generated by the compiler is not compatible with Angular v4. + + # 6.6.0-1 * Update peer dependency to include Angular 5, *note* - this is a beta release, if you run into any issues with Angular 5 please let me know. This release is still using an older version of angular to build / compile, but seems to work with Angular 5. diff --git a/package.json b/package.json index 5a0308e..94950cf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@angular-redux/store", - "version": "6.6.0-1", - "description": "Angular 2 bindings for Redux", + "version": "7.0.0-3", + "description": "Angular bindings for Redux", "main": "./lib/src/index.js", "scripts": { "prebuild": "rimraf ./lib", @@ -53,35 +53,35 @@ }, "homepage": "https://github.com/angular-redux/store#readme", "devDependencies": { - "@angular/animations": "^4.1.0", - "@angular/common": "^4.1.0", - "@angular/compiler": "^4.1.0", - "@angular/compiler-cli": "^4.1.0", - "@angular/core": "^4.1.0", - "@angular/http": "^4.1.0", - "@angular/platform-browser": "^4.1.0", - "@angular/platform-browser-dynamic": "^4.1.0", - "@angular/platform-server": "^4.1.0", + "@angular/animations": "^5.0.1", + "@angular/common": "^5.0.1", + "@angular/compiler": "^5.0.1", + "@angular/compiler-cli": "^5.0.1", + "@angular/core": "^5.0.1", + "@angular/http": "^5.0.1", + "@angular/platform-browser": "^5.0.1", + "@angular/platform-browser-dynamic": "^5.0.1", + "@angular/platform-server": "^5.0.1", "@types/jasmine": "2.5.38", "@types/node": "^6.0.36", "core-js": "^2.4.1", "jasmine": "^2.5.3", "nodemon": "^1.11.0", "nyc": "^10.2.0", - "redux": "^3.5.0", - "reflect-metadata": "^0.1.10", + "redux": "^3.7.2", + "reflect-metadata": "0.1.10", "rimraf": "^2.5.2", - "rxjs": "^5.0.1", + "rxjs": "^5.5.2", "symbol-observable": "^1.0.1", "ts-node": "^3.3.0", "tsconfig-paths": "^2.3.0", - "tslint": "^5.1.0", + "tslint": "^5.8.0", "typedoc": "^0.9.0", - "typescript": "^2.4.1", + "typescript": "2.4.2", "zone.js": "^0.8.18" }, "peerDependencies": { - "@angular/core": "^2.4.0 || ^4.0.0 || ^5.0.0", + "@angular/core": "^5.0.0", "redux": "^3.5.0" }, "nyc": { diff --git a/src/components/root-store.ts b/src/components/root-store.ts index 2627963..d3d632a 100644 --- a/src/components/root-store.ts +++ b/src/components/root-store.ts @@ -8,19 +8,24 @@ import { createStore, applyMiddleware, compose, - Dispatch, + Dispatch } from 'redux'; import { NgZone } from '@angular/core'; import { Observer } from 'rxjs/Observer'; import { Observable } from 'rxjs/Observable'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/filter'; -import 'rxjs/add/operator/distinctUntilChanged'; -import 'rxjs/add/operator/switchMap'; +import { map } from 'rxjs/operators/map'; +import { filter } from 'rxjs/operators/filter'; +import { distinctUntilChanged } from 'rxjs/operators/distinctUntilChanged'; +import { switchMap } from 'rxjs/operators/switchMap'; import { NgRedux } from './ng-redux'; -import { Selector, PathSelector, Comparator, resolveToFunctionSelector } from './selectors'; +import { + Selector, + PathSelector, + Comparator, + resolveToFunctionSelector +} from './selectors'; import { assert } from '../utils/assert'; import { SubStore } from './sub-store'; import { enableFractalReducers } from './fractal-reducer-map'; @@ -34,24 +39,27 @@ export class RootStore extends NgRedux { constructor(private ngZone: NgZone) { super(); NgRedux.instance = this; - this._store$ = new BehaviorSubject(undefined) - .filter(n => n !== undefined) - .switchMap(observableStore => observableStore as any) as BehaviorSubject; + this._store$ = new BehaviorSubject(undefined).pipe( + filter(n => n !== undefined), + switchMap(observableStore => observableStore as any) + ) as BehaviorSubject; // TODO: fix this? needing to explicitly cast this is wrong } configureStore = ( rootReducer: Reducer, initState: RootState, middleware: Middleware[] = [], - enhancers: StoreEnhancer[] = []): void => { + enhancers: StoreEnhancer[] = [] + ): void => { assert(!this._store, 'Store already configured!'); // Variable-arity compose in typescript FTW. this.setStore( - compose.apply(null, - [applyMiddleware(...middleware), ...enhancers])(createStore) - (enableFractalReducers(rootReducer), initState)); - } + compose.apply(null, [applyMiddleware(...middleware), ...enhancers])( + createStore + )(enableFractalReducers(rootReducer), initState) + ); + }; provideStore = (store: Store) => { assert(!this._store, 'Store already configured!'); @@ -64,15 +72,16 @@ export class RootStore extends NgRedux { this._store.subscribe(listener); replaceReducer = (nextReducer: Reducer): void => { - this._store.replaceReducer(nextReducer) - } + this._store.replaceReducer(nextReducer); + }; - dispatch: Dispatch = (action: Action) => { + dispatch: Dispatch = (action: A): A => { assert( !!this._store, 'Dispatch failed: did you forget to configure your store? ' + - 'https://github.com/angular-redux/@angular-redux/core/blob/master/' + - 'README.md#quick-start'); + 'https://github.com/angular-redux/@angular-redux/core/blob/master/' + + 'README.md#quick-start' + ); if (!NgZone.isInAngularZone()) { return this.ngZone.run(() => this._store.dispatch(action)); @@ -81,17 +90,20 @@ export class RootStore extends NgRedux { } }; - select = ( - selector?: Selector, - comparator?: Comparator): Observable => - this._store$ - .distinctUntilChanged() - .map(resolveToFunctionSelector(selector)) - .distinctUntilChanged(comparator); + select = ( + selector?: Selector, + comparator?: Comparator + ): Observable => + this._store$.pipe( + distinctUntilChanged(), + map(resolveToFunctionSelector(selector)), + distinctUntilChanged(comparator) + ); configureSubStore = ( basePath: PathSelector, - localReducer: Reducer): ObservableStore => + localReducer: Reducer + ): ObservableStore => new SubStore(this, basePath, localReducer); private setStore(store: Store) { @@ -100,13 +112,17 @@ export class RootStore extends NgRedux { this._store$.next(storeServable as any); } - private storeToObservable = (store: Store): Observable => + private storeToObservable = ( + store: Store + ): Observable => new Observable((observer: Observer) => { observer.next(store.getState()); - const unsubscribeFromRedux = store.subscribe(() => observer.next(store.getState())); + const unsubscribeFromRedux = store.subscribe(() => + observer.next(store.getState()) + ); return () => { unsubscribeFromRedux(); observer.complete(); }; }); -}; +} diff --git a/src/components/sub-store.ts b/src/components/sub-store.ts index 0db8a30..bebab72 100644 --- a/src/components/sub-store.ts +++ b/src/components/sub-store.ts @@ -1,56 +1,66 @@ import { Dispatch, Reducer } from 'redux'; import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/distinctUntilChanged'; +import { map } from 'rxjs/operators/map'; +import { distinctUntilChanged } from 'rxjs/operators/distinctUntilChanged'; import { getIn } from '../utils/get-in'; import { PathSelector, Selector, Comparator, - resolveToFunctionSelector, + resolveToFunctionSelector } from './selectors'; import { NgRedux } from './ng-redux'; -import { ObservableStore, } from './observable-store'; -import { registerFractalReducer, replaceLocalReducer } from './fractal-reducer-map'; +import { ObservableStore } from './observable-store'; +import { + registerFractalReducer, + replaceLocalReducer +} from './fractal-reducer-map'; /** @hidden */ export class SubStore implements ObservableStore { constructor( private rootStore: NgRedux, private basePath: PathSelector, - localReducer: Reducer) { - registerFractalReducer(basePath, localReducer); + localReducer: Reducer + ) { + registerFractalReducer(basePath, localReducer); } dispatch: Dispatch = action => this.rootStore.dispatch( - Object.assign({}, - action, - { '@angular-redux::fractalkey': JSON.stringify(this.basePath) })) + Object.assign({}, action, { + '@angular-redux::fractalkey': JSON.stringify(this.basePath) + }) + ); - getState = (): State => - getIn(this.rootStore.getState(), this.basePath) + getState = (): State => getIn(this.rootStore.getState(), this.basePath); configureSubStore = ( basePath: PathSelector, - localReducer: Reducer): ObservableStore => - new SubStore( - this.rootStore, - [ ...this.basePath, ...basePath], - localReducer) + localReducer: Reducer + ): ObservableStore => + new SubStore( + this.rootStore, + [...this.basePath, ...basePath], + localReducer + ); select = ( selector?: Selector, - comparator?: Comparator): Observable => this.rootStore + comparator?: Comparator + ): Observable => + this.rootStore .select(this.basePath) - .map(resolveToFunctionSelector(selector)) - .distinctUntilChanged(comparator) + .pipe( + map(resolveToFunctionSelector(selector)), + distinctUntilChanged(comparator) + ); - subscribe = (listener: () => void): () => void => { + subscribe = (listener: () => void): (() => void) => { const subscription = this.select().subscribe(listener); return () => subscription.unsubscribe(); - } + }; replaceReducer = (nextLocalReducer: Reducer) => replaceLocalReducer(this.basePath, nextLocalReducer); diff --git a/src/decorators/helpers.ts b/src/decorators/helpers.ts index d007a71..ef2fb48 100644 --- a/src/decorators/helpers.ts +++ b/src/decorators/helpers.ts @@ -1,10 +1,13 @@ import { Reducer } from 'redux'; import { NgRedux } from '../components/ng-redux'; import { ObservableStore } from '../components/observable-store'; -import { Selector, PathSelector, Comparator, Transformer } from '../components/selectors'; - -import 'rxjs/add/operator/let'; -import 'rxjs/add/operator/distinctUntilChanged'; +import { + Selector, + PathSelector, + Comparator, + Transformer +} from '../components/selectors'; +import { distinctUntilChanged } from 'rxjs/operators/distinctUntilChanged'; /** * Used with the `@WithSubStore` class decorator to define a SubStore (AKA a @@ -45,7 +48,8 @@ const OPTIONS_KEY = '@angular-redux::substore::class::options'; * This is therefore an own-property on the actual instance of the decorated class. */ const INSTANCE_SUBSTORE_KEY = '@angular-redux::substore::instance::store'; -const INSTANCE_SELECTIONS_KEY = '@angular-redux::substore::instance::selections'; +const INSTANCE_SELECTIONS_KEY = + '@angular-redux::substore::instance::selections'; /** * Used to detect when the base path changes - this allows components to dynamically adjust @@ -59,16 +63,19 @@ const getClassOptions = (decoratedInstance: any): IFractalStoreOptions => /** @hidden */ export const setClassOptions = ( decoratedClassConstructor: any, - options: IFractalStoreOptions): void => { - decoratedClassConstructor[OPTIONS_KEY] = options -} + options: IFractalStoreOptions +): void => { + decoratedClassConstructor[OPTIONS_KEY] = options; +}; // I want the store to be saved on the actual instance so // 1. different instances can have distinct substores if necessary // 2. the substore/selections will be marked for garbage collection when the // instance is destroyed. -const setInstanceStore = (decoratedInstance: any, store?: ObservableStore) => - decoratedInstance[INSTANCE_SUBSTORE_KEY] = store; +const setInstanceStore = ( + decoratedInstance: any, + store?: ObservableStore +) => (decoratedInstance[INSTANCE_SUBSTORE_KEY] = store); const getInstanceStore = (decoratedInstance: any): ObservableStore => decoratedInstance[INSTANCE_SUBSTORE_KEY]; @@ -77,27 +84,35 @@ const getInstanceSelectionMap = (decoratedInstance: any) => { const map = decoratedInstance[INSTANCE_SELECTIONS_KEY] || {}; decoratedInstance[INSTANCE_SELECTIONS_KEY] = map; return map; -} +}; -const hasBasePathChanged = (decoratedInstance: any, basePath?: PathSelector): boolean => +const hasBasePathChanged = ( + decoratedInstance: any, + basePath?: PathSelector +): boolean => decoratedInstance[INSTANCE_BASE_PATH_KEY] !== (basePath || []).toString(); -const setInstanceBasePath = (decoratedInstance: any, basePath?: PathSelector): void => { +const setInstanceBasePath = ( + decoratedInstance: any, + basePath?: PathSelector +): void => { decoratedInstance[INSTANCE_BASE_PATH_KEY] = (basePath || []).toString(); -} +}; const clearInstanceState = (decoratedInstance: any) => { decoratedInstance[INSTANCE_SELECTIONS_KEY] = null; decoratedInstance[INSTANCE_SUBSTORE_KEY] = null; decoratedInstance[INSTANCE_BASE_PATH_KEY] = null; -} +}; /** * Gets the store associated with a decorated instance (e.g. a * component or service) * @hidden */ -export const getBaseStore = (decoratedInstance: any): ObservableStore | undefined => { +export const getBaseStore = ( + decoratedInstance: any +): ObservableStore | undefined => { // The root store hasn't been set up yet. if (!NgRedux.instance) { return undefined; @@ -123,10 +138,10 @@ export const getBaseStore = (decoratedInstance: any): ObservableStore | und const store = getInstanceStore(decoratedInstance); if (!store) { - setInstanceStore(decoratedInstance, - NgRedux.instance.configureSubStore( - basePath, - options.localReducer)); + setInstanceStore( + decoratedInstance, + NgRedux.instance.configureSubStore(basePath, options.localReducer) + ); } return getInstanceStore(decoratedInstance); @@ -143,20 +158,23 @@ export const getInstanceSelection = ( key: string | symbol, selector: Selector, transformer?: Transformer, - comparator?: Comparator) => { + comparator?: Comparator +) => { const store = getBaseStore(decoratedInstance); if (store) { const selections = getInstanceSelectionMap(decoratedInstance); - selections[key] = selections[key] || (!transformer ? - store.select(selector, comparator) : - store.select(selector) - .let(transformer) - .distinctUntilChanged(comparator)); + selections[key] = + selections[key] || + (!transformer + ? store.select(selector, comparator) + : store + .select(selector) + .pipe(transformer, distinctUntilChanged(comparator))); return selections[key]; } return undefined; -} +}; diff --git a/src/decorators/select.spec.ts b/src/decorators/select.spec.ts index d812715..f9564c5 100644 --- a/src/decorators/select.spec.ts +++ b/src/decorators/select.spec.ts @@ -4,6 +4,7 @@ import { Action } from 'redux'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/toArray'; import 'rxjs/add/operator/take'; +import 'rxjs/add/operator/map'; import { NgRedux } from '../components/ng-redux'; import { RootStore } from '../components/root-store'; @@ -16,22 +17,20 @@ interface IAppState { type PayloadAction = Action & { payload?: any }; -class MockNgZone { run = (fn: Function) => fn() } +class MockNgZone { + run = (fn: Function) => fn(); +} describe('Select decorators', () => { let ngRedux: NgRedux; - let targetObj; - const mockNgZone = new MockNgZone() as NgZone; + const mockNgZone = (new MockNgZone() as any) as NgZone; const defaultState = { foo: 'bar', baz: -1 }; const rootReducer = (state = defaultState, action: PayloadAction) => - action.payload ? - Object.assign({}, state, { baz: action.payload }) : - state; + action.payload ? Object.assign({}, state, { baz: action.payload }) : state; beforeEach(() => { - targetObj = {}; ngRedux = new RootStore(mockNgZone); NgRedux.instance = ngRedux; ngRedux.configureStore(rootReducer, defaultState); @@ -40,66 +39,85 @@ describe('Select decorators', () => { describe('@select', () => { describe('when passed no arguments', () => { it('binds to a store property that matches the name of the class property', done => { - class MockClass { @select() baz: Observable; } + class MockClass { + @select() baz: Observable; + } const mockInstance = new MockClass(); mockInstance.baz .take(2) .toArray() - .subscribe(values => expect(values).toEqual([-1, 1]), + .subscribe( + values => expect(values).toEqual([-1, 1]), undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 1}); + done + ); + ngRedux.dispatch({ type: 'nvm', payload: 1 }); }); it('binds by name ignoring any $ characters in the class property name', done => { - class MockClass { @select() baz$: Observable; } + class MockClass { + @select() baz$: Observable; + } const mockInstance = new MockClass(); mockInstance.baz$ .take(2) .toArray() - .subscribe(values => expect(values).toEqual([-1, 4]), + .subscribe( + values => expect(values).toEqual([-1, 4]), undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 4}); + done + ); + ngRedux.dispatch({ type: 'nvm', payload: 4 }); }); }); describe('when passed a string', () => { it('binds to the store property whose name matches the string value', done => { - class MockClass { @select('baz') obs$: Observable; } + class MockClass { + @select('baz') obs$: Observable; + } const mockInstance = new MockClass(); mockInstance.obs$ .take(2) .toArray() - .subscribe(values => expect(values).toEqual([-1, 3]), + .subscribe( + values => expect(values).toEqual([-1, 3]), undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 3}); + done + ); + ngRedux.dispatch({ type: 'nvm', payload: 3 }); }); }); describe('when passed a function', () => { it('attempts to use that function as the selector function', done => { const selector = (state: IAppState) => state.baz * 2; - class MockClass { @select(selector) obs$: Observable; } + class MockClass { + @select(selector) obs$: Observable; + } const mockInstance = new MockClass(); mockInstance.obs$ .take(2) .toArray() - .subscribe(values => expect(values).toEqual([-2, 10]), + .subscribe( + values => expect(values).toEqual([-2, 10]), undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 5}); + done + ); + ngRedux.dispatch({ type: 'nvm', payload: 5 }); }); }); describe('when passed a comparator', () => { const comparator = (_: any, y: any): boolean => y === 1; - class MockClass { @select('baz', comparator) baz$: Observable }; + class MockClass { + @select('baz', comparator) + baz$: Observable; + } it('should only trigger next when comparator returns true', done => { const mockInstance = new MockClass(); @@ -109,23 +127,24 @@ describe('Select decorators', () => { .subscribe( values => expect(values).toEqual([-1, 2]), undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 1}); - ngRedux.dispatch({type: 'nvm', payload: 2}); + done + ); + ngRedux.dispatch({ type: 'nvm', payload: 1 }); + ngRedux.dispatch({ type: 'nvm', payload: 2 }); }); it('should receive previous and next value for comparison', done => { const spy = jasmine.createSpy('spy'); - class LocalMockClass { @select('baz', spy) baz$: Observable; } + class LocalMockClass { + @select('baz', spy) + baz$: Observable; + } const mockInstance = new LocalMockClass(); - mockInstance - .baz$ - .take(3) - .subscribe(undefined, undefined, done); + mockInstance.baz$.take(3).subscribe(undefined, undefined, done); - ngRedux.dispatch({type: 'nvm', payload: 1}); - ngRedux.dispatch({type: 'nvm', payload: 2}); + ngRedux.dispatch({ type: 'nvm', payload: 1 }); + ngRedux.dispatch({ type: 'nvm', payload: 2 }); expect(spy).toHaveBeenCalledWith(-1, 1); expect(spy).toHaveBeenCalledWith(1, 2); @@ -137,22 +156,25 @@ describe('Select decorators', () => { const transformer = (baz$: Observable) => baz$.map(baz => 2 * baz); it('applies a transformer to the observable', done => { - class MockClass { @select$('baz', transformer) baz$: Observable; } + class MockClass { + @select$('baz', transformer) + baz$: Observable; + } const mockInstance = new MockClass(); mockInstance.baz$ .take(2) .toArray() - .subscribe( - values => expect(values).toEqual([-2, 10]), - undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 5}); + .subscribe(values => expect(values).toEqual([-2, 10]), undefined, done); + ngRedux.dispatch({ type: 'nvm', payload: 5 }); }); describe('when passed a comparator', () => { const comparator = (_: any, y: any): boolean => y === 1; - class MockClass { @select$('baz', transformer, comparator) baz$: Observable } + class MockClass { + @select$('baz', transformer, comparator) + baz$: Observable; + } it('should only trigger next when the comparator returns true', done => { const mockInstance = new MockClass(); @@ -162,22 +184,24 @@ describe('Select decorators', () => { .subscribe( values => expect(values).toEqual([-2, 2]), undefined, - done); - ngRedux.dispatch({type: 'nvm', payload: 1}); - ngRedux.dispatch({type: 'nvm', payload: 2}); + done + ); + ngRedux.dispatch({ type: 'nvm', payload: 1 }); + ngRedux.dispatch({ type: 'nvm', payload: 2 }); }); it('should receive previous and next value for comparison', done => { const spy = jasmine.createSpy('spy'); - class SpyClass { @select$('baz', transformer, spy) baz$: Observable }; + class SpyClass { + @select$('baz', transformer, spy) + baz$: Observable; + } const mockInstance = new SpyClass(); - mockInstance.baz$ - .take(3) - .subscribe(undefined, undefined, done); + mockInstance.baz$.take(3).subscribe(undefined, undefined, done); - ngRedux.dispatch({type: 'nvm', payload: 1}); - ngRedux.dispatch({type: 'nvm', payload: 2}); + ngRedux.dispatch({ type: 'nvm', payload: 1 }); + ngRedux.dispatch({ type: 'nvm', payload: 2 }); expect(spy).toHaveBeenCalledWith(-2, 2); expect(spy).toHaveBeenCalledWith(2, 4); diff --git a/src/decorators/select.ts b/src/decorators/select.ts index 671eb54..db713e7 100644 --- a/src/decorators/select.ts +++ b/src/decorators/select.ts @@ -1,4 +1,3 @@ -import 'rxjs/add/operator/let' import { Selector, Comparator, Transformer } from '../components/selectors'; import { getInstanceSelection } from './helpers'; @@ -15,13 +14,14 @@ import { getInstanceSelection } from './helpers'; */ export function select( selector?: Selector, - comparator?: Comparator): PropertyDecorator { + comparator?: Comparator +): PropertyDecorator { return (target: any, key: string): void => { - const adjustedSelector = selector ? - selector : - (key.lastIndexOf('$') === key.length - 1) ? - key.substring(0, key.length - 1) : - key; + const adjustedSelector = selector + ? selector + : key.lastIndexOf('$') === key.length - 1 + ? key.substring(0, key.length - 1) + : key; decorate(adjustedSelector, undefined, comparator)(target, key); }; } @@ -38,22 +38,19 @@ export function select( export function select$( selector: Selector, transformer: Transformer, - comparator?: Comparator): PropertyDecorator { + comparator?: Comparator +): PropertyDecorator { return decorate(selector, transformer, comparator); } function decorate( selector: Selector, transformer?: Transformer, - comparator?: Comparator): PropertyDecorator { + comparator?: Comparator +): PropertyDecorator { return function decorator(target: any, key): void { function getter(this: any) { - return getInstanceSelection( - this, - key, - selector, - transformer, - comparator); + return getInstanceSelection(this, key, selector, transformer, comparator); } // Replace decorated property with a getter that returns the observable. @@ -64,5 +61,5 @@ function decorate( configurable: true }); } - } + }; } diff --git a/testing/dev-tools.mock.ts b/testing/dev-tools.mock.ts index e2c7af7..5376daa 100644 --- a/testing/dev-tools.mock.ts +++ b/testing/dev-tools.mock.ts @@ -1,3 +1,5 @@ +import { Injectable } from '@angular/core'; import { DevToolsExtension } from '@angular-redux/store'; +@Injectable() export class MockDevToolsExtension extends DevToolsExtension {} diff --git a/testing/ng-redux.mock.ts b/testing/ng-redux.mock.ts index 9526def..ba2fcbb 100644 --- a/testing/ng-redux.mock.ts +++ b/testing/ng-redux.mock.ts @@ -2,7 +2,7 @@ import { NgRedux, Selector, Comparator, - PathSelector, + PathSelector } from '@angular-redux/store'; import { Reducer, Dispatch, Middleware, Store, StoreEnhancer } from 'redux'; import { Observable } from 'rxjs/Observable'; @@ -10,14 +10,14 @@ import { Subject } from 'rxjs/Subject'; import 'rxjs/add/observable/from'; import 'rxjs/add/operator/distinctUntilChanged'; import { MockObservableStore } from './observable-store.mock'; - +// tslint:disable:member-ordering /** * Convenience mock to make it easier to control selector * behaviour in unit tests. */ -export class MockNgRedux extends NgRedux { +export class MockNgRedux extends NgRedux { /** @deprecated Use MockNgRedux.getInstance() instead. */ - static mockInstance?: MockNgRedux = undefined; + static mockInstance?: MockNgRedux = undefined; private mockRootStore = new MockObservableStore(); @@ -30,11 +30,12 @@ export class MockNgRedux extends NgRedux { */ static getSelectorStub( selector?: Selector, - comparator?: Comparator): Subject { - return MockNgRedux - .getInstance() - .mockRootStore - .getSelectorStub(selector, comparator); + comparator?: Comparator + ): Subject { + return MockNgRedux.getInstance().mockRootStore.getSelectorStub( + selector, + comparator + ); } /** @@ -46,10 +47,12 @@ export class MockNgRedux extends NgRedux { * the nested substores out. * @param pathSelectors */ - static getSubStore(...pathSelectors: PathSelector[]): MockObservableStore { - return pathSelectors.length ? - MockNgRedux.getInstance().mockRootStore.getSubStore(...pathSelectors) : - MockNgRedux.getInstance().mockRootStore; + static getSubStore( + ...pathSelectors: PathSelector[] + ): MockObservableStore { + return pathSelectors.length + ? MockNgRedux.getInstance().mockRootStore.getSubStore(...pathSelectors) + : MockNgRedux.getInstance().mockRootStore; } /** @@ -69,18 +72,21 @@ export class MockNgRedux extends NgRedux { return MockNgRedux.mockInstance; } - provideStore = (_: Store): void => {}; + provideStore = (_: Store): void => {}; configureStore = ( _: Reducer, __: any, ___?: Middleware[], - ____?: StoreEnhancer[]): void => {}; + ____?: StoreEnhancer[] + ): void => {}; configureSubStore = this.mockRootStore.configureSubStore; + select: ( - selector: Selector, - comparator?: Comparator) => Observable = this.mockRootStore.select; - + selector: Selector, + comparator?: Comparator + ) => Observable = this.mockRootStore.select; + dispatch = this.mockRootStore.dispatch as Dispatch; getState = this.mockRootStore.getState; subscribe = this.mockRootStore.subscribe; diff --git a/tsconfig.build.json b/tsconfig.build.json index 193212c..1c442f4 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -8,16 +8,12 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, - "outDir": "lib/src/", + "outDir": "lib/src", "declaration": true, - "lib": [ - "es2015", - "es2015.iterable", - "dom" - ], + "lib": ["es2015", "es2015.iterable", "dom"], "strict": true, "paths": { - "@angular-redux/store": [ "./src/index.ts" ] + "@angular-redux/store": ["./src/index.ts"] }, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, @@ -27,16 +23,12 @@ }, "compileOnSave": false, "buildOnSave": false, - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "node_modules", - "lib", - "**/*.spec.ts" - ], + "include": ["src/**/*.ts"], + "exclude": ["node_modules", "lib", "**/*.spec.ts"], "angularCompilerOptions": { + "generateCodeForLibraries": false, "strictMetadataEmit": true, - "genDir": ".compiled" + "genDir": ".compiled", + "annotationsAs": "decorators" } } diff --git a/tsconfig.testing.json b/tsconfig.testing.json index da5834e..52c20fb 100644 --- a/tsconfig.testing.json +++ b/tsconfig.testing.json @@ -10,7 +10,7 @@ "removeComments": false, "outDir": "lib/testing/", "declaration": true, - "lib" : ["es2015", "es2015.iterable", "dom"], + "lib": ["es2015", "es2015.iterable", "dom"], "paths": { "@angular-redux/store": ["./lib/src"] }, @@ -26,6 +26,9 @@ "include": ["testing/**/*.ts"], "exclude": ["node_modules", "lib", "**/*.spec.ts"], "angularCompilerOptions": { + "strictInjectionParameters": true, + "annotationsAs": "decorators", + "generateCodeForLibraries": false, "strictMetadataEmit": true, "genDir": ".compiled" } diff --git a/yarn.lock b/yarn.lock index 78a63bc..1f8319c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,70 +2,65 @@ # yarn lockfile v1 -"@angular/animations@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-4.2.6.tgz#9d9c80a119b0c03693cbd23bbaf728b1531fffc7" +"@angular/animations@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.0.1.tgz#a92b2b186a6e5a31a9f1584911dd6aa7e16c5de1" dependencies: tslib "^1.7.1" -"@angular/common@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.2.6.tgz#210ace4bd24e375f8b41ba52feb34b18a887d5da" +"@angular/common@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.0.1.tgz#43005ab3c8b8ffaf176aafb3b86ba931c3e4bdf9" dependencies: tslib "^1.7.1" -"@angular/compiler-cli@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.2.6.tgz#8a21352299f3ebd1e3f17581054164566ca306be" +"@angular/compiler-cli@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.0.1.tgz#526dc1bb394fb16ad916601eea9aa00eb44b4fff" dependencies: - "@angular/tsc-wrapped" "4.2.6" + chokidar "^1.4.2" minimist "^1.2.0" reflect-metadata "^0.1.2" + tsickle "^0.24.0" -"@angular/compiler@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.2.6.tgz#667756d495ca0d45d2061268a10d52af839faff4" +"@angular/compiler@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.0.1.tgz#7fd4c7fa4bbbef4c146962fa946b827330a6c8ed" dependencies: tslib "^1.7.1" -"@angular/core@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.2.6.tgz#0c1c8ff0157f076f4a7c0b721ca1423f1bbe164e" +"@angular/core@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.0.1.tgz#a4a74afc7e2058d30b8263eb6d66daace9f427ba" dependencies: tslib "^1.7.1" -"@angular/http@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.2.6.tgz#499e2ba0bbc1f3d71b76debec034c958caf1134e" +"@angular/http@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.0.1.tgz#350cbdf63cfac8939613d753ff071ed58a60561b" dependencies: tslib "^1.7.1" -"@angular/platform-browser-dynamic@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.2.6.tgz#4e6c8ad2cd5cfc17880417f77f2a3413cf791c26" +"@angular/platform-browser-dynamic@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.0.1.tgz#16db67d52d4531563ab15429c6bdfe18bc1bedc8" dependencies: tslib "^1.7.1" -"@angular/platform-browser@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.2.6.tgz#a131ff592225fe6496bca2c9aff612a4dbddf437" +"@angular/platform-browser@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.0.1.tgz#14895dd30ed2a30ee7b99c76b764748f46c1a862" dependencies: tslib "^1.7.1" -"@angular/platform-server@^4.1.0": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-4.2.6.tgz#66e03fd855486fe058e23d3786061d91462998db" +"@angular/platform-server@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-5.0.1.tgz#005a64eb657e670d265fdfae9473f19a764f8737" dependencies: - parse5 "^3.0.1" + domino "^1.0.29" tslib "^1.7.1" xhr2 "^0.1.4" -"@angular/tsc-wrapped@4.2.6": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.2.6.tgz#60e44b5b38f3340ee14c54a58a7a07133c64e898" - dependencies: - tsickle "^0.21.0" - "@types/fs-extra@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.0.tgz#1dd742ad5c9bce308f7a52d02ebc01421bc9102f" @@ -96,9 +91,13 @@ version "2.0.29" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" -"@types/node@*", "@types/node@^6.0.36", "@types/node@^6.0.46": - version "6.0.79" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.79.tgz#5efe7d4a6d8c453c7e9eaf55d931f4a22fac5169" +"@types/node@*": + version "8.0.52" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.52.tgz#8e7f47747868e7687f2cd4922966e2d6af78d22d" + +"@types/node@^6.0.36": + version "6.0.91" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.91.tgz#607575951fd03362d19a93e8454f5d8484686aed" "@types/shelljs@0.7.0": version "0.7.0" @@ -107,8 +106,8 @@ "@types/node" "*" abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" ajv@^4.9.1: version "4.11.8" @@ -129,30 +128,40 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750" + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" dependencies: - color-convert "^1.0.0" + color-convert "^1.9.0" any-promise@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" dependencies: - arrify "^1.0.0" micromatch "^2.1.5" + normalize-path "^2.0.0" append-transform@^0.4.0: version "0.4.0" @@ -161,8 +170,8 @@ append-transform@^0.4.0: default-require-extensions "^1.0.0" aproba@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" archy@^1.0.0: version "1.0.0" @@ -225,25 +234,25 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -babel-code-frame@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: - chalk "^1.1.0" + chalk "^1.1.3" esutils "^2.0.2" - js-tokens "^3.0.0" + js-tokens "^3.0.2" babel-generator@^6.18.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" dependencies: babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.25.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" detect-indent "^4.0.0" jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" + lodash "^4.17.4" + source-map "^0.5.6" trim-right "^1.0.1" babel-messages@^6.23.0: @@ -252,49 +261,49 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-runtime@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" - regenerator-runtime "^0.10.0" + regenerator-runtime "^0.11.0" babel-template@^6.16.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.25.0" - babel-types "^6.25.0" - babylon "^6.17.2" - lodash "^4.2.0" + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" -babel-traverse@^6.18.0, babel-traverse@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" +babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: - babel-code-frame "^6.22.0" + babel-code-frame "^6.26.0" babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.25.0" - babylon "^6.17.2" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.18.0, babel-types@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" - dependencies: - babel-runtime "^6.22.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" + lodash "^4.17.4" + to-fast-properties "^1.0.3" -babylon@^6.17.2, babylon@^6.17.4: - version "6.17.4" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" balanced-match@^1.0.0: version "1.0.0" @@ -307,8 +316,8 @@ bcrypt-pbkdf@^1.0.0: tweetnacl "^0.14.3" binary-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" block-stream@*: version "0.0.9" @@ -322,6 +331,18 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boxen@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.2.tgz#3f1d4032c30ffea9d4b02c322eaf2ea741dcbce5" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^1.0.0" + brace-expansion@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" @@ -337,7 +358,7 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" -builtin-modules@^1.0.0: +builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -357,6 +378,14 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -368,7 +397,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.0.0, chalk@^1.1.0: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -378,15 +407,15 @@ chalk@^1.0.0, chalk@^1.1.0: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d" +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" dependencies: ansi-styles "^3.1.0" escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chokidar@^1.4.3: +chokidar@^1.4.2, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -401,6 +430,10 @@ chokidar@^1.4.3: optionalDependencies: fsevents "^1.0.0" +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -425,19 +458,15 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -color-convert@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" dependencies: color-name "^1.1.1" color-name@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" - -colors@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" @@ -457,18 +486,16 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -configstore@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" +configstore@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" dependencies: + dot-prop "^4.1.0" graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" @@ -479,13 +506,19 @@ convert-source-map@^1.3.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" core-js@^2.4.0, core-js@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + cross-spawn@^4: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" @@ -493,12 +526,24 @@ cross-spawn@^4: lru-cache "^4.0.1" which "^1.2.9" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" dependencies: boom "2.x.x" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -509,9 +554,15 @@ debug-log@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" -debug@^2.2.0, debug@^2.6.3: - version "2.6.8" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" +debug@^2.2.0, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" @@ -543,42 +594,45 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-libc@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.2.tgz#71ad5d204bf17a6a6ca8f450c61454066ef461e1" + diff@^3.1.0, diff@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9" + version "3.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" + +domino@^1.0.29: + version "1.0.30" + resolved "https://registry.yarnpkg.com/domino/-/domino-1.0.30.tgz#54a4154ecae968616680f8feba3cedff355c71f4" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" - dependencies: - end-of-stream "1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" -end-of-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" - dependencies: - once "~1.3.0" - error-ex@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" -es6-promise@^3.0.2: +es6-promise@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" @@ -602,6 +656,18 @@ event-stream@~3.3.0: stream-combiner "~0.0.4" through "~2.3.1" +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -628,9 +694,9 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" filename-regex@^2.0.0: version "2.0.1" @@ -707,11 +773,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" dependencies: nan "^2.3.0" - node-pre-gyp "^0.6.36" + node-pre-gyp "^0.6.39" fstream-ignore@^1.0.5: version "1.0.5" @@ -747,6 +813,10 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -777,32 +847,39 @@ glob@^7.0.0, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^9.0.0: +global-dirs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.0.tgz#10d34039e0df04272e262cf24224f7209434df4f" + dependencies: + ini "^1.3.4" + +globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -got@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" dependencies: - duplexify "^3.2.0" - infinity-agent "^2.0.0" + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" is-stream "^1.0.0" lowercase-keys "^1.0.0" - nested-error-stacks "^1.0.0" - object-assign "^3.0.0" - prepend-http "^1.0.0" - read-all-stream "^3.0.0" - timed-out "^2.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" handlebars@^4.0.3, handlebars@^4.0.6: - version "4.0.10" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" dependencies: async "^1.4.0" optimist "^0.6.1" @@ -839,7 +916,7 @@ has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" -hawk@~3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -874,18 +951,18 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -ignore-by-default@^1.0.0: +ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" -infinity-agent@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -893,19 +970,19 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -ini@~1.3.0: +ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + version "1.0.4" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" -invariant@^2.2.0: +invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: @@ -926,8 +1003,8 @@ is-binary-path@^1.0.0: binary-extensions "^1.0.0" is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" is-builtin-module@^1.0.0: version "1.0.0" @@ -965,12 +1042,23 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" dependencies: is-extglob "^1.0.0" +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -987,6 +1075,16 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" @@ -999,7 +1097,11 @@ is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" -is-stream@^1.0.0: +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -1034,26 +1136,26 @@ istanbul-lib-coverage@^1.1.0, istanbul-lib-coverage@^1.1.1: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" istanbul-lib-hook@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" dependencies: append-transform "^0.4.0" istanbul-lib-instrument@^1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.3.tgz#925b239163eabdd68cc4048f52c2fa4f899ecfa7" + version "1.9.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" - babylon "^6.17.4" + babylon "^6.18.0" istanbul-lib-coverage "^1.1.1" semver "^5.3.0" istanbul-lib-report@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425" dependencies: istanbul-lib-coverage "^1.1.1" mkdirp "^0.5.1" @@ -1061,34 +1163,34 @@ istanbul-lib-report@^1.1.0: supports-color "^3.1.2" istanbul-lib-source-maps@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" dependencies: - debug "^2.6.3" + debug "^3.1.0" istanbul-lib-coverage "^1.1.1" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" istanbul-reports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e" + version "1.1.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10" dependencies: handlebars "^4.0.3" -jasmine-core@~2.6.0: - version "2.6.4" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.6.4.tgz#dec926cd0a9fa287fb6db5c755fa487e74cecac5" +jasmine-core@~2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" jasmine@^2.5.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.6.0.tgz#6b22e70883e8e589d456346153b4d206ddbe217f" + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" dependencies: exit "^0.1.2" glob "^7.0.6" - jasmine-core "~2.6.0" + jasmine-core "~2.8.0" -js-tokens@^3.0.0: +js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -1125,13 +1227,13 @@ jsonify@~0.0.0: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsprim@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" dependencies: assert-plus "1.0.0" - extsprintf "1.0.2" + extsprintf "1.3.0" json-schema "0.2.3" - verror "1.3.6" + verror "1.10.0" kind-of@^3.0.2: version "3.2.2" @@ -1145,11 +1247,11 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -latest-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" dependencies: - package-json "^1.0.0" + package-json "^4.0.0" lazy-cache@^1.0.3: version "1.0.4" @@ -1241,7 +1343,7 @@ lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" -lodash@^4.13.1, lodash@^4.2.0, lodash@^4.2.1: +lodash@^4.13.1, lodash@^4.17.4, lodash@^4.2.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -1266,6 +1368,12 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +make-dir@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + dependencies: + pify "^3.0.0" + make-error@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96" @@ -1312,15 +1420,15 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: - mime-db "~1.27.0" + mime-db "~1.30.0" minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" @@ -1328,7 +1436,7 @@ minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -1336,6 +1444,10 @@ minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -1347,43 +1459,39 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + version "2.7.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" -nested-error-stacks@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" - dependencies: - inherits "~2.0.1" - -node-pre-gyp@^0.6.36: - version "0.6.36" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" mkdirp "^0.5.1" nopt "^4.0.1" npmlog "^4.0.2" rc "^1.1.7" - request "^2.81.0" + request "2.81.0" rimraf "^2.6.1" semver "^5.3.0" tar "^2.2.1" tar-pack "^3.4.0" nodemon@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" + version "1.12.1" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.12.1.tgz#996a56dc49d9f16bbf1b78a4de08f13634b3878d" dependencies: - chokidar "^1.4.3" - debug "^2.2.0" - es6-promise "^3.0.2" - ignore-by-default "^1.0.0" + chokidar "^1.7.0" + debug "^2.6.8" + es6-promise "^3.3.1" + ignore-by-default "^1.0.1" lodash.defaults "^3.1.2" - minimatch "^3.0.0" - ps-tree "^1.0.1" - touch "1.0.0" + minimatch "^3.0.4" + ps-tree "^1.1.0" + touch "^3.1.0" undefsafe "0.0.3" - update-notifier "0.5.0" + update-notifier "^2.2.0" nopt@^4.0.1: version "4.0.1" @@ -1407,12 +1515,18 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -1462,11 +1576,7 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -1483,12 +1593,6 @@ once@^1.3.0, once@^1.3.3: dependencies: wrappy "1" -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -1510,19 +1614,25 @@ os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.0, osenv@^0.1.4: +osenv@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -package-json@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" dependencies: - got "^3.2.0" - registry-url "^3.0.0" + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" parse-glob@^3.0.4: version "3.0.4" @@ -1543,12 +1653,6 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parse5@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510" - dependencies: - "@types/node" "^6.0.46" - path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -1559,6 +1663,14 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" @@ -1585,6 +1697,10 @@ pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -1601,7 +1717,7 @@ pkg-dir@^1.0.0: dependencies: find-up "^1.0.0" -prepend-http@^1.0.0: +prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -1617,7 +1733,7 @@ progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" -ps-tree@^1.0.1: +ps-tree@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" dependencies: @@ -1642,22 +1758,15 @@ randomatic@^1.1.3: is-number "^3.0.0" kind-of "^4.0.0" -rc@^1.0.1, rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: + version "1.2.2" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -1673,7 +1782,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -1700,43 +1809,45 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -redux@^3.5.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.1.tgz#bfc535c757d3849562ead0af18ac52122cd7268e" +redux@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" dependencies: lodash "^4.2.1" lodash-es "^4.2.1" loose-envify "^1.1.0" symbol-observable "^1.0.3" -reflect-metadata@^0.1.10: +reflect-metadata@0.1.10, reflect-metadata@^0.1.2: version "0.1.10" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" -reflect-metadata@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.3.tgz#64f8a41974e4f5a5aa9978dac54cfd442dc2f1d5" - -regenerator-runtime@^0.10.0: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" -registry-url@^3.0.0: +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" dependencies: rc "^1.0.1" remove-trailing-separator@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" repeat-element@^1.1.2: version "1.1.2" @@ -1746,19 +1857,13 @@ repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -repeating@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" - dependencies: - is-finite "^1.0.0" - repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" -request@^2.81.0: +request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -1798,8 +1903,8 @@ resolve-from@^2.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" resolve@^1.1.6, resolve@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" dependencies: path-parse "^1.0.5" @@ -1810,14 +1915,14 @@ right-align@^0.1.1: align-text "^0.1.1" rimraf@2, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" -rxjs@^5.0.1: - version "5.4.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.2.tgz#2a3236fcbf03df57bae06fd6972fd99e5c08fcf7" +rxjs@^5.5.2: + version "5.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3" dependencies: symbol-observable "^1.0.1" @@ -1831,9 +1936,9 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -1843,6 +1948,16 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + shelljs@^0.7.0: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" @@ -1855,7 +1970,7 @@ signal-exit@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-2.1.2.tgz#375879b1f92ebc3b334480d038dc546a6d558564" -signal-exit@^3.0.0, signal-exit@^3.0.1: +signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -1870,8 +1985,8 @@ sntp@1.x.x: hoek "2.x.x" source-map-support@^0.4.0, source-map-support@^0.4.2: - version "0.4.15" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" @@ -1881,9 +1996,9 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" spawn-wrap@1.2.4: version "1.2.4" @@ -1936,16 +2051,6 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -string-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" - dependencies: - strip-ansi "^3.0.0" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -1954,6 +2059,13 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string_decoder@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" @@ -1970,6 +2082,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -1980,6 +2098,10 @@ strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -1995,8 +2117,8 @@ supports-color@^3.1.2: has-flag "^1.0.0" supports-color@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" dependencies: has-flag "^2.0.0" @@ -2005,8 +2127,8 @@ symbol-observable@^1.0.1, symbol-observable@^1.0.3: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" dependencies: debug "^2.2.0" fstream "^1.0.10" @@ -2025,6 +2147,12 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + test-exclude@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" @@ -2039,23 +2167,23 @@ through@2, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -timed-out@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" -to-fast-properties@^1.0.1: +to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" -touch@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" dependencies: nopt "~1.0.10" tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" @@ -2100,9 +2228,9 @@ tsconfig@^6.0.0: strip-bom "^3.0.0" strip-json-comments "^2.0.0" -tsickle@^0.21.0: - version "0.21.6" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.21.6.tgz#53b01b979c5c13fdb13afb3fb958177e5991588d" +tsickle@^0.24.0: + version "0.24.1" + resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.24.1.tgz#039343b205bf517a333b0703978892f80a7d848e" dependencies: minimist "^1.2.0" mkdirp "^0.5.1" @@ -2110,15 +2238,16 @@ tsickle@^0.21.0: source-map-support "^0.4.2" tslib@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" + version "1.8.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.0.tgz#dc604ebad64bcbf696d613da6c954aa0e7ea1eb6" -tslint@^5.1.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.5.0.tgz#10e8dab3e3061fa61e9442e8cee3982acf20a6aa" +tslint@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.8.0.tgz#1f49ad5b2e77c76c3af4ddcae552ae4e3612eb13" dependencies: babel-code-frame "^6.22.0" - colors "^1.1.2" + builtin-modules "^1.1.1" + chalk "^2.1.0" commander "^2.9.0" diff "^3.2.0" glob "^7.1.1" @@ -2126,11 +2255,11 @@ tslint@^5.1.0: resolve "^1.3.2" semver "^5.3.0" tslib "^1.7.1" - tsutils "^2.5.1" + tsutils "^2.12.1" -tsutils@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.5.1.tgz#c2001390c79eec1a5ccfa7ac12d599639683e0cf" +tsutils@^2.12.1: + version "2.12.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.12.2.tgz#ad58a4865d17ec3ddb6631b6ca53be14a5656ff3" dependencies: tslib "^1.7.1" @@ -2170,10 +2299,14 @@ typedoc@^0.9.0: typedoc-default-themes "^0.5.0" typescript "2.4.1" -typescript@2.4.1, typescript@^2.4.1: +typescript@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.1.tgz#c3ccb16ddaa0b2314de031e7e6fee89e5ba346bc" +typescript@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" + uglify-js@^2.6: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -2195,30 +2328,44 @@ undefsafe@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" -update-notifier@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" dependencies: - chalk "^1.0.0" - configstore "^1.0.0" + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-installed-globally "^0.1.0" is-npm "^1.0.0" - latest-version "^1.0.0" - repeating "^1.1.2" + latest-version "^3.0.0" semver-diff "^2.0.0" - string-length "^1.0.0" + xdg-basedir "^3.0.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - uuid@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" @@ -2236,19 +2383,21 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: - extsprintf "1.0.2" + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" which@^1.2.4, which@^1.2.9: - version "1.2.14" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" @@ -2258,6 +2407,12 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -2281,7 +2436,7 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^1.1.2, write-file-atomic@^1.1.4: +write-file-atomic@^1.1.4: version "1.3.4" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" dependencies: @@ -2289,11 +2444,17 @@ write-file-atomic@^1.1.2, write-file-atomic@^1.1.4: imurmurhash "^0.1.4" slide "^1.1.5" -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" dependencies: - os-homedir "^1.0.0" + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" xhr2@^0.1.4: version "0.1.4"