├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── code-of-conduct.md ├── dist ├── FastRTCSwarm.d.ts ├── FastRTCSwarm.js └── FastRTCSwarm.js.map ├── package.json ├── src └── FastRTCSwarm.ts ├── tsconfig.json ├── tslint.json ├── webpack.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .history 4 | .nyc_output 5 | .DS_Store 6 | *.log 7 | .vscode 8 | .idea 9 | compiled 10 | .awcache 11 | .rpt2_cache 12 | docs 13 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "arrowParens": "always", 5 | "printWidth": 100, 6 | "semi": false 7 | } 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2017 Matt Krick 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fast-rtc-swarm 2 | 3 | A full-mesh WebRTC swarm built on top of WebSockets & fast-rtc-peer 4 | 5 | ## Installation 6 | 7 | `yarn add @mattkrick/fast-rtc-swarm` 8 | 9 | ## What is it 10 | 11 | [fast-rtc-peer](https://github.com/mattkrick/fast-rtc-peer) offers a great API to connect 2 peers. 12 | If you'd like to connect more than 2 peers, you're on your own. 13 | That's why this exists. 14 | It uses a full mesh (vs. partial mesh) network so every client is connected to every other client. 15 | A full mesh is great for up to ~100 connections. 16 | After that, you'll probably want to move to a partial mesh & trade a little latency for memory. 17 | 18 | ## How's it different from webrtc-swarm? 19 | 20 | fast-rtc-swarm is different. 21 | - It's built on fast-rtc-peer, which is built on the new WebRTC v1.0 spec (transceivers instead of stage 2 tracks or stage 1 streams) 22 | - The signaling server doesn't have to be server sent events. It can be anything. (see [reference implementation](https://github.com/ParabolInc/action/tree/834d6f06fbcca8f8026a97e2872b44806c0fb6b8/src/server/wrtc/signalServer)) 23 | - It doesn't bother the signaling server with a heartbeat. We can derive that info from the swarm by listening to `disconnected` on each peer. 24 | If timeouts are an issue, then add a WebSocket#ping on your server. Don't make the client do more work than necessary! 25 | - It only connects to 1 signaling server. Multiple servers is a proxy problem. Again, don't make the client work hard! 26 | - No unauthenticated-by-default signaling server CLI. I'm not gonna make it easier for you to write an insecure server :-) 27 | - No multiplexing streams. If you need a new data channel, open another one natively, not with expensive (and LARGE) stream packages. 28 | - It uses the fast-rtc protocol for the fastest connection possible 29 | 30 | ## What makes it so fast? 31 | 32 | The fast-rtc protocol completes a WebRTC handshake in only 2 round trips. 33 | Other implementations take 3 (or even 4!) 34 | It does this by keeping a `peerBuffer` of offers and candidates. 35 | Think of it like "pay-it-forward". 36 | You buy the person behind you a coffee, so they get a free coffee when they get to register & buy the person behind them a coffee. 37 | 38 | Here's how it works: 39 | 40 | Alice is the first peer to join the swarm: 41 | - She gives the server an OFFER that can be used by the next person to join 42 | - As CANDIDATES and additional OFFERS trickle in, she forwards them to the server 43 | - The server groups CANDIDATES and OFFERS in a single CHUNK, awaiting an ACCEPT 44 | - When someone ACCEPTS her CHUNK, the server REQUESTS another from her 45 | - As CANDIDATES and OFFERS continue to trickle in, they are forwarded to client that ACCEPTED the original chunk 46 | 47 | When Bob joins the swarm: 48 | - He follows the same procedure as Alice 49 | - He takes one CHUNK from each client on the server 50 | - If Alice does not have a CHUNK readily available, Bob puts his name on her waiting list 51 | - On the client, Bob creates an ANSWER to each OFFER and forwards it to the signaling server 52 | - The signaling server forwards Bob's ANSWER to Alice 53 | - Alice uses Bob's ANSWER to initiate the connection 54 | 55 | That's it! See [reference implementation](https://github.com/ParabolInc/action/tree/834d6f06fbcca8f8026a97e2872b44806c0fb6b8/src/server/wrtc/signalServer) and the example below to see how to add it to your own server. 56 | 57 | 58 | ## Usage 59 | 60 | ```js 61 | // client 62 | import FastRTCSwarm from '@mattkrick/fast-rtc-swarm' 63 | 64 | const socket = new WebSocket('ws://localhost:3000'); 65 | socket.addEventListener('open', () => { 66 | const swarm = new FastRTCSwarm() 67 | // send the signal to the signaling server 68 | swarm.on('signal', (signal) => { 69 | socket.send(JSON.stringify(signal)) 70 | }) 71 | // when the signal come back, dispatch it to the swarm 72 | socket.addEventListener('message', (event) => { 73 | const payload = JSON.parse(event.data) 74 | swarm.dispatch(payload) 75 | }) 76 | // when the connection is open, say hi to your new peer 77 | swarm.on('dataOpen', (peer) => { 78 | console.log('data channel open!') 79 | peer.send('hi') 80 | }) 81 | // when your peer says hi, log it 82 | swarm.on('data', (data, peer) => { 83 | console.log('data received', data, peer) 84 | }) 85 | }) 86 | ``` 87 | 88 | ## API 89 | 90 | Config: A superset of fast-rtc-peer's config. 91 | To add a TURN server to the default list of ICE candidates, see [fast-rtc-peer](https://github.com/mattkrick/fast-rtc-peer). 92 | - `roomId`: a string to define the room all the peers are joining 93 | - `peerBuffer`: the number of additional offers to keep on the server (default 0) 94 | 95 | Methods on FastRTCSwarm 96 | - `addStreams(streamDict)`: similar to fast-rtc-peer's `addStreams`, but updates your tracks for future peers 97 | - `broadcast(message)`: send a string or buffer to all connected peers 98 | - `close()`: destroy all peer connections 99 | - `dispatch(signal)`: receive an incoming signal from the signal server 100 | - `muteTrack(trackName)`: mute's the track for all peers & future peers 101 | 102 | ## Events 103 | 104 | - `swarm.on('open', (peer) => {})`: fired when a peer connects 105 | - `swarm.on('close', (peer) => {})`: fired when a peer disconnects 106 | - `swarm.on('data', (data, peer) => {})`: fired when a peer sends data 107 | - `swarm.on('signal', (signal, peer) => {})`: fired when a peer creates an offer, ICE candidate, or answer. 108 | - `swarm.on('stream', (stream, peer) => {})`: fired when a peer creates or updates an audio/video track. 109 | - `swarm.on('error', (error, peer) => {})`: fired when a peer has a signaling error. 110 | - `swarm.on('connection', (stream, peer) => {})`: fired when a peer's ICE connection state changes 111 | 112 | ## License 113 | 114 | MIT 115 | -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | don't be a dick. 4 | -------------------------------------------------------------------------------- /dist/FastRTCSwarm.d.ts: -------------------------------------------------------------------------------- 1 | import FastRTCPeer, { AnswerPayload, CandidatePayload, DataPayload, OfferPayload, PeerConfig, StreamDict, StreamDictInput } from '@mattkrick/fast-rtc-peer'; 2 | import EventEmitter from 'eventemitter3'; 3 | import StrictEventEmitter from 'strict-event-emitter-types'; 4 | declare type Swarm = T & { 5 | id: string; 6 | }; 7 | export interface InitPayloadToServer { 8 | readonly type: 'init'; 9 | readonly userId: string; 10 | readonly roomId: string | number; 11 | } 12 | export interface ClosePayloadToServer { 13 | readonly type: 'close'; 14 | } 15 | export declare type CandidatePayloadToServer = Swarm; 16 | export declare type AnswerPayloadToServer = Swarm; 17 | export declare type OfferPayloadToServer = Swarm; 18 | export declare type PayloadToServer = CandidatePayloadToServer | AnswerPayloadToServer | OfferPayloadToServer | InitPayloadToServer | ClosePayloadToServer; 19 | interface SwarmOfferRequest { 20 | readonly type: 'offerRequest'; 21 | } 22 | interface SwarmOfferAccepted { 23 | readonly type: 'offerAccepted'; 24 | readonly id: string; 25 | readonly userId: string; 26 | } 27 | export interface SwarmAccept { 28 | readonly type: 'accept'; 29 | readonly id: string; 30 | readonly userId: string; 31 | readonly signals: Array; 32 | } 33 | export interface SwarmLeave { 34 | readonly type: 'leaveSwarm'; 35 | readonly id: string; 36 | } 37 | export declare type PayloadToClient = SwarmAccept | SwarmOfferRequest | SwarmOfferAccepted | CandidatePayloadToServer | AnswerPayloadToServer | OfferPayloadToServer | SwarmLeave; 38 | export interface FastRTCSwarmEvents { 39 | signal: (payload: PayloadToServer) => void; 40 | data: (data: DataPayload, peer: FastRTCPeer) => void; 41 | open: (peer: FastRTCPeer) => void; 42 | close: (peer: FastRTCPeer) => void; 43 | error: (error: Error, peer?: FastRTCPeer) => void; 44 | stream: (stream: MediaStream, name: string, peer: FastRTCPeer) => void; 45 | connection: (iceConnectionState: RTCIceConnectionState, peer: FastRTCPeer) => void; 46 | } 47 | export declare type FastRTCSwarmEmitter = { 48 | new (): StrictEventEmitter; 49 | }; 50 | export interface SwarmConfig extends PeerConfig { 51 | peerBuffer?: number; 52 | maxPeers?: number; 53 | roomId?: string | number; 54 | } 55 | declare const FastRTCSwarm_base: FastRTCSwarmEmitter; 56 | declare class FastRTCSwarm extends FastRTCSwarm_base { 57 | peers: Map; 58 | peerConfig: PeerConfig & { 59 | streams: StreamDict; 60 | }; 61 | peerBuffer: number; 62 | maxPeers: number; 63 | constructor(config?: SwarmConfig); 64 | private createOfferer; 65 | private initializePeer; 66 | addStreams(streams: StreamDictInput): void; 67 | broadcast(message: DataPayload): void; 68 | close(): void; 69 | dispatch(payload: PayloadToClient): void; 70 | muteTrack(name: string): void; 71 | } 72 | export default FastRTCSwarm; 73 | //# sourceMappingURL=FastRTCSwarm.d.ts.map -------------------------------------------------------------------------------- /dist/FastRTCSwarm.js: -------------------------------------------------------------------------------- 1 | module.exports = 2 | /******/ (function(modules) { // webpackBootstrap 3 | /******/ // The module cache 4 | /******/ var installedModules = {}; 5 | /******/ 6 | /******/ // The require function 7 | /******/ function __webpack_require__(moduleId) { 8 | /******/ 9 | /******/ // Check if module is in cache 10 | /******/ if(installedModules[moduleId]) { 11 | /******/ return installedModules[moduleId].exports; 12 | /******/ } 13 | /******/ // Create a new module (and put it into the cache) 14 | /******/ var module = installedModules[moduleId] = { 15 | /******/ i: moduleId, 16 | /******/ l: false, 17 | /******/ exports: {} 18 | /******/ }; 19 | /******/ 20 | /******/ // Execute the module function 21 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 22 | /******/ 23 | /******/ // Flag the module as loaded 24 | /******/ module.l = true; 25 | /******/ 26 | /******/ // Return the exports of the module 27 | /******/ return module.exports; 28 | /******/ } 29 | /******/ 30 | /******/ 31 | /******/ // expose the modules object (__webpack_modules__) 32 | /******/ __webpack_require__.m = modules; 33 | /******/ 34 | /******/ // expose the module cache 35 | /******/ __webpack_require__.c = installedModules; 36 | /******/ 37 | /******/ // define getter function for harmony exports 38 | /******/ __webpack_require__.d = function(exports, name, getter) { 39 | /******/ if(!__webpack_require__.o(exports, name)) { 40 | /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 41 | /******/ } 42 | /******/ }; 43 | /******/ 44 | /******/ // define __esModule on exports 45 | /******/ __webpack_require__.r = function(exports) { 46 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 47 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 48 | /******/ } 49 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); 50 | /******/ }; 51 | /******/ 52 | /******/ // create a fake namespace object 53 | /******/ // mode & 1: value is a module id, require it 54 | /******/ // mode & 2: merge all properties of value into the ns 55 | /******/ // mode & 4: return value when already ns object 56 | /******/ // mode & 8|1: behave like require 57 | /******/ __webpack_require__.t = function(value, mode) { 58 | /******/ if(mode & 1) value = __webpack_require__(value); 59 | /******/ if(mode & 8) return value; 60 | /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 61 | /******/ var ns = Object.create(null); 62 | /******/ __webpack_require__.r(ns); 63 | /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 64 | /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 65 | /******/ return ns; 66 | /******/ }; 67 | /******/ 68 | /******/ // getDefaultExport function for compatibility with non-harmony modules 69 | /******/ __webpack_require__.n = function(module) { 70 | /******/ var getter = module && module.__esModule ? 71 | /******/ function getDefault() { return module['default']; } : 72 | /******/ function getModuleExports() { return module; }; 73 | /******/ __webpack_require__.d(getter, 'a', getter); 74 | /******/ return getter; 75 | /******/ }; 76 | /******/ 77 | /******/ // Object.prototype.hasOwnProperty.call 78 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 79 | /******/ 80 | /******/ // __webpack_public_path__ 81 | /******/ __webpack_require__.p = ""; 82 | /******/ 83 | /******/ 84 | /******/ // Load entry module and return exports 85 | /******/ return __webpack_require__(__webpack_require__.s = "./src/FastRTCSwarm.ts"); 86 | /******/ }) 87 | /************************************************************************/ 88 | /******/ ({ 89 | 90 | /***/ "./src/FastRTCSwarm.ts": 91 | /*!*****************************!*\ 92 | !*** ./src/FastRTCSwarm.ts ***! 93 | \*****************************/ 94 | /*! exports provided: default */ 95 | /***/ (function(module, __webpack_exports__, __webpack_require__) { 96 | 97 | "use strict"; 98 | __webpack_require__.r(__webpack_exports__); 99 | /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "tslib"); 100 | /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__); 101 | /* harmony import */ var _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @mattkrick/fast-rtc-peer */ "@mattkrick/fast-rtc-peer"); 102 | /* harmony import */ var _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1__); 103 | /* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! eventemitter3 */ "eventemitter3"); 104 | /* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_2__); 105 | 106 | 107 | 108 | class FastRTCSwarm extends eventemitter3__WEBPACK_IMPORTED_MODULE_2___default.a { 109 | constructor(config = {}) { 110 | super(); 111 | this.peers = new Map(); 112 | const { userId = _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1___default.a.generateID(), peerBuffer = 1, maxPeers = 1024, roomId = '' } = config, peerConfig = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](config, ["userId", "peerBuffer", "maxPeers", "roomId"]); 113 | this.peerBuffer = peerBuffer; 114 | this.maxPeers = maxPeers; 115 | this.peerConfig = Object.assign({}, peerConfig, { streams: _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1___default.a.fromStreamShorthand(peerConfig.streams) }); 116 | setTimeout(() => this.emit('signal', { type: 'init', userId, roomId })); 117 | for (let i = 0; i < this.peerBuffer; i++) { 118 | this.createOfferer(); 119 | } 120 | } 121 | createOfferer() { 122 | const connectionId = _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1___default.a.generateID(); 123 | const offeringPeer = this.initializePeer(Object.assign({ isOfferer: true, id: connectionId }, this.peerConfig)); 124 | this.peers.set(connectionId, offeringPeer); 125 | } 126 | initializePeer(config) { 127 | const peer = new _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1___default.a(config); 128 | peer.on('signal', (signal, peer) => { 129 | this.emit('signal', Object.assign({}, signal, { id: peer.id })); 130 | }); 131 | peer.on('open', (peer) => { 132 | this.emit('open', peer); 133 | }); 134 | peer.on('close', (peer) => { 135 | this.peers.delete(peer.id); 136 | this.emit('close', peer); 137 | }); 138 | peer.on('data', (data, peer) => { 139 | this.emit('data', data, peer); 140 | }); 141 | peer.on('stream', (stream, name, peer) => { 142 | this.emit('stream', stream, name, peer); 143 | }); 144 | peer.on('error', (error, peer) => { 145 | this.emit('error', error, peer); 146 | }); 147 | peer.on('connection', (iceConnectionState, peer) => { 148 | this.emit('connection', iceConnectionState, peer); 149 | }); 150 | return peer; 151 | } 152 | addStreams(streams) { 153 | const streamDict = _mattkrick_fast_rtc_peer__WEBPACK_IMPORTED_MODULE_1___default.a.fromStreamShorthand(streams); 154 | this.peers.forEach((peer) => { 155 | peer.addStreams(streamDict); 156 | }); 157 | const { streams: configStreams } = this.peerConfig; 158 | Object.keys(streamDict).forEach((streamName) => { 159 | const trackDict = streamDict[streamName]; 160 | const configTracks = configStreams[streamName]; 161 | if (!configTracks) { 162 | configStreams[streamName] = trackDict; 163 | } 164 | else { 165 | Object.keys(trackDict).forEach((trackName) => { 166 | configTracks[trackName] = trackDict[trackName]; 167 | }); 168 | } 169 | }); 170 | } 171 | broadcast(message) { 172 | this.peers.forEach((peer) => { 173 | peer.send(message); 174 | }); 175 | } 176 | close() { 177 | this.emit('signal', { type: 'close' }); 178 | this.peers.forEach((peer) => peer.close()); 179 | this.peers.clear(); 180 | } 181 | dispatch(payload) { 182 | switch (payload.type) { 183 | case 'accept': 184 | const { id, signals, userId } = payload; 185 | this.peers.set(id, this.initializePeer(Object.assign({ id: id, userId }, this.peerConfig))); 186 | signals.forEach((signal) => { 187 | this.dispatch(Object.assign({}, signal, { id })); 188 | }); 189 | break; 190 | case 'offer': 191 | case 'answer': 192 | case 'candidate': 193 | const { id: peerId } = payload, desc = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](payload, ["id"]); 194 | const descPeer = this.peers.get(peerId); 195 | if (descPeer) { 196 | descPeer.dispatch(desc); 197 | } 198 | break; 199 | case 'offerRequest': 200 | this.createOfferer(); 201 | break; 202 | case 'offerAccepted': 203 | const acceptingPeer = this.peers.get(payload.id); 204 | if (acceptingPeer) { 205 | acceptingPeer.userId = payload.userId; 206 | } 207 | break; 208 | case 'leaveSwarm': 209 | const leavingPeer = this.peers.get(payload.id); 210 | leavingPeer && leavingPeer.close(); 211 | } 212 | } 213 | muteTrack(name) { 214 | const { streams: configStreams } = this.peerConfig; 215 | Object.keys(configStreams).forEach((streamName) => { 216 | const trackDict = configStreams[streamName]; 217 | Object.keys(trackDict).forEach((transceiverName) => { 218 | if (transceiverName !== name) 219 | return; 220 | const entry = trackDict[transceiverName]; 221 | if (entry && typeof entry !== 'string') { 222 | entry.track.stop(); 223 | entry.track.enabled = false; 224 | } 225 | }); 226 | }); 227 | this.peers.forEach((peer) => peer.muteTrack(name)); 228 | } 229 | } 230 | /* harmony default export */ __webpack_exports__["default"] = (FastRTCSwarm); 231 | 232 | 233 | /***/ }), 234 | 235 | /***/ "@mattkrick/fast-rtc-peer": 236 | /*!*******************************************!*\ 237 | !*** external "@mattkrick/fast-rtc-peer" ***! 238 | \*******************************************/ 239 | /*! no static exports found */ 240 | /***/ (function(module, exports) { 241 | 242 | module.exports = require("@mattkrick/fast-rtc-peer"); 243 | 244 | /***/ }), 245 | 246 | /***/ "eventemitter3": 247 | /*!********************************!*\ 248 | !*** external "eventemitter3" ***! 249 | \********************************/ 250 | /*! no static exports found */ 251 | /***/ (function(module, exports) { 252 | 253 | module.exports = require("eventemitter3"); 254 | 255 | /***/ }), 256 | 257 | /***/ "tslib": 258 | /*!************************!*\ 259 | !*** external "tslib" ***! 260 | \************************/ 261 | /*! no static exports found */ 262 | /***/ (function(module, exports) { 263 | 264 | module.exports = require("tslib"); 265 | 266 | /***/ }) 267 | 268 | /******/ }); 269 | //# sourceMappingURL=FastRTCSwarm.js.map -------------------------------------------------------------------------------- /dist/FastRTCSwarm.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack://FastRTCSwarm/webpack/bootstrap","webpack://FastRTCSwarm/./src/FastRTCSwarm.ts","webpack://FastRTCSwarm/external \"@mattkrick/fast-rtc-peer\"","webpack://FastRTCSwarm/external \"eventemitter3\"","webpack://FastRTCSwarm/external \"tslib\""],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;;;;;;;;;ACzEiC;AACO;AA4ExC,MAAM,YAAa,SAAS,oDAAoC;IAM9D,YAAa,SAAsB,EAAE;QACnC,KAAK,EAAE;QANT,UAAK,GAAG,IAAI,GAAG,EAA6B;QAO1C,MAAM,EACJ,MAAM,GAAG,+DAAW,CAAC,UAAU,EAAE,EACjC,UAAU,GAAG,CAAC,EACd,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,EAAE,KAET,MAAM,EADR,iHACQ;QACV,IAAI,CAAC,UAAU,GAAG,UAAU;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,UAAU,qBAAQ,UAAU,IAAE,OAAO,EAAE,+DAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,GAAE;QAEjG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,aAAa,EAAE;SACrB;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,YAAY,GAAG,+DAAW,CAAC,UAAU,EAAE;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,iBACtC,SAAS,EAAE,IAAI,EACf,EAAE,EAAE,YAAY,IACb,IAAI,CAAC,UAAU,EAClB;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5C,CAAC;IAEO,cAAc,CAAE,MAAkB;QACxC,MAAM,IAAI,GAAG,IAAI,+DAAW,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAsB,EAAE,IAAiB,EAAE,EAAE;YAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAK,MAAM,IAAE,EAAE,EAAE,IAAI,CAAC,EAAE,GAAqB,CAAC;QACpE,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAiB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAiB,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1B,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAiB,EAAE,IAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;QAC/B,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAmB,EAAE,IAAY,EAAE,IAAiB,EAAE,EAAE;YACzE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;QACzC,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,IAAiB,EAAE,EAAE;YACnD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;QACjC,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,kBAAyC,EAAE,IAAiB,EAAE,EAAE;YACrF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,EAAE,IAAI,CAAC;QACnD,CAAC,CAAC;QACF,OAAO,IAAI;IACb,CAAC;IAED,UAAU,CAAE,OAAwB;QAClC,MAAM,UAAU,GAAG,+DAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC7B,CAAC,CAAC;QAGF,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC;YACxC,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,YAAY,EAAE;gBACjB,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS;aACtC;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC3C,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;gBAChD,CAAC,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,CAAE,OAAoB;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACpB,CAAC;IAED,QAAQ,CAAE,OAAwB;QAChC,QAAQ,OAAO,CAAC,IAAI,EAAE;YACpB,KAAK,QAAQ;gBACX,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,iBAAG,EAAE,EAAE,EAAE,EAAE,MAAM,IAAK,IAAI,CAAC,UAAU,EAAG,CAAC;gBAC/E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzB,IAAI,CAAC,QAAQ,mBAAM,MAAM,IAAE,EAAE,IAAG;gBAClC,CAAC,CAAC;gBACF,MAAK;YACP,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,WAAW;gBACd,MAAM,EAAE,EAAE,EAAE,MAAM,KAAc,OAAO,EAAnB,oEAAmB;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACvC,IAAI,QAAQ,EAAE;oBACZ,QAAQ,CAAC,QAAQ,CAAC,IAAW,CAAC;iBAC/B;gBACD,MAAK;YACP,KAAK,cAAc;gBACjB,IAAI,CAAC,aAAa,EAAE;gBACpB,MAAK;YACP,KAAK,eAAe;gBAClB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;iBACtC;gBACD,MAAK;YACP,KAAK,YAAY;gBACf,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;SACrC;IACH,CAAC;IAED,SAAS,CAAE,IAAY;QAErB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU;QAClD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;gBACjD,IAAI,eAAe,KAAK,IAAI;oBAAE,OAAM;gBACpC,MAAM,KAAK,GAAG,SAAS,CAAC,eAAe,CAAC;gBACxC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACtC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;oBAElB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;iBAC5B;YACH,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF;AAED,+DAAe,YAAY;;;;;;;;;;;;AC1O3B,qD;;;;;;;;;;;ACAA,0C;;;;;;;;;;;ACAA,kC","file":"FastRTCSwarm.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/FastRTCSwarm.ts\");\n","import FastRTCPeer, {\n AnswerPayload,\n CandidatePayload,\n DataPayload,\n OfferPayload,\n PayloadToServer as PayloadToSwarm,\n PeerConfig,\n StreamDict,\n StreamDictInput\n} from '@mattkrick/fast-rtc-peer'\nimport EventEmitter from 'eventemitter3'\nimport StrictEventEmitter from 'strict-event-emitter-types'\n\ntype Swarm = T & {id: string}\n\nexport interface InitPayloadToServer {\n readonly type: 'init'\n readonly userId: string\n readonly roomId: string | number\n}\n\nexport interface ClosePayloadToServer {\n readonly type: 'close'\n}\n\nexport type CandidatePayloadToServer = Swarm\nexport type AnswerPayloadToServer = Swarm\nexport type OfferPayloadToServer = Swarm\nexport type PayloadToServer =\n | CandidatePayloadToServer\n | AnswerPayloadToServer\n | OfferPayloadToServer\n | InitPayloadToServer\n | ClosePayloadToServer\n\ninterface SwarmOfferRequest {\n readonly type: 'offerRequest'\n}\n\ninterface SwarmOfferAccepted {\n readonly type: 'offerAccepted'\n readonly id: string\n readonly userId: string\n}\n\nexport interface SwarmAccept {\n readonly type: 'accept'\n readonly id: string\n readonly userId: string\n readonly signals: Array\n}\n\nexport interface SwarmLeave {\n readonly type: 'leaveSwarm'\n readonly id: string\n}\n\nexport type PayloadToClient =\n | SwarmAccept\n | SwarmOfferRequest\n | SwarmOfferAccepted\n | CandidatePayloadToServer\n | AnswerPayloadToServer\n | OfferPayloadToServer\n | SwarmLeave\n\nexport interface FastRTCSwarmEvents {\n signal: (payload: PayloadToServer) => void\n data: (data: DataPayload, peer: FastRTCPeer) => void\n open: (peer: FastRTCPeer) => void\n close: (peer: FastRTCPeer) => void\n error: (error: Error, peer?: FastRTCPeer) => void\n stream: (stream: MediaStream, name: string, peer: FastRTCPeer) => void\n connection: (iceConnectionState: RTCIceConnectionState, peer: FastRTCPeer) => void\n}\n\nexport type FastRTCSwarmEmitter = {new (): StrictEventEmitter}\n\nexport interface SwarmConfig extends PeerConfig {\n peerBuffer?: number\n maxPeers?: number\n roomId?: string | number\n}\n\ntype ConnectionId = string\n\nclass FastRTCSwarm extends (EventEmitter as FastRTCSwarmEmitter) {\n peers = new Map()\n peerConfig: PeerConfig & {streams: StreamDict}\n peerBuffer: number\n maxPeers: number\n\n constructor (config: SwarmConfig = {}) {\n super()\n const {\n userId = FastRTCPeer.generateID(),\n peerBuffer = 1,\n maxPeers = 1024,\n roomId = '',\n ...peerConfig\n } = config\n this.peerBuffer = peerBuffer\n this.maxPeers = maxPeers\n this.peerConfig = { ...peerConfig, streams: FastRTCPeer.fromStreamShorthand(peerConfig.streams) }\n // wait a tick to allow devs to set up their event listeners\n setTimeout(() => this.emit('signal', { type: 'init', userId, roomId }))\n for (let i = 0; i < this.peerBuffer; i++) {\n this.createOfferer()\n }\n }\n\n private createOfferer () {\n const connectionId = FastRTCPeer.generateID()\n const offeringPeer = this.initializePeer({\n isOfferer: true,\n id: connectionId,\n ...this.peerConfig\n })\n this.peers.set(connectionId, offeringPeer)\n }\n\n private initializePeer (config: PeerConfig) {\n const peer = new FastRTCPeer(config)\n peer.on('signal', (signal: PayloadToSwarm, peer: FastRTCPeer) => {\n this.emit('signal', { ...signal, id: peer.id } as PayloadToServer)\n })\n peer.on('open', (peer: FastRTCPeer) => {\n this.emit('open', peer)\n })\n peer.on('close', (peer: FastRTCPeer) => {\n this.peers.delete(peer.id)\n this.emit('close', peer)\n })\n peer.on('data', (data: DataPayload, peer: FastRTCPeer) => {\n this.emit('data', data, peer)\n })\n peer.on('stream', (stream: MediaStream, name: string, peer: FastRTCPeer) => {\n this.emit('stream', stream, name, peer)\n })\n peer.on('error', (error: Error, peer: FastRTCPeer) => {\n this.emit('error', error, peer)\n })\n peer.on('connection', (iceConnectionState: RTCIceConnectionState, peer: FastRTCPeer) => {\n this.emit('connection', iceConnectionState, peer)\n })\n return peer\n }\n\n addStreams (streams: StreamDictInput) {\n const streamDict = FastRTCPeer.fromStreamShorthand(streams)\n this.peers.forEach((peer) => {\n peer.addStreams(streamDict)\n })\n\n // update peerConfig so new peers get what the current ones are getting\n const { streams: configStreams } = this.peerConfig\n Object.keys(streamDict).forEach((streamName) => {\n const trackDict = streamDict[streamName]\n const configTracks = configStreams[streamName]\n if (!configTracks) {\n configStreams[streamName] = trackDict\n } else {\n Object.keys(trackDict).forEach((trackName) => {\n configTracks[trackName] = trackDict[trackName]\n })\n }\n })\n }\n\n broadcast (message: DataPayload) {\n this.peers.forEach((peer) => {\n peer.send(message)\n })\n }\n\n close (): void {\n this.emit('signal', { type: 'close' })\n this.peers.forEach((peer) => peer.close())\n this.peers.clear()\n }\n\n dispatch (payload: PayloadToClient): void {\n switch (payload.type) {\n case 'accept':\n const { id, signals, userId } = payload\n this.peers.set(id, this.initializePeer({ id: id, userId, ...this.peerConfig }))\n signals.forEach((signal) => {\n this.dispatch({ ...signal, id })\n })\n break\n case 'offer':\n case 'answer':\n case 'candidate':\n const { id: peerId, ...desc } = payload\n const descPeer = this.peers.get(peerId)\n if (descPeer) {\n descPeer.dispatch(desc as any)\n }\n break\n case 'offerRequest':\n this.createOfferer()\n break\n case 'offerAccepted':\n const acceptingPeer = this.peers.get(payload.id)\n if (acceptingPeer) {\n acceptingPeer.userId = payload.userId\n }\n break\n case 'leaveSwarm':\n const leavingPeer = this.peers.get(payload.id)\n leavingPeer && leavingPeer.close()\n }\n }\n\n muteTrack (name: string) {\n // remove from config so new peers don't get the video\n const { streams: configStreams } = this.peerConfig\n Object.keys(configStreams).forEach((streamName) => {\n const trackDict = configStreams[streamName]\n Object.keys(trackDict).forEach((transceiverName) => {\n if (transceiverName !== name) return\n const entry = trackDict[transceiverName]\n if (entry && typeof entry !== 'string') {\n entry.track.stop()\n // tell the hardware to turn off the light\n entry.track.enabled = false\n }\n })\n })\n\n this.peers.forEach((peer) => peer.muteTrack(name))\n }\n}\n\nexport default FastRTCSwarm\n","module.exports = require(\"@mattkrick/fast-rtc-peer\");","module.exports = require(\"eventemitter3\");","module.exports = require(\"tslib\");"],"sourceRoot":""} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@mattkrick/fast-rtc-swarm", 3 | "version": "0.4.1", 4 | "description": "A full-mesh WebRTC swarm built on top of simple-peer", 5 | "keywords": [ 6 | "WebRTC", 7 | "rtc", 8 | "decentralized", 9 | "distributed", 10 | "p2p", 11 | "peer", 12 | "swarm", 13 | "full-mesh" 14 | ], 15 | "main": "dist/FastRTCSwarm.js", 16 | "typings": "dist/FastRTCSwarm.d.ts", 17 | "author": "Matt Krick ", 18 | "repository": { 19 | "type": "git", 20 | "url": "https://github.com/mattkrick/fast-rtc-swarm" 21 | }, 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">=6.0.0" 25 | }, 26 | "scripts": { 27 | "build": "webpack --config webpack.config.js", 28 | "docs:build": "typedoc --out docs --target es6 --mode file --ignoreCompilerErrors --hideGenerator src", 29 | "docs:publish": "gh-pages -m \"[ci skip] Updates\" -d docs", 30 | "lint": "yarn prettier && yarn standard", 31 | "prettier": "prettier --write --loglevel warn ./**/*.ts", 32 | "precommit": "lint-staged", 33 | "standard": "tslint -c tslint.json --project tsconfig.json --fix ./**/*.ts", 34 | "watch": "webpack --config webpack.config.js -w" 35 | }, 36 | "lint-staged": { 37 | "src/**/*.ts": [ 38 | "prettier --write", 39 | "tslint --fix", 40 | "git add" 41 | ] 42 | }, 43 | "devDependencies": { 44 | "@types/uuid": "^3.4.3", 45 | "awesome-typescript-loader": "^5.2.0", 46 | "clean-webpack-plugin": "^0.1.19", 47 | "gh-pages": "^1.2.0", 48 | "husky": "^0.14.0", 49 | "lint-staged": "^7.1.3", 50 | "prettier": "^1.13.4", 51 | "strict-event-emitter-types": "^2.0.0", 52 | "tslint": "^5.11.0", 53 | "tslint-config-standard": "^7.1.0", 54 | "typedoc": "^0.11.0", 55 | "typescript": "^3.0.1", 56 | "webpack": "^4.16.1", 57 | "webpack-cli": "^3.1.0", 58 | "webpack-node-externals": "^1.7.2" 59 | }, 60 | "dependencies": { 61 | "@mattkrick/fast-rtc-peer": "^0.4.1", 62 | "eventemitter3": "^3.1.0", 63 | "tslib": "^1.9.3" 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/FastRTCSwarm.ts: -------------------------------------------------------------------------------- 1 | import FastRTCPeer, { 2 | AnswerPayload, 3 | CandidatePayload, 4 | DataPayload, 5 | OfferPayload, 6 | PayloadToServer as PayloadToSwarm, 7 | PeerConfig, 8 | StreamDict, 9 | StreamDictInput 10 | } from '@mattkrick/fast-rtc-peer' 11 | import EventEmitter from 'eventemitter3' 12 | import StrictEventEmitter from 'strict-event-emitter-types' 13 | 14 | type Swarm = T & {id: string} 15 | 16 | export interface InitPayloadToServer { 17 | readonly type: 'init' 18 | readonly userId: string 19 | readonly roomId: string | number 20 | } 21 | 22 | export interface ClosePayloadToServer { 23 | readonly type: 'close' 24 | } 25 | 26 | export type CandidatePayloadToServer = Swarm 27 | export type AnswerPayloadToServer = Swarm 28 | export type OfferPayloadToServer = Swarm 29 | export type PayloadToServer = 30 | | CandidatePayloadToServer 31 | | AnswerPayloadToServer 32 | | OfferPayloadToServer 33 | | InitPayloadToServer 34 | | ClosePayloadToServer 35 | 36 | interface SwarmOfferRequest { 37 | readonly type: 'offerRequest' 38 | } 39 | 40 | interface SwarmOfferAccepted { 41 | readonly type: 'offerAccepted' 42 | readonly id: string 43 | readonly userId: string 44 | } 45 | 46 | export interface SwarmAccept { 47 | readonly type: 'accept' 48 | readonly id: string 49 | readonly userId: string 50 | readonly signals: Array 51 | } 52 | 53 | export interface SwarmLeave { 54 | readonly type: 'leaveSwarm' 55 | readonly id: string 56 | } 57 | 58 | export type PayloadToClient = 59 | | SwarmAccept 60 | | SwarmOfferRequest 61 | | SwarmOfferAccepted 62 | | CandidatePayloadToServer 63 | | AnswerPayloadToServer 64 | | OfferPayloadToServer 65 | | SwarmLeave 66 | 67 | export interface FastRTCSwarmEvents { 68 | signal: (payload: PayloadToServer) => void 69 | data: (data: DataPayload, peer: FastRTCPeer) => void 70 | open: (peer: FastRTCPeer) => void 71 | close: (peer: FastRTCPeer) => void 72 | error: (error: Error, peer?: FastRTCPeer) => void 73 | stream: (stream: MediaStream, name: string, peer: FastRTCPeer) => void 74 | connection: (iceConnectionState: RTCIceConnectionState, peer: FastRTCPeer) => void 75 | } 76 | 77 | export type FastRTCSwarmEmitter = {new (): StrictEventEmitter} 78 | 79 | export interface SwarmConfig extends PeerConfig { 80 | peerBuffer?: number 81 | maxPeers?: number 82 | roomId?: string | number 83 | } 84 | 85 | type ConnectionId = string 86 | 87 | class FastRTCSwarm extends (EventEmitter as FastRTCSwarmEmitter) { 88 | peers = new Map() 89 | peerConfig: PeerConfig & {streams: StreamDict} 90 | peerBuffer: number 91 | maxPeers: number 92 | 93 | constructor (config: SwarmConfig = {}) { 94 | super() 95 | const { 96 | userId = FastRTCPeer.generateID(), 97 | peerBuffer = 1, 98 | maxPeers = 1024, 99 | roomId = '', 100 | ...peerConfig 101 | } = config 102 | this.peerBuffer = peerBuffer 103 | this.maxPeers = maxPeers 104 | this.peerConfig = { ...peerConfig, streams: FastRTCPeer.fromStreamShorthand(peerConfig.streams) } 105 | // wait a tick to allow devs to set up their event listeners 106 | setTimeout(() => this.emit('signal', { type: 'init', userId, roomId })) 107 | for (let i = 0; i < this.peerBuffer; i++) { 108 | this.createOfferer() 109 | } 110 | } 111 | 112 | private createOfferer () { 113 | const connectionId = FastRTCPeer.generateID() 114 | const offeringPeer = this.initializePeer({ 115 | isOfferer: true, 116 | id: connectionId, 117 | ...this.peerConfig 118 | }) 119 | this.peers.set(connectionId, offeringPeer) 120 | } 121 | 122 | private initializePeer (config: PeerConfig) { 123 | const peer = new FastRTCPeer(config) 124 | peer.on('signal', (signal: PayloadToSwarm, peer: FastRTCPeer) => { 125 | this.emit('signal', { ...signal, id: peer.id } as PayloadToServer) 126 | }) 127 | peer.on('open', (peer: FastRTCPeer) => { 128 | this.emit('open', peer) 129 | }) 130 | peer.on('close', (peer: FastRTCPeer) => { 131 | this.peers.delete(peer.id) 132 | this.emit('close', peer) 133 | }) 134 | peer.on('data', (data: DataPayload, peer: FastRTCPeer) => { 135 | this.emit('data', data, peer) 136 | }) 137 | peer.on('stream', (stream: MediaStream, name: string, peer: FastRTCPeer) => { 138 | this.emit('stream', stream, name, peer) 139 | }) 140 | peer.on('error', (error: Error, peer: FastRTCPeer) => { 141 | this.emit('error', error, peer) 142 | }) 143 | peer.on('connection', (iceConnectionState: RTCIceConnectionState, peer: FastRTCPeer) => { 144 | this.emit('connection', iceConnectionState, peer) 145 | }) 146 | return peer 147 | } 148 | 149 | addStreams (streams: StreamDictInput) { 150 | const streamDict = FastRTCPeer.fromStreamShorthand(streams) 151 | this.peers.forEach((peer) => { 152 | peer.addStreams(streamDict) 153 | }) 154 | 155 | // update peerConfig so new peers get what the current ones are getting 156 | const { streams: configStreams } = this.peerConfig 157 | Object.keys(streamDict).forEach((streamName) => { 158 | const trackDict = streamDict[streamName] 159 | const configTracks = configStreams[streamName] 160 | if (!configTracks) { 161 | configStreams[streamName] = trackDict 162 | } else { 163 | Object.keys(trackDict).forEach((trackName) => { 164 | configTracks[trackName] = trackDict[trackName] 165 | }) 166 | } 167 | }) 168 | } 169 | 170 | broadcast (message: DataPayload) { 171 | this.peers.forEach((peer) => { 172 | peer.send(message) 173 | }) 174 | } 175 | 176 | close (): void { 177 | this.emit('signal', { type: 'close' }) 178 | this.peers.forEach((peer) => peer.close()) 179 | this.peers.clear() 180 | } 181 | 182 | dispatch (payload: PayloadToClient): void { 183 | switch (payload.type) { 184 | case 'accept': 185 | const { id, signals, userId } = payload 186 | this.peers.set(id, this.initializePeer({ id: id, userId, ...this.peerConfig })) 187 | signals.forEach((signal) => { 188 | this.dispatch({ ...signal, id }) 189 | }) 190 | break 191 | case 'offer': 192 | case 'answer': 193 | case 'candidate': 194 | const { id: peerId, ...desc } = payload 195 | const descPeer = this.peers.get(peerId) 196 | if (descPeer) { 197 | descPeer.dispatch(desc as any) 198 | } 199 | break 200 | case 'offerRequest': 201 | this.createOfferer() 202 | break 203 | case 'offerAccepted': 204 | const acceptingPeer = this.peers.get(payload.id) 205 | if (acceptingPeer) { 206 | acceptingPeer.userId = payload.userId 207 | } 208 | break 209 | case 'leaveSwarm': 210 | const leavingPeer = this.peers.get(payload.id) 211 | leavingPeer && leavingPeer.close() 212 | } 213 | } 214 | 215 | muteTrack (name: string) { 216 | // remove from config so new peers don't get the video 217 | const { streams: configStreams } = this.peerConfig 218 | Object.keys(configStreams).forEach((streamName) => { 219 | const trackDict = configStreams[streamName] 220 | Object.keys(trackDict).forEach((transceiverName) => { 221 | if (transceiverName !== name) return 222 | const entry = trackDict[transceiverName] 223 | if (entry && typeof entry !== 'string') { 224 | entry.track.stop() 225 | // tell the hardware to turn off the light 226 | entry.track.enabled = false 227 | } 228 | }) 229 | }) 230 | 231 | this.peers.forEach((peer) => peer.muteTrack(name)) 232 | } 233 | } 234 | 235 | export default FastRTCSwarm 236 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "declaration": true, 5 | "declarationMap": true, 6 | "declarationDir": "dist", 7 | "esModuleInterop": true, 8 | "importHelpers": true, 9 | "jsx": "react", 10 | "lib": ["es2017", "dom"], 11 | "module":"es2015", 12 | "moduleResolution": "node", 13 | "noImplicitReturns": true, 14 | "noFallthroughCasesInSwitch": true, 15 | "noUnusedLocals": true, 16 | "noUnusedParameters": true, 17 | "outDir": "dist/lib", 18 | "removeComments": true, 19 | "target": "es2017", 20 | "strict": true, 21 | "sourceMap": true, 22 | "typeRoots": [ 23 | "node_modules/@types" 24 | ], 25 | }, 26 | "include": [ 27 | "src" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "tslint-config-standard" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const nodeExternals = require('webpack-node-externals'); 3 | const CleanWebpackPlugin = require('clean-webpack-plugin') 4 | 5 | module.exports = [ 6 | { 7 | mode: 'development', 8 | devtool: 'source-map', 9 | entry: { 10 | FastRTCSwarm: path.join(__dirname, 'src', 'FastRTCSwarm.ts'), 11 | }, 12 | output: { 13 | path: path.join(__dirname, './dist'), 14 | filename: '[name].js', 15 | libraryTarget: 'commonjs2', 16 | library: 'FastRTCSwarm' 17 | }, 18 | resolve: { 19 | extensions: ['.ts'] 20 | }, 21 | externals: [nodeExternals()], 22 | module: { 23 | rules: [ 24 | { 25 | test: /\.ts$/, 26 | loader: 'awesome-typescript-loader' 27 | } 28 | ] 29 | }, 30 | plugins: [ 31 | new CleanWebpackPlugin([path.join(__dirname, 'dist/**/*')]) 32 | ] 33 | }, 34 | // { 35 | // mode: 'development', 36 | // devtool: 'source-map', 37 | // entry: { 38 | // server: path.join(__dirname, 'src', 'server.ts') 39 | // }, 40 | // target: 'node', 41 | // output: { 42 | // path: path.join(__dirname, './'), 43 | // filename: '[name].js', 44 | // libraryTarget: 'commonjs2' 45 | // }, 46 | // resolve: { 47 | // extensions: ['.ts'] 48 | // }, 49 | // externals: [nodeExternals()], 50 | // module: { 51 | // rules: [ 52 | // { 53 | // test: /\.ts$/, 54 | // loader: 'awesome-typescript-loader' 55 | // } 56 | // ] 57 | // }, 58 | // plugins: [ 59 | // new CleanWebpackPlugin([path.join(__dirname, 'dist/**/*')]) 60 | // ] 61 | // } 62 | ] 63 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@mattkrick/fast-rtc-peer@^0.4.0": 6 | version "0.4.0" 7 | resolved "https://registry.yarnpkg.com/@mattkrick/fast-rtc-peer/-/fast-rtc-peer-0.4.0.tgz#c063684a7d64f2043c0e05898ca88fbe0d8ba0ad" 8 | integrity sha512-EIAhjhSkQ7Tc+bXF34jqVOQAe7x7f5InGpUWFab5fM14DHm9/4n1Nw7XBZ8TGNH7bKqqCBRiO1S5mX+2cW/nNg== 9 | dependencies: 10 | eventemitter3 "^3.1.0" 11 | shortid "^2.2.12" 12 | tslib "^1.9.3" 13 | 14 | "@samverschueren/stream-to-observable@^0.3.0": 15 | version "0.3.0" 16 | resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" 17 | dependencies: 18 | any-observable "^0.3.0" 19 | 20 | "@types/events@*": 21 | version "1.2.0" 22 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 23 | 24 | "@types/fs-extra@5.0.1": 25 | version "5.0.1" 26 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.1.tgz#cd856fbbdd6af2c11f26f8928fd8644c9e9616c9" 27 | dependencies: 28 | "@types/node" "*" 29 | 30 | "@types/glob@*": 31 | version "5.0.35" 32 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" 33 | dependencies: 34 | "@types/events" "*" 35 | "@types/minimatch" "*" 36 | "@types/node" "*" 37 | 38 | "@types/handlebars@4.0.36": 39 | version "4.0.36" 40 | resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.0.36.tgz#ff57c77fa1ab6713bb446534ddc4d979707a3a79" 41 | 42 | "@types/highlight.js@9.12.2": 43 | version "9.12.2" 44 | resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.2.tgz#6ee7cd395effe5ec80b515d3ff1699068cd0cd1d" 45 | 46 | "@types/lodash@4.14.104": 47 | version "4.14.104" 48 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" 49 | 50 | "@types/marked@0.3.0": 51 | version "0.3.0" 52 | resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.3.0.tgz#583c223dd33385a1dda01aaf77b0cd0411c4b524" 53 | 54 | "@types/minimatch@*", "@types/minimatch@3.0.3": 55 | version "3.0.3" 56 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" 57 | 58 | "@types/node@*": 59 | version "10.5.3" 60 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.3.tgz#5bcfaf088ad17894232012877669634c06b20cc5" 61 | 62 | "@types/shelljs@0.7.8": 63 | version "0.7.8" 64 | resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.8.tgz#4b4d6ee7926e58d7bca448a50ba442fd9f6715bd" 65 | dependencies: 66 | "@types/glob" "*" 67 | "@types/node" "*" 68 | 69 | "@types/uuid@^3.4.3": 70 | version "3.4.3" 71 | resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.3.tgz#121ace265f5569ce40f4f6d0ff78a338c732a754" 72 | dependencies: 73 | "@types/node" "*" 74 | 75 | "@webassemblyjs/ast@1.5.13": 76 | version "1.5.13" 77 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.13.tgz#81155a570bd5803a30ec31436bc2c9c0ede38f25" 78 | dependencies: 79 | "@webassemblyjs/helper-module-context" "1.5.13" 80 | "@webassemblyjs/helper-wasm-bytecode" "1.5.13" 81 | "@webassemblyjs/wast-parser" "1.5.13" 82 | debug "^3.1.0" 83 | mamacro "^0.0.3" 84 | 85 | "@webassemblyjs/floating-point-hex-parser@1.5.13": 86 | version "1.5.13" 87 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz#29ce0baa97411f70e8cce68ce9c0f9d819a4e298" 88 | 89 | "@webassemblyjs/helper-api-error@1.5.13": 90 | version "1.5.13" 91 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz#e49b051d67ee19a56e29b9aa8bd949b5b4442a59" 92 | 93 | "@webassemblyjs/helper-buffer@1.5.13": 94 | version "1.5.13" 95 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz#873bb0a1b46449231137c1262ddfd05695195a1e" 96 | dependencies: 97 | debug "^3.1.0" 98 | 99 | "@webassemblyjs/helper-code-frame@1.5.13": 100 | version "1.5.13" 101 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz#1bd2181b6a0be14e004f0fe9f5a660d265362b58" 102 | dependencies: 103 | "@webassemblyjs/wast-printer" "1.5.13" 104 | 105 | "@webassemblyjs/helper-fsm@1.5.13": 106 | version "1.5.13" 107 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz#cdf3d9d33005d543a5c5e5adaabf679ffa8db924" 108 | 109 | "@webassemblyjs/helper-module-context@1.5.13": 110 | version "1.5.13" 111 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz#dc29ddfb51ed657655286f94a5d72d8a489147c5" 112 | dependencies: 113 | debug "^3.1.0" 114 | mamacro "^0.0.3" 115 | 116 | "@webassemblyjs/helper-wasm-bytecode@1.5.13": 117 | version "1.5.13" 118 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz#03245817f0a762382e61733146f5773def15a747" 119 | 120 | "@webassemblyjs/helper-wasm-section@1.5.13": 121 | version "1.5.13" 122 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz#efc76f44a10d3073b584b43c38a179df173d5c7d" 123 | dependencies: 124 | "@webassemblyjs/ast" "1.5.13" 125 | "@webassemblyjs/helper-buffer" "1.5.13" 126 | "@webassemblyjs/helper-wasm-bytecode" "1.5.13" 127 | "@webassemblyjs/wasm-gen" "1.5.13" 128 | debug "^3.1.0" 129 | 130 | "@webassemblyjs/ieee754@1.5.13": 131 | version "1.5.13" 132 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz#573e97c8c12e4eebb316ca5fde0203ddd90b0364" 133 | dependencies: 134 | ieee754 "^1.1.11" 135 | 136 | "@webassemblyjs/leb128@1.5.13": 137 | version "1.5.13" 138 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.13.tgz#ab52ebab9cec283c1c1897ac1da833a04a3f4cee" 139 | dependencies: 140 | long "4.0.0" 141 | 142 | "@webassemblyjs/utf8@1.5.13": 143 | version "1.5.13" 144 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.13.tgz#6b53d2cd861cf94fa99c1f12779dde692fbc2469" 145 | 146 | "@webassemblyjs/wasm-edit@1.5.13": 147 | version "1.5.13" 148 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz#c9cef5664c245cf11b3b3a73110c9155831724a8" 149 | dependencies: 150 | "@webassemblyjs/ast" "1.5.13" 151 | "@webassemblyjs/helper-buffer" "1.5.13" 152 | "@webassemblyjs/helper-wasm-bytecode" "1.5.13" 153 | "@webassemblyjs/helper-wasm-section" "1.5.13" 154 | "@webassemblyjs/wasm-gen" "1.5.13" 155 | "@webassemblyjs/wasm-opt" "1.5.13" 156 | "@webassemblyjs/wasm-parser" "1.5.13" 157 | "@webassemblyjs/wast-printer" "1.5.13" 158 | debug "^3.1.0" 159 | 160 | "@webassemblyjs/wasm-gen@1.5.13": 161 | version "1.5.13" 162 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz#8e6ea113c4b432fa66540189e79b16d7a140700e" 163 | dependencies: 164 | "@webassemblyjs/ast" "1.5.13" 165 | "@webassemblyjs/helper-wasm-bytecode" "1.5.13" 166 | "@webassemblyjs/ieee754" "1.5.13" 167 | "@webassemblyjs/leb128" "1.5.13" 168 | "@webassemblyjs/utf8" "1.5.13" 169 | 170 | "@webassemblyjs/wasm-opt@1.5.13": 171 | version "1.5.13" 172 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz#147aad7717a7ee4211c36b21a5f4c30dddf33138" 173 | dependencies: 174 | "@webassemblyjs/ast" "1.5.13" 175 | "@webassemblyjs/helper-buffer" "1.5.13" 176 | "@webassemblyjs/wasm-gen" "1.5.13" 177 | "@webassemblyjs/wasm-parser" "1.5.13" 178 | debug "^3.1.0" 179 | 180 | "@webassemblyjs/wasm-parser@1.5.13": 181 | version "1.5.13" 182 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz#6f46516c5bb23904fbdf58009233c2dd8a54c72f" 183 | dependencies: 184 | "@webassemblyjs/ast" "1.5.13" 185 | "@webassemblyjs/helper-api-error" "1.5.13" 186 | "@webassemblyjs/helper-wasm-bytecode" "1.5.13" 187 | "@webassemblyjs/ieee754" "1.5.13" 188 | "@webassemblyjs/leb128" "1.5.13" 189 | "@webassemblyjs/utf8" "1.5.13" 190 | 191 | "@webassemblyjs/wast-parser@1.5.13": 192 | version "1.5.13" 193 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz#5727a705d397ae6a3ae99d7f5460acf2ec646eea" 194 | dependencies: 195 | "@webassemblyjs/ast" "1.5.13" 196 | "@webassemblyjs/floating-point-hex-parser" "1.5.13" 197 | "@webassemblyjs/helper-api-error" "1.5.13" 198 | "@webassemblyjs/helper-code-frame" "1.5.13" 199 | "@webassemblyjs/helper-fsm" "1.5.13" 200 | long "^3.2.0" 201 | mamacro "^0.0.3" 202 | 203 | "@webassemblyjs/wast-printer@1.5.13": 204 | version "1.5.13" 205 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz#bb34d528c14b4f579e7ec11e793ec50ad7cd7c95" 206 | dependencies: 207 | "@webassemblyjs/ast" "1.5.13" 208 | "@webassemblyjs/wast-parser" "1.5.13" 209 | long "^3.2.0" 210 | 211 | abbrev@1: 212 | version "1.1.1" 213 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 214 | 215 | acorn-dynamic-import@^3.0.0: 216 | version "3.0.0" 217 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" 218 | dependencies: 219 | acorn "^5.0.0" 220 | 221 | acorn@^5.0.0, acorn@^5.6.2: 222 | version "5.7.1" 223 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" 224 | 225 | ajv-keywords@^3.1.0: 226 | version "3.2.0" 227 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" 228 | 229 | ajv@^6.1.0: 230 | version "6.5.2" 231 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" 232 | dependencies: 233 | fast-deep-equal "^2.0.1" 234 | fast-json-stable-stringify "^2.0.0" 235 | json-schema-traverse "^0.4.1" 236 | uri-js "^4.2.1" 237 | 238 | align-text@^0.1.1, align-text@^0.1.3: 239 | version "0.1.4" 240 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 241 | dependencies: 242 | kind-of "^3.0.2" 243 | longest "^1.0.1" 244 | repeat-string "^1.5.2" 245 | 246 | amdefine@>=0.0.4: 247 | version "1.0.1" 248 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 249 | 250 | ansi-escapes@^1.0.0: 251 | version "1.4.0" 252 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 253 | 254 | ansi-escapes@^3.0.0: 255 | version "3.1.0" 256 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 257 | 258 | ansi-regex@^2.0.0: 259 | version "2.1.1" 260 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 261 | 262 | ansi-regex@^3.0.0: 263 | version "3.0.0" 264 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 265 | 266 | ansi-styles@^2.2.1: 267 | version "2.2.1" 268 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 269 | 270 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 271 | version "3.2.1" 272 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 273 | dependencies: 274 | color-convert "^1.9.0" 275 | 276 | any-observable@^0.3.0: 277 | version "0.3.0" 278 | resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" 279 | 280 | anymatch@^2.0.0: 281 | version "2.0.0" 282 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 283 | dependencies: 284 | micromatch "^3.1.4" 285 | normalize-path "^2.1.1" 286 | 287 | app-root-path@^2.0.1: 288 | version "2.1.0" 289 | resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.1.0.tgz#98bf6599327ecea199309866e8140368fd2e646a" 290 | 291 | aproba@^1.0.3, aproba@^1.1.1: 292 | version "1.2.0" 293 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 294 | 295 | are-we-there-yet@~1.1.2: 296 | version "1.1.5" 297 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 298 | dependencies: 299 | delegates "^1.0.0" 300 | readable-stream "^2.0.6" 301 | 302 | argparse@^1.0.7: 303 | version "1.0.10" 304 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 305 | dependencies: 306 | sprintf-js "~1.0.2" 307 | 308 | arr-diff@^4.0.0: 309 | version "4.0.0" 310 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 311 | 312 | arr-flatten@^1.1.0: 313 | version "1.1.0" 314 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 315 | 316 | arr-union@^3.1.0: 317 | version "3.1.0" 318 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 319 | 320 | array-union@^1.0.1: 321 | version "1.0.2" 322 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 323 | dependencies: 324 | array-uniq "^1.0.1" 325 | 326 | array-uniq@^1.0.1: 327 | version "1.0.3" 328 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 329 | 330 | array-unique@^0.3.2: 331 | version "0.3.2" 332 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 333 | 334 | asn1.js@^4.0.0: 335 | version "4.10.1" 336 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 337 | dependencies: 338 | bn.js "^4.0.0" 339 | inherits "^2.0.1" 340 | minimalistic-assert "^1.0.0" 341 | 342 | assert@^1.1.1: 343 | version "1.4.1" 344 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" 345 | dependencies: 346 | util "0.10.3" 347 | 348 | assign-symbols@^1.0.0: 349 | version "1.0.0" 350 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 351 | 352 | async-each@^1.0.0: 353 | version "1.0.1" 354 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 355 | 356 | async@2.6.1: 357 | version "2.6.1" 358 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 359 | dependencies: 360 | lodash "^4.17.10" 361 | 362 | async@^1.4.0: 363 | version "1.5.2" 364 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 365 | 366 | atob@^2.1.1: 367 | version "2.1.1" 368 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" 369 | 370 | awesome-typescript-loader@^5.2.0: 371 | version "5.2.0" 372 | resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-5.2.0.tgz#d7bccf4823c45096ec24da4c12a1507d276ba15a" 373 | dependencies: 374 | chalk "^2.4.1" 375 | enhanced-resolve "^4.0.0" 376 | loader-utils "^1.1.0" 377 | lodash "^4.17.5" 378 | micromatch "^3.1.9" 379 | mkdirp "^0.5.1" 380 | source-map-support "^0.5.3" 381 | webpack-log "^1.2.0" 382 | 383 | babel-code-frame@^6.22.0: 384 | version "6.26.0" 385 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 386 | dependencies: 387 | chalk "^1.1.3" 388 | esutils "^2.0.2" 389 | js-tokens "^3.0.2" 390 | 391 | balanced-match@^1.0.0: 392 | version "1.0.0" 393 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 394 | 395 | base64-js@^1.0.2: 396 | version "1.3.0" 397 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 398 | 399 | base@^0.11.1: 400 | version "0.11.2" 401 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 402 | dependencies: 403 | cache-base "^1.0.1" 404 | class-utils "^0.3.5" 405 | component-emitter "^1.2.1" 406 | define-property "^1.0.0" 407 | isobject "^3.0.1" 408 | mixin-deep "^1.2.0" 409 | pascalcase "^0.1.1" 410 | 411 | big.js@^3.1.3: 412 | version "3.2.0" 413 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" 414 | 415 | binary-extensions@^1.0.0: 416 | version "1.11.0" 417 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 418 | 419 | bluebird@^3.5.1: 420 | version "3.5.1" 421 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 422 | 423 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 424 | version "4.11.8" 425 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 426 | 427 | brace-expansion@^1.1.7: 428 | version "1.1.11" 429 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 430 | dependencies: 431 | balanced-match "^1.0.0" 432 | concat-map "0.0.1" 433 | 434 | braces@^2.3.0, braces@^2.3.1: 435 | version "2.3.2" 436 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 437 | dependencies: 438 | arr-flatten "^1.1.0" 439 | array-unique "^0.3.2" 440 | extend-shallow "^2.0.1" 441 | fill-range "^4.0.0" 442 | isobject "^3.0.1" 443 | repeat-element "^1.1.2" 444 | snapdragon "^0.8.1" 445 | snapdragon-node "^2.0.1" 446 | split-string "^3.0.2" 447 | to-regex "^3.0.1" 448 | 449 | brorand@^1.0.1: 450 | version "1.1.0" 451 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 452 | 453 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 454 | version "1.2.0" 455 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 456 | dependencies: 457 | buffer-xor "^1.0.3" 458 | cipher-base "^1.0.0" 459 | create-hash "^1.1.0" 460 | evp_bytestokey "^1.0.3" 461 | inherits "^2.0.1" 462 | safe-buffer "^5.0.1" 463 | 464 | browserify-cipher@^1.0.0: 465 | version "1.0.1" 466 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 467 | dependencies: 468 | browserify-aes "^1.0.4" 469 | browserify-des "^1.0.0" 470 | evp_bytestokey "^1.0.0" 471 | 472 | browserify-des@^1.0.0: 473 | version "1.0.2" 474 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 475 | dependencies: 476 | cipher-base "^1.0.1" 477 | des.js "^1.0.0" 478 | inherits "^2.0.1" 479 | safe-buffer "^5.1.2" 480 | 481 | browserify-rsa@^4.0.0: 482 | version "4.0.1" 483 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 484 | dependencies: 485 | bn.js "^4.1.0" 486 | randombytes "^2.0.1" 487 | 488 | browserify-sign@^4.0.0: 489 | version "4.0.4" 490 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 491 | dependencies: 492 | bn.js "^4.1.1" 493 | browserify-rsa "^4.0.0" 494 | create-hash "^1.1.0" 495 | create-hmac "^1.1.2" 496 | elliptic "^6.0.0" 497 | inherits "^2.0.1" 498 | parse-asn1 "^5.0.0" 499 | 500 | browserify-zlib@^0.2.0: 501 | version "0.2.0" 502 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 503 | dependencies: 504 | pako "~1.0.5" 505 | 506 | buffer-from@^1.0.0: 507 | version "1.1.0" 508 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 509 | 510 | buffer-xor@^1.0.3: 511 | version "1.0.3" 512 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 513 | 514 | buffer@^4.3.0: 515 | version "4.9.1" 516 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 517 | dependencies: 518 | base64-js "^1.0.2" 519 | ieee754 "^1.1.4" 520 | isarray "^1.0.0" 521 | 522 | builtin-modules@^1.1.1: 523 | version "1.1.1" 524 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 525 | 526 | builtin-status-codes@^3.0.0: 527 | version "3.0.0" 528 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 529 | 530 | cacache@^10.0.4: 531 | version "10.0.4" 532 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" 533 | dependencies: 534 | bluebird "^3.5.1" 535 | chownr "^1.0.1" 536 | glob "^7.1.2" 537 | graceful-fs "^4.1.11" 538 | lru-cache "^4.1.1" 539 | mississippi "^2.0.0" 540 | mkdirp "^0.5.1" 541 | move-concurrently "^1.0.1" 542 | promise-inflight "^1.0.1" 543 | rimraf "^2.6.2" 544 | ssri "^5.2.4" 545 | unique-filename "^1.1.0" 546 | y18n "^4.0.0" 547 | 548 | cache-base@^1.0.1: 549 | version "1.0.1" 550 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 551 | dependencies: 552 | collection-visit "^1.0.0" 553 | component-emitter "^1.2.1" 554 | get-value "^2.0.6" 555 | has-value "^1.0.0" 556 | isobject "^3.0.1" 557 | set-value "^2.0.0" 558 | to-object-path "^0.3.0" 559 | union-value "^1.0.0" 560 | unset-value "^1.0.0" 561 | 562 | camelcase@^1.0.2: 563 | version "1.2.1" 564 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 565 | 566 | camelcase@^4.1.0: 567 | version "4.1.0" 568 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 569 | 570 | center-align@^0.1.1: 571 | version "0.1.3" 572 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 573 | dependencies: 574 | align-text "^0.1.3" 575 | lazy-cache "^1.0.3" 576 | 577 | chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: 578 | version "1.1.3" 579 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 580 | dependencies: 581 | ansi-styles "^2.2.1" 582 | escape-string-regexp "^1.0.2" 583 | has-ansi "^2.0.0" 584 | strip-ansi "^3.0.0" 585 | supports-color "^2.0.0" 586 | 587 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1: 588 | version "2.4.1" 589 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 590 | dependencies: 591 | ansi-styles "^3.2.1" 592 | escape-string-regexp "^1.0.5" 593 | supports-color "^5.3.0" 594 | 595 | chardet@^0.5.0: 596 | version "0.5.0" 597 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.5.0.tgz#fe3ac73c00c3d865ffcc02a0682e2c20b6a06029" 598 | 599 | chokidar@^2.0.2: 600 | version "2.0.4" 601 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" 602 | dependencies: 603 | anymatch "^2.0.0" 604 | async-each "^1.0.0" 605 | braces "^2.3.0" 606 | glob-parent "^3.1.0" 607 | inherits "^2.0.1" 608 | is-binary-path "^1.0.0" 609 | is-glob "^4.0.0" 610 | lodash.debounce "^4.0.8" 611 | normalize-path "^2.1.1" 612 | path-is-absolute "^1.0.0" 613 | readdirp "^2.0.0" 614 | upath "^1.0.5" 615 | optionalDependencies: 616 | fsevents "^1.2.2" 617 | 618 | chownr@^1.0.1: 619 | version "1.0.1" 620 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" 621 | 622 | chrome-trace-event@^1.0.0: 623 | version "1.0.0" 624 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" 625 | dependencies: 626 | tslib "^1.9.0" 627 | 628 | ci-info@^1.0.0: 629 | version "1.1.3" 630 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" 631 | 632 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 633 | version "1.0.4" 634 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 635 | dependencies: 636 | inherits "^2.0.1" 637 | safe-buffer "^5.0.1" 638 | 639 | class-utils@^0.3.5: 640 | version "0.3.6" 641 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 642 | dependencies: 643 | arr-union "^3.1.0" 644 | define-property "^0.2.5" 645 | isobject "^3.0.0" 646 | static-extend "^0.1.1" 647 | 648 | clean-webpack-plugin@^0.1.19: 649 | version "0.1.19" 650 | resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz#ceda8bb96b00fe168e9b080272960d20fdcadd6d" 651 | dependencies: 652 | rimraf "^2.6.1" 653 | 654 | cli-cursor@^1.0.2: 655 | version "1.0.2" 656 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 657 | dependencies: 658 | restore-cursor "^1.0.1" 659 | 660 | cli-cursor@^2.1.0: 661 | version "2.1.0" 662 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 663 | dependencies: 664 | restore-cursor "^2.0.0" 665 | 666 | cli-spinners@^0.1.2: 667 | version "0.1.2" 668 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" 669 | 670 | cli-truncate@^0.2.1: 671 | version "0.2.1" 672 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" 673 | dependencies: 674 | slice-ansi "0.0.4" 675 | string-width "^1.0.1" 676 | 677 | cli-width@^2.0.0: 678 | version "2.2.0" 679 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 680 | 681 | cliui@^2.1.0: 682 | version "2.1.0" 683 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 684 | dependencies: 685 | center-align "^0.1.1" 686 | right-align "^0.1.1" 687 | wordwrap "0.0.2" 688 | 689 | cliui@^4.0.0: 690 | version "4.1.0" 691 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 692 | dependencies: 693 | string-width "^2.1.1" 694 | strip-ansi "^4.0.0" 695 | wrap-ansi "^2.0.0" 696 | 697 | code-point-at@^1.0.0: 698 | version "1.1.0" 699 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 700 | 701 | collection-visit@^1.0.0: 702 | version "1.0.0" 703 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 704 | dependencies: 705 | map-visit "^1.0.0" 706 | object-visit "^1.0.0" 707 | 708 | color-convert@^1.9.0: 709 | version "1.9.2" 710 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 711 | dependencies: 712 | color-name "1.1.1" 713 | 714 | color-name@1.1.1: 715 | version "1.1.1" 716 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 717 | 718 | commander@2.15.1: 719 | version "2.15.1" 720 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 721 | 722 | commander@^2.12.1: 723 | version "2.17.0" 724 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.0.tgz#9d07b25e2a6f198b76d8b756a0e8a9604a6a1a60" 725 | 726 | commander@^2.14.1, commander@^2.9.0: 727 | version "2.16.0" 728 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" 729 | 730 | commander@~2.13.0: 731 | version "2.13.0" 732 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" 733 | 734 | commondir@^1.0.1: 735 | version "1.0.1" 736 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 737 | 738 | component-emitter@^1.2.1: 739 | version "1.2.1" 740 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 741 | 742 | concat-map@0.0.1: 743 | version "0.0.1" 744 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 745 | 746 | concat-stream@^1.5.0: 747 | version "1.6.2" 748 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 749 | dependencies: 750 | buffer-from "^1.0.0" 751 | inherits "^2.0.3" 752 | readable-stream "^2.2.2" 753 | typedarray "^0.0.6" 754 | 755 | console-browserify@^1.1.0: 756 | version "1.1.0" 757 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 758 | dependencies: 759 | date-now "^0.1.4" 760 | 761 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 762 | version "1.1.0" 763 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 764 | 765 | constants-browserify@^1.0.0: 766 | version "1.0.0" 767 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 768 | 769 | copy-concurrently@^1.0.0: 770 | version "1.0.5" 771 | resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" 772 | dependencies: 773 | aproba "^1.1.1" 774 | fs-write-stream-atomic "^1.0.8" 775 | iferr "^0.1.5" 776 | mkdirp "^0.5.1" 777 | rimraf "^2.5.4" 778 | run-queue "^1.0.0" 779 | 780 | copy-descriptor@^0.1.0: 781 | version "0.1.1" 782 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 783 | 784 | core-util-is@~1.0.0: 785 | version "1.0.2" 786 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 787 | 788 | cosmiconfig@^5.0.2: 789 | version "5.0.5" 790 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.5.tgz#a809e3c2306891ce17ab70359dc8bdf661fe2cd0" 791 | dependencies: 792 | is-directory "^0.3.1" 793 | js-yaml "^3.9.0" 794 | parse-json "^4.0.0" 795 | 796 | create-ecdh@^4.0.0: 797 | version "4.0.3" 798 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 799 | dependencies: 800 | bn.js "^4.1.0" 801 | elliptic "^6.0.0" 802 | 803 | create-hash@^1.1.0, create-hash@^1.1.2: 804 | version "1.2.0" 805 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 806 | dependencies: 807 | cipher-base "^1.0.1" 808 | inherits "^2.0.1" 809 | md5.js "^1.3.4" 810 | ripemd160 "^2.0.1" 811 | sha.js "^2.4.0" 812 | 813 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 814 | version "1.1.7" 815 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 816 | dependencies: 817 | cipher-base "^1.0.3" 818 | create-hash "^1.1.0" 819 | inherits "^2.0.1" 820 | ripemd160 "^2.0.0" 821 | safe-buffer "^5.0.1" 822 | sha.js "^2.4.8" 823 | 824 | cross-spawn@^5.0.1: 825 | version "5.1.0" 826 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 827 | dependencies: 828 | lru-cache "^4.0.1" 829 | shebang-command "^1.2.0" 830 | which "^1.2.9" 831 | 832 | cross-spawn@^6.0.5: 833 | version "6.0.5" 834 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 835 | dependencies: 836 | nice-try "^1.0.4" 837 | path-key "^2.0.1" 838 | semver "^5.5.0" 839 | shebang-command "^1.2.0" 840 | which "^1.2.9" 841 | 842 | crypto-browserify@^3.11.0: 843 | version "3.12.0" 844 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 845 | dependencies: 846 | browserify-cipher "^1.0.0" 847 | browserify-sign "^4.0.0" 848 | create-ecdh "^4.0.0" 849 | create-hash "^1.1.0" 850 | create-hmac "^1.1.0" 851 | diffie-hellman "^5.0.0" 852 | inherits "^2.0.1" 853 | pbkdf2 "^3.0.3" 854 | public-encrypt "^4.0.0" 855 | randombytes "^2.0.0" 856 | randomfill "^1.0.3" 857 | 858 | cyclist@~0.2.2: 859 | version "0.2.2" 860 | resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" 861 | 862 | d@1: 863 | version "1.0.0" 864 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 865 | dependencies: 866 | es5-ext "^0.10.9" 867 | 868 | date-fns@^1.27.2: 869 | version "1.29.0" 870 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" 871 | 872 | date-now@^0.1.4: 873 | version "0.1.4" 874 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 875 | 876 | debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: 877 | version "2.6.9" 878 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 879 | dependencies: 880 | ms "2.0.0" 881 | 882 | debug@^3.1.0: 883 | version "3.1.0" 884 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 885 | dependencies: 886 | ms "2.0.0" 887 | 888 | decamelize@^1.0.0: 889 | version "1.2.0" 890 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 891 | 892 | decamelize@^2.0.0: 893 | version "2.0.0" 894 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" 895 | dependencies: 896 | xregexp "4.0.0" 897 | 898 | decode-uri-component@^0.2.0: 899 | version "0.2.0" 900 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 901 | 902 | dedent@^0.7.0: 903 | version "0.7.0" 904 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" 905 | 906 | deep-extend@^0.6.0: 907 | version "0.6.0" 908 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 909 | 910 | define-properties@^1.1.2: 911 | version "1.1.2" 912 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 913 | dependencies: 914 | foreach "^2.0.5" 915 | object-keys "^1.0.8" 916 | 917 | define-property@^0.2.5: 918 | version "0.2.5" 919 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 920 | dependencies: 921 | is-descriptor "^0.1.0" 922 | 923 | define-property@^1.0.0: 924 | version "1.0.0" 925 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 926 | dependencies: 927 | is-descriptor "^1.0.0" 928 | 929 | define-property@^2.0.2: 930 | version "2.0.2" 931 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 932 | dependencies: 933 | is-descriptor "^1.0.2" 934 | isobject "^3.0.1" 935 | 936 | delegates@^1.0.0: 937 | version "1.0.0" 938 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 939 | 940 | des.js@^1.0.0: 941 | version "1.0.0" 942 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 943 | dependencies: 944 | inherits "^2.0.1" 945 | minimalistic-assert "^1.0.0" 946 | 947 | detect-libc@^1.0.2: 948 | version "1.0.3" 949 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 950 | 951 | diff@^3.2.0: 952 | version "3.5.0" 953 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 954 | 955 | diffie-hellman@^5.0.0: 956 | version "5.0.3" 957 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 958 | dependencies: 959 | bn.js "^4.1.0" 960 | miller-rabin "^4.0.0" 961 | randombytes "^2.0.0" 962 | 963 | doctrine@0.7.2: 964 | version "0.7.2" 965 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" 966 | dependencies: 967 | esutils "^1.1.6" 968 | isarray "0.0.1" 969 | 970 | domain-browser@^1.1.1: 971 | version "1.2.0" 972 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 973 | 974 | duplexify@^3.4.2, duplexify@^3.6.0: 975 | version "3.6.0" 976 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" 977 | dependencies: 978 | end-of-stream "^1.0.0" 979 | inherits "^2.0.1" 980 | readable-stream "^2.0.0" 981 | stream-shift "^1.0.0" 982 | 983 | elegant-spinner@^1.0.1: 984 | version "1.0.1" 985 | resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" 986 | 987 | elliptic@^6.0.0: 988 | version "6.4.0" 989 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" 990 | dependencies: 991 | bn.js "^4.4.0" 992 | brorand "^1.0.1" 993 | hash.js "^1.0.0" 994 | hmac-drbg "^1.0.0" 995 | inherits "^2.0.1" 996 | minimalistic-assert "^1.0.0" 997 | minimalistic-crypto-utils "^1.0.0" 998 | 999 | emojis-list@^2.0.0: 1000 | version "2.1.0" 1001 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 1002 | 1003 | end-of-stream@^1.0.0, end-of-stream@^1.1.0: 1004 | version "1.4.1" 1005 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 1006 | dependencies: 1007 | once "^1.4.0" 1008 | 1009 | enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: 1010 | version "4.1.0" 1011 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" 1012 | dependencies: 1013 | graceful-fs "^4.1.2" 1014 | memory-fs "^0.4.0" 1015 | tapable "^1.0.0" 1016 | 1017 | errno@^0.1.3, errno@~0.1.7: 1018 | version "0.1.7" 1019 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" 1020 | dependencies: 1021 | prr "~1.0.1" 1022 | 1023 | error-ex@^1.3.1: 1024 | version "1.3.2" 1025 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 1026 | dependencies: 1027 | is-arrayish "^0.2.1" 1028 | 1029 | es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: 1030 | version "0.10.45" 1031 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" 1032 | dependencies: 1033 | es6-iterator "~2.0.3" 1034 | es6-symbol "~3.1.1" 1035 | next-tick "1" 1036 | 1037 | es6-iterator@~2.0.3: 1038 | version "2.0.3" 1039 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" 1040 | dependencies: 1041 | d "1" 1042 | es5-ext "^0.10.35" 1043 | es6-symbol "^3.1.1" 1044 | 1045 | es6-symbol@^3.1.1, es6-symbol@~3.1.1: 1046 | version "3.1.1" 1047 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 1048 | dependencies: 1049 | d "1" 1050 | es5-ext "~0.10.14" 1051 | 1052 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 1053 | version "1.0.5" 1054 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1055 | 1056 | eslint-scope@^4.0.0: 1057 | version "4.0.0" 1058 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" 1059 | dependencies: 1060 | esrecurse "^4.1.0" 1061 | estraverse "^4.1.1" 1062 | 1063 | esprima@^4.0.0: 1064 | version "4.0.1" 1065 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1066 | 1067 | esrecurse@^4.1.0: 1068 | version "4.2.1" 1069 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 1070 | dependencies: 1071 | estraverse "^4.1.0" 1072 | 1073 | estraverse@^4.1.0, estraverse@^4.1.1: 1074 | version "4.2.0" 1075 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1076 | 1077 | esutils@^1.1.6: 1078 | version "1.1.6" 1079 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" 1080 | 1081 | esutils@^2.0.2: 1082 | version "2.0.2" 1083 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1084 | 1085 | eventemitter3@^3.1.0: 1086 | version "3.1.0" 1087 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" 1088 | 1089 | events@^1.0.0: 1090 | version "1.1.1" 1091 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 1092 | 1093 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 1094 | version "1.0.3" 1095 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 1096 | dependencies: 1097 | md5.js "^1.3.4" 1098 | safe-buffer "^5.1.1" 1099 | 1100 | execa@^0.7.0: 1101 | version "0.7.0" 1102 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 1103 | dependencies: 1104 | cross-spawn "^5.0.1" 1105 | get-stream "^3.0.0" 1106 | is-stream "^1.1.0" 1107 | npm-run-path "^2.0.0" 1108 | p-finally "^1.0.0" 1109 | signal-exit "^3.0.0" 1110 | strip-eof "^1.0.0" 1111 | 1112 | execa@^0.9.0: 1113 | version "0.9.0" 1114 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" 1115 | dependencies: 1116 | cross-spawn "^5.0.1" 1117 | get-stream "^3.0.0" 1118 | is-stream "^1.1.0" 1119 | npm-run-path "^2.0.0" 1120 | p-finally "^1.0.0" 1121 | signal-exit "^3.0.0" 1122 | strip-eof "^1.0.0" 1123 | 1124 | exit-hook@^1.0.0: 1125 | version "1.1.1" 1126 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 1127 | 1128 | expand-brackets@^2.1.4: 1129 | version "2.1.4" 1130 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 1131 | dependencies: 1132 | debug "^2.3.3" 1133 | define-property "^0.2.5" 1134 | extend-shallow "^2.0.1" 1135 | posix-character-classes "^0.1.0" 1136 | regex-not "^1.0.0" 1137 | snapdragon "^0.8.1" 1138 | to-regex "^3.0.1" 1139 | 1140 | extend-shallow@^2.0.1: 1141 | version "2.0.1" 1142 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1143 | dependencies: 1144 | is-extendable "^0.1.0" 1145 | 1146 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1147 | version "3.0.2" 1148 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1149 | dependencies: 1150 | assign-symbols "^1.0.0" 1151 | is-extendable "^1.0.1" 1152 | 1153 | external-editor@^3.0.0: 1154 | version "3.0.0" 1155 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.0.tgz#dc35c48c6f98a30ca27a20e9687d7f3c77704bb6" 1156 | dependencies: 1157 | chardet "^0.5.0" 1158 | iconv-lite "^0.4.22" 1159 | tmp "^0.0.33" 1160 | 1161 | extglob@^2.0.4: 1162 | version "2.0.4" 1163 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1164 | dependencies: 1165 | array-unique "^0.3.2" 1166 | define-property "^1.0.0" 1167 | expand-brackets "^2.1.4" 1168 | extend-shallow "^2.0.1" 1169 | fragment-cache "^0.2.1" 1170 | regex-not "^1.0.0" 1171 | snapdragon "^0.8.1" 1172 | to-regex "^3.0.1" 1173 | 1174 | fast-deep-equal@^2.0.1: 1175 | version "2.0.1" 1176 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 1177 | 1178 | fast-json-stable-stringify@^2.0.0: 1179 | version "2.0.0" 1180 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1181 | 1182 | figures@^1.7.0: 1183 | version "1.7.0" 1184 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1185 | dependencies: 1186 | escape-string-regexp "^1.0.5" 1187 | object-assign "^4.1.0" 1188 | 1189 | figures@^2.0.0: 1190 | version "2.0.0" 1191 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1192 | dependencies: 1193 | escape-string-regexp "^1.0.5" 1194 | 1195 | filename-reserved-regex@^1.0.0: 1196 | version "1.0.0" 1197 | resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" 1198 | 1199 | filenamify-url@^1.0.0: 1200 | version "1.0.0" 1201 | resolved "https://registry.yarnpkg.com/filenamify-url/-/filenamify-url-1.0.0.tgz#b32bd81319ef5863b73078bed50f46a4f7975f50" 1202 | dependencies: 1203 | filenamify "^1.0.0" 1204 | humanize-url "^1.0.0" 1205 | 1206 | filenamify@^1.0.0: 1207 | version "1.2.1" 1208 | resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" 1209 | dependencies: 1210 | filename-reserved-regex "^1.0.0" 1211 | strip-outer "^1.0.0" 1212 | trim-repeated "^1.0.0" 1213 | 1214 | fill-range@^4.0.0: 1215 | version "4.0.0" 1216 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1217 | dependencies: 1218 | extend-shallow "^2.0.1" 1219 | is-number "^3.0.0" 1220 | repeat-string "^1.6.1" 1221 | to-regex-range "^2.1.0" 1222 | 1223 | find-cache-dir@^1.0.0: 1224 | version "1.0.0" 1225 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" 1226 | dependencies: 1227 | commondir "^1.0.1" 1228 | make-dir "^1.0.0" 1229 | pkg-dir "^2.0.0" 1230 | 1231 | find-parent-dir@^0.3.0: 1232 | version "0.3.0" 1233 | resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" 1234 | 1235 | find-up@^2.1.0: 1236 | version "2.1.0" 1237 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1238 | dependencies: 1239 | locate-path "^2.0.0" 1240 | 1241 | find-up@^3.0.0: 1242 | version "3.0.0" 1243 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 1244 | dependencies: 1245 | locate-path "^3.0.0" 1246 | 1247 | flush-write-stream@^1.0.0: 1248 | version "1.0.3" 1249 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" 1250 | dependencies: 1251 | inherits "^2.0.1" 1252 | readable-stream "^2.0.4" 1253 | 1254 | for-in@^1.0.2: 1255 | version "1.0.2" 1256 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1257 | 1258 | foreach@^2.0.5: 1259 | version "2.0.5" 1260 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 1261 | 1262 | fragment-cache@^0.2.1: 1263 | version "0.2.1" 1264 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1265 | dependencies: 1266 | map-cache "^0.2.2" 1267 | 1268 | from2@^2.1.0: 1269 | version "2.3.0" 1270 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" 1271 | dependencies: 1272 | inherits "^2.0.1" 1273 | readable-stream "^2.0.0" 1274 | 1275 | fs-extra@^5.0.0: 1276 | version "5.0.0" 1277 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" 1278 | dependencies: 1279 | graceful-fs "^4.1.2" 1280 | jsonfile "^4.0.0" 1281 | universalify "^0.1.0" 1282 | 1283 | fs-minipass@^1.2.5: 1284 | version "1.2.5" 1285 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1286 | dependencies: 1287 | minipass "^2.2.1" 1288 | 1289 | fs-write-stream-atomic@^1.0.8: 1290 | version "1.0.10" 1291 | resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" 1292 | dependencies: 1293 | graceful-fs "^4.1.2" 1294 | iferr "^0.1.5" 1295 | imurmurhash "^0.1.4" 1296 | readable-stream "1 || 2" 1297 | 1298 | fs.realpath@^1.0.0: 1299 | version "1.0.0" 1300 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1301 | 1302 | fsevents@^1.2.2: 1303 | version "1.2.4" 1304 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 1305 | dependencies: 1306 | nan "^2.9.2" 1307 | node-pre-gyp "^0.10.0" 1308 | 1309 | function-bind@^1.1.1: 1310 | version "1.1.1" 1311 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1312 | 1313 | gauge@~2.7.3: 1314 | version "2.7.4" 1315 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1316 | dependencies: 1317 | aproba "^1.0.3" 1318 | console-control-strings "^1.0.0" 1319 | has-unicode "^2.0.0" 1320 | object-assign "^4.1.0" 1321 | signal-exit "^3.0.0" 1322 | string-width "^1.0.1" 1323 | strip-ansi "^3.0.1" 1324 | wide-align "^1.1.0" 1325 | 1326 | get-caller-file@^1.0.1: 1327 | version "1.0.3" 1328 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 1329 | 1330 | get-own-enumerable-property-symbols@^2.0.1: 1331 | version "2.0.1" 1332 | resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" 1333 | 1334 | get-stream@^3.0.0: 1335 | version "3.0.0" 1336 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1337 | 1338 | get-value@^2.0.3, get-value@^2.0.6: 1339 | version "2.0.6" 1340 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1341 | 1342 | gh-pages@^1.2.0: 1343 | version "1.2.0" 1344 | resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.2.0.tgz#1acb92801078f7c038a167f447221d1496ccfbee" 1345 | dependencies: 1346 | async "2.6.1" 1347 | commander "2.15.1" 1348 | filenamify-url "^1.0.0" 1349 | fs-extra "^5.0.0" 1350 | globby "^6.1.0" 1351 | graceful-fs "4.1.11" 1352 | rimraf "^2.6.2" 1353 | 1354 | glob-parent@^3.1.0: 1355 | version "3.1.0" 1356 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1357 | dependencies: 1358 | is-glob "^3.1.0" 1359 | path-dirname "^1.0.0" 1360 | 1361 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: 1362 | version "7.1.2" 1363 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1364 | dependencies: 1365 | fs.realpath "^1.0.0" 1366 | inflight "^1.0.4" 1367 | inherits "2" 1368 | minimatch "^3.0.4" 1369 | once "^1.3.0" 1370 | path-is-absolute "^1.0.0" 1371 | 1372 | global-modules-path@^2.1.0: 1373 | version "2.3.0" 1374 | resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc" 1375 | 1376 | globby@^6.1.0: 1377 | version "6.1.0" 1378 | resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" 1379 | dependencies: 1380 | array-union "^1.0.1" 1381 | glob "^7.0.3" 1382 | object-assign "^4.0.1" 1383 | pify "^2.0.0" 1384 | pinkie-promise "^2.0.0" 1385 | 1386 | graceful-fs@4.1.11, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: 1387 | version "4.1.11" 1388 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1389 | 1390 | handlebars@^4.0.6: 1391 | version "4.0.11" 1392 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" 1393 | dependencies: 1394 | async "^1.4.0" 1395 | optimist "^0.6.1" 1396 | source-map "^0.4.4" 1397 | optionalDependencies: 1398 | uglify-js "^2.6" 1399 | 1400 | has-ansi@^2.0.0: 1401 | version "2.0.0" 1402 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1403 | dependencies: 1404 | ansi-regex "^2.0.0" 1405 | 1406 | has-flag@^3.0.0: 1407 | version "3.0.0" 1408 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1409 | 1410 | has-symbols@^1.0.0: 1411 | version "1.0.0" 1412 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 1413 | 1414 | has-unicode@^2.0.0: 1415 | version "2.0.1" 1416 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1417 | 1418 | has-value@^0.3.1: 1419 | version "0.3.1" 1420 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1421 | dependencies: 1422 | get-value "^2.0.3" 1423 | has-values "^0.1.4" 1424 | isobject "^2.0.0" 1425 | 1426 | has-value@^1.0.0: 1427 | version "1.0.0" 1428 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1429 | dependencies: 1430 | get-value "^2.0.6" 1431 | has-values "^1.0.0" 1432 | isobject "^3.0.0" 1433 | 1434 | has-values@^0.1.4: 1435 | version "0.1.4" 1436 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1437 | 1438 | has-values@^1.0.0: 1439 | version "1.0.0" 1440 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1441 | dependencies: 1442 | is-number "^3.0.0" 1443 | kind-of "^4.0.0" 1444 | 1445 | hash-base@^3.0.0: 1446 | version "3.0.4" 1447 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" 1448 | dependencies: 1449 | inherits "^2.0.1" 1450 | safe-buffer "^5.0.1" 1451 | 1452 | hash.js@^1.0.0, hash.js@^1.0.3: 1453 | version "1.1.5" 1454 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" 1455 | dependencies: 1456 | inherits "^2.0.3" 1457 | minimalistic-assert "^1.0.1" 1458 | 1459 | highlight.js@^9.0.0: 1460 | version "9.12.0" 1461 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" 1462 | 1463 | hmac-drbg@^1.0.0: 1464 | version "1.0.1" 1465 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1466 | dependencies: 1467 | hash.js "^1.0.3" 1468 | minimalistic-assert "^1.0.0" 1469 | minimalistic-crypto-utils "^1.0.1" 1470 | 1471 | https-browserify@^1.0.0: 1472 | version "1.0.0" 1473 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 1474 | 1475 | humanize-url@^1.0.0: 1476 | version "1.0.1" 1477 | resolved "https://registry.yarnpkg.com/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff" 1478 | dependencies: 1479 | normalize-url "^1.0.0" 1480 | strip-url-auth "^1.0.0" 1481 | 1482 | husky@^0.14.0: 1483 | version "0.14.3" 1484 | resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" 1485 | dependencies: 1486 | is-ci "^1.0.10" 1487 | normalize-path "^1.0.0" 1488 | strip-indent "^2.0.0" 1489 | 1490 | iconv-lite@^0.4.22, iconv-lite@^0.4.4: 1491 | version "0.4.23" 1492 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1493 | dependencies: 1494 | safer-buffer ">= 2.1.2 < 3" 1495 | 1496 | ieee754@^1.1.11, ieee754@^1.1.4: 1497 | version "1.1.12" 1498 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" 1499 | 1500 | iferr@^0.1.5: 1501 | version "0.1.5" 1502 | resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" 1503 | 1504 | ignore-walk@^3.0.1: 1505 | version "3.0.1" 1506 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1507 | dependencies: 1508 | minimatch "^3.0.4" 1509 | 1510 | import-local@^1.0.0: 1511 | version "1.0.0" 1512 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" 1513 | dependencies: 1514 | pkg-dir "^2.0.0" 1515 | resolve-cwd "^2.0.0" 1516 | 1517 | imurmurhash@^0.1.4: 1518 | version "0.1.4" 1519 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1520 | 1521 | indent-string@^2.1.0: 1522 | version "2.1.0" 1523 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 1524 | dependencies: 1525 | repeating "^2.0.0" 1526 | 1527 | indent-string@^3.0.0: 1528 | version "3.2.0" 1529 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" 1530 | 1531 | indexof@0.0.1: 1532 | version "0.0.1" 1533 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1534 | 1535 | inflight@^1.0.4: 1536 | version "1.0.6" 1537 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1538 | dependencies: 1539 | once "^1.3.0" 1540 | wrappy "1" 1541 | 1542 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 1543 | version "2.0.3" 1544 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1545 | 1546 | inherits@2.0.1: 1547 | version "2.0.1" 1548 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1549 | 1550 | ini@~1.3.0: 1551 | version "1.3.5" 1552 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1553 | 1554 | inquirer@^6.0.0: 1555 | version "6.0.0" 1556 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.0.0.tgz#e8c20303ddc15bbfc2c12a6213710ccd9e1413d8" 1557 | dependencies: 1558 | ansi-escapes "^3.0.0" 1559 | chalk "^2.0.0" 1560 | cli-cursor "^2.1.0" 1561 | cli-width "^2.0.0" 1562 | external-editor "^3.0.0" 1563 | figures "^2.0.0" 1564 | lodash "^4.3.0" 1565 | mute-stream "0.0.7" 1566 | run-async "^2.2.0" 1567 | rxjs "^6.1.0" 1568 | string-width "^2.1.0" 1569 | strip-ansi "^4.0.0" 1570 | through "^2.3.6" 1571 | 1572 | interpret@^1.0.0, interpret@^1.1.0: 1573 | version "1.1.0" 1574 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" 1575 | 1576 | invert-kv@^1.0.0: 1577 | version "1.0.0" 1578 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1579 | 1580 | is-accessor-descriptor@^0.1.6: 1581 | version "0.1.6" 1582 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1583 | dependencies: 1584 | kind-of "^3.0.2" 1585 | 1586 | is-accessor-descriptor@^1.0.0: 1587 | version "1.0.0" 1588 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1589 | dependencies: 1590 | kind-of "^6.0.0" 1591 | 1592 | is-arrayish@^0.2.1: 1593 | version "0.2.1" 1594 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1595 | 1596 | is-binary-path@^1.0.0: 1597 | version "1.0.1" 1598 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1599 | dependencies: 1600 | binary-extensions "^1.0.0" 1601 | 1602 | is-buffer@^1.1.5: 1603 | version "1.1.6" 1604 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1605 | 1606 | is-ci@^1.0.10: 1607 | version "1.1.0" 1608 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" 1609 | dependencies: 1610 | ci-info "^1.0.0" 1611 | 1612 | is-data-descriptor@^0.1.4: 1613 | version "0.1.4" 1614 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1615 | dependencies: 1616 | kind-of "^3.0.2" 1617 | 1618 | is-data-descriptor@^1.0.0: 1619 | version "1.0.0" 1620 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1621 | dependencies: 1622 | kind-of "^6.0.0" 1623 | 1624 | is-descriptor@^0.1.0: 1625 | version "0.1.6" 1626 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1627 | dependencies: 1628 | is-accessor-descriptor "^0.1.6" 1629 | is-data-descriptor "^0.1.4" 1630 | kind-of "^5.0.0" 1631 | 1632 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1633 | version "1.0.2" 1634 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1635 | dependencies: 1636 | is-accessor-descriptor "^1.0.0" 1637 | is-data-descriptor "^1.0.0" 1638 | kind-of "^6.0.2" 1639 | 1640 | is-directory@^0.3.1: 1641 | version "0.3.1" 1642 | resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" 1643 | 1644 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1645 | version "0.1.1" 1646 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1647 | 1648 | is-extendable@^1.0.1: 1649 | version "1.0.1" 1650 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1651 | dependencies: 1652 | is-plain-object "^2.0.4" 1653 | 1654 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1655 | version "2.1.1" 1656 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1657 | 1658 | is-finite@^1.0.0: 1659 | version "1.0.2" 1660 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1661 | dependencies: 1662 | number-is-nan "^1.0.0" 1663 | 1664 | is-fullwidth-code-point@^1.0.0: 1665 | version "1.0.0" 1666 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1667 | dependencies: 1668 | number-is-nan "^1.0.0" 1669 | 1670 | is-fullwidth-code-point@^2.0.0: 1671 | version "2.0.0" 1672 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1673 | 1674 | is-glob@^3.1.0: 1675 | version "3.1.0" 1676 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1677 | dependencies: 1678 | is-extglob "^2.1.0" 1679 | 1680 | is-glob@^4.0.0: 1681 | version "4.0.0" 1682 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" 1683 | dependencies: 1684 | is-extglob "^2.1.1" 1685 | 1686 | is-number@^3.0.0: 1687 | version "3.0.0" 1688 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1689 | dependencies: 1690 | kind-of "^3.0.2" 1691 | 1692 | is-obj@^1.0.1: 1693 | version "1.0.1" 1694 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1695 | 1696 | is-observable@^1.1.0: 1697 | version "1.1.0" 1698 | resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" 1699 | dependencies: 1700 | symbol-observable "^1.1.0" 1701 | 1702 | is-plain-obj@^1.0.0: 1703 | version "1.1.0" 1704 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 1705 | 1706 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1707 | version "2.0.4" 1708 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1709 | dependencies: 1710 | isobject "^3.0.1" 1711 | 1712 | is-promise@^2.1.0: 1713 | version "2.1.0" 1714 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1715 | 1716 | is-regexp@^1.0.0: 1717 | version "1.0.0" 1718 | resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" 1719 | 1720 | is-stream@^1.1.0: 1721 | version "1.1.0" 1722 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1723 | 1724 | is-windows@^1.0.2: 1725 | version "1.0.2" 1726 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1727 | 1728 | isarray@0.0.1: 1729 | version "0.0.1" 1730 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1731 | 1732 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1733 | version "1.0.0" 1734 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1735 | 1736 | isexe@^2.0.0: 1737 | version "2.0.0" 1738 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1739 | 1740 | isobject@^2.0.0: 1741 | version "2.1.0" 1742 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1743 | dependencies: 1744 | isarray "1.0.0" 1745 | 1746 | isobject@^3.0.0, isobject@^3.0.1: 1747 | version "3.0.1" 1748 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1749 | 1750 | jest-get-type@^22.1.0: 1751 | version "22.4.3" 1752 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" 1753 | 1754 | jest-validate@^23.0.0: 1755 | version "23.4.0" 1756 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.4.0.tgz#d96eede01ef03ac909c009e9c8e455197d48c201" 1757 | dependencies: 1758 | chalk "^2.0.1" 1759 | jest-get-type "^22.1.0" 1760 | leven "^2.1.0" 1761 | pretty-format "^23.2.0" 1762 | 1763 | js-tokens@^3.0.2: 1764 | version "3.0.2" 1765 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1766 | 1767 | js-yaml@^3.7.0, js-yaml@^3.9.0: 1768 | version "3.12.0" 1769 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 1770 | dependencies: 1771 | argparse "^1.0.7" 1772 | esprima "^4.0.0" 1773 | 1774 | json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: 1775 | version "1.0.2" 1776 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1777 | 1778 | json-schema-traverse@^0.4.1: 1779 | version "0.4.1" 1780 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1781 | 1782 | json5@^0.5.0: 1783 | version "0.5.1" 1784 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1785 | 1786 | jsonfile@^4.0.0: 1787 | version "4.0.0" 1788 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1789 | optionalDependencies: 1790 | graceful-fs "^4.1.6" 1791 | 1792 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1793 | version "3.2.2" 1794 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1795 | dependencies: 1796 | is-buffer "^1.1.5" 1797 | 1798 | kind-of@^4.0.0: 1799 | version "4.0.0" 1800 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1801 | dependencies: 1802 | is-buffer "^1.1.5" 1803 | 1804 | kind-of@^5.0.0: 1805 | version "5.1.0" 1806 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1807 | 1808 | kind-of@^6.0.0, kind-of@^6.0.2: 1809 | version "6.0.2" 1810 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1811 | 1812 | lazy-cache@^1.0.3: 1813 | version "1.0.4" 1814 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1815 | 1816 | lcid@^1.0.0: 1817 | version "1.0.0" 1818 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1819 | dependencies: 1820 | invert-kv "^1.0.0" 1821 | 1822 | leven@^2.1.0: 1823 | version "2.1.0" 1824 | resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" 1825 | 1826 | lint-staged@^7.1.3: 1827 | version "7.2.0" 1828 | resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.2.0.tgz#bdf4bb7f2f37fe689acfaec9999db288a5b26888" 1829 | dependencies: 1830 | app-root-path "^2.0.1" 1831 | chalk "^2.3.1" 1832 | commander "^2.14.1" 1833 | cosmiconfig "^5.0.2" 1834 | debug "^3.1.0" 1835 | dedent "^0.7.0" 1836 | execa "^0.9.0" 1837 | find-parent-dir "^0.3.0" 1838 | is-glob "^4.0.0" 1839 | is-windows "^1.0.2" 1840 | jest-validate "^23.0.0" 1841 | listr "^0.14.1" 1842 | lodash "^4.17.5" 1843 | log-symbols "^2.2.0" 1844 | micromatch "^3.1.8" 1845 | npm-which "^3.0.1" 1846 | p-map "^1.1.1" 1847 | path-is-inside "^1.0.2" 1848 | pify "^3.0.0" 1849 | please-upgrade-node "^3.0.2" 1850 | staged-git-files "1.1.1" 1851 | string-argv "^0.0.2" 1852 | stringify-object "^3.2.2" 1853 | 1854 | listr-silent-renderer@^1.1.1: 1855 | version "1.1.1" 1856 | resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" 1857 | 1858 | listr-update-renderer@^0.4.0: 1859 | version "0.4.0" 1860 | resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" 1861 | dependencies: 1862 | chalk "^1.1.3" 1863 | cli-truncate "^0.2.1" 1864 | elegant-spinner "^1.0.1" 1865 | figures "^1.7.0" 1866 | indent-string "^3.0.0" 1867 | log-symbols "^1.0.2" 1868 | log-update "^1.0.2" 1869 | strip-ansi "^3.0.1" 1870 | 1871 | listr-verbose-renderer@^0.4.0: 1872 | version "0.4.1" 1873 | resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" 1874 | dependencies: 1875 | chalk "^1.1.3" 1876 | cli-cursor "^1.0.2" 1877 | date-fns "^1.27.2" 1878 | figures "^1.7.0" 1879 | 1880 | listr@^0.14.1: 1881 | version "0.14.1" 1882 | resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.1.tgz#8a7afa4a7135cee4c921d128e0b7dfc6e522d43d" 1883 | dependencies: 1884 | "@samverschueren/stream-to-observable" "^0.3.0" 1885 | cli-truncate "^0.2.1" 1886 | figures "^1.7.0" 1887 | indent-string "^2.1.0" 1888 | is-observable "^1.1.0" 1889 | is-promise "^2.1.0" 1890 | is-stream "^1.1.0" 1891 | listr-silent-renderer "^1.1.1" 1892 | listr-update-renderer "^0.4.0" 1893 | listr-verbose-renderer "^0.4.0" 1894 | log-symbols "^1.0.2" 1895 | log-update "^1.0.2" 1896 | ora "^0.2.3" 1897 | p-map "^1.1.1" 1898 | rxjs "^6.1.0" 1899 | strip-ansi "^3.0.1" 1900 | 1901 | loader-runner@^2.3.0: 1902 | version "2.3.0" 1903 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" 1904 | 1905 | loader-utils@^1.1.0: 1906 | version "1.1.0" 1907 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" 1908 | dependencies: 1909 | big.js "^3.1.3" 1910 | emojis-list "^2.0.0" 1911 | json5 "^0.5.0" 1912 | 1913 | locate-path@^2.0.0: 1914 | version "2.0.0" 1915 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1916 | dependencies: 1917 | p-locate "^2.0.0" 1918 | path-exists "^3.0.0" 1919 | 1920 | locate-path@^3.0.0: 1921 | version "3.0.0" 1922 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1923 | dependencies: 1924 | p-locate "^3.0.0" 1925 | path-exists "^3.0.0" 1926 | 1927 | lodash.debounce@^4.0.8: 1928 | version "4.0.8" 1929 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1930 | 1931 | lodash@^4.17.10, lodash@^4.17.5, lodash@^4.3.0: 1932 | version "4.17.10" 1933 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 1934 | 1935 | log-symbols@^1.0.2: 1936 | version "1.0.2" 1937 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" 1938 | dependencies: 1939 | chalk "^1.0.0" 1940 | 1941 | log-symbols@^2.1.0, log-symbols@^2.2.0: 1942 | version "2.2.0" 1943 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" 1944 | dependencies: 1945 | chalk "^2.0.1" 1946 | 1947 | log-update@^1.0.2: 1948 | version "1.0.2" 1949 | resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" 1950 | dependencies: 1951 | ansi-escapes "^1.0.0" 1952 | cli-cursor "^1.0.2" 1953 | 1954 | loglevelnext@^1.0.1: 1955 | version "1.0.5" 1956 | resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" 1957 | dependencies: 1958 | es6-symbol "^3.1.1" 1959 | object.assign "^4.1.0" 1960 | 1961 | long@4.0.0: 1962 | version "4.0.0" 1963 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" 1964 | 1965 | long@^3.2.0: 1966 | version "3.2.0" 1967 | resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" 1968 | 1969 | longest@^1.0.1: 1970 | version "1.0.1" 1971 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 1972 | 1973 | lru-cache@^4.0.1, lru-cache@^4.1.1: 1974 | version "4.1.3" 1975 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" 1976 | dependencies: 1977 | pseudomap "^1.0.2" 1978 | yallist "^2.1.2" 1979 | 1980 | make-dir@^1.0.0: 1981 | version "1.3.0" 1982 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 1983 | dependencies: 1984 | pify "^3.0.0" 1985 | 1986 | mamacro@^0.0.3: 1987 | version "0.0.3" 1988 | resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" 1989 | 1990 | map-cache@^0.2.2: 1991 | version "0.2.2" 1992 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1993 | 1994 | map-visit@^1.0.0: 1995 | version "1.0.0" 1996 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1997 | dependencies: 1998 | object-visit "^1.0.0" 1999 | 2000 | marked@^0.3.17: 2001 | version "0.3.19" 2002 | resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" 2003 | 2004 | md5.js@^1.3.4: 2005 | version "1.3.4" 2006 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" 2007 | dependencies: 2008 | hash-base "^3.0.0" 2009 | inherits "^2.0.1" 2010 | 2011 | mem@^1.1.0: 2012 | version "1.1.0" 2013 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 2014 | dependencies: 2015 | mimic-fn "^1.0.0" 2016 | 2017 | memory-fs@^0.4.0, memory-fs@~0.4.1: 2018 | version "0.4.1" 2019 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 2020 | dependencies: 2021 | errno "^0.1.3" 2022 | readable-stream "^2.0.1" 2023 | 2024 | micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: 2025 | version "3.1.10" 2026 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 2027 | dependencies: 2028 | arr-diff "^4.0.0" 2029 | array-unique "^0.3.2" 2030 | braces "^2.3.1" 2031 | define-property "^2.0.2" 2032 | extend-shallow "^3.0.2" 2033 | extglob "^2.0.4" 2034 | fragment-cache "^0.2.1" 2035 | kind-of "^6.0.2" 2036 | nanomatch "^1.2.9" 2037 | object.pick "^1.3.0" 2038 | regex-not "^1.0.0" 2039 | snapdragon "^0.8.1" 2040 | to-regex "^3.0.2" 2041 | 2042 | miller-rabin@^4.0.0: 2043 | version "4.0.1" 2044 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 2045 | dependencies: 2046 | bn.js "^4.0.0" 2047 | brorand "^1.0.1" 2048 | 2049 | mimic-fn@^1.0.0: 2050 | version "1.2.0" 2051 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 2052 | 2053 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 2054 | version "1.0.1" 2055 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 2056 | 2057 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 2058 | version "1.0.1" 2059 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 2060 | 2061 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 2062 | version "3.0.4" 2063 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2064 | dependencies: 2065 | brace-expansion "^1.1.7" 2066 | 2067 | minimist@0.0.8: 2068 | version "0.0.8" 2069 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2070 | 2071 | minimist@^1.2.0: 2072 | version "1.2.0" 2073 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2074 | 2075 | minimist@~0.0.1: 2076 | version "0.0.10" 2077 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 2078 | 2079 | minipass@^2.2.1, minipass@^2.3.3: 2080 | version "2.3.3" 2081 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" 2082 | dependencies: 2083 | safe-buffer "^5.1.2" 2084 | yallist "^3.0.0" 2085 | 2086 | minizlib@^1.1.0: 2087 | version "1.1.0" 2088 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" 2089 | dependencies: 2090 | minipass "^2.2.1" 2091 | 2092 | mississippi@^2.0.0: 2093 | version "2.0.0" 2094 | resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" 2095 | dependencies: 2096 | concat-stream "^1.5.0" 2097 | duplexify "^3.4.2" 2098 | end-of-stream "^1.1.0" 2099 | flush-write-stream "^1.0.0" 2100 | from2 "^2.1.0" 2101 | parallel-transform "^1.1.0" 2102 | pump "^2.0.1" 2103 | pumpify "^1.3.3" 2104 | stream-each "^1.1.0" 2105 | through2 "^2.0.0" 2106 | 2107 | mixin-deep@^1.2.0: 2108 | version "1.3.1" 2109 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 2110 | dependencies: 2111 | for-in "^1.0.2" 2112 | is-extendable "^1.0.1" 2113 | 2114 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: 2115 | version "0.5.1" 2116 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2117 | dependencies: 2118 | minimist "0.0.8" 2119 | 2120 | move-concurrently@^1.0.1: 2121 | version "1.0.1" 2122 | resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" 2123 | dependencies: 2124 | aproba "^1.1.1" 2125 | copy-concurrently "^1.0.0" 2126 | fs-write-stream-atomic "^1.0.8" 2127 | mkdirp "^0.5.1" 2128 | rimraf "^2.5.4" 2129 | run-queue "^1.0.3" 2130 | 2131 | ms@2.0.0: 2132 | version "2.0.0" 2133 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2134 | 2135 | mute-stream@0.0.7: 2136 | version "0.0.7" 2137 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 2138 | 2139 | nan@^2.9.2: 2140 | version "2.10.0" 2141 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 2142 | 2143 | nanoid@^1.0.7: 2144 | version "1.2.3" 2145 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-1.2.3.tgz#b8f022193a5808f9e3112658a2c34e43b24c009a" 2146 | 2147 | nanomatch@^1.2.9: 2148 | version "1.2.13" 2149 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 2150 | dependencies: 2151 | arr-diff "^4.0.0" 2152 | array-unique "^0.3.2" 2153 | define-property "^2.0.2" 2154 | extend-shallow "^3.0.2" 2155 | fragment-cache "^0.2.1" 2156 | is-windows "^1.0.2" 2157 | kind-of "^6.0.2" 2158 | object.pick "^1.3.0" 2159 | regex-not "^1.0.0" 2160 | snapdragon "^0.8.1" 2161 | to-regex "^3.0.1" 2162 | 2163 | needle@^2.2.1: 2164 | version "2.2.1" 2165 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" 2166 | dependencies: 2167 | debug "^2.1.2" 2168 | iconv-lite "^0.4.4" 2169 | sax "^1.2.4" 2170 | 2171 | neo-async@^2.5.0: 2172 | version "2.5.1" 2173 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" 2174 | 2175 | next-tick@1: 2176 | version "1.0.0" 2177 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" 2178 | 2179 | nice-try@^1.0.4: 2180 | version "1.0.4" 2181 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" 2182 | 2183 | node-libs-browser@^2.0.0: 2184 | version "2.1.0" 2185 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" 2186 | dependencies: 2187 | assert "^1.1.1" 2188 | browserify-zlib "^0.2.0" 2189 | buffer "^4.3.0" 2190 | console-browserify "^1.1.0" 2191 | constants-browserify "^1.0.0" 2192 | crypto-browserify "^3.11.0" 2193 | domain-browser "^1.1.1" 2194 | events "^1.0.0" 2195 | https-browserify "^1.0.0" 2196 | os-browserify "^0.3.0" 2197 | path-browserify "0.0.0" 2198 | process "^0.11.10" 2199 | punycode "^1.2.4" 2200 | querystring-es3 "^0.2.0" 2201 | readable-stream "^2.3.3" 2202 | stream-browserify "^2.0.1" 2203 | stream-http "^2.7.2" 2204 | string_decoder "^1.0.0" 2205 | timers-browserify "^2.0.4" 2206 | tty-browserify "0.0.0" 2207 | url "^0.11.0" 2208 | util "^0.10.3" 2209 | vm-browserify "0.0.4" 2210 | 2211 | node-pre-gyp@^0.10.0: 2212 | version "0.10.3" 2213 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" 2214 | dependencies: 2215 | detect-libc "^1.0.2" 2216 | mkdirp "^0.5.1" 2217 | needle "^2.2.1" 2218 | nopt "^4.0.1" 2219 | npm-packlist "^1.1.6" 2220 | npmlog "^4.0.2" 2221 | rc "^1.2.7" 2222 | rimraf "^2.6.1" 2223 | semver "^5.3.0" 2224 | tar "^4" 2225 | 2226 | nopt@^4.0.1: 2227 | version "4.0.1" 2228 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2229 | dependencies: 2230 | abbrev "1" 2231 | osenv "^0.1.4" 2232 | 2233 | normalize-path@^1.0.0: 2234 | version "1.0.0" 2235 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" 2236 | 2237 | normalize-path@^2.1.1: 2238 | version "2.1.1" 2239 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2240 | dependencies: 2241 | remove-trailing-separator "^1.0.1" 2242 | 2243 | normalize-url@^1.0.0: 2244 | version "1.9.1" 2245 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" 2246 | dependencies: 2247 | object-assign "^4.0.1" 2248 | prepend-http "^1.0.0" 2249 | query-string "^4.1.0" 2250 | sort-keys "^1.0.0" 2251 | 2252 | npm-bundled@^1.0.1: 2253 | version "1.0.3" 2254 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" 2255 | 2256 | npm-packlist@^1.1.6: 2257 | version "1.1.11" 2258 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" 2259 | dependencies: 2260 | ignore-walk "^3.0.1" 2261 | npm-bundled "^1.0.1" 2262 | 2263 | npm-path@^2.0.2: 2264 | version "2.0.4" 2265 | resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" 2266 | dependencies: 2267 | which "^1.2.10" 2268 | 2269 | npm-run-path@^2.0.0: 2270 | version "2.0.2" 2271 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2272 | dependencies: 2273 | path-key "^2.0.0" 2274 | 2275 | npm-which@^3.0.1: 2276 | version "3.0.1" 2277 | resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" 2278 | dependencies: 2279 | commander "^2.9.0" 2280 | npm-path "^2.0.2" 2281 | which "^1.2.10" 2282 | 2283 | npmlog@^4.0.2: 2284 | version "4.1.2" 2285 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2286 | dependencies: 2287 | are-we-there-yet "~1.1.2" 2288 | console-control-strings "~1.1.0" 2289 | gauge "~2.7.3" 2290 | set-blocking "~2.0.0" 2291 | 2292 | number-is-nan@^1.0.0: 2293 | version "1.0.1" 2294 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2295 | 2296 | object-assign@^4.0.1, object-assign@^4.1.0: 2297 | version "4.1.1" 2298 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2299 | 2300 | object-copy@^0.1.0: 2301 | version "0.1.0" 2302 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2303 | dependencies: 2304 | copy-descriptor "^0.1.0" 2305 | define-property "^0.2.5" 2306 | kind-of "^3.0.3" 2307 | 2308 | object-keys@^1.0.11, object-keys@^1.0.8: 2309 | version "1.0.12" 2310 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 2311 | 2312 | object-visit@^1.0.0: 2313 | version "1.0.1" 2314 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2315 | dependencies: 2316 | isobject "^3.0.0" 2317 | 2318 | object.assign@^4.1.0: 2319 | version "4.1.0" 2320 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 2321 | dependencies: 2322 | define-properties "^1.1.2" 2323 | function-bind "^1.1.1" 2324 | has-symbols "^1.0.0" 2325 | object-keys "^1.0.11" 2326 | 2327 | object.pick@^1.3.0: 2328 | version "1.3.0" 2329 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2330 | dependencies: 2331 | isobject "^3.0.1" 2332 | 2333 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 2334 | version "1.4.0" 2335 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2336 | dependencies: 2337 | wrappy "1" 2338 | 2339 | onetime@^1.0.0: 2340 | version "1.1.0" 2341 | resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 2342 | 2343 | onetime@^2.0.0: 2344 | version "2.0.1" 2345 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 2346 | dependencies: 2347 | mimic-fn "^1.0.0" 2348 | 2349 | optimist@^0.6.1: 2350 | version "0.6.1" 2351 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 2352 | dependencies: 2353 | minimist "~0.0.1" 2354 | wordwrap "~0.0.2" 2355 | 2356 | ora@^0.2.3: 2357 | version "0.2.3" 2358 | resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" 2359 | dependencies: 2360 | chalk "^1.1.1" 2361 | cli-cursor "^1.0.2" 2362 | cli-spinners "^0.1.2" 2363 | object-assign "^4.0.1" 2364 | 2365 | os-browserify@^0.3.0: 2366 | version "0.3.0" 2367 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 2368 | 2369 | os-homedir@^1.0.0: 2370 | version "1.0.2" 2371 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2372 | 2373 | os-locale@^2.0.0: 2374 | version "2.1.0" 2375 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 2376 | dependencies: 2377 | execa "^0.7.0" 2378 | lcid "^1.0.0" 2379 | mem "^1.1.0" 2380 | 2381 | os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: 2382 | version "1.0.2" 2383 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2384 | 2385 | osenv@^0.1.4: 2386 | version "0.1.5" 2387 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2388 | dependencies: 2389 | os-homedir "^1.0.0" 2390 | os-tmpdir "^1.0.0" 2391 | 2392 | p-finally@^1.0.0: 2393 | version "1.0.0" 2394 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2395 | 2396 | p-limit@^1.1.0: 2397 | version "1.3.0" 2398 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 2399 | dependencies: 2400 | p-try "^1.0.0" 2401 | 2402 | p-limit@^2.0.0: 2403 | version "2.0.0" 2404 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" 2405 | dependencies: 2406 | p-try "^2.0.0" 2407 | 2408 | p-locate@^2.0.0: 2409 | version "2.0.0" 2410 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2411 | dependencies: 2412 | p-limit "^1.1.0" 2413 | 2414 | p-locate@^3.0.0: 2415 | version "3.0.0" 2416 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 2417 | dependencies: 2418 | p-limit "^2.0.0" 2419 | 2420 | p-map@^1.1.1: 2421 | version "1.2.0" 2422 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" 2423 | 2424 | p-try@^1.0.0: 2425 | version "1.0.0" 2426 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2427 | 2428 | p-try@^2.0.0: 2429 | version "2.0.0" 2430 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" 2431 | 2432 | pako@~1.0.5: 2433 | version "1.0.6" 2434 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" 2435 | 2436 | parallel-transform@^1.1.0: 2437 | version "1.1.0" 2438 | resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" 2439 | dependencies: 2440 | cyclist "~0.2.2" 2441 | inherits "^2.0.3" 2442 | readable-stream "^2.1.5" 2443 | 2444 | parse-asn1@^5.0.0: 2445 | version "5.1.1" 2446 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" 2447 | dependencies: 2448 | asn1.js "^4.0.0" 2449 | browserify-aes "^1.0.0" 2450 | create-hash "^1.1.0" 2451 | evp_bytestokey "^1.0.0" 2452 | pbkdf2 "^3.0.3" 2453 | 2454 | parse-json@^4.0.0: 2455 | version "4.0.0" 2456 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 2457 | dependencies: 2458 | error-ex "^1.3.1" 2459 | json-parse-better-errors "^1.0.1" 2460 | 2461 | pascalcase@^0.1.1: 2462 | version "0.1.1" 2463 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2464 | 2465 | path-browserify@0.0.0: 2466 | version "0.0.0" 2467 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 2468 | 2469 | path-dirname@^1.0.0: 2470 | version "1.0.2" 2471 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2472 | 2473 | path-exists@^3.0.0: 2474 | version "3.0.0" 2475 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2476 | 2477 | path-is-absolute@^1.0.0: 2478 | version "1.0.1" 2479 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2480 | 2481 | path-is-inside@^1.0.2: 2482 | version "1.0.2" 2483 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2484 | 2485 | path-key@^2.0.0, path-key@^2.0.1: 2486 | version "2.0.1" 2487 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2488 | 2489 | path-parse@^1.0.5: 2490 | version "1.0.5" 2491 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 2492 | 2493 | pbkdf2@^3.0.3: 2494 | version "3.0.16" 2495 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" 2496 | dependencies: 2497 | create-hash "^1.1.2" 2498 | create-hmac "^1.1.4" 2499 | ripemd160 "^2.0.1" 2500 | safe-buffer "^5.0.1" 2501 | sha.js "^2.4.8" 2502 | 2503 | pify@^2.0.0: 2504 | version "2.3.0" 2505 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2506 | 2507 | pify@^3.0.0: 2508 | version "3.0.0" 2509 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2510 | 2511 | pinkie-promise@^2.0.0: 2512 | version "2.0.1" 2513 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2514 | dependencies: 2515 | pinkie "^2.0.0" 2516 | 2517 | pinkie@^2.0.0: 2518 | version "2.0.4" 2519 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2520 | 2521 | pkg-dir@^2.0.0: 2522 | version "2.0.0" 2523 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2524 | dependencies: 2525 | find-up "^2.1.0" 2526 | 2527 | please-upgrade-node@^3.0.2: 2528 | version "3.1.1" 2529 | resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" 2530 | dependencies: 2531 | semver-compare "^1.0.0" 2532 | 2533 | posix-character-classes@^0.1.0: 2534 | version "0.1.1" 2535 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2536 | 2537 | prepend-http@^1.0.0: 2538 | version "1.0.4" 2539 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2540 | 2541 | prettier@^1.13.4: 2542 | version "1.13.7" 2543 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" 2544 | 2545 | pretty-format@^23.2.0: 2546 | version "23.2.0" 2547 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.2.0.tgz#3b0aaa63c018a53583373c1cb3a5d96cc5e83017" 2548 | dependencies: 2549 | ansi-regex "^3.0.0" 2550 | ansi-styles "^3.2.0" 2551 | 2552 | process-nextick-args@~2.0.0: 2553 | version "2.0.0" 2554 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2555 | 2556 | process@^0.11.10: 2557 | version "0.11.10" 2558 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 2559 | 2560 | progress@^2.0.0: 2561 | version "2.0.0" 2562 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 2563 | 2564 | promise-inflight@^1.0.1: 2565 | version "1.0.1" 2566 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" 2567 | 2568 | prr@~1.0.1: 2569 | version "1.0.1" 2570 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 2571 | 2572 | pseudomap@^1.0.2: 2573 | version "1.0.2" 2574 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2575 | 2576 | public-encrypt@^4.0.0: 2577 | version "4.0.2" 2578 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" 2579 | dependencies: 2580 | bn.js "^4.1.0" 2581 | browserify-rsa "^4.0.0" 2582 | create-hash "^1.1.0" 2583 | parse-asn1 "^5.0.0" 2584 | randombytes "^2.0.1" 2585 | 2586 | pump@^2.0.0, pump@^2.0.1: 2587 | version "2.0.1" 2588 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" 2589 | dependencies: 2590 | end-of-stream "^1.1.0" 2591 | once "^1.3.1" 2592 | 2593 | pumpify@^1.3.3: 2594 | version "1.5.1" 2595 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" 2596 | dependencies: 2597 | duplexify "^3.6.0" 2598 | inherits "^2.0.3" 2599 | pump "^2.0.0" 2600 | 2601 | punycode@1.3.2: 2602 | version "1.3.2" 2603 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2604 | 2605 | punycode@^1.2.4: 2606 | version "1.4.1" 2607 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2608 | 2609 | punycode@^2.1.0: 2610 | version "2.1.1" 2611 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2612 | 2613 | query-string@^4.1.0: 2614 | version "4.3.4" 2615 | resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" 2616 | dependencies: 2617 | object-assign "^4.1.0" 2618 | strict-uri-encode "^1.0.0" 2619 | 2620 | querystring-es3@^0.2.0: 2621 | version "0.2.1" 2622 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2623 | 2624 | querystring@0.2.0: 2625 | version "0.2.0" 2626 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2627 | 2628 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 2629 | version "2.0.6" 2630 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" 2631 | dependencies: 2632 | safe-buffer "^5.1.0" 2633 | 2634 | randomfill@^1.0.3: 2635 | version "1.0.4" 2636 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 2637 | dependencies: 2638 | randombytes "^2.0.5" 2639 | safe-buffer "^5.1.0" 2640 | 2641 | rc@^1.2.7: 2642 | version "1.2.8" 2643 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2644 | dependencies: 2645 | deep-extend "^0.6.0" 2646 | ini "~1.3.0" 2647 | minimist "^1.2.0" 2648 | strip-json-comments "~2.0.1" 2649 | 2650 | "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: 2651 | version "2.3.6" 2652 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2653 | dependencies: 2654 | core-util-is "~1.0.0" 2655 | inherits "~2.0.3" 2656 | isarray "~1.0.0" 2657 | process-nextick-args "~2.0.0" 2658 | safe-buffer "~5.1.1" 2659 | string_decoder "~1.1.1" 2660 | util-deprecate "~1.0.1" 2661 | 2662 | readdirp@^2.0.0: 2663 | version "2.1.0" 2664 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 2665 | dependencies: 2666 | graceful-fs "^4.1.2" 2667 | minimatch "^3.0.2" 2668 | readable-stream "^2.0.2" 2669 | set-immediate-shim "^1.0.1" 2670 | 2671 | rechoir@^0.6.2: 2672 | version "0.6.2" 2673 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 2674 | dependencies: 2675 | resolve "^1.1.6" 2676 | 2677 | regex-not@^1.0.0, regex-not@^1.0.2: 2678 | version "1.0.2" 2679 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2680 | dependencies: 2681 | extend-shallow "^3.0.2" 2682 | safe-regex "^1.1.0" 2683 | 2684 | remove-trailing-separator@^1.0.1: 2685 | version "1.1.0" 2686 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2687 | 2688 | repeat-element@^1.1.2: 2689 | version "1.1.2" 2690 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2691 | 2692 | repeat-string@^1.5.2, repeat-string@^1.6.1: 2693 | version "1.6.1" 2694 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2695 | 2696 | repeating@^2.0.0: 2697 | version "2.0.1" 2698 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2699 | dependencies: 2700 | is-finite "^1.0.0" 2701 | 2702 | require-directory@^2.1.1: 2703 | version "2.1.1" 2704 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2705 | 2706 | require-main-filename@^1.0.1: 2707 | version "1.0.1" 2708 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2709 | 2710 | resolve-cwd@^2.0.0: 2711 | version "2.0.0" 2712 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" 2713 | dependencies: 2714 | resolve-from "^3.0.0" 2715 | 2716 | resolve-from@^3.0.0: 2717 | version "3.0.0" 2718 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" 2719 | 2720 | resolve-url@^0.2.1: 2721 | version "0.2.1" 2722 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2723 | 2724 | resolve@^1.1.6, resolve@^1.3.2: 2725 | version "1.8.1" 2726 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 2727 | dependencies: 2728 | path-parse "^1.0.5" 2729 | 2730 | restore-cursor@^1.0.1: 2731 | version "1.0.1" 2732 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 2733 | dependencies: 2734 | exit-hook "^1.0.0" 2735 | onetime "^1.0.0" 2736 | 2737 | restore-cursor@^2.0.0: 2738 | version "2.0.0" 2739 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 2740 | dependencies: 2741 | onetime "^2.0.0" 2742 | signal-exit "^3.0.2" 2743 | 2744 | ret@~0.1.10: 2745 | version "0.1.15" 2746 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2747 | 2748 | right-align@^0.1.1: 2749 | version "0.1.3" 2750 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 2751 | dependencies: 2752 | align-text "^0.1.1" 2753 | 2754 | rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: 2755 | version "2.6.2" 2756 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 2757 | dependencies: 2758 | glob "^7.0.5" 2759 | 2760 | ripemd160@^2.0.0, ripemd160@^2.0.1: 2761 | version "2.0.2" 2762 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 2763 | dependencies: 2764 | hash-base "^3.0.0" 2765 | inherits "^2.0.1" 2766 | 2767 | run-async@^2.2.0: 2768 | version "2.3.0" 2769 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 2770 | dependencies: 2771 | is-promise "^2.1.0" 2772 | 2773 | run-queue@^1.0.0, run-queue@^1.0.3: 2774 | version "1.0.3" 2775 | resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" 2776 | dependencies: 2777 | aproba "^1.1.1" 2778 | 2779 | rxjs@^6.1.0: 2780 | version "6.2.2" 2781 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9" 2782 | dependencies: 2783 | tslib "^1.9.0" 2784 | 2785 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2786 | version "5.1.2" 2787 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2788 | 2789 | safe-regex@^1.1.0: 2790 | version "1.1.0" 2791 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2792 | dependencies: 2793 | ret "~0.1.10" 2794 | 2795 | "safer-buffer@>= 2.1.2 < 3": 2796 | version "2.1.2" 2797 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2798 | 2799 | sax@^1.2.4: 2800 | version "1.2.4" 2801 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2802 | 2803 | schema-utils@^0.4.4, schema-utils@^0.4.5: 2804 | version "0.4.5" 2805 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" 2806 | dependencies: 2807 | ajv "^6.1.0" 2808 | ajv-keywords "^3.1.0" 2809 | 2810 | semver-compare@^1.0.0: 2811 | version "1.0.0" 2812 | resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" 2813 | 2814 | semver@^5.3.0, semver@^5.5.0: 2815 | version "5.5.0" 2816 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 2817 | 2818 | serialize-javascript@^1.4.0: 2819 | version "1.5.0" 2820 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" 2821 | 2822 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2823 | version "2.0.0" 2824 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2825 | 2826 | set-immediate-shim@^1.0.1: 2827 | version "1.0.1" 2828 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 2829 | 2830 | set-value@^0.4.3: 2831 | version "0.4.3" 2832 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2833 | dependencies: 2834 | extend-shallow "^2.0.1" 2835 | is-extendable "^0.1.1" 2836 | is-plain-object "^2.0.1" 2837 | to-object-path "^0.3.0" 2838 | 2839 | set-value@^2.0.0: 2840 | version "2.0.0" 2841 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2842 | dependencies: 2843 | extend-shallow "^2.0.1" 2844 | is-extendable "^0.1.1" 2845 | is-plain-object "^2.0.3" 2846 | split-string "^3.0.1" 2847 | 2848 | setimmediate@^1.0.4: 2849 | version "1.0.5" 2850 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2851 | 2852 | sha.js@^2.4.0, sha.js@^2.4.8: 2853 | version "2.4.11" 2854 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 2855 | dependencies: 2856 | inherits "^2.0.1" 2857 | safe-buffer "^5.0.1" 2858 | 2859 | shebang-command@^1.2.0: 2860 | version "1.2.0" 2861 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2862 | dependencies: 2863 | shebang-regex "^1.0.0" 2864 | 2865 | shebang-regex@^1.0.0: 2866 | version "1.0.0" 2867 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2868 | 2869 | shelljs@^0.8.1: 2870 | version "0.8.2" 2871 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" 2872 | dependencies: 2873 | glob "^7.0.0" 2874 | interpret "^1.0.0" 2875 | rechoir "^0.6.2" 2876 | 2877 | shortid@^2.2.12: 2878 | version "2.2.13" 2879 | resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.13.tgz#b2441e71c664ace458a341d343959f677910ef5b" 2880 | dependencies: 2881 | nanoid "^1.0.7" 2882 | 2883 | signal-exit@^3.0.0, signal-exit@^3.0.2: 2884 | version "3.0.2" 2885 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2886 | 2887 | slice-ansi@0.0.4: 2888 | version "0.0.4" 2889 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 2890 | 2891 | snapdragon-node@^2.0.1: 2892 | version "2.1.1" 2893 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2894 | dependencies: 2895 | define-property "^1.0.0" 2896 | isobject "^3.0.0" 2897 | snapdragon-util "^3.0.1" 2898 | 2899 | snapdragon-util@^3.0.1: 2900 | version "3.0.1" 2901 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2902 | dependencies: 2903 | kind-of "^3.2.0" 2904 | 2905 | snapdragon@^0.8.1: 2906 | version "0.8.2" 2907 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2908 | dependencies: 2909 | base "^0.11.1" 2910 | debug "^2.2.0" 2911 | define-property "^0.2.5" 2912 | extend-shallow "^2.0.1" 2913 | map-cache "^0.2.2" 2914 | source-map "^0.5.6" 2915 | source-map-resolve "^0.5.0" 2916 | use "^3.1.0" 2917 | 2918 | sort-keys@^1.0.0: 2919 | version "1.1.2" 2920 | resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" 2921 | dependencies: 2922 | is-plain-obj "^1.0.0" 2923 | 2924 | source-list-map@^2.0.0: 2925 | version "2.0.0" 2926 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" 2927 | 2928 | source-map-resolve@^0.5.0: 2929 | version "0.5.2" 2930 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2931 | dependencies: 2932 | atob "^2.1.1" 2933 | decode-uri-component "^0.2.0" 2934 | resolve-url "^0.2.1" 2935 | source-map-url "^0.4.0" 2936 | urix "^0.1.0" 2937 | 2938 | source-map-support@^0.5.3: 2939 | version "0.5.6" 2940 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 2941 | dependencies: 2942 | buffer-from "^1.0.0" 2943 | source-map "^0.6.0" 2944 | 2945 | source-map-url@^0.4.0: 2946 | version "0.4.0" 2947 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2948 | 2949 | source-map@^0.4.4: 2950 | version "0.4.4" 2951 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 2952 | dependencies: 2953 | amdefine ">=0.0.4" 2954 | 2955 | source-map@^0.5.6, source-map@~0.5.1: 2956 | version "0.5.7" 2957 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2958 | 2959 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 2960 | version "0.6.1" 2961 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2962 | 2963 | split-string@^3.0.1, split-string@^3.0.2: 2964 | version "3.1.0" 2965 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2966 | dependencies: 2967 | extend-shallow "^3.0.0" 2968 | 2969 | sprintf-js@~1.0.2: 2970 | version "1.0.3" 2971 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2972 | 2973 | ssri@^5.2.4: 2974 | version "5.3.0" 2975 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" 2976 | dependencies: 2977 | safe-buffer "^5.1.1" 2978 | 2979 | staged-git-files@1.1.1: 2980 | version "1.1.1" 2981 | resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b" 2982 | 2983 | static-extend@^0.1.1: 2984 | version "0.1.2" 2985 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2986 | dependencies: 2987 | define-property "^0.2.5" 2988 | object-copy "^0.1.0" 2989 | 2990 | stream-browserify@^2.0.1: 2991 | version "2.0.1" 2992 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" 2993 | dependencies: 2994 | inherits "~2.0.1" 2995 | readable-stream "^2.0.2" 2996 | 2997 | stream-each@^1.1.0: 2998 | version "1.2.2" 2999 | resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" 3000 | dependencies: 3001 | end-of-stream "^1.1.0" 3002 | stream-shift "^1.0.0" 3003 | 3004 | stream-http@^2.7.2: 3005 | version "2.8.3" 3006 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 3007 | dependencies: 3008 | builtin-status-codes "^3.0.0" 3009 | inherits "^2.0.1" 3010 | readable-stream "^2.3.6" 3011 | to-arraybuffer "^1.0.0" 3012 | xtend "^4.0.0" 3013 | 3014 | stream-shift@^1.0.0: 3015 | version "1.0.0" 3016 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 3017 | 3018 | strict-event-emitter-types@^2.0.0: 3019 | version "2.0.0" 3020 | resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" 3021 | 3022 | strict-uri-encode@^1.0.0: 3023 | version "1.1.0" 3024 | resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" 3025 | 3026 | string-argv@^0.0.2: 3027 | version "0.0.2" 3028 | resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" 3029 | 3030 | string-width@^1.0.1: 3031 | version "1.0.2" 3032 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3033 | dependencies: 3034 | code-point-at "^1.0.0" 3035 | is-fullwidth-code-point "^1.0.0" 3036 | strip-ansi "^3.0.0" 3037 | 3038 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 3039 | version "2.1.1" 3040 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 3041 | dependencies: 3042 | is-fullwidth-code-point "^2.0.0" 3043 | strip-ansi "^4.0.0" 3044 | 3045 | string_decoder@^1.0.0, string_decoder@~1.1.1: 3046 | version "1.1.1" 3047 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3048 | dependencies: 3049 | safe-buffer "~5.1.0" 3050 | 3051 | stringify-object@^3.2.2: 3052 | version "3.2.2" 3053 | resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" 3054 | dependencies: 3055 | get-own-enumerable-property-symbols "^2.0.1" 3056 | is-obj "^1.0.1" 3057 | is-regexp "^1.0.0" 3058 | 3059 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3060 | version "3.0.1" 3061 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3062 | dependencies: 3063 | ansi-regex "^2.0.0" 3064 | 3065 | strip-ansi@^4.0.0: 3066 | version "4.0.0" 3067 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3068 | dependencies: 3069 | ansi-regex "^3.0.0" 3070 | 3071 | strip-eof@^1.0.0: 3072 | version "1.0.0" 3073 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3074 | 3075 | strip-indent@^2.0.0: 3076 | version "2.0.0" 3077 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 3078 | 3079 | strip-json-comments@~2.0.1: 3080 | version "2.0.1" 3081 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3082 | 3083 | strip-outer@^1.0.0: 3084 | version "1.0.1" 3085 | resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" 3086 | dependencies: 3087 | escape-string-regexp "^1.0.2" 3088 | 3089 | strip-url-auth@^1.0.0: 3090 | version "1.0.1" 3091 | resolved "https://registry.yarnpkg.com/strip-url-auth/-/strip-url-auth-1.0.1.tgz#22b0fa3a41385b33be3f331551bbb837fa0cd7ae" 3092 | 3093 | supports-color@^2.0.0: 3094 | version "2.0.0" 3095 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3096 | 3097 | supports-color@^5.3.0, supports-color@^5.4.0: 3098 | version "5.4.0" 3099 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 3100 | dependencies: 3101 | has-flag "^3.0.0" 3102 | 3103 | symbol-observable@^1.1.0: 3104 | version "1.2.0" 3105 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 3106 | 3107 | tapable@^1.0.0: 3108 | version "1.0.0" 3109 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" 3110 | 3111 | tar@^4: 3112 | version "4.4.4" 3113 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" 3114 | dependencies: 3115 | chownr "^1.0.1" 3116 | fs-minipass "^1.2.5" 3117 | minipass "^2.3.3" 3118 | minizlib "^1.1.0" 3119 | mkdirp "^0.5.0" 3120 | safe-buffer "^5.1.2" 3121 | yallist "^3.0.2" 3122 | 3123 | through2@^2.0.0: 3124 | version "2.0.3" 3125 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 3126 | dependencies: 3127 | readable-stream "^2.1.5" 3128 | xtend "~4.0.1" 3129 | 3130 | through@^2.3.6: 3131 | version "2.3.8" 3132 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3133 | 3134 | timers-browserify@^2.0.4: 3135 | version "2.0.10" 3136 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" 3137 | dependencies: 3138 | setimmediate "^1.0.4" 3139 | 3140 | tmp@^0.0.33: 3141 | version "0.0.33" 3142 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 3143 | dependencies: 3144 | os-tmpdir "~1.0.2" 3145 | 3146 | to-arraybuffer@^1.0.0: 3147 | version "1.0.1" 3148 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 3149 | 3150 | to-object-path@^0.3.0: 3151 | version "0.3.0" 3152 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3153 | dependencies: 3154 | kind-of "^3.0.2" 3155 | 3156 | to-regex-range@^2.1.0: 3157 | version "2.1.1" 3158 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 3159 | dependencies: 3160 | is-number "^3.0.0" 3161 | repeat-string "^1.6.1" 3162 | 3163 | to-regex@^3.0.1, to-regex@^3.0.2: 3164 | version "3.0.2" 3165 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 3166 | dependencies: 3167 | define-property "^2.0.2" 3168 | extend-shallow "^3.0.2" 3169 | regex-not "^1.0.2" 3170 | safe-regex "^1.1.0" 3171 | 3172 | trim-repeated@^1.0.0: 3173 | version "1.0.0" 3174 | resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" 3175 | dependencies: 3176 | escape-string-regexp "^1.0.2" 3177 | 3178 | tslib@1.9.0: 3179 | version "1.9.0" 3180 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" 3181 | 3182 | tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: 3183 | version "1.9.3" 3184 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 3185 | 3186 | tslint-config-standard@^7.1.0: 3187 | version "7.1.0" 3188 | resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-7.1.0.tgz#6bcc435a179478e365f6cc62312a561221985760" 3189 | dependencies: 3190 | tslint-eslint-rules "^5.3.1" 3191 | 3192 | tslint-eslint-rules@^5.3.1: 3193 | version "5.3.1" 3194 | resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.3.1.tgz#10dec4361df0b3e4385d91ff8e0226bda4ec2ad4" 3195 | dependencies: 3196 | doctrine "0.7.2" 3197 | tslib "1.9.0" 3198 | tsutils "2.8.0" 3199 | 3200 | tslint@^5.11.0: 3201 | version "5.11.0" 3202 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" 3203 | dependencies: 3204 | babel-code-frame "^6.22.0" 3205 | builtin-modules "^1.1.1" 3206 | chalk "^2.3.0" 3207 | commander "^2.12.1" 3208 | diff "^3.2.0" 3209 | glob "^7.1.1" 3210 | js-yaml "^3.7.0" 3211 | minimatch "^3.0.4" 3212 | resolve "^1.3.2" 3213 | semver "^5.3.0" 3214 | tslib "^1.8.0" 3215 | tsutils "^2.27.2" 3216 | 3217 | tsutils@2.8.0: 3218 | version "2.8.0" 3219 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.8.0.tgz#0160173729b3bf138628dd14a1537e00851d814a" 3220 | dependencies: 3221 | tslib "^1.7.1" 3222 | 3223 | tsutils@^2.27.2: 3224 | version "2.29.0" 3225 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 3226 | dependencies: 3227 | tslib "^1.8.1" 3228 | 3229 | tty-browserify@0.0.0: 3230 | version "0.0.0" 3231 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 3232 | 3233 | typedarray@^0.0.6: 3234 | version "0.0.6" 3235 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3236 | 3237 | typedoc-default-themes@^0.5.0: 3238 | version "0.5.0" 3239 | resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.5.0.tgz#6dc2433e78ed8bea8e887a3acde2f31785bd6227" 3240 | 3241 | typedoc@^0.11.0: 3242 | version "0.11.1" 3243 | resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.11.1.tgz#9f033887fd2218c769e1045feb88a1efed9f12c9" 3244 | dependencies: 3245 | "@types/fs-extra" "5.0.1" 3246 | "@types/handlebars" "4.0.36" 3247 | "@types/highlight.js" "9.12.2" 3248 | "@types/lodash" "4.14.104" 3249 | "@types/marked" "0.3.0" 3250 | "@types/minimatch" "3.0.3" 3251 | "@types/shelljs" "0.7.8" 3252 | fs-extra "^5.0.0" 3253 | handlebars "^4.0.6" 3254 | highlight.js "^9.0.0" 3255 | lodash "^4.17.5" 3256 | marked "^0.3.17" 3257 | minimatch "^3.0.0" 3258 | progress "^2.0.0" 3259 | shelljs "^0.8.1" 3260 | typedoc-default-themes "^0.5.0" 3261 | typescript "2.7.2" 3262 | 3263 | typescript@2.7.2: 3264 | version "2.7.2" 3265 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" 3266 | 3267 | typescript@^3.0.1: 3268 | version "3.0.1" 3269 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" 3270 | 3271 | uglify-es@^3.3.4: 3272 | version "3.3.9" 3273 | resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" 3274 | dependencies: 3275 | commander "~2.13.0" 3276 | source-map "~0.6.1" 3277 | 3278 | uglify-js@^2.6: 3279 | version "2.8.29" 3280 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 3281 | dependencies: 3282 | source-map "~0.5.1" 3283 | yargs "~3.10.0" 3284 | optionalDependencies: 3285 | uglify-to-browserify "~1.0.0" 3286 | 3287 | uglify-to-browserify@~1.0.0: 3288 | version "1.0.2" 3289 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 3290 | 3291 | uglifyjs-webpack-plugin@^1.2.4: 3292 | version "1.2.7" 3293 | resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00" 3294 | dependencies: 3295 | cacache "^10.0.4" 3296 | find-cache-dir "^1.0.0" 3297 | schema-utils "^0.4.5" 3298 | serialize-javascript "^1.4.0" 3299 | source-map "^0.6.1" 3300 | uglify-es "^3.3.4" 3301 | webpack-sources "^1.1.0" 3302 | worker-farm "^1.5.2" 3303 | 3304 | union-value@^1.0.0: 3305 | version "1.0.0" 3306 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 3307 | dependencies: 3308 | arr-union "^3.1.0" 3309 | get-value "^2.0.6" 3310 | is-extendable "^0.1.1" 3311 | set-value "^0.4.3" 3312 | 3313 | unique-filename@^1.1.0: 3314 | version "1.1.0" 3315 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" 3316 | dependencies: 3317 | unique-slug "^2.0.0" 3318 | 3319 | unique-slug@^2.0.0: 3320 | version "2.0.0" 3321 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" 3322 | dependencies: 3323 | imurmurhash "^0.1.4" 3324 | 3325 | universalify@^0.1.0: 3326 | version "0.1.2" 3327 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 3328 | 3329 | unset-value@^1.0.0: 3330 | version "1.0.0" 3331 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 3332 | dependencies: 3333 | has-value "^0.3.1" 3334 | isobject "^3.0.0" 3335 | 3336 | upath@^1.0.5: 3337 | version "1.1.0" 3338 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" 3339 | 3340 | uri-js@^4.2.1: 3341 | version "4.2.2" 3342 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 3343 | dependencies: 3344 | punycode "^2.1.0" 3345 | 3346 | urix@^0.1.0: 3347 | version "0.1.0" 3348 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 3349 | 3350 | url@^0.11.0: 3351 | version "0.11.0" 3352 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 3353 | dependencies: 3354 | punycode "1.3.2" 3355 | querystring "0.2.0" 3356 | 3357 | use@^3.1.0: 3358 | version "3.1.1" 3359 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 3360 | 3361 | util-deprecate@~1.0.1: 3362 | version "1.0.2" 3363 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3364 | 3365 | util@0.10.3: 3366 | version "0.10.3" 3367 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 3368 | dependencies: 3369 | inherits "2.0.1" 3370 | 3371 | util@^0.10.3: 3372 | version "0.10.4" 3373 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" 3374 | dependencies: 3375 | inherits "2.0.3" 3376 | 3377 | uuid@^3.1.0: 3378 | version "3.3.2" 3379 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 3380 | 3381 | v8-compile-cache@^2.0.0: 3382 | version "2.0.0" 3383 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz#526492e35fc616864284700b7043e01baee09f0a" 3384 | 3385 | vm-browserify@0.0.4: 3386 | version "0.0.4" 3387 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" 3388 | dependencies: 3389 | indexof "0.0.1" 3390 | 3391 | watchpack@^1.5.0: 3392 | version "1.6.0" 3393 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" 3394 | dependencies: 3395 | chokidar "^2.0.2" 3396 | graceful-fs "^4.1.2" 3397 | neo-async "^2.5.0" 3398 | 3399 | webpack-cli@^3.1.0: 3400 | version "3.1.0" 3401 | resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.0.tgz#d71a83687dcfeb758fdceeb0fe042f96bcf62994" 3402 | dependencies: 3403 | chalk "^2.4.1" 3404 | cross-spawn "^6.0.5" 3405 | enhanced-resolve "^4.0.0" 3406 | global-modules-path "^2.1.0" 3407 | import-local "^1.0.0" 3408 | inquirer "^6.0.0" 3409 | interpret "^1.1.0" 3410 | loader-utils "^1.1.0" 3411 | supports-color "^5.4.0" 3412 | v8-compile-cache "^2.0.0" 3413 | yargs "^12.0.1" 3414 | 3415 | webpack-log@^1.2.0: 3416 | version "1.2.0" 3417 | resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" 3418 | dependencies: 3419 | chalk "^2.1.0" 3420 | log-symbols "^2.1.0" 3421 | loglevelnext "^1.0.1" 3422 | uuid "^3.1.0" 3423 | 3424 | webpack-node-externals@^1.7.2: 3425 | version "1.7.2" 3426 | resolved "http://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" 3427 | 3428 | webpack-sources@^1.0.1, webpack-sources@^1.1.0: 3429 | version "1.1.0" 3430 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" 3431 | dependencies: 3432 | source-list-map "^2.0.0" 3433 | source-map "~0.6.1" 3434 | 3435 | webpack@^4.16.1: 3436 | version "4.16.3" 3437 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.3.tgz#861be3176d81e7e3d71c66c8acc9bba35588b525" 3438 | dependencies: 3439 | "@webassemblyjs/ast" "1.5.13" 3440 | "@webassemblyjs/helper-module-context" "1.5.13" 3441 | "@webassemblyjs/wasm-edit" "1.5.13" 3442 | "@webassemblyjs/wasm-opt" "1.5.13" 3443 | "@webassemblyjs/wasm-parser" "1.5.13" 3444 | acorn "^5.6.2" 3445 | acorn-dynamic-import "^3.0.0" 3446 | ajv "^6.1.0" 3447 | ajv-keywords "^3.1.0" 3448 | chrome-trace-event "^1.0.0" 3449 | enhanced-resolve "^4.1.0" 3450 | eslint-scope "^4.0.0" 3451 | json-parse-better-errors "^1.0.2" 3452 | loader-runner "^2.3.0" 3453 | loader-utils "^1.1.0" 3454 | memory-fs "~0.4.1" 3455 | micromatch "^3.1.8" 3456 | mkdirp "~0.5.0" 3457 | neo-async "^2.5.0" 3458 | node-libs-browser "^2.0.0" 3459 | schema-utils "^0.4.4" 3460 | tapable "^1.0.0" 3461 | uglifyjs-webpack-plugin "^1.2.4" 3462 | watchpack "^1.5.0" 3463 | webpack-sources "^1.0.1" 3464 | 3465 | which-module@^2.0.0: 3466 | version "2.0.0" 3467 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3468 | 3469 | which@^1.2.10, which@^1.2.9: 3470 | version "1.3.1" 3471 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3472 | dependencies: 3473 | isexe "^2.0.0" 3474 | 3475 | wide-align@^1.1.0: 3476 | version "1.1.3" 3477 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 3478 | dependencies: 3479 | string-width "^1.0.2 || 2" 3480 | 3481 | window-size@0.1.0: 3482 | version "0.1.0" 3483 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 3484 | 3485 | wordwrap@0.0.2: 3486 | version "0.0.2" 3487 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 3488 | 3489 | wordwrap@~0.0.2: 3490 | version "0.0.3" 3491 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 3492 | 3493 | worker-farm@^1.5.2: 3494 | version "1.6.0" 3495 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" 3496 | dependencies: 3497 | errno "~0.1.7" 3498 | 3499 | wrap-ansi@^2.0.0: 3500 | version "2.1.0" 3501 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3502 | dependencies: 3503 | string-width "^1.0.1" 3504 | strip-ansi "^3.0.1" 3505 | 3506 | wrappy@1: 3507 | version "1.0.2" 3508 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3509 | 3510 | xregexp@4.0.0: 3511 | version "4.0.0" 3512 | resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" 3513 | 3514 | xtend@^4.0.0, xtend@~4.0.1: 3515 | version "4.0.1" 3516 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3517 | 3518 | "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: 3519 | version "4.0.0" 3520 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3521 | 3522 | yallist@^2.1.2: 3523 | version "2.1.2" 3524 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3525 | 3526 | yallist@^3.0.0, yallist@^3.0.2: 3527 | version "3.0.2" 3528 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 3529 | 3530 | yargs-parser@^10.1.0: 3531 | version "10.1.0" 3532 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 3533 | dependencies: 3534 | camelcase "^4.1.0" 3535 | 3536 | yargs@^12.0.1: 3537 | version "12.0.1" 3538 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2" 3539 | dependencies: 3540 | cliui "^4.0.0" 3541 | decamelize "^2.0.0" 3542 | find-up "^3.0.0" 3543 | get-caller-file "^1.0.1" 3544 | os-locale "^2.0.0" 3545 | require-directory "^2.1.1" 3546 | require-main-filename "^1.0.1" 3547 | set-blocking "^2.0.0" 3548 | string-width "^2.0.0" 3549 | which-module "^2.0.0" 3550 | y18n "^3.2.1 || ^4.0.0" 3551 | yargs-parser "^10.1.0" 3552 | 3553 | yargs@~3.10.0: 3554 | version "3.10.0" 3555 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 3556 | dependencies: 3557 | camelcase "^1.0.2" 3558 | cliui "^2.1.0" 3559 | decamelize "^1.0.0" 3560 | window-size "0.1.0" 3561 | --------------------------------------------------------------------------------