├── .circleci └── config.yml ├── .editorconfig ├── .gitignore ├── LICENSE ├── README-CN.md ├── README.md ├── example ├── counter-function.html ├── counter-simple.html ├── counter.html └── wiki-search.html ├── package.json ├── rollup.config.js ├── src ├── directives │ └── stream.js ├── index.js ├── methods │ ├── createObservableMethod.js │ ├── eventToObservable.js │ ├── fromDOMEvent.js │ ├── subscribeTo.js │ └── watchAsObservable.js ├── mixin.js ├── umd-aliases │ ├── operators.js │ └── rxjs.js └── util.js ├── test └── test.js ├── types ├── index.d.ts ├── test │ ├── index.ts │ └── tsconfig.json ├── tsconfig.json └── typings.json └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | jobs: 4 | build: 5 | docker: 6 | - image: vuejs/ci 7 | working_directory: ~/repo 8 | steps: 9 | - checkout 10 | - restore_cache: 11 | keys: 12 | - dependency-cache-{{ checksum "package.json" }} 13 | - dependency-cache- 14 | - run: npm install 15 | - run: npm run test 16 | - run: npm run lint 17 | - save_cache: 18 | key: dependency-cache-{{ checksum "package.json" }} 19 | paths: 20 | - node_modules 21 | 22 | 23 | workflows: 24 | version: 2 25 | test: 26 | jobs: 27 | - build 28 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | charset = utf-8 6 | 7 | [**.{js,jsx,vue}] 8 | indent_style = space 9 | indent_size = 2 10 | insert_final_newline = true 11 | 12 | [package.json] 13 | indent_style = space 14 | indent_size = 2 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | .DS_Store 4 | .idea 5 | .vscode -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2016 Evan You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README-CN.md: -------------------------------------------------------------------------------- 1 | # vue-rx [![Build Status](https://circleci.com/gh/vuejs/vue-rx/tree/master.svg?style=shield)](https://circleci.com/gh/vuejs/vue-rx/tree/master) 2 | 3 | [English](README.md) | 简体中文 4 | 5 | 将 [RxJS v6+](https://github.com/ReactiveX/rxjs) 集成到 Vue.js。 6 | 7 | > **相比 5.0 的不兼容变更** 8 | > 9 | > - vue-rx v6 现在默认只对 RxJS V6+ 生效。如果你想继续使用 RxJS v5 风格的代码,安装 `rxjs-compat`。 10 | 11 | ### 安装 12 | 13 | #### NPM + ES2015 14 | 15 | **`rxjs` 需要作为 peer dependency 引入。** 16 | 17 | ```bash 18 | npm install vue vue-rx rxjs --save 19 | ``` 20 | 21 | ```js 22 | import Vue from 'vue'; 23 | import VueRx from 'vue-rx'; 24 | 25 | Vue.use(VueRx); 26 | ``` 27 | 28 | webpack 打包默认会使用 `dist/vue-rx.esm.js`。这样引入最小数量的 Rx 操作符并且保证了最小的打包体积。 29 | 30 | #### 全局脚本 31 | 32 | 如果要在浏览器环境使用,需要引入 UMD 构建版本 `dist/vue-rx.js`。在浏览器环境中的 UMD 构建版本会假设 `window.rxjs` 已经存在,因此你需要确保在 Vue.js 和 RxJS 之后引入 `vue-rx.js`。如果 `window.Vue` 存在的话,`vue-rx` 会自动安装。 33 | 34 | 例子: 35 | 36 | ```html 37 | 38 | 39 | 40 | ``` 41 | 42 | ### 如何使用 43 | 44 | ```js 45 | // 用 `subscriptions` 选项提供 Rx observables 46 | new Vue({ 47 | el: '#app', 48 | subscriptions: { 49 | msg: messageObservable 50 | } 51 | }); 52 | ``` 53 | 54 | ```html 55 | 56 |
{{ msg }}
57 | ``` 58 | 59 | `subscriptions` 选项也可以接受一个函数,这样就可以在每个组件实例中返回独一无二的 observables: 60 | 61 | ```js 62 | import { Observable } from 'rxjs' 63 | 64 | Vue.component('foo', { 65 | subscriptions: function () { 66 | return { 67 | msg: new Observable(...) 68 | } 69 | } 70 | }) 71 | ``` 72 | 73 | Observables 会以 `vm.$observables` 的形式暴露: 74 | 75 | ```js 76 | const vm = new Vue({ 77 | subscriptions: { 78 | msg: messageObservable 79 | } 80 | }); 81 | 82 | vm.$observables.msg.subscribe(msg => console.log(msg)); 83 | ``` 84 | 85 | ### `v-stream`:流式 DOM 事件 86 | 87 | `vue-rx` 提供 `v-stream` 让你向一个 Rx Subject 流式发送 DOM 事件。语法和 `v-on` 相似,指令参数对应事件名,绑定值对应 Rx Subject。 88 | 89 | ```html 90 | 91 | ``` 92 | 93 | 注意在渲染发生之前你需要在 vm 实例上声明一个 `rxjs.Subject` 实例 —— `plus$`,就像声明数据那样。你也可以在 `subscriptions` 函数中这样做。 94 | 95 | ```js 96 | import { Subject } from 'rxjs'; 97 | import { map, startWith, scan } from 'rxjs/operators'; 98 | 99 | new Vue({ 100 | subscriptions() { 101 | // 声明接收的 Subjects 102 | this.plus$ = new Subject(); 103 | // ...然后使用 Subjects 作为来源流创建订阅。 104 | // 来源流以 `{ event: HTMLEvent, data?: any }` 的格式发送数据 105 | return { 106 | count: this.plus$.pipe( 107 | map(() => 1), 108 | startWith(0), 109 | scan((total, change) => total + change) 110 | ) 111 | }; 112 | } 113 | }); 114 | ``` 115 | 116 | 或者,使用 `domStreams` 简写选项: 117 | 118 | ```js 119 | new Vue({ 120 | // 需要传递 `Rx` 给 `Vue.use()` 暴露 `Subject` 121 | domStreams: ['plus$'], 122 | subscriptions() { 123 | // 使用 `this.plus$` 124 | } 125 | }); 126 | ``` 127 | 128 | 最后,使用另一种语法给流传递额外的数据: 129 | 130 | ```html 131 | 132 | ``` 133 | 134 | 当你需要伴随诸如 `v-for` 迭代的临时模板变量一起传递,这就非常有用了。你可以直接从来源流撷取想要的数据。 135 | 136 | ```js 137 | const plusData$ = this.plus$.pipe(pluck('data')); 138 | ``` 139 | 140 | 从 3.1 版本开始,你可以传入额外的选项(作为第三个参数一起传入原生的 `addEventListener`): 141 | 142 | ```html 143 | 148 | ``` 149 | 150 | 更具体的用法请查阅[实例](https://github.com/vuejs/vue-rx/blob/master/example/counter.html)。 151 | 152 | ### `v-stream`:从子组件流式发送自定义事件 153 | 154 | 跟流式 `DOM` 事件很相似,`v-stream` 也可以被用于组件,它会根据子组件触发的自定义事件创建 observables。运作方式跟 `v-on` 相似: 155 | 156 | ```html 157 |
158 | 159 | 160 | 161 | 162 | 163 |
164 | ``` 165 | 166 | ### 其它 API 方法 167 | 168 | #### `$watchAsObservable(expOrFn, [options])` 169 | 170 | 这是一个添加到实例的原型方法。你可以根据一个值的侦听器创建 observable。值会以 `{ newValue, oldValue }` 的格式触发: 171 | 172 | ```js 173 | import { pluck, map } from 'rxjs/operators'; 174 | 175 | const vm = new Vue({ 176 | data: { 177 | a: 1 178 | }, 179 | subscriptions() { 180 | // 用 Rx 操作符声明式地映射成另一个属性 181 | return { 182 | aPlusOne: this.$watchAsObservable('a').pipe( 183 | pluck('newValue'), 184 | map(a => a + 1) 185 | ) 186 | }; 187 | } 188 | }); 189 | 190 | // 或者产生副作用... 191 | vm.$watchAsObservable('a').subscribe( 192 | ({ newValue, oldValue }) => console.log('stream value', newValue, oldValue), 193 | err => console.error(err), 194 | () => console.log('complete') 195 | ); 196 | ``` 197 | 198 | 可选的 `options` 对象,接受的选项与 `vm.$watch` 一致。 199 | 200 | #### `$eventToObservable(event)` 201 | 202 | 转化 `vue.$on` (包括生命周期事件) 到 Observables。值会以 `{ name, msg }` 的格式触发: 203 | 204 | ```js 205 | import { interval } from 'rxjs'; 206 | import { take, takeUntil } from 'rxjs/operators'; 207 | 208 | const vm = new Vue({ 209 | created() { 210 | this.$eventToObservable('customEvent').subscribe(event => 211 | console.log(event.name, event.msg) 212 | ); 213 | } 214 | }); 215 | 216 | // `vm.$once` 的 `vue-rx` 版本 217 | this.$eventToObservable('customEvent').pipe(take(1)); 218 | 219 | // 另一种取消订阅的方法: 220 | let beforeDestroy$ = this.$eventToObservable('hook:beforeDestroy').pipe( 221 | take(1) 222 | ); 223 | 224 | interval(500).pipe(takeUntil(beforeDestroy$)); 225 | ``` 226 | 227 | #### `$subscribeTo(observable, next, error, complete)` 228 | 229 | 这是一个添加到实例的原型方法。你可以用它订阅一个 observable,但是得让 VueRx 管理它的 dispose/unsubscribe。 230 | 231 | ```js 232 | import { interval } from 'rxjs'; 233 | 234 | const vm = new Vue({ 235 | mounted() { 236 | this.$subscribeTo(interval(1000), function(count) { 237 | console.log(count); 238 | }); 239 | } 240 | }); 241 | ``` 242 | 243 | #### `$fromDOMEvent(selector, event)` 244 | 245 | 这是一个添加到实例的原型方法。可以用它根据实例内部元素的 DOM 事件创建 observable。与 `Rx.Observable.fromEvent` 类似,甚至在 DOM 渲染前,在 `subscriptions` 函数中使用都是有用的。 246 | 247 | `selector` 用来查找组件根元素的后代节点,如果你想监听根元素,传入 `null` 作为第一个参数。 248 | 249 | ```js 250 | import { pluck } from 'rxjs/operators'; 251 | 252 | const vm = new Vue({ 253 | subscriptions() { 254 | return { 255 | inputValue: this.$fromDOMEvent('input', 'keyup').pipe( 256 | pluck('target', 'value') 257 | ) 258 | }; 259 | } 260 | }); 261 | ``` 262 | 263 | #### `$createObservableMethod(methodName)` 264 | 265 | 转化函数调用为输出调用参数的 observable 队列。 266 | 267 | 这是一个添加到实例的原型方法。用来根据函数名创建一个共享的,热的 observable。这个函数会被赋值到 vm 方法上去。 268 | 269 | ```html 270 | 271 | ``` 272 | 273 | ```js 274 | const vm = new Vue({ 275 | subscriptions() { 276 | return { 277 | // 需要 `share` 操作符 278 | formData: this.$createObservableMethod('submitHandler') 279 | }; 280 | } 281 | }); 282 | ``` 283 | 284 | 你可以使用 `observableMethods` 选项使代码更加声明式: 285 | 286 | ```js 287 | new Vue({ 288 | observableMethods: { 289 | submitHandler: 'submitHandler$' 290 | // 或者使用数组简写: ['submitHandler'] 291 | } 292 | }); 293 | ``` 294 | 295 | 上面代码会自动在实例上创建两个东西: 296 | 297 | 1. 一个是可以用 `v-on` 绑定到模板的 `submitHandler` 方法; 298 | 2. 一个是可以流式调用 `submitHandler` 的`submitHandler$` observable。 299 | 300 | [例子](https://github.com/vuejs/vue-rx/blob/master/example/counter-function.html) 301 | 302 | ### 注意事项 303 | 304 | 你不能使用 `watch` 选项去侦听订阅 (subscriptions),因为它在设置订阅之前就被处理完毕了。但是你可以在 `created` 钩子中使用 `$watch` 作为替代方案。 305 | 306 | ### 示例 307 | 308 | 到 `/examples` 目录查看一些简单示例。 309 | 310 | ### License 311 | 312 | [MIT](http://opensource.org/licenses/MIT) 313 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-rx [![Build Status](https://circleci.com/gh/vuejs/vue-rx/tree/master.svg?style=shield)](https://circleci.com/gh/vuejs/vue-rx/tree/master) 2 | 3 | English | [简体中文](README-CN.md) 4 | 5 | [RxJS v6+](https://github.com/ReactiveX/rxjs) integration for Vue.js. 6 | 7 | > **BREAKING CHANGES from 5.0** 8 | > - vue-rx v6 now only works with RxJS v6+ by default. If you want to keep using RxJS v5 style code, install `rxjs-compat`. 9 | 10 | ### Installation 11 | 12 | #### NPM + ES2015 13 | 14 | **`rxjs` is required as a peer dependency.** 15 | 16 | ``` bash 17 | npm install vue vue-rx rxjs --save 18 | ``` 19 | 20 | ``` js 21 | import Vue from 'vue' 22 | import VueRx from 'vue-rx' 23 | 24 | Vue.use(VueRx) 25 | ``` 26 | 27 | When bundling via webpack, `dist/vue-rx.esm.js` is used by default. It imports the minimal amount of Rx operators and ensures small bundle sizes. 28 | 29 | #### Global Script 30 | 31 | To use in a browser environment, use the UMD build `dist/vue-rx.js`. When in a browser environment, the UMD build assumes `window.rxjs` to be already present, so make sure to include `vue-rx.js` after Vue.js and RxJS. It also installs itself automatically if `window.Vue` is present. 32 | 33 | Example: 34 | 35 | ``` html 36 | 37 | 38 | 39 | ``` 40 | 41 | ### Usage 42 | 43 | ``` js 44 | // provide Rx observables with the `subscriptions` option 45 | new Vue({ 46 | el: '#app', 47 | subscriptions: { 48 | msg: messageObservable 49 | } 50 | }) 51 | ``` 52 | 53 | ``` html 54 | 55 |
{{ msg }}
56 | ``` 57 | 58 | The `subscriptions` options can also take a function so that you can return unique observables for each component instance: 59 | 60 | ``` js 61 | import { Observable } from 'rxjs' 62 | 63 | Vue.component('foo', { 64 | subscriptions: function () { 65 | return { 66 | msg: new Observable(...) 67 | } 68 | } 69 | }) 70 | ``` 71 | 72 | The observables are exposed as `vm.$observables`: 73 | 74 | ``` js 75 | const vm = new Vue({ 76 | subscriptions: { 77 | msg: messageObservable 78 | } 79 | }) 80 | 81 | vm.$observables.msg.subscribe(msg => console.log(msg)) 82 | ``` 83 | 84 | ### `v-stream`: Streaming DOM Events 85 | 86 | `vue-rx` provides the `v-stream` directive which allows you to stream DOM events to an Rx Subject. The syntax is similar to `v-on` where the directive argument is the event name, and the binding value is the target Rx Subject. 87 | 88 | ``` html 89 | 90 | ``` 91 | 92 | Note that you need to declare `plus$` as an instance of `rxjs.Subject` on the vm instance before the render happens, just like you need to declare data. You can do that right in the `subscriptions` function: 93 | 94 | ``` js 95 | import { Subject } from 'rxjs' 96 | import { map, startWith, scan } from 'rxjs/operators' 97 | 98 | new Vue({ 99 | subscriptions () { 100 | // declare the receiving Subjects 101 | this.plus$ = new Subject() 102 | // ...then create subscriptions using the Subjects as source stream. 103 | // the source stream emits in the format of `{ event: HTMLEvent, data?: any }` 104 | return { 105 | count: this.plus$.pipe( 106 | map(() => 1), 107 | startWith(0), 108 | scan((total, change) => total + change) 109 | ) 110 | } 111 | } 112 | }) 113 | ``` 114 | 115 | Or, use the `domStreams` convenience option: 116 | 117 | ``` js 118 | new Vue({ 119 | // requires `Rx` passed to Vue.use() to expose `Subject` 120 | domStreams: ['plus$'], 121 | subscriptions () { 122 | // use this.plus$ 123 | } 124 | }) 125 | ``` 126 | 127 | Finally, you can pass additional data to the stream using the alternative syntax: 128 | 129 | ``` html 130 | 131 | ``` 132 | 133 | This is useful when you need to pass along temporary variables like `v-for` iterators. You can get the data by simply plucking it from the source stream: 134 | 135 | ``` js 136 | const plusData$ = this.plus$.pipe(pluck('data')) 137 | ``` 138 | 139 | Starting in 3.1 you can also pass along extra options (passed along to native `addEventListener` as the 3rd argument): 140 | 141 | ``` html 142 | 147 | ``` 148 | 149 | See [example](https://github.com/vuejs/vue-rx/blob/master/example/counter.html) for actual usage. 150 | 151 | ### `v-stream`: Streaming Custom Events from Child Components 152 | 153 | Similar to streaming `DOM` events, `v-stream` can be used on components as well and will create observables from custom events emitted by the child component. It works similar to `v-on`: 154 | 155 | ```html 156 |
157 | 158 | 159 | 160 | 161 | 162 |
163 | ``` 164 | 165 | ### Other API Methods 166 | 167 | #### `$watchAsObservable(expOrFn, [options])` 168 | 169 | This is a prototype method added to instances. You can use it to create an observable from a value watcher. The emitted value is in the format of `{ newValue, oldValue }`: 170 | 171 | ``` js 172 | import { pluck, map } from 'rxjs/operators' 173 | 174 | const vm = new Vue({ 175 | data: { 176 | a: 1 177 | }, 178 | subscriptions () { 179 | // declaratively map to another property with Rx operators 180 | return { 181 | aPlusOne: this.$watchAsObservable('a').pipe( 182 | pluck('newValue'), 183 | map(a => a + 1) 184 | ) 185 | } 186 | } 187 | }) 188 | 189 | // or produce side effects... 190 | vm.$watchAsObservable('a') 191 | .subscribe( 192 | ({ newValue, oldValue }) => console.log('stream value', newValue, oldValue), 193 | err => console.error(err), 194 | () => console.log('complete') 195 | ) 196 | ``` 197 | 198 | The optional `options` object accepts the same options as `vm.$watch`. 199 | 200 | #### `$eventToObservable(event)` 201 | 202 | Convert vue.$on (including lifecycle events) to Observables. The emitted value is in the format of `{ name, msg }`: 203 | 204 | ``` js 205 | import { interval } from 'rxjs' 206 | import { take, takeUntil } from 'rxjs/operators' 207 | 208 | const vm = new Vue({ 209 | created () { 210 | this.$eventToObservable('customEvent') 211 | .subscribe((event) => console.log(event.name,event.msg)) 212 | } 213 | }) 214 | 215 | // vm.$once vue-rx version 216 | this.$eventToObservable('customEvent').pipe( 217 | take(1) 218 | ) 219 | 220 | // Another way to auto unsub: 221 | let beforeDestroy$ = this.$eventToObservable('hook:beforeDestroy').pipe(take(1)) 222 | 223 | interval(500) 224 | .pipe(takeUntil(beforeDestroy$)) 225 | ``` 226 | 227 | #### `$subscribeTo(observable, next, error, complete)` 228 | 229 | This is a prototype method added to instances. You can use it to subscribe to an observable, but let VueRx manage the dispose/unsubscribe. 230 | 231 | ``` js 232 | import { interval } from 'rxjs' 233 | 234 | const vm = new Vue({ 235 | mounted () { 236 | this.$subscribeTo(interval(1000), function (count) { 237 | console.log(count) 238 | }) 239 | } 240 | }) 241 | ``` 242 | 243 | #### `$fromDOMEvent(selector, event)` 244 | 245 | This is a prototype method added to instances. Use it to create an observable from DOM events within the instances' element. This is similar to `Rx.Observable.fromEvent`, but usable inside the `subscriptions` function even before the DOM is actually rendered. 246 | 247 | `selector` is for finding descendant nodes under the component root element, if you want to listen to events from root element itself, pass `null` as first argument. 248 | 249 | ``` js 250 | import { pluck } from 'rxjs/operators' 251 | 252 | const vm = new Vue({ 253 | subscriptions () { 254 | return { 255 | inputValue: this.$fromDOMEvent('input', 'keyup').pipe( 256 | pluck('target', 'value') 257 | ) 258 | } 259 | } 260 | }) 261 | ``` 262 | 263 | #### `$createObservableMethod(methodName)` 264 | 265 | Convert function calls to observable sequence which emits the call arguments. 266 | 267 | This is a prototype method added to instances. Use it to create a shared hot observable from a function name. The function will be assigned as a vm method. 268 | 269 | ```html 270 | 271 | ``` 272 | ``` js 273 | const vm = new Vue({ 274 | subscriptions () { 275 | return { 276 | // requires `share` operator 277 | formData: this.$createObservableMethod('submitHandler') 278 | } 279 | } 280 | }) 281 | ``` 282 | 283 | You can use the `observableMethods` option to make it more declarative: 284 | 285 | ``` js 286 | new Vue({ 287 | observableMethods: { 288 | submitHandler: 'submitHandler$' 289 | // or with Array shothand: ['submitHandler'] 290 | } 291 | }) 292 | ``` 293 | 294 | The above will automatically create two things on the instance: 295 | 296 | 1. A `submitHandler` method which can be bound to in template with `v-on`; 297 | 2. A `submitHandler$` observable which will be the stream emitting calls to `submitHandler`. 298 | 299 | [example](https://github.com/vuejs/vue-rx/blob/master/example/counter-function.html) 300 | 301 | ### Caveats 302 | 303 | You cannot use the `watch` option to watch subscriptions, because it is processed before the subscriptions are set up. But you can use `$watch` in the `created` hook instead. 304 | 305 | ### Example 306 | 307 | See `/examples` for some simple examples. 308 | 309 | ### License 310 | 311 | [MIT](http://opensource.org/licenses/MIT) 312 | -------------------------------------------------------------------------------- /example/counter-function.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |
{{ count }}
9 | 10 | 11 | 12 | 13 | 14 | 15 |
{{ $data }}
16 | 17 |
18 | 19 | 52 | -------------------------------------------------------------------------------- /example/counter-simple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 |
{{ count }}
7 | 8 | 9 |
10 | 11 | 34 | -------------------------------------------------------------------------------- /example/counter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |
{{ count }}
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 21 | 22 |
{{ $data }}
23 | 24 | 25 |
26 | 27 | 70 | -------------------------------------------------------------------------------- /example/wiki-search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Type to search Wikipedia

6 | 7 |
8 | 9 |
10 |

{{ results.term }}

11 | 17 |

18 | No matches found. 19 |

20 |
21 |
22 | 23 | 65 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-rx", 3 | "version": "6.3.0", 4 | "description": "RxJS bindings for Vue", 5 | "main": "dist/vue-rx.js", 6 | "module": "dist/vue-rx.esm.js", 7 | "sideEffects": false, 8 | "files": [ 9 | "dist", 10 | "types/*.d.ts" 11 | ], 12 | "typings": "types/index.d.ts", 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/vuejs/vue-rx.git" 16 | }, 17 | "keywords": [ 18 | "vue", 19 | "rx", 20 | "rxjs" 21 | ], 22 | "author": "Evan You", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/vuejs/vue-rx/issues" 26 | }, 27 | "homepage": "https://github.com/vuejs/vue-rx#readme", 28 | "scripts": { 29 | "dev": "rollup -c rollup.config.js -w", 30 | "build": "rollup -c rollup.config.js", 31 | "lint": "eslint src test example", 32 | "test": "npm run test:unit && npm run test:types", 33 | "test:unit": "jest", 34 | "test:types": "tsc -p types/test", 35 | "dev:test": "jest --watch", 36 | "prebuild": "npm run lint", 37 | "pretest": "npm run build", 38 | "prepublishOnly": "npm run build" 39 | }, 40 | "devDependencies": { 41 | "buble": "^0.19.3", 42 | "eslint": "^4.19.1", 43 | "eslint-plugin-vue-libs": "^3.0.0", 44 | "jest": "^23.1.0", 45 | "rollup": "^0.59.4", 46 | "rollup-plugin-alias": "^1.4.0", 47 | "rollup-plugin-buble": "^0.19.2", 48 | "rollup-watch": "^4.3.1", 49 | "rxjs": "^7.5.5", 50 | "typescript": "^4.6.3", 51 | "vue": "^2.5.16" 52 | }, 53 | "peerDependencies": { 54 | "rxjs": "^6.0.0 || ^7.0.0" 55 | }, 56 | "eslintConfig": { 57 | "root": true, 58 | "extends": [ 59 | "plugin:vue-libs/recommended" 60 | ] 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | const alias = require('rollup-plugin-alias') 2 | const buble = require('rollup-plugin-buble') 3 | 4 | module.exports = [ 5 | { 6 | input: 'src/index.js', 7 | output: { 8 | file: 'dist/vue-rx.esm.js', 9 | format: 'es' 10 | }, 11 | plugins: [buble()], 12 | external: [ 13 | 'rxjs', 14 | 'rxjs/operators' 15 | ] 16 | }, 17 | { 18 | input: 'src/index.js', 19 | output: { 20 | file: 'dist/vue-rx.js', 21 | format: 'umd', 22 | name: 'VueRx' 23 | }, 24 | plugins: [ 25 | buble(), 26 | alias({ 27 | 'rxjs/operators': 'src/umd-aliases/operators.js', 28 | 'rxjs': 'src/umd-aliases/rxjs.js' 29 | }) 30 | ] 31 | } 32 | ] 33 | -------------------------------------------------------------------------------- /src/directives/stream.js: -------------------------------------------------------------------------------- 1 | import { isObserver, warn, getKey } from '../util' 2 | import { fromEvent } from 'rxjs' 3 | 4 | export default { 5 | // Example ./example/counter_dir.html 6 | bind (el, binding, vnode) { 7 | let handle = binding.value 8 | const event = binding.arg 9 | const streamName = binding.expression 10 | const modifiers = binding.modifiers 11 | 12 | if (isObserver(handle)) { 13 | handle = { subject: handle } 14 | } else if (!handle || !isObserver(handle.subject)) { 15 | warn( 16 | 'Invalid Subject found in directive with key "' + streamName + '".' + 17 | streamName + ' should be an instance of Subject or have the ' + 18 | 'type { subject: Subject, data: any }.', 19 | vnode.context 20 | ) 21 | return 22 | } 23 | 24 | const modifiersFuncs = { 25 | stop: e => e.stopPropagation(), 26 | prevent: e => e.preventDefault() 27 | } 28 | 29 | var modifiersExists = Object.keys(modifiersFuncs).filter( 30 | key => modifiers[key] 31 | ) 32 | 33 | const subject = handle.subject 34 | const next = (subject.next || subject.onNext).bind(subject) 35 | 36 | if (!modifiers.native && vnode.componentInstance) { 37 | handle.subscription = vnode.componentInstance.$eventToObservable(event).subscribe(e => { 38 | modifiersExists.forEach(mod => modifiersFuncs[mod](e)) 39 | next({ 40 | event: e, 41 | data: handle.data 42 | }) 43 | }) 44 | } else { 45 | const fromEventArgs = handle.options ? [el, event, handle.options] : [el, event] 46 | handle.subscription = fromEvent(...fromEventArgs).subscribe(e => { 47 | modifiersExists.forEach(mod => modifiersFuncs[mod](e)) 48 | next({ 49 | event: e, 50 | data: handle.data 51 | }) 52 | }) 53 | } 54 | 55 | // store handle on element with a unique key for identifying 56 | // multiple v-stream directives on the same node 57 | ;(el._rxHandles || (el._rxHandles = {}))[getKey(binding)] = handle 58 | }, 59 | 60 | update (el, binding) { 61 | const handle = binding.value 62 | const _handle = el._rxHandles && el._rxHandles[getKey(binding)] 63 | if (_handle && handle && isObserver(handle.subject)) { 64 | _handle.data = handle.data 65 | } 66 | }, 67 | 68 | unbind (el, binding) { 69 | const key = getKey(binding) 70 | const handle = el._rxHandles && el._rxHandles[key] 71 | if (handle) { 72 | if (handle.subscription) { 73 | handle.subscription.unsubscribe() 74 | } 75 | el._rxHandles[key] = null 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | /* global Vue */ 2 | 3 | import { install } from './util' 4 | import rxMixin from './mixin' 5 | import streamDirective from './directives/stream' 6 | import watchAsObservable from './methods/watchAsObservable' 7 | import fromDOMEvent from './methods/fromDOMEvent' 8 | import subscribeTo from './methods/subscribeTo' 9 | import eventToObservable from './methods/eventToObservable' 10 | import createObservableMethod from './methods/createObservableMethod' 11 | 12 | export default function VueRx (Vue) { 13 | install(Vue) 14 | Vue.mixin(rxMixin) 15 | Vue.directive('stream', streamDirective) 16 | Vue.prototype.$watchAsObservable = watchAsObservable 17 | Vue.prototype.$fromDOMEvent = fromDOMEvent 18 | Vue.prototype.$subscribeTo = subscribeTo 19 | Vue.prototype.$eventToObservable = eventToObservable 20 | Vue.prototype.$createObservableMethod = createObservableMethod 21 | Vue.config.optionMergeStrategies.subscriptions = Vue.config.optionMergeStrategies.data 22 | } 23 | 24 | // auto install 25 | if (typeof Vue !== 'undefined') { 26 | Vue.use(VueRx) 27 | } 28 | -------------------------------------------------------------------------------- /src/methods/createObservableMethod.js: -------------------------------------------------------------------------------- 1 | import { share } from 'rxjs/operators' 2 | import { Observable } from 'rxjs' 3 | import { warn } from '../util' 4 | 5 | /** 6 | * @name Vue.prototype.$createObservableMethod 7 | * @description Creates an observable from a given function name. 8 | * @param {String} methodName Function name 9 | * @param {Boolean} [passContext] Append the call context at the end of emit data? 10 | * @return {Observable} Hot stream 11 | */ 12 | export default function createObservableMethod (methodName, passContext) { 13 | const vm = this 14 | 15 | if (vm[methodName] !== undefined) { 16 | warn( 17 | 'Potential bug: ' + 18 | `Method ${methodName} already defined on vm and has been overwritten by $createObservableMethod.` + 19 | String(vm[methodName]), 20 | vm 21 | ) 22 | } 23 | 24 | const creator = function (observer) { 25 | vm[methodName] = function () { 26 | const args = Array.from(arguments) 27 | if (passContext) { 28 | args.push(this) 29 | observer.next(args) 30 | } else { 31 | if (args.length <= 1) { 32 | observer.next(args[0]) 33 | } else { 34 | observer.next(args) 35 | } 36 | } 37 | } 38 | return function () { 39 | delete vm[methodName] 40 | } 41 | } 42 | 43 | // Must be a hot stream otherwise function context may overwrite over and over again 44 | return new Observable(creator).pipe(share()) 45 | } 46 | -------------------------------------------------------------------------------- /src/methods/eventToObservable.js: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs' 2 | 3 | /** 4 | * @see {@link https://vuejs.org/v2/api/#vm-on} 5 | * @param {String||Array} evtName Event name 6 | * @return {Observable} Event stream 7 | */ 8 | export default function eventToObservable (evtName) { 9 | const vm = this 10 | const evtNames = Array.isArray(evtName) ? evtName : [evtName] 11 | const obs$ = new Observable(observer => { 12 | const eventPairs = evtNames.map(name => { 13 | const callback = msg => observer.next({ name, msg }) 14 | vm.$on(name, callback) 15 | return { name, callback } 16 | }) 17 | return () => { 18 | // Only remove the specific callback 19 | eventPairs.forEach(pair => vm.$off(pair.name, pair.callback)) 20 | } 21 | }) 22 | 23 | return obs$ 24 | } 25 | -------------------------------------------------------------------------------- /src/methods/fromDOMEvent.js: -------------------------------------------------------------------------------- 1 | import { Observable, Subscription, NEVER } from 'rxjs' 2 | 3 | export default function fromDOMEvent (selector, event) { 4 | if (typeof window === 'undefined') { 5 | // TODO(benlesh): I'm not sure if this is really what you want here, 6 | // but it's equivalent to what you were doing. You might want EMPTY 7 | return NEVER 8 | } 9 | 10 | const vm = this 11 | const doc = document.documentElement 12 | const obs$ = new Observable(observer => { 13 | function listener (e) { 14 | if (!vm.$el) return 15 | if (selector === null && vm.$el === e.target) return observer.next(e) 16 | var els = vm.$el.querySelectorAll(selector) 17 | var el = e.target 18 | for (var i = 0, len = els.length; i < len; i++) { 19 | if (els[i] === el) return observer.next(e) 20 | } 21 | } 22 | doc.addEventListener(event, listener) 23 | // Returns function which disconnects the $watch expression 24 | return new Subscription(() => { 25 | doc.removeEventListener(event, listener) 26 | }) 27 | }) 28 | 29 | return obs$ 30 | } 31 | -------------------------------------------------------------------------------- /src/methods/subscribeTo.js: -------------------------------------------------------------------------------- 1 | import { Subscription } from 'rxjs' 2 | 3 | export default function subscribeTo (observable, ...subscribeArgs) { 4 | const subscription = observable.subscribe(...subscribeArgs) 5 | ;(this._subscription || (this._subscription = new Subscription())).add(subscription) 6 | return subscription 7 | } 8 | -------------------------------------------------------------------------------- /src/methods/watchAsObservable.js: -------------------------------------------------------------------------------- 1 | import { Observable, Subscription } from 'rxjs' 2 | 3 | export default function watchAsObservable (expOrFn, options) { 4 | const vm = this 5 | const obs$ = new Observable(observer => { 6 | let _unwatch 7 | const watch = () => { 8 | _unwatch = vm.$watch(expOrFn, (newValue, oldValue) => { 9 | observer.next({ oldValue: oldValue, newValue: newValue }) 10 | }, options) 11 | } 12 | 13 | // if $watchAsObservable is called inside the subscriptions function, 14 | // because data hasn't been observed yet, the watcher will not work. 15 | // in that case, wait until created hook to watch. 16 | if (vm._data) { 17 | watch() 18 | } else { 19 | vm.$once('hook:created', watch) 20 | } 21 | 22 | // Returns function which disconnects the $watch expression 23 | return new Subscription(() => { 24 | _unwatch && _unwatch() 25 | }) 26 | }) 27 | 28 | return obs$ 29 | } 30 | -------------------------------------------------------------------------------- /src/mixin.js: -------------------------------------------------------------------------------- 1 | import { defineReactive, isObservable, warn } from './util' 2 | import { Subject, Subscription } from 'rxjs' 3 | 4 | export default { 5 | created () { 6 | const vm = this 7 | const domStreams = vm.$options.domStreams 8 | if (domStreams) { 9 | domStreams.forEach(key => { 10 | vm[key] = new Subject() 11 | }) 12 | } 13 | 14 | const observableMethods = vm.$options.observableMethods 15 | if (observableMethods) { 16 | if (Array.isArray(observableMethods)) { 17 | observableMethods.forEach(methodName => { 18 | vm[ methodName + '$' ] = vm.$createObservableMethod(methodName) 19 | }) 20 | } else { 21 | Object.keys(observableMethods).forEach(methodName => { 22 | vm[observableMethods[methodName]] = vm.$createObservableMethod(methodName) 23 | }) 24 | } 25 | } 26 | 27 | let obs = vm.$options.subscriptions 28 | if (typeof obs === 'function') { 29 | obs = obs.call(vm) 30 | } 31 | if (obs) { 32 | vm.$observables = {} 33 | vm._subscription = new Subscription() 34 | Object.keys(obs).forEach(key => { 35 | defineReactive(vm, key, undefined) 36 | const ob = vm.$observables[key] = obs[key] 37 | if (!isObservable(ob)) { 38 | warn( 39 | 'Invalid Observable found in subscriptions option with key "' + key + '".', 40 | vm 41 | ) 42 | return 43 | } 44 | vm._subscription.add(obs[key].subscribe(value => { 45 | vm[key] = value 46 | }, (error) => { throw error })) 47 | }) 48 | } 49 | }, 50 | serverPrefetch () { 51 | if (this._subscription) { 52 | this._subscription.unsubscribe() 53 | } 54 | }, 55 | beforeDestroy () { 56 | if (this._subscription) { 57 | this._subscription.unsubscribe() 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/umd-aliases/operators.js: -------------------------------------------------------------------------------- 1 | const operators = typeof require !== 'undefined' 2 | ? require('rxjs/operators') 3 | : typeof window !== 'undefined' && window.rxjs 4 | ? window.rxjs.operators 5 | : {} 6 | 7 | const { share } = operators 8 | 9 | export { share } 10 | -------------------------------------------------------------------------------- /src/umd-aliases/rxjs.js: -------------------------------------------------------------------------------- 1 | const rxjs = typeof require !== 'undefined' 2 | ? require('rxjs') 3 | : typeof window !== 'undefined' 4 | ? window.rxjs 5 | : null 6 | 7 | if (!rxjs) { 8 | throw new Error(`[vue-rx]: RxJS is not found.`) 9 | } 10 | 11 | const { 12 | Observable, 13 | Subject, 14 | Subscription, 15 | fromEvent, 16 | NEVER 17 | } = rxjs 18 | 19 | export { 20 | Observable, 21 | Subject, 22 | Subscription, 23 | fromEvent, 24 | NEVER 25 | } 26 | -------------------------------------------------------------------------------- /src/util.js: -------------------------------------------------------------------------------- 1 | export let Vue 2 | export let warn = function () {} 3 | 4 | // NOTE(benlesh): the value of this method seems dubious now, but I'm not sure 5 | // if this is a Vue convention I'm just not familiar with. Perhaps it would 6 | // be better to just import and use Vue directly? 7 | export function install (_Vue) { 8 | Vue = _Vue 9 | warn = Vue.util.warn || warn 10 | } 11 | 12 | // TODO(benlesh): as time passes, this should be updated to use RxJS 6.1's 13 | // `isObservable` method. But wait until you're ready to drop support for Rx 5 14 | export function isObservable (ob) { 15 | return ob && typeof ob.subscribe === 'function' 16 | } 17 | 18 | export function isObserver (subject) { 19 | return subject && ( 20 | typeof subject.next === 'function' 21 | ) 22 | } 23 | 24 | export function defineReactive (vm, key, val) { 25 | if (key in vm) { 26 | vm[key] = val 27 | } else { 28 | Vue.util.defineReactive(vm, key, val) 29 | } 30 | } 31 | 32 | export function getKey (binding) { 33 | return [binding.arg].concat(Object.keys(binding.modifiers)).join(':') 34 | } 35 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | /* eslint-env jest */ 2 | 3 | 'use strict' 4 | 5 | const Vue = require('vue/dist/vue.js') 6 | const VueRx = require('../dist/vue-rx.js') 7 | 8 | // library 9 | const { Observable } = require('rxjs') 10 | const { map, scan, pluck, merge, tap, filter, startWith } = require('rxjs/operators') 11 | 12 | Vue.config.productionTip = false 13 | Vue.use(VueRx) 14 | 15 | const nextTick = Vue.nextTick 16 | 17 | function mock () { 18 | let observer 19 | const observable = new Observable(_observer => { 20 | observer = _observer 21 | }) 22 | return { 23 | ob: observable, 24 | next: val => observer.next(val) 25 | } 26 | } 27 | 28 | function trigger (target, event) { 29 | var e = document.createEvent('HTMLEvents') 30 | e.initEvent(event, true, true) 31 | target.dispatchEvent(e) 32 | } 33 | 34 | function click (target) { 35 | trigger(target, 'click') 36 | } 37 | 38 | test('expose $observables', () => { 39 | const { ob, next } = mock() 40 | 41 | const vm = new Vue({ 42 | subscriptions: { 43 | hello: ob.pipe( 44 | startWith(0), 45 | ) 46 | } 47 | }) 48 | 49 | const results = [] 50 | vm.$observables.hello.subscribe(val => { 51 | results.push(val) 52 | }) 53 | 54 | next(1) 55 | next(2) 56 | next(3) 57 | expect(results).toEqual([0, 1, 2, 3]) 58 | }) 59 | 60 | test('bind subscriptions to render', done => { 61 | const { ob, next } = mock() 62 | 63 | const vm = new Vue({ 64 | subscriptions: { 65 | hello: ob.pipe(startWith('foo')) 66 | }, 67 | render (h) { 68 | return h('div', this.hello) 69 | } 70 | }).$mount() 71 | 72 | expect(vm.$el.textContent).toBe('foo') 73 | 74 | next('bar') 75 | nextTick(() => { 76 | expect(vm.$el.textContent).toBe('bar') 77 | done() 78 | }) 79 | }) 80 | 81 | test('subscriptions() has access to component state', () => { 82 | const { ob } = mock() 83 | 84 | const vm = new Vue({ 85 | data: { 86 | foo: 'FOO' 87 | }, 88 | props: ['bar'], 89 | propsData: { 90 | bar: 'BAR' 91 | }, 92 | subscriptions () { 93 | return { 94 | hello: ob.pipe(startWith(this.foo + this.bar)) 95 | } 96 | }, 97 | render (h) { 98 | return h('div', this.hello) 99 | } 100 | }).$mount() 101 | 102 | expect(vm.$el.textContent).toBe('FOOBAR') 103 | }) 104 | 105 | test('subscriptions() can throw error properly', done => { 106 | const { ob, next } = mock() 107 | let thrownError 108 | 109 | const vm = new Vue({ 110 | subscriptions () { 111 | return { 112 | num: ob.pipe( 113 | startWith(1), 114 | map(n => n.toFixed()), 115 | tap({ 116 | error (err) { 117 | thrownError = err 118 | } 119 | }) 120 | ) 121 | } 122 | }, 123 | render (h) { 124 | return h('div', this.num) 125 | } 126 | }).$mount() 127 | 128 | nextTick(() => { 129 | next(null) 130 | 131 | nextTick(() => { 132 | expect(thrownError).toBeDefined() 133 | expect(vm.$el.textContent).toBe('1') 134 | done() 135 | }) 136 | }) 137 | }) 138 | 139 | test('v-stream directive (basic)', done => { 140 | const vm = new Vue({ 141 | template: ` 142 |
143 | {{ count }} 144 | 145 |
146 | `, 147 | domStreams: ['click$'], 148 | subscriptions () { 149 | return { 150 | count: this.click$.pipe( 151 | map(() => 1), 152 | startWith(0), 153 | scan((total, change) => total + change), 154 | ) 155 | } 156 | } 157 | }).$mount() 158 | 159 | expect(vm.$el.querySelector('span').textContent).toBe('0') 160 | click(vm.$el.querySelector('button')) 161 | nextTick(() => { 162 | expect(vm.$el.querySelector('span').textContent).toBe('1') 163 | done() 164 | }) 165 | }) 166 | 167 | test('v-stream directive (with .native modify)', done => { 168 | const vm = new Vue({ 169 | template: ` 170 |
171 | {{ count }} 172 | + 173 | - 174 |
175 | `, 176 | components: { 177 | myButton: { 178 | template: '' 179 | } 180 | }, 181 | domStreams: ['clickNative$', 'click$'], 182 | subscriptions () { 183 | return { 184 | count: this.clickNative$.pipe( 185 | merge(this.click$), 186 | filter(e => e.event.target && e.event.target.id === 'btn-native'), 187 | map(() => 1), 188 | startWith(0), 189 | scan((total, change) => total + change), 190 | ) 191 | } 192 | } 193 | }).$mount() 194 | 195 | expect(vm.$el.querySelector('span').textContent).toBe('0') 196 | click(vm.$el.querySelector('#btn')) 197 | click(vm.$el.querySelector('#btn')) 198 | click(vm.$el.querySelector('#btn-native')) 199 | nextTick(() => { 200 | expect(vm.$el.querySelector('span').textContent).toBe('1') 201 | done() 202 | }) 203 | }) 204 | 205 | test('v-stream directive (with .stop, .prevent modify)', done => { 206 | const vm = new Vue({ 207 | template: ` 208 |
209 | {{stoped}} {{prevented}} 210 | 211 | 212 |
213 | `, 214 | domStreams: ['clickStop$', 'clickPrevent$'], 215 | subscriptions () { 216 | return { 217 | stoped: this.clickStop$.pipe( 218 | map(x => x.event.cancelBubble), 219 | ), 220 | prevented: this.clickPrevent$.pipe( 221 | map(x => x.event.defaultPrevented), 222 | ) 223 | } 224 | } 225 | }).$mount() 226 | 227 | click(vm.$el.querySelector('#btn-stop')) 228 | click(vm.$el.querySelector('#btn-prevent')) 229 | nextTick(() => { 230 | expect(vm.$el.querySelector('span').textContent).toBe('true true') 231 | done() 232 | }) 233 | }) 234 | 235 | test('v-stream directive (with data)', done => { 236 | const customButton = { 237 | name: 'custom-button', 238 | template: `` 239 | } 240 | 241 | const vm = new Vue({ 242 | components: { 243 | customButton 244 | }, 245 | data: { 246 | delta: -1 247 | }, 248 | template: ` 249 |
250 | {{ count }} 251 | 252 | + 253 |
254 | `, 255 | domStreams: ['click$'], 256 | subscriptions () { 257 | return { 258 | count: this.click$.pipe( 259 | pluck('data'), 260 | startWith(0), 261 | scan((total, change) => total + change), 262 | ) 263 | } 264 | } 265 | }).$mount() 266 | 267 | expect(vm.$el.querySelector('span').textContent).toBe('0') 268 | click(vm.$el.querySelector('#custom-button')) 269 | nextTick(() => { 270 | expect(vm.$el.querySelector('span').textContent).toBe('-1') 271 | vm.delta = 1 272 | nextTick(() => { 273 | click(vm.$el.querySelector('#native-button')) 274 | nextTick(() => { 275 | expect(vm.$el.querySelector('span').textContent).toBe('0') 276 | done() 277 | }) 278 | }) 279 | }) 280 | }) 281 | 282 | test('v-stream directive (multiple bindings on same node)', done => { 283 | const vm = new Vue({ 284 | template: ` 285 |
286 | {{ count }} 287 | 290 |
291 | `, 292 | domStreams: ['plus$'], 293 | subscriptions () { 294 | return { 295 | count: this.plus$.pipe( 296 | pluck('data'), 297 | startWith(0), 298 | scan((total, change) => total + change), 299 | ) 300 | } 301 | } 302 | }).$mount() 303 | 304 | expect(vm.$el.querySelector('span').textContent).toBe('0') 305 | click(vm.$el.querySelector('button')) 306 | nextTick(() => { 307 | expect(vm.$el.querySelector('span').textContent).toBe('1') 308 | trigger(vm.$el.querySelector('button'), 'keyup') 309 | nextTick(() => { 310 | expect(vm.$el.querySelector('span').textContent).toBe('0') 311 | done() 312 | }) 313 | }) 314 | }) 315 | 316 | test('$fromDOMEvent()', done => { 317 | const vm = new Vue({ 318 | template: ` 319 |
320 | {{ count }} 321 | 322 |
323 | `, 324 | subscriptions () { 325 | const click$ = this.$fromDOMEvent('button', 'click') 326 | return { 327 | count: click$.pipe( 328 | map(() => 1), 329 | startWith(0), 330 | scan((total, change) => total + change), 331 | ) 332 | } 333 | } 334 | }).$mount() 335 | 336 | document.body.appendChild(vm.$el) 337 | expect(vm.$el.querySelector('span').textContent).toBe('0') 338 | click(vm.$el.querySelector('button')) 339 | nextTick(() => { 340 | expect(vm.$el.querySelector('span').textContent).toBe('1') 341 | done() 342 | }) 343 | }) 344 | 345 | test('$watchAsObservable()', done => { 346 | const vm = new Vue({ 347 | data: { 348 | count: 0 349 | } 350 | }) 351 | 352 | const results = [] 353 | vm.$watchAsObservable('count').subscribe(change => { 354 | results.push(change) 355 | }) 356 | 357 | vm.count++ 358 | nextTick(() => { 359 | expect(results).toEqual([{ newValue: 1, oldValue: 0 }]) 360 | vm.count++ 361 | nextTick(() => { 362 | expect(results).toEqual([ 363 | { newValue: 1, oldValue: 0 }, 364 | { newValue: 2, oldValue: 1 } 365 | ]) 366 | done() 367 | }) 368 | }) 369 | }) 370 | 371 | test('$subscribeTo()', () => { 372 | const { ob, next } = mock() 373 | const results = [] 374 | const vm = new Vue({ 375 | created () { 376 | this.$subscribeTo(ob, count => { 377 | results.push(count) 378 | }) 379 | } 380 | }) 381 | 382 | next(1) 383 | expect(results).toEqual([1]) 384 | 385 | vm.$destroy() 386 | next(2) 387 | expect(results).toEqual([1]) // should not trigger anymore 388 | }) 389 | 390 | test('$eventToObservable()', done => { 391 | let calls = 0 392 | const vm = new Vue({ 393 | created () { 394 | this.$eventToObservable('ping') 395 | .subscribe(function (event) { 396 | expect(event.name).toEqual('ping') 397 | expect(event.msg).toEqual('ping message') 398 | calls++ 399 | }) 400 | } 401 | }) 402 | vm.$emit('ping', 'ping message') 403 | 404 | nextTick(() => { 405 | vm.$destroy() 406 | // Should not emit 407 | vm.$emit('pong', 'pong message') 408 | expect(calls).toEqual(1) 409 | done() 410 | }) 411 | }) 412 | 413 | test('$eventToObservable() with lifecycle hooks', done => { 414 | const vm = new Vue({ 415 | created () { 416 | this.$eventToObservable('hook:beforeDestroy') 417 | .subscribe(() => { 418 | done() 419 | }) 420 | } 421 | }) 422 | nextTick(() => { 423 | vm.$destroy() 424 | }) 425 | }) 426 | 427 | test('$createObservableMethod() with no context', done => { 428 | const vm = new Vue({ 429 | created () { 430 | this.$createObservableMethod('add') 431 | .subscribe(function (param) { 432 | expect(param).toEqual('hola') 433 | done() 434 | }) 435 | } 436 | }) 437 | nextTick(() => { 438 | vm.add('hola') 439 | }) 440 | }) 441 | 442 | test('$createObservableMethod() with muli params & context', done => { 443 | const vm = new Vue({ 444 | created () { 445 | this.$createObservableMethod('add', true) 446 | .subscribe(function (param) { 447 | expect(param[0]).toEqual('hola') 448 | expect(param[1]).toEqual('mundo') 449 | expect(param[2]).toEqual(vm) 450 | done() 451 | }) 452 | } 453 | }) 454 | nextTick(() => { 455 | vm.add('hola', 'mundo') 456 | }) 457 | }) 458 | 459 | test('observableMethods mixin', done => { 460 | const vm = new Vue({ 461 | observableMethods: ['add'], 462 | created () { 463 | this.add$ 464 | .subscribe(function (param) { 465 | expect(param[0]).toEqual('Qué') 466 | expect(param[1]).toEqual('tal') 467 | done() 468 | }) 469 | } 470 | }) 471 | nextTick(() => { 472 | vm.add('Qué', 'tal') 473 | }) 474 | }) 475 | 476 | test('observableMethods mixin', done => { 477 | const vm = new Vue({ 478 | observableMethods: { 'add': 'plus$' }, 479 | created () { 480 | this.plus$ 481 | .subscribe(function (param) { 482 | expect(param[0]).toEqual('Qué') 483 | expect(param[1]).toEqual('tal') 484 | done() 485 | }) 486 | } 487 | }) 488 | nextTick(() => { 489 | vm.add('Qué', 'tal') 490 | }) 491 | }) 492 | -------------------------------------------------------------------------------- /types/index.d.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import { WatchOptions } from 'vue' 3 | import { Observable, PartialObserver } from 'rxjs' 4 | 5 | export type Observables = Record> 6 | 7 | declare module 'vue/types/options' { 8 | interface ComponentOptions { 9 | subscriptions?: Observables | ((this: V) => Observables) 10 | domStreams?: string[] 11 | observableMethods?: string[] | Record 12 | } 13 | } 14 | 15 | export interface WatchObservable { 16 | newValue: T 17 | oldValue: T 18 | } 19 | 20 | declare module "vue/types/vue" { 21 | interface Vue { 22 | $observables: Observables; 23 | $watchAsObservable(expr: string, options?: WatchOptions): Observable> 24 | $watchAsObservable(fn: (this: this) => T, options?: WatchOptions): Observable> 25 | $eventToObservable(event: string): Observable<{name: string, msg: any}> 26 | $fromDOMEvent(selector: string | null, event: string): Observable 27 | $createObservableMethod(methodName: string): Observable 28 | 29 | $subscribeTo( 30 | observable: Observable, 31 | observer?: PartialObserver, 32 | ): void; 33 | 34 | $subscribeTo( 35 | observable: Observable, 36 | next: (value: T) => void, 37 | error?: (error: any) => void, 38 | complete?: () => void, 39 | ): void; 40 | } 41 | } 42 | 43 | export default function VueRx(V: typeof Vue): void 44 | -------------------------------------------------------------------------------- /types/test/index.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRX from '../index' 3 | import { interval }from 'rxjs' 4 | import { pluck, map } from 'rxjs/operators' 5 | 6 | Vue.use(VueRX) 7 | 8 | const vm1 = new Vue({ 9 | el: '#app', 10 | subscriptions: { 11 | msg: interval(100) 12 | } 13 | }) 14 | 15 | vm1.$observables.msg.subscribe((msg: any) => console.log(msg)) 16 | 17 | Vue.component('foo', { 18 | subscriptions: function () { 19 | return { 20 | msg: interval(100) 21 | } 22 | } 23 | }) 24 | 25 | new Vue({ 26 | domStreams: ['plus$'] 27 | }) 28 | 29 | const vm2 = new Vue({ 30 | data: { 31 | a: 1 32 | }, 33 | subscriptions () { 34 | // declaratively map to another property with Rx operators 35 | return { 36 | aPlusOne: this.$watchAsObservable('a').pipe( 37 | pluck('newValue'), 38 | map(a => (a as number) + 1), 39 | ) 40 | } 41 | } 42 | }) 43 | 44 | // or produce side effects... 45 | vm2.$watchAsObservable('a') 46 | .subscribe( 47 | ({ newValue, oldValue }: { newValue: number, oldValue: number }) => console.log('stream value', newValue, oldValue), 48 | (err: any) => console.error(err), 49 | () => console.log('complete') 50 | ) 51 | 52 | 53 | new Vue({ 54 | created () { 55 | this.$eventToObservable('customEvent') 56 | .subscribe((event: { name: string, msg: string }) => console.log(event.name,event.msg)) 57 | } 58 | }) 59 | 60 | new Vue({ 61 | mounted () { 62 | this.$subscribeTo(interval(1000), function (count) { 63 | console.log(count) 64 | }) 65 | } 66 | }) 67 | 68 | new Vue({ 69 | subscriptions () { 70 | return { 71 | inputValue: this.$fromDOMEvent('input', 'keyup').pipe( 72 | pluck('target', 'value') 73 | ) 74 | } 75 | } 76 | }) 77 | 78 | new Vue({ 79 | subscriptions () { 80 | return { 81 | // requires `share` operator 82 | formData: this.$createObservableMethod('submitHandler') 83 | } 84 | } 85 | }) 86 | 87 | new Vue({ 88 | subscriptions () { 89 | return { 90 | // requires `share` operator 91 | formData: this.$createObservableMethod('submitHandler') 92 | } 93 | } 94 | }) 95 | -------------------------------------------------------------------------------- /types/test/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es5", 5 | "lib": [ 6 | "es6", 7 | "es5", 8 | "dom", 9 | "es2015.promise", 10 | "es2015.core" 11 | ], 12 | "strict": true, 13 | "allowSyntheticDefaultImports": true, 14 | "noEmit": true 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /types/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es5", 5 | "lib": [ 6 | "es6", 7 | "dom", 8 | "es2015.promise" 9 | ], 10 | "strict": true, 11 | "noEmit": true 12 | }, 13 | "include": [ 14 | "*.d.ts" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /types/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-rx", 3 | "main": "index.d.ts" 4 | } 5 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.0.0-beta.44": 6 | version "7.0.0-beta.44" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" 8 | dependencies: 9 | "@babel/highlight" "7.0.0-beta.44" 10 | 11 | "@babel/code-frame@^7.0.0-beta.35": 12 | version "7.0.0-beta.49" 13 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.49.tgz#becd805482734440c9d137e46d77340e64d7f51b" 14 | dependencies: 15 | "@babel/highlight" "7.0.0-beta.49" 16 | 17 | "@babel/generator@7.0.0-beta.44": 18 | version "7.0.0-beta.44" 19 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" 20 | dependencies: 21 | "@babel/types" "7.0.0-beta.44" 22 | jsesc "^2.5.1" 23 | lodash "^4.2.0" 24 | source-map "^0.5.0" 25 | trim-right "^1.0.1" 26 | 27 | "@babel/helper-function-name@7.0.0-beta.44": 28 | version "7.0.0-beta.44" 29 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" 30 | dependencies: 31 | "@babel/helper-get-function-arity" "7.0.0-beta.44" 32 | "@babel/template" "7.0.0-beta.44" 33 | "@babel/types" "7.0.0-beta.44" 34 | 35 | "@babel/helper-get-function-arity@7.0.0-beta.44": 36 | version "7.0.0-beta.44" 37 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" 38 | dependencies: 39 | "@babel/types" "7.0.0-beta.44" 40 | 41 | "@babel/helper-split-export-declaration@7.0.0-beta.44": 42 | version "7.0.0-beta.44" 43 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" 44 | dependencies: 45 | "@babel/types" "7.0.0-beta.44" 46 | 47 | "@babel/highlight@7.0.0-beta.44": 48 | version "7.0.0-beta.44" 49 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" 50 | dependencies: 51 | chalk "^2.0.0" 52 | esutils "^2.0.2" 53 | js-tokens "^3.0.0" 54 | 55 | "@babel/highlight@7.0.0-beta.49": 56 | version "7.0.0-beta.49" 57 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.49.tgz#96bdc6b43e13482012ba6691b1018492d39622cc" 58 | dependencies: 59 | chalk "^2.0.0" 60 | esutils "^2.0.2" 61 | js-tokens "^3.0.0" 62 | 63 | "@babel/template@7.0.0-beta.44": 64 | version "7.0.0-beta.44" 65 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" 66 | dependencies: 67 | "@babel/code-frame" "7.0.0-beta.44" 68 | "@babel/types" "7.0.0-beta.44" 69 | babylon "7.0.0-beta.44" 70 | lodash "^4.2.0" 71 | 72 | "@babel/traverse@7.0.0-beta.44": 73 | version "7.0.0-beta.44" 74 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" 75 | dependencies: 76 | "@babel/code-frame" "7.0.0-beta.44" 77 | "@babel/generator" "7.0.0-beta.44" 78 | "@babel/helper-function-name" "7.0.0-beta.44" 79 | "@babel/helper-split-export-declaration" "7.0.0-beta.44" 80 | "@babel/types" "7.0.0-beta.44" 81 | babylon "7.0.0-beta.44" 82 | debug "^3.1.0" 83 | globals "^11.1.0" 84 | invariant "^2.2.0" 85 | lodash "^4.2.0" 86 | 87 | "@babel/types@7.0.0-beta.44": 88 | version "7.0.0-beta.44" 89 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" 90 | dependencies: 91 | esutils "^2.0.2" 92 | lodash "^4.2.0" 93 | to-fast-properties "^2.0.0" 94 | 95 | "@types/estree@0.0.39": 96 | version "0.0.39" 97 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 98 | 99 | "@types/node@*": 100 | version "10.1.4" 101 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.1.4.tgz#606651d3f8a8bec08b8cb262161aab9209f4a29d" 102 | 103 | abab@^1.0.4: 104 | version "1.0.4" 105 | resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" 106 | 107 | abbrev@1: 108 | version "1.1.1" 109 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 110 | 111 | acorn-dynamic-import@^3.0.0: 112 | version "3.0.0" 113 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" 114 | dependencies: 115 | acorn "^5.0.0" 116 | 117 | acorn-dynamic-import@^4.0.0: 118 | version "4.0.0" 119 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" 120 | 121 | acorn-globals@^4.1.0: 122 | version "4.1.0" 123 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" 124 | dependencies: 125 | acorn "^5.0.0" 126 | 127 | acorn-jsx@^3.0.0: 128 | version "3.0.1" 129 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 130 | dependencies: 131 | acorn "^3.0.4" 132 | 133 | acorn-jsx@^4.1.1: 134 | version "4.1.1" 135 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" 136 | dependencies: 137 | acorn "^5.0.3" 138 | 139 | acorn-jsx@^5.0.1: 140 | version "5.1.0" 141 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" 142 | 143 | acorn@^3.0.4: 144 | version "3.3.0" 145 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 146 | 147 | acorn@^5.0.0, acorn@^5.0.3, acorn@^5.3.0, acorn@^5.4.1, acorn@^5.5.0: 148 | version "5.5.3" 149 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" 150 | 151 | acorn@^6.1.1: 152 | version "6.4.0" 153 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" 154 | 155 | ajv-keywords@^2.1.0: 156 | version "2.1.1" 157 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 158 | 159 | ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: 160 | version "5.5.2" 161 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 162 | dependencies: 163 | co "^4.6.0" 164 | fast-deep-equal "^1.0.0" 165 | fast-json-stable-stringify "^2.0.0" 166 | json-schema-traverse "^0.3.0" 167 | 168 | ansi-escapes@^3.0.0: 169 | version "3.1.0" 170 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 171 | 172 | ansi-regex@^2.0.0: 173 | version "2.1.1" 174 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 175 | 176 | ansi-regex@^3.0.0: 177 | version "3.0.0" 178 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 179 | 180 | ansi-styles@^2.2.1: 181 | version "2.2.1" 182 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 183 | 184 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 185 | version "3.2.1" 186 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 187 | dependencies: 188 | color-convert "^1.9.0" 189 | 190 | anymatch@^1.3.0: 191 | version "1.3.2" 192 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 193 | dependencies: 194 | micromatch "^2.1.5" 195 | normalize-path "^2.0.0" 196 | 197 | anymatch@^2.0.0: 198 | version "2.0.0" 199 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 200 | dependencies: 201 | micromatch "^3.1.4" 202 | normalize-path "^2.1.1" 203 | 204 | append-transform@^0.4.0: 205 | version "0.4.0" 206 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" 207 | dependencies: 208 | default-require-extensions "^1.0.0" 209 | 210 | aproba@^1.0.3: 211 | version "1.2.0" 212 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 213 | 214 | are-we-there-yet@~1.1.2: 215 | version "1.1.4" 216 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 217 | dependencies: 218 | delegates "^1.0.0" 219 | readable-stream "^2.0.6" 220 | 221 | argparse@^1.0.7: 222 | version "1.0.10" 223 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 224 | dependencies: 225 | sprintf-js "~1.0.2" 226 | 227 | arr-diff@^2.0.0: 228 | version "2.0.0" 229 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 230 | dependencies: 231 | arr-flatten "^1.0.1" 232 | 233 | arr-diff@^4.0.0: 234 | version "4.0.0" 235 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 236 | 237 | arr-flatten@^1.0.1, arr-flatten@^1.1.0: 238 | version "1.1.0" 239 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 240 | 241 | arr-union@^3.1.0: 242 | version "3.1.0" 243 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 244 | 245 | array-equal@^1.0.0: 246 | version "1.0.0" 247 | resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" 248 | 249 | array-union@^1.0.1: 250 | version "1.0.2" 251 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 252 | dependencies: 253 | array-uniq "^1.0.1" 254 | 255 | array-uniq@^1.0.1: 256 | version "1.0.3" 257 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 258 | 259 | array-unique@^0.2.1: 260 | version "0.2.1" 261 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 262 | 263 | array-unique@^0.3.2: 264 | version "0.3.2" 265 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 266 | 267 | arrify@^1.0.0, arrify@^1.0.1: 268 | version "1.0.1" 269 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 270 | 271 | asn1@~0.2.3: 272 | version "0.2.3" 273 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 274 | 275 | assert-plus@1.0.0, assert-plus@^1.0.0: 276 | version "1.0.0" 277 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 278 | 279 | assign-symbols@^1.0.0: 280 | version "1.0.0" 281 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 282 | 283 | astral-regex@^1.0.0: 284 | version "1.0.0" 285 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 286 | 287 | async-each@^1.0.0: 288 | version "1.0.1" 289 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 290 | 291 | async-limiter@~1.0.0: 292 | version "1.0.0" 293 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 294 | 295 | async@^2.1.4: 296 | version "2.6.1" 297 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 298 | dependencies: 299 | lodash "^4.17.10" 300 | 301 | asynckit@^0.4.0: 302 | version "0.4.0" 303 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 304 | 305 | atob@^2.1.1: 306 | version "2.1.1" 307 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" 308 | 309 | aws-sign2@~0.7.0: 310 | version "0.7.0" 311 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 312 | 313 | aws4@^1.6.0: 314 | version "1.7.0" 315 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" 316 | 317 | babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: 318 | version "6.26.0" 319 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 320 | dependencies: 321 | chalk "^1.1.3" 322 | esutils "^2.0.2" 323 | js-tokens "^3.0.2" 324 | 325 | babel-core@^6.0.0, babel-core@^6.26.0: 326 | version "6.26.3" 327 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" 328 | dependencies: 329 | babel-code-frame "^6.26.0" 330 | babel-generator "^6.26.0" 331 | babel-helpers "^6.24.1" 332 | babel-messages "^6.23.0" 333 | babel-register "^6.26.0" 334 | babel-runtime "^6.26.0" 335 | babel-template "^6.26.0" 336 | babel-traverse "^6.26.0" 337 | babel-types "^6.26.0" 338 | babylon "^6.18.0" 339 | convert-source-map "^1.5.1" 340 | debug "^2.6.9" 341 | json5 "^0.5.1" 342 | lodash "^4.17.4" 343 | minimatch "^3.0.4" 344 | path-is-absolute "^1.0.1" 345 | private "^0.1.8" 346 | slash "^1.0.0" 347 | source-map "^0.5.7" 348 | 349 | babel-eslint@^8.2.3: 350 | version "8.2.3" 351 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf" 352 | dependencies: 353 | "@babel/code-frame" "7.0.0-beta.44" 354 | "@babel/traverse" "7.0.0-beta.44" 355 | "@babel/types" "7.0.0-beta.44" 356 | babylon "7.0.0-beta.44" 357 | eslint-scope "~3.7.1" 358 | eslint-visitor-keys "^1.0.0" 359 | 360 | babel-generator@^6.18.0, babel-generator@^6.26.0: 361 | version "6.26.1" 362 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 363 | dependencies: 364 | babel-messages "^6.23.0" 365 | babel-runtime "^6.26.0" 366 | babel-types "^6.26.0" 367 | detect-indent "^4.0.0" 368 | jsesc "^1.3.0" 369 | lodash "^4.17.4" 370 | source-map "^0.5.7" 371 | trim-right "^1.0.1" 372 | 373 | babel-helpers@^6.24.1: 374 | version "6.24.1" 375 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 376 | dependencies: 377 | babel-runtime "^6.22.0" 378 | babel-template "^6.24.1" 379 | 380 | babel-jest@^23.0.1: 381 | version "23.0.1" 382 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" 383 | dependencies: 384 | babel-plugin-istanbul "^4.1.6" 385 | babel-preset-jest "^23.0.1" 386 | 387 | babel-messages@^6.23.0: 388 | version "6.23.0" 389 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 390 | dependencies: 391 | babel-runtime "^6.22.0" 392 | 393 | babel-plugin-istanbul@^4.1.6: 394 | version "4.1.6" 395 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" 396 | dependencies: 397 | babel-plugin-syntax-object-rest-spread "^6.13.0" 398 | find-up "^2.1.0" 399 | istanbul-lib-instrument "^1.10.1" 400 | test-exclude "^4.2.1" 401 | 402 | babel-plugin-jest-hoist@^23.0.1: 403 | version "23.0.1" 404 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.0.1.tgz#eaa11c964563aea9c21becef2bdf7853f7f3c148" 405 | 406 | babel-plugin-syntax-object-rest-spread@^6.13.0: 407 | version "6.13.0" 408 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 409 | 410 | babel-preset-jest@^23.0.1: 411 | version "23.0.1" 412 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.0.1.tgz#631cc545c6cf021943013bcaf22f45d87fe62198" 413 | dependencies: 414 | babel-plugin-jest-hoist "^23.0.1" 415 | babel-plugin-syntax-object-rest-spread "^6.13.0" 416 | 417 | babel-register@^6.26.0: 418 | version "6.26.0" 419 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 420 | dependencies: 421 | babel-core "^6.26.0" 422 | babel-runtime "^6.26.0" 423 | core-js "^2.5.0" 424 | home-or-tmp "^2.0.0" 425 | lodash "^4.17.4" 426 | mkdirp "^0.5.1" 427 | source-map-support "^0.4.15" 428 | 429 | babel-runtime@^6.22.0, babel-runtime@^6.26.0: 430 | version "6.26.0" 431 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 432 | dependencies: 433 | core-js "^2.4.0" 434 | regenerator-runtime "^0.11.0" 435 | 436 | babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: 437 | version "6.26.0" 438 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 439 | dependencies: 440 | babel-runtime "^6.26.0" 441 | babel-traverse "^6.26.0" 442 | babel-types "^6.26.0" 443 | babylon "^6.18.0" 444 | lodash "^4.17.4" 445 | 446 | babel-traverse@^6.18.0, babel-traverse@^6.26.0: 447 | version "6.26.0" 448 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 449 | dependencies: 450 | babel-code-frame "^6.26.0" 451 | babel-messages "^6.23.0" 452 | babel-runtime "^6.26.0" 453 | babel-types "^6.26.0" 454 | babylon "^6.18.0" 455 | debug "^2.6.8" 456 | globals "^9.18.0" 457 | invariant "^2.2.2" 458 | lodash "^4.17.4" 459 | 460 | babel-types@^6.18.0, babel-types@^6.26.0: 461 | version "6.26.0" 462 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 463 | dependencies: 464 | babel-runtime "^6.26.0" 465 | esutils "^2.0.2" 466 | lodash "^4.17.4" 467 | to-fast-properties "^1.0.3" 468 | 469 | babylon@7.0.0-beta.44: 470 | version "7.0.0-beta.44" 471 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" 472 | 473 | babylon@^6.18.0: 474 | version "6.18.0" 475 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 476 | 477 | balanced-match@^1.0.0: 478 | version "1.0.0" 479 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 480 | 481 | base@^0.11.1: 482 | version "0.11.2" 483 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 484 | dependencies: 485 | cache-base "^1.0.1" 486 | class-utils "^0.3.5" 487 | component-emitter "^1.2.1" 488 | define-property "^1.0.0" 489 | isobject "^3.0.1" 490 | mixin-deep "^1.2.0" 491 | pascalcase "^0.1.1" 492 | 493 | bcrypt-pbkdf@^1.0.0: 494 | version "1.0.1" 495 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 496 | dependencies: 497 | tweetnacl "^0.14.3" 498 | 499 | binary-extensions@^1.0.0: 500 | version "1.11.0" 501 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 502 | 503 | brace-expansion@^1.1.7: 504 | version "1.1.11" 505 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 506 | dependencies: 507 | balanced-match "^1.0.0" 508 | concat-map "0.0.1" 509 | 510 | braces@^1.8.2: 511 | version "1.8.5" 512 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 513 | dependencies: 514 | expand-range "^1.8.1" 515 | preserve "^0.2.0" 516 | repeat-element "^1.1.2" 517 | 518 | braces@^2.3.1: 519 | version "2.3.2" 520 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 521 | dependencies: 522 | arr-flatten "^1.1.0" 523 | array-unique "^0.3.2" 524 | extend-shallow "^2.0.1" 525 | fill-range "^4.0.0" 526 | isobject "^3.0.1" 527 | repeat-element "^1.1.2" 528 | snapdragon "^0.8.1" 529 | snapdragon-node "^2.0.1" 530 | split-string "^3.0.2" 531 | to-regex "^3.0.1" 532 | 533 | browser-process-hrtime@^0.1.2: 534 | version "0.1.2" 535 | resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" 536 | 537 | browser-resolve@^1.11.2: 538 | version "1.11.2" 539 | resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" 540 | dependencies: 541 | resolve "1.1.7" 542 | 543 | bser@^2.0.0: 544 | version "2.0.0" 545 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" 546 | dependencies: 547 | node-int64 "^0.4.0" 548 | 549 | buble@^0.19.3: 550 | version "0.19.3" 551 | resolved "https://registry.yarnpkg.com/buble/-/buble-0.19.3.tgz#01e9412062cff1da6f20342b6ecd72e7bf699d02" 552 | dependencies: 553 | acorn "^5.4.1" 554 | acorn-dynamic-import "^3.0.0" 555 | acorn-jsx "^4.1.1" 556 | chalk "^2.3.1" 557 | magic-string "^0.22.4" 558 | minimist "^1.2.0" 559 | os-homedir "^1.0.1" 560 | vlq "^1.0.0" 561 | 562 | buble@^0.19.8: 563 | version "0.19.8" 564 | resolved "https://registry.yarnpkg.com/buble/-/buble-0.19.8.tgz#d642f0081afab66dccd897d7b6360d94030b9d3d" 565 | dependencies: 566 | acorn "^6.1.1" 567 | acorn-dynamic-import "^4.0.0" 568 | acorn-jsx "^5.0.1" 569 | chalk "^2.4.2" 570 | magic-string "^0.25.3" 571 | minimist "^1.2.0" 572 | os-homedir "^2.0.0" 573 | regexpu-core "^4.5.4" 574 | 575 | buffer-from@^1.0.0: 576 | version "1.0.0" 577 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" 578 | 579 | builtin-modules@^1.0.0: 580 | version "1.1.1" 581 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 582 | 583 | cache-base@^1.0.1: 584 | version "1.0.1" 585 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 586 | dependencies: 587 | collection-visit "^1.0.0" 588 | component-emitter "^1.2.1" 589 | get-value "^2.0.6" 590 | has-value "^1.0.0" 591 | isobject "^3.0.1" 592 | set-value "^2.0.0" 593 | to-object-path "^0.3.0" 594 | union-value "^1.0.0" 595 | unset-value "^1.0.0" 596 | 597 | caller-path@^0.1.0: 598 | version "0.1.0" 599 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 600 | dependencies: 601 | callsites "^0.2.0" 602 | 603 | callsites@^0.2.0: 604 | version "0.2.0" 605 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 606 | 607 | callsites@^2.0.0: 608 | version "2.0.0" 609 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" 610 | 611 | camelcase@^4.1.0: 612 | version "4.1.0" 613 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 614 | 615 | capture-exit@^1.2.0: 616 | version "1.2.0" 617 | resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" 618 | dependencies: 619 | rsvp "^3.3.3" 620 | 621 | caseless@~0.12.0: 622 | version "0.12.0" 623 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 624 | 625 | chalk@^1.1.3: 626 | version "1.1.3" 627 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 628 | dependencies: 629 | ansi-styles "^2.2.1" 630 | escape-string-regexp "^1.0.2" 631 | has-ansi "^2.0.0" 632 | strip-ansi "^3.0.0" 633 | supports-color "^2.0.0" 634 | 635 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1: 636 | version "2.4.1" 637 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 638 | dependencies: 639 | ansi-styles "^3.2.1" 640 | escape-string-regexp "^1.0.5" 641 | supports-color "^5.3.0" 642 | 643 | chalk@^2.4.2: 644 | version "2.4.2" 645 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 646 | dependencies: 647 | ansi-styles "^3.2.1" 648 | escape-string-regexp "^1.0.5" 649 | supports-color "^5.3.0" 650 | 651 | chardet@^0.4.0: 652 | version "0.4.2" 653 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 654 | 655 | chokidar@^1.7.0: 656 | version "1.7.0" 657 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 658 | dependencies: 659 | anymatch "^1.3.0" 660 | async-each "^1.0.0" 661 | glob-parent "^2.0.0" 662 | inherits "^2.0.1" 663 | is-binary-path "^1.0.0" 664 | is-glob "^2.0.0" 665 | path-is-absolute "^1.0.0" 666 | readdirp "^2.0.0" 667 | optionalDependencies: 668 | fsevents "^1.0.0" 669 | 670 | chownr@^1.0.1: 671 | version "1.0.1" 672 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" 673 | 674 | ci-info@^1.0.0: 675 | version "1.1.3" 676 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" 677 | 678 | circular-json@^0.3.1: 679 | version "0.3.3" 680 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 681 | 682 | class-utils@^0.3.5: 683 | version "0.3.6" 684 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 685 | dependencies: 686 | arr-union "^3.1.0" 687 | define-property "^0.2.5" 688 | isobject "^3.0.0" 689 | static-extend "^0.1.1" 690 | 691 | cli-cursor@^2.1.0: 692 | version "2.1.0" 693 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 694 | dependencies: 695 | restore-cursor "^2.0.0" 696 | 697 | cli-width@^2.0.0: 698 | version "2.2.0" 699 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 700 | 701 | cliui@^4.0.0: 702 | version "4.1.0" 703 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 704 | dependencies: 705 | string-width "^2.1.1" 706 | strip-ansi "^4.0.0" 707 | wrap-ansi "^2.0.0" 708 | 709 | co@^4.6.0: 710 | version "4.6.0" 711 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 712 | 713 | code-point-at@^1.0.0: 714 | version "1.1.0" 715 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 716 | 717 | collection-visit@^1.0.0: 718 | version "1.0.0" 719 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 720 | dependencies: 721 | map-visit "^1.0.0" 722 | object-visit "^1.0.0" 723 | 724 | color-convert@^1.9.0: 725 | version "1.9.1" 726 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 727 | dependencies: 728 | color-name "^1.1.1" 729 | 730 | color-name@^1.1.1: 731 | version "1.1.3" 732 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 733 | 734 | combined-stream@1.0.6, combined-stream@~1.0.5: 735 | version "1.0.6" 736 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 737 | dependencies: 738 | delayed-stream "~1.0.0" 739 | 740 | commander@~2.20.3: 741 | version "2.20.3" 742 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 743 | 744 | compare-versions@^3.1.0: 745 | version "3.2.1" 746 | resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.2.1.tgz#a49eb7689d4caaf0b6db5220173fd279614000f7" 747 | 748 | component-emitter@^1.2.1: 749 | version "1.2.1" 750 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 751 | 752 | concat-map@0.0.1: 753 | version "0.0.1" 754 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 755 | 756 | concat-stream@^1.6.0: 757 | version "1.6.2" 758 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 759 | dependencies: 760 | buffer-from "^1.0.0" 761 | inherits "^2.0.3" 762 | readable-stream "^2.2.2" 763 | typedarray "^0.0.6" 764 | 765 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 766 | version "1.1.0" 767 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 768 | 769 | convert-source-map@^1.4.0, convert-source-map@^1.5.1: 770 | version "1.5.1" 771 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 772 | 773 | copy-descriptor@^0.1.0: 774 | version "0.1.1" 775 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 776 | 777 | core-js@^2.4.0, core-js@^2.5.0: 778 | version "2.5.6" 779 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" 780 | 781 | core-util-is@1.0.2, core-util-is@~1.0.0: 782 | version "1.0.2" 783 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 784 | 785 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 786 | version "5.1.0" 787 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 788 | dependencies: 789 | lru-cache "^4.0.1" 790 | shebang-command "^1.2.0" 791 | which "^1.2.9" 792 | 793 | cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": 794 | version "0.3.2" 795 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" 796 | 797 | "cssstyle@>= 0.3.1 < 0.4.0": 798 | version "0.3.1" 799 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.3.1.tgz#6da9b4cff1bc5d716e6e5fe8e04fcb1b50a49adf" 800 | dependencies: 801 | cssom "0.3.x" 802 | 803 | dashdash@^1.12.0: 804 | version "1.14.1" 805 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 806 | dependencies: 807 | assert-plus "^1.0.0" 808 | 809 | data-urls@^1.0.0: 810 | version "1.0.0" 811 | resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f" 812 | dependencies: 813 | abab "^1.0.4" 814 | whatwg-mimetype "^2.0.0" 815 | whatwg-url "^6.4.0" 816 | 817 | debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: 818 | version "2.6.9" 819 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 820 | dependencies: 821 | ms "2.0.0" 822 | 823 | debug@^3.1.0: 824 | version "3.1.0" 825 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 826 | dependencies: 827 | ms "2.0.0" 828 | 829 | decamelize@^1.1.1: 830 | version "1.2.0" 831 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 832 | 833 | decode-uri-component@^0.2.0: 834 | version "0.2.0" 835 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 836 | 837 | deep-extend@^0.5.1: 838 | version "0.5.1" 839 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" 840 | 841 | deep-is@~0.1.3: 842 | version "0.1.3" 843 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 844 | 845 | default-require-extensions@^1.0.0: 846 | version "1.0.0" 847 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" 848 | dependencies: 849 | strip-bom "^2.0.0" 850 | 851 | define-properties@^1.1.2: 852 | version "1.1.2" 853 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 854 | dependencies: 855 | foreach "^2.0.5" 856 | object-keys "^1.0.8" 857 | 858 | define-property@^0.2.5: 859 | version "0.2.5" 860 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 861 | dependencies: 862 | is-descriptor "^0.1.0" 863 | 864 | define-property@^1.0.0: 865 | version "1.0.0" 866 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 867 | dependencies: 868 | is-descriptor "^1.0.0" 869 | 870 | define-property@^2.0.2: 871 | version "2.0.2" 872 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 873 | dependencies: 874 | is-descriptor "^1.0.2" 875 | isobject "^3.0.1" 876 | 877 | del@^2.0.2: 878 | version "2.2.2" 879 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 880 | dependencies: 881 | globby "^5.0.0" 882 | is-path-cwd "^1.0.0" 883 | is-path-in-cwd "^1.0.0" 884 | object-assign "^4.0.1" 885 | pify "^2.0.0" 886 | pinkie-promise "^2.0.0" 887 | rimraf "^2.2.8" 888 | 889 | delayed-stream@~1.0.0: 890 | version "1.0.0" 891 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 892 | 893 | delegates@^1.0.0: 894 | version "1.0.0" 895 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 896 | 897 | detect-indent@^4.0.0: 898 | version "4.0.0" 899 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 900 | dependencies: 901 | repeating "^2.0.0" 902 | 903 | detect-libc@^1.0.2: 904 | version "1.0.3" 905 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 906 | 907 | detect-newline@^2.1.0: 908 | version "2.1.0" 909 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" 910 | 911 | diff@^3.2.0: 912 | version "3.5.0" 913 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 914 | 915 | doctrine@^2.1.0: 916 | version "2.1.0" 917 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 918 | dependencies: 919 | esutils "^2.0.2" 920 | 921 | domexception@^1.0.0: 922 | version "1.0.1" 923 | resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" 924 | dependencies: 925 | webidl-conversions "^4.0.2" 926 | 927 | ecc-jsbn@~0.1.1: 928 | version "0.1.1" 929 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 930 | dependencies: 931 | jsbn "~0.1.0" 932 | 933 | error-ex@^1.2.0: 934 | version "1.3.1" 935 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 936 | dependencies: 937 | is-arrayish "^0.2.1" 938 | 939 | es-abstract@^1.5.1: 940 | version "1.11.0" 941 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" 942 | dependencies: 943 | es-to-primitive "^1.1.1" 944 | function-bind "^1.1.1" 945 | has "^1.0.1" 946 | is-callable "^1.1.3" 947 | is-regex "^1.0.4" 948 | 949 | es-to-primitive@^1.1.1: 950 | version "1.1.1" 951 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 952 | dependencies: 953 | is-callable "^1.1.1" 954 | is-date-object "^1.0.1" 955 | is-symbol "^1.0.1" 956 | 957 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 958 | version "1.0.5" 959 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 960 | 961 | escodegen@^1.9.0: 962 | version "1.9.1" 963 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" 964 | dependencies: 965 | esprima "^3.1.3" 966 | estraverse "^4.2.0" 967 | esutils "^2.0.2" 968 | optionator "^0.8.1" 969 | optionalDependencies: 970 | source-map "~0.6.1" 971 | 972 | eslint-plugin-vue-libs@^3.0.0: 973 | version "3.0.0" 974 | resolved "https://registry.yarnpkg.com/eslint-plugin-vue-libs/-/eslint-plugin-vue-libs-3.0.0.tgz#9b81ae18c654eb2370b9c17d44b58ab759eadf2b" 975 | dependencies: 976 | babel-eslint "^8.2.3" 977 | eslint-plugin-vue "^4.5.0" 978 | 979 | eslint-plugin-vue@^4.5.0: 980 | version "4.5.0" 981 | resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-4.5.0.tgz#09d6597f4849e31a3846c2c395fccf17685b69c3" 982 | dependencies: 983 | vue-eslint-parser "^2.0.3" 984 | 985 | eslint-scope@^3.7.1, eslint-scope@~3.7.1: 986 | version "3.7.1" 987 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 988 | dependencies: 989 | esrecurse "^4.1.0" 990 | estraverse "^4.1.1" 991 | 992 | eslint-visitor-keys@^1.0.0: 993 | version "1.0.0" 994 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 995 | 996 | eslint@^4.19.1: 997 | version "4.19.1" 998 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" 999 | dependencies: 1000 | ajv "^5.3.0" 1001 | babel-code-frame "^6.22.0" 1002 | chalk "^2.1.0" 1003 | concat-stream "^1.6.0" 1004 | cross-spawn "^5.1.0" 1005 | debug "^3.1.0" 1006 | doctrine "^2.1.0" 1007 | eslint-scope "^3.7.1" 1008 | eslint-visitor-keys "^1.0.0" 1009 | espree "^3.5.4" 1010 | esquery "^1.0.0" 1011 | esutils "^2.0.2" 1012 | file-entry-cache "^2.0.0" 1013 | functional-red-black-tree "^1.0.1" 1014 | glob "^7.1.2" 1015 | globals "^11.0.1" 1016 | ignore "^3.3.3" 1017 | imurmurhash "^0.1.4" 1018 | inquirer "^3.0.6" 1019 | is-resolvable "^1.0.0" 1020 | js-yaml "^3.9.1" 1021 | json-stable-stringify-without-jsonify "^1.0.1" 1022 | levn "^0.3.0" 1023 | lodash "^4.17.4" 1024 | minimatch "^3.0.2" 1025 | mkdirp "^0.5.1" 1026 | natural-compare "^1.4.0" 1027 | optionator "^0.8.2" 1028 | path-is-inside "^1.0.2" 1029 | pluralize "^7.0.0" 1030 | progress "^2.0.0" 1031 | regexpp "^1.0.1" 1032 | require-uncached "^1.0.3" 1033 | semver "^5.3.0" 1034 | strip-ansi "^4.0.0" 1035 | strip-json-comments "~2.0.1" 1036 | table "4.0.2" 1037 | text-table "~0.2.0" 1038 | 1039 | espree@^3.5.2, espree@^3.5.4: 1040 | version "3.5.4" 1041 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 1042 | dependencies: 1043 | acorn "^5.5.0" 1044 | acorn-jsx "^3.0.0" 1045 | 1046 | esprima@^3.1.3: 1047 | version "3.1.3" 1048 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 1049 | 1050 | esprima@^4.0.0: 1051 | version "4.0.0" 1052 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 1053 | 1054 | esquery@^1.0.0: 1055 | version "1.0.1" 1056 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 1057 | dependencies: 1058 | estraverse "^4.0.0" 1059 | 1060 | esrecurse@^4.1.0: 1061 | version "4.2.1" 1062 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 1063 | dependencies: 1064 | estraverse "^4.1.0" 1065 | 1066 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: 1067 | version "4.2.0" 1068 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1069 | 1070 | estree-walker@^0.5.2: 1071 | version "0.5.2" 1072 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" 1073 | 1074 | estree-walker@^0.6.1: 1075 | version "0.6.1" 1076 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 1077 | 1078 | esutils@^2.0.2: 1079 | version "2.0.2" 1080 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1081 | 1082 | exec-sh@^0.2.0: 1083 | version "0.2.1" 1084 | resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" 1085 | dependencies: 1086 | merge "^1.1.3" 1087 | 1088 | execa@^0.7.0: 1089 | version "0.7.0" 1090 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 1091 | dependencies: 1092 | cross-spawn "^5.0.1" 1093 | get-stream "^3.0.0" 1094 | is-stream "^1.1.0" 1095 | npm-run-path "^2.0.0" 1096 | p-finally "^1.0.0" 1097 | signal-exit "^3.0.0" 1098 | strip-eof "^1.0.0" 1099 | 1100 | exit@^0.1.2: 1101 | version "0.1.2" 1102 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" 1103 | 1104 | expand-brackets@^0.1.4: 1105 | version "0.1.5" 1106 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1107 | dependencies: 1108 | is-posix-bracket "^0.1.0" 1109 | 1110 | expand-brackets@^2.1.4: 1111 | version "2.1.4" 1112 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 1113 | dependencies: 1114 | debug "^2.3.3" 1115 | define-property "^0.2.5" 1116 | extend-shallow "^2.0.1" 1117 | posix-character-classes "^0.1.0" 1118 | regex-not "^1.0.0" 1119 | snapdragon "^0.8.1" 1120 | to-regex "^3.0.1" 1121 | 1122 | expand-range@^1.8.1: 1123 | version "1.8.2" 1124 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1125 | dependencies: 1126 | fill-range "^2.1.0" 1127 | 1128 | expect@^23.1.0: 1129 | version "23.1.0" 1130 | resolved "https://registry.yarnpkg.com/expect/-/expect-23.1.0.tgz#bfdfd57a2a20170d875999ee9787cc71f01c205f" 1131 | dependencies: 1132 | ansi-styles "^3.2.0" 1133 | jest-diff "^23.0.1" 1134 | jest-get-type "^22.1.0" 1135 | jest-matcher-utils "^23.0.1" 1136 | jest-message-util "^23.1.0" 1137 | jest-regex-util "^23.0.0" 1138 | 1139 | extend-shallow@^2.0.1: 1140 | version "2.0.1" 1141 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1142 | dependencies: 1143 | is-extendable "^0.1.0" 1144 | 1145 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1146 | version "3.0.2" 1147 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1148 | dependencies: 1149 | assign-symbols "^1.0.0" 1150 | is-extendable "^1.0.1" 1151 | 1152 | extend@~3.0.1: 1153 | version "3.0.1" 1154 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 1155 | 1156 | external-editor@^2.0.4: 1157 | version "2.2.0" 1158 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 1159 | dependencies: 1160 | chardet "^0.4.0" 1161 | iconv-lite "^0.4.17" 1162 | tmp "^0.0.33" 1163 | 1164 | extglob@^0.3.1: 1165 | version "0.3.2" 1166 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1167 | dependencies: 1168 | is-extglob "^1.0.0" 1169 | 1170 | extglob@^2.0.4: 1171 | version "2.0.4" 1172 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1173 | dependencies: 1174 | array-unique "^0.3.2" 1175 | define-property "^1.0.0" 1176 | expand-brackets "^2.1.4" 1177 | extend-shallow "^2.0.1" 1178 | fragment-cache "^0.2.1" 1179 | regex-not "^1.0.0" 1180 | snapdragon "^0.8.1" 1181 | to-regex "^3.0.1" 1182 | 1183 | extsprintf@1.3.0: 1184 | version "1.3.0" 1185 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 1186 | 1187 | extsprintf@^1.2.0: 1188 | version "1.4.0" 1189 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 1190 | 1191 | fast-deep-equal@^1.0.0: 1192 | version "1.1.0" 1193 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 1194 | 1195 | fast-json-stable-stringify@^2.0.0: 1196 | version "2.0.0" 1197 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1198 | 1199 | fast-levenshtein@~2.0.4: 1200 | version "2.0.6" 1201 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1202 | 1203 | fb-watchman@^2.0.0: 1204 | version "2.0.0" 1205 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" 1206 | dependencies: 1207 | bser "^2.0.0" 1208 | 1209 | figures@^2.0.0: 1210 | version "2.0.0" 1211 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1212 | dependencies: 1213 | escape-string-regexp "^1.0.5" 1214 | 1215 | file-entry-cache@^2.0.0: 1216 | version "2.0.0" 1217 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1218 | dependencies: 1219 | flat-cache "^1.2.1" 1220 | object-assign "^4.0.1" 1221 | 1222 | filename-regex@^2.0.0: 1223 | version "2.0.1" 1224 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1225 | 1226 | fileset@^2.0.2: 1227 | version "2.0.3" 1228 | resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" 1229 | dependencies: 1230 | glob "^7.0.3" 1231 | minimatch "^3.0.3" 1232 | 1233 | fill-range@^2.1.0: 1234 | version "2.2.4" 1235 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" 1236 | dependencies: 1237 | is-number "^2.1.0" 1238 | isobject "^2.0.0" 1239 | randomatic "^3.0.0" 1240 | repeat-element "^1.1.2" 1241 | repeat-string "^1.5.2" 1242 | 1243 | fill-range@^4.0.0: 1244 | version "4.0.0" 1245 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1246 | dependencies: 1247 | extend-shallow "^2.0.1" 1248 | is-number "^3.0.0" 1249 | repeat-string "^1.6.1" 1250 | to-regex-range "^2.1.0" 1251 | 1252 | find-up@^1.0.0: 1253 | version "1.1.2" 1254 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1255 | dependencies: 1256 | path-exists "^2.0.0" 1257 | pinkie-promise "^2.0.0" 1258 | 1259 | find-up@^2.1.0: 1260 | version "2.1.0" 1261 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1262 | dependencies: 1263 | locate-path "^2.0.0" 1264 | 1265 | flat-cache@^1.2.1: 1266 | version "1.3.0" 1267 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 1268 | dependencies: 1269 | circular-json "^0.3.1" 1270 | del "^2.0.2" 1271 | graceful-fs "^4.1.2" 1272 | write "^0.2.1" 1273 | 1274 | for-in@^1.0.1, for-in@^1.0.2: 1275 | version "1.0.2" 1276 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1277 | 1278 | for-own@^0.1.4: 1279 | version "0.1.5" 1280 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1281 | dependencies: 1282 | for-in "^1.0.1" 1283 | 1284 | foreach@^2.0.5: 1285 | version "2.0.5" 1286 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 1287 | 1288 | forever-agent@~0.6.1: 1289 | version "0.6.1" 1290 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1291 | 1292 | form-data@~2.3.1: 1293 | version "2.3.2" 1294 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 1295 | dependencies: 1296 | asynckit "^0.4.0" 1297 | combined-stream "1.0.6" 1298 | mime-types "^2.1.12" 1299 | 1300 | fragment-cache@^0.2.1: 1301 | version "0.2.1" 1302 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1303 | dependencies: 1304 | map-cache "^0.2.2" 1305 | 1306 | fs-minipass@^1.2.5: 1307 | version "1.2.5" 1308 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1309 | dependencies: 1310 | minipass "^2.2.1" 1311 | 1312 | fs.realpath@^1.0.0: 1313 | version "1.0.0" 1314 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1315 | 1316 | fsevents@^1.0.0, fsevents@^1.2.3: 1317 | version "1.2.4" 1318 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 1319 | dependencies: 1320 | nan "^2.9.2" 1321 | node-pre-gyp "^0.10.0" 1322 | 1323 | function-bind@^1.0.2, function-bind@^1.1.1: 1324 | version "1.1.1" 1325 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1326 | 1327 | functional-red-black-tree@^1.0.1: 1328 | version "1.0.1" 1329 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1330 | 1331 | gauge@~2.7.3: 1332 | version "2.7.4" 1333 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1334 | dependencies: 1335 | aproba "^1.0.3" 1336 | console-control-strings "^1.0.0" 1337 | has-unicode "^2.0.0" 1338 | object-assign "^4.1.0" 1339 | signal-exit "^3.0.0" 1340 | string-width "^1.0.1" 1341 | strip-ansi "^3.0.1" 1342 | wide-align "^1.1.0" 1343 | 1344 | get-caller-file@^1.0.1: 1345 | version "1.0.2" 1346 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1347 | 1348 | get-stream@^3.0.0: 1349 | version "3.0.0" 1350 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1351 | 1352 | get-value@^2.0.3, get-value@^2.0.6: 1353 | version "2.0.6" 1354 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1355 | 1356 | getpass@^0.1.1: 1357 | version "0.1.7" 1358 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1359 | dependencies: 1360 | assert-plus "^1.0.0" 1361 | 1362 | glob-base@^0.3.0: 1363 | version "0.3.0" 1364 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1365 | dependencies: 1366 | glob-parent "^2.0.0" 1367 | is-glob "^2.0.0" 1368 | 1369 | glob-parent@^2.0.0: 1370 | version "2.0.0" 1371 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1372 | dependencies: 1373 | is-glob "^2.0.0" 1374 | 1375 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: 1376 | version "7.1.2" 1377 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1378 | dependencies: 1379 | fs.realpath "^1.0.0" 1380 | inflight "^1.0.4" 1381 | inherits "2" 1382 | minimatch "^3.0.4" 1383 | once "^1.3.0" 1384 | path-is-absolute "^1.0.0" 1385 | 1386 | globals@^11.0.1, globals@^11.1.0: 1387 | version "11.5.0" 1388 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642" 1389 | 1390 | globals@^9.18.0: 1391 | version "9.18.0" 1392 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 1393 | 1394 | globby@^5.0.0: 1395 | version "5.0.0" 1396 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 1397 | dependencies: 1398 | array-union "^1.0.1" 1399 | arrify "^1.0.0" 1400 | glob "^7.0.3" 1401 | object-assign "^4.0.1" 1402 | pify "^2.0.0" 1403 | pinkie-promise "^2.0.0" 1404 | 1405 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1406 | version "4.1.11" 1407 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1408 | 1409 | growly@^1.3.0: 1410 | version "1.3.0" 1411 | resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" 1412 | 1413 | handlebars@^4.0.3: 1414 | version "4.5.3" 1415 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" 1416 | dependencies: 1417 | neo-async "^2.6.0" 1418 | optimist "^0.6.1" 1419 | source-map "^0.6.1" 1420 | optionalDependencies: 1421 | uglify-js "^3.1.4" 1422 | 1423 | har-schema@^2.0.0: 1424 | version "2.0.0" 1425 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 1426 | 1427 | har-validator@~5.0.3: 1428 | version "5.0.3" 1429 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 1430 | dependencies: 1431 | ajv "^5.1.0" 1432 | har-schema "^2.0.0" 1433 | 1434 | has-ansi@^2.0.0: 1435 | version "2.0.0" 1436 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1437 | dependencies: 1438 | ansi-regex "^2.0.0" 1439 | 1440 | has-flag@^1.0.0: 1441 | version "1.0.0" 1442 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1443 | 1444 | has-flag@^3.0.0: 1445 | version "3.0.0" 1446 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1447 | 1448 | has-unicode@^2.0.0: 1449 | version "2.0.1" 1450 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1451 | 1452 | has-value@^0.3.1: 1453 | version "0.3.1" 1454 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1455 | dependencies: 1456 | get-value "^2.0.3" 1457 | has-values "^0.1.4" 1458 | isobject "^2.0.0" 1459 | 1460 | has-value@^1.0.0: 1461 | version "1.0.0" 1462 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1463 | dependencies: 1464 | get-value "^2.0.6" 1465 | has-values "^1.0.0" 1466 | isobject "^3.0.0" 1467 | 1468 | has-values@^0.1.4: 1469 | version "0.1.4" 1470 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1471 | 1472 | has-values@^1.0.0: 1473 | version "1.0.0" 1474 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1475 | dependencies: 1476 | is-number "^3.0.0" 1477 | kind-of "^4.0.0" 1478 | 1479 | has@^1.0.1: 1480 | version "1.0.1" 1481 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 1482 | dependencies: 1483 | function-bind "^1.0.2" 1484 | 1485 | home-or-tmp@^2.0.0: 1486 | version "2.0.0" 1487 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1488 | dependencies: 1489 | os-homedir "^1.0.0" 1490 | os-tmpdir "^1.0.1" 1491 | 1492 | hosted-git-info@^2.1.4: 1493 | version "2.6.0" 1494 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" 1495 | 1496 | html-encoding-sniffer@^1.0.2: 1497 | version "1.0.2" 1498 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" 1499 | dependencies: 1500 | whatwg-encoding "^1.0.1" 1501 | 1502 | http-signature@~1.2.0: 1503 | version "1.2.0" 1504 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 1505 | dependencies: 1506 | assert-plus "^1.0.0" 1507 | jsprim "^1.2.2" 1508 | sshpk "^1.7.0" 1509 | 1510 | iconv-lite@0.4.19: 1511 | version "0.4.19" 1512 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 1513 | 1514 | iconv-lite@^0.4.17, iconv-lite@^0.4.4: 1515 | version "0.4.23" 1516 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1517 | dependencies: 1518 | safer-buffer ">= 2.1.2 < 3" 1519 | 1520 | ignore-walk@^3.0.1: 1521 | version "3.0.1" 1522 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1523 | dependencies: 1524 | minimatch "^3.0.4" 1525 | 1526 | ignore@^3.3.3: 1527 | version "3.3.8" 1528 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" 1529 | 1530 | import-local@^1.0.0: 1531 | version "1.0.0" 1532 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" 1533 | dependencies: 1534 | pkg-dir "^2.0.0" 1535 | resolve-cwd "^2.0.0" 1536 | 1537 | imurmurhash@^0.1.4: 1538 | version "0.1.4" 1539 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1540 | 1541 | inflight@^1.0.4: 1542 | version "1.0.6" 1543 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1544 | dependencies: 1545 | once "^1.3.0" 1546 | wrappy "1" 1547 | 1548 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: 1549 | version "2.0.3" 1550 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1551 | 1552 | ini@~1.3.0: 1553 | version "1.3.5" 1554 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1555 | 1556 | inquirer@^3.0.6: 1557 | version "3.3.0" 1558 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 1559 | dependencies: 1560 | ansi-escapes "^3.0.0" 1561 | chalk "^2.0.0" 1562 | cli-cursor "^2.1.0" 1563 | cli-width "^2.0.0" 1564 | external-editor "^2.0.4" 1565 | figures "^2.0.0" 1566 | lodash "^4.3.0" 1567 | mute-stream "0.0.7" 1568 | run-async "^2.2.0" 1569 | rx-lite "^4.0.8" 1570 | rx-lite-aggregates "^4.0.8" 1571 | string-width "^2.1.0" 1572 | strip-ansi "^4.0.0" 1573 | through "^2.3.6" 1574 | 1575 | invariant@^2.2.0, invariant@^2.2.2: 1576 | version "2.2.4" 1577 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1578 | dependencies: 1579 | loose-envify "^1.0.0" 1580 | 1581 | invert-kv@^1.0.0: 1582 | version "1.0.0" 1583 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1584 | 1585 | is-accessor-descriptor@^0.1.6: 1586 | version "0.1.6" 1587 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1588 | dependencies: 1589 | kind-of "^3.0.2" 1590 | 1591 | is-accessor-descriptor@^1.0.0: 1592 | version "1.0.0" 1593 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1594 | dependencies: 1595 | kind-of "^6.0.0" 1596 | 1597 | is-arrayish@^0.2.1: 1598 | version "0.2.1" 1599 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1600 | 1601 | is-binary-path@^1.0.0: 1602 | version "1.0.1" 1603 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1604 | dependencies: 1605 | binary-extensions "^1.0.0" 1606 | 1607 | is-buffer@^1.1.5: 1608 | version "1.1.6" 1609 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1610 | 1611 | is-builtin-module@^1.0.0: 1612 | version "1.0.0" 1613 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1614 | dependencies: 1615 | builtin-modules "^1.0.0" 1616 | 1617 | is-callable@^1.1.1, is-callable@^1.1.3: 1618 | version "1.1.3" 1619 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 1620 | 1621 | is-ci@^1.0.10: 1622 | version "1.1.0" 1623 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" 1624 | dependencies: 1625 | ci-info "^1.0.0" 1626 | 1627 | is-data-descriptor@^0.1.4: 1628 | version "0.1.4" 1629 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1630 | dependencies: 1631 | kind-of "^3.0.2" 1632 | 1633 | is-data-descriptor@^1.0.0: 1634 | version "1.0.0" 1635 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1636 | dependencies: 1637 | kind-of "^6.0.0" 1638 | 1639 | is-date-object@^1.0.1: 1640 | version "1.0.1" 1641 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1642 | 1643 | is-descriptor@^0.1.0: 1644 | version "0.1.6" 1645 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1646 | dependencies: 1647 | is-accessor-descriptor "^0.1.6" 1648 | is-data-descriptor "^0.1.4" 1649 | kind-of "^5.0.0" 1650 | 1651 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1652 | version "1.0.2" 1653 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1654 | dependencies: 1655 | is-accessor-descriptor "^1.0.0" 1656 | is-data-descriptor "^1.0.0" 1657 | kind-of "^6.0.2" 1658 | 1659 | is-dotfile@^1.0.0: 1660 | version "1.0.3" 1661 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1662 | 1663 | is-equal-shallow@^0.1.3: 1664 | version "0.1.3" 1665 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1666 | dependencies: 1667 | is-primitive "^2.0.0" 1668 | 1669 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1670 | version "0.1.1" 1671 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1672 | 1673 | is-extendable@^1.0.1: 1674 | version "1.0.1" 1675 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1676 | dependencies: 1677 | is-plain-object "^2.0.4" 1678 | 1679 | is-extglob@^1.0.0: 1680 | version "1.0.0" 1681 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1682 | 1683 | is-finite@^1.0.0: 1684 | version "1.0.2" 1685 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1686 | dependencies: 1687 | number-is-nan "^1.0.0" 1688 | 1689 | is-fullwidth-code-point@^1.0.0: 1690 | version "1.0.0" 1691 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1692 | dependencies: 1693 | number-is-nan "^1.0.0" 1694 | 1695 | is-fullwidth-code-point@^2.0.0: 1696 | version "2.0.0" 1697 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1698 | 1699 | is-generator-fn@^1.0.0: 1700 | version "1.0.0" 1701 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" 1702 | 1703 | is-glob@^2.0.0, is-glob@^2.0.1: 1704 | version "2.0.1" 1705 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1706 | dependencies: 1707 | is-extglob "^1.0.0" 1708 | 1709 | is-number@^2.1.0: 1710 | version "2.1.0" 1711 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1712 | dependencies: 1713 | kind-of "^3.0.2" 1714 | 1715 | is-number@^3.0.0: 1716 | version "3.0.0" 1717 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1718 | dependencies: 1719 | kind-of "^3.0.2" 1720 | 1721 | is-number@^4.0.0: 1722 | version "4.0.0" 1723 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" 1724 | 1725 | is-odd@^2.0.0: 1726 | version "2.0.0" 1727 | resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" 1728 | dependencies: 1729 | is-number "^4.0.0" 1730 | 1731 | is-path-cwd@^1.0.0: 1732 | version "1.0.0" 1733 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 1734 | 1735 | is-path-in-cwd@^1.0.0: 1736 | version "1.0.1" 1737 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 1738 | dependencies: 1739 | is-path-inside "^1.0.0" 1740 | 1741 | is-path-inside@^1.0.0: 1742 | version "1.0.1" 1743 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1744 | dependencies: 1745 | path-is-inside "^1.0.1" 1746 | 1747 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1748 | version "2.0.4" 1749 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1750 | dependencies: 1751 | isobject "^3.0.1" 1752 | 1753 | is-posix-bracket@^0.1.0: 1754 | version "0.1.1" 1755 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1756 | 1757 | is-primitive@^2.0.0: 1758 | version "2.0.0" 1759 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1760 | 1761 | is-promise@^2.1.0: 1762 | version "2.1.0" 1763 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1764 | 1765 | is-regex@^1.0.4: 1766 | version "1.0.4" 1767 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1768 | dependencies: 1769 | has "^1.0.1" 1770 | 1771 | is-resolvable@^1.0.0: 1772 | version "1.1.0" 1773 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 1774 | 1775 | is-stream@^1.1.0: 1776 | version "1.1.0" 1777 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1778 | 1779 | is-symbol@^1.0.1: 1780 | version "1.0.1" 1781 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 1782 | 1783 | is-typedarray@~1.0.0: 1784 | version "1.0.0" 1785 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1786 | 1787 | is-utf8@^0.2.0: 1788 | version "0.2.1" 1789 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1790 | 1791 | is-windows@^1.0.2: 1792 | version "1.0.2" 1793 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1794 | 1795 | isarray@1.0.0, isarray@~1.0.0: 1796 | version "1.0.0" 1797 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1798 | 1799 | isexe@^2.0.0: 1800 | version "2.0.0" 1801 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1802 | 1803 | isobject@^2.0.0: 1804 | version "2.1.0" 1805 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1806 | dependencies: 1807 | isarray "1.0.0" 1808 | 1809 | isobject@^3.0.0, isobject@^3.0.1: 1810 | version "3.0.1" 1811 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1812 | 1813 | isstream@~0.1.2: 1814 | version "0.1.2" 1815 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1816 | 1817 | istanbul-api@^1.3.1: 1818 | version "1.3.1" 1819 | resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" 1820 | dependencies: 1821 | async "^2.1.4" 1822 | compare-versions "^3.1.0" 1823 | fileset "^2.0.2" 1824 | istanbul-lib-coverage "^1.2.0" 1825 | istanbul-lib-hook "^1.2.0" 1826 | istanbul-lib-instrument "^1.10.1" 1827 | istanbul-lib-report "^1.1.4" 1828 | istanbul-lib-source-maps "^1.2.4" 1829 | istanbul-reports "^1.3.0" 1830 | js-yaml "^3.7.0" 1831 | mkdirp "^0.5.1" 1832 | once "^1.4.0" 1833 | 1834 | istanbul-lib-coverage@^1.2.0: 1835 | version "1.2.0" 1836 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" 1837 | 1838 | istanbul-lib-hook@^1.2.0: 1839 | version "1.2.0" 1840 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c" 1841 | dependencies: 1842 | append-transform "^0.4.0" 1843 | 1844 | istanbul-lib-instrument@^1.10.1: 1845 | version "1.10.1" 1846 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" 1847 | dependencies: 1848 | babel-generator "^6.18.0" 1849 | babel-template "^6.16.0" 1850 | babel-traverse "^6.18.0" 1851 | babel-types "^6.18.0" 1852 | babylon "^6.18.0" 1853 | istanbul-lib-coverage "^1.2.0" 1854 | semver "^5.3.0" 1855 | 1856 | istanbul-lib-report@^1.1.4: 1857 | version "1.1.4" 1858 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" 1859 | dependencies: 1860 | istanbul-lib-coverage "^1.2.0" 1861 | mkdirp "^0.5.1" 1862 | path-parse "^1.0.5" 1863 | supports-color "^3.1.2" 1864 | 1865 | istanbul-lib-source-maps@^1.2.4: 1866 | version "1.2.4" 1867 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7" 1868 | dependencies: 1869 | debug "^3.1.0" 1870 | istanbul-lib-coverage "^1.2.0" 1871 | mkdirp "^0.5.1" 1872 | rimraf "^2.6.1" 1873 | source-map "^0.5.3" 1874 | 1875 | istanbul-reports@^1.3.0: 1876 | version "1.3.0" 1877 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" 1878 | dependencies: 1879 | handlebars "^4.0.3" 1880 | 1881 | jest-changed-files@^23.0.1: 1882 | version "23.0.1" 1883 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.0.1.tgz#f79572d0720844ea5df84c2a448e862c2254f60c" 1884 | dependencies: 1885 | throat "^4.0.0" 1886 | 1887 | jest-cli@^23.1.0: 1888 | version "23.1.0" 1889 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.1.0.tgz#eb8bdd4ce0d15250892e31ad9b69bc99d2a8f6bf" 1890 | dependencies: 1891 | ansi-escapes "^3.0.0" 1892 | chalk "^2.0.1" 1893 | exit "^0.1.2" 1894 | glob "^7.1.2" 1895 | graceful-fs "^4.1.11" 1896 | import-local "^1.0.0" 1897 | is-ci "^1.0.10" 1898 | istanbul-api "^1.3.1" 1899 | istanbul-lib-coverage "^1.2.0" 1900 | istanbul-lib-instrument "^1.10.1" 1901 | istanbul-lib-source-maps "^1.2.4" 1902 | jest-changed-files "^23.0.1" 1903 | jest-config "^23.1.0" 1904 | jest-environment-jsdom "^23.1.0" 1905 | jest-get-type "^22.1.0" 1906 | jest-haste-map "^23.1.0" 1907 | jest-message-util "^23.1.0" 1908 | jest-regex-util "^23.0.0" 1909 | jest-resolve-dependencies "^23.0.1" 1910 | jest-runner "^23.1.0" 1911 | jest-runtime "^23.1.0" 1912 | jest-snapshot "^23.0.1" 1913 | jest-util "^23.1.0" 1914 | jest-validate "^23.0.1" 1915 | jest-watcher "^23.1.0" 1916 | jest-worker "^23.0.1" 1917 | micromatch "^2.3.11" 1918 | node-notifier "^5.2.1" 1919 | realpath-native "^1.0.0" 1920 | rimraf "^2.5.4" 1921 | slash "^1.0.0" 1922 | string-length "^2.0.0" 1923 | strip-ansi "^4.0.0" 1924 | which "^1.2.12" 1925 | yargs "^11.0.0" 1926 | 1927 | jest-config@^23.1.0: 1928 | version "23.1.0" 1929 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.1.0.tgz#708ca0f431d356ee424fb4895d3308006bdd8241" 1930 | dependencies: 1931 | babel-core "^6.0.0" 1932 | babel-jest "^23.0.1" 1933 | chalk "^2.0.1" 1934 | glob "^7.1.1" 1935 | jest-environment-jsdom "^23.1.0" 1936 | jest-environment-node "^23.1.0" 1937 | jest-get-type "^22.1.0" 1938 | jest-jasmine2 "^23.1.0" 1939 | jest-regex-util "^23.0.0" 1940 | jest-resolve "^23.1.0" 1941 | jest-util "^23.1.0" 1942 | jest-validate "^23.0.1" 1943 | pretty-format "^23.0.1" 1944 | 1945 | jest-diff@^23.0.1: 1946 | version "23.0.1" 1947 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.0.1.tgz#3d49137cee12c320a4b4d2b4a6fa6e82d491a16a" 1948 | dependencies: 1949 | chalk "^2.0.1" 1950 | diff "^3.2.0" 1951 | jest-get-type "^22.1.0" 1952 | pretty-format "^23.0.1" 1953 | 1954 | jest-docblock@^23.0.1: 1955 | version "23.0.1" 1956 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.0.1.tgz#deddd18333be5dc2415260a04ef3fce9276b5725" 1957 | dependencies: 1958 | detect-newline "^2.1.0" 1959 | 1960 | jest-each@^23.1.0: 1961 | version "23.1.0" 1962 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.1.0.tgz#16146b592c354867a5ae5e13cdf15c6c65b696c6" 1963 | dependencies: 1964 | chalk "^2.0.1" 1965 | pretty-format "^23.0.1" 1966 | 1967 | jest-environment-jsdom@^23.1.0: 1968 | version "23.1.0" 1969 | resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.1.0.tgz#85929914e23bed3577dac9755f4106d0697c479c" 1970 | dependencies: 1971 | jest-mock "^23.1.0" 1972 | jest-util "^23.1.0" 1973 | jsdom "^11.5.1" 1974 | 1975 | jest-environment-node@^23.1.0: 1976 | version "23.1.0" 1977 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.1.0.tgz#452c0bf949cfcbbacda1e1762eeed70bc784c7d5" 1978 | dependencies: 1979 | jest-mock "^23.1.0" 1980 | jest-util "^23.1.0" 1981 | 1982 | jest-get-type@^22.1.0: 1983 | version "22.4.3" 1984 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" 1985 | 1986 | jest-haste-map@^23.1.0: 1987 | version "23.1.0" 1988 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.1.0.tgz#18e6c7d5a8d27136f91b7d9852f85de0c7074c49" 1989 | dependencies: 1990 | fb-watchman "^2.0.0" 1991 | graceful-fs "^4.1.11" 1992 | jest-docblock "^23.0.1" 1993 | jest-serializer "^23.0.1" 1994 | jest-worker "^23.0.1" 1995 | micromatch "^2.3.11" 1996 | sane "^2.0.0" 1997 | 1998 | jest-jasmine2@^23.1.0: 1999 | version "23.1.0" 2000 | resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.1.0.tgz#4afab31729b654ddcd2b074add849396f13b30b8" 2001 | dependencies: 2002 | chalk "^2.0.1" 2003 | co "^4.6.0" 2004 | expect "^23.1.0" 2005 | is-generator-fn "^1.0.0" 2006 | jest-diff "^23.0.1" 2007 | jest-each "^23.1.0" 2008 | jest-matcher-utils "^23.0.1" 2009 | jest-message-util "^23.1.0" 2010 | jest-snapshot "^23.0.1" 2011 | jest-util "^23.1.0" 2012 | pretty-format "^23.0.1" 2013 | 2014 | jest-leak-detector@^23.0.1: 2015 | version "23.0.1" 2016 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.0.1.tgz#9dba07505ac3495c39d3ec09ac1e564599e861a0" 2017 | dependencies: 2018 | pretty-format "^23.0.1" 2019 | 2020 | jest-matcher-utils@^23.0.1: 2021 | version "23.0.1" 2022 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.0.1.tgz#0c6c0daedf9833c2a7f36236069efecb4c3f6e5f" 2023 | dependencies: 2024 | chalk "^2.0.1" 2025 | jest-get-type "^22.1.0" 2026 | pretty-format "^23.0.1" 2027 | 2028 | jest-message-util@^23.1.0: 2029 | version "23.1.0" 2030 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.1.0.tgz#9a809ba487ecac5ce511d4e698ee3b5ee2461ea9" 2031 | dependencies: 2032 | "@babel/code-frame" "^7.0.0-beta.35" 2033 | chalk "^2.0.1" 2034 | micromatch "^2.3.11" 2035 | slash "^1.0.0" 2036 | stack-utils "^1.0.1" 2037 | 2038 | jest-mock@^23.1.0: 2039 | version "23.1.0" 2040 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.1.0.tgz#a381c31b121ab1f60c462a2dadb7b86dcccac487" 2041 | 2042 | jest-regex-util@^23.0.0: 2043 | version "23.0.0" 2044 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.0.0.tgz#dd5c1fde0c46f4371314cf10f7a751a23f4e8f76" 2045 | 2046 | jest-resolve-dependencies@^23.0.1: 2047 | version "23.0.1" 2048 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.0.1.tgz#d01a10ddad9152c4cecdf5eac2b88571c4b6a64d" 2049 | dependencies: 2050 | jest-regex-util "^23.0.0" 2051 | jest-snapshot "^23.0.1" 2052 | 2053 | jest-resolve@^23.1.0: 2054 | version "23.1.0" 2055 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.1.0.tgz#b9e316eecebd6f00bc50a3960d1527bae65792d2" 2056 | dependencies: 2057 | browser-resolve "^1.11.2" 2058 | chalk "^2.0.1" 2059 | realpath-native "^1.0.0" 2060 | 2061 | jest-runner@^23.1.0: 2062 | version "23.1.0" 2063 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.1.0.tgz#fa20a933fff731a5432b3561e7f6426594fa29b5" 2064 | dependencies: 2065 | exit "^0.1.2" 2066 | graceful-fs "^4.1.11" 2067 | jest-config "^23.1.0" 2068 | jest-docblock "^23.0.1" 2069 | jest-haste-map "^23.1.0" 2070 | jest-jasmine2 "^23.1.0" 2071 | jest-leak-detector "^23.0.1" 2072 | jest-message-util "^23.1.0" 2073 | jest-runtime "^23.1.0" 2074 | jest-util "^23.1.0" 2075 | jest-worker "^23.0.1" 2076 | source-map-support "^0.5.6" 2077 | throat "^4.0.0" 2078 | 2079 | jest-runtime@^23.1.0: 2080 | version "23.1.0" 2081 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.1.0.tgz#b4ae0e87259ecacfd4a884b639db07cf4dd620af" 2082 | dependencies: 2083 | babel-core "^6.0.0" 2084 | babel-plugin-istanbul "^4.1.6" 2085 | chalk "^2.0.1" 2086 | convert-source-map "^1.4.0" 2087 | exit "^0.1.2" 2088 | fast-json-stable-stringify "^2.0.0" 2089 | graceful-fs "^4.1.11" 2090 | jest-config "^23.1.0" 2091 | jest-haste-map "^23.1.0" 2092 | jest-message-util "^23.1.0" 2093 | jest-regex-util "^23.0.0" 2094 | jest-resolve "^23.1.0" 2095 | jest-snapshot "^23.0.1" 2096 | jest-util "^23.1.0" 2097 | jest-validate "^23.0.1" 2098 | micromatch "^2.3.11" 2099 | realpath-native "^1.0.0" 2100 | slash "^1.0.0" 2101 | strip-bom "3.0.0" 2102 | write-file-atomic "^2.1.0" 2103 | yargs "^11.0.0" 2104 | 2105 | jest-serializer@^23.0.1: 2106 | version "23.0.1" 2107 | resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" 2108 | 2109 | jest-snapshot@^23.0.1: 2110 | version "23.0.1" 2111 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.0.1.tgz#6674fa19b9eb69a99cabecd415bddc42d6af3e7e" 2112 | dependencies: 2113 | chalk "^2.0.1" 2114 | jest-diff "^23.0.1" 2115 | jest-matcher-utils "^23.0.1" 2116 | mkdirp "^0.5.1" 2117 | natural-compare "^1.4.0" 2118 | pretty-format "^23.0.1" 2119 | 2120 | jest-util@^23.1.0: 2121 | version "23.1.0" 2122 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.1.0.tgz#c0251baf34644c6dd2fea78a962f4263ac55772d" 2123 | dependencies: 2124 | callsites "^2.0.0" 2125 | chalk "^2.0.1" 2126 | graceful-fs "^4.1.11" 2127 | is-ci "^1.0.10" 2128 | jest-message-util "^23.1.0" 2129 | mkdirp "^0.5.1" 2130 | slash "^1.0.0" 2131 | source-map "^0.6.0" 2132 | 2133 | jest-validate@^23.0.1: 2134 | version "23.0.1" 2135 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.0.1.tgz#cd9f01a89d26bb885f12a8667715e9c865a5754f" 2136 | dependencies: 2137 | chalk "^2.0.1" 2138 | jest-get-type "^22.1.0" 2139 | leven "^2.1.0" 2140 | pretty-format "^23.0.1" 2141 | 2142 | jest-watcher@^23.1.0: 2143 | version "23.1.0" 2144 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.1.0.tgz#a8d5842e38d9fb4afff823df6abb42a58ae6cdbd" 2145 | dependencies: 2146 | ansi-escapes "^3.0.0" 2147 | chalk "^2.0.1" 2148 | string-length "^2.0.0" 2149 | 2150 | jest-worker@^23.0.1: 2151 | version "23.0.1" 2152 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.0.1.tgz#9e649dd963ff4046026f91c4017f039a6aa4a7bc" 2153 | dependencies: 2154 | merge-stream "^1.0.1" 2155 | 2156 | jest@^23.1.0: 2157 | version "23.1.0" 2158 | resolved "https://registry.yarnpkg.com/jest/-/jest-23.1.0.tgz#bbb7f893100a11a742dd8bd0d047a54b0968ad1a" 2159 | dependencies: 2160 | import-local "^1.0.0" 2161 | jest-cli "^23.1.0" 2162 | 2163 | js-tokens@^3.0.0, js-tokens@^3.0.2: 2164 | version "3.0.2" 2165 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 2166 | 2167 | js-yaml@^3.7.0, js-yaml@^3.9.1: 2168 | version "3.11.0" 2169 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" 2170 | dependencies: 2171 | argparse "^1.0.7" 2172 | esprima "^4.0.0" 2173 | 2174 | jsbn@~0.1.0: 2175 | version "0.1.1" 2176 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 2177 | 2178 | jsdom@^11.5.1: 2179 | version "11.11.0" 2180 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.11.0.tgz#df486efad41aee96c59ad7a190e2449c7eb1110e" 2181 | dependencies: 2182 | abab "^1.0.4" 2183 | acorn "^5.3.0" 2184 | acorn-globals "^4.1.0" 2185 | array-equal "^1.0.0" 2186 | cssom ">= 0.3.2 < 0.4.0" 2187 | cssstyle ">= 0.3.1 < 0.4.0" 2188 | data-urls "^1.0.0" 2189 | domexception "^1.0.0" 2190 | escodegen "^1.9.0" 2191 | html-encoding-sniffer "^1.0.2" 2192 | left-pad "^1.2.0" 2193 | nwsapi "^2.0.0" 2194 | parse5 "4.0.0" 2195 | pn "^1.1.0" 2196 | request "^2.83.0" 2197 | request-promise-native "^1.0.5" 2198 | sax "^1.2.4" 2199 | symbol-tree "^3.2.2" 2200 | tough-cookie "^2.3.3" 2201 | w3c-hr-time "^1.0.1" 2202 | webidl-conversions "^4.0.2" 2203 | whatwg-encoding "^1.0.3" 2204 | whatwg-mimetype "^2.1.0" 2205 | whatwg-url "^6.4.1" 2206 | ws "^4.0.0" 2207 | xml-name-validator "^3.0.0" 2208 | 2209 | jsesc@^1.3.0: 2210 | version "1.3.0" 2211 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 2212 | 2213 | jsesc@^2.5.1: 2214 | version "2.5.1" 2215 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" 2216 | 2217 | jsesc@~0.5.0: 2218 | version "0.5.0" 2219 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 2220 | 2221 | json-schema-traverse@^0.3.0: 2222 | version "0.3.1" 2223 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 2224 | 2225 | json-schema@0.2.3: 2226 | version "0.2.3" 2227 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 2228 | 2229 | json-stable-stringify-without-jsonify@^1.0.1: 2230 | version "1.0.1" 2231 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 2232 | 2233 | json-stringify-safe@~5.0.1: 2234 | version "5.0.1" 2235 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 2236 | 2237 | json5@^0.5.1: 2238 | version "0.5.1" 2239 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 2240 | 2241 | jsprim@^1.2.2: 2242 | version "1.4.1" 2243 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 2244 | dependencies: 2245 | assert-plus "1.0.0" 2246 | extsprintf "1.3.0" 2247 | json-schema "0.2.3" 2248 | verror "1.10.0" 2249 | 2250 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 2251 | version "3.2.2" 2252 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 2253 | dependencies: 2254 | is-buffer "^1.1.5" 2255 | 2256 | kind-of@^4.0.0: 2257 | version "4.0.0" 2258 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 2259 | dependencies: 2260 | is-buffer "^1.1.5" 2261 | 2262 | kind-of@^5.0.0: 2263 | version "5.1.0" 2264 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 2265 | 2266 | kind-of@^6.0.0, kind-of@^6.0.2: 2267 | version "6.0.2" 2268 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 2269 | 2270 | lcid@^1.0.0: 2271 | version "1.0.0" 2272 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 2273 | dependencies: 2274 | invert-kv "^1.0.0" 2275 | 2276 | left-pad@^1.2.0: 2277 | version "1.3.0" 2278 | resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" 2279 | 2280 | leven@^2.1.0: 2281 | version "2.1.0" 2282 | resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" 2283 | 2284 | levn@^0.3.0, levn@~0.3.0: 2285 | version "0.3.0" 2286 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 2287 | dependencies: 2288 | prelude-ls "~1.1.2" 2289 | type-check "~0.3.2" 2290 | 2291 | load-json-file@^1.0.0: 2292 | version "1.1.0" 2293 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 2294 | dependencies: 2295 | graceful-fs "^4.1.2" 2296 | parse-json "^2.2.0" 2297 | pify "^2.0.0" 2298 | pinkie-promise "^2.0.0" 2299 | strip-bom "^2.0.0" 2300 | 2301 | locate-path@^2.0.0: 2302 | version "2.0.0" 2303 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 2304 | dependencies: 2305 | p-locate "^2.0.0" 2306 | path-exists "^3.0.0" 2307 | 2308 | lodash.sortby@^4.7.0: 2309 | version "4.7.0" 2310 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 2311 | 2312 | lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: 2313 | version "4.17.10" 2314 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 2315 | 2316 | loose-envify@^1.0.0: 2317 | version "1.3.1" 2318 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 2319 | dependencies: 2320 | js-tokens "^3.0.0" 2321 | 2322 | lru-cache@^4.0.1: 2323 | version "4.1.3" 2324 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" 2325 | dependencies: 2326 | pseudomap "^1.0.2" 2327 | yallist "^2.1.2" 2328 | 2329 | magic-string@^0.22.4: 2330 | version "0.22.5" 2331 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" 2332 | dependencies: 2333 | vlq "^0.2.2" 2334 | 2335 | magic-string@^0.25.3: 2336 | version "0.25.4" 2337 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" 2338 | dependencies: 2339 | sourcemap-codec "^1.4.4" 2340 | 2341 | makeerror@1.0.x: 2342 | version "1.0.11" 2343 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" 2344 | dependencies: 2345 | tmpl "1.0.x" 2346 | 2347 | map-cache@^0.2.2: 2348 | version "0.2.2" 2349 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 2350 | 2351 | map-visit@^1.0.0: 2352 | version "1.0.0" 2353 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 2354 | dependencies: 2355 | object-visit "^1.0.0" 2356 | 2357 | math-random@^1.0.1: 2358 | version "1.0.1" 2359 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" 2360 | 2361 | mem@^1.1.0: 2362 | version "1.1.0" 2363 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 2364 | dependencies: 2365 | mimic-fn "^1.0.0" 2366 | 2367 | merge-stream@^1.0.1: 2368 | version "1.0.1" 2369 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" 2370 | dependencies: 2371 | readable-stream "^2.0.1" 2372 | 2373 | merge@^1.1.3: 2374 | version "1.2.0" 2375 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" 2376 | 2377 | micromatch@^2.1.5, micromatch@^2.3.11: 2378 | version "2.3.11" 2379 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2380 | dependencies: 2381 | arr-diff "^2.0.0" 2382 | array-unique "^0.2.1" 2383 | braces "^1.8.2" 2384 | expand-brackets "^0.1.4" 2385 | extglob "^0.3.1" 2386 | filename-regex "^2.0.0" 2387 | is-extglob "^1.0.0" 2388 | is-glob "^2.0.1" 2389 | kind-of "^3.0.2" 2390 | normalize-path "^2.0.1" 2391 | object.omit "^2.0.0" 2392 | parse-glob "^3.0.4" 2393 | regex-cache "^0.4.2" 2394 | 2395 | micromatch@^3.1.4, micromatch@^3.1.8: 2396 | version "3.1.10" 2397 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 2398 | dependencies: 2399 | arr-diff "^4.0.0" 2400 | array-unique "^0.3.2" 2401 | braces "^2.3.1" 2402 | define-property "^2.0.2" 2403 | extend-shallow "^3.0.2" 2404 | extglob "^2.0.4" 2405 | fragment-cache "^0.2.1" 2406 | kind-of "^6.0.2" 2407 | nanomatch "^1.2.9" 2408 | object.pick "^1.3.0" 2409 | regex-not "^1.0.0" 2410 | snapdragon "^0.8.1" 2411 | to-regex "^3.0.2" 2412 | 2413 | mime-db@~1.33.0: 2414 | version "1.33.0" 2415 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 2416 | 2417 | mime-types@^2.1.12, mime-types@~2.1.17: 2418 | version "2.1.18" 2419 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 2420 | dependencies: 2421 | mime-db "~1.33.0" 2422 | 2423 | mimic-fn@^1.0.0: 2424 | version "1.2.0" 2425 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 2426 | 2427 | minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: 2428 | version "3.0.4" 2429 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2430 | dependencies: 2431 | brace-expansion "^1.1.7" 2432 | 2433 | minimist@0.0.8: 2434 | version "0.0.8" 2435 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2436 | 2437 | minimist@^1.1.1, minimist@^1.2.0: 2438 | version "1.2.0" 2439 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2440 | 2441 | minimist@~0.0.1: 2442 | version "0.0.10" 2443 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 2444 | 2445 | minipass@^2.2.1, minipass@^2.2.4: 2446 | version "2.3.3" 2447 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" 2448 | dependencies: 2449 | safe-buffer "^5.1.2" 2450 | yallist "^3.0.0" 2451 | 2452 | minizlib@^1.1.0: 2453 | version "1.1.0" 2454 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" 2455 | dependencies: 2456 | minipass "^2.2.1" 2457 | 2458 | mixin-deep@^1.2.0: 2459 | version "1.3.1" 2460 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 2461 | dependencies: 2462 | for-in "^1.0.2" 2463 | is-extendable "^1.0.1" 2464 | 2465 | mkdirp@^0.5.0, mkdirp@^0.5.1: 2466 | version "0.5.1" 2467 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2468 | dependencies: 2469 | minimist "0.0.8" 2470 | 2471 | ms@2.0.0: 2472 | version "2.0.0" 2473 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2474 | 2475 | mute-stream@0.0.7: 2476 | version "0.0.7" 2477 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 2478 | 2479 | nan@^2.9.2: 2480 | version "2.10.0" 2481 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 2482 | 2483 | nanomatch@^1.2.9: 2484 | version "1.2.9" 2485 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" 2486 | dependencies: 2487 | arr-diff "^4.0.0" 2488 | array-unique "^0.3.2" 2489 | define-property "^2.0.2" 2490 | extend-shallow "^3.0.2" 2491 | fragment-cache "^0.2.1" 2492 | is-odd "^2.0.0" 2493 | is-windows "^1.0.2" 2494 | kind-of "^6.0.2" 2495 | object.pick "^1.3.0" 2496 | regex-not "^1.0.0" 2497 | snapdragon "^0.8.1" 2498 | to-regex "^3.0.1" 2499 | 2500 | natural-compare@^1.4.0: 2501 | version "1.4.0" 2502 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2503 | 2504 | needle@^2.2.0: 2505 | version "2.2.1" 2506 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" 2507 | dependencies: 2508 | debug "^2.1.2" 2509 | iconv-lite "^0.4.4" 2510 | sax "^1.2.4" 2511 | 2512 | neo-async@^2.6.0: 2513 | version "2.6.1" 2514 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" 2515 | 2516 | node-int64@^0.4.0: 2517 | version "0.4.0" 2518 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" 2519 | 2520 | node-notifier@^5.2.1: 2521 | version "5.2.1" 2522 | resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" 2523 | dependencies: 2524 | growly "^1.3.0" 2525 | semver "^5.4.1" 2526 | shellwords "^0.1.1" 2527 | which "^1.3.0" 2528 | 2529 | node-pre-gyp@^0.10.0: 2530 | version "0.10.0" 2531 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" 2532 | dependencies: 2533 | detect-libc "^1.0.2" 2534 | mkdirp "^0.5.1" 2535 | needle "^2.2.0" 2536 | nopt "^4.0.1" 2537 | npm-packlist "^1.1.6" 2538 | npmlog "^4.0.2" 2539 | rc "^1.1.7" 2540 | rimraf "^2.6.1" 2541 | semver "^5.3.0" 2542 | tar "^4" 2543 | 2544 | nopt@^4.0.1: 2545 | version "4.0.1" 2546 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2547 | dependencies: 2548 | abbrev "1" 2549 | osenv "^0.1.4" 2550 | 2551 | normalize-package-data@^2.3.2: 2552 | version "2.4.0" 2553 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 2554 | dependencies: 2555 | hosted-git-info "^2.1.4" 2556 | is-builtin-module "^1.0.0" 2557 | semver "2 || 3 || 4 || 5" 2558 | validate-npm-package-license "^3.0.1" 2559 | 2560 | normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: 2561 | version "2.1.1" 2562 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2563 | dependencies: 2564 | remove-trailing-separator "^1.0.1" 2565 | 2566 | npm-bundled@^1.0.1: 2567 | version "1.0.3" 2568 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" 2569 | 2570 | npm-packlist@^1.1.6: 2571 | version "1.1.10" 2572 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" 2573 | dependencies: 2574 | ignore-walk "^3.0.1" 2575 | npm-bundled "^1.0.1" 2576 | 2577 | npm-run-path@^2.0.0: 2578 | version "2.0.2" 2579 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2580 | dependencies: 2581 | path-key "^2.0.0" 2582 | 2583 | npmlog@^4.0.2: 2584 | version "4.1.2" 2585 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2586 | dependencies: 2587 | are-we-there-yet "~1.1.2" 2588 | console-control-strings "~1.1.0" 2589 | gauge "~2.7.3" 2590 | set-blocking "~2.0.0" 2591 | 2592 | number-is-nan@^1.0.0: 2593 | version "1.0.1" 2594 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2595 | 2596 | nwsapi@^2.0.0: 2597 | version "2.0.1" 2598 | resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.1.tgz#a50d59a2dcb14b6931401171713ced2d0eb3468f" 2599 | 2600 | oauth-sign@~0.8.2: 2601 | version "0.8.2" 2602 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2603 | 2604 | object-assign@^4.0.1, object-assign@^4.1.0: 2605 | version "4.1.1" 2606 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2607 | 2608 | object-copy@^0.1.0: 2609 | version "0.1.0" 2610 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2611 | dependencies: 2612 | copy-descriptor "^0.1.0" 2613 | define-property "^0.2.5" 2614 | kind-of "^3.0.3" 2615 | 2616 | object-keys@^1.0.8: 2617 | version "1.0.11" 2618 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 2619 | 2620 | object-visit@^1.0.0: 2621 | version "1.0.1" 2622 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2623 | dependencies: 2624 | isobject "^3.0.0" 2625 | 2626 | object.getownpropertydescriptors@^2.0.3: 2627 | version "2.0.3" 2628 | resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" 2629 | dependencies: 2630 | define-properties "^1.1.2" 2631 | es-abstract "^1.5.1" 2632 | 2633 | object.omit@^2.0.0: 2634 | version "2.0.1" 2635 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2636 | dependencies: 2637 | for-own "^0.1.4" 2638 | is-extendable "^0.1.1" 2639 | 2640 | object.pick@^1.3.0: 2641 | version "1.3.0" 2642 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2643 | dependencies: 2644 | isobject "^3.0.1" 2645 | 2646 | once@^1.3.0, once@^1.4.0: 2647 | version "1.4.0" 2648 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2649 | dependencies: 2650 | wrappy "1" 2651 | 2652 | onetime@^2.0.0: 2653 | version "2.0.1" 2654 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 2655 | dependencies: 2656 | mimic-fn "^1.0.0" 2657 | 2658 | optimist@^0.6.1: 2659 | version "0.6.1" 2660 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 2661 | dependencies: 2662 | minimist "~0.0.1" 2663 | wordwrap "~0.0.2" 2664 | 2665 | optionator@^0.8.1, optionator@^0.8.2: 2666 | version "0.8.2" 2667 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2668 | dependencies: 2669 | deep-is "~0.1.3" 2670 | fast-levenshtein "~2.0.4" 2671 | levn "~0.3.0" 2672 | prelude-ls "~1.1.2" 2673 | type-check "~0.3.2" 2674 | wordwrap "~1.0.0" 2675 | 2676 | os-homedir@^1.0.0, os-homedir@^1.0.1: 2677 | version "1.0.2" 2678 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2679 | 2680 | os-homedir@^2.0.0: 2681 | version "2.0.0" 2682 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-2.0.0.tgz#a0c76bb001a8392a503cbd46e7e650b3423a923c" 2683 | 2684 | os-locale@^2.0.0: 2685 | version "2.1.0" 2686 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 2687 | dependencies: 2688 | execa "^0.7.0" 2689 | lcid "^1.0.0" 2690 | mem "^1.1.0" 2691 | 2692 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: 2693 | version "1.0.2" 2694 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2695 | 2696 | osenv@^0.1.4: 2697 | version "0.1.5" 2698 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2699 | dependencies: 2700 | os-homedir "^1.0.0" 2701 | os-tmpdir "^1.0.0" 2702 | 2703 | p-finally@^1.0.0: 2704 | version "1.0.0" 2705 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2706 | 2707 | p-limit@^1.1.0: 2708 | version "1.2.0" 2709 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" 2710 | dependencies: 2711 | p-try "^1.0.0" 2712 | 2713 | p-locate@^2.0.0: 2714 | version "2.0.0" 2715 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2716 | dependencies: 2717 | p-limit "^1.1.0" 2718 | 2719 | p-try@^1.0.0: 2720 | version "1.0.0" 2721 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2722 | 2723 | parse-glob@^3.0.4: 2724 | version "3.0.4" 2725 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2726 | dependencies: 2727 | glob-base "^0.3.0" 2728 | is-dotfile "^1.0.0" 2729 | is-extglob "^1.0.0" 2730 | is-glob "^2.0.0" 2731 | 2732 | parse-json@^2.2.0: 2733 | version "2.2.0" 2734 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2735 | dependencies: 2736 | error-ex "^1.2.0" 2737 | 2738 | parse5@4.0.0: 2739 | version "4.0.0" 2740 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" 2741 | 2742 | pascalcase@^0.1.1: 2743 | version "0.1.1" 2744 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2745 | 2746 | path-exists@^2.0.0: 2747 | version "2.1.0" 2748 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2749 | dependencies: 2750 | pinkie-promise "^2.0.0" 2751 | 2752 | path-exists@^3.0.0: 2753 | version "3.0.0" 2754 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2755 | 2756 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 2757 | version "1.0.1" 2758 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2759 | 2760 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 2761 | version "1.0.2" 2762 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2763 | 2764 | path-key@^2.0.0: 2765 | version "2.0.1" 2766 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2767 | 2768 | path-parse@^1.0.5: 2769 | version "1.0.5" 2770 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 2771 | 2772 | path-type@^1.0.0: 2773 | version "1.1.0" 2774 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2775 | dependencies: 2776 | graceful-fs "^4.1.2" 2777 | pify "^2.0.0" 2778 | pinkie-promise "^2.0.0" 2779 | 2780 | performance-now@^2.1.0: 2781 | version "2.1.0" 2782 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 2783 | 2784 | pify@^2.0.0: 2785 | version "2.3.0" 2786 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2787 | 2788 | pinkie-promise@^2.0.0: 2789 | version "2.0.1" 2790 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2791 | dependencies: 2792 | pinkie "^2.0.0" 2793 | 2794 | pinkie@^2.0.0: 2795 | version "2.0.4" 2796 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2797 | 2798 | pkg-dir@^2.0.0: 2799 | version "2.0.0" 2800 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2801 | dependencies: 2802 | find-up "^2.1.0" 2803 | 2804 | pluralize@^7.0.0: 2805 | version "7.0.0" 2806 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 2807 | 2808 | pn@^1.1.0: 2809 | version "1.1.0" 2810 | resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" 2811 | 2812 | posix-character-classes@^0.1.0: 2813 | version "0.1.1" 2814 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2815 | 2816 | prelude-ls@~1.1.2: 2817 | version "1.1.2" 2818 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2819 | 2820 | preserve@^0.2.0: 2821 | version "0.2.0" 2822 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2823 | 2824 | pretty-format@^23.0.1: 2825 | version "23.0.1" 2826 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.1.tgz#d61d065268e4c759083bccbca27a01ad7c7601f4" 2827 | dependencies: 2828 | ansi-regex "^3.0.0" 2829 | ansi-styles "^3.2.0" 2830 | 2831 | private@^0.1.8: 2832 | version "0.1.8" 2833 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 2834 | 2835 | process-nextick-args@~2.0.0: 2836 | version "2.0.0" 2837 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2838 | 2839 | progress@^2.0.0: 2840 | version "2.0.0" 2841 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 2842 | 2843 | pseudomap@^1.0.2: 2844 | version "1.0.2" 2845 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2846 | 2847 | punycode@^1.4.1: 2848 | version "1.4.1" 2849 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2850 | 2851 | punycode@^2.1.0: 2852 | version "2.1.1" 2853 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2854 | 2855 | qs@~6.5.1: 2856 | version "6.5.2" 2857 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 2858 | 2859 | randomatic@^3.0.0: 2860 | version "3.0.0" 2861 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" 2862 | dependencies: 2863 | is-number "^4.0.0" 2864 | kind-of "^6.0.0" 2865 | math-random "^1.0.1" 2866 | 2867 | rc@^1.1.7: 2868 | version "1.2.7" 2869 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" 2870 | dependencies: 2871 | deep-extend "^0.5.1" 2872 | ini "~1.3.0" 2873 | minimist "^1.2.0" 2874 | strip-json-comments "~2.0.1" 2875 | 2876 | read-pkg-up@^1.0.1: 2877 | version "1.0.1" 2878 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2879 | dependencies: 2880 | find-up "^1.0.0" 2881 | read-pkg "^1.0.0" 2882 | 2883 | read-pkg@^1.0.0: 2884 | version "1.1.0" 2885 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2886 | dependencies: 2887 | load-json-file "^1.0.0" 2888 | normalize-package-data "^2.3.2" 2889 | path-type "^1.0.0" 2890 | 2891 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2: 2892 | version "2.3.6" 2893 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2894 | dependencies: 2895 | core-util-is "~1.0.0" 2896 | inherits "~2.0.3" 2897 | isarray "~1.0.0" 2898 | process-nextick-args "~2.0.0" 2899 | safe-buffer "~5.1.1" 2900 | string_decoder "~1.1.1" 2901 | util-deprecate "~1.0.1" 2902 | 2903 | readdirp@^2.0.0: 2904 | version "2.1.0" 2905 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 2906 | dependencies: 2907 | graceful-fs "^4.1.2" 2908 | minimatch "^3.0.2" 2909 | readable-stream "^2.0.2" 2910 | set-immediate-shim "^1.0.1" 2911 | 2912 | realpath-native@^1.0.0: 2913 | version "1.0.0" 2914 | resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" 2915 | dependencies: 2916 | util.promisify "^1.0.0" 2917 | 2918 | regenerate-unicode-properties@^8.1.0: 2919 | version "8.1.0" 2920 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" 2921 | dependencies: 2922 | regenerate "^1.4.0" 2923 | 2924 | regenerate@^1.4.0: 2925 | version "1.4.0" 2926 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 2927 | 2928 | regenerator-runtime@^0.11.0: 2929 | version "0.11.1" 2930 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 2931 | 2932 | regex-cache@^0.4.2: 2933 | version "0.4.4" 2934 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 2935 | dependencies: 2936 | is-equal-shallow "^0.1.3" 2937 | 2938 | regex-not@^1.0.0, regex-not@^1.0.2: 2939 | version "1.0.2" 2940 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2941 | dependencies: 2942 | extend-shallow "^3.0.2" 2943 | safe-regex "^1.1.0" 2944 | 2945 | regexpp@^1.0.1: 2946 | version "1.1.0" 2947 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 2948 | 2949 | regexpu-core@^4.5.4: 2950 | version "4.6.0" 2951 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" 2952 | dependencies: 2953 | regenerate "^1.4.0" 2954 | regenerate-unicode-properties "^8.1.0" 2955 | regjsgen "^0.5.0" 2956 | regjsparser "^0.6.0" 2957 | unicode-match-property-ecmascript "^1.0.4" 2958 | unicode-match-property-value-ecmascript "^1.1.0" 2959 | 2960 | regjsgen@^0.5.0: 2961 | version "0.5.1" 2962 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" 2963 | 2964 | regjsparser@^0.6.0: 2965 | version "0.6.2" 2966 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96" 2967 | dependencies: 2968 | jsesc "~0.5.0" 2969 | 2970 | remove-trailing-separator@^1.0.1: 2971 | version "1.1.0" 2972 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2973 | 2974 | repeat-element@^1.1.2: 2975 | version "1.1.2" 2976 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2977 | 2978 | repeat-string@^1.5.2, repeat-string@^1.6.1: 2979 | version "1.6.1" 2980 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2981 | 2982 | repeating@^2.0.0: 2983 | version "2.0.1" 2984 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2985 | dependencies: 2986 | is-finite "^1.0.0" 2987 | 2988 | request-promise-core@1.1.1: 2989 | version "1.1.1" 2990 | resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" 2991 | dependencies: 2992 | lodash "^4.13.1" 2993 | 2994 | request-promise-native@^1.0.5: 2995 | version "1.0.5" 2996 | resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" 2997 | dependencies: 2998 | request-promise-core "1.1.1" 2999 | stealthy-require "^1.1.0" 3000 | tough-cookie ">=2.3.3" 3001 | 3002 | request@^2.83.0: 3003 | version "2.87.0" 3004 | resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" 3005 | dependencies: 3006 | aws-sign2 "~0.7.0" 3007 | aws4 "^1.6.0" 3008 | caseless "~0.12.0" 3009 | combined-stream "~1.0.5" 3010 | extend "~3.0.1" 3011 | forever-agent "~0.6.1" 3012 | form-data "~2.3.1" 3013 | har-validator "~5.0.3" 3014 | http-signature "~1.2.0" 3015 | is-typedarray "~1.0.0" 3016 | isstream "~0.1.2" 3017 | json-stringify-safe "~5.0.1" 3018 | mime-types "~2.1.17" 3019 | oauth-sign "~0.8.2" 3020 | performance-now "^2.1.0" 3021 | qs "~6.5.1" 3022 | safe-buffer "^5.1.1" 3023 | tough-cookie "~2.3.3" 3024 | tunnel-agent "^0.6.0" 3025 | uuid "^3.1.0" 3026 | 3027 | require-directory@^2.1.1: 3028 | version "2.1.1" 3029 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 3030 | 3031 | require-main-filename@^1.0.1: 3032 | version "1.0.1" 3033 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 3034 | 3035 | require-relative@0.8.7: 3036 | version "0.8.7" 3037 | resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" 3038 | 3039 | require-uncached@^1.0.3: 3040 | version "1.0.3" 3041 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 3042 | dependencies: 3043 | caller-path "^0.1.0" 3044 | resolve-from "^1.0.0" 3045 | 3046 | resolve-cwd@^2.0.0: 3047 | version "2.0.0" 3048 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" 3049 | dependencies: 3050 | resolve-from "^3.0.0" 3051 | 3052 | resolve-from@^1.0.0: 3053 | version "1.0.1" 3054 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 3055 | 3056 | resolve-from@^3.0.0: 3057 | version "3.0.0" 3058 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" 3059 | 3060 | resolve-url@^0.2.1: 3061 | version "0.2.1" 3062 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 3063 | 3064 | resolve@1.1.7: 3065 | version "1.1.7" 3066 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" 3067 | 3068 | restore-cursor@^2.0.0: 3069 | version "2.0.0" 3070 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 3071 | dependencies: 3072 | onetime "^2.0.0" 3073 | signal-exit "^3.0.2" 3074 | 3075 | ret@~0.1.10: 3076 | version "0.1.15" 3077 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 3078 | 3079 | rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1: 3080 | version "2.6.2" 3081 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 3082 | dependencies: 3083 | glob "^7.0.5" 3084 | 3085 | rollup-plugin-alias@^1.4.0: 3086 | version "1.4.0" 3087 | resolved "https://registry.yarnpkg.com/rollup-plugin-alias/-/rollup-plugin-alias-1.4.0.tgz#120cba7c46621c03138f0ca6fd5dd2ade9872db9" 3088 | dependencies: 3089 | slash "^1.0.0" 3090 | 3091 | rollup-plugin-buble@^0.19.2: 3092 | version "0.19.8" 3093 | resolved "https://registry.yarnpkg.com/rollup-plugin-buble/-/rollup-plugin-buble-0.19.8.tgz#f9232e2bb62a7573d04f9705c1bd6f02c2a02c6a" 3094 | dependencies: 3095 | buble "^0.19.8" 3096 | rollup-pluginutils "^2.3.3" 3097 | 3098 | rollup-pluginutils@^2.0.1: 3099 | version "2.3.0" 3100 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.0.tgz#478ace04bd7f6da2e724356ca798214884738fc4" 3101 | dependencies: 3102 | estree-walker "^0.5.2" 3103 | micromatch "^2.3.11" 3104 | 3105 | rollup-pluginutils@^2.3.3: 3106 | version "2.8.2" 3107 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 3108 | dependencies: 3109 | estree-walker "^0.6.1" 3110 | 3111 | rollup-watch@^4.3.1: 3112 | version "4.3.1" 3113 | resolved "https://registry.yarnpkg.com/rollup-watch/-/rollup-watch-4.3.1.tgz#5aa1eaeab787addf368905d102b39d6fc5ce4a8b" 3114 | dependencies: 3115 | chokidar "^1.7.0" 3116 | require-relative "0.8.7" 3117 | rollup-pluginutils "^2.0.1" 3118 | 3119 | rollup@^0.59.4: 3120 | version "0.59.4" 3121 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.59.4.tgz#6f80f7017c22667ff1bf3e62adf8624a44cc44aa" 3122 | dependencies: 3123 | "@types/estree" "0.0.39" 3124 | "@types/node" "*" 3125 | 3126 | rsvp@^3.3.3: 3127 | version "3.6.2" 3128 | resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" 3129 | 3130 | run-async@^2.2.0: 3131 | version "2.3.0" 3132 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 3133 | dependencies: 3134 | is-promise "^2.1.0" 3135 | 3136 | rx-lite-aggregates@^4.0.8: 3137 | version "4.0.8" 3138 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 3139 | dependencies: 3140 | rx-lite "*" 3141 | 3142 | rx-lite@*, rx-lite@^4.0.8: 3143 | version "4.0.8" 3144 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 3145 | 3146 | rxjs@^7.5.5: 3147 | version "7.5.5" 3148 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" 3149 | integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== 3150 | dependencies: 3151 | tslib "^2.1.0" 3152 | 3153 | safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 3154 | version "5.1.2" 3155 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 3156 | 3157 | safe-regex@^1.1.0: 3158 | version "1.1.0" 3159 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 3160 | dependencies: 3161 | ret "~0.1.10" 3162 | 3163 | "safer-buffer@>= 2.1.2 < 3": 3164 | version "2.1.2" 3165 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 3166 | 3167 | sane@^2.0.0: 3168 | version "2.5.2" 3169 | resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" 3170 | dependencies: 3171 | anymatch "^2.0.0" 3172 | capture-exit "^1.2.0" 3173 | exec-sh "^0.2.0" 3174 | fb-watchman "^2.0.0" 3175 | micromatch "^3.1.4" 3176 | minimist "^1.1.1" 3177 | walker "~1.0.5" 3178 | watch "~0.18.0" 3179 | optionalDependencies: 3180 | fsevents "^1.2.3" 3181 | 3182 | sax@^1.2.4: 3183 | version "1.2.4" 3184 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 3185 | 3186 | "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: 3187 | version "5.5.0" 3188 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 3189 | 3190 | set-blocking@^2.0.0, set-blocking@~2.0.0: 3191 | version "2.0.0" 3192 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 3193 | 3194 | set-immediate-shim@^1.0.1: 3195 | version "1.0.1" 3196 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 3197 | 3198 | set-value@^0.4.3: 3199 | version "0.4.3" 3200 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 3201 | dependencies: 3202 | extend-shallow "^2.0.1" 3203 | is-extendable "^0.1.1" 3204 | is-plain-object "^2.0.1" 3205 | to-object-path "^0.3.0" 3206 | 3207 | set-value@^2.0.0: 3208 | version "2.0.0" 3209 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 3210 | dependencies: 3211 | extend-shallow "^2.0.1" 3212 | is-extendable "^0.1.1" 3213 | is-plain-object "^2.0.3" 3214 | split-string "^3.0.1" 3215 | 3216 | shebang-command@^1.2.0: 3217 | version "1.2.0" 3218 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 3219 | dependencies: 3220 | shebang-regex "^1.0.0" 3221 | 3222 | shebang-regex@^1.0.0: 3223 | version "1.0.0" 3224 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 3225 | 3226 | shellwords@^0.1.1: 3227 | version "0.1.1" 3228 | resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" 3229 | 3230 | signal-exit@^3.0.0, signal-exit@^3.0.2: 3231 | version "3.0.2" 3232 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 3233 | 3234 | slash@^1.0.0: 3235 | version "1.0.0" 3236 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 3237 | 3238 | slice-ansi@1.0.0: 3239 | version "1.0.0" 3240 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 3241 | dependencies: 3242 | is-fullwidth-code-point "^2.0.0" 3243 | 3244 | snapdragon-node@^2.0.1: 3245 | version "2.1.1" 3246 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 3247 | dependencies: 3248 | define-property "^1.0.0" 3249 | isobject "^3.0.0" 3250 | snapdragon-util "^3.0.1" 3251 | 3252 | snapdragon-util@^3.0.1: 3253 | version "3.0.1" 3254 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 3255 | dependencies: 3256 | kind-of "^3.2.0" 3257 | 3258 | snapdragon@^0.8.1: 3259 | version "0.8.2" 3260 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 3261 | dependencies: 3262 | base "^0.11.1" 3263 | debug "^2.2.0" 3264 | define-property "^0.2.5" 3265 | extend-shallow "^2.0.1" 3266 | map-cache "^0.2.2" 3267 | source-map "^0.5.6" 3268 | source-map-resolve "^0.5.0" 3269 | use "^3.1.0" 3270 | 3271 | source-map-resolve@^0.5.0: 3272 | version "0.5.2" 3273 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 3274 | dependencies: 3275 | atob "^2.1.1" 3276 | decode-uri-component "^0.2.0" 3277 | resolve-url "^0.2.1" 3278 | source-map-url "^0.4.0" 3279 | urix "^0.1.0" 3280 | 3281 | source-map-support@^0.4.15: 3282 | version "0.4.18" 3283 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 3284 | dependencies: 3285 | source-map "^0.5.6" 3286 | 3287 | source-map-support@^0.5.6: 3288 | version "0.5.6" 3289 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 3290 | dependencies: 3291 | buffer-from "^1.0.0" 3292 | source-map "^0.6.0" 3293 | 3294 | source-map-url@^0.4.0: 3295 | version "0.4.0" 3296 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 3297 | 3298 | source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: 3299 | version "0.5.7" 3300 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 3301 | 3302 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 3303 | version "0.6.1" 3304 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 3305 | 3306 | sourcemap-codec@^1.4.4: 3307 | version "1.4.6" 3308 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" 3309 | 3310 | spdx-correct@^3.0.0: 3311 | version "3.0.0" 3312 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 3313 | dependencies: 3314 | spdx-expression-parse "^3.0.0" 3315 | spdx-license-ids "^3.0.0" 3316 | 3317 | spdx-exceptions@^2.1.0: 3318 | version "2.1.0" 3319 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 3320 | 3321 | spdx-expression-parse@^3.0.0: 3322 | version "3.0.0" 3323 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 3324 | dependencies: 3325 | spdx-exceptions "^2.1.0" 3326 | spdx-license-ids "^3.0.0" 3327 | 3328 | spdx-license-ids@^3.0.0: 3329 | version "3.0.0" 3330 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 3331 | 3332 | split-string@^3.0.1, split-string@^3.0.2: 3333 | version "3.1.0" 3334 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 3335 | dependencies: 3336 | extend-shallow "^3.0.0" 3337 | 3338 | sprintf-js@~1.0.2: 3339 | version "1.0.3" 3340 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 3341 | 3342 | sshpk@^1.7.0: 3343 | version "1.14.1" 3344 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 3345 | dependencies: 3346 | asn1 "~0.2.3" 3347 | assert-plus "^1.0.0" 3348 | dashdash "^1.12.0" 3349 | getpass "^0.1.1" 3350 | optionalDependencies: 3351 | bcrypt-pbkdf "^1.0.0" 3352 | ecc-jsbn "~0.1.1" 3353 | jsbn "~0.1.0" 3354 | tweetnacl "~0.14.0" 3355 | 3356 | stack-utils@^1.0.1: 3357 | version "1.0.1" 3358 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" 3359 | 3360 | static-extend@^0.1.1: 3361 | version "0.1.2" 3362 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 3363 | dependencies: 3364 | define-property "^0.2.5" 3365 | object-copy "^0.1.0" 3366 | 3367 | stealthy-require@^1.1.0: 3368 | version "1.1.1" 3369 | resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" 3370 | 3371 | string-length@^2.0.0: 3372 | version "2.0.0" 3373 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" 3374 | dependencies: 3375 | astral-regex "^1.0.0" 3376 | strip-ansi "^4.0.0" 3377 | 3378 | string-width@^1.0.1, string-width@^1.0.2: 3379 | version "1.0.2" 3380 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3381 | dependencies: 3382 | code-point-at "^1.0.0" 3383 | is-fullwidth-code-point "^1.0.0" 3384 | strip-ansi "^3.0.0" 3385 | 3386 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 3387 | version "2.1.1" 3388 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 3389 | dependencies: 3390 | is-fullwidth-code-point "^2.0.0" 3391 | strip-ansi "^4.0.0" 3392 | 3393 | string_decoder@~1.1.1: 3394 | version "1.1.1" 3395 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3396 | dependencies: 3397 | safe-buffer "~5.1.0" 3398 | 3399 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3400 | version "3.0.1" 3401 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3402 | dependencies: 3403 | ansi-regex "^2.0.0" 3404 | 3405 | strip-ansi@^4.0.0: 3406 | version "4.0.0" 3407 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3408 | dependencies: 3409 | ansi-regex "^3.0.0" 3410 | 3411 | strip-bom@3.0.0: 3412 | version "3.0.0" 3413 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3414 | 3415 | strip-bom@^2.0.0: 3416 | version "2.0.0" 3417 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 3418 | dependencies: 3419 | is-utf8 "^0.2.0" 3420 | 3421 | strip-eof@^1.0.0: 3422 | version "1.0.0" 3423 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3424 | 3425 | strip-json-comments@~2.0.1: 3426 | version "2.0.1" 3427 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3428 | 3429 | supports-color@^2.0.0: 3430 | version "2.0.0" 3431 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3432 | 3433 | supports-color@^3.1.2: 3434 | version "3.2.3" 3435 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 3436 | dependencies: 3437 | has-flag "^1.0.0" 3438 | 3439 | supports-color@^5.3.0: 3440 | version "5.4.0" 3441 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 3442 | dependencies: 3443 | has-flag "^3.0.0" 3444 | 3445 | symbol-tree@^3.2.2: 3446 | version "3.2.2" 3447 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" 3448 | 3449 | table@4.0.2: 3450 | version "4.0.2" 3451 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 3452 | dependencies: 3453 | ajv "^5.2.3" 3454 | ajv-keywords "^2.1.0" 3455 | chalk "^2.1.0" 3456 | lodash "^4.17.4" 3457 | slice-ansi "1.0.0" 3458 | string-width "^2.1.1" 3459 | 3460 | tar@^4: 3461 | version "4.4.2" 3462 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462" 3463 | dependencies: 3464 | chownr "^1.0.1" 3465 | fs-minipass "^1.2.5" 3466 | minipass "^2.2.4" 3467 | minizlib "^1.1.0" 3468 | mkdirp "^0.5.0" 3469 | safe-buffer "^5.1.2" 3470 | yallist "^3.0.2" 3471 | 3472 | test-exclude@^4.2.1: 3473 | version "4.2.1" 3474 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" 3475 | dependencies: 3476 | arrify "^1.0.1" 3477 | micromatch "^3.1.8" 3478 | object-assign "^4.1.0" 3479 | read-pkg-up "^1.0.1" 3480 | require-main-filename "^1.0.1" 3481 | 3482 | text-table@~0.2.0: 3483 | version "0.2.0" 3484 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 3485 | 3486 | throat@^4.0.0: 3487 | version "4.1.0" 3488 | resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" 3489 | 3490 | through@^2.3.6: 3491 | version "2.3.8" 3492 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3493 | 3494 | tmp@^0.0.33: 3495 | version "0.0.33" 3496 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 3497 | dependencies: 3498 | os-tmpdir "~1.0.2" 3499 | 3500 | tmpl@1.0.x: 3501 | version "1.0.4" 3502 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" 3503 | 3504 | to-fast-properties@^1.0.3: 3505 | version "1.0.3" 3506 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 3507 | 3508 | to-fast-properties@^2.0.0: 3509 | version "2.0.0" 3510 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 3511 | 3512 | to-object-path@^0.3.0: 3513 | version "0.3.0" 3514 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3515 | dependencies: 3516 | kind-of "^3.0.2" 3517 | 3518 | to-regex-range@^2.1.0: 3519 | version "2.1.1" 3520 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 3521 | dependencies: 3522 | is-number "^3.0.0" 3523 | repeat-string "^1.6.1" 3524 | 3525 | to-regex@^3.0.1, to-regex@^3.0.2: 3526 | version "3.0.2" 3527 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 3528 | dependencies: 3529 | define-property "^2.0.2" 3530 | extend-shallow "^3.0.2" 3531 | regex-not "^1.0.2" 3532 | safe-regex "^1.1.0" 3533 | 3534 | tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3: 3535 | version "2.3.4" 3536 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 3537 | dependencies: 3538 | punycode "^1.4.1" 3539 | 3540 | tr46@^1.0.1: 3541 | version "1.0.1" 3542 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 3543 | dependencies: 3544 | punycode "^2.1.0" 3545 | 3546 | trim-right@^1.0.1: 3547 | version "1.0.1" 3548 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 3549 | 3550 | tslib@^2.1.0: 3551 | version "2.3.1" 3552 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 3553 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 3554 | 3555 | tunnel-agent@^0.6.0: 3556 | version "0.6.0" 3557 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 3558 | dependencies: 3559 | safe-buffer "^5.0.1" 3560 | 3561 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3562 | version "0.14.5" 3563 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 3564 | 3565 | type-check@~0.3.2: 3566 | version "0.3.2" 3567 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3568 | dependencies: 3569 | prelude-ls "~1.1.2" 3570 | 3571 | typedarray@^0.0.6: 3572 | version "0.0.6" 3573 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3574 | 3575 | typescript@^4.6.3: 3576 | version "4.6.3" 3577 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" 3578 | integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== 3579 | 3580 | uglify-js@^3.1.4: 3581 | version "3.7.3" 3582 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" 3583 | dependencies: 3584 | commander "~2.20.3" 3585 | source-map "~0.6.1" 3586 | 3587 | unicode-canonical-property-names-ecmascript@^1.0.4: 3588 | version "1.0.4" 3589 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" 3590 | 3591 | unicode-match-property-ecmascript@^1.0.4: 3592 | version "1.0.4" 3593 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" 3594 | dependencies: 3595 | unicode-canonical-property-names-ecmascript "^1.0.4" 3596 | unicode-property-aliases-ecmascript "^1.0.4" 3597 | 3598 | unicode-match-property-value-ecmascript@^1.1.0: 3599 | version "1.1.0" 3600 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" 3601 | 3602 | unicode-property-aliases-ecmascript@^1.0.4: 3603 | version "1.0.5" 3604 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" 3605 | 3606 | union-value@^1.0.0: 3607 | version "1.0.0" 3608 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 3609 | dependencies: 3610 | arr-union "^3.1.0" 3611 | get-value "^2.0.6" 3612 | is-extendable "^0.1.1" 3613 | set-value "^0.4.3" 3614 | 3615 | unset-value@^1.0.0: 3616 | version "1.0.0" 3617 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 3618 | dependencies: 3619 | has-value "^0.3.1" 3620 | isobject "^3.0.0" 3621 | 3622 | urix@^0.1.0: 3623 | version "0.1.0" 3624 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 3625 | 3626 | use@^3.1.0: 3627 | version "3.1.0" 3628 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" 3629 | dependencies: 3630 | kind-of "^6.0.2" 3631 | 3632 | util-deprecate@~1.0.1: 3633 | version "1.0.2" 3634 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3635 | 3636 | util.promisify@^1.0.0: 3637 | version "1.0.0" 3638 | resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" 3639 | dependencies: 3640 | define-properties "^1.1.2" 3641 | object.getownpropertydescriptors "^2.0.3" 3642 | 3643 | uuid@^3.1.0: 3644 | version "3.2.1" 3645 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 3646 | 3647 | validate-npm-package-license@^3.0.1: 3648 | version "3.0.3" 3649 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 3650 | dependencies: 3651 | spdx-correct "^3.0.0" 3652 | spdx-expression-parse "^3.0.0" 3653 | 3654 | verror@1.10.0: 3655 | version "1.10.0" 3656 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 3657 | dependencies: 3658 | assert-plus "^1.0.0" 3659 | core-util-is "1.0.2" 3660 | extsprintf "^1.2.0" 3661 | 3662 | vlq@^0.2.2: 3663 | version "0.2.3" 3664 | resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" 3665 | 3666 | vlq@^1.0.0: 3667 | version "1.0.0" 3668 | resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.0.tgz#8101be90843422954c2b13eb27f2f3122bdcc806" 3669 | 3670 | vue-eslint-parser@^2.0.3: 3671 | version "2.0.3" 3672 | resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" 3673 | dependencies: 3674 | debug "^3.1.0" 3675 | eslint-scope "^3.7.1" 3676 | eslint-visitor-keys "^1.0.0" 3677 | espree "^3.5.2" 3678 | esquery "^1.0.0" 3679 | lodash "^4.17.4" 3680 | 3681 | vue@^2.5.16: 3682 | version "2.5.16" 3683 | resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085" 3684 | 3685 | w3c-hr-time@^1.0.1: 3686 | version "1.0.1" 3687 | resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" 3688 | dependencies: 3689 | browser-process-hrtime "^0.1.2" 3690 | 3691 | walker@~1.0.5: 3692 | version "1.0.7" 3693 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" 3694 | dependencies: 3695 | makeerror "1.0.x" 3696 | 3697 | watch@~0.18.0: 3698 | version "0.18.0" 3699 | resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" 3700 | dependencies: 3701 | exec-sh "^0.2.0" 3702 | minimist "^1.2.0" 3703 | 3704 | webidl-conversions@^4.0.2: 3705 | version "4.0.2" 3706 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 3707 | 3708 | whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: 3709 | version "1.0.3" 3710 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" 3711 | dependencies: 3712 | iconv-lite "0.4.19" 3713 | 3714 | whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0: 3715 | version "2.1.0" 3716 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" 3717 | 3718 | whatwg-url@^6.4.0, whatwg-url@^6.4.1: 3719 | version "6.4.1" 3720 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.1.tgz#fdb94b440fd4ad836202c16e9737d511f012fd67" 3721 | dependencies: 3722 | lodash.sortby "^4.7.0" 3723 | tr46 "^1.0.1" 3724 | webidl-conversions "^4.0.2" 3725 | 3726 | which-module@^2.0.0: 3727 | version "2.0.0" 3728 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3729 | 3730 | which@^1.2.12, which@^1.2.9, which@^1.3.0: 3731 | version "1.3.0" 3732 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 3733 | dependencies: 3734 | isexe "^2.0.0" 3735 | 3736 | wide-align@^1.1.0: 3737 | version "1.1.2" 3738 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 3739 | dependencies: 3740 | string-width "^1.0.2" 3741 | 3742 | wordwrap@~0.0.2: 3743 | version "0.0.3" 3744 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 3745 | 3746 | wordwrap@~1.0.0: 3747 | version "1.0.0" 3748 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3749 | 3750 | wrap-ansi@^2.0.0: 3751 | version "2.1.0" 3752 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3753 | dependencies: 3754 | string-width "^1.0.1" 3755 | strip-ansi "^3.0.1" 3756 | 3757 | wrappy@1: 3758 | version "1.0.2" 3759 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3760 | 3761 | write-file-atomic@^2.1.0: 3762 | version "2.3.0" 3763 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 3764 | dependencies: 3765 | graceful-fs "^4.1.11" 3766 | imurmurhash "^0.1.4" 3767 | signal-exit "^3.0.2" 3768 | 3769 | write@^0.2.1: 3770 | version "0.2.1" 3771 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 3772 | dependencies: 3773 | mkdirp "^0.5.1" 3774 | 3775 | ws@^4.0.0: 3776 | version "4.1.0" 3777 | resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" 3778 | dependencies: 3779 | async-limiter "~1.0.0" 3780 | safe-buffer "~5.1.0" 3781 | 3782 | xml-name-validator@^3.0.0: 3783 | version "3.0.0" 3784 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" 3785 | 3786 | y18n@^3.2.1: 3787 | version "3.2.1" 3788 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3789 | 3790 | yallist@^2.1.2: 3791 | version "2.1.2" 3792 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3793 | 3794 | yallist@^3.0.0, yallist@^3.0.2: 3795 | version "3.0.2" 3796 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 3797 | 3798 | yargs-parser@^9.0.2: 3799 | version "9.0.2" 3800 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" 3801 | dependencies: 3802 | camelcase "^4.1.0" 3803 | 3804 | yargs@^11.0.0: 3805 | version "11.0.0" 3806 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" 3807 | dependencies: 3808 | cliui "^4.0.0" 3809 | decamelize "^1.1.1" 3810 | find-up "^2.1.0" 3811 | get-caller-file "^1.0.1" 3812 | os-locale "^2.0.0" 3813 | require-directory "^2.1.1" 3814 | require-main-filename "^1.0.1" 3815 | set-blocking "^2.0.0" 3816 | string-width "^2.0.0" 3817 | which-module "^2.0.0" 3818 | y18n "^3.2.1" 3819 | yargs-parser "^9.0.2" 3820 | --------------------------------------------------------------------------------