├── .babelrc ├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── sample ├── main.ts └── widget.ts ├── src ├── default │ ├── index.ts │ ├── main.ts │ └── worker.ts ├── dom │ ├── index.ts │ ├── main.ts │ └── worker.ts ├── main.ts ├── types.ts └── worker.ts ├── tsconfig.json ├── typings.json ├── webpack.config.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"], 3 | "plugins": ["transform-runtime"] 4 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | build/* 3 | npm-debug.log 4 | typings -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Simon Diep 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 | # Cycle Sandbox 🏖️ 2 | 3 | The purpose of this project is to enable you to run Cycle Components in Web Workers, and mount them side-by-side Cycle Components in the main thread. 4 | 5 | This is enabled by the Cycle Architecture, because all side-effects happen in Drivers. 6 | 7 | Cycle Sandbox provides a way to use Drivers in a Web Worker thread, which otherwise wouldn't be possible. 8 | 9 | If you are unfamiliar with the Cycle Architecture and what Drivers and Components are, you can learn from the official Cycle.js documentation [here](https://cycle.js.org). 10 | 11 | As an example @cycle/http works in a Web Worker thread without any modifications. 12 | 13 | On the other hand @cycle/dom will not work, because the side-effects in @cycle/dom mandate DOM access, and DOM references only exist in our main thread, thus our Web Worker will throw an error. 14 | 15 | To solve this problem we need to establish connections between the DOM source in the main thread and the DOM source in the Web Worker. Likewise we must establish a connection between the DOM sink in the Web Worker and the DOM sink in the main thread. 16 | 17 | ### Establishing Connections with Connectors 18 | 19 | We call these connections, simply connections, and to establish them we need to write two Connectors. 20 | A Connector for main, and a Connector for the Web Worker. 21 | 22 | A Connector in the main thread returns a Component mapping a source to a sink, and a Connector in the Web Worker returns a Driver mapping a sink to a source. 23 | 24 | You can see the type signatures of Connectors in ```/src/types.ts```. 25 | 26 | ### Bundled Connectors 27 | 28 | We aim to provide connectors for all @cycle/* drivers that can't run in a Worker thread, as of now we provide a Connector for @cycle/dom. 29 | 30 | We also provide a set of default connectors ```/src/default```. You can use these Connectors for any Driver that provides a Stream as source, and expects a Stream as sink. It is important that the value of the Stream is contained and can be safely transferred between threads, to keep things simple anything that can be serialized to JSON would pass these criteria. Because these connectors have a symmetrical type-signature, we can use the same connector for the main and worker thread. 31 | 32 | ### A Note on Cycle Run 33 | 34 | As you may have seen in ```/sample/widget.ts``` we are not using ```@cycle/run``` directly. This is because we want to save resources, running thousands of Web Workers will make most browsers grumpy. Instead, Cycle Sandbox will run multiple instances of the same Component in the same Web Worker, they will remain totally isolated in the Web Worker, and you need not worry about information leaking between instances of the same Component. 35 | 36 | Instead of using ```run(main, drivers)``` we have a command called ```setup(main, drivers, connectors)```. It is very similar to run, except it won't run anything immediately, it will wait until the main thread asks to start a new instance. These processes are all maintained in the innards of ```@cycle/sandbox``` feel free to browse the source code to get a better understanding of how this works, though this is not needed in order to use this library. 37 | 38 | When invoking ```setup(main, drivers, connectors)```, make sure that drivers such as @cycle/http are declared in the drivers object, and only connectors are declared in the connectors object. The connectors object will initialize the connections and provide the resulting driver as a source in your main function. 39 | 40 | ### Mounting a Component from the Main Thread 41 | 42 | To mount a Component in a Web Worker, you must provide the Sandbox driver to your application. 43 | Sandbox.select is very similar to the setup function described above, the bundle is a string identifying your resource, sources are the sources you desire to connect to your Web Worker. For every source you must provide a connector with the same key, e.g. ```let sources = { DOM : sources.DOM }``` then ```let connectors = { DOM : DOMMainConnector }```. 44 | 45 | Finally you must specify which sinks you expect from the Component, this is necessary because sinks are bound synchronously in the Cycle Architecture, but are only known asynchronously in Cycle Sandbox. 46 | 47 | ```sources.Sandbox.select(bundle, sources, connectors, expectedSinks)``` 48 | 49 | #### A Note on Performance 50 | 51 | For most cases running your Cycle Components in a Web Worker will provide no performance benefits, the purpose of this project is more to prove that we can declare complex UI in a separate thread, and we can do so without significant performance drawbacks. 52 | 53 | 54 | ##### Contributors: 55 | - [@MariusKazlauskas](https://github.com/MariusKazlauskas) 56 | - [@michalvankodev](https://github.com/michalvankodev) 57 | 58 | ##### License 59 | 60 | MIT 61 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cycle/sandbox", 3 | "version": "0.0.3", 4 | "description": "Sandbox UI Components in Web Workers with the Cycle Architecture", 5 | "license": "MIT", 6 | "scripts": { 7 | "build": "webpack", 8 | "typings:install": "typings install --save", 9 | "postinstall": "rm -rf typings && typings install" 10 | }, 11 | "devDependencies": { 12 | "@cycle/http": "^13.2.0", 13 | "@cycle/most-run": "^7.1.0", 14 | "babel-core": "^6.24.1", 15 | "babel-loader": "^7.0.0", 16 | "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", 17 | "babel-plugin-transform-runtime": "^6.23.0", 18 | "babel-preset-es2015": "^6.24.1", 19 | "ts-loader": "^2.0.3", 20 | "typings": "^1.3.3", 21 | "webpack": "^2.1.0-beta.21" 22 | }, 23 | "dependencies": { 24 | "@cycle/dom": "^17.1.0", 25 | "@cycle/isolate": "^2.1.0", 26 | "@cycle/run": "^3.1.0", 27 | "most": "^1.2.2", 28 | "typescript": "^2.2.2", 29 | "uuid": "^3.0.1", 30 | "xstream": "^10.5.0" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /sample/main.ts: -------------------------------------------------------------------------------- 1 | import { Sources, Sinks } from '@cycle/run'; 2 | import { run } from '@cycle/most-run'; 3 | import { makeDOMDriver, h, VNode } from '@cycle/dom'; 4 | import { combineArray, Stream, periodic, just } from 'most'; 5 | import { makeSandboxDriver } from '../src/main'; 6 | import { DOMMainConnector } from '../src/dom'; 7 | import { makeHTTPDriver } from '@cycle/http'; 8 | import isolate from '@cycle/isolate'; 9 | 10 | import { Component as SubComponent } from './widget'; 11 | function Component ({Sandbox, ...sources}: Sources & {Sandbox: any} ): Sinks { 12 | const sub = SubComponent(sources); 13 | const vdom$ = 14 | just(null) 15 | .map(() => combineArray( 16 | (...children) => h('div', {}, children as Array), 17 | Array(4).fill(null).map(() => Sandbox.select( 18 | './widget.js', 19 | { DOM: sources.DOM }, 20 | ['DOM'], 21 | { 22 | DOM: DOMMainConnector 23 | } 24 | ).DOM).concat(sub.DOM))) 25 | .switch() 26 | 27 | return { 28 | DOM: vdom$, 29 | HTTP: sub.HTTP 30 | }; 31 | }; 32 | 33 | run(Component, { 34 | HTTP: makeHTTPDriver(), 35 | DOM : makeDOMDriver('#app'), 36 | Sandbox: makeSandboxDriver() 37 | }); -------------------------------------------------------------------------------- /sample/widget.ts: -------------------------------------------------------------------------------- 1 | import { periodic, just, combineArray, Stream, merge } from 'most'; 2 | import { setup } from '../src/worker'; 3 | import { DOMWorkerConnector } from '../src/dom/index'; 4 | import { Sources, Sinks } from '@cycle/run'; 5 | import { run } from '@cycle/most-run'; 6 | import { makeHTTPDriver } from '@cycle/http'; 7 | import { h, VNodeData } from '@cycle/dom'; 8 | 9 | const SIZE = 256; 10 | 11 | function line(offset, frequency) { 12 | const radians = Math.PI * frequency / SIZE; 13 | return Array(SIZE) 14 | .fill(null) 15 | .map((n, i) => [i, Math.sin((i + offset) * radians) * SIZE / 2 + SIZE / 2].join(',')).join(' ') 16 | } 17 | 18 | export function Component(sources: Sources): Sinks { 19 | const multiply$ = merge( 20 | sources.DOM 21 | .select('svg') 22 | .events('mousedown', { preventDefault : true }), 23 | sources.DOM 24 | .select('svg') 25 | .events('touchstart', { preventDefault : true }) 26 | 27 | ) 28 | .map(() => 0).scan((acc, n) => acc * 1.1, 1) 29 | 30 | const title$ = sources 31 | .HTTP 32 | .select() 33 | .switch() 34 | .map(e => e.body.message) as Stream; 35 | 36 | const tick$ = periodic(1000 / 60, 0) 37 | .scan((acc, n) => acc + 1, 0); 38 | return { 39 | HTTP: just(`./data.json?${Math.random()}`), 40 | DOM: 41 | combineArray(Array, [tick$, multiply$, title$]) 42 | .map(([n, freq, title]) => ( 43 | h('svg', { 44 | attrs: { 45 | title: title, 46 | width: SIZE, 47 | height: SIZE 48 | } 49 | }, 50 | 51 | [ 52 | h('polyline', 53 | { 54 | attrs: { 55 | points: line(n, freq) 56 | } 57 | } 58 | ), 59 | h('text', { 60 | 61 | attrs: { 62 | fontSize: 12, 63 | fill: 'black', 64 | x: 0, 65 | y: 12 66 | } 67 | }, 68 | title 69 | ) 70 | ] 71 | ) 72 | ) 73 | ) 74 | }; 75 | } 76 | 77 | setup(Component, { 78 | HTTP: makeHTTPDriver() 79 | }, { 80 | DOM: DOMWorkerConnector 81 | }, run); -------------------------------------------------------------------------------- /src/default/index.ts: -------------------------------------------------------------------------------- 1 | export { defaultMainConnector } from './main'; 2 | export { defaultWorkerConnector } from './worker'; -------------------------------------------------------------------------------- /src/default/main.ts: -------------------------------------------------------------------------------- 1 | import { Subscription, Stream, default as xs } from 'xstream'; 2 | import fromEvent from 'xstream/extra/fromevent'; 3 | import { MainConnector } from '../types'; 4 | import { 5 | adapt 6 | } from '@cycle/run/lib/adapt'; 7 | 8 | export const defaultMainConnector: MainConnector = (rx, tx) => { 9 | return (stream$: Stream) => { 10 | let receiver: Subscription; 11 | let sender: Subscription; 12 | return adapt(xs.create({ 13 | start(observer) { 14 | if (stream$) { 15 | tx.start(); 16 | sender = stream$.subscribe({ 17 | next(event) { 18 | tx.postMessage(event); 19 | }, 20 | error(error) { 21 | console.error(error); 22 | }, 23 | complete() { 24 | 25 | } 26 | }); 27 | } { 28 | rx.start(); 29 | receiver = fromEvent(rx, 'message') 30 | .subscribe({ 31 | next(event: MessageEvent) { 32 | observer.next(event.data); 33 | }, 34 | error(error) { 35 | console.error(error); 36 | }, 37 | complete() { 38 | 39 | } 40 | }); 41 | } 42 | }, 43 | stop() { 44 | if (sender) { 45 | sender.unsubscribe(); 46 | } 47 | if (receiver) { 48 | receiver.unsubscribe(); 49 | } 50 | rx.close(); 51 | tx.close(); 52 | } 53 | })) 54 | } 55 | } -------------------------------------------------------------------------------- /src/default/worker.ts: -------------------------------------------------------------------------------- 1 | import { WorkerConnector } from '../types'; 2 | import { defaultMainConnector } from './main'; 3 | export const defaultWorkerConnector: WorkerConnector = defaultMainConnector; -------------------------------------------------------------------------------- /src/dom/index.ts: -------------------------------------------------------------------------------- 1 | export { DOMMainConnector } from './main'; 2 | export { DOMWorkerConnector } from './worker'; -------------------------------------------------------------------------------- /src/dom/main.ts: -------------------------------------------------------------------------------- 1 | import { 2 | FantasyObservable, 3 | FantasySubscription 4 | } from '@cycle/run'; 5 | 6 | import { 7 | adapt 8 | } from '@cycle/run/lib/adapt'; 9 | 10 | import { 11 | DOMSource, 12 | VNode, 13 | h, 14 | EventsFnOptions 15 | } from '@cycle/dom'; 16 | 17 | import { default as xs, Stream, Subscription } from 'xstream'; 18 | 19 | import fromEvent from 'xstream/extra/fromevent'; 20 | 21 | import { MainConnector } from '../types'; 22 | 23 | import { default as uuid} from 'uuid/v4'; 24 | 25 | export enum WorkerDOMMessageCommand { 26 | vnode, 27 | attach, 28 | detach 29 | }; 30 | 31 | export type WorkerEventFnOptions = { preventDefault?: boolean } & EventsFnOptions; 32 | 33 | export type WorkerDOMEvent = { 34 | listenerId: string, 35 | payload: EventSynthesis 36 | } 37 | 38 | export type WorkerDOMAttachMessage = { 39 | selector: string, 40 | events: string, 41 | listenerId: string, 42 | options?: WorkerEventFnOptions 43 | } 44 | 45 | export type WorkerDOMDettachMessage = { 46 | listenerId: string 47 | } 48 | 49 | export type WorkerDOMVNodeMessage = VNode; 50 | 51 | export type WorkerDOMMessage = { 52 | cmd: WorkerDOMMessageCommand, 53 | payload: WorkerDOMAttachMessage | WorkerDOMDettachMessage | WorkerDOMVNodeMessage 54 | }; 55 | export type JSONValue = number | string | boolean | JSONObject; 56 | export type JSONObject = { 57 | [key: string] : JSONValue | Array 58 | }; 59 | 60 | export type EventSynthesis = JSONObject; 61 | 62 | function eventKeys(event: Event | Touch): string[] { 63 | const keys = []; 64 | for (const key in event) { 65 | keys.push(key); 66 | } 67 | return keys; 68 | } 69 | 70 | function synthesizer(event: Event | Touch): EventSynthesis { 71 | return eventKeys(event).reduce((acc, key) => { 72 | const value = event[key]; 73 | const type = typeof value; 74 | if ( 75 | type === 'string' || 76 | type === 'number' || 77 | type === 'boolean' 78 | ) { 79 | return { 80 | ...acc, 81 | [key]: value 82 | }; 83 | } else if (value instanceof Element) { 84 | const tag = value.tagName; 85 | const id = value.id ? `#${value.id}` : ''; 86 | const classes = value.classList.length 87 | ? Array(...value.classList).map(c => `.${c}`).join('') 88 | : ''; 89 | return { 90 | ...acc, 91 | [key] : tag + id + classes 92 | }; 93 | } else if (window['TouchList'] && value instanceof window['TouchList']) { 94 | return { 95 | ...acc, 96 | [key] : Array.prototype.slice.call(value).map(synthesizer) 97 | } 98 | } else { 99 | 100 | return acc; 101 | } 102 | }, {}); 103 | } 104 | 105 | function synthesizeEvent(event: Event, listenerId: string): WorkerDOMEvent { 106 | 107 | const payload = synthesizer(event); 108 | return { 109 | payload, 110 | listenerId 111 | }; 112 | } 113 | 114 | export const DOMMainConnector: MainConnector = (rx, tx) => { 115 | let listener: FantasySubscription; 116 | // table containing DOM listener attachments 117 | const attachments: { [key: string]: FantasySubscription } = { 118 | } 119 | return (source) => { 120 | // this is the sink of VNode 121 | return adapt(xs.create({ 122 | start(observer) { 123 | rx.start(); 124 | tx.start(); 125 | listener = fromEvent(rx, 'message') 126 | .map(e => e.data as WorkerDOMMessage) 127 | .subscribe({ 128 | next(message) { 129 | if (message.cmd === WorkerDOMMessageCommand.vnode) { 130 | const vnode = message.payload as VNode; 131 | observer.next(vnode); 132 | } else if (message.cmd === WorkerDOMMessageCommand.attach) { 133 | const payload = message.payload as WorkerDOMAttachMessage; 134 | const options = payload.options || {}; 135 | attachments[payload.listenerId] = (xs.from(source 136 | .select(payload.selector) 137 | .events(payload.events, options)) as FantasyObservable) 138 | .subscribe({ 139 | next(event: Event) { 140 | if (options.preventDefault) { 141 | event.preventDefault(); 142 | } 143 | tx.postMessage( 144 | synthesizeEvent(event, payload.listenerId) 145 | ) 146 | }, 147 | error(error) { 148 | console.error(error); 149 | }, 150 | complete() { 151 | 152 | } 153 | }) 154 | } else if (message.cmd === WorkerDOMMessageCommand.detach) { 155 | const payload = message.payload as WorkerDOMDettachMessage; 156 | attachments[payload.listenerId].unsubscribe(); 157 | delete attachments[payload.listenerId]; 158 | } 159 | }, 160 | error(error) { 161 | console.error(error); 162 | }, 163 | complete() { 164 | 165 | } 166 | }); 167 | }, 168 | stop() { 169 | rx.close(); 170 | tx.close(); 171 | listener.unsubscribe(); 172 | Object.keys(attachments).forEach((key) => { 173 | attachments[key].unsubscribe(); 174 | delete attachments[key]; 175 | }); 176 | } 177 | })) 178 | } 179 | } -------------------------------------------------------------------------------- /src/dom/worker.ts: -------------------------------------------------------------------------------- 1 | import { WorkerConnector } from '../types'; 2 | import { default as xs, Stream, Subscription} from 'xstream'; 3 | import { VNode, h } from '@cycle/dom'; 4 | import { default as uuid} from 'uuid/v4'; 5 | 6 | import fromEvent from 'xstream/extra/fromevent'; 7 | import sampleCombine from 'xstream/extra/samplecombine'; 8 | import dropRepeats from 'xstream/extra/droprepeats'; 9 | 10 | import { 11 | adapt 12 | } from '@cycle/run/lib/adapt'; 13 | 14 | import { 15 | WorkerDOMMessage, 16 | WorkerDOMMessageCommand, 17 | EventSynthesis, 18 | WorkerDOMEvent, 19 | WorkerEventFnOptions 20 | } from './main'; 21 | 22 | import { 23 | SandboxMessageCommand 24 | } from '../main' 25 | 26 | export const DOMWorkerConnector: WorkerConnector = (rx, tx) => { 27 | rx.start(); 28 | tx.start(); 29 | return (sink$: Stream): any => { 30 | const raf$ = fromEvent(self, 'message').filter(e => e.data.cmd === SandboxMessageCommand.raf); 31 | raf$.compose(sampleCombine(sink$)) 32 | .map(([_, vnode]) => vnode) 33 | .compose(dropRepeats()) 34 | .subscribe({ 35 | next (vnode) { 36 | const message: WorkerDOMMessage = { 37 | cmd: WorkerDOMMessageCommand.vnode, 38 | payload: vnode 39 | } 40 | tx.postMessage(message); 41 | }, 42 | error (error) { 43 | console.error(error); 44 | }, 45 | complete () { 46 | rx.close(); 47 | tx.close(); 48 | } 49 | }) 50 | 51 | function select (selector: string) { 52 | return { 53 | select: (suffix: string) => select(`${selector} ${suffix} `), 54 | events: (events: string, options?: WorkerEventFnOptions): Stream => { 55 | const listenerId = uuid(); 56 | let subscription: Subscription; 57 | return adapt(xs.create({ 58 | start(observer) { 59 | const attachMessage = { 60 | cmd: WorkerDOMMessageCommand.attach, 61 | payload: { 62 | selector: selector, 63 | events: events, 64 | options: options, 65 | listenerId 66 | } 67 | } 68 | tx.postMessage(attachMessage); 69 | subscription = fromEvent(rx, 'message') 70 | .filter(e => (e.data as WorkerDOMEvent).listenerId === listenerId) 71 | .subscribe({ 72 | next (event) { 73 | const payload = event.data.payload as EventSynthesis; 74 | observer.next(payload); 75 | }, 76 | error (error) { 77 | console.error(error) 78 | }, 79 | complete () { 80 | 81 | } 82 | }) 83 | }, 84 | stop() { 85 | const detachMessage = { 86 | cmd: WorkerDOMMessageCommand.detach, 87 | payload: { 88 | listenerId 89 | } 90 | } 91 | tx.postMessage(detachMessage); 92 | subscription.unsubscribe(); 93 | } 94 | }) as Stream); 95 | } 96 | } 97 | } 98 | const escape = { 99 | 'document' : 1, 100 | ':root' : 1, 101 | 'body' : 1 102 | }; 103 | return { 104 | select, 105 | isolateSource (source: any, scope: string) { 106 | return { 107 | select: (sel) => { 108 | if (escape[sel]) { 109 | return select(sel); 110 | } else { 111 | return select(`[x-scope="${scope}"] ${sel} `) 112 | } 113 | } 114 | } 115 | }, 116 | // optimistic isoloate 117 | isolateSink (sink: Stream, scope: string) { 118 | return sink.map( 119 | (vnode: VNode): VNode => h('span', {attrs: {'x-scope': scope}}, [vnode]) 120 | ); 121 | } 122 | } 123 | } 124 | } -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Driver, 3 | FantasyObservable, 4 | FantasyObserver, 5 | DisposeFunction, 6 | Sources, 7 | Sinks, 8 | FantasySubscription, 9 | } from '@cycle/run' 10 | 11 | import { 12 | adapt 13 | } from '@cycle/run/lib/adapt'; 14 | 15 | import isolate from '@cycle/isolate'; 16 | 17 | import { Stream } from 'xstream'; 18 | import xs from 'xstream'; 19 | import fromEvent from 'xstream/extra/fromevent'; 20 | import { MainConnectors } from './types'; 21 | 22 | import { default as uuid} from 'uuid/v4'; 23 | 24 | export enum SandboxMessageCommand { 25 | init, 26 | start, 27 | stop, 28 | raf 29 | } 30 | 31 | type MessagePorts = { 32 | [type: string]: MessagePort 33 | } 34 | 35 | 36 | type JSONValue = { 37 | [key: string]: boolean | number | string | Array | JSONValue 38 | }; 39 | 40 | 41 | export type SandboxMessage = { 42 | cmd: SandboxMessageCommand, 43 | ports?: MessagePorts, 44 | instanceId: string 45 | } 46 | 47 | type MessageChannels = { 48 | [type: string]: MessageChannel 49 | } 50 | 51 | const unique = (n: any, i: number, a: Array) => a.indexOf(n) === i; 52 | 53 | export function createChannels(channels: string[]): MessageChannels { 54 | return channels.reduce((acc: MessageChannels, key: string) => { 55 | return { 56 | [key]: new MessageChannel(), 57 | ...acc 58 | } 59 | }, {}); 60 | } 61 | 62 | export function portMap(channels: MessageChannels, portNumber: 1 | 2): MessagePorts { 63 | return Object.keys(channels).reduce((acc, key) => ({ 64 | [key]: channels[key][`port${portNumber}`] 65 | }), {}); 66 | } 67 | 68 | export function makeSandboxDriver(): Driver { 69 | 70 | 71 | let raf: boolean; 72 | 73 | const raf$ = xs.create({ 74 | start(listener) { 75 | raf = true; 76 | const r = () => requestAnimationFrame((e) => { 77 | listener.next(e); 78 | if (raf) { 79 | r(); 80 | } 81 | }); 82 | r(); 83 | }, 84 | stop() { 85 | raf = false; 86 | } 87 | }); 88 | 89 | 90 | const workers: { [key: string]: Worker } = { 91 | 92 | } 93 | 94 | const instances: { [key: string]: number } = { 95 | 96 | } 97 | 98 | const timeoutID: { [key: string]: number } = { 99 | 100 | } 101 | const rafSubscriptions: {[key: string]: FantasySubscription} = { 102 | 103 | }; 104 | 105 | function open(resource: string): Worker { 106 | // clear the timeout 107 | clearTimeout(timeoutID[resource]); 108 | // fetch worker from cache or spawn it 109 | let worker = workers[resource] || (() => { 110 | rafSubscriptions[resource] = // send RAF signal to webworker 111 | raf$.map((): SandboxMessage => ({ 112 | cmd: SandboxMessageCommand.raf, 113 | instanceId : '' 114 | })).subscribe({ 115 | next(raf) { 116 | worker.postMessage(raf); 117 | }, 118 | error() { 119 | 120 | }, 121 | complete() { 122 | 123 | } 124 | }) 125 | return new Worker(resource); 126 | })(); 127 | // get the current count 128 | let count = instances[resource] || 0; 129 | // assing the worker to the cache 130 | workers[resource] = worker; 131 | // increment the instances count 132 | instances[resource] = count + 1; 133 | 134 | // return the worker reference 135 | return worker; 136 | } 137 | 138 | function close(resource: string): void { 139 | // fetch worker from cache 140 | let worker: Worker = workers[resource]; 141 | // fetch instance count 142 | let count = instances[resource]; 143 | // if instance count is 144 | if (count < 2) { 145 | // prepare to terminate the worker 146 | clearTimeout(timeoutID[resource]); 147 | timeoutID[resource] = self.setTimeout(() => { 148 | worker.terminate(); 149 | delete workers[resource]; 150 | }, 0); 151 | rafSubscriptions[resource].unsubscribe(); 152 | } else { 153 | // do nothing 154 | } 155 | // decrement the count 156 | instances[resource] = count - 1; 157 | } 158 | 159 | return () => { 160 | const sandbox = ( 161 | resource: string, 162 | sources: Sources, 163 | connectors: MainConnectors = {} 164 | ) => { 165 | let channels: MessageChannels; 166 | let subscription: FantasySubscription; 167 | let worker: Worker; 168 | let receivePorts: MessagePorts = {}; 169 | let rafSubscription: FantasySubscription; 170 | const instanceId = uuid(); 171 | return adapt(xs.create({ 172 | start(observer) { 173 | const sourceKeys = Object.keys(sources); 174 | channels = createChannels(sourceKeys); 175 | // { DOM: channel} 176 | 177 | worker = open(resource); 178 | 179 | 180 | 181 | 182 | // make a object of destination ports (rx in thread) wiil be transfered to thread 183 | const transferPorts = portMap(channels, 2); 184 | 185 | // make a object of entry ports (tx in main) 186 | const sendPorts = portMap(channels, 1); 187 | 188 | const message: SandboxMessage = { 189 | cmd: SandboxMessageCommand.init, 190 | ports: transferPorts, 191 | instanceId 192 | }; 193 | // send the init command and transfer the destination ports 194 | worker.postMessage(message, Object.values(transferPorts)); 195 | 196 | // listener method 197 | function listener(message: SandboxMessage) { 198 | receivePorts = message.ports; 199 | 200 | const sinks = [ 201 | ...Object.keys(sendPorts), 202 | ...Object.keys(receivePorts) 203 | ] 204 | .filter(unique) 205 | .reduce((acc: Sinks, key: string) => { 206 | if (connectors[key]) { 207 | return { 208 | ...acc, 209 | [key]: connectors[key]( 210 | receivePorts[key], 211 | sendPorts[key] 212 | )(sources[key]) 213 | } 214 | } 215 | }, {}); 216 | observer.next(sinks); 217 | const startMessage: SandboxMessage = { 218 | cmd: SandboxMessageCommand.start, 219 | instanceId, 220 | } 221 | worker.postMessage(startMessage); 222 | } 223 | 224 | subscription = fromEvent(worker, 'message') 225 | .map((event: MessageEvent) => event.data as SandboxMessage) 226 | .filter(message => message.cmd === SandboxMessageCommand.init && message.instanceId === instanceId) 227 | .take(1) 228 | .subscribe({ 229 | next: listener, 230 | error(error) { console.error(error) }, 231 | complete() { } 232 | }) 233 | }, 234 | stop() { 235 | Object.values(channels) 236 | .forEach(channel => 237 | channel.port1.close() 238 | ) 239 | Object.values(receivePorts) 240 | .forEach(port => port.close()); 241 | channels = null; 242 | worker.postMessage({ 243 | instanceId, 244 | cmd: SandboxMessageCommand.stop 245 | } as SandboxMessage) 246 | close(resource); 247 | subscription.unsubscribe(); 248 | } 249 | })) 250 | }; 251 | 252 | function select( 253 | resource: string, 254 | { Sandbox, ...sources }: { Sandbox: any } & Sources, 255 | expectedSinks: string[], 256 | connectors: MainConnectors = {}): Sinks { 257 | return isolate((sources) => { 258 | const sinks$ = xs.from(sandbox(resource, sources, connectors)); 259 | return expectedSinks.reduce((acc, key) => ({ 260 | ...acc, 261 | [key]: adapt(sinks$.debug('sinks').map((sinks) => xs.from(sinks[key])).flatten()) 262 | }), {}); 263 | })(sources); 264 | } 265 | 266 | return { 267 | select 268 | }; 269 | } 270 | }; -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'xstream'; 2 | 3 | export type WorkerConnector = (rx: MessagePort, tx: MessagePort) => (sink: Stream) => any; 4 | export type MainConnector = (rx: MessagePort, tx: MessagePort) => (source: any) => Stream; 5 | export type WorkerConnectors = { 6 | [key: string]: WorkerConnector 7 | } 8 | export type MainConnectors = { 9 | [key: string]: MainConnector 10 | }; -------------------------------------------------------------------------------- /src/worker.ts: -------------------------------------------------------------------------------- 1 | declare const self: Worker; 2 | import fromEvent from 'xstream/extra/fromevent'; 3 | import xs from 'xstream'; 4 | import { Stream, Subscription} from 'xstream'; 5 | import { default as uuid} from 'uuid/v4'; 6 | 7 | import { 8 | Drivers, 9 | run as defaultRun, 10 | CycleProgram, 11 | FantasyObservable, 12 | DisposeFunction, 13 | Sources, 14 | FantasySinks, 15 | } from '@cycle/run'; 16 | 17 | import { 18 | VNode 19 | } from '@cycle/dom'; 20 | 21 | import { 22 | adapt 23 | } from '@cycle/run/lib/adapt'; 24 | 25 | import { 26 | SandboxMessage, 27 | SandboxMessageCommand, 28 | createChannels, 29 | portMap 30 | } from './main'; 31 | 32 | import { WorkerConnectors } from './types'; 33 | 34 | export function setup ( 35 | component: (Sources: Sources) => FantasySinks, 36 | drivers: Drivers, 37 | connectors: WorkerConnectors = {}, 38 | run = defaultRun 39 | ) { 40 | fromEvent(self, 'message') 41 | .map((event: MessageEvent) => event.data as SandboxMessage) 42 | .filter(message => message.cmd === SandboxMessageCommand.init) 43 | .subscribe({ 44 | next: message => { 45 | let dispose: DisposeFunction; 46 | const instanceId = message.instanceId; 47 | const receivePorts = message.ports; 48 | let channels = createChannels(Object.keys(receivePorts)); 49 | const transferPorts = portMap(channels, 2); 50 | const sendPorts = portMap(channels, 1); 51 | const initMessage: SandboxMessage = { 52 | cmd: SandboxMessageCommand.init, 53 | ports: transferPorts, 54 | instanceId 55 | }; 56 | self.postMessage(initMessage, Object.values(transferPorts)); 57 | 58 | const start$ = fromEvent(self, 'message') 59 | .map((event: MessageEvent) => event.data as SandboxMessage) 60 | .filter(message => message.instanceId === instanceId && message.cmd === SandboxMessageCommand.start) 61 | .mapTo(SandboxMessageCommand.start); 62 | 63 | 64 | 65 | const stop$ = fromEvent(self, 'message') 66 | .map((event: MessageEvent) => event.data as SandboxMessage) 67 | .filter(message => message.instanceId === instanceId && message.cmd === SandboxMessageCommand.stop) 68 | .mapTo(SandboxMessageCommand.stop); 69 | 70 | 71 | start$ 72 | .endWhen(stop$) 73 | .subscribe({ 74 | next () { 75 | const connected = Object.keys(connectors).reduce((acc, n) => ({ 76 | [n]: connectors[n](receivePorts[n], sendPorts[n]), 77 | ...acc 78 | }), {}); 79 | dispose = run( 80 | component, 81 | { 82 | ...drivers, 83 | ...connected 84 | } 85 | ); 86 | }, 87 | error (e) { 88 | console.error(e); 89 | }, 90 | complete () { 91 | if (dispose) { 92 | dispose(); 93 | } 94 | Object.values(sendPorts).forEach(port => { 95 | port.close(); 96 | }); 97 | channels = null; 98 | } 99 | }) 100 | }, 101 | error (error) {console.error(error)}, 102 | complete () {} 103 | }) 104 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "es6", 4 | "target": "es6", 5 | "lib": [ 6 | "es2016.array.include", 7 | "es2017.object", 8 | "es6", 9 | "dom", 10 | "dom.iterable" 11 | ], 12 | "moduleResolution": "node", 13 | "allowSyntheticDefaultImports": true, 14 | "jsx": "react", 15 | "removeComments": true 16 | }, 17 | "exclude": [ 18 | "node_modules/*" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": { 3 | "main": "typings" 4 | }, 5 | "globalDependencies": {}, 6 | "dependencies": { 7 | "react": "registry:npm/react#15.0.1+20160601175240", 8 | "react-dom": "registry:npm/react-dom#15.0.1+20160826174104" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack'); 2 | var path = require('path'); 3 | 4 | var SRC_DIR = path.join(__dirname); 5 | 6 | module.exports = { 7 | devtool: 'eval', 8 | entry: { 9 | main: './sample/main.ts', 10 | widget: './sample/widget.ts' 11 | }, 12 | module: { 13 | loaders: [{ 14 | test: /\.tsx?$/, 15 | loaders: ['babel-loader', 'ts-loader'], 16 | include: [SRC_DIR], 17 | }] 18 | }, 19 | output: { 20 | path: path.join(__dirname, 'build'), 21 | publicPath: '/static/', 22 | filename: "[name].js" 23 | 24 | }, 25 | plugins: [ 26 | ], 27 | resolve: { 28 | extensions: ['.jsx', '.js', '.tsx', '.ts'] 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | "@cycle/dom": 4 | version "17.1.0" 5 | resolved "https://registry.yarnpkg.com/@cycle/dom/-/dom-17.1.0.tgz#8d0076b5478511c38f3f46bb36dc8c280869b0e0" 6 | dependencies: 7 | "@cycle/run" "*" 8 | es6-map "^0.1.4" 9 | snabbdom "0.6.5" 10 | snabbdom-selector "1.1.1" 11 | 12 | "@cycle/http": 13 | version "13.2.0" 14 | resolved "https://registry.yarnpkg.com/@cycle/http/-/http-13.2.0.tgz#ac74717e449d8ea26e07e770e9f3cad52e884e37" 15 | dependencies: 16 | "@cycle/run" "*" 17 | "@types/superagent" "2.0.36" 18 | superagent "3.4.1" 19 | 20 | "@cycle/isolate": 21 | version "2.1.0" 22 | resolved "https://registry.yarnpkg.com/@cycle/isolate/-/isolate-2.1.0.tgz#8db1c6a068dc1d3fc709d5adbe838083577ad0e0" 23 | 24 | "@cycle/most-run": 25 | version "7.1.0" 26 | resolved "https://registry.yarnpkg.com/@cycle/most-run/-/most-run-7.1.0.tgz#5aa85f97451d430b1b5e3a37b4c846907e772cad" 27 | dependencies: 28 | "@cycle/run" "3.x" 29 | 30 | "@cycle/run", "@cycle/run@*", "@cycle/run@3.x": 31 | version "3.1.0" 32 | resolved "https://registry.yarnpkg.com/@cycle/run/-/run-3.1.0.tgz#76df582a501d2d1b871f8f6decf263afae090384" 33 | dependencies: 34 | xstream "10.x" 35 | 36 | "@most/multicast@^1.2.5": 37 | version "1.2.5" 38 | resolved "https://registry.yarnpkg.com/@most/multicast/-/multicast-1.2.5.tgz#ba5abc997f9a6511094bec117914f4959720a8fb" 39 | dependencies: 40 | "@most/prelude" "^1.4.0" 41 | 42 | "@most/prelude@^1.4.0": 43 | version "1.6.0" 44 | resolved "https://registry.yarnpkg.com/@most/prelude/-/prelude-1.6.0.tgz#4256e3a902ddf04c1f07afca2267526195072e13" 45 | 46 | "@types/node@*": 47 | version "7.0.13" 48 | resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.13.tgz#1b0a53fe9ef9c3a5d061b126cc9b915bca43a3f5" 49 | 50 | "@types/superagent@2.0.36": 51 | version "2.0.36" 52 | resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-2.0.36.tgz#e8eec10771d9dbc0f7ec47b8f9993476e4a501c1" 53 | dependencies: 54 | "@types/node" "*" 55 | 56 | abbrev@1: 57 | version "1.1.0" 58 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 59 | 60 | acorn-dynamic-import@^2.0.0: 61 | version "2.0.2" 62 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" 63 | dependencies: 64 | acorn "^4.0.3" 65 | 66 | acorn@^4.0.3: 67 | version "4.0.11" 68 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" 69 | 70 | acorn@^5.0.0: 71 | version "5.0.3" 72 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" 73 | 74 | agent-base@2: 75 | version "2.0.1" 76 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" 77 | dependencies: 78 | extend "~3.0.0" 79 | semver "~5.0.1" 80 | 81 | ajv-keywords@^1.1.1: 82 | version "1.5.1" 83 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 84 | 85 | ajv@^4.7.0, ajv@^4.9.1: 86 | version "4.11.7" 87 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.7.tgz#8655a5d86d0824985cc471a1d913fb6729a0ec48" 88 | dependencies: 89 | co "^4.6.0" 90 | json-stable-stringify "^1.0.1" 91 | 92 | align-text@^0.1.1, align-text@^0.1.3: 93 | version "0.1.4" 94 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 95 | dependencies: 96 | kind-of "^3.0.2" 97 | longest "^1.0.1" 98 | repeat-string "^1.5.2" 99 | 100 | ansi-align@^1.1.0: 101 | version "1.1.0" 102 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" 103 | dependencies: 104 | string-width "^1.0.1" 105 | 106 | ansi-escapes@^1.0.0: 107 | version "1.4.0" 108 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 109 | 110 | ansi-regex@^2.0.0: 111 | version "2.1.1" 112 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 113 | 114 | ansi-styles@^2.2.1: 115 | version "2.2.1" 116 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 117 | 118 | any-promise@^1.0.0, any-promise@^1.1.0, any-promise@^1.3.0: 119 | version "1.3.0" 120 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 121 | 122 | anymatch@^1.3.0: 123 | version "1.3.0" 124 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 125 | dependencies: 126 | arrify "^1.0.0" 127 | micromatch "^2.1.5" 128 | 129 | aproba@^1.0.3: 130 | version "1.1.1" 131 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" 132 | 133 | archy@^1.0.0: 134 | version "1.0.0" 135 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 136 | 137 | are-we-there-yet@~1.1.2: 138 | version "1.1.4" 139 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 140 | dependencies: 141 | delegates "^1.0.0" 142 | readable-stream "^2.0.6" 143 | 144 | arr-diff@^2.0.0: 145 | version "2.0.0" 146 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 147 | dependencies: 148 | arr-flatten "^1.0.1" 149 | 150 | arr-flatten@^1.0.1: 151 | version "1.0.3" 152 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" 153 | 154 | array-uniq@^1.0.2: 155 | version "1.0.3" 156 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 157 | 158 | array-unique@^0.2.1: 159 | version "0.2.1" 160 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 161 | 162 | arrify@^1.0.0: 163 | version "1.0.1" 164 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 165 | 166 | asn1.js@^4.0.0: 167 | version "4.9.1" 168 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" 169 | dependencies: 170 | bn.js "^4.0.0" 171 | inherits "^2.0.1" 172 | minimalistic-assert "^1.0.0" 173 | 174 | asn1@~0.2.3: 175 | version "0.2.3" 176 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 177 | 178 | assert-plus@^0.2.0: 179 | version "0.2.0" 180 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 181 | 182 | assert-plus@^1.0.0, assert-plus@1.0.0: 183 | version "1.0.0" 184 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 185 | 186 | assert@^1.1.1: 187 | version "1.4.1" 188 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" 189 | dependencies: 190 | util "0.10.3" 191 | 192 | async-each@^1.0.0: 193 | version "1.0.1" 194 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 195 | 196 | async@^2.1.2: 197 | version "2.3.0" 198 | resolved "https://registry.yarnpkg.com/async/-/async-2.3.0.tgz#1013d1051047dd320fe24e494d5c66ecaf6147d9" 199 | dependencies: 200 | lodash "^4.14.0" 201 | 202 | asynckit@^0.4.0: 203 | version "0.4.0" 204 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 205 | 206 | aws-sign2@~0.6.0: 207 | version "0.6.0" 208 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 209 | 210 | aws4@^1.2.1: 211 | version "1.6.0" 212 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 213 | 214 | babel-code-frame@^6.22.0: 215 | version "6.22.0" 216 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 217 | dependencies: 218 | chalk "^1.1.0" 219 | esutils "^2.0.2" 220 | js-tokens "^3.0.0" 221 | 222 | babel-core, babel-core@^6.24.1: 223 | version "6.24.1" 224 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" 225 | dependencies: 226 | babel-code-frame "^6.22.0" 227 | babel-generator "^6.24.1" 228 | babel-helpers "^6.24.1" 229 | babel-messages "^6.23.0" 230 | babel-register "^6.24.1" 231 | babel-runtime "^6.22.0" 232 | babel-template "^6.24.1" 233 | babel-traverse "^6.24.1" 234 | babel-types "^6.24.1" 235 | babylon "^6.11.0" 236 | convert-source-map "^1.1.0" 237 | debug "^2.1.1" 238 | json5 "^0.5.0" 239 | lodash "^4.2.0" 240 | minimatch "^3.0.2" 241 | path-is-absolute "^1.0.0" 242 | private "^0.1.6" 243 | slash "^1.0.0" 244 | source-map "^0.5.0" 245 | 246 | babel-generator@^6.24.1: 247 | version "6.24.1" 248 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497" 249 | dependencies: 250 | babel-messages "^6.23.0" 251 | babel-runtime "^6.22.0" 252 | babel-types "^6.24.1" 253 | detect-indent "^4.0.0" 254 | jsesc "^1.3.0" 255 | lodash "^4.2.0" 256 | source-map "^0.5.0" 257 | trim-right "^1.0.1" 258 | 259 | babel-helper-call-delegate@^6.24.1: 260 | version "6.24.1" 261 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 262 | dependencies: 263 | babel-helper-hoist-variables "^6.24.1" 264 | babel-runtime "^6.22.0" 265 | babel-traverse "^6.24.1" 266 | babel-types "^6.24.1" 267 | 268 | babel-helper-define-map@^6.24.1: 269 | version "6.24.1" 270 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" 271 | dependencies: 272 | babel-helper-function-name "^6.24.1" 273 | babel-runtime "^6.22.0" 274 | babel-types "^6.24.1" 275 | lodash "^4.2.0" 276 | 277 | babel-helper-function-name@^6.24.1: 278 | version "6.24.1" 279 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 280 | dependencies: 281 | babel-helper-get-function-arity "^6.24.1" 282 | babel-runtime "^6.22.0" 283 | babel-template "^6.24.1" 284 | babel-traverse "^6.24.1" 285 | babel-types "^6.24.1" 286 | 287 | babel-helper-get-function-arity@^6.24.1: 288 | version "6.24.1" 289 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 290 | dependencies: 291 | babel-runtime "^6.22.0" 292 | babel-types "^6.24.1" 293 | 294 | babel-helper-hoist-variables@^6.24.1: 295 | version "6.24.1" 296 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 297 | dependencies: 298 | babel-runtime "^6.22.0" 299 | babel-types "^6.24.1" 300 | 301 | babel-helper-optimise-call-expression@^6.24.1: 302 | version "6.24.1" 303 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 304 | dependencies: 305 | babel-runtime "^6.22.0" 306 | babel-types "^6.24.1" 307 | 308 | babel-helper-regex@^6.24.1: 309 | version "6.24.1" 310 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" 311 | dependencies: 312 | babel-runtime "^6.22.0" 313 | babel-types "^6.24.1" 314 | lodash "^4.2.0" 315 | 316 | babel-helper-replace-supers@^6.24.1: 317 | version "6.24.1" 318 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 319 | dependencies: 320 | babel-helper-optimise-call-expression "^6.24.1" 321 | babel-messages "^6.23.0" 322 | babel-runtime "^6.22.0" 323 | babel-template "^6.24.1" 324 | babel-traverse "^6.24.1" 325 | babel-types "^6.24.1" 326 | 327 | babel-helpers@^6.24.1: 328 | version "6.24.1" 329 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 330 | dependencies: 331 | babel-runtime "^6.22.0" 332 | babel-template "^6.24.1" 333 | 334 | babel-loader: 335 | version "7.0.0" 336 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7" 337 | dependencies: 338 | find-cache-dir "^0.1.1" 339 | loader-utils "^1.0.2" 340 | mkdirp "^0.5.1" 341 | 342 | babel-messages@^6.23.0: 343 | version "6.23.0" 344 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 345 | dependencies: 346 | babel-runtime "^6.22.0" 347 | 348 | babel-plugin-check-es2015-constants@^6.22.0: 349 | version "6.22.0" 350 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 351 | dependencies: 352 | babel-runtime "^6.22.0" 353 | 354 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 355 | version "6.22.0" 356 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 357 | dependencies: 358 | babel-runtime "^6.22.0" 359 | 360 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 361 | version "6.22.0" 362 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 363 | dependencies: 364 | babel-runtime "^6.22.0" 365 | 366 | babel-plugin-transform-es2015-block-scoping@^6.24.1: 367 | version "6.24.1" 368 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" 369 | dependencies: 370 | babel-runtime "^6.22.0" 371 | babel-template "^6.24.1" 372 | babel-traverse "^6.24.1" 373 | babel-types "^6.24.1" 374 | lodash "^4.2.0" 375 | 376 | babel-plugin-transform-es2015-classes@^6.24.1: 377 | version "6.24.1" 378 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 379 | dependencies: 380 | babel-helper-define-map "^6.24.1" 381 | babel-helper-function-name "^6.24.1" 382 | babel-helper-optimise-call-expression "^6.24.1" 383 | babel-helper-replace-supers "^6.24.1" 384 | babel-messages "^6.23.0" 385 | babel-runtime "^6.22.0" 386 | babel-template "^6.24.1" 387 | babel-traverse "^6.24.1" 388 | babel-types "^6.24.1" 389 | 390 | babel-plugin-transform-es2015-computed-properties@^6.24.1: 391 | version "6.24.1" 392 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 393 | dependencies: 394 | babel-runtime "^6.22.0" 395 | babel-template "^6.24.1" 396 | 397 | babel-plugin-transform-es2015-destructuring@^6.22.0: 398 | version "6.23.0" 399 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 400 | dependencies: 401 | babel-runtime "^6.22.0" 402 | 403 | babel-plugin-transform-es2015-duplicate-keys@^6.24.1: 404 | version "6.24.1" 405 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 406 | dependencies: 407 | babel-runtime "^6.22.0" 408 | babel-types "^6.24.1" 409 | 410 | babel-plugin-transform-es2015-for-of@^6.22.0: 411 | version "6.23.0" 412 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 413 | dependencies: 414 | babel-runtime "^6.22.0" 415 | 416 | babel-plugin-transform-es2015-function-name@^6.24.1: 417 | version "6.24.1" 418 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 419 | dependencies: 420 | babel-helper-function-name "^6.24.1" 421 | babel-runtime "^6.22.0" 422 | babel-types "^6.24.1" 423 | 424 | babel-plugin-transform-es2015-literals@^6.22.0: 425 | version "6.22.0" 426 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 427 | dependencies: 428 | babel-runtime "^6.22.0" 429 | 430 | babel-plugin-transform-es2015-modules-amd@^6.24.1: 431 | version "6.24.1" 432 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 433 | dependencies: 434 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 435 | babel-runtime "^6.22.0" 436 | babel-template "^6.24.1" 437 | 438 | babel-plugin-transform-es2015-modules-commonjs, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 439 | version "6.24.1" 440 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" 441 | dependencies: 442 | babel-plugin-transform-strict-mode "^6.24.1" 443 | babel-runtime "^6.22.0" 444 | babel-template "^6.24.1" 445 | babel-types "^6.24.1" 446 | 447 | babel-plugin-transform-es2015-modules-systemjs@^6.24.1: 448 | version "6.24.1" 449 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 450 | dependencies: 451 | babel-helper-hoist-variables "^6.24.1" 452 | babel-runtime "^6.22.0" 453 | babel-template "^6.24.1" 454 | 455 | babel-plugin-transform-es2015-modules-umd@^6.24.1: 456 | version "6.24.1" 457 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 458 | dependencies: 459 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 460 | babel-runtime "^6.22.0" 461 | babel-template "^6.24.1" 462 | 463 | babel-plugin-transform-es2015-object-super@^6.24.1: 464 | version "6.24.1" 465 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 466 | dependencies: 467 | babel-helper-replace-supers "^6.24.1" 468 | babel-runtime "^6.22.0" 469 | 470 | babel-plugin-transform-es2015-parameters@^6.24.1: 471 | version "6.24.1" 472 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 473 | dependencies: 474 | babel-helper-call-delegate "^6.24.1" 475 | babel-helper-get-function-arity "^6.24.1" 476 | babel-runtime "^6.22.0" 477 | babel-template "^6.24.1" 478 | babel-traverse "^6.24.1" 479 | babel-types "^6.24.1" 480 | 481 | babel-plugin-transform-es2015-shorthand-properties@^6.24.1: 482 | version "6.24.1" 483 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 484 | dependencies: 485 | babel-runtime "^6.22.0" 486 | babel-types "^6.24.1" 487 | 488 | babel-plugin-transform-es2015-spread@^6.22.0: 489 | version "6.22.0" 490 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 491 | dependencies: 492 | babel-runtime "^6.22.0" 493 | 494 | babel-plugin-transform-es2015-sticky-regex@^6.24.1: 495 | version "6.24.1" 496 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 497 | dependencies: 498 | babel-helper-regex "^6.24.1" 499 | babel-runtime "^6.22.0" 500 | babel-types "^6.24.1" 501 | 502 | babel-plugin-transform-es2015-template-literals@^6.22.0: 503 | version "6.22.0" 504 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 505 | dependencies: 506 | babel-runtime "^6.22.0" 507 | 508 | babel-plugin-transform-es2015-typeof-symbol@^6.22.0: 509 | version "6.23.0" 510 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 511 | dependencies: 512 | babel-runtime "^6.22.0" 513 | 514 | babel-plugin-transform-es2015-unicode-regex@^6.24.1: 515 | version "6.24.1" 516 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 517 | dependencies: 518 | babel-helper-regex "^6.24.1" 519 | babel-runtime "^6.22.0" 520 | regexpu-core "^2.0.0" 521 | 522 | babel-plugin-transform-regenerator@^6.24.1: 523 | version "6.24.1" 524 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" 525 | dependencies: 526 | regenerator-transform "0.9.11" 527 | 528 | babel-plugin-transform-runtime: 529 | version "6.23.0" 530 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" 531 | dependencies: 532 | babel-runtime "^6.22.0" 533 | 534 | babel-plugin-transform-strict-mode@^6.24.1: 535 | version "6.24.1" 536 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 537 | dependencies: 538 | babel-runtime "^6.22.0" 539 | babel-types "^6.24.1" 540 | 541 | babel-preset-es2015: 542 | version "6.24.1" 543 | resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" 544 | dependencies: 545 | babel-plugin-check-es2015-constants "^6.22.0" 546 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 547 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 548 | babel-plugin-transform-es2015-block-scoping "^6.24.1" 549 | babel-plugin-transform-es2015-classes "^6.24.1" 550 | babel-plugin-transform-es2015-computed-properties "^6.24.1" 551 | babel-plugin-transform-es2015-destructuring "^6.22.0" 552 | babel-plugin-transform-es2015-duplicate-keys "^6.24.1" 553 | babel-plugin-transform-es2015-for-of "^6.22.0" 554 | babel-plugin-transform-es2015-function-name "^6.24.1" 555 | babel-plugin-transform-es2015-literals "^6.22.0" 556 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 557 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 558 | babel-plugin-transform-es2015-modules-systemjs "^6.24.1" 559 | babel-plugin-transform-es2015-modules-umd "^6.24.1" 560 | babel-plugin-transform-es2015-object-super "^6.24.1" 561 | babel-plugin-transform-es2015-parameters "^6.24.1" 562 | babel-plugin-transform-es2015-shorthand-properties "^6.24.1" 563 | babel-plugin-transform-es2015-spread "^6.22.0" 564 | babel-plugin-transform-es2015-sticky-regex "^6.24.1" 565 | babel-plugin-transform-es2015-template-literals "^6.22.0" 566 | babel-plugin-transform-es2015-typeof-symbol "^6.22.0" 567 | babel-plugin-transform-es2015-unicode-regex "^6.24.1" 568 | babel-plugin-transform-regenerator "^6.24.1" 569 | 570 | babel-register@^6.24.1: 571 | version "6.24.1" 572 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" 573 | dependencies: 574 | babel-core "^6.24.1" 575 | babel-runtime "^6.22.0" 576 | core-js "^2.4.0" 577 | home-or-tmp "^2.0.0" 578 | lodash "^4.2.0" 579 | mkdirp "^0.5.1" 580 | source-map-support "^0.4.2" 581 | 582 | babel-runtime@^6.18.0, babel-runtime@^6.22.0: 583 | version "6.23.0" 584 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 585 | dependencies: 586 | core-js "^2.4.0" 587 | regenerator-runtime "^0.10.0" 588 | 589 | babel-template@^6.24.1: 590 | version "6.24.1" 591 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" 592 | dependencies: 593 | babel-runtime "^6.22.0" 594 | babel-traverse "^6.24.1" 595 | babel-types "^6.24.1" 596 | babylon "^6.11.0" 597 | lodash "^4.2.0" 598 | 599 | babel-traverse@^6.24.1: 600 | version "6.24.1" 601 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" 602 | dependencies: 603 | babel-code-frame "^6.22.0" 604 | babel-messages "^6.23.0" 605 | babel-runtime "^6.22.0" 606 | babel-types "^6.24.1" 607 | babylon "^6.15.0" 608 | debug "^2.2.0" 609 | globals "^9.0.0" 610 | invariant "^2.2.0" 611 | lodash "^4.2.0" 612 | 613 | babel-types@^6.19.0, babel-types@^6.24.1: 614 | version "6.24.1" 615 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" 616 | dependencies: 617 | babel-runtime "^6.22.0" 618 | esutils "^2.0.2" 619 | lodash "^4.2.0" 620 | to-fast-properties "^1.0.1" 621 | 622 | babylon@^6.11.0, babylon@^6.15.0: 623 | version "6.17.1" 624 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f" 625 | 626 | balanced-match@^0.4.1: 627 | version "0.4.2" 628 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 629 | 630 | base64-js@^1.0.2: 631 | version "1.2.0" 632 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 633 | 634 | bcrypt-pbkdf@^1.0.0: 635 | version "1.0.1" 636 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 637 | dependencies: 638 | tweetnacl "^0.14.3" 639 | 640 | big.js@^3.1.3: 641 | version "3.1.3" 642 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" 643 | 644 | binary-extensions@^1.0.0: 645 | version "1.8.0" 646 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 647 | 648 | block-stream@*: 649 | version "0.0.9" 650 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 651 | dependencies: 652 | inherits "~2.0.0" 653 | 654 | bluebird@^3.1.1: 655 | version "3.5.0" 656 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 657 | 658 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 659 | version "4.11.6" 660 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" 661 | 662 | boom@2.x.x: 663 | version "2.10.1" 664 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 665 | dependencies: 666 | hoek "2.x.x" 667 | 668 | boxen@^0.6.0: 669 | version "0.6.0" 670 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" 671 | dependencies: 672 | ansi-align "^1.1.0" 673 | camelcase "^2.1.0" 674 | chalk "^1.1.1" 675 | cli-boxes "^1.0.0" 676 | filled-array "^1.0.0" 677 | object-assign "^4.0.1" 678 | repeating "^2.0.0" 679 | string-width "^1.0.1" 680 | widest-line "^1.0.0" 681 | 682 | brace-expansion@^1.0.0: 683 | version "1.1.7" 684 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" 685 | dependencies: 686 | balanced-match "^0.4.1" 687 | concat-map "0.0.1" 688 | 689 | braces@^1.8.2: 690 | version "1.8.5" 691 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 692 | dependencies: 693 | expand-range "^1.8.1" 694 | preserve "^0.2.0" 695 | repeat-element "^1.1.2" 696 | 697 | brorand@^1.0.1: 698 | version "1.1.0" 699 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 700 | 701 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 702 | version "1.0.6" 703 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" 704 | dependencies: 705 | buffer-xor "^1.0.2" 706 | cipher-base "^1.0.0" 707 | create-hash "^1.1.0" 708 | evp_bytestokey "^1.0.0" 709 | inherits "^2.0.1" 710 | 711 | browserify-cipher@^1.0.0: 712 | version "1.0.0" 713 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" 714 | dependencies: 715 | browserify-aes "^1.0.4" 716 | browserify-des "^1.0.0" 717 | evp_bytestokey "^1.0.0" 718 | 719 | browserify-des@^1.0.0: 720 | version "1.0.0" 721 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" 722 | dependencies: 723 | cipher-base "^1.0.1" 724 | des.js "^1.0.0" 725 | inherits "^2.0.1" 726 | 727 | browserify-rsa@^4.0.0: 728 | version "4.0.1" 729 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 730 | dependencies: 731 | bn.js "^4.1.0" 732 | randombytes "^2.0.1" 733 | 734 | browserify-sign@^4.0.0: 735 | version "4.0.4" 736 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 737 | dependencies: 738 | bn.js "^4.1.1" 739 | browserify-rsa "^4.0.0" 740 | create-hash "^1.1.0" 741 | create-hmac "^1.1.2" 742 | elliptic "^6.0.0" 743 | inherits "^2.0.1" 744 | parse-asn1 "^5.0.0" 745 | 746 | browserify-zlib@^0.1.4: 747 | version "0.1.4" 748 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" 749 | dependencies: 750 | pako "~0.2.0" 751 | 752 | buffer-shims@~1.0.0: 753 | version "1.0.0" 754 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 755 | 756 | buffer-xor@^1.0.2: 757 | version "1.0.3" 758 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 759 | 760 | buffer@^4.3.0: 761 | version "4.9.1" 762 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 763 | dependencies: 764 | base64-js "^1.0.2" 765 | ieee754 "^1.1.4" 766 | isarray "^1.0.0" 767 | 768 | builtin-modules@^1.0.0: 769 | version "1.1.1" 770 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 771 | 772 | builtin-status-codes@^3.0.0: 773 | version "3.0.0" 774 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 775 | 776 | camelcase@^1.0.2: 777 | version "1.2.1" 778 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 779 | 780 | camelcase@^2.1.0: 781 | version "2.1.1" 782 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 783 | 784 | camelcase@^3.0.0: 785 | version "3.0.0" 786 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 787 | 788 | capture-stack-trace@^1.0.0: 789 | version "1.0.0" 790 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 791 | 792 | caseless@~0.12.0: 793 | version "0.12.0" 794 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 795 | 796 | center-align@^0.1.1: 797 | version "0.1.3" 798 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 799 | dependencies: 800 | align-text "^0.1.3" 801 | lazy-cache "^1.0.3" 802 | 803 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: 804 | version "1.1.3" 805 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 806 | dependencies: 807 | ansi-styles "^2.2.1" 808 | escape-string-regexp "^1.0.2" 809 | has-ansi "^2.0.0" 810 | strip-ansi "^3.0.0" 811 | supports-color "^2.0.0" 812 | 813 | chokidar@^1.4.3: 814 | version "1.6.1" 815 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" 816 | dependencies: 817 | anymatch "^1.3.0" 818 | async-each "^1.0.0" 819 | glob-parent "^2.0.0" 820 | inherits "^2.0.1" 821 | is-binary-path "^1.0.0" 822 | is-glob "^2.0.0" 823 | path-is-absolute "^1.0.0" 824 | readdirp "^2.0.0" 825 | optionalDependencies: 826 | fsevents "^1.0.0" 827 | 828 | cipher-base@^1.0.0, cipher-base@^1.0.1: 829 | version "1.0.3" 830 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" 831 | dependencies: 832 | inherits "^2.0.1" 833 | 834 | cli-boxes@^1.0.0: 835 | version "1.0.0" 836 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 837 | 838 | cli-cursor@^1.0.2: 839 | version "1.0.2" 840 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 841 | dependencies: 842 | restore-cursor "^1.0.1" 843 | 844 | cli-truncate@^0.2.1: 845 | version "0.2.1" 846 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" 847 | dependencies: 848 | slice-ansi "0.0.4" 849 | string-width "^1.0.1" 850 | 851 | cliui@^2.1.0: 852 | version "2.1.0" 853 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 854 | dependencies: 855 | center-align "^0.1.1" 856 | right-align "^0.1.1" 857 | wordwrap "0.0.2" 858 | 859 | cliui@^3.2.0: 860 | version "3.2.0" 861 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 862 | dependencies: 863 | string-width "^1.0.1" 864 | strip-ansi "^3.0.1" 865 | wrap-ansi "^2.0.0" 866 | 867 | clone@^1.0.2: 868 | version "1.0.2" 869 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" 870 | 871 | co@^4.6.0: 872 | version "4.6.0" 873 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 874 | 875 | code-point-at@^1.0.0: 876 | version "1.1.0" 877 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 878 | 879 | colors@^1.0.3: 880 | version "1.1.2" 881 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 882 | 883 | columnify@^1.5.2: 884 | version "1.5.4" 885 | resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" 886 | dependencies: 887 | strip-ansi "^3.0.0" 888 | wcwidth "^1.0.0" 889 | 890 | combined-stream@^1.0.5, combined-stream@~1.0.5: 891 | version "1.0.5" 892 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 893 | dependencies: 894 | delayed-stream "~1.0.0" 895 | 896 | commondir@^1.0.1: 897 | version "1.0.1" 898 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 899 | 900 | component-emitter@^1.2.0: 901 | version "1.2.1" 902 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 903 | 904 | concat-map@0.0.1: 905 | version "0.0.1" 906 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 907 | 908 | concat-stream@^1.4.7: 909 | version "1.6.0" 910 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 911 | dependencies: 912 | inherits "^2.0.3" 913 | readable-stream "^2.2.2" 914 | typedarray "^0.0.6" 915 | 916 | configstore@^2.0.0: 917 | version "2.1.0" 918 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" 919 | dependencies: 920 | dot-prop "^3.0.0" 921 | graceful-fs "^4.1.2" 922 | mkdirp "^0.5.0" 923 | object-assign "^4.0.1" 924 | os-tmpdir "^1.0.0" 925 | osenv "^0.1.0" 926 | uuid "^2.0.1" 927 | write-file-atomic "^1.1.2" 928 | xdg-basedir "^2.0.0" 929 | 930 | console-browserify@^1.1.0: 931 | version "1.1.0" 932 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 933 | dependencies: 934 | date-now "^0.1.4" 935 | 936 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 937 | version "1.1.0" 938 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 939 | 940 | constants-browserify@^1.0.0: 941 | version "1.0.0" 942 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 943 | 944 | convert-source-map@^1.1.0: 945 | version "1.5.0" 946 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" 947 | 948 | cookiejar@^2.0.6: 949 | version "2.1.1" 950 | resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" 951 | 952 | core-js@^2.4.0: 953 | version "2.4.1" 954 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 955 | 956 | core-util-is@~1.0.0: 957 | version "1.0.2" 958 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 959 | 960 | create-ecdh@^4.0.0: 961 | version "4.0.0" 962 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" 963 | dependencies: 964 | bn.js "^4.1.0" 965 | elliptic "^6.0.0" 966 | 967 | create-error-class@^3.0.1: 968 | version "3.0.2" 969 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 970 | dependencies: 971 | capture-stack-trace "^1.0.0" 972 | 973 | create-hash@^1.1.0, create-hash@^1.1.1: 974 | version "1.1.2" 975 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" 976 | dependencies: 977 | cipher-base "^1.0.1" 978 | inherits "^2.0.1" 979 | ripemd160 "^1.0.0" 980 | sha.js "^2.3.6" 981 | 982 | create-hmac@^1.1.0, create-hmac@^1.1.2: 983 | version "1.1.4" 984 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" 985 | dependencies: 986 | create-hash "^1.1.0" 987 | inherits "^2.0.1" 988 | 989 | cryptiles@2.x.x: 990 | version "2.0.5" 991 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 992 | dependencies: 993 | boom "2.x.x" 994 | 995 | crypto-browserify@^3.11.0: 996 | version "3.11.0" 997 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" 998 | dependencies: 999 | browserify-cipher "^1.0.0" 1000 | browserify-sign "^4.0.0" 1001 | create-ecdh "^4.0.0" 1002 | create-hash "^1.1.0" 1003 | create-hmac "^1.1.0" 1004 | diffie-hellman "^5.0.0" 1005 | inherits "^2.0.1" 1006 | pbkdf2 "^3.0.3" 1007 | public-encrypt "^4.0.0" 1008 | randombytes "^2.0.0" 1009 | 1010 | cssauron@^1.4.0: 1011 | version "1.4.0" 1012 | resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" 1013 | dependencies: 1014 | through X.X.X 1015 | 1016 | d@1: 1017 | version "1.0.0" 1018 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 1019 | dependencies: 1020 | es5-ext "^0.10.9" 1021 | 1022 | dashdash@^1.12.0: 1023 | version "1.14.1" 1024 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 1025 | dependencies: 1026 | assert-plus "^1.0.0" 1027 | 1028 | date-now@^0.1.4: 1029 | version "0.1.4" 1030 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 1031 | 1032 | debug@^2.1.1: 1033 | version "2.6.8" 1034 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 1035 | dependencies: 1036 | ms "2.0.0" 1037 | 1038 | debug@^2.2.0, debug@2: 1039 | version "2.6.4" 1040 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0" 1041 | dependencies: 1042 | ms "0.7.3" 1043 | 1044 | decamelize@^1.0.0, decamelize@^1.1.1: 1045 | version "1.2.0" 1046 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 1047 | 1048 | deep-extend@~0.4.0: 1049 | version "0.4.1" 1050 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" 1051 | 1052 | defaults@^1.0.3: 1053 | version "1.0.3" 1054 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 1055 | dependencies: 1056 | clone "^1.0.2" 1057 | 1058 | delayed-stream@~1.0.0: 1059 | version "1.0.0" 1060 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 1061 | 1062 | delegates@^1.0.0: 1063 | version "1.0.0" 1064 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1065 | 1066 | des.js@^1.0.0: 1067 | version "1.0.0" 1068 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 1069 | dependencies: 1070 | inherits "^2.0.1" 1071 | minimalistic-assert "^1.0.0" 1072 | 1073 | detect-indent@^4.0.0: 1074 | version "4.0.0" 1075 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 1076 | dependencies: 1077 | repeating "^2.0.0" 1078 | 1079 | diffie-hellman@^5.0.0: 1080 | version "5.0.2" 1081 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" 1082 | dependencies: 1083 | bn.js "^4.1.0" 1084 | miller-rabin "^4.0.0" 1085 | randombytes "^2.0.0" 1086 | 1087 | domain-browser@^1.1.1: 1088 | version "1.1.7" 1089 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" 1090 | 1091 | dot-prop@^3.0.0: 1092 | version "3.0.0" 1093 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" 1094 | dependencies: 1095 | is-obj "^1.0.0" 1096 | 1097 | duplexer2@^0.1.4: 1098 | version "0.1.4" 1099 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" 1100 | dependencies: 1101 | readable-stream "^2.0.2" 1102 | 1103 | ecc-jsbn@~0.1.1: 1104 | version "0.1.1" 1105 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 1106 | dependencies: 1107 | jsbn "~0.1.0" 1108 | 1109 | elegant-spinner@^1.0.1: 1110 | version "1.0.1" 1111 | resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" 1112 | 1113 | elliptic@^6.0.0: 1114 | version "6.4.0" 1115 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" 1116 | dependencies: 1117 | bn.js "^4.4.0" 1118 | brorand "^1.0.1" 1119 | hash.js "^1.0.0" 1120 | hmac-drbg "^1.0.0" 1121 | inherits "^2.0.1" 1122 | minimalistic-assert "^1.0.0" 1123 | minimalistic-crypto-utils "^1.0.0" 1124 | 1125 | emojis-list@^2.0.0: 1126 | version "2.1.0" 1127 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 1128 | 1129 | enhanced-resolve@^3.0.0: 1130 | version "3.1.0" 1131 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" 1132 | dependencies: 1133 | graceful-fs "^4.1.2" 1134 | memory-fs "^0.4.0" 1135 | object-assign "^4.0.1" 1136 | tapable "^0.2.5" 1137 | 1138 | errno@^0.1.3: 1139 | version "0.1.4" 1140 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" 1141 | dependencies: 1142 | prr "~0.0.0" 1143 | 1144 | error-ex@^1.2.0: 1145 | version "1.3.1" 1146 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 1147 | dependencies: 1148 | is-arrayish "^0.2.1" 1149 | 1150 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 1151 | version "0.10.15" 1152 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6" 1153 | dependencies: 1154 | es6-iterator "2" 1155 | es6-symbol "~3.1" 1156 | 1157 | es6-iterator@~2.0.1, es6-iterator@2: 1158 | version "2.0.1" 1159 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 1160 | dependencies: 1161 | d "1" 1162 | es5-ext "^0.10.14" 1163 | es6-symbol "^3.1" 1164 | 1165 | es6-map@^0.1.4: 1166 | version "0.1.5" 1167 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 1168 | dependencies: 1169 | d "1" 1170 | es5-ext "~0.10.14" 1171 | es6-iterator "~2.0.1" 1172 | es6-set "~0.1.5" 1173 | es6-symbol "~3.1.1" 1174 | event-emitter "~0.3.5" 1175 | 1176 | es6-set@~0.1.5: 1177 | version "0.1.5" 1178 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 1179 | dependencies: 1180 | d "1" 1181 | es5-ext "~0.10.14" 1182 | es6-iterator "~2.0.1" 1183 | es6-symbol "3.1.1" 1184 | event-emitter "~0.3.5" 1185 | 1186 | es6-symbol@^3.1, es6-symbol@~3.1, es6-symbol@~3.1.1, es6-symbol@3.1.1: 1187 | version "3.1.1" 1188 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 1189 | dependencies: 1190 | d "1" 1191 | es5-ext "~0.10.14" 1192 | 1193 | escape-string-regexp@^1.0.2: 1194 | version "1.0.5" 1195 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1196 | 1197 | esutils@^2.0.2: 1198 | version "2.0.2" 1199 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1200 | 1201 | event-emitter@~0.3.5: 1202 | version "0.3.5" 1203 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 1204 | dependencies: 1205 | d "1" 1206 | es5-ext "~0.10.14" 1207 | 1208 | events@^1.0.0: 1209 | version "1.1.1" 1210 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 1211 | 1212 | evp_bytestokey@^1.0.0: 1213 | version "1.0.0" 1214 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" 1215 | dependencies: 1216 | create-hash "^1.1.1" 1217 | 1218 | exit-hook@^1.0.0: 1219 | version "1.1.1" 1220 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 1221 | 1222 | expand-brackets@^0.1.4: 1223 | version "0.1.5" 1224 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1225 | dependencies: 1226 | is-posix-bracket "^0.1.0" 1227 | 1228 | expand-range@^1.8.1: 1229 | version "1.8.2" 1230 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1231 | dependencies: 1232 | fill-range "^2.1.0" 1233 | 1234 | extend@^3.0.0, extend@~3.0.0, extend@3: 1235 | version "3.0.0" 1236 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" 1237 | 1238 | extglob@^0.3.1: 1239 | version "0.3.2" 1240 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1241 | dependencies: 1242 | is-extglob "^1.0.0" 1243 | 1244 | extsprintf@1.0.2: 1245 | version "1.0.2" 1246 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 1247 | 1248 | filename-regex@^2.0.0: 1249 | version "2.0.0" 1250 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" 1251 | 1252 | fill-range@^2.1.0: 1253 | version "2.2.3" 1254 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1255 | dependencies: 1256 | is-number "^2.1.0" 1257 | isobject "^2.0.0" 1258 | randomatic "^1.1.3" 1259 | repeat-element "^1.1.2" 1260 | repeat-string "^1.5.2" 1261 | 1262 | filled-array@^1.0.0: 1263 | version "1.1.0" 1264 | resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" 1265 | 1266 | find-cache-dir@^0.1.1: 1267 | version "0.1.1" 1268 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" 1269 | dependencies: 1270 | commondir "^1.0.1" 1271 | mkdirp "^0.5.1" 1272 | pkg-dir "^1.0.0" 1273 | 1274 | find-up@^1.0.0: 1275 | version "1.1.2" 1276 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1277 | dependencies: 1278 | path-exists "^2.0.0" 1279 | pinkie-promise "^2.0.0" 1280 | 1281 | for-in@^1.0.1: 1282 | version "1.0.2" 1283 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1284 | 1285 | for-own@^0.1.4: 1286 | version "0.1.5" 1287 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1288 | dependencies: 1289 | for-in "^1.0.1" 1290 | 1291 | forever-agent@~0.6.1: 1292 | version "0.6.1" 1293 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1294 | 1295 | form-data@^2.0.0, form-data@^2.1.1, form-data@~2.1.1: 1296 | version "2.1.4" 1297 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 1298 | dependencies: 1299 | asynckit "^0.4.0" 1300 | combined-stream "^1.0.5" 1301 | mime-types "^2.1.12" 1302 | 1303 | formidable@^1.0.17: 1304 | version "1.1.1" 1305 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9" 1306 | 1307 | fs.realpath@^1.0.0: 1308 | version "1.0.0" 1309 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1310 | 1311 | fsevents@^1.0.0: 1312 | version "1.1.1" 1313 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" 1314 | dependencies: 1315 | nan "^2.3.0" 1316 | node-pre-gyp "^0.6.29" 1317 | 1318 | fstream-ignore@^1.0.5: 1319 | version "1.0.5" 1320 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 1321 | dependencies: 1322 | fstream "^1.0.0" 1323 | inherits "2" 1324 | minimatch "^3.0.0" 1325 | 1326 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 1327 | version "1.0.11" 1328 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 1329 | dependencies: 1330 | graceful-fs "^4.1.2" 1331 | inherits "~2.0.0" 1332 | mkdirp ">=0.5 0" 1333 | rimraf "2" 1334 | 1335 | function-bind@^1.0.2: 1336 | version "1.1.0" 1337 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" 1338 | 1339 | gauge@~2.7.1: 1340 | version "2.7.4" 1341 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1342 | dependencies: 1343 | aproba "^1.0.3" 1344 | console-control-strings "^1.0.0" 1345 | has-unicode "^2.0.0" 1346 | object-assign "^4.1.0" 1347 | signal-exit "^3.0.0" 1348 | string-width "^1.0.1" 1349 | strip-ansi "^3.0.1" 1350 | wide-align "^1.1.0" 1351 | 1352 | get-caller-file@^1.0.1: 1353 | version "1.0.2" 1354 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1355 | 1356 | getpass@^0.1.1: 1357 | version "0.1.6" 1358 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" 1359 | dependencies: 1360 | assert-plus "^1.0.0" 1361 | 1362 | glob-base@^0.3.0: 1363 | version "0.3.0" 1364 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1365 | dependencies: 1366 | glob-parent "^2.0.0" 1367 | is-glob "^2.0.0" 1368 | 1369 | glob-parent@^2.0.0: 1370 | version "2.0.0" 1371 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1372 | dependencies: 1373 | is-glob "^2.0.0" 1374 | 1375 | glob@^7.0.5: 1376 | version "7.1.1" 1377 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 1378 | dependencies: 1379 | fs.realpath "^1.0.0" 1380 | inflight "^1.0.4" 1381 | inherits "2" 1382 | minimatch "^3.0.2" 1383 | once "^1.3.0" 1384 | path-is-absolute "^1.0.0" 1385 | 1386 | globals@^9.0.0: 1387 | version "9.17.0" 1388 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" 1389 | 1390 | got@^5.0.0: 1391 | version "5.7.1" 1392 | resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" 1393 | dependencies: 1394 | create-error-class "^3.0.1" 1395 | duplexer2 "^0.1.4" 1396 | is-redirect "^1.0.0" 1397 | is-retry-allowed "^1.0.0" 1398 | is-stream "^1.0.0" 1399 | lowercase-keys "^1.0.0" 1400 | node-status-codes "^1.0.0" 1401 | object-assign "^4.0.1" 1402 | parse-json "^2.1.0" 1403 | pinkie-promise "^2.0.0" 1404 | read-all-stream "^3.0.0" 1405 | readable-stream "^2.0.5" 1406 | timed-out "^3.0.0" 1407 | unzip-response "^1.0.2" 1408 | url-parse-lax "^1.0.0" 1409 | 1410 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1411 | version "4.1.11" 1412 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1413 | 1414 | har-schema@^1.0.5: 1415 | version "1.0.5" 1416 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 1417 | 1418 | har-validator@~4.2.1: 1419 | version "4.2.1" 1420 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 1421 | dependencies: 1422 | ajv "^4.9.1" 1423 | har-schema "^1.0.5" 1424 | 1425 | has-ansi@^2.0.0: 1426 | version "2.0.0" 1427 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1428 | dependencies: 1429 | ansi-regex "^2.0.0" 1430 | 1431 | has-flag@^1.0.0: 1432 | version "1.0.0" 1433 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1434 | 1435 | has-unicode@^2.0.0, has-unicode@^2.0.1: 1436 | version "2.0.1" 1437 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1438 | 1439 | has@^1.0.1: 1440 | version "1.0.1" 1441 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 1442 | dependencies: 1443 | function-bind "^1.0.2" 1444 | 1445 | hash.js@^1.0.0, hash.js@^1.0.3: 1446 | version "1.0.3" 1447 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" 1448 | dependencies: 1449 | inherits "^2.0.1" 1450 | 1451 | hawk@~3.1.3: 1452 | version "3.1.3" 1453 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 1454 | dependencies: 1455 | boom "2.x.x" 1456 | cryptiles "2.x.x" 1457 | hoek "2.x.x" 1458 | sntp "1.x.x" 1459 | 1460 | hmac-drbg@^1.0.0: 1461 | version "1.0.1" 1462 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1463 | dependencies: 1464 | hash.js "^1.0.3" 1465 | minimalistic-assert "^1.0.0" 1466 | minimalistic-crypto-utils "^1.0.1" 1467 | 1468 | hoek@2.x.x: 1469 | version "2.16.3" 1470 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 1471 | 1472 | home-or-tmp@^2.0.0: 1473 | version "2.0.0" 1474 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1475 | dependencies: 1476 | os-homedir "^1.0.0" 1477 | os-tmpdir "^1.0.1" 1478 | 1479 | hosted-git-info@^2.1.4: 1480 | version "2.4.2" 1481 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" 1482 | 1483 | http-proxy-agent@^1.0.0: 1484 | version "1.0.0" 1485 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" 1486 | dependencies: 1487 | agent-base "2" 1488 | debug "2" 1489 | extend "3" 1490 | 1491 | http-signature@~1.1.0: 1492 | version "1.1.1" 1493 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 1494 | dependencies: 1495 | assert-plus "^0.2.0" 1496 | jsprim "^1.2.2" 1497 | sshpk "^1.7.0" 1498 | 1499 | https-browserify@0.0.1: 1500 | version "0.0.1" 1501 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" 1502 | 1503 | https-proxy-agent@^1.0.0: 1504 | version "1.0.0" 1505 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" 1506 | dependencies: 1507 | agent-base "2" 1508 | debug "2" 1509 | extend "3" 1510 | 1511 | ieee754@^1.1.4: 1512 | version "1.1.8" 1513 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 1514 | 1515 | imurmurhash@^0.1.4: 1516 | version "0.1.4" 1517 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1518 | 1519 | indexof@0.0.1: 1520 | version "0.0.1" 1521 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1522 | 1523 | inflight@^1.0.4: 1524 | version "1.0.6" 1525 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1526 | dependencies: 1527 | once "^1.3.0" 1528 | wrappy "1" 1529 | 1530 | inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@2: 1531 | version "2.0.3" 1532 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1533 | 1534 | inherits@2.0.1: 1535 | version "2.0.1" 1536 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1537 | 1538 | ini@~1.3.0: 1539 | version "1.3.4" 1540 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 1541 | 1542 | interpret@^1.0.0: 1543 | version "1.0.3" 1544 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" 1545 | 1546 | invariant@^2.2.0: 1547 | version "2.2.2" 1548 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 1549 | dependencies: 1550 | loose-envify "^1.0.0" 1551 | 1552 | invert-kv@^1.0.0: 1553 | version "1.0.0" 1554 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1555 | 1556 | is-absolute@^0.2.3: 1557 | version "0.2.6" 1558 | resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" 1559 | dependencies: 1560 | is-relative "^0.2.1" 1561 | is-windows "^0.2.0" 1562 | 1563 | is-arrayish@^0.2.1: 1564 | version "0.2.1" 1565 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1566 | 1567 | is-binary-path@^1.0.0: 1568 | version "1.0.1" 1569 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1570 | dependencies: 1571 | binary-extensions "^1.0.0" 1572 | 1573 | is-buffer@^1.1.5: 1574 | version "1.1.5" 1575 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 1576 | 1577 | is-builtin-module@^1.0.0: 1578 | version "1.0.0" 1579 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1580 | dependencies: 1581 | builtin-modules "^1.0.0" 1582 | 1583 | is-dotfile@^1.0.0: 1584 | version "1.0.2" 1585 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 1586 | 1587 | is-equal-shallow@^0.1.3: 1588 | version "0.1.3" 1589 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1590 | dependencies: 1591 | is-primitive "^2.0.0" 1592 | 1593 | is-extendable@^0.1.1: 1594 | version "0.1.1" 1595 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1596 | 1597 | is-extglob@^1.0.0: 1598 | version "1.0.0" 1599 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1600 | 1601 | is-finite@^1.0.0: 1602 | version "1.0.2" 1603 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1604 | dependencies: 1605 | number-is-nan "^1.0.0" 1606 | 1607 | is-fullwidth-code-point@^1.0.0: 1608 | version "1.0.0" 1609 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1610 | dependencies: 1611 | number-is-nan "^1.0.0" 1612 | 1613 | is-glob@^2.0.0, is-glob@^2.0.1: 1614 | version "2.0.1" 1615 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1616 | dependencies: 1617 | is-extglob "^1.0.0" 1618 | 1619 | is-npm@^1.0.0: 1620 | version "1.0.0" 1621 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1622 | 1623 | is-number@^2.0.2, is-number@^2.1.0: 1624 | version "2.1.0" 1625 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1626 | dependencies: 1627 | kind-of "^3.0.2" 1628 | 1629 | is-obj@^1.0.0: 1630 | version "1.0.1" 1631 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1632 | 1633 | is-plain-obj@^1.0.0: 1634 | version "1.1.0" 1635 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 1636 | 1637 | is-posix-bracket@^0.1.0: 1638 | version "0.1.1" 1639 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1640 | 1641 | is-primitive@^2.0.0: 1642 | version "2.0.0" 1643 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1644 | 1645 | is-redirect@^1.0.0: 1646 | version "1.0.0" 1647 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1648 | 1649 | is-relative@^0.2.1: 1650 | version "0.2.1" 1651 | resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" 1652 | dependencies: 1653 | is-unc-path "^0.1.1" 1654 | 1655 | is-retry-allowed@^1.0.0: 1656 | version "1.1.0" 1657 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 1658 | 1659 | is-stream@^1.0.0: 1660 | version "1.1.0" 1661 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1662 | 1663 | is-typedarray@~1.0.0: 1664 | version "1.0.0" 1665 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1666 | 1667 | is-unc-path@^0.1.1: 1668 | version "0.1.2" 1669 | resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" 1670 | dependencies: 1671 | unc-path-regex "^0.1.0" 1672 | 1673 | is-utf8@^0.2.0: 1674 | version "0.2.1" 1675 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1676 | 1677 | is-windows@^0.2.0: 1678 | version "0.2.0" 1679 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" 1680 | 1681 | isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: 1682 | version "1.0.0" 1683 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1684 | 1685 | isobject@^2.0.0, isobject@^2.1.0: 1686 | version "2.1.0" 1687 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1688 | dependencies: 1689 | isarray "1.0.0" 1690 | 1691 | isstream@~0.1.2: 1692 | version "0.1.2" 1693 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1694 | 1695 | jodid25519@^1.0.0: 1696 | version "1.0.2" 1697 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" 1698 | dependencies: 1699 | jsbn "~0.1.0" 1700 | 1701 | js-tokens@^3.0.0: 1702 | version "3.0.1" 1703 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 1704 | 1705 | jsbn@~0.1.0: 1706 | version "0.1.1" 1707 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1708 | 1709 | jsesc@^1.3.0: 1710 | version "1.3.0" 1711 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1712 | 1713 | jsesc@~0.5.0: 1714 | version "0.5.0" 1715 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1716 | 1717 | json-loader@^0.5.4: 1718 | version "0.5.4" 1719 | resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" 1720 | 1721 | json-schema@0.2.3: 1722 | version "0.2.3" 1723 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1724 | 1725 | json-stable-stringify@^1.0.1: 1726 | version "1.0.1" 1727 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1728 | dependencies: 1729 | jsonify "~0.0.0" 1730 | 1731 | json-stringify-safe@~5.0.1: 1732 | version "5.0.1" 1733 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1734 | 1735 | json5@^0.5.0, json5@^0.5.1: 1736 | version "0.5.1" 1737 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1738 | 1739 | jsonify@~0.0.0: 1740 | version "0.0.0" 1741 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1742 | 1743 | jsprim@^1.2.2: 1744 | version "1.4.0" 1745 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 1746 | dependencies: 1747 | assert-plus "1.0.0" 1748 | extsprintf "1.0.2" 1749 | json-schema "0.2.3" 1750 | verror "1.3.6" 1751 | 1752 | kind-of@^3.0.2: 1753 | version "3.2.0" 1754 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" 1755 | dependencies: 1756 | is-buffer "^1.1.5" 1757 | 1758 | latest-version@^2.0.0: 1759 | version "2.0.0" 1760 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" 1761 | dependencies: 1762 | package-json "^2.0.0" 1763 | 1764 | lazy-cache@^1.0.3: 1765 | version "1.0.4" 1766 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1767 | 1768 | lazy-req@^1.1.0: 1769 | version "1.1.0" 1770 | resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" 1771 | 1772 | lcid@^1.0.0: 1773 | version "1.0.0" 1774 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1775 | dependencies: 1776 | invert-kv "^1.0.0" 1777 | 1778 | listify@^1.0.0: 1779 | version "1.0.0" 1780 | resolved "https://registry.yarnpkg.com/listify/-/listify-1.0.0.tgz#03ca7ba2d150d4267773f74e57558d1053d2bee3" 1781 | 1782 | load-json-file@^1.0.0: 1783 | version "1.1.0" 1784 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1785 | dependencies: 1786 | graceful-fs "^4.1.2" 1787 | parse-json "^2.2.0" 1788 | pify "^2.0.0" 1789 | pinkie-promise "^2.0.0" 1790 | strip-bom "^2.0.0" 1791 | 1792 | loader-runner@^2.3.0: 1793 | version "2.3.0" 1794 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" 1795 | 1796 | loader-utils@^0.2.16: 1797 | version "0.2.17" 1798 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" 1799 | dependencies: 1800 | big.js "^3.1.3" 1801 | emojis-list "^2.0.0" 1802 | json5 "^0.5.0" 1803 | object-assign "^4.0.1" 1804 | 1805 | loader-utils@^1.0.2: 1806 | version "1.1.0" 1807 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" 1808 | dependencies: 1809 | big.js "^3.1.3" 1810 | emojis-list "^2.0.0" 1811 | json5 "^0.5.0" 1812 | 1813 | lockfile@^1.0.1: 1814 | version "1.0.3" 1815 | resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79" 1816 | 1817 | lodash@^4.14.0, lodash@^4.2.0: 1818 | version "4.17.4" 1819 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 1820 | 1821 | log-update@^1.0.2: 1822 | version "1.0.2" 1823 | resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" 1824 | dependencies: 1825 | ansi-escapes "^1.0.0" 1826 | cli-cursor "^1.0.2" 1827 | 1828 | longest@^1.0.1: 1829 | version "1.0.1" 1830 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 1831 | 1832 | loose-envify@^1.0.0: 1833 | version "1.3.1" 1834 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 1835 | dependencies: 1836 | js-tokens "^3.0.0" 1837 | 1838 | lowercase-keys@^1.0.0: 1839 | version "1.0.0" 1840 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 1841 | 1842 | make-error-cause@^1.2.1: 1843 | version "1.2.2" 1844 | resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" 1845 | dependencies: 1846 | make-error "^1.2.0" 1847 | 1848 | make-error@^1.2.0: 1849 | version "1.2.3" 1850 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.3.tgz#6c4402df732e0977ac6faf754a5074b3d2b1d19d" 1851 | 1852 | memory-fs@^0.4.0, memory-fs@~0.4.1: 1853 | version "0.4.1" 1854 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 1855 | dependencies: 1856 | errno "^0.1.3" 1857 | readable-stream "^2.0.1" 1858 | 1859 | methods@^1.1.1: 1860 | version "1.1.2" 1861 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1862 | 1863 | micromatch@^2.1.5: 1864 | version "2.3.11" 1865 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1866 | dependencies: 1867 | arr-diff "^2.0.0" 1868 | array-unique "^0.2.1" 1869 | braces "^1.8.2" 1870 | expand-brackets "^0.1.4" 1871 | extglob "^0.3.1" 1872 | filename-regex "^2.0.0" 1873 | is-extglob "^1.0.0" 1874 | is-glob "^2.0.1" 1875 | kind-of "^3.0.2" 1876 | normalize-path "^2.0.1" 1877 | object.omit "^2.0.0" 1878 | parse-glob "^3.0.4" 1879 | regex-cache "^0.4.2" 1880 | 1881 | miller-rabin@^4.0.0: 1882 | version "4.0.0" 1883 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" 1884 | dependencies: 1885 | bn.js "^4.0.0" 1886 | brorand "^1.0.1" 1887 | 1888 | mime-db@~1.27.0: 1889 | version "1.27.0" 1890 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 1891 | 1892 | mime-types@^2.1.12, mime-types@~2.1.7: 1893 | version "2.1.15" 1894 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 1895 | dependencies: 1896 | mime-db "~1.27.0" 1897 | 1898 | mime@^1.3.4: 1899 | version "1.3.4" 1900 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" 1901 | 1902 | minimalistic-assert@^1.0.0: 1903 | version "1.0.0" 1904 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" 1905 | 1906 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 1907 | version "1.0.1" 1908 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 1909 | 1910 | minimatch@^3.0.0, minimatch@^3.0.2: 1911 | version "3.0.3" 1912 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" 1913 | dependencies: 1914 | brace-expansion "^1.0.0" 1915 | 1916 | minimist@^1.2.0: 1917 | version "1.2.0" 1918 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1919 | 1920 | minimist@0.0.8: 1921 | version "0.0.8" 1922 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1923 | 1924 | mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0: 1925 | version "0.5.1" 1926 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1927 | dependencies: 1928 | minimist "0.0.8" 1929 | 1930 | most: 1931 | version "1.2.2" 1932 | resolved "https://registry.yarnpkg.com/most/-/most-1.2.2.tgz#8f12e434ad6195ed2e1efb3ec217e0cbcf3e1de8" 1933 | dependencies: 1934 | "@most/multicast" "^1.2.5" 1935 | "@most/prelude" "^1.4.0" 1936 | symbol-observable "^1.0.2" 1937 | 1938 | ms@0.7.3: 1939 | version "0.7.3" 1940 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" 1941 | 1942 | ms@2.0.0: 1943 | version "2.0.0" 1944 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1945 | 1946 | nan@^2.3.0: 1947 | version "2.6.2" 1948 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" 1949 | 1950 | node-libs-browser@^2.0.0: 1951 | version "2.0.0" 1952 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" 1953 | dependencies: 1954 | assert "^1.1.1" 1955 | browserify-zlib "^0.1.4" 1956 | buffer "^4.3.0" 1957 | console-browserify "^1.1.0" 1958 | constants-browserify "^1.0.0" 1959 | crypto-browserify "^3.11.0" 1960 | domain-browser "^1.1.1" 1961 | events "^1.0.0" 1962 | https-browserify "0.0.1" 1963 | os-browserify "^0.2.0" 1964 | path-browserify "0.0.0" 1965 | process "^0.11.0" 1966 | punycode "^1.2.4" 1967 | querystring-es3 "^0.2.0" 1968 | readable-stream "^2.0.5" 1969 | stream-browserify "^2.0.1" 1970 | stream-http "^2.3.1" 1971 | string_decoder "^0.10.25" 1972 | timers-browserify "^2.0.2" 1973 | tty-browserify "0.0.0" 1974 | url "^0.11.0" 1975 | util "^0.10.3" 1976 | vm-browserify "0.0.4" 1977 | 1978 | node-pre-gyp@^0.6.29: 1979 | version "0.6.34" 1980 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" 1981 | dependencies: 1982 | mkdirp "^0.5.1" 1983 | nopt "^4.0.1" 1984 | npmlog "^4.0.2" 1985 | rc "^1.1.7" 1986 | request "^2.81.0" 1987 | rimraf "^2.6.1" 1988 | semver "^5.3.0" 1989 | tar "^2.2.1" 1990 | tar-pack "^3.4.0" 1991 | 1992 | node-status-codes@^1.0.0: 1993 | version "1.0.0" 1994 | resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" 1995 | 1996 | nopt@^4.0.1: 1997 | version "4.0.1" 1998 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1999 | dependencies: 2000 | abbrev "1" 2001 | osenv "^0.1.4" 2002 | 2003 | nopt@~1.0.10: 2004 | version "1.0.10" 2005 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 2006 | dependencies: 2007 | abbrev "1" 2008 | 2009 | normalize-package-data@^2.3.2: 2010 | version "2.3.8" 2011 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" 2012 | dependencies: 2013 | hosted-git-info "^2.1.4" 2014 | is-builtin-module "^1.0.0" 2015 | semver "2 || 3 || 4 || 5" 2016 | validate-npm-package-license "^3.0.1" 2017 | 2018 | normalize-path@^2.0.1: 2019 | version "2.1.1" 2020 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2021 | dependencies: 2022 | remove-trailing-separator "^1.0.1" 2023 | 2024 | npmlog@^4.0.2: 2025 | version "4.0.2" 2026 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" 2027 | dependencies: 2028 | are-we-there-yet "~1.1.2" 2029 | console-control-strings "~1.1.0" 2030 | gauge "~2.7.1" 2031 | set-blocking "~2.0.0" 2032 | 2033 | number-is-nan@^1.0.0: 2034 | version "1.0.1" 2035 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2036 | 2037 | oauth-sign@~0.8.1: 2038 | version "0.8.2" 2039 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2040 | 2041 | object-assign@^4.0.1, object-assign@^4.1.0: 2042 | version "4.1.1" 2043 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2044 | 2045 | object.omit@^2.0.0: 2046 | version "2.0.1" 2047 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2048 | dependencies: 2049 | for-own "^0.1.4" 2050 | is-extendable "^0.1.1" 2051 | 2052 | object.pick@^1.1.1: 2053 | version "1.2.0" 2054 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.2.0.tgz#b5392bee9782da6d9fb7d6afaf539779f1234c2b" 2055 | dependencies: 2056 | isobject "^2.1.0" 2057 | 2058 | once@^1.3.0, once@^1.3.3: 2059 | version "1.4.0" 2060 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2061 | dependencies: 2062 | wrappy "1" 2063 | 2064 | onetime@^1.0.0: 2065 | version "1.1.0" 2066 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 2067 | 2068 | os-browserify@^0.2.0: 2069 | version "0.2.1" 2070 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" 2071 | 2072 | os-homedir@^1.0.0: 2073 | version "1.0.2" 2074 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2075 | 2076 | os-locale@^1.4.0: 2077 | version "1.4.0" 2078 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 2079 | dependencies: 2080 | lcid "^1.0.0" 2081 | 2082 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 2083 | version "1.0.2" 2084 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2085 | 2086 | osenv@^0.1.0, osenv@^0.1.4: 2087 | version "0.1.4" 2088 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 2089 | dependencies: 2090 | os-homedir "^1.0.0" 2091 | os-tmpdir "^1.0.0" 2092 | 2093 | package-json@^2.0.0: 2094 | version "2.4.0" 2095 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" 2096 | dependencies: 2097 | got "^5.0.0" 2098 | registry-auth-token "^3.0.1" 2099 | registry-url "^3.0.3" 2100 | semver "^5.1.0" 2101 | 2102 | pako@~0.2.0: 2103 | version "0.2.9" 2104 | resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" 2105 | 2106 | parse-asn1@^5.0.0: 2107 | version "5.1.0" 2108 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" 2109 | dependencies: 2110 | asn1.js "^4.0.0" 2111 | browserify-aes "^1.0.0" 2112 | create-hash "^1.1.0" 2113 | evp_bytestokey "^1.0.0" 2114 | pbkdf2 "^3.0.3" 2115 | 2116 | parse-glob@^3.0.4: 2117 | version "3.0.4" 2118 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2119 | dependencies: 2120 | glob-base "^0.3.0" 2121 | is-dotfile "^1.0.0" 2122 | is-extglob "^1.0.0" 2123 | is-glob "^2.0.0" 2124 | 2125 | parse-json@^2.1.0, parse-json@^2.2.0: 2126 | version "2.2.0" 2127 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2128 | dependencies: 2129 | error-ex "^1.2.0" 2130 | 2131 | path-browserify@0.0.0: 2132 | version "0.0.0" 2133 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 2134 | 2135 | path-exists@^2.0.0: 2136 | version "2.1.0" 2137 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2138 | dependencies: 2139 | pinkie-promise "^2.0.0" 2140 | 2141 | path-is-absolute@^1.0.0: 2142 | version "1.0.1" 2143 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2144 | 2145 | path-type@^1.0.0: 2146 | version "1.1.0" 2147 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2148 | dependencies: 2149 | graceful-fs "^4.1.2" 2150 | pify "^2.0.0" 2151 | pinkie-promise "^2.0.0" 2152 | 2153 | pbkdf2@^3.0.3: 2154 | version "3.0.9" 2155 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" 2156 | dependencies: 2157 | create-hmac "^1.1.2" 2158 | 2159 | performance-now@^0.2.0: 2160 | version "0.2.0" 2161 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 2162 | 2163 | pify@^2.0.0: 2164 | version "2.3.0" 2165 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2166 | 2167 | pinkie-promise@^2.0.0: 2168 | version "2.0.1" 2169 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2170 | dependencies: 2171 | pinkie "^2.0.0" 2172 | 2173 | pinkie@^2.0.0: 2174 | version "2.0.4" 2175 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2176 | 2177 | pkg-dir@^1.0.0: 2178 | version "1.0.0" 2179 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 2180 | dependencies: 2181 | find-up "^1.0.0" 2182 | 2183 | popsicle-proxy-agent@^3.0.0: 2184 | version "3.0.0" 2185 | resolved "https://registry.yarnpkg.com/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz#b9133c55d945759ab7ee61b7711364620d3aeadc" 2186 | dependencies: 2187 | http-proxy-agent "^1.0.0" 2188 | https-proxy-agent "^1.0.0" 2189 | 2190 | popsicle-retry@^3.2.0: 2191 | version "3.2.1" 2192 | resolved "https://registry.yarnpkg.com/popsicle-retry/-/popsicle-retry-3.2.1.tgz#e06e866533b42a7a123eb330cbe63a7cebcba10c" 2193 | dependencies: 2194 | any-promise "^1.1.0" 2195 | xtend "^4.0.1" 2196 | 2197 | popsicle-rewrite@^1.0.0: 2198 | version "1.0.0" 2199 | resolved "https://registry.yarnpkg.com/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz#1dd4e8ea9c3182351fb820f87934d992f7fb9007" 2200 | 2201 | popsicle-status@^2.0.0: 2202 | version "2.0.0" 2203 | resolved "https://registry.yarnpkg.com/popsicle-status/-/popsicle-status-2.0.0.tgz#54e12722376efba0a353abdf53cbf1ce0e852efa" 2204 | 2205 | popsicle@^8.0.2: 2206 | version "8.2.0" 2207 | resolved "https://registry.yarnpkg.com/popsicle/-/popsicle-8.2.0.tgz#ff4401005cab43a9418a91410611c00197712d21" 2208 | dependencies: 2209 | any-promise "^1.3.0" 2210 | arrify "^1.0.0" 2211 | concat-stream "^1.4.7" 2212 | form-data "^2.0.0" 2213 | make-error-cause "^1.2.1" 2214 | throwback "^1.1.0" 2215 | tough-cookie "^2.0.0" 2216 | xtend "^4.0.0" 2217 | 2218 | prepend-http@^1.0.1: 2219 | version "1.0.4" 2220 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2221 | 2222 | preserve@^0.2.0: 2223 | version "0.2.0" 2224 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2225 | 2226 | private@^0.1.6: 2227 | version "0.1.7" 2228 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" 2229 | 2230 | process-nextick-args@~1.0.6: 2231 | version "1.0.7" 2232 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 2233 | 2234 | process@^0.11.0: 2235 | version "0.11.9" 2236 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" 2237 | 2238 | promise-finally@^2.0.1, promise-finally@^2.2.1: 2239 | version "2.2.1" 2240 | resolved "https://registry.yarnpkg.com/promise-finally/-/promise-finally-2.2.1.tgz#22616c4ba902916e988bd46c54d7caa08910cd77" 2241 | dependencies: 2242 | any-promise "^1.3.0" 2243 | 2244 | prr@~0.0.0: 2245 | version "0.0.0" 2246 | resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" 2247 | 2248 | public-encrypt@^4.0.0: 2249 | version "4.0.0" 2250 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" 2251 | dependencies: 2252 | bn.js "^4.1.0" 2253 | browserify-rsa "^4.0.0" 2254 | create-hash "^1.1.0" 2255 | parse-asn1 "^5.0.0" 2256 | randombytes "^2.0.1" 2257 | 2258 | punycode@^1.2.4, punycode@^1.4.1: 2259 | version "1.4.1" 2260 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2261 | 2262 | punycode@1.3.2: 2263 | version "1.3.2" 2264 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2265 | 2266 | qs@^6.1.0, qs@~6.4.0: 2267 | version "6.4.0" 2268 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 2269 | 2270 | querystring-es3@^0.2.0: 2271 | version "0.2.1" 2272 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2273 | 2274 | querystring@0.2.0: 2275 | version "0.2.0" 2276 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2277 | 2278 | randomatic@^1.1.3: 2279 | version "1.1.6" 2280 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 2281 | dependencies: 2282 | is-number "^2.0.2" 2283 | kind-of "^3.0.2" 2284 | 2285 | randombytes@^2.0.0, randombytes@^2.0.1: 2286 | version "2.0.3" 2287 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" 2288 | 2289 | rc@^1.0.1, rc@^1.1.5, rc@^1.1.6, rc@^1.1.7: 2290 | version "1.2.1" 2291 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 2292 | dependencies: 2293 | deep-extend "~0.4.0" 2294 | ini "~1.3.0" 2295 | minimist "^1.2.0" 2296 | strip-json-comments "~2.0.1" 2297 | 2298 | read-all-stream@^3.0.0: 2299 | version "3.1.0" 2300 | resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" 2301 | dependencies: 2302 | pinkie-promise "^2.0.0" 2303 | readable-stream "^2.0.0" 2304 | 2305 | read-pkg-up@^1.0.1: 2306 | version "1.0.1" 2307 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2308 | dependencies: 2309 | find-up "^1.0.0" 2310 | read-pkg "^1.0.0" 2311 | 2312 | read-pkg@^1.0.0: 2313 | version "1.1.0" 2314 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2315 | dependencies: 2316 | load-json-file "^1.0.0" 2317 | normalize-package-data "^2.3.2" 2318 | path-type "^1.0.0" 2319 | 2320 | readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6: 2321 | version "2.2.9" 2322 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" 2323 | dependencies: 2324 | buffer-shims "~1.0.0" 2325 | core-util-is "~1.0.0" 2326 | inherits "~2.0.1" 2327 | isarray "~1.0.0" 2328 | process-nextick-args "~1.0.6" 2329 | string_decoder "~1.0.0" 2330 | util-deprecate "~1.0.1" 2331 | 2332 | readdirp@^2.0.0: 2333 | version "2.1.0" 2334 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 2335 | dependencies: 2336 | graceful-fs "^4.1.2" 2337 | minimatch "^3.0.2" 2338 | readable-stream "^2.0.2" 2339 | set-immediate-shim "^1.0.1" 2340 | 2341 | regenerate@^1.2.1: 2342 | version "1.3.2" 2343 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" 2344 | 2345 | regenerator-runtime@^0.10.0: 2346 | version "0.10.5" 2347 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 2348 | 2349 | regenerator-transform@0.9.11: 2350 | version "0.9.11" 2351 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" 2352 | dependencies: 2353 | babel-runtime "^6.18.0" 2354 | babel-types "^6.19.0" 2355 | private "^0.1.6" 2356 | 2357 | regex-cache@^0.4.2: 2358 | version "0.4.3" 2359 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 2360 | dependencies: 2361 | is-equal-shallow "^0.1.3" 2362 | is-primitive "^2.0.0" 2363 | 2364 | regexpu-core@^2.0.0: 2365 | version "2.0.0" 2366 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 2367 | dependencies: 2368 | regenerate "^1.2.1" 2369 | regjsgen "^0.2.0" 2370 | regjsparser "^0.1.4" 2371 | 2372 | registry-auth-token@^3.0.1: 2373 | version "3.3.0" 2374 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.0.tgz#57ae67347e73d96345ed1bc01294c7237c02aa63" 2375 | dependencies: 2376 | rc "^1.1.6" 2377 | safe-buffer "^5.0.1" 2378 | 2379 | registry-url@^3.0.3: 2380 | version "3.1.0" 2381 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 2382 | dependencies: 2383 | rc "^1.0.1" 2384 | 2385 | regjsgen@^0.2.0: 2386 | version "0.2.0" 2387 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 2388 | 2389 | regjsparser@^0.1.4: 2390 | version "0.1.5" 2391 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 2392 | dependencies: 2393 | jsesc "~0.5.0" 2394 | 2395 | remove-trailing-separator@^1.0.1: 2396 | version "1.0.1" 2397 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" 2398 | 2399 | repeat-element@^1.1.2: 2400 | version "1.1.2" 2401 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2402 | 2403 | repeat-string@^1.5.2: 2404 | version "1.6.1" 2405 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2406 | 2407 | repeating@^2.0.0: 2408 | version "2.0.1" 2409 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2410 | dependencies: 2411 | is-finite "^1.0.0" 2412 | 2413 | request@^2.81.0: 2414 | version "2.81.0" 2415 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 2416 | dependencies: 2417 | aws-sign2 "~0.6.0" 2418 | aws4 "^1.2.1" 2419 | caseless "~0.12.0" 2420 | combined-stream "~1.0.5" 2421 | extend "~3.0.0" 2422 | forever-agent "~0.6.1" 2423 | form-data "~2.1.1" 2424 | har-validator "~4.2.1" 2425 | hawk "~3.1.3" 2426 | http-signature "~1.1.0" 2427 | is-typedarray "~1.0.0" 2428 | isstream "~0.1.2" 2429 | json-stringify-safe "~5.0.1" 2430 | mime-types "~2.1.7" 2431 | oauth-sign "~0.8.1" 2432 | performance-now "^0.2.0" 2433 | qs "~6.4.0" 2434 | safe-buffer "^5.0.1" 2435 | stringstream "~0.0.4" 2436 | tough-cookie "~2.3.0" 2437 | tunnel-agent "^0.6.0" 2438 | uuid "^3.0.0" 2439 | 2440 | require-directory@^2.1.1: 2441 | version "2.1.1" 2442 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2443 | 2444 | require-main-filename@^1.0.1: 2445 | version "1.0.1" 2446 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2447 | 2448 | restore-cursor@^1.0.1: 2449 | version "1.0.1" 2450 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 2451 | dependencies: 2452 | exit-hook "^1.0.0" 2453 | onetime "^1.0.0" 2454 | 2455 | right-align@^0.1.1: 2456 | version "0.1.3" 2457 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 2458 | dependencies: 2459 | align-text "^0.1.1" 2460 | 2461 | rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.6.1, rimraf@2: 2462 | version "2.6.1" 2463 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 2464 | dependencies: 2465 | glob "^7.0.5" 2466 | 2467 | ripemd160@^1.0.0: 2468 | version "1.0.1" 2469 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" 2470 | 2471 | safe-buffer@^5.0.1: 2472 | version "5.0.1" 2473 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" 2474 | 2475 | semver-diff@^2.0.0: 2476 | version "2.1.0" 2477 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 2478 | dependencies: 2479 | semver "^5.0.3" 2480 | 2481 | semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, "semver@2 || 3 || 4 || 5": 2482 | version "5.3.0" 2483 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 2484 | 2485 | semver@~5.0.1: 2486 | version "5.0.3" 2487 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" 2488 | 2489 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2490 | version "2.0.0" 2491 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2492 | 2493 | set-immediate-shim@^1.0.1: 2494 | version "1.0.1" 2495 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 2496 | 2497 | setimmediate@^1.0.4: 2498 | version "1.0.5" 2499 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2500 | 2501 | sha.js@^2.3.6: 2502 | version "2.4.8" 2503 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" 2504 | dependencies: 2505 | inherits "^2.0.1" 2506 | 2507 | signal-exit@^3.0.0: 2508 | version "3.0.2" 2509 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2510 | 2511 | slash@^1.0.0: 2512 | version "1.0.0" 2513 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 2514 | 2515 | slice-ansi@0.0.4: 2516 | version "0.0.4" 2517 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 2518 | 2519 | slide@^1.1.5: 2520 | version "1.1.6" 2521 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 2522 | 2523 | snabbdom-selector@1.1.1: 2524 | version "1.1.1" 2525 | resolved "https://registry.yarnpkg.com/snabbdom-selector/-/snabbdom-selector-1.1.1.tgz#bde66fc54b34effc2f6a13d4a74de0d3cc771bfd" 2526 | dependencies: 2527 | cssauron "^1.4.0" 2528 | 2529 | snabbdom@0.6.5: 2530 | version "0.6.5" 2531 | resolved "https://registry.yarnpkg.com/snabbdom/-/snabbdom-0.6.5.tgz#01b0cba8d623eca19e570876630c12c057830066" 2532 | 2533 | sntp@1.x.x: 2534 | version "1.0.9" 2535 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 2536 | dependencies: 2537 | hoek "2.x.x" 2538 | 2539 | sort-keys@^1.0.0: 2540 | version "1.1.2" 2541 | resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" 2542 | dependencies: 2543 | is-plain-obj "^1.0.0" 2544 | 2545 | source-list-map@^1.1.1: 2546 | version "1.1.1" 2547 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.1.tgz#1a33ac210ca144d1e561f906ebccab5669ff4cb4" 2548 | 2549 | source-map-support@^0.4.2: 2550 | version "0.4.15" 2551 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" 2552 | dependencies: 2553 | source-map "^0.5.6" 2554 | 2555 | source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: 2556 | version "0.5.6" 2557 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 2558 | 2559 | spdx-correct@~1.0.0: 2560 | version "1.0.2" 2561 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 2562 | dependencies: 2563 | spdx-license-ids "^1.0.2" 2564 | 2565 | spdx-expression-parse@~1.0.0: 2566 | version "1.0.4" 2567 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 2568 | 2569 | spdx-license-ids@^1.0.2: 2570 | version "1.2.2" 2571 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 2572 | 2573 | sshpk@^1.7.0: 2574 | version "1.13.0" 2575 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" 2576 | dependencies: 2577 | asn1 "~0.2.3" 2578 | assert-plus "^1.0.0" 2579 | dashdash "^1.12.0" 2580 | getpass "^0.1.1" 2581 | optionalDependencies: 2582 | bcrypt-pbkdf "^1.0.0" 2583 | ecc-jsbn "~0.1.1" 2584 | jodid25519 "^1.0.0" 2585 | jsbn "~0.1.0" 2586 | tweetnacl "~0.14.0" 2587 | 2588 | stream-browserify@^2.0.1: 2589 | version "2.0.1" 2590 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" 2591 | dependencies: 2592 | inherits "~2.0.1" 2593 | readable-stream "^2.0.2" 2594 | 2595 | stream-http@^2.3.1: 2596 | version "2.7.0" 2597 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.0.tgz#cec1f4e3b494bc4a81b451808970f8b20b4ed5f6" 2598 | dependencies: 2599 | builtin-status-codes "^3.0.0" 2600 | inherits "^2.0.1" 2601 | readable-stream "^2.2.6" 2602 | to-arraybuffer "^1.0.0" 2603 | xtend "^4.0.0" 2604 | 2605 | string_decoder@^0.10.25: 2606 | version "0.10.31" 2607 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 2608 | 2609 | string_decoder@~1.0.0: 2610 | version "1.0.0" 2611 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" 2612 | dependencies: 2613 | buffer-shims "~1.0.0" 2614 | 2615 | string-template@^1.0.0: 2616 | version "1.0.0" 2617 | resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" 2618 | 2619 | string-width@^1.0.1, string-width@^1.0.2: 2620 | version "1.0.2" 2621 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2622 | dependencies: 2623 | code-point-at "^1.0.0" 2624 | is-fullwidth-code-point "^1.0.0" 2625 | strip-ansi "^3.0.0" 2626 | 2627 | stringstream@~0.0.4: 2628 | version "0.0.5" 2629 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 2630 | 2631 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2632 | version "3.0.1" 2633 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2634 | dependencies: 2635 | ansi-regex "^2.0.0" 2636 | 2637 | strip-bom@^2.0.0: 2638 | version "2.0.0" 2639 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 2640 | dependencies: 2641 | is-utf8 "^0.2.0" 2642 | 2643 | strip-json-comments@~2.0.1: 2644 | version "2.0.1" 2645 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2646 | 2647 | superagent@3.4.1: 2648 | version "3.4.1" 2649 | resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.4.1.tgz#4bd12741224d0ece6d9f757f1c3becbe7f24c115" 2650 | dependencies: 2651 | component-emitter "^1.2.0" 2652 | cookiejar "^2.0.6" 2653 | debug "^2.2.0" 2654 | extend "^3.0.0" 2655 | form-data "^2.1.1" 2656 | formidable "^1.0.17" 2657 | methods "^1.1.1" 2658 | mime "^1.3.4" 2659 | qs "^6.1.0" 2660 | readable-stream "^2.0.5" 2661 | 2662 | supports-color@^2.0.0: 2663 | version "2.0.0" 2664 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 2665 | 2666 | supports-color@^3.1.0: 2667 | version "3.2.3" 2668 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 2669 | dependencies: 2670 | has-flag "^1.0.0" 2671 | 2672 | symbol-observable@^1.0.2: 2673 | version "1.0.4" 2674 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" 2675 | 2676 | tapable@^0.2.5, tapable@~0.2.5: 2677 | version "0.2.6" 2678 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" 2679 | 2680 | tar-pack@^3.4.0: 2681 | version "3.4.0" 2682 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" 2683 | dependencies: 2684 | debug "^2.2.0" 2685 | fstream "^1.0.10" 2686 | fstream-ignore "^1.0.5" 2687 | once "^1.3.3" 2688 | readable-stream "^2.1.4" 2689 | rimraf "^2.5.1" 2690 | tar "^2.2.1" 2691 | uid-number "^0.0.6" 2692 | 2693 | tar@^2.2.1: 2694 | version "2.2.1" 2695 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 2696 | dependencies: 2697 | block-stream "*" 2698 | fstream "^1.0.2" 2699 | inherits "2" 2700 | 2701 | thenify@^3.1.0: 2702 | version "3.2.1" 2703 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.2.1.tgz#251fd1c80aff6e5cf57cb179ab1fcb724269bd11" 2704 | dependencies: 2705 | any-promise "^1.0.0" 2706 | 2707 | throat@^3.0.0: 2708 | version "3.0.0" 2709 | resolved "https://registry.yarnpkg.com/throat/-/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" 2710 | 2711 | through@X.X.X: 2712 | version "2.3.8" 2713 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2714 | 2715 | throwback@^1.1.0: 2716 | version "1.1.1" 2717 | resolved "https://registry.yarnpkg.com/throwback/-/throwback-1.1.1.tgz#f007e7c17604a6d16d7a07c41aa0e8fedc6184a4" 2718 | dependencies: 2719 | any-promise "^1.3.0" 2720 | 2721 | timed-out@^3.0.0: 2722 | version "3.1.3" 2723 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" 2724 | 2725 | timers-browserify@^2.0.2: 2726 | version "2.0.2" 2727 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" 2728 | dependencies: 2729 | setimmediate "^1.0.4" 2730 | 2731 | to-arraybuffer@^1.0.0: 2732 | version "1.0.1" 2733 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 2734 | 2735 | to-fast-properties@^1.0.1: 2736 | version "1.0.3" 2737 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 2738 | 2739 | touch@^1.0.0: 2740 | version "1.0.0" 2741 | resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" 2742 | dependencies: 2743 | nopt "~1.0.10" 2744 | 2745 | tough-cookie@^2.0.0, tough-cookie@~2.3.0: 2746 | version "2.3.2" 2747 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 2748 | dependencies: 2749 | punycode "^1.4.1" 2750 | 2751 | trim-right@^1.0.1: 2752 | version "1.0.1" 2753 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 2754 | 2755 | ts-loader: 2756 | version "2.0.3" 2757 | resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.0.3.tgz#89b8c87598f048df065766e07e1538f0eaeb1165" 2758 | dependencies: 2759 | colors "^1.0.3" 2760 | enhanced-resolve "^3.0.0" 2761 | loader-utils "^1.0.2" 2762 | semver "^5.0.1" 2763 | 2764 | tty-browserify@0.0.0: 2765 | version "0.0.0" 2766 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 2767 | 2768 | tunnel-agent@^0.6.0: 2769 | version "0.6.0" 2770 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 2771 | dependencies: 2772 | safe-buffer "^5.0.1" 2773 | 2774 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 2775 | version "0.14.5" 2776 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 2777 | 2778 | typedarray@^0.0.6: 2779 | version "0.0.6" 2780 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 2781 | 2782 | typescript: 2783 | version "2.2.2" 2784 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.2.tgz#606022508479b55ffa368b58fee963a03dfd7b0c" 2785 | 2786 | typescript@^2.0.3: 2787 | version "2.3.0" 2788 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.0.tgz#2e63e09284392bc8158a2444c33e2093795c0418" 2789 | 2790 | typings-core@^1.6.1: 2791 | version "1.6.1" 2792 | resolved "https://registry.yarnpkg.com/typings-core/-/typings-core-1.6.1.tgz#ce4b2931ea2f19bb8f3dacbec69983ac4e964a37" 2793 | dependencies: 2794 | any-promise "^1.3.0" 2795 | array-uniq "^1.0.2" 2796 | configstore "^2.0.0" 2797 | debug "^2.2.0" 2798 | detect-indent "^4.0.0" 2799 | graceful-fs "^4.1.2" 2800 | has "^1.0.1" 2801 | invariant "^2.2.0" 2802 | is-absolute "^0.2.3" 2803 | listify "^1.0.0" 2804 | lockfile "^1.0.1" 2805 | make-error-cause "^1.2.1" 2806 | mkdirp "^0.5.1" 2807 | object.pick "^1.1.1" 2808 | parse-json "^2.2.0" 2809 | popsicle "^8.0.2" 2810 | popsicle-proxy-agent "^3.0.0" 2811 | popsicle-retry "^3.2.0" 2812 | popsicle-rewrite "^1.0.0" 2813 | popsicle-status "^2.0.0" 2814 | promise-finally "^2.0.1" 2815 | rc "^1.1.5" 2816 | rimraf "^2.4.4" 2817 | sort-keys "^1.0.0" 2818 | string-template "^1.0.0" 2819 | strip-bom "^2.0.0" 2820 | thenify "^3.1.0" 2821 | throat "^3.0.0" 2822 | touch "^1.0.0" 2823 | typescript "^2.0.3" 2824 | xtend "^4.0.0" 2825 | zip-object "^0.1.0" 2826 | 2827 | typings@^1.3.3: 2828 | version "1.5.0" 2829 | resolved "https://registry.yarnpkg.com/typings/-/typings-1.5.0.tgz#b9d236cf1d37460854f8c671ea495d9405b8103f" 2830 | dependencies: 2831 | any-promise "^1.3.0" 2832 | archy "^1.0.0" 2833 | bluebird "^3.1.1" 2834 | chalk "^1.0.0" 2835 | cli-truncate "^0.2.1" 2836 | columnify "^1.5.2" 2837 | elegant-spinner "^1.0.1" 2838 | has-unicode "^2.0.1" 2839 | listify "^1.0.0" 2840 | log-update "^1.0.2" 2841 | minimist "^1.2.0" 2842 | promise-finally "^2.2.1" 2843 | typings-core "^1.6.1" 2844 | update-notifier "^1.0.0" 2845 | wordwrap "^1.0.0" 2846 | xtend "^4.0.1" 2847 | 2848 | uglify-js@^2.8.5: 2849 | version "2.8.22" 2850 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" 2851 | dependencies: 2852 | source-map "~0.5.1" 2853 | yargs "~3.10.0" 2854 | optionalDependencies: 2855 | uglify-to-browserify "~1.0.0" 2856 | 2857 | uglify-to-browserify@~1.0.0: 2858 | version "1.0.2" 2859 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 2860 | 2861 | uid-number@^0.0.6: 2862 | version "0.0.6" 2863 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 2864 | 2865 | unc-path-regex@^0.1.0: 2866 | version "0.1.2" 2867 | resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" 2868 | 2869 | unzip-response@^1.0.2: 2870 | version "1.0.2" 2871 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" 2872 | 2873 | update-notifier@^1.0.0: 2874 | version "1.0.3" 2875 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" 2876 | dependencies: 2877 | boxen "^0.6.0" 2878 | chalk "^1.0.0" 2879 | configstore "^2.0.0" 2880 | is-npm "^1.0.0" 2881 | latest-version "^2.0.0" 2882 | lazy-req "^1.1.0" 2883 | semver-diff "^2.0.0" 2884 | xdg-basedir "^2.0.0" 2885 | 2886 | url-parse-lax@^1.0.0: 2887 | version "1.0.0" 2888 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 2889 | dependencies: 2890 | prepend-http "^1.0.1" 2891 | 2892 | url@^0.11.0: 2893 | version "0.11.0" 2894 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 2895 | dependencies: 2896 | punycode "1.3.2" 2897 | querystring "0.2.0" 2898 | 2899 | util-deprecate@~1.0.1: 2900 | version "1.0.2" 2901 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2902 | 2903 | util@^0.10.3, util@0.10.3: 2904 | version "0.10.3" 2905 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 2906 | dependencies: 2907 | inherits "2.0.1" 2908 | 2909 | uuid, uuid@^3.0.0: 2910 | version "3.0.1" 2911 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" 2912 | 2913 | uuid@^2.0.1: 2914 | version "2.0.3" 2915 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 2916 | 2917 | validate-npm-package-license@^3.0.1: 2918 | version "3.0.1" 2919 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 2920 | dependencies: 2921 | spdx-correct "~1.0.0" 2922 | spdx-expression-parse "~1.0.0" 2923 | 2924 | verror@1.3.6: 2925 | version "1.3.6" 2926 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 2927 | dependencies: 2928 | extsprintf "1.0.2" 2929 | 2930 | vm-browserify@0.0.4: 2931 | version "0.0.4" 2932 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" 2933 | dependencies: 2934 | indexof "0.0.1" 2935 | 2936 | watchpack@^1.3.1: 2937 | version "1.3.1" 2938 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" 2939 | dependencies: 2940 | async "^2.1.2" 2941 | chokidar "^1.4.3" 2942 | graceful-fs "^4.1.2" 2943 | 2944 | wcwidth@^1.0.0: 2945 | version "1.0.1" 2946 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 2947 | dependencies: 2948 | defaults "^1.0.3" 2949 | 2950 | webpack-sources@^0.2.3: 2951 | version "0.2.3" 2952 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" 2953 | dependencies: 2954 | source-list-map "^1.1.1" 2955 | source-map "~0.5.3" 2956 | 2957 | webpack@^2.1.0-beta.21: 2958 | version "2.4.1" 2959 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.4.1.tgz#15a91dbe34966d8a4b99c7d656efd92a2e5a6f6a" 2960 | dependencies: 2961 | acorn "^5.0.0" 2962 | acorn-dynamic-import "^2.0.0" 2963 | ajv "^4.7.0" 2964 | ajv-keywords "^1.1.1" 2965 | async "^2.1.2" 2966 | enhanced-resolve "^3.0.0" 2967 | interpret "^1.0.0" 2968 | json-loader "^0.5.4" 2969 | json5 "^0.5.1" 2970 | loader-runner "^2.3.0" 2971 | loader-utils "^0.2.16" 2972 | memory-fs "~0.4.1" 2973 | mkdirp "~0.5.0" 2974 | node-libs-browser "^2.0.0" 2975 | source-map "^0.5.3" 2976 | supports-color "^3.1.0" 2977 | tapable "~0.2.5" 2978 | uglify-js "^2.8.5" 2979 | watchpack "^1.3.1" 2980 | webpack-sources "^0.2.3" 2981 | yargs "^6.0.0" 2982 | 2983 | which-module@^1.0.0: 2984 | version "1.0.0" 2985 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 2986 | 2987 | wide-align@^1.1.0: 2988 | version "1.1.0" 2989 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" 2990 | dependencies: 2991 | string-width "^1.0.1" 2992 | 2993 | widest-line@^1.0.0: 2994 | version "1.0.0" 2995 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" 2996 | dependencies: 2997 | string-width "^1.0.1" 2998 | 2999 | window-size@0.1.0: 3000 | version "0.1.0" 3001 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 3002 | 3003 | wordwrap@^1.0.0: 3004 | version "1.0.0" 3005 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3006 | 3007 | wordwrap@0.0.2: 3008 | version "0.0.2" 3009 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 3010 | 3011 | wrap-ansi@^2.0.0: 3012 | version "2.1.0" 3013 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3014 | dependencies: 3015 | string-width "^1.0.1" 3016 | strip-ansi "^3.0.1" 3017 | 3018 | wrappy@1: 3019 | version "1.0.2" 3020 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3021 | 3022 | write-file-atomic@^1.1.2: 3023 | version "1.3.3" 3024 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.3.tgz#831dd22d491bdc135180bb996a0eb3f8bf587791" 3025 | dependencies: 3026 | graceful-fs "^4.1.11" 3027 | imurmurhash "^0.1.4" 3028 | slide "^1.1.5" 3029 | 3030 | xdg-basedir@^2.0.0: 3031 | version "2.0.0" 3032 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" 3033 | dependencies: 3034 | os-homedir "^1.0.0" 3035 | 3036 | xstream, xstream@10.x: 3037 | version "10.5.0" 3038 | resolved "https://registry.yarnpkg.com/xstream/-/xstream-10.5.0.tgz#acf7776cf86f0188e09ebaf3227d847818d1564a" 3039 | dependencies: 3040 | symbol-observable "^1.0.2" 3041 | 3042 | xtend@^4.0.0, xtend@^4.0.1: 3043 | version "4.0.1" 3044 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3045 | 3046 | y18n@^3.2.1: 3047 | version "3.2.1" 3048 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3049 | 3050 | yargs-parser@^4.2.0: 3051 | version "4.2.1" 3052 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" 3053 | dependencies: 3054 | camelcase "^3.0.0" 3055 | 3056 | yargs@^6.0.0: 3057 | version "6.6.0" 3058 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" 3059 | dependencies: 3060 | camelcase "^3.0.0" 3061 | cliui "^3.2.0" 3062 | decamelize "^1.1.1" 3063 | get-caller-file "^1.0.1" 3064 | os-locale "^1.4.0" 3065 | read-pkg-up "^1.0.1" 3066 | require-directory "^2.1.1" 3067 | require-main-filename "^1.0.1" 3068 | set-blocking "^2.0.0" 3069 | string-width "^1.0.2" 3070 | which-module "^1.0.0" 3071 | y18n "^3.2.1" 3072 | yargs-parser "^4.2.0" 3073 | 3074 | yargs@~3.10.0: 3075 | version "3.10.0" 3076 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 3077 | dependencies: 3078 | camelcase "^1.0.2" 3079 | cliui "^2.1.0" 3080 | decamelize "^1.0.0" 3081 | window-size "0.1.0" 3082 | 3083 | zip-object@^0.1.0: 3084 | version "0.1.0" 3085 | resolved "https://registry.yarnpkg.com/zip-object/-/zip-object-0.1.0.tgz#c1a0da04c88c837756e248680a03ff902ec3f53a" 3086 | 3087 | --------------------------------------------------------------------------------