├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── package.json
├── samples
├── async.js
├── child.js
├── collect.js
├── concat.js
├── duplex.js
├── filter.js
├── flatMap.js
├── join.js
├── last.js
├── map.js
├── merge.js
├── parse.js
├── reduce.js
├── replace.js
├── split.js
└── stringify.js
├── src
├── index.spec.ts
└── index.ts
├── tsconfig.json
├── tslint.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | node_modules
3 | dist
4 | sample_output
5 | yarn-error.log
6 | TODO.md
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 4,
3 | "trailingComma": "all"
4 | }
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright JS Foundation and other contributors
4 |
5 | Based on Underscore.js, copyright Jeremy Ashkenas,
6 | DocumentCloud and Investigative Reporters & Editors
7 |
8 | This software consists of voluntary contributions made by many
9 | individuals. For exact contribution history, see the revision history
10 | available at https://github.com/Wenzil/Mhysa
11 |
12 | The following license applies to all parts of this software except as
13 | documented below:
14 |
15 | ====
16 |
17 | Permission is hereby granted, free of charge, to any person obtaining
18 | a copy of this software and associated documentation files (the
19 | "Software"), to deal in the Software without restriction, including
20 | without limitation the rights to use, copy, modify, merge, publish,
21 | distribute, sublicense, and/or sell copies of the Software, and to
22 | permit persons to whom the Software is furnished to do so, subject to
23 | the following conditions:
24 |
25 | The above copyright notice and this permission notice shall be
26 | included in all copies or substantial portions of the Software.
27 |
28 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35 |
36 | ====
37 |
38 | Copyright and related rights for sample code are waived via CC0. Sample
39 | code is defined as all source code displayed within the prose of the
40 | documentation.
41 |
42 | CC0: http://creativecommons.org/publicdomain/zero/1.0/
43 |
44 | ====
45 |
46 | Files located in the node_modules and vendor directories are externally
47 | maintained libraries used by this software which have their own
48 | licenses; we recommend you read them, as their terms may differ from the
49 | terms above.
50 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Mhysa
2 |
3 | **Dependency-free stream utils for Node.js**
4 |
5 | Released under the [MIT](https://github.com/Wenzil/Mhysa/blob/master/LICENSE) license.
6 |
7 | ```sh
8 | yarn add mhysa
9 | ```
10 |
11 | Tested with Node.js versions 8+
12 |
13 | ## fromArray(array)
14 | Convert an array into a `Readable` stream of its elements
15 |
16 | | Param | Type | Description |
17 | | --- | --- | --- |
18 | | `array` | `T[]` | Array of elements to stream |
19 |
20 | ```js
21 | Mhysa.fromArray(["a", "b"])
22 | .pipe(process.stdout);
23 | // ab is printed out
24 | ```
25 |
26 |
27 | ## map(mapper, options)
28 | Return a `ReadWrite` stream that maps streamed chunks
29 |
30 | | Param | Type | Description |
31 | | --- | --- | --- |
32 | | `mapper` | `(chunk: T, encoding: string) => R` | Mapper function, mapping each (chunk, encoding) to a new chunk (or a promise of such) |
33 | | `options` | `object` | |
34 | | `options.readableObjectMode` | `boolean` | Whether this stream should behave as a readable stream of objects |
35 | | `options.writableObjectMode` | `boolean` | Whether this stream should behave as a writable stream of objects |
36 |
37 | ```js
38 | Mhysa.fromArray(["a", "b"])
39 | .pipe(Mhysa.map(s => s.toUpperCase()))
40 | .pipe(process.stdout);
41 | // AB is printed out
42 | ```
43 |
44 |
45 | ## flatMap(mapper, options)
46 | Return a `ReadWrite` stream that flat maps streamed chunks
47 |
48 | | Param | Type | Description |
49 | | --- | --- | --- |
50 | | `mapper` | `(chunk: T, encoding: string) => R[]` | Mapper function, mapping each (chunk, encoding) to an array of new chunks (or a promise of such) |
51 | | `options` | `object` | |
52 | | `options.readableObjectMode` | `boolean` | Whether this stream should behave as a readable stream of objects |
53 | | `options.writableObjectMode` | `boolean` | Whether this stream should behave as a writable stream of objects |
54 |
55 | ```js
56 | Mhysa.fromArray(["a", "AA"])
57 | .pipe(Mhysa.flatMap(s => new Array(s.length).fill(s)))
58 | .pipe(process.stdout);
59 | // aAAAA is printed out
60 | ```
61 |
62 |
63 | ## filter(predicate, options)
64 | Return a `ReadWrite` stream that filters out streamed chunks for which the predicate does not hold
65 |
66 | | Param | Type | Description |
67 | | --- | --- | --- |
68 | | `predicate` | `(chunk: T, encoding: string) => boolean` | Predicate with which to filter scream chunks |
69 | | `options` | `object` | |
70 | | `options.objectMode` | `boolean` | `boolean` | Whether this stream should behave as a stream of objects |
71 |
72 | ```js
73 | Mhysa.fromArray(["a", "b", "c"])
74 | .pipe(Mhysa.filter(s => s !== "b"))
75 | .pipe(process.stdout);
76 | // ac is printed out
77 | ```
78 |
79 |
80 | ## reduce(iteratee, initialValue, options)
81 | Return a `ReadWrite` stream that reduces streamed chunks down to a single value and yield that
82 | value
83 |
84 | | Param | Type | Description |
85 | | --- | --- | --- |
86 | | `iteratee` | `(chunk: T, encoding: string) => R` | Reducer function to apply on each streamed chunk |
87 | | `initialValue` | `T` | Initial value |
88 | | `options` | `object` | |
89 | | `options.readableObjectMode` | `boolean` | Whether this stream should behave as a readable stream of objects |
90 | | `options.writableObjectMode` | `boolean` | Whether this stream should behave as a writable stream of objects |
91 |
92 | ```js
93 | Mhysa.fromArray(["a", "b", "cc"])
94 | .pipe(Mhysa.reduce((acc, s) => ({ ...acc, [s]: s.length }), {}))
95 | .pipe(Mhysa.stringify())
96 | .pipe(process.stdout);
97 | // {"a":1,"b":1","c":2} is printed out
98 | ```
99 |
100 |
101 | ## split(separator)
102 | Return a `ReadWrite` stream that splits streamed chunks using the given separator
103 |
104 | | Param | Type | Description |
105 | | --- | --- | --- |
106 | | `separator` | `string` | Separator to split by, defaulting to `"\n"` |
107 | | `options` | `object` | |
108 | | `options.encoding` | `string` | Character encoding to use for decoding chunks. Defaults to utf8
109 |
110 | ```js
111 | Mhysa.fromArray(["a,b", "c,d"])
112 | .pipe(Mhysa.split(","))
113 | .pipe(Mhysa.join("|"))
114 | .pipe(process.stdout);
115 | // a|bc|d is printed out
116 | ```
117 |
118 |
119 | ## join(separator)
120 | Return a `ReadWrite` stream that joins streamed chunks using the given separator
121 |
122 | | Param | Type | Description |
123 | | --- | --- | --- |
124 | | `separator` | `string` | Separator to join with |
125 | | `options` | `object` | |
126 | | `options.encoding` | `string` | Character encoding to use for decoding chunks. Defaults to utf8
127 |
128 | ```js
129 | Mhysa.fromArray(["a", "b", "c"])
130 | .pipe(Mhysa.join(","))
131 | .pipe(process.stdout);
132 | // a,b,c is printed out
133 | ```
134 |
135 |
136 | ## replace(searchValue, replaceValue)
137 | Return a `ReadWrite` stream that replaces occurrences of the given string or regular expression in
138 | the streamed chunks with the specified replacement string
139 |
140 | | Param | Type | Description |
141 | | --- | --- | --- |
142 | | `searchValue` | `string \| RegExp` | Search string to use |
143 | | `replaceValue` | `string` | Replacement string to use |
144 | | `options` | `object` | |
145 | | `options.encoding` | `string` | Character encoding to use for decoding chunks. Defaults to utf8
146 |
147 | ```js
148 | Mhysa.fromArray(["a1", "b22", "c333"])
149 | .pipe(Mhysa.replace(/b\d+/, "B"))
150 | .pipe(process.stdout);
151 | // a1Bc333 is printed out
152 | ```
153 |
154 |
155 | ## parse()
156 | Return a `ReadWrite` stream that parses the streamed chunks as JSON
157 |
158 | ```js
159 | Mhysa.fromArray(['{ "a": "b" }'])
160 | .pipe(Mhysa.parse())
161 | .once("data", object => console.log(object));
162 | // { a: 'b' } is printed out
163 | ```
164 |
165 |
166 | ## stringify()
167 | Return a `ReadWrite` stream that stringifies the streamed chunks to JSON
168 |
169 | ```js
170 | Mhysa.fromArray([{ a: "b" }])
171 | .pipe(Mhysa.stringify())
172 | .pipe(process.stdout);
173 | // {"a":"b"} is printed out
174 | ```
175 |
176 |
177 | ## collect(options)
178 | Return a `ReadWrite` stream that collects streamed chunks into an array or buffer
179 |
180 | | Param | Type | Description |
181 | | --- | --- | --- |
182 | | `options` | `object` | |
183 | | `options.objectMode` | `boolean` | Whether this stream should behave as a stream of objects |
184 |
185 | ```js
186 | Mhysa.fromArray(["a", "b", "c"])
187 | .pipe(Mhysa.collect({ objectMode: true }))
188 | .once("data", object => console.log(object));
189 | // [ 'a', 'b', 'c' ] is printed out
190 | ```
191 |
192 |
193 | ## concat(streams)
194 | Return a `Readable` stream of readable streams concatenated together
195 |
196 | | Param | Type | Description |
197 | | --- | --- | --- |
198 | | `streams` | `...Readable[]` | Readable streams to concatenate |
199 |
200 | ```js
201 | const source1 = new Readable();
202 | const source2 = new Readable();
203 | Mhysa.concat(source1, source2).pipe(process.stdout)
204 | source1.push("a1 ");
205 | source2.push("c3 ");
206 | source1.push("b2 ");
207 | source2.push("d4 ");
208 | source1.push(null);
209 | source2.push(null);
210 | // a1 b2 c3 d4 is printed out
211 | ```
212 |
213 |
214 | ## merge(streams)
215 | Return a `Readable` stream of readable streams merged together in chunk arrival order
216 |
217 | | Param | Type | Description |
218 | | --- | --- | --- |
219 | | `streams` | `...Readable[]` | Readable streams to merge |
220 |
221 | ```js
222 | const source1 = new Readable({ read() {} });
223 | const source2 = new Readable({ read() {} });
224 | Mhysa.merge(source1, source2).pipe(process.stdout);
225 | source1.push("a1 ");
226 | setTimeout(() => source2.push("c3 "), 10);
227 | setTimeout(() => source1.push("b2 "), 20);
228 | setTimeout(() => source2.push("d4 "), 30);
229 | setTimeout(() => source1.push(null), 40);
230 | setTimeout(() => source2.push(null), 50);
231 | // a1 c3 b2 d4 is printed out
232 | ```
233 |
234 |
235 | ## duplex(writable, readable)
236 | Return a `Duplex` stream from a writable stream that is assumed to somehow, when written to,
237 | cause the given readable stream to yield chunks
238 |
239 | | Param | Type | Description |
240 | | --- | --- | --- |
241 | | `writable` | `Writable` | Writable stream assumed to cause the readable stream to yield chunks when written to |
242 | | `readable` | `Readable` | Readable stream assumed to yield chunks when the writable stream is written to |
243 |
244 | ```js
245 | const catProcess = require("child_process").exec("grep -o ab");
246 | Mhysa.fromArray(["a", "b", "c"])
247 | .pipe(Mhysa.duplex(catProcess.stdin, catProcess.stdout))
248 | .pipe(process.stdout);
249 | // ab is printed out
250 | ```
251 |
252 |
253 | ## child(childProcess)
254 | Return a `Duplex` stream from a child process' stdin and stdout
255 |
256 | | Param | Type | Description |
257 | | --- | --- | --- |
258 | | childProcess | `ChildProcess` | Child process from which to create duplex stream |
259 |
260 | ```js
261 | const catProcess = require("child_process").exec("grep -o ab");
262 | Mhysa.fromArray(["a", "b", "c"])
263 | .pipe(Mhysa.child(catProcess))
264 | .pipe(process.stdout);
265 | // ab is printed out
266 | ```
267 |
268 |
269 | ## last(readable)
270 | Return a `Promise` resolving to the last streamed chunk of the given readable stream, after it has
271 | ended
272 |
273 | | Param | Type | Description |
274 | | --- | --- | --- |
275 | | `readable` | `Readable` | Readable stream to wait on |
276 |
277 | ```js
278 | let f = async () => {
279 | const source = Mhysa.fromArray(["a", "b", "c"]);
280 | console.log(await Mhysa.last(source));
281 | };
282 | f();
283 | // c is printed out
284 | ```
285 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mhysa",
3 | "version": "1.0.2",
4 | "description": "Streams and event emitter utils for Node.js",
5 | "keywords": [
6 | "promise",
7 | "stream",
8 | "event emitter",
9 | "utils"
10 | ],
11 | "author": {
12 | "name": "Wenzil"
13 | },
14 | "license": "MIT",
15 | "main": "dist/index.js",
16 | "types": "dist/index.d.ts",
17 | "files": [
18 | "dist"
19 | ],
20 | "repository": {
21 | "url": "git@github.com:Wenzil/Mhysa.git",
22 | "type": "git"
23 | },
24 | "scripts": {
25 | "test": "ava",
26 | "lint": "tslint -p tsconfig.json",
27 | "validate:tslint": "tslint-config-prettier-check ./tslint.json",
28 | "prepublishOnly": "yarn lint && yarn test && yarn tsc"
29 | },
30 | "dependencies": {},
31 | "devDependencies": {
32 | "@types/chai": "^4.1.7",
33 | "@types/node": "^10.12.10",
34 | "ava": "^1.0.0-rc.2",
35 | "chai": "^4.2.0",
36 | "mhysa": "./",
37 | "prettier": "^1.14.3",
38 | "ts-node": "^7.0.1",
39 | "tslint": "^5.11.0",
40 | "tslint-config-prettier": "^1.16.0",
41 | "tslint-plugin-prettier": "^2.0.1",
42 | "typescript": "^3.1.6"
43 | },
44 | "ava": {
45 | "files": [
46 | "src/**/*.spec.ts"
47 | ],
48 | "sources": [
49 | "src/**/*.ts"
50 | ],
51 | "compileEnhancements": false,
52 | "failWithoutAssertions": false,
53 | "extensions": [
54 | "ts"
55 | ],
56 | "require": [
57 | "ts-node/register/transpile-only"
58 | ]
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/samples/async.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "b", "c"])
4 | .pipe(Mhysa.map(s => Promise.resolve(s + s)))
5 | .pipe(Mhysa.flatMap(s => Promise.resolve([s, s.toUpperCase()])))
6 | .pipe(Mhysa.filter(s => Promise.resolve(s !== "bb")))
7 | .pipe(Mhysa.join(","))
8 | .pipe(process.stdout);
9 |
--------------------------------------------------------------------------------
/samples/child.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 | const catProcess = require("child_process").exec("grep -o ab");
3 |
4 | Mhysa.fromArray(["a", "b", "c"])
5 | .pipe(Mhysa.child(catProcess))
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/collect.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "b", "c"])
4 | .pipe(Mhysa.collect({ objectMode: true }))
5 | .on("data", object => console.log(object));
6 |
--------------------------------------------------------------------------------
/samples/concat.js:
--------------------------------------------------------------------------------
1 | const { Readable } = require("stream");
2 | const Mhysa = require("mhysa");
3 |
4 | const source1 = new Readable();
5 | const source2 = new Readable();
6 | Mhysa.concat(source1, source2).pipe(process.stdout);
7 | source1.push("a1 ");
8 | source2.push("c3 ");
9 | source1.push("b2 ");
10 | source2.push("d4 ");
11 | source1.push(null);
12 | source2.push(null);
13 |
--------------------------------------------------------------------------------
/samples/duplex.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 | const catProcess = require("child_process").exec("grep -o ab");
3 |
4 | Mhysa.fromArray(["a", "b", "c"])
5 | .pipe(Mhysa.duplex(catProcess.stdin, catProcess.stdout))
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/filter.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "b", "c"])
4 | .pipe(Mhysa.filter(s => s !== "b"))
5 | .pipe(Mhysa.join(","))
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/flatMap.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "AA"])
4 | .pipe(Mhysa.flatMap(s => new Array(s.length).fill(s)))
5 | .pipe(Mhysa.join(","))
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/join.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "b", "c"])
4 | .pipe(Mhysa.join(","))
5 | .pipe(process.stdout);
6 |
--------------------------------------------------------------------------------
/samples/last.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | let f = async () => {
4 | const source = Mhysa.fromArray(["a", "b", "c"]);
5 | console.log(await Mhysa.last(source));
6 | };
7 | f();
8 |
--------------------------------------------------------------------------------
/samples/map.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "b"])
4 | .pipe(Mhysa.map(s => s.toUpperCase()))
5 | .pipe(Mhysa.join(","))
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/merge.js:
--------------------------------------------------------------------------------
1 | const { Readable } = require("stream");
2 | const Mhysa = require("mhysa");
3 |
4 | const source1 = new Readable({ read() {} });
5 | const source2 = new Readable({ read() {} });
6 | Mhysa.merge(source1, source2).pipe(process.stdout);
7 | source1.push("a1 ");
8 | setTimeout(() => source2.push("c3 "), 10);
9 | setTimeout(() => source1.push("b2 "), 20);
10 | setTimeout(() => source2.push("d4 "), 30);
11 | setTimeout(() => source1.push(null), 40);
12 | setTimeout(() => source2.push(null), 50);
13 |
--------------------------------------------------------------------------------
/samples/parse.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(['{ "a": "b" }'])
4 | .pipe(Mhysa.parse())
5 | .on("data", object => console.log(object));
6 |
--------------------------------------------------------------------------------
/samples/reduce.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a", "b", "cc"])
4 | .pipe(Mhysa.reduce((acc, s) => ({ ...acc, [s]: s.length }), {}))
5 | .pipe(Mhysa.stringify())
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/replace.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a1", "b22", "c333"])
4 | .pipe(Mhysa.replace(/b\d+/, "B"))
5 | .pipe(process.stdout);
6 |
--------------------------------------------------------------------------------
/samples/split.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray(["a,b", "c,d"])
4 | .pipe(Mhysa.split(","))
5 | .pipe(Mhysa.join("|"))
6 | .pipe(process.stdout);
7 |
--------------------------------------------------------------------------------
/samples/stringify.js:
--------------------------------------------------------------------------------
1 | const Mhysa = require("mhysa");
2 |
3 | Mhysa.fromArray([{ a: "b" }])
4 | .pipe(Mhysa.stringify())
5 | .pipe(process.stdout);
6 |
--------------------------------------------------------------------------------
/src/index.spec.ts:
--------------------------------------------------------------------------------
1 | import * as cp from "child_process";
2 | import test from "ava";
3 | import { expect } from "chai";
4 | import { Readable } from "stream";
5 | import {
6 | fromArray,
7 | map,
8 | flatMap,
9 | filter,
10 | split,
11 | join,
12 | replace,
13 | parse,
14 | stringify,
15 | collect,
16 | concat,
17 | merge,
18 | duplex,
19 | child,
20 | reduce,
21 | last,
22 | } from ".";
23 |
24 | test.cb("fromArray() streams array elements in flowing mode", t => {
25 | t.plan(3);
26 | const elements = ["a", "b", "c"];
27 | const stream = fromArray(elements);
28 | let i = 0;
29 | stream
30 | .on("data", (element: string) => {
31 | expect(element).to.equal(elements[i]);
32 | t.pass();
33 | i++;
34 | })
35 | .on("error", t.end)
36 | .on("end", t.end);
37 | });
38 |
39 | test.cb("fromArray() streams array elements in paused mode", t => {
40 | t.plan(3);
41 | const elements = ["a", "b", "c"];
42 | const stream = fromArray(elements);
43 | let i = 0;
44 | stream
45 | .on("readable", () => {
46 | let element = stream.read();
47 | while (element !== null) {
48 | expect(element).to.equal(elements[i]);
49 | t.pass();
50 | i++;
51 | element = stream.read();
52 | }
53 | })
54 | .on("error", t.end)
55 | .on("end", t.end);
56 | });
57 |
58 | test.cb("fromArray() ends immediately if there are no array elements", t => {
59 | t.plan(0);
60 | fromArray([])
61 | .on("data", () => t.fail())
62 | .on("error", t.end)
63 | .on("end", t.end);
64 | });
65 |
66 | test.cb("map() maps elements synchronously", t => {
67 | t.plan(3);
68 | const source = new Readable({ objectMode: true });
69 | const expectedElements = ["A", "B", "C"];
70 | let i = 0;
71 | source
72 | .pipe(map((element: string) => element.toUpperCase()))
73 | .on("data", (element: string) => {
74 | expect(element).to.equal(expectedElements[i]);
75 | t.pass();
76 | i++;
77 | })
78 | .on("error", t.end)
79 | .on("end", t.end);
80 |
81 | source.push("a");
82 | source.push("b");
83 | source.push("c");
84 | source.push(null);
85 | });
86 |
87 | test.cb("map() maps elements asynchronously", t => {
88 | t.plan(3);
89 | const source = new Readable({ objectMode: true });
90 | const expectedElements = ["A", "B", "C"];
91 | let i = 0;
92 | source
93 | .pipe(
94 | map(async (element: string) => {
95 | await Promise.resolve();
96 | return element.toUpperCase();
97 | }),
98 | )
99 | .on("data", (element: string) => {
100 | expect(element).to.equal(expectedElements[i]);
101 | t.pass();
102 | i++;
103 | })
104 | .on("error", t.end)
105 | .on("end", t.end);
106 |
107 | source.push("a");
108 | source.push("b");
109 | source.push("c");
110 | source.push(null);
111 | });
112 |
113 | test.cb("map() emits errors during synchronous mapping", t => {
114 | t.plan(2);
115 | const source = new Readable({ objectMode: true });
116 | source
117 | .pipe(
118 | map((element: string) => {
119 | if (element !== "a") {
120 | throw new Error("Failed mapping");
121 | }
122 | return element.toUpperCase();
123 | }),
124 | )
125 | .resume()
126 | .on("error", err => {
127 | expect(err.message).to.equal("Failed mapping");
128 | t.pass();
129 | })
130 | .on("end", t.end);
131 |
132 | source.push("a");
133 | source.push("b");
134 | source.push("c");
135 | source.push(null);
136 | });
137 |
138 | test.cb("map() emits errors during asynchronous mapping", t => {
139 | t.plan(2);
140 | const source = new Readable({ objectMode: true });
141 | source
142 | .pipe(
143 | map(async (element: string) => {
144 | await Promise.resolve();
145 | if (element !== "a") {
146 | throw new Error("Failed mapping");
147 | }
148 | return element.toUpperCase();
149 | }),
150 | )
151 | .resume()
152 | .on("error", err => {
153 | expect(err.message).to.equal("Failed mapping");
154 | t.pass();
155 | })
156 | .on("end", t.end);
157 |
158 | source.push("a");
159 | source.push("b");
160 | source.push("c");
161 | source.push(null);
162 | });
163 |
164 | test.cb("flatMap() maps elements synchronously", t => {
165 | t.plan(6);
166 | const source = new Readable({ objectMode: true });
167 | const expectedElements = ["a", "A", "b", "B", "c", "C"];
168 | let i = 0;
169 | source
170 | .pipe(flatMap((element: string) => [element, element.toUpperCase()]))
171 | .on("data", (element: string) => {
172 | expect(element).to.equal(expectedElements[i]);
173 | t.pass();
174 | i++;
175 | })
176 | .on("end", t.end);
177 |
178 | source.push("a");
179 | source.push("b");
180 | source.push("c");
181 | source.push(null);
182 | });
183 |
184 | test.cb("flatMap() maps elements asynchronously", t => {
185 | t.plan(6);
186 | const source = new Readable({ objectMode: true });
187 | const expectedElements = ["a", "A", "b", "B", "c", "C"];
188 | let i = 0;
189 | source
190 | .pipe(
191 | flatMap(async (element: string) => {
192 | await Promise.resolve();
193 | return [element, element.toUpperCase()];
194 | }),
195 | )
196 | .on("data", (element: string) => {
197 | expect(element).to.equal(expectedElements[i]);
198 | t.pass();
199 | i++;
200 | })
201 | .on("end", t.end);
202 |
203 | source.push("a");
204 | source.push("b");
205 | source.push("c");
206 | source.push(null);
207 | });
208 |
209 | test.cb("flatMap() emits errors during synchronous mapping", t => {
210 | t.plan(2);
211 | const source = new Readable({ objectMode: true });
212 | source
213 | .pipe(
214 | flatMap((element: string) => {
215 | if (element !== "a") {
216 | throw new Error("Failed mapping");
217 | }
218 | return [element, element.toUpperCase()];
219 | }),
220 | )
221 | .resume()
222 | .on("error", err => {
223 | expect(err.message).to.equal("Failed mapping");
224 | t.pass();
225 | })
226 | .on("end", t.end);
227 |
228 | source.push("a");
229 | source.push("b");
230 | source.push("c");
231 | source.push(null);
232 | });
233 |
234 | test.cb("flatMap() emits errors during asynchronous mapping", t => {
235 | t.plan(2);
236 | const source = new Readable({ objectMode: true });
237 | source
238 | .pipe(
239 | flatMap(async (element: string) => {
240 | await Promise.resolve();
241 | if (element !== "a") {
242 | throw new Error("Failed mapping");
243 | }
244 | return [element, element.toUpperCase()];
245 | }),
246 | )
247 | .resume()
248 | .on("error", err => {
249 | expect(err.message).to.equal("Failed mapping");
250 | t.pass();
251 | })
252 | .on("end", t.end);
253 |
254 | source.push("a");
255 | source.push("b");
256 | source.push("c");
257 | source.push(null);
258 | });
259 |
260 | test.cb("filter() filters elements synchronously", t => {
261 | t.plan(2);
262 | const source = new Readable({ objectMode: true });
263 | const expectedElements = ["a", "c"];
264 | let i = 0;
265 | source
266 | .pipe(filter((element: string) => element !== "b"))
267 | .on("data", (element: string) => {
268 | expect(element).to.equal(expectedElements[i]);
269 | t.pass();
270 | i++;
271 | })
272 | .on("error", t.end)
273 | .on("end", t.end);
274 |
275 | source.push("a");
276 | source.push("b");
277 | source.push("c");
278 | source.push(null);
279 | });
280 |
281 | test.cb("filter() filters elements asynchronously", t => {
282 | t.plan(2);
283 | const source = new Readable({ objectMode: true });
284 | const expectedElements = ["a", "c"];
285 | let i = 0;
286 | source
287 | .pipe(
288 | filter(async (element: string) => {
289 | await Promise.resolve();
290 | return element !== "b";
291 | }),
292 | )
293 | .on("data", (element: string) => {
294 | expect(element).to.equal(expectedElements[i]);
295 | t.pass();
296 | i++;
297 | })
298 | .on("error", t.end)
299 | .on("end", t.end);
300 |
301 | source.push("a");
302 | source.push("b");
303 | source.push("c");
304 | source.push(null);
305 | });
306 |
307 | test.cb("filter() emits errors during synchronous filtering", t => {
308 | t.plan(2);
309 | const source = new Readable({ objectMode: true });
310 | source
311 | .pipe(
312 | filter((element: string) => {
313 | if (element !== "a") {
314 | throw new Error("Failed filtering");
315 | }
316 | return true;
317 | }),
318 | )
319 | .resume()
320 | .on("error", err => {
321 | expect(err.message).to.equal("Failed filtering");
322 | t.pass();
323 | })
324 | .on("end", t.end);
325 |
326 | source.push("a");
327 | source.push("b");
328 | source.push("c");
329 | source.push(null);
330 | });
331 |
332 | test.cb("filter() emits errors during asynchronous filtering", t => {
333 | t.plan(2);
334 | const source = new Readable({ objectMode: true });
335 | source
336 | .pipe(
337 | filter(async (element: string) => {
338 | await Promise.resolve();
339 | if (element !== "a") {
340 | throw new Error("Failed filtering");
341 | }
342 | return true;
343 | }),
344 | )
345 | .resume()
346 | .on("error", err => {
347 | expect(err.message).to.equal("Failed filtering");
348 | t.pass();
349 | })
350 | .on("end", t.end);
351 |
352 | source.push("a");
353 | source.push("b");
354 | source.push("c");
355 | source.push(null);
356 | });
357 |
358 | test.cb("reduce() reduces elements synchronously", t => {
359 | t.plan(1);
360 | const source = new Readable({ objectMode: true });
361 | const expectedValue = 6;
362 | source
363 | .pipe(reduce((acc: number, element: string) => acc + element.length, 0))
364 | .on("data", (element: string) => {
365 | expect(element).to.equal(expectedValue);
366 | t.pass();
367 | })
368 | .on("error", t.end)
369 | .on("end", t.end);
370 |
371 | source.push("ab");
372 | source.push("cd");
373 | source.push("ef");
374 | source.push(null);
375 | });
376 |
377 | test.cb("reduce() reduces elements asynchronously", t => {
378 | t.plan(1);
379 | const source = new Readable({ objectMode: true });
380 | const expectedValue = 6;
381 | source
382 | .pipe(
383 | reduce(async (acc: number, element: string) => {
384 | await Promise.resolve();
385 | return acc + element.length;
386 | }, 0),
387 | )
388 | .on("data", (element: string) => {
389 | expect(element).to.equal(expectedValue);
390 | t.pass();
391 | })
392 | .on("error", t.end)
393 | .on("end", t.end);
394 |
395 | source.push("ab");
396 | source.push("cd");
397 | source.push("ef");
398 | source.push(null);
399 | });
400 |
401 | test.cb("reduce() emits errors during synchronous reduce", t => {
402 | t.plan(2);
403 | const source = new Readable({ objectMode: true });
404 | source
405 | .pipe(
406 | reduce((acc: number, element: string) => {
407 | if (element !== "ab") {
408 | throw new Error("Failed reduce");
409 | }
410 | return acc + element.length;
411 | }, 0),
412 | )
413 | .resume()
414 | .on("error", err => {
415 | expect(err.message).to.equal("Failed reduce");
416 | t.pass();
417 | })
418 | .on("end", t.end);
419 |
420 | source.push("ab");
421 | source.push("cd");
422 | source.push("ef");
423 | source.push(null);
424 | });
425 |
426 | test.cb("reduce() emits errors during asynchronous reduce", t => {
427 | t.plan(2);
428 | const source = new Readable({ objectMode: true });
429 | source
430 | .pipe(
431 | reduce(async (acc: number, element: string) => {
432 | await Promise.resolve();
433 | if (element !== "ab") {
434 | throw new Error("Failed mapping");
435 | }
436 | return acc + element.length;
437 | }, 0),
438 | )
439 | .resume()
440 | .on("error", err => {
441 | expect(err.message).to.equal("Failed mapping");
442 | t.pass();
443 | })
444 | .on("end", t.end);
445 |
446 | source.push("ab");
447 | source.push("cd");
448 | source.push("ef");
449 | source.push(null);
450 | });
451 |
452 | test.cb("split() splits chunks using the default separator (\\n)", t => {
453 | t.plan(5);
454 | const source = new Readable({ objectMode: true });
455 | const expectedParts = ["ab", "c", "d", "ef", ""];
456 | let i = 0;
457 | source
458 | .pipe(split())
459 | .on("data", part => {
460 | expect(part).to.equal(expectedParts[i]);
461 | t.pass();
462 | i++;
463 | })
464 | .on("error", t.end)
465 | .on("end", t.end);
466 |
467 | source.push("ab\n");
468 | source.push("c");
469 | source.push("\n");
470 | source.push("d");
471 | source.push("\nef\n");
472 | source.push(null);
473 | });
474 |
475 | test.cb("split() splits chunks using the specified separator", t => {
476 | t.plan(6);
477 | const source = new Readable({ objectMode: true });
478 | const expectedParts = ["ab", "c", "d", "e", "f", ""];
479 | let i = 0;
480 | source
481 | .pipe(split("|"))
482 | .on("data", (part: string) => {
483 | expect(part).to.equal(expectedParts[i]);
484 | t.pass();
485 | i++;
486 | })
487 | .on("error", t.end)
488 | .on("end", t.end);
489 |
490 | source.push("ab|");
491 | source.push("c|d");
492 | source.push("|");
493 | source.push("e");
494 | source.push("|f|");
495 | source.push(null);
496 | });
497 |
498 | test.cb(
499 | "split() splits utf8 encoded buffers using the specified separator",
500 | t => {
501 | t.plan(3);
502 | const expectedElements = ["a", "b", "c"];
503 | let i = 0;
504 | const through = split(",");
505 | const buf = Buffer.from("a,b,c");
506 | through
507 | .on("data", element => {
508 | expect(element).to.equal(expectedElements[i]);
509 | i++;
510 | t.pass();
511 | })
512 | .on("error", t.end)
513 | .on("end", t.end);
514 |
515 | for (let j = 0; j < buf.length; ++j) {
516 | through.write(buf.slice(j, j + 1));
517 | }
518 | through.end();
519 | },
520 | );
521 |
522 | test.cb(
523 | "split() splits utf8 encoded buffers with multi-byte characters using the specified separator",
524 | t => {
525 | t.plan(3);
526 | const expectedElements = ["一", "一", "一"];
527 | let i = 0;
528 | const through = split(",");
529 | const buf = Buffer.from("一,一,一"); // Those spaces are multi-byte utf8 characters (code: 4E00)
530 | through
531 | .on("data", element => {
532 | expect(element).to.equal(expectedElements[i]);
533 | i++;
534 | t.pass();
535 | })
536 | .on("error", t.end)
537 | .on("end", t.end);
538 |
539 | for (let j = 0; j < buf.length; ++j) {
540 | through.write(buf.slice(j, j + 1));
541 | }
542 | through.end();
543 | },
544 | );
545 |
546 | test.cb("join() joins chunks using the specified separator", t => {
547 | t.plan(9);
548 | const source = new Readable({ objectMode: true });
549 | const expectedParts = ["ab|", "|", "c|d", "|", "|", "|", "e", "|", "|f|"];
550 | let i = 0;
551 | source
552 | .pipe(join("|"))
553 | .on("data", part => {
554 | expect(part).to.equal(expectedParts[i]);
555 | t.pass();
556 | i++;
557 | })
558 | .on("error", t.end)
559 | .on("end", t.end);
560 |
561 | source.push("ab|");
562 | source.push("c|d");
563 | source.push("|");
564 | source.push("e");
565 | source.push("|f|");
566 | source.push(null);
567 | });
568 |
569 | test.cb(
570 | "join() joins chunks using the specified separator without breaking up multi-byte characters " +
571 | "spanning multiple chunks",
572 | t => {
573 | t.plan(5);
574 | const source = new Readable({ objectMode: true });
575 | const expectedParts = ["ø", "|", "ö", "|", "一"];
576 | let i = 0;
577 | source
578 | .pipe(join("|"))
579 | .on("data", part => {
580 | expect(part).to.equal(expectedParts[i]);
581 | t.pass();
582 | i++;
583 | })
584 | .on("error", t.end)
585 | .on("end", t.end);
586 |
587 | source.push(Buffer.from("ø").slice(0, 1)); // 2-byte character spanning two chunks
588 | source.push(Buffer.from("ø").slice(1, 2));
589 | source.push(Buffer.from("ö").slice(0, 1)); // 2-byte character spanning two chunks
590 | source.push(Buffer.from("ö").slice(1, 2));
591 | source.push(Buffer.from("一").slice(0, 1)); // 3-byte character spanning three chunks
592 | source.push(Buffer.from("一").slice(1, 2));
593 | source.push(Buffer.from("一").slice(2, 3));
594 | source.push(null);
595 | },
596 | );
597 |
598 | test.cb(
599 | "replace() replaces occurrences of the given string in the streamed elements with the specified " +
600 | "replacement string",
601 | t => {
602 | t.plan(3);
603 | const source = new Readable({ objectMode: true });
604 | const expectedElements = ["abc", "xyf", "ghi"];
605 | let i = 0;
606 | source
607 | .pipe(replace("de", "xy"))
608 | .on("data", part => {
609 | expect(part).to.equal(expectedElements[i]);
610 | t.pass();
611 | i++;
612 | })
613 | .on("error", t.end)
614 | .on("end", t.end);
615 |
616 | source.push("abc");
617 | source.push("def");
618 | source.push("ghi");
619 | source.push(null);
620 | },
621 | );
622 |
623 | test.cb(
624 | "replace() replaces occurrences of the given regular expression in the streamed elements with " +
625 | "the specified replacement string",
626 | t => {
627 | t.plan(3);
628 | const source = new Readable({ objectMode: true });
629 | const expectedElements = ["abc", "xyz", "ghi"];
630 | let i = 0;
631 | source
632 | .pipe(replace(/^def$/, "xyz"))
633 | .on("data", part => {
634 | expect(part).to.equal(expectedElements[i]);
635 | t.pass();
636 | i++;
637 | })
638 | .on("error", t.end)
639 | .on("end", t.end);
640 |
641 | source.push("abc");
642 | source.push("def");
643 | source.push("ghi");
644 | source.push(null);
645 | },
646 | );
647 |
648 | test.cb(
649 | "replace() replaces occurrences of the given multi-byte character even if it spans multiple chunks",
650 | t => {
651 | t.plan(3);
652 | const source = new Readable({ objectMode: true });
653 | const expectedElements = ["ø", "O", "a"];
654 | let i = 0;
655 | source
656 | .pipe(replace("ö", "O"))
657 | .on("data", part => {
658 | expect(part).to.equal(expectedElements[i]);
659 | t.pass();
660 | i++;
661 | })
662 | .on("error", t.end)
663 | .on("end", t.end);
664 |
665 | source.push(Buffer.from("ø").slice(0, 1)); // 2-byte character spanning two chunks
666 | source.push(Buffer.from("ø").slice(1, 2));
667 | source.push(Buffer.from("ö").slice(0, 1)); // 2-byte character spanning two chunks
668 | source.push(Buffer.from("ö").slice(1, 2));
669 | source.push("a");
670 | source.push(null);
671 | },
672 | );
673 |
674 | test.cb("parse() parses the streamed elements as JSON", t => {
675 | t.plan(3);
676 | const source = new Readable({ objectMode: true });
677 | const expectedElements = ["abc", {}, []];
678 | let i = 0;
679 | source
680 | .pipe(parse())
681 | .on("data", part => {
682 | expect(part).to.deep.equal(expectedElements[i]);
683 | t.pass();
684 | i++;
685 | })
686 | .on("error", t.end)
687 | .on("end", t.end);
688 |
689 | source.push('"abc"');
690 | source.push("{}");
691 | source.push("[]");
692 | source.push(null);
693 | });
694 |
695 | test.cb("parse() emits errors on invalid JSON", t => {
696 | t.plan(2);
697 | const source = new Readable({ objectMode: true });
698 | source
699 | .pipe(parse())
700 | .resume()
701 | .on("error", () => t.pass())
702 | .on("end", t.end);
703 |
704 | source.push("{}");
705 | source.push({});
706 | source.push([]);
707 | source.push(null);
708 | });
709 |
710 | test.cb("stringify() stringifies the streamed elements as JSON", t => {
711 | t.plan(4);
712 | const source = new Readable({ objectMode: true });
713 | const expectedElements = [
714 | '"abc"',
715 | "0",
716 | '{"a":"a","b":"b","c":"c"}',
717 | '["a","b","c"]',
718 | ];
719 | let i = 0;
720 | source
721 | .pipe(stringify())
722 | .on("data", part => {
723 | expect(part).to.deep.equal(expectedElements[i]);
724 | t.pass();
725 | i++;
726 | })
727 | .on("error", t.end)
728 | .on("end", t.end);
729 |
730 | source.push("abc");
731 | source.push(0);
732 | source.push({ a: "a", b: "b", c: "c" });
733 | source.push(["a", "b", "c"]);
734 | source.push(null);
735 | });
736 |
737 | test.cb(
738 | "stringify() stringifies the streamed elements as pretty-printed JSON",
739 | t => {
740 | t.plan(4);
741 | const source = new Readable({ objectMode: true });
742 | const expectedElements = [
743 | '"abc"',
744 | "0",
745 | '{\n "a": "a",\n "b": "b",\n "c": "c"\n}',
746 | '[\n "a",\n "b",\n "c"\n]',
747 | ];
748 | let i = 0;
749 | source
750 | .pipe(stringify({ pretty: true }))
751 | .on("data", part => {
752 | expect(part).to.deep.equal(expectedElements[i]);
753 | t.pass();
754 | i++;
755 | })
756 | .on("error", t.end)
757 | .on("end", t.end);
758 |
759 | source.push("abc");
760 | source.push(0);
761 | source.push({ a: "a", b: "b", c: "c" });
762 | source.push(["a", "b", "c"]);
763 | source.push(null);
764 | },
765 | );
766 |
767 | test.cb(
768 | "collect() collects streamed elements into an array (object, flowing mode)",
769 | t => {
770 | t.plan(1);
771 | const source = new Readable({ objectMode: true });
772 |
773 | source
774 | .pipe(collect({ objectMode: true }))
775 | .on("data", collected => {
776 | expect(collected).to.deep.equal(["a", "b", "c"]);
777 | t.pass();
778 | })
779 | .on("error", t.end)
780 | .on("end", t.end);
781 |
782 | source.push("a");
783 | source.push("b");
784 | source.push("c");
785 | source.push(null);
786 | },
787 | );
788 |
789 | test.cb(
790 | "collect() collects streamed elements into an array (object, paused mode)",
791 | t => {
792 | t.plan(1);
793 | const source = new Readable({ objectMode: true });
794 | const collector = source.pipe(collect({ objectMode: true }));
795 |
796 | collector
797 | .on("readable", () => {
798 | let collected = collector.read();
799 | while (collected !== null) {
800 | expect(collected).to.deep.equal(["a", "b", "c"]);
801 | t.pass();
802 | collected = collector.read();
803 | }
804 | })
805 | .on("error", t.end)
806 | .on("end", t.end);
807 |
808 | source.push("a");
809 | source.push("b");
810 | source.push("c");
811 | source.push(null);
812 | },
813 | );
814 |
815 | test.cb(
816 | "collect() collects streamed bytes into a buffer (non-object, flowing mode)",
817 | t => {
818 | t.plan(1);
819 | const source = new Readable({ objectMode: false });
820 |
821 | source
822 | .pipe(collect())
823 | .on("data", collected => {
824 | expect(collected).to.deep.equal(Buffer.from("abc"));
825 | t.pass();
826 | })
827 | .on("error", t.end)
828 | .on("end", t.end);
829 |
830 | source.push("a");
831 | source.push("b");
832 | source.push("c");
833 | source.push(null);
834 | },
835 | );
836 |
837 | test.cb(
838 | "collect() collects streamed bytes into a buffer (non-object, paused mode)",
839 | t => {
840 | t.plan(1);
841 | const source = new Readable({ objectMode: false });
842 | const collector = source.pipe(collect({ objectMode: false }));
843 | collector
844 | .on("readable", () => {
845 | let collected = collector.read();
846 | while (collected !== null) {
847 | expect(collected).to.deep.equal(Buffer.from("abc"));
848 | t.pass();
849 | collected = collector.read();
850 | }
851 | })
852 | .on("error", t.end)
853 | .on("end", t.end);
854 |
855 | source.push("a");
856 | source.push("b");
857 | source.push("c");
858 | source.push(null);
859 | },
860 | );
861 |
862 | test.cb(
863 | "collect() emits an empty array if the source was empty (object mode)",
864 | t => {
865 | t.plan(1);
866 | const source = new Readable({ objectMode: true });
867 | const collector = source.pipe(collect({ objectMode: true }));
868 | collector
869 | .on("data", collected => {
870 | expect(collected).to.deep.equal([]);
871 | t.pass();
872 | })
873 | .on("error", t.end)
874 | .on("end", t.end);
875 |
876 | source.push(null);
877 | },
878 | );
879 |
880 | test.cb(
881 | "collect() emits nothing if the source was empty (non-object mode)",
882 | t => {
883 | t.plan(0);
884 | const source = new Readable({ objectMode: false });
885 | const collector = source.pipe(collect({ objectMode: false }));
886 | collector
887 | .on("data", () => t.fail())
888 | .on("error", t.end)
889 | .on("end", t.end);
890 |
891 | source.push(null);
892 | },
893 | );
894 |
895 | test.cb(
896 | "concat() concatenates multiple readable streams (object, flowing mode)",
897 | t => {
898 | t.plan(6);
899 | const source1 = new Readable({ objectMode: true });
900 | const source2 = new Readable({ objectMode: true });
901 | const expectedElements = ["a", "b", "c", "d", "e", "f"];
902 | let i = 0;
903 | concat(source1, source2)
904 | .on("data", (element: string) => {
905 | expect(element).to.equal(expectedElements[i]);
906 | t.pass();
907 | i++;
908 | })
909 | .on("error", t.end)
910 | .on("end", t.end);
911 |
912 | source1.push("a");
913 | source2.push("d");
914 | source1.push("b");
915 | source2.push("e");
916 | source1.push("c");
917 | source2.push("f");
918 | source2.push(null);
919 | source1.push(null);
920 | },
921 | );
922 |
923 | test.cb(
924 | "concat() concatenates multiple readable streams (object, paused mode)",
925 | t => {
926 | t.plan(6);
927 | const source1 = new Readable({ objectMode: true });
928 | const source2 = new Readable({ objectMode: true });
929 | const expectedElements = ["a", "b", "c", "d", "e", "f"];
930 | let i = 0;
931 | const concatenation = concat(source1, source2)
932 | .on("readable", () => {
933 | let element = concatenation.read();
934 | while (element !== null) {
935 | expect(element).to.equal(expectedElements[i]);
936 | t.pass();
937 | i++;
938 | element = concatenation.read();
939 | }
940 | })
941 | .on("error", t.end)
942 | .on("end", t.end);
943 |
944 | source1.push("a");
945 | source2.push("d");
946 | source1.push("b");
947 | source2.push("e");
948 | source1.push("c");
949 | source2.push("f");
950 | source2.push(null);
951 | source1.push(null);
952 | },
953 | );
954 |
955 | test.cb(
956 | "concat() concatenates multiple readable streams (non-object, flowing mode)",
957 | t => {
958 | t.plan(6);
959 | const source1 = new Readable({ objectMode: false });
960 | const source2 = new Readable({ objectMode: false });
961 | const expectedElements = ["a", "b", "c", "d", "e", "f"];
962 | let i = 0;
963 | concat(source1, source2)
964 | .on("data", (element: string) => {
965 | expect(element).to.deep.equal(Buffer.from(expectedElements[i]));
966 | t.pass();
967 | i++;
968 | })
969 | .on("error", t.end)
970 | .on("end", t.end);
971 |
972 | source1.push("a");
973 | source2.push("d");
974 | source1.push("b");
975 | source2.push("e");
976 | source1.push("c");
977 | source2.push("f");
978 | source2.push(null);
979 | source1.push(null);
980 | },
981 | );
982 |
983 | test.cb(
984 | "concat() concatenates multiple readable streams (non-object, paused mode)",
985 | t => {
986 | t.plan(6);
987 | const source1 = new Readable({ objectMode: false, read: () => ({}) });
988 | const source2 = new Readable({ objectMode: false, read: () => ({}) });
989 | const expectedElements = ["a", "b", "c", "d", "e", "f"];
990 | let i = 0;
991 | const concatenation = concat(source1, source2)
992 | .on("readable", () => {
993 | let element = concatenation.read();
994 | while (element !== null) {
995 | expect(element).to.deep.equal(
996 | Buffer.from(expectedElements[i]),
997 | );
998 | t.pass();
999 | i++;
1000 | element = concatenation.read();
1001 | }
1002 | })
1003 | .on("error", t.end)
1004 | .on("end", t.end);
1005 |
1006 | source1.push("a");
1007 | setTimeout(() => source2.push("d"), 10);
1008 | setTimeout(() => source1.push("b"), 20);
1009 | setTimeout(() => source2.push("e"), 30);
1010 | setTimeout(() => source1.push("c"), 40);
1011 | setTimeout(() => source2.push("f"), 50);
1012 | setTimeout(() => source2.push(null), 60);
1013 | setTimeout(() => source1.push(null), 70);
1014 | },
1015 | );
1016 |
1017 | test.cb("concat() concatenates a single readable stream (object mode)", t => {
1018 | t.plan(3);
1019 | const source = new Readable({ objectMode: true });
1020 | const expectedElements = ["a", "b", "c", "d", "e", "f"];
1021 | let i = 0;
1022 | concat(source)
1023 | .on("data", (element: string) => {
1024 | expect(element).to.equal(expectedElements[i]);
1025 | t.pass();
1026 | i++;
1027 | })
1028 | .on("error", t.end)
1029 | .on("end", t.end);
1030 |
1031 | source.push("a");
1032 | source.push("b");
1033 | source.push("c");
1034 | source.push(null);
1035 | });
1036 |
1037 | test.cb(
1038 | "concat() concatenates a single readable stream (non-object mode)",
1039 | t => {
1040 | t.plan(3);
1041 | const source = new Readable({ objectMode: false });
1042 | const expectedElements = ["a", "b", "c", "d", "e", "f"];
1043 | let i = 0;
1044 | concat(source)
1045 | .on("data", (element: string) => {
1046 | expect(element).to.deep.equal(Buffer.from(expectedElements[i]));
1047 | t.pass();
1048 | i++;
1049 | })
1050 | .on("error", t.end)
1051 | .on("end", t.end);
1052 |
1053 | source.push("a");
1054 | source.push("b");
1055 | source.push("c");
1056 | source.push(null);
1057 | },
1058 | );
1059 |
1060 | test.cb("concat() concatenates empty list of readable streams", t => {
1061 | t.plan(0);
1062 | concat()
1063 | .pipe(collect())
1064 | .on("data", _ => {
1065 | t.fail();
1066 | })
1067 | .on("error", t.end)
1068 | .on("end", t.end);
1069 | });
1070 |
1071 | test.cb(
1072 | "merge() merges multiple readable streams in chunk arrival order",
1073 | t => {
1074 | t.plan(6);
1075 | const source1 = new Readable({ objectMode: true, read: () => ({}) });
1076 | const source2 = new Readable({ objectMode: true, read: () => ({}) });
1077 | const expectedElements = ["a", "d", "b", "e", "c", "f"];
1078 | let i = 0;
1079 | merge(source1, source2)
1080 | .on("data", (element: string) => {
1081 | expect(element).to.equal(expectedElements[i]);
1082 | t.pass();
1083 | i++;
1084 | })
1085 | .on("error", t.end)
1086 | .on("end", t.end);
1087 |
1088 | source1.push("a");
1089 | setTimeout(() => source2.push("d"), 10);
1090 | setTimeout(() => source1.push("b"), 20);
1091 | setTimeout(() => source2.push("e"), 30);
1092 | setTimeout(() => source1.push("c"), 40);
1093 | setTimeout(() => source2.push("f"), 50);
1094 | setTimeout(() => source2.push(null), 60);
1095 | setTimeout(() => source1.push(null), 70);
1096 | },
1097 | );
1098 |
1099 | test.cb("merge() merges a readable stream", t => {
1100 | t.plan(3);
1101 | const source = new Readable({ objectMode: true, read: () => ({}) });
1102 | const expectedElements = ["a", "b", "c"];
1103 | let i = 0;
1104 | merge(source)
1105 | .on("data", (element: string) => {
1106 | expect(element).to.equal(expectedElements[i]);
1107 | t.pass();
1108 | i++;
1109 | })
1110 | .on("error", t.end)
1111 | .on("end", t.end);
1112 |
1113 | source.push("a");
1114 | source.push("b");
1115 | source.push("c");
1116 | source.push(null);
1117 | });
1118 |
1119 | test.cb("merge() merges an empty list of readable streams", t => {
1120 | t.plan(0);
1121 | merge()
1122 | .on("data", () => t.pass())
1123 | .on("error", t.end)
1124 | .on("end", t.end);
1125 | });
1126 |
1127 | test.cb(
1128 | "duplex() combines a writable and readable stream into a ReadWrite stream",
1129 | t => {
1130 | t.plan(1);
1131 | const source = new Readable();
1132 | const catProcess = cp.exec("cat");
1133 | let out = "";
1134 | source
1135 | .pipe(duplex(catProcess.stdin, catProcess.stdout))
1136 | .on("data", chunk => (out += chunk))
1137 | .on("error", t.end)
1138 | .on("end", () => {
1139 | expect(out).to.equal("abcdef");
1140 | t.pass();
1141 | t.end();
1142 | });
1143 | source.push("ab");
1144 | source.push("cd");
1145 | source.push("ef");
1146 | source.push(null);
1147 | },
1148 | );
1149 |
1150 | test.cb(
1151 | "child() allows easily writing to child process stdin and reading from its stdout",
1152 | t => {
1153 | t.plan(1);
1154 | const source = new Readable();
1155 | const catProcess = cp.exec("cat");
1156 | let out = "";
1157 | source
1158 | .pipe(child(catProcess))
1159 | .on("data", chunk => (out += chunk))
1160 | .on("error", t.end)
1161 | .on("end", () => {
1162 | expect(out).to.equal("abcdef");
1163 | t.pass();
1164 | t.end();
1165 | });
1166 | source.push("ab");
1167 | source.push("cd");
1168 | source.push("ef");
1169 | source.push(null);
1170 | },
1171 | );
1172 |
1173 | test("last() resolves to the last chunk streamed by the given readable stream", async t => {
1174 | const source = new Readable({ objectMode: true });
1175 | const lastPromise = last(source);
1176 | source.push("ab");
1177 | source.push("cd");
1178 | source.push("ef");
1179 | source.push(null);
1180 | const lastChunk = await lastPromise;
1181 | expect(lastChunk).to.equal("ef");
1182 | });
1183 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { Transform, Readable, Writable, Duplex } from "stream";
2 | import { ChildProcess } from "child_process";
3 | import { StringDecoder } from "string_decoder";
4 |
5 | export interface ThroughOptions {
6 | objectMode?: boolean;
7 | }
8 | export interface TransformOptions {
9 | readableObjectMode?: boolean;
10 | writableObjectMode?: boolean;
11 | }
12 | export interface WithEncoding {
13 | encoding: string;
14 | }
15 |
16 | /**
17 | * Convert an array into a Readable stream of its elements
18 | * @param array Array of elements to stream
19 | */
20 | export function fromArray(array: any[]): NodeJS.ReadableStream {
21 | let cursor = 0;
22 | return new Readable({
23 | objectMode: true,
24 | read() {
25 | if (cursor < array.length) {
26 | this.push(array[cursor]);
27 | cursor++;
28 | } else {
29 | this.push(null);
30 | }
31 | },
32 | });
33 | }
34 |
35 | /**
36 | * Return a ReadWrite stream that maps streamed chunks
37 | * @param mapper Mapper function, mapping each (chunk, encoding) to a new chunk (or a promise of such)
38 | * @param options
39 | * @param options.readableObjectMode Whether this stream should behave as a readable stream of objects
40 | * @param options.writableObjectMode Whether this stream should behave as a writable stream of objects
41 | */
42 | export function map(
43 | mapper: (chunk: T, encoding: string) => R,
44 | options: TransformOptions = {
45 | readableObjectMode: true,
46 | writableObjectMode: true,
47 | },
48 | ): NodeJS.ReadWriteStream {
49 | return new Transform({
50 | ...options,
51 | async transform(chunk: T, encoding, callback) {
52 | let isPromise = false;
53 | try {
54 | const mapped = mapper(chunk, encoding);
55 | isPromise = mapped instanceof Promise;
56 | callback(undefined, await mapped);
57 | } catch (err) {
58 | if (isPromise) {
59 | // Calling the callback asynchronously with an error wouldn't emit the error, so emit directly
60 | this.emit("error", err);
61 | callback();
62 | } else {
63 | callback(err);
64 | }
65 | }
66 | },
67 | });
68 | }
69 |
70 | /**
71 | * Return a ReadWrite stream that flat maps streamed chunks
72 | * @param mapper Mapper function, mapping each (chunk, encoding) to an array of new chunks (or a promise of such)
73 | * @param options
74 | * @param options.readableObjectMode Whether this stream should behave as a readable stream of objects
75 | * @param options.writableObjectMode Whether this stream should behave as a writable stream of objects
76 | */
77 | export function flatMap(
78 | mapper:
79 | | ((chunk: T, encoding: string) => R[])
80 | | ((chunk: T, encoding: string) => Promise),
81 | options: TransformOptions = {
82 | readableObjectMode: true,
83 | writableObjectMode: true,
84 | },
85 | ): NodeJS.ReadWriteStream {
86 | return new Transform({
87 | ...options,
88 | async transform(chunk: T, encoding, callback) {
89 | let isPromise = false;
90 | try {
91 | const mapped = mapper(chunk, encoding);
92 | isPromise = mapped instanceof Promise;
93 | (await mapped).forEach(c => this.push(c));
94 | callback();
95 | } catch (err) {
96 | if (isPromise) {
97 | // Calling the callback asynchronously with an error wouldn't emit the error, so emit directly
98 | this.emit("error", err);
99 | callback();
100 | } else {
101 | callback(err);
102 | }
103 | }
104 | },
105 | });
106 | }
107 |
108 | /**
109 | * Return a ReadWrite stream that filters out streamed chunks for which the predicate does not hold
110 | * @param predicate Predicate with which to filter scream chunks
111 | * @param options
112 | * @param options.objectMode Whether this stream should behave as a stream of objects
113 | */
114 | export function filter(
115 | predicate:
116 | | ((chunk: T, encoding: string) => boolean)
117 | | ((chunk: T, encoding: string) => Promise),
118 | options: ThroughOptions = {
119 | objectMode: true,
120 | },
121 | ) {
122 | return new Transform({
123 | readableObjectMode: options.objectMode,
124 | writableObjectMode: options.objectMode,
125 | async transform(chunk: T, encoding, callback) {
126 | let isPromise = false;
127 | try {
128 | const result = predicate(chunk, encoding);
129 | isPromise = result instanceof Promise;
130 | if (!!(await result)) {
131 | callback(undefined, chunk);
132 | } else {
133 | callback();
134 | }
135 | } catch (err) {
136 | if (isPromise) {
137 | // Calling the callback asynchronously with an error wouldn't emit the error, so emit directly
138 | this.emit("error", err);
139 | callback();
140 | } else {
141 | callback(err);
142 | }
143 | }
144 | },
145 | });
146 | }
147 |
148 | /**
149 | * Return a ReadWrite stream that reduces streamed chunks down to a single value and yield that
150 | * value
151 | * @param iteratee Reducer function to apply on each streamed chunk
152 | * @param initialValue Initial value
153 | * @param options
154 | * @param options.readableObjectMode Whether this stream should behave as a readable stream of objects
155 | * @param options.writableObjectMode Whether this stream should behave as a writable stream of objects
156 | */
157 | export function reduce(
158 | iteratee:
159 | | ((previousValue: R, chunk: T, encoding: string) => R)
160 | | ((previousValue: R, chunk: T, encoding: string) => Promise),
161 | initialValue: R,
162 | options: TransformOptions = {
163 | readableObjectMode: true,
164 | writableObjectMode: true,
165 | },
166 | ) {
167 | let value = initialValue;
168 | return new Transform({
169 | readableObjectMode: options.readableObjectMode,
170 | writableObjectMode: options.writableObjectMode,
171 | async transform(chunk: T, encoding, callback) {
172 | let isPromise = false;
173 | try {
174 | const result = iteratee(value, chunk, encoding);
175 | isPromise = result instanceof Promise;
176 | value = await result;
177 | callback();
178 | } catch (err) {
179 | if (isPromise) {
180 | // Calling the callback asynchronously with an error wouldn't emit the error, so emit directly
181 | this.emit("error", err);
182 | callback();
183 | } else {
184 | callback(err);
185 | }
186 | }
187 | },
188 | flush(callback) {
189 | // Best effort attempt at yielding the final value (will throw if e.g. yielding an object and
190 | // downstream doesn't expect objects)
191 | try {
192 | callback(undefined, value);
193 | } catch (err) {
194 | try {
195 | this.emit("error", err);
196 | } catch {
197 | // Best effort was made
198 | }
199 | }
200 | },
201 | });
202 | }
203 |
204 | /**
205 | * Return a ReadWrite stream that splits streamed chunks using the given separator
206 | * @param separator Separator to split by, defaulting to "\n"
207 | * @param options
208 | * @param options.encoding Encoding written chunks are assumed to use
209 | */
210 | export function split(
211 | separator: string | RegExp = "\n",
212 | options: WithEncoding = { encoding: "utf8" },
213 | ): NodeJS.ReadWriteStream {
214 | let buffered = "";
215 | const decoder = new StringDecoder(options.encoding);
216 |
217 | return new Transform({
218 | readableObjectMode: true,
219 | transform(chunk: Buffer, encoding, callback) {
220 | const asString = decoder.write(chunk);
221 | const splitted = asString.split(separator);
222 | if (splitted.length > 1) {
223 | splitted[0] = buffered.concat(splitted[0]);
224 | buffered = "";
225 | }
226 | buffered += splitted[splitted.length - 1];
227 | splitted.slice(0, -1).forEach((part: string) => this.push(part));
228 | callback();
229 | },
230 | flush(callback) {
231 | callback(undefined, buffered + decoder.end());
232 | },
233 | });
234 | }
235 |
236 | /**
237 | * Return a ReadWrite stream that joins streamed chunks using the given separator
238 | * @param separator Separator to join with
239 | * @param options
240 | * @param options.encoding Encoding written chunks are assumed to use
241 | */
242 | export function join(
243 | separator: string,
244 | options: WithEncoding = { encoding: "utf8" },
245 | ): NodeJS.ReadWriteStream {
246 | let isFirstChunk = true;
247 | const decoder = new StringDecoder(options.encoding);
248 | return new Transform({
249 | readableObjectMode: true,
250 | async transform(chunk: Buffer, encoding, callback) {
251 | const asString = decoder.write(chunk);
252 | // Take care not to break up multi-byte characters spanning multiple chunks
253 | if (asString !== "" || chunk.length === 0) {
254 | if (!isFirstChunk) {
255 | this.push(separator);
256 | }
257 | this.push(asString);
258 | isFirstChunk = false;
259 | }
260 | callback();
261 | },
262 | });
263 | }
264 |
265 | /**
266 | * Return a ReadWrite stream that replaces occurrences of the given string or regular expression in
267 | * the streamed chunks with the specified replacement string
268 | * @param searchValue Search string to use
269 | * @param replaceValue Replacement string to use
270 | * @param options
271 | * @param options.encoding Encoding written chunks are assumed to use
272 | */
273 | export function replace(
274 | searchValue: string | RegExp,
275 | replaceValue: string,
276 | options: WithEncoding = { encoding: "utf8" },
277 | ): NodeJS.ReadWriteStream {
278 | const decoder = new StringDecoder(options.encoding);
279 | return new Transform({
280 | readableObjectMode: true,
281 | transform(chunk: Buffer, encoding, callback) {
282 | const asString = decoder.write(chunk);
283 | // Take care not to break up multi-byte characters spanning multiple chunks
284 | if (asString !== "" || chunk.length === 0) {
285 | callback(
286 | undefined,
287 | asString.replace(searchValue, replaceValue),
288 | );
289 | } else {
290 | callback();
291 | }
292 | },
293 | });
294 | }
295 |
296 | /**
297 | * Return a ReadWrite stream that parses the streamed chunks as JSON. Each streamed chunk
298 | * must be a fully defined JSON string.
299 | */
300 | export function parse(): NodeJS.ReadWriteStream {
301 | const decoder = new StringDecoder("utf8"); // JSON must be utf8
302 | return new Transform({
303 | readableObjectMode: true,
304 | writableObjectMode: true,
305 | async transform(chunk: Buffer, encoding, callback) {
306 | try {
307 | const asString = decoder.write(chunk);
308 | // Using await causes parsing errors to be emitted
309 | callback(undefined, await JSON.parse(asString));
310 | } catch (err) {
311 | callback(err);
312 | }
313 | },
314 | });
315 | }
316 |
317 | type JsonPrimitive = string | number | object;
318 | type JsonValue = JsonPrimitive | JsonPrimitive[];
319 | interface JsonParseOptions {
320 | pretty: boolean;
321 | }
322 |
323 | /**
324 | * Return a ReadWrite stream that stringifies the streamed chunks to JSON
325 | */
326 | export function stringify(
327 | options: JsonParseOptions = { pretty: false },
328 | ): NodeJS.ReadWriteStream {
329 | return new Transform({
330 | readableObjectMode: true,
331 | writableObjectMode: true,
332 | transform(chunk: JsonValue, encoding, callback) {
333 | callback(
334 | undefined,
335 | options.pretty
336 | ? JSON.stringify(chunk, null, 2)
337 | : JSON.stringify(chunk),
338 | );
339 | },
340 | });
341 | }
342 |
343 | /**
344 | * Return a ReadWrite stream that collects streamed chunks into an array or buffer
345 | * @param options
346 | * @param options.objectMode Whether this stream should behave as a stream of objects
347 | */
348 | export function collect(
349 | options: ThroughOptions = { objectMode: false },
350 | ): NodeJS.ReadWriteStream {
351 | const collected: any[] = [];
352 | return new Transform({
353 | readableObjectMode: options.objectMode,
354 | writableObjectMode: options.objectMode,
355 | transform(data, encoding, callback) {
356 | collected.push(data);
357 | callback();
358 | },
359 | flush(callback) {
360 | this.push(
361 | options.objectMode ? collected : Buffer.concat(collected),
362 | );
363 | callback();
364 | },
365 | });
366 | }
367 |
368 | /**
369 | * Return a Readable stream of readable streams concatenated together
370 | * @param streams Readable streams to concatenate
371 | */
372 | export function concat(
373 | ...streams: NodeJS.ReadableStream[]
374 | ): NodeJS.ReadableStream {
375 | let isStarted = false;
376 | let currentStreamIndex = 0;
377 | const startCurrentStream = () => {
378 | if (currentStreamIndex >= streams.length) {
379 | wrapper.push(null);
380 | } else {
381 | streams[currentStreamIndex]
382 | .on("data", chunk => {
383 | if (!wrapper.push(chunk)) {
384 | streams[currentStreamIndex].pause();
385 | }
386 | })
387 | .on("error", err => wrapper.emit("error", err))
388 | .on("end", () => {
389 | currentStreamIndex++;
390 | startCurrentStream();
391 | });
392 | }
393 | };
394 |
395 | const wrapper = new Readable({
396 | objectMode: true,
397 | read() {
398 | if (!isStarted) {
399 | isStarted = true;
400 | startCurrentStream();
401 | }
402 | if (currentStreamIndex < streams.length) {
403 | streams[currentStreamIndex].resume();
404 | }
405 | },
406 | });
407 | return wrapper;
408 | }
409 |
410 | /**
411 | * Return a Readable stream of readable streams merged together in chunk arrival order
412 | * @param streams Readable streams to merge
413 | */
414 | export function merge(
415 | ...streams: NodeJS.ReadableStream[]
416 | ): NodeJS.ReadableStream {
417 | let isStarted = false;
418 | let streamEndedCount = 0;
419 | return new Readable({
420 | objectMode: true,
421 | read() {
422 | if (streamEndedCount >= streams.length) {
423 | this.push(null);
424 | } else if (!isStarted) {
425 | isStarted = true;
426 | streams.forEach(stream =>
427 | stream
428 | .on("data", chunk => {
429 | if (!this.push(chunk)) {
430 | streams.forEach(s => s.pause());
431 | }
432 | })
433 | .on("error", err => this.emit("error", err))
434 | .on("end", () => {
435 | streamEndedCount++;
436 | if (streamEndedCount === streams.length) {
437 | this.push(null);
438 | }
439 | }),
440 | );
441 | } else {
442 | streams.forEach(s => s.resume());
443 | }
444 | },
445 | });
446 | }
447 |
448 | /**
449 | * Return a Duplex stream from a writable stream that is assumed to somehow, when written to,
450 | * cause the given readable stream to yield chunks
451 | * @param writable Writable stream assumed to cause the readable stream to yield chunks when written to
452 | * @param readable Readable stream assumed to yield chunks when the writable stream is written to
453 | */
454 | export function duplex(writable: Writable, readable: Readable) {
455 | const wrapper = new Duplex({
456 | readableObjectMode: true,
457 | writableObjectMode: true,
458 | read() {
459 | readable.resume();
460 | },
461 | write(chunk, encoding, callback) {
462 | return writable.write(chunk, encoding, callback);
463 | },
464 | final(callback) {
465 | writable.end(callback);
466 | },
467 | });
468 | readable
469 | .on("data", chunk => {
470 | if (!wrapper.push(chunk)) {
471 | readable.pause();
472 | }
473 | })
474 | .on("error", err => wrapper.emit("error", err))
475 | .on("end", () => wrapper.push(null));
476 | writable.on("drain", () => wrapper.emit("drain"));
477 | writable.on("error", err => wrapper.emit("error", err));
478 | return wrapper;
479 | }
480 |
481 | /**
482 | * Return a Duplex stream from a child process' stdin and stdout
483 | * @param childProcess Child process from which to create duplex stream
484 | */
485 | export function child(childProcess: ChildProcess) {
486 | return duplex(childProcess.stdin, childProcess.stdout);
487 | }
488 |
489 | /**
490 | * Return a Promise resolving to the last streamed chunk of the given readable stream, after it has
491 | * ended
492 | * @param readable Readable stream to wait on
493 | */
494 | export function last(readable: Readable): Promise {
495 | let lastChunk: T | null = null;
496 | return new Promise((resolve, reject) => {
497 | readable
498 | .on("data", chunk => (lastChunk = chunk))
499 | .on("end", () => resolve(lastChunk));
500 | });
501 | }
502 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "noImplicitAny": true,
4 | "strictNullChecks": true,
5 | "noImplicitReturns": true,
6 | "noUnusedLocals": true,
7 | "noImplicitThis": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "suppressImplicitAnyIndexErrors": true,
10 | "outDir": "./dist",
11 | "module": "commonjs",
12 | "target": "es5",
13 | "lib": ["es2016"],
14 | "sourceMap": true,
15 | "declaration": true
16 | },
17 | "include": ["src/**/*.ts"]
18 | }
19 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "tslint:latest",
4 | "tslint-plugin-prettier",
5 | "tslint-config-prettier"
6 | ],
7 | "rules": {
8 | "no-console": false,
9 | "no-implicit-dependencies": [true, "dev"],
10 | "prettier": true,
11 | "ordered-imports": false,
12 | "interface-name": false
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ava/babel-plugin-throws-helper@^3.0.0":
6 | version "3.0.0"
7 | resolved "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-3.0.0.tgz#2c933ec22da0c4ce1fc5369f2b95452c70420586"
8 | integrity sha512-mN9UolOs4WX09QkheU1ELkVy2WPnwonlO3XMdN8JF8fQqRVgVTR21xDbvEOUsbwz6Zwjq7ji9yzyjuXqDPalxg==
9 |
10 | "@ava/babel-preset-stage-4@^2.0.0":
11 | version "2.0.0"
12 | resolved "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-2.0.0.tgz#2cd072ff818e4432b87fd4c5fd5c5d1a405a4343"
13 | integrity sha512-OWqMYeTSZ16AfLx0Vn0Uj7tcu+uMRlbKmks+DVCFlln7vomVsOtst+Oz+HCussDSFGpE+30VtHAUHLy6pLDpHQ==
14 | dependencies:
15 | "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
16 | "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
17 | "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
18 | "@babel/plugin-transform-async-to-generator" "^7.0.0"
19 | "@babel/plugin-transform-dotall-regex" "^7.0.0"
20 | "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
21 | "@babel/plugin-transform-modules-commonjs" "^7.0.0"
22 |
23 | "@ava/babel-preset-transform-test-files@^4.0.0":
24 | version "4.0.0"
25 | resolved "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-4.0.0.tgz#95d426f5982f934567ae5a21e43eac0a463d6feb"
26 | integrity sha512-V9hYHA/ZLb4I8imrrG8PT0mzgThjWWmahPV+mrQUZobVnsekBUDrf0JsfXVm4guS3binWxWn+MmQt+V81hTizA==
27 | dependencies:
28 | "@ava/babel-plugin-throws-helper" "^3.0.0"
29 | babel-plugin-espower "^3.0.0"
30 |
31 | "@ava/write-file-atomic@^2.2.0":
32 | version "2.2.0"
33 | resolved "https://registry.yarnpkg.com/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz#d625046f3495f1f5e372135f473909684b429247"
34 | integrity sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==
35 | dependencies:
36 | graceful-fs "^4.1.11"
37 | imurmurhash "^0.1.4"
38 | slide "^1.1.5"
39 |
40 | "@babel/code-frame@^7.0.0":
41 | version "7.0.0"
42 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
43 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
44 | dependencies:
45 | "@babel/highlight" "^7.0.0"
46 |
47 | "@babel/core@^7.1.5":
48 | version "7.1.6"
49 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.6.tgz#3733cbee4317429bc87c62b29cf8587dba7baeb3"
50 | integrity sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==
51 | dependencies:
52 | "@babel/code-frame" "^7.0.0"
53 | "@babel/generator" "^7.1.6"
54 | "@babel/helpers" "^7.1.5"
55 | "@babel/parser" "^7.1.6"
56 | "@babel/template" "^7.1.2"
57 | "@babel/traverse" "^7.1.6"
58 | "@babel/types" "^7.1.6"
59 | convert-source-map "^1.1.0"
60 | debug "^4.1.0"
61 | json5 "^2.1.0"
62 | lodash "^4.17.10"
63 | resolve "^1.3.2"
64 | semver "^5.4.1"
65 | source-map "^0.5.0"
66 |
67 | "@babel/generator@^7.0.0", "@babel/generator@^7.1.5", "@babel/generator@^7.1.6":
68 | version "7.1.6"
69 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.6.tgz#001303cf87a5b9d093494a4bf251d7b5d03d3999"
70 | integrity sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==
71 | dependencies:
72 | "@babel/types" "^7.1.6"
73 | jsesc "^2.5.1"
74 | lodash "^4.17.10"
75 | source-map "^0.5.0"
76 | trim-right "^1.0.1"
77 |
78 | "@babel/helper-annotate-as-pure@^7.0.0":
79 | version "7.0.0"
80 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
81 | integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
82 | dependencies:
83 | "@babel/types" "^7.0.0"
84 |
85 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
86 | version "7.1.0"
87 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
88 | integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
89 | dependencies:
90 | "@babel/helper-explode-assignable-expression" "^7.1.0"
91 | "@babel/types" "^7.0.0"
92 |
93 | "@babel/helper-explode-assignable-expression@^7.1.0":
94 | version "7.1.0"
95 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
96 | integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
97 | dependencies:
98 | "@babel/traverse" "^7.1.0"
99 | "@babel/types" "^7.0.0"
100 |
101 | "@babel/helper-function-name@^7.1.0":
102 | version "7.1.0"
103 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
104 | integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
105 | dependencies:
106 | "@babel/helper-get-function-arity" "^7.0.0"
107 | "@babel/template" "^7.1.0"
108 | "@babel/types" "^7.0.0"
109 |
110 | "@babel/helper-get-function-arity@^7.0.0":
111 | version "7.0.0"
112 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
113 | integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
114 | dependencies:
115 | "@babel/types" "^7.0.0"
116 |
117 | "@babel/helper-module-imports@^7.0.0":
118 | version "7.0.0"
119 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
120 | integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
121 | dependencies:
122 | "@babel/types" "^7.0.0"
123 |
124 | "@babel/helper-module-transforms@^7.1.0":
125 | version "7.1.0"
126 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787"
127 | integrity sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==
128 | dependencies:
129 | "@babel/helper-module-imports" "^7.0.0"
130 | "@babel/helper-simple-access" "^7.1.0"
131 | "@babel/helper-split-export-declaration" "^7.0.0"
132 | "@babel/template" "^7.1.0"
133 | "@babel/types" "^7.0.0"
134 | lodash "^4.17.10"
135 |
136 | "@babel/helper-plugin-utils@^7.0.0":
137 | version "7.0.0"
138 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
139 | integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
140 |
141 | "@babel/helper-regex@^7.0.0":
142 | version "7.0.0"
143 | resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27"
144 | integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==
145 | dependencies:
146 | lodash "^4.17.10"
147 |
148 | "@babel/helper-remap-async-to-generator@^7.1.0":
149 | version "7.1.0"
150 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
151 | integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
152 | dependencies:
153 | "@babel/helper-annotate-as-pure" "^7.0.0"
154 | "@babel/helper-wrap-function" "^7.1.0"
155 | "@babel/template" "^7.1.0"
156 | "@babel/traverse" "^7.1.0"
157 | "@babel/types" "^7.0.0"
158 |
159 | "@babel/helper-simple-access@^7.1.0":
160 | version "7.1.0"
161 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
162 | integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
163 | dependencies:
164 | "@babel/template" "^7.1.0"
165 | "@babel/types" "^7.0.0"
166 |
167 | "@babel/helper-split-export-declaration@^7.0.0":
168 | version "7.0.0"
169 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813"
170 | integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==
171 | dependencies:
172 | "@babel/types" "^7.0.0"
173 |
174 | "@babel/helper-wrap-function@^7.1.0":
175 | version "7.1.0"
176 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66"
177 | integrity sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==
178 | dependencies:
179 | "@babel/helper-function-name" "^7.1.0"
180 | "@babel/template" "^7.1.0"
181 | "@babel/traverse" "^7.1.0"
182 | "@babel/types" "^7.0.0"
183 |
184 | "@babel/helpers@^7.1.5":
185 | version "7.1.5"
186 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996"
187 | integrity sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==
188 | dependencies:
189 | "@babel/template" "^7.1.2"
190 | "@babel/traverse" "^7.1.5"
191 | "@babel/types" "^7.1.5"
192 |
193 | "@babel/highlight@^7.0.0":
194 | version "7.0.0"
195 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
196 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
197 | dependencies:
198 | chalk "^2.0.0"
199 | esutils "^2.0.2"
200 | js-tokens "^4.0.0"
201 |
202 | "@babel/parser@^7.0.0", "@babel/parser@^7.1.2", "@babel/parser@^7.1.6":
203 | version "7.1.6"
204 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.6.tgz#16e97aca1ec1062324a01c5a6a7d0df8dd189854"
205 | integrity sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==
206 |
207 | "@babel/plugin-proposal-async-generator-functions@^7.0.0":
208 | version "7.1.0"
209 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce"
210 | integrity sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==
211 | dependencies:
212 | "@babel/helper-plugin-utils" "^7.0.0"
213 | "@babel/helper-remap-async-to-generator" "^7.1.0"
214 | "@babel/plugin-syntax-async-generators" "^7.0.0"
215 |
216 | "@babel/plugin-proposal-object-rest-spread@^7.0.0":
217 | version "7.0.0"
218 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e"
219 | integrity sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==
220 | dependencies:
221 | "@babel/helper-plugin-utils" "^7.0.0"
222 | "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
223 |
224 | "@babel/plugin-proposal-optional-catch-binding@^7.0.0":
225 | version "7.0.0"
226 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425"
227 | integrity sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==
228 | dependencies:
229 | "@babel/helper-plugin-utils" "^7.0.0"
230 | "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
231 |
232 | "@babel/plugin-syntax-async-generators@^7.0.0":
233 | version "7.0.0"
234 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c"
235 | integrity sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==
236 | dependencies:
237 | "@babel/helper-plugin-utils" "^7.0.0"
238 |
239 | "@babel/plugin-syntax-object-rest-spread@^7.0.0":
240 | version "7.0.0"
241 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b"
242 | integrity sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==
243 | dependencies:
244 | "@babel/helper-plugin-utils" "^7.0.0"
245 |
246 | "@babel/plugin-syntax-optional-catch-binding@^7.0.0":
247 | version "7.0.0"
248 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475"
249 | integrity sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==
250 | dependencies:
251 | "@babel/helper-plugin-utils" "^7.0.0"
252 |
253 | "@babel/plugin-transform-async-to-generator@^7.0.0":
254 | version "7.1.0"
255 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811"
256 | integrity sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==
257 | dependencies:
258 | "@babel/helper-module-imports" "^7.0.0"
259 | "@babel/helper-plugin-utils" "^7.0.0"
260 | "@babel/helper-remap-async-to-generator" "^7.1.0"
261 |
262 | "@babel/plugin-transform-dotall-regex@^7.0.0":
263 | version "7.0.0"
264 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58"
265 | integrity sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==
266 | dependencies:
267 | "@babel/helper-plugin-utils" "^7.0.0"
268 | "@babel/helper-regex" "^7.0.0"
269 | regexpu-core "^4.1.3"
270 |
271 | "@babel/plugin-transform-exponentiation-operator@^7.0.0":
272 | version "7.1.0"
273 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73"
274 | integrity sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==
275 | dependencies:
276 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
277 | "@babel/helper-plugin-utils" "^7.0.0"
278 |
279 | "@babel/plugin-transform-modules-commonjs@^7.0.0":
280 | version "7.1.0"
281 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c"
282 | integrity sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==
283 | dependencies:
284 | "@babel/helper-module-transforms" "^7.1.0"
285 | "@babel/helper-plugin-utils" "^7.0.0"
286 | "@babel/helper-simple-access" "^7.1.0"
287 |
288 | "@babel/template@^7.1.0", "@babel/template@^7.1.2":
289 | version "7.1.2"
290 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
291 | integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==
292 | dependencies:
293 | "@babel/code-frame" "^7.0.0"
294 | "@babel/parser" "^7.1.2"
295 | "@babel/types" "^7.1.2"
296 |
297 | "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6":
298 | version "7.1.6"
299 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
300 | integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==
301 | dependencies:
302 | "@babel/code-frame" "^7.0.0"
303 | "@babel/generator" "^7.1.6"
304 | "@babel/helper-function-name" "^7.1.0"
305 | "@babel/helper-split-export-declaration" "^7.0.0"
306 | "@babel/parser" "^7.1.6"
307 | "@babel/types" "^7.1.6"
308 | debug "^4.1.0"
309 | globals "^11.1.0"
310 | lodash "^4.17.10"
311 |
312 | "@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.5", "@babel/types@^7.1.6":
313 | version "7.1.6"
314 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.6.tgz#0adb330c3a281348a190263aceb540e10f04bcce"
315 | integrity sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==
316 | dependencies:
317 | esutils "^2.0.2"
318 | lodash "^4.17.10"
319 | to-fast-properties "^2.0.0"
320 |
321 | "@concordance/react@^2.0.0":
322 | version "2.0.0"
323 | resolved "https://registry.yarnpkg.com/@concordance/react/-/react-2.0.0.tgz#aef913f27474c53731f4fd79cc2f54897de90fde"
324 | integrity sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==
325 | dependencies:
326 | arrify "^1.0.1"
327 |
328 | "@types/chai@^4.1.7":
329 | version "4.1.7"
330 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a"
331 | integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==
332 |
333 | "@types/node@^10.12.10":
334 | version "10.12.10"
335 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.10.tgz#4fa76e6598b7de3f0cb6ec3abacc4f59e5b3a2ce"
336 | integrity sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==
337 |
338 | abbrev@1:
339 | version "1.1.1"
340 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
341 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
342 |
343 | ansi-align@^2.0.0:
344 | version "2.0.0"
345 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
346 | integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=
347 | dependencies:
348 | string-width "^2.0.0"
349 |
350 | ansi-escapes@^3.1.0:
351 | version "3.1.0"
352 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
353 | integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
354 |
355 | ansi-regex@^2.0.0:
356 | version "2.1.1"
357 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
358 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
359 |
360 | ansi-regex@^3.0.0:
361 | version "3.0.0"
362 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
363 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
364 |
365 | ansi-regex@^4.0.0:
366 | version "4.0.0"
367 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
368 | integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
369 |
370 | ansi-styles@^2.2.1:
371 | version "2.2.1"
372 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
373 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
374 |
375 | ansi-styles@^3.2.1:
376 | version "3.2.1"
377 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
378 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
379 | dependencies:
380 | color-convert "^1.9.0"
381 |
382 | anymatch@^2.0.0:
383 | version "2.0.0"
384 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
385 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
386 | dependencies:
387 | micromatch "^3.1.4"
388 | normalize-path "^2.1.1"
389 |
390 | aproba@^1.0.3:
391 | version "1.2.0"
392 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
393 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
394 |
395 | are-we-there-yet@~1.1.2:
396 | version "1.1.5"
397 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
398 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
399 | dependencies:
400 | delegates "^1.0.0"
401 | readable-stream "^2.0.6"
402 |
403 | argparse@^1.0.7:
404 | version "1.0.10"
405 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
406 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
407 | dependencies:
408 | sprintf-js "~1.0.2"
409 |
410 | arr-diff@^4.0.0:
411 | version "4.0.0"
412 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
413 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
414 |
415 | arr-flatten@^1.1.0:
416 | version "1.1.0"
417 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
418 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
419 |
420 | arr-union@^3.1.0:
421 | version "3.1.0"
422 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
423 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
424 |
425 | array-differ@^1.0.0:
426 | version "1.0.0"
427 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
428 | integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=
429 |
430 | array-find-index@^1.0.1:
431 | version "1.0.2"
432 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
433 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
434 |
435 | array-union@^1.0.1:
436 | version "1.0.2"
437 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
438 | integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
439 | dependencies:
440 | array-uniq "^1.0.1"
441 |
442 | array-uniq@^1.0.1:
443 | version "1.0.3"
444 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
445 | integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
446 |
447 | array-uniq@^2.0.0:
448 | version "2.0.0"
449 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.0.0.tgz#0009e30306e37a6dd2e2e2480db5316fdade1583"
450 | integrity sha512-O3QZEr+3wDj7otzF7PjNGs6CA3qmYMLvt5xGkjY/V0VxS+ovvqVo/5wKM/OVOAyuX4DTh9H31zE/yKtO66hTkg==
451 |
452 | array-unique@^0.3.2:
453 | version "0.3.2"
454 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
455 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
456 |
457 | arrify@^1.0.0, arrify@^1.0.1:
458 | version "1.0.1"
459 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
460 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
461 |
462 | assertion-error@^1.1.0:
463 | version "1.1.0"
464 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
465 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
466 |
467 | assign-symbols@^1.0.0:
468 | version "1.0.0"
469 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
470 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
471 |
472 | async-each@^1.0.0:
473 | version "1.0.1"
474 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
475 | integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
476 |
477 | atob@^2.1.1:
478 | version "2.1.2"
479 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
480 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
481 |
482 | ava@^1.0.0-rc.2:
483 | version "1.0.0-rc.2"
484 | resolved "https://registry.yarnpkg.com/ava/-/ava-1.0.0-rc.2.tgz#a2f63211d2ad1924fa4671ff3b29212b1da656af"
485 | integrity sha512-MxCW+bY+ddID5SrZZHbkuCiwsLup3Dn/bAgnrl6BzHYRI4RF9Yk5zv6S2L1TjqUF1LvRS8RiqZBrD+G6db+fEg==
486 | dependencies:
487 | "@ava/babel-preset-stage-4" "^2.0.0"
488 | "@ava/babel-preset-transform-test-files" "^4.0.0"
489 | "@ava/write-file-atomic" "^2.2.0"
490 | "@babel/core" "^7.1.5"
491 | "@babel/generator" "^7.1.5"
492 | "@babel/plugin-syntax-async-generators" "^7.0.0"
493 | "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
494 | "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
495 | "@concordance/react" "^2.0.0"
496 | ansi-escapes "^3.1.0"
497 | ansi-styles "^3.2.1"
498 | arr-flatten "^1.1.0"
499 | array-union "^1.0.1"
500 | array-uniq "^2.0.0"
501 | arrify "^1.0.0"
502 | bluebird "^3.5.3"
503 | chalk "^2.4.1"
504 | chokidar "^2.0.4"
505 | chunkd "^1.0.0"
506 | ci-parallel-vars "^1.0.0"
507 | clean-stack "^2.0.0"
508 | clean-yaml-object "^0.1.0"
509 | cli-cursor "^2.1.0"
510 | cli-truncate "^1.1.0"
511 | code-excerpt "^2.1.1"
512 | common-path-prefix "^1.0.0"
513 | concordance "^4.0.0"
514 | convert-source-map "^1.6.0"
515 | currently-unhandled "^0.4.1"
516 | debug "^4.1.0"
517 | del "^3.0.0"
518 | dot-prop "^4.2.0"
519 | emittery "^0.4.1"
520 | empower-core "^1.2.0"
521 | equal-length "^1.0.0"
522 | escape-string-regexp "^1.0.5"
523 | esm "^3.0.84"
524 | figures "^2.0.0"
525 | find-up "^3.0.0"
526 | get-port "^4.0.0"
527 | globby "^7.1.1"
528 | ignore-by-default "^1.0.0"
529 | import-local "^2.0.0"
530 | indent-string "^3.2.0"
531 | is-ci "^1.2.1"
532 | is-error "^2.2.1"
533 | is-observable "^1.1.0"
534 | is-plain-object "^2.0.4"
535 | is-promise "^2.1.0"
536 | lodash.clone "^4.5.0"
537 | lodash.clonedeep "^4.5.0"
538 | lodash.clonedeepwith "^4.5.0"
539 | lodash.debounce "^4.0.3"
540 | lodash.difference "^4.3.0"
541 | lodash.flatten "^4.2.0"
542 | loud-rejection "^1.2.0"
543 | make-dir "^1.3.0"
544 | matcher "^1.1.1"
545 | md5-hex "^2.0.0"
546 | meow "^5.0.0"
547 | ms "^2.1.1"
548 | multimatch "^2.1.0"
549 | observable-to-promise "^0.5.0"
550 | ora "^3.0.0"
551 | package-hash "^2.0.0"
552 | pkg-conf "^2.1.0"
553 | plur "^3.0.1"
554 | pretty-ms "^4.0.0"
555 | require-precompiled "^0.1.0"
556 | resolve-cwd "^2.0.0"
557 | slash "^2.0.0"
558 | source-map-support "^0.5.9"
559 | stack-utils "^1.0.1"
560 | strip-ansi "^5.0.0"
561 | strip-bom-buf "^1.0.0"
562 | supertap "^1.0.0"
563 | supports-color "^5.5.0"
564 | trim-off-newlines "^1.0.1"
565 | trim-right "^1.0.1"
566 | unique-temp-dir "^1.0.0"
567 | update-notifier "^2.5.0"
568 |
569 | babel-code-frame@^6.22.0:
570 | version "6.26.0"
571 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
572 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
573 | dependencies:
574 | chalk "^1.1.3"
575 | esutils "^2.0.2"
576 | js-tokens "^3.0.2"
577 |
578 | babel-plugin-espower@^3.0.0:
579 | version "3.0.0"
580 | resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-3.0.0.tgz#8dadfa5ec2b9c82e3c4aa0a2d14fbd3ff6d40061"
581 | integrity sha512-f2IUz5kQyrwXnShcv7tvGxf76QkrEl00ENYgd6R0VMrz4xqlwBLZXFs5vse2vehs1Z+T2sXTP3UWX2QxMorzzw==
582 | dependencies:
583 | "@babel/generator" "^7.0.0"
584 | "@babel/parser" "^7.0.0"
585 | call-matcher "^1.0.0"
586 | core-js "^2.0.0"
587 | espower-location-detector "^1.0.0"
588 | espurify "^1.6.0"
589 | estraverse "^4.1.1"
590 |
591 | balanced-match@^1.0.0:
592 | version "1.0.0"
593 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
594 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
595 |
596 | base@^0.11.1:
597 | version "0.11.2"
598 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
599 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
600 | dependencies:
601 | cache-base "^1.0.1"
602 | class-utils "^0.3.5"
603 | component-emitter "^1.2.1"
604 | define-property "^1.0.0"
605 | isobject "^3.0.1"
606 | mixin-deep "^1.2.0"
607 | pascalcase "^0.1.1"
608 |
609 | binary-extensions@^1.0.0:
610 | version "1.12.0"
611 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
612 | integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==
613 |
614 | bluebird@^3.5.3:
615 | version "3.5.3"
616 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
617 | integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
618 |
619 | boxen@^1.2.1:
620 | version "1.3.0"
621 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
622 | integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==
623 | dependencies:
624 | ansi-align "^2.0.0"
625 | camelcase "^4.0.0"
626 | chalk "^2.0.1"
627 | cli-boxes "^1.0.0"
628 | string-width "^2.0.0"
629 | term-size "^1.2.0"
630 | widest-line "^2.0.0"
631 |
632 | brace-expansion@^1.1.7:
633 | version "1.1.11"
634 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
635 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
636 | dependencies:
637 | balanced-match "^1.0.0"
638 | concat-map "0.0.1"
639 |
640 | braces@^2.3.0, braces@^2.3.1:
641 | version "2.3.2"
642 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
643 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
644 | dependencies:
645 | arr-flatten "^1.1.0"
646 | array-unique "^0.3.2"
647 | extend-shallow "^2.0.1"
648 | fill-range "^4.0.0"
649 | isobject "^3.0.1"
650 | repeat-element "^1.1.2"
651 | snapdragon "^0.8.1"
652 | snapdragon-node "^2.0.1"
653 | split-string "^3.0.2"
654 | to-regex "^3.0.1"
655 |
656 | buffer-from@^1.0.0, buffer-from@^1.1.0:
657 | version "1.1.1"
658 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
659 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
660 |
661 | builtin-modules@^1.0.0, builtin-modules@^1.1.1:
662 | version "1.1.1"
663 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
664 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
665 |
666 | cache-base@^1.0.1:
667 | version "1.0.1"
668 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
669 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
670 | dependencies:
671 | collection-visit "^1.0.0"
672 | component-emitter "^1.2.1"
673 | get-value "^2.0.6"
674 | has-value "^1.0.0"
675 | isobject "^3.0.1"
676 | set-value "^2.0.0"
677 | to-object-path "^0.3.0"
678 | union-value "^1.0.0"
679 | unset-value "^1.0.0"
680 |
681 | call-matcher@^1.0.0:
682 | version "1.1.0"
683 | resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432"
684 | integrity sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw==
685 | dependencies:
686 | core-js "^2.0.0"
687 | deep-equal "^1.0.0"
688 | espurify "^1.6.0"
689 | estraverse "^4.0.0"
690 |
691 | call-signature@0.0.2:
692 | version "0.0.2"
693 | resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996"
694 | integrity sha1-qEq8glpV70yysCi9dOIFpluaSZY=
695 |
696 | camelcase-keys@^4.0.0:
697 | version "4.2.0"
698 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
699 | integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=
700 | dependencies:
701 | camelcase "^4.1.0"
702 | map-obj "^2.0.0"
703 | quick-lru "^1.0.0"
704 |
705 | camelcase@^4.0.0, camelcase@^4.1.0:
706 | version "4.1.0"
707 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
708 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
709 |
710 | capture-stack-trace@^1.0.0:
711 | version "1.0.1"
712 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
713 | integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
714 |
715 | chai@^4.2.0:
716 | version "4.2.0"
717 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5"
718 | integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==
719 | dependencies:
720 | assertion-error "^1.1.0"
721 | check-error "^1.0.2"
722 | deep-eql "^3.0.1"
723 | get-func-name "^2.0.0"
724 | pathval "^1.1.0"
725 | type-detect "^4.0.5"
726 |
727 | chalk@^1.1.3:
728 | version "1.1.3"
729 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
730 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
731 | dependencies:
732 | ansi-styles "^2.2.1"
733 | escape-string-regexp "^1.0.2"
734 | has-ansi "^2.0.0"
735 | strip-ansi "^3.0.0"
736 | supports-color "^2.0.0"
737 |
738 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1:
739 | version "2.4.1"
740 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
741 | integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
742 | dependencies:
743 | ansi-styles "^3.2.1"
744 | escape-string-regexp "^1.0.5"
745 | supports-color "^5.3.0"
746 |
747 | check-error@^1.0.2:
748 | version "1.0.2"
749 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
750 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
751 |
752 | chokidar@^2.0.4:
753 | version "2.0.4"
754 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
755 | integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==
756 | dependencies:
757 | anymatch "^2.0.0"
758 | async-each "^1.0.0"
759 | braces "^2.3.0"
760 | glob-parent "^3.1.0"
761 | inherits "^2.0.1"
762 | is-binary-path "^1.0.0"
763 | is-glob "^4.0.0"
764 | lodash.debounce "^4.0.8"
765 | normalize-path "^2.1.1"
766 | path-is-absolute "^1.0.0"
767 | readdirp "^2.0.0"
768 | upath "^1.0.5"
769 | optionalDependencies:
770 | fsevents "^1.2.2"
771 |
772 | chownr@^1.1.1:
773 | version "1.1.1"
774 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
775 | integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
776 |
777 | chunkd@^1.0.0:
778 | version "1.0.0"
779 | resolved "https://registry.yarnpkg.com/chunkd/-/chunkd-1.0.0.tgz#4ead4a3704bcce510c4bb4d4a8be30c557836dd1"
780 | integrity sha512-xx3Pb5VF9QaqCotolyZ1ywFBgyuJmu6+9dLiqBxgelEse9Xsr3yUlpoX3O4Oh11M00GT2kYMsRByTKIMJW2Lkg==
781 |
782 | ci-info@^1.5.0:
783 | version "1.6.0"
784 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
785 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
786 |
787 | ci-parallel-vars@^1.0.0:
788 | version "1.0.0"
789 | resolved "https://registry.yarnpkg.com/ci-parallel-vars/-/ci-parallel-vars-1.0.0.tgz#af97729ed1c7381911ca37bcea263d62638701b3"
790 | integrity sha512-u6dx20FBXm+apMi+5x7UVm6EH7BL1gc4XrcnQewjcB7HWRcor/V5qWc3RG2HwpgDJ26gIi2DSEu3B7sXynAw/g==
791 |
792 | class-utils@^0.3.5:
793 | version "0.3.6"
794 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
795 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
796 | dependencies:
797 | arr-union "^3.1.0"
798 | define-property "^0.2.5"
799 | isobject "^3.0.0"
800 | static-extend "^0.1.1"
801 |
802 | clean-stack@^2.0.0:
803 | version "2.0.0"
804 | resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.0.0.tgz#301bfa9e8dd2d3d984c0e542f7aa67b996f63e0a"
805 | integrity sha512-VEoL9Qh7I8s8iHnV53DaeWSt8NJ0g3khMfK6NiCPB7H657juhro+cSw2O88uo3bo0c0X5usamtXk0/Of0wXa5A==
806 |
807 | clean-yaml-object@^0.1.0:
808 | version "0.1.0"
809 | resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68"
810 | integrity sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=
811 |
812 | cli-boxes@^1.0.0:
813 | version "1.0.0"
814 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
815 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=
816 |
817 | cli-cursor@^2.1.0:
818 | version "2.1.0"
819 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
820 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
821 | dependencies:
822 | restore-cursor "^2.0.0"
823 |
824 | cli-spinners@^1.1.0:
825 | version "1.3.1"
826 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a"
827 | integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==
828 |
829 | cli-truncate@^1.1.0:
830 | version "1.1.0"
831 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
832 | integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==
833 | dependencies:
834 | slice-ansi "^1.0.0"
835 | string-width "^2.0.0"
836 |
837 | clone@^1.0.2:
838 | version "1.0.4"
839 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
840 | integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
841 |
842 | code-excerpt@^2.1.1:
843 | version "2.1.1"
844 | resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.1.tgz#5fe3057bfbb71a5f300f659ef2cc0a47651ba77c"
845 | integrity sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==
846 | dependencies:
847 | convert-to-spaces "^1.0.1"
848 |
849 | code-point-at@^1.0.0:
850 | version "1.1.0"
851 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
852 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
853 |
854 | collection-visit@^1.0.0:
855 | version "1.0.0"
856 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
857 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
858 | dependencies:
859 | map-visit "^1.0.0"
860 | object-visit "^1.0.0"
861 |
862 | color-convert@^1.9.0:
863 | version "1.9.3"
864 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
865 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
866 | dependencies:
867 | color-name "1.1.3"
868 |
869 | color-name@1.1.3:
870 | version "1.1.3"
871 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
872 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
873 |
874 | commander@^2.12.1:
875 | version "2.19.0"
876 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
877 | integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
878 |
879 | common-path-prefix@^1.0.0:
880 | version "1.0.0"
881 | resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0"
882 | integrity sha1-zVL28HEuC6q5fW+XModPIvR3UsA=
883 |
884 | component-emitter@^1.2.1:
885 | version "1.2.1"
886 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
887 | integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
888 |
889 | concat-map@0.0.1:
890 | version "0.0.1"
891 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
892 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
893 |
894 | concordance@^4.0.0:
895 | version "4.0.0"
896 | resolved "https://registry.yarnpkg.com/concordance/-/concordance-4.0.0.tgz#5932fdee397d129bdbc3a1885fbe69839b1b7e15"
897 | integrity sha512-l0RFuB8RLfCS0Pt2Id39/oCPykE01pyxgAFypWTlaGRgvLkZrtczZ8atEHpTeEIW+zYWXTBuA9cCSeEOScxReQ==
898 | dependencies:
899 | date-time "^2.1.0"
900 | esutils "^2.0.2"
901 | fast-diff "^1.1.2"
902 | js-string-escape "^1.0.1"
903 | lodash.clonedeep "^4.5.0"
904 | lodash.flattendeep "^4.4.0"
905 | lodash.islength "^4.0.1"
906 | lodash.merge "^4.6.1"
907 | md5-hex "^2.0.0"
908 | semver "^5.5.1"
909 | well-known-symbols "^2.0.0"
910 |
911 | configstore@^3.0.0:
912 | version "3.1.2"
913 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
914 | integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==
915 | dependencies:
916 | dot-prop "^4.1.0"
917 | graceful-fs "^4.1.2"
918 | make-dir "^1.0.0"
919 | unique-string "^1.0.0"
920 | write-file-atomic "^2.0.0"
921 | xdg-basedir "^3.0.0"
922 |
923 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
924 | version "1.1.0"
925 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
926 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
927 |
928 | convert-source-map@^1.1.0, convert-source-map@^1.6.0:
929 | version "1.6.0"
930 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
931 | integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
932 | dependencies:
933 | safe-buffer "~5.1.1"
934 |
935 | convert-to-spaces@^1.0.1:
936 | version "1.0.2"
937 | resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715"
938 | integrity sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=
939 |
940 | copy-descriptor@^0.1.0:
941 | version "0.1.1"
942 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
943 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
944 |
945 | core-js@^2.0.0:
946 | version "2.5.7"
947 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
948 | integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==
949 |
950 | core-util-is@~1.0.0:
951 | version "1.0.2"
952 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
953 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
954 |
955 | create-error-class@^3.0.0:
956 | version "3.0.2"
957 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
958 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
959 | dependencies:
960 | capture-stack-trace "^1.0.0"
961 |
962 | cross-spawn@^5.0.1:
963 | version "5.1.0"
964 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
965 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
966 | dependencies:
967 | lru-cache "^4.0.1"
968 | shebang-command "^1.2.0"
969 | which "^1.2.9"
970 |
971 | crypto-random-string@^1.0.0:
972 | version "1.0.0"
973 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
974 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
975 |
976 | currently-unhandled@^0.4.1:
977 | version "0.4.1"
978 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
979 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
980 | dependencies:
981 | array-find-index "^1.0.1"
982 |
983 | date-time@^2.1.0:
984 | version "2.1.0"
985 | resolved "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2"
986 | integrity sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==
987 | dependencies:
988 | time-zone "^1.0.0"
989 |
990 | debug@^2.1.2, debug@^2.2.0, debug@^2.3.3:
991 | version "2.6.9"
992 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
993 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
994 | dependencies:
995 | ms "2.0.0"
996 |
997 | debug@^4.1.0:
998 | version "4.1.0"
999 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
1000 | integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
1001 | dependencies:
1002 | ms "^2.1.1"
1003 |
1004 | decamelize-keys@^1.0.0:
1005 | version "1.1.0"
1006 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
1007 | integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
1008 | dependencies:
1009 | decamelize "^1.1.0"
1010 | map-obj "^1.0.0"
1011 |
1012 | decamelize@^1.1.0:
1013 | version "1.2.0"
1014 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
1015 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
1016 |
1017 | decode-uri-component@^0.2.0:
1018 | version "0.2.0"
1019 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
1020 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
1021 |
1022 | deep-eql@^3.0.1:
1023 | version "3.0.1"
1024 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
1025 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
1026 | dependencies:
1027 | type-detect "^4.0.0"
1028 |
1029 | deep-equal@^1.0.0:
1030 | version "1.0.1"
1031 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
1032 | integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
1033 |
1034 | deep-extend@^0.6.0:
1035 | version "0.6.0"
1036 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
1037 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
1038 |
1039 | defaults@^1.0.3:
1040 | version "1.0.3"
1041 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
1042 | integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
1043 | dependencies:
1044 | clone "^1.0.2"
1045 |
1046 | define-property@^0.2.5:
1047 | version "0.2.5"
1048 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
1049 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
1050 | dependencies:
1051 | is-descriptor "^0.1.0"
1052 |
1053 | define-property@^1.0.0:
1054 | version "1.0.0"
1055 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
1056 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
1057 | dependencies:
1058 | is-descriptor "^1.0.0"
1059 |
1060 | define-property@^2.0.2:
1061 | version "2.0.2"
1062 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
1063 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
1064 | dependencies:
1065 | is-descriptor "^1.0.2"
1066 | isobject "^3.0.1"
1067 |
1068 | del@^3.0.0:
1069 | version "3.0.0"
1070 | resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
1071 | integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
1072 | dependencies:
1073 | globby "^6.1.0"
1074 | is-path-cwd "^1.0.0"
1075 | is-path-in-cwd "^1.0.0"
1076 | p-map "^1.1.1"
1077 | pify "^3.0.0"
1078 | rimraf "^2.2.8"
1079 |
1080 | delegates@^1.0.0:
1081 | version "1.0.0"
1082 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
1083 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
1084 |
1085 | detect-libc@^1.0.2:
1086 | version "1.0.3"
1087 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
1088 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
1089 |
1090 | diff@^3.1.0, diff@^3.2.0:
1091 | version "3.5.0"
1092 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
1093 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
1094 |
1095 | dir-glob@^2.0.0:
1096 | version "2.0.0"
1097 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
1098 | integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==
1099 | dependencies:
1100 | arrify "^1.0.1"
1101 | path-type "^3.0.0"
1102 |
1103 | dot-prop@^4.1.0, dot-prop@^4.2.0:
1104 | version "4.2.0"
1105 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
1106 | integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
1107 | dependencies:
1108 | is-obj "^1.0.0"
1109 |
1110 | duplexer3@^0.1.4:
1111 | version "0.1.4"
1112 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
1113 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
1114 |
1115 | emittery@^0.4.1:
1116 | version "0.4.1"
1117 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.4.1.tgz#abe9d3297389ba424ac87e53d1c701962ce7433d"
1118 | integrity sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==
1119 |
1120 | empower-core@^1.2.0:
1121 | version "1.2.0"
1122 | resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c"
1123 | integrity sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==
1124 | dependencies:
1125 | call-signature "0.0.2"
1126 | core-js "^2.0.0"
1127 |
1128 | equal-length@^1.0.0:
1129 | version "1.0.1"
1130 | resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c"
1131 | integrity sha1-IcoRLUirJLTh5//A5TOdMf38J0w=
1132 |
1133 | error-ex@^1.3.1:
1134 | version "1.3.2"
1135 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
1136 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
1137 | dependencies:
1138 | is-arrayish "^0.2.1"
1139 |
1140 | es6-error@^4.0.1:
1141 | version "4.1.1"
1142 | resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
1143 | integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
1144 |
1145 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5:
1146 | version "1.0.5"
1147 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1148 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1149 |
1150 | eslint-plugin-prettier@^2.2.0:
1151 | version "2.7.0"
1152 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904"
1153 | integrity sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==
1154 | dependencies:
1155 | fast-diff "^1.1.1"
1156 | jest-docblock "^21.0.0"
1157 |
1158 | esm@^3.0.84:
1159 | version "3.0.84"
1160 | resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63"
1161 | integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw==
1162 |
1163 | espower-location-detector@^1.0.0:
1164 | version "1.0.0"
1165 | resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5"
1166 | integrity sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=
1167 | dependencies:
1168 | is-url "^1.2.1"
1169 | path-is-absolute "^1.0.0"
1170 | source-map "^0.5.0"
1171 | xtend "^4.0.0"
1172 |
1173 | esprima@^4.0.0:
1174 | version "4.0.1"
1175 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1176 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1177 |
1178 | espurify@^1.6.0:
1179 | version "1.8.1"
1180 | resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056"
1181 | integrity sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==
1182 | dependencies:
1183 | core-js "^2.0.0"
1184 |
1185 | estraverse@^4.0.0, estraverse@^4.1.1:
1186 | version "4.2.0"
1187 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
1188 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
1189 |
1190 | esutils@^2.0.2:
1191 | version "2.0.2"
1192 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
1193 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
1194 |
1195 | execa@^0.7.0:
1196 | version "0.7.0"
1197 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
1198 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
1199 | dependencies:
1200 | cross-spawn "^5.0.1"
1201 | get-stream "^3.0.0"
1202 | is-stream "^1.1.0"
1203 | npm-run-path "^2.0.0"
1204 | p-finally "^1.0.0"
1205 | signal-exit "^3.0.0"
1206 | strip-eof "^1.0.0"
1207 |
1208 | expand-brackets@^2.1.4:
1209 | version "2.1.4"
1210 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
1211 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
1212 | dependencies:
1213 | debug "^2.3.3"
1214 | define-property "^0.2.5"
1215 | extend-shallow "^2.0.1"
1216 | posix-character-classes "^0.1.0"
1217 | regex-not "^1.0.0"
1218 | snapdragon "^0.8.1"
1219 | to-regex "^3.0.1"
1220 |
1221 | extend-shallow@^2.0.1:
1222 | version "2.0.1"
1223 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
1224 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
1225 | dependencies:
1226 | is-extendable "^0.1.0"
1227 |
1228 | extend-shallow@^3.0.0, extend-shallow@^3.0.2:
1229 | version "3.0.2"
1230 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
1231 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
1232 | dependencies:
1233 | assign-symbols "^1.0.0"
1234 | is-extendable "^1.0.1"
1235 |
1236 | extglob@^2.0.4:
1237 | version "2.0.4"
1238 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
1239 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
1240 | dependencies:
1241 | array-unique "^0.3.2"
1242 | define-property "^1.0.0"
1243 | expand-brackets "^2.1.4"
1244 | extend-shallow "^2.0.1"
1245 | fragment-cache "^0.2.1"
1246 | regex-not "^1.0.0"
1247 | snapdragon "^0.8.1"
1248 | to-regex "^3.0.1"
1249 |
1250 | fast-diff@^1.1.1, fast-diff@^1.1.2:
1251 | version "1.2.0"
1252 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
1253 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
1254 |
1255 | figures@^2.0.0:
1256 | version "2.0.0"
1257 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
1258 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
1259 | dependencies:
1260 | escape-string-regexp "^1.0.5"
1261 |
1262 | fill-range@^4.0.0:
1263 | version "4.0.0"
1264 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
1265 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
1266 | dependencies:
1267 | extend-shallow "^2.0.1"
1268 | is-number "^3.0.0"
1269 | repeat-string "^1.6.1"
1270 | to-regex-range "^2.1.0"
1271 |
1272 | find-up@^2.0.0:
1273 | version "2.1.0"
1274 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
1275 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
1276 | dependencies:
1277 | locate-path "^2.0.0"
1278 |
1279 | find-up@^3.0.0:
1280 | version "3.0.0"
1281 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
1282 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
1283 | dependencies:
1284 | locate-path "^3.0.0"
1285 |
1286 | for-in@^1.0.2:
1287 | version "1.0.2"
1288 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
1289 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
1290 |
1291 | fragment-cache@^0.2.1:
1292 | version "0.2.1"
1293 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
1294 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
1295 | dependencies:
1296 | map-cache "^0.2.2"
1297 |
1298 | fs-minipass@^1.2.5:
1299 | version "1.2.5"
1300 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
1301 | integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==
1302 | dependencies:
1303 | minipass "^2.2.1"
1304 |
1305 | fs.realpath@^1.0.0:
1306 | version "1.0.0"
1307 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1308 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
1309 |
1310 | fsevents@^1.2.2:
1311 | version "1.2.4"
1312 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
1313 | integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
1314 | dependencies:
1315 | nan "^2.9.2"
1316 | node-pre-gyp "^0.10.0"
1317 |
1318 | gauge@~2.7.3:
1319 | version "2.7.4"
1320 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
1321 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
1322 | dependencies:
1323 | aproba "^1.0.3"
1324 | console-control-strings "^1.0.0"
1325 | has-unicode "^2.0.0"
1326 | object-assign "^4.1.0"
1327 | signal-exit "^3.0.0"
1328 | string-width "^1.0.1"
1329 | strip-ansi "^3.0.1"
1330 | wide-align "^1.1.0"
1331 |
1332 | get-func-name@^2.0.0:
1333 | version "2.0.0"
1334 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
1335 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
1336 |
1337 | get-port@^4.0.0:
1338 | version "4.0.0"
1339 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.0.0.tgz#373c85960138ee20027c070e3cb08019fea29816"
1340 | integrity sha512-Yy3yNI2oShgbaWg4cmPhWjkZfktEvpKI09aDX4PZzNtlU9obuYrX7x2mumQsrNxlF+Ls7OtMQW/u+X4s896bOQ==
1341 |
1342 | get-stream@^3.0.0:
1343 | version "3.0.0"
1344 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
1345 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
1346 |
1347 | get-value@^2.0.3, get-value@^2.0.6:
1348 | version "2.0.6"
1349 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
1350 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
1351 |
1352 | glob-parent@^3.1.0:
1353 | version "3.1.0"
1354 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
1355 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
1356 | dependencies:
1357 | is-glob "^3.1.0"
1358 | path-dirname "^1.0.0"
1359 |
1360 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
1361 | version "7.1.3"
1362 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
1363 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
1364 | dependencies:
1365 | fs.realpath "^1.0.0"
1366 | inflight "^1.0.4"
1367 | inherits "2"
1368 | minimatch "^3.0.4"
1369 | once "^1.3.0"
1370 | path-is-absolute "^1.0.0"
1371 |
1372 | global-dirs@^0.1.0:
1373 | version "0.1.1"
1374 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
1375 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=
1376 | dependencies:
1377 | ini "^1.3.4"
1378 |
1379 | globals@^11.1.0:
1380 | version "11.9.0"
1381 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
1382 | integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
1383 |
1384 | globby@^6.1.0:
1385 | version "6.1.0"
1386 | resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
1387 | integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
1388 | dependencies:
1389 | array-union "^1.0.1"
1390 | glob "^7.0.3"
1391 | object-assign "^4.0.1"
1392 | pify "^2.0.0"
1393 | pinkie-promise "^2.0.0"
1394 |
1395 | globby@^7.1.1:
1396 | version "7.1.1"
1397 | resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
1398 | integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
1399 | dependencies:
1400 | array-union "^1.0.1"
1401 | dir-glob "^2.0.0"
1402 | glob "^7.1.2"
1403 | ignore "^3.3.5"
1404 | pify "^3.0.0"
1405 | slash "^1.0.0"
1406 |
1407 | got@^6.7.1:
1408 | version "6.7.1"
1409 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
1410 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
1411 | dependencies:
1412 | create-error-class "^3.0.0"
1413 | duplexer3 "^0.1.4"
1414 | get-stream "^3.0.0"
1415 | is-redirect "^1.0.0"
1416 | is-retry-allowed "^1.0.0"
1417 | is-stream "^1.0.0"
1418 | lowercase-keys "^1.0.0"
1419 | safe-buffer "^5.0.1"
1420 | timed-out "^4.0.0"
1421 | unzip-response "^2.0.1"
1422 | url-parse-lax "^1.0.0"
1423 |
1424 | graceful-fs@^4.1.11, graceful-fs@^4.1.2:
1425 | version "4.1.15"
1426 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
1427 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
1428 |
1429 | has-ansi@^2.0.0:
1430 | version "2.0.0"
1431 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1432 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
1433 | dependencies:
1434 | ansi-regex "^2.0.0"
1435 |
1436 | has-flag@^3.0.0:
1437 | version "3.0.0"
1438 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1439 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1440 |
1441 | has-unicode@^2.0.0:
1442 | version "2.0.1"
1443 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
1444 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
1445 |
1446 | has-value@^0.3.1:
1447 | version "0.3.1"
1448 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
1449 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
1450 | dependencies:
1451 | get-value "^2.0.3"
1452 | has-values "^0.1.4"
1453 | isobject "^2.0.0"
1454 |
1455 | has-value@^1.0.0:
1456 | version "1.0.0"
1457 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
1458 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
1459 | dependencies:
1460 | get-value "^2.0.6"
1461 | has-values "^1.0.0"
1462 | isobject "^3.0.0"
1463 |
1464 | has-values@^0.1.4:
1465 | version "0.1.4"
1466 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
1467 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
1468 |
1469 | has-values@^1.0.0:
1470 | version "1.0.0"
1471 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
1472 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
1473 | dependencies:
1474 | is-number "^3.0.0"
1475 | kind-of "^4.0.0"
1476 |
1477 | hosted-git-info@^2.1.4:
1478 | version "2.7.1"
1479 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
1480 | integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
1481 |
1482 | iconv-lite@^0.4.4:
1483 | version "0.4.24"
1484 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
1485 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
1486 | dependencies:
1487 | safer-buffer ">= 2.1.2 < 3"
1488 |
1489 | ignore-by-default@^1.0.0:
1490 | version "1.0.1"
1491 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
1492 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
1493 |
1494 | ignore-walk@^3.0.1:
1495 | version "3.0.1"
1496 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
1497 | integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
1498 | dependencies:
1499 | minimatch "^3.0.4"
1500 |
1501 | ignore@^3.3.5:
1502 | version "3.3.10"
1503 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
1504 | integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
1505 |
1506 | import-lazy@^2.1.0:
1507 | version "2.1.0"
1508 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
1509 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
1510 |
1511 | import-local@^2.0.0:
1512 | version "2.0.0"
1513 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
1514 | integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
1515 | dependencies:
1516 | pkg-dir "^3.0.0"
1517 | resolve-cwd "^2.0.0"
1518 |
1519 | imurmurhash@^0.1.4:
1520 | version "0.1.4"
1521 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1522 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1523 |
1524 | indent-string@^3.0.0, indent-string@^3.2.0:
1525 | version "3.2.0"
1526 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
1527 | integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
1528 |
1529 | inflight@^1.0.4:
1530 | version "1.0.6"
1531 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1532 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1533 | dependencies:
1534 | once "^1.3.0"
1535 | wrappy "1"
1536 |
1537 | inherits@2, inherits@^2.0.1, inherits@~2.0.3:
1538 | version "2.0.3"
1539 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1540 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
1541 |
1542 | ini@^1.3.4, ini@~1.3.0:
1543 | version "1.3.5"
1544 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
1545 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
1546 |
1547 | irregular-plurals@^2.0.0:
1548 | version "2.0.0"
1549 | resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-2.0.0.tgz#39d40f05b00f656d0b7fa471230dd3b714af2872"
1550 | integrity sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw==
1551 |
1552 | is-accessor-descriptor@^0.1.6:
1553 | version "0.1.6"
1554 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
1555 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
1556 | dependencies:
1557 | kind-of "^3.0.2"
1558 |
1559 | is-accessor-descriptor@^1.0.0:
1560 | version "1.0.0"
1561 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
1562 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
1563 | dependencies:
1564 | kind-of "^6.0.0"
1565 |
1566 | is-arrayish@^0.2.1:
1567 | version "0.2.1"
1568 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1569 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1570 |
1571 | is-binary-path@^1.0.0:
1572 | version "1.0.1"
1573 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
1574 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
1575 | dependencies:
1576 | binary-extensions "^1.0.0"
1577 |
1578 | is-buffer@^1.1.5:
1579 | version "1.1.6"
1580 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
1581 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
1582 |
1583 | is-builtin-module@^1.0.0:
1584 | version "1.0.0"
1585 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1586 | integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
1587 | dependencies:
1588 | builtin-modules "^1.0.0"
1589 |
1590 | is-ci@^1.0.10, is-ci@^1.2.1:
1591 | version "1.2.1"
1592 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
1593 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
1594 | dependencies:
1595 | ci-info "^1.5.0"
1596 |
1597 | is-data-descriptor@^0.1.4:
1598 | version "0.1.4"
1599 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
1600 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
1601 | dependencies:
1602 | kind-of "^3.0.2"
1603 |
1604 | is-data-descriptor@^1.0.0:
1605 | version "1.0.0"
1606 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
1607 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
1608 | dependencies:
1609 | kind-of "^6.0.0"
1610 |
1611 | is-descriptor@^0.1.0:
1612 | version "0.1.6"
1613 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
1614 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
1615 | dependencies:
1616 | is-accessor-descriptor "^0.1.6"
1617 | is-data-descriptor "^0.1.4"
1618 | kind-of "^5.0.0"
1619 |
1620 | is-descriptor@^1.0.0, is-descriptor@^1.0.2:
1621 | version "1.0.2"
1622 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
1623 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
1624 | dependencies:
1625 | is-accessor-descriptor "^1.0.0"
1626 | is-data-descriptor "^1.0.0"
1627 | kind-of "^6.0.2"
1628 |
1629 | is-error@^2.2.1:
1630 | version "2.2.1"
1631 | resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c"
1632 | integrity sha1-aEqW2EB2V3yY9M20DG0mpRI78Zw=
1633 |
1634 | is-extendable@^0.1.0, is-extendable@^0.1.1:
1635 | version "0.1.1"
1636 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1637 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
1638 |
1639 | is-extendable@^1.0.1:
1640 | version "1.0.1"
1641 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
1642 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
1643 | dependencies:
1644 | is-plain-object "^2.0.4"
1645 |
1646 | is-extglob@^2.1.0, is-extglob@^2.1.1:
1647 | version "2.1.1"
1648 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1649 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
1650 |
1651 | is-fullwidth-code-point@^1.0.0:
1652 | version "1.0.0"
1653 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1654 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
1655 | dependencies:
1656 | number-is-nan "^1.0.0"
1657 |
1658 | is-fullwidth-code-point@^2.0.0:
1659 | version "2.0.0"
1660 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
1661 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
1662 |
1663 | is-glob@^3.1.0:
1664 | version "3.1.0"
1665 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
1666 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
1667 | dependencies:
1668 | is-extglob "^2.1.0"
1669 |
1670 | is-glob@^4.0.0:
1671 | version "4.0.0"
1672 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
1673 | integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
1674 | dependencies:
1675 | is-extglob "^2.1.1"
1676 |
1677 | is-installed-globally@^0.1.0:
1678 | version "0.1.0"
1679 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
1680 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=
1681 | dependencies:
1682 | global-dirs "^0.1.0"
1683 | is-path-inside "^1.0.0"
1684 |
1685 | is-npm@^1.0.0:
1686 | version "1.0.0"
1687 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
1688 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
1689 |
1690 | is-number@^3.0.0:
1691 | version "3.0.0"
1692 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
1693 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
1694 | dependencies:
1695 | kind-of "^3.0.2"
1696 |
1697 | is-obj@^1.0.0:
1698 | version "1.0.1"
1699 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
1700 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
1701 |
1702 | is-observable@^0.2.0:
1703 | version "0.2.0"
1704 | resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2"
1705 | integrity sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=
1706 | dependencies:
1707 | symbol-observable "^0.2.2"
1708 |
1709 | is-observable@^1.1.0:
1710 | version "1.1.0"
1711 | resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
1712 | integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
1713 | dependencies:
1714 | symbol-observable "^1.1.0"
1715 |
1716 | is-path-cwd@^1.0.0:
1717 | version "1.0.0"
1718 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
1719 | integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
1720 |
1721 | is-path-in-cwd@^1.0.0:
1722 | version "1.0.1"
1723 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
1724 | integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
1725 | dependencies:
1726 | is-path-inside "^1.0.0"
1727 |
1728 | is-path-inside@^1.0.0:
1729 | version "1.0.1"
1730 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
1731 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
1732 | dependencies:
1733 | path-is-inside "^1.0.1"
1734 |
1735 | is-plain-obj@^1.1.0:
1736 | version "1.1.0"
1737 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
1738 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
1739 |
1740 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
1741 | version "2.0.4"
1742 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
1743 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
1744 | dependencies:
1745 | isobject "^3.0.1"
1746 |
1747 | is-promise@^2.1.0:
1748 | version "2.1.0"
1749 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
1750 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
1751 |
1752 | is-redirect@^1.0.0:
1753 | version "1.0.0"
1754 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
1755 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
1756 |
1757 | is-retry-allowed@^1.0.0:
1758 | version "1.1.0"
1759 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
1760 | integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=
1761 |
1762 | is-stream@^1.0.0, is-stream@^1.1.0:
1763 | version "1.1.0"
1764 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
1765 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
1766 |
1767 | is-url@^1.2.1:
1768 | version "1.2.4"
1769 | resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
1770 | integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
1771 |
1772 | is-utf8@^0.2.1:
1773 | version "0.2.1"
1774 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
1775 | integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
1776 |
1777 | is-windows@^1.0.2:
1778 | version "1.0.2"
1779 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
1780 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
1781 |
1782 | isarray@1.0.0, isarray@~1.0.0:
1783 | version "1.0.0"
1784 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1785 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1786 |
1787 | isexe@^2.0.0:
1788 | version "2.0.0"
1789 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1790 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1791 |
1792 | isobject@^2.0.0:
1793 | version "2.1.0"
1794 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1795 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
1796 | dependencies:
1797 | isarray "1.0.0"
1798 |
1799 | isobject@^3.0.0, isobject@^3.0.1:
1800 | version "3.0.1"
1801 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
1802 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
1803 |
1804 | jest-docblock@^21.0.0:
1805 | version "21.2.0"
1806 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
1807 | integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==
1808 |
1809 | js-string-escape@^1.0.1:
1810 | version "1.0.1"
1811 | resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
1812 | integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=
1813 |
1814 | js-tokens@^3.0.2:
1815 | version "3.0.2"
1816 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
1817 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
1818 |
1819 | js-tokens@^4.0.0:
1820 | version "4.0.0"
1821 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1822 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1823 |
1824 | js-yaml@^3.10.0, js-yaml@^3.7.0:
1825 | version "3.12.0"
1826 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
1827 | integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
1828 | dependencies:
1829 | argparse "^1.0.7"
1830 | esprima "^4.0.0"
1831 |
1832 | jsesc@^2.5.1:
1833 | version "2.5.2"
1834 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1835 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1836 |
1837 | jsesc@~0.5.0:
1838 | version "0.5.0"
1839 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
1840 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
1841 |
1842 | json-parse-better-errors@^1.0.1:
1843 | version "1.0.2"
1844 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
1845 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
1846 |
1847 | json5@^2.1.0:
1848 | version "2.1.0"
1849 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
1850 | integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
1851 | dependencies:
1852 | minimist "^1.2.0"
1853 |
1854 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
1855 | version "3.2.2"
1856 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
1857 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
1858 | dependencies:
1859 | is-buffer "^1.1.5"
1860 |
1861 | kind-of@^4.0.0:
1862 | version "4.0.0"
1863 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
1864 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
1865 | dependencies:
1866 | is-buffer "^1.1.5"
1867 |
1868 | kind-of@^5.0.0:
1869 | version "5.1.0"
1870 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
1871 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
1872 |
1873 | kind-of@^6.0.0, kind-of@^6.0.2:
1874 | version "6.0.2"
1875 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
1876 | integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
1877 |
1878 | latest-version@^3.0.0:
1879 | version "3.1.0"
1880 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
1881 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=
1882 | dependencies:
1883 | package-json "^4.0.0"
1884 |
1885 | lines-and-columns@^1.1.6:
1886 | version "1.1.6"
1887 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
1888 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
1889 |
1890 | load-json-file@^4.0.0:
1891 | version "4.0.0"
1892 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
1893 | integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
1894 | dependencies:
1895 | graceful-fs "^4.1.2"
1896 | parse-json "^4.0.0"
1897 | pify "^3.0.0"
1898 | strip-bom "^3.0.0"
1899 |
1900 | locate-path@^2.0.0:
1901 | version "2.0.0"
1902 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
1903 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
1904 | dependencies:
1905 | p-locate "^2.0.0"
1906 | path-exists "^3.0.0"
1907 |
1908 | locate-path@^3.0.0:
1909 | version "3.0.0"
1910 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
1911 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
1912 | dependencies:
1913 | p-locate "^3.0.0"
1914 | path-exists "^3.0.0"
1915 |
1916 | lodash.clone@^4.5.0:
1917 | version "4.5.0"
1918 | resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6"
1919 | integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=
1920 |
1921 | lodash.clonedeep@^4.5.0:
1922 | version "4.5.0"
1923 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
1924 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
1925 |
1926 | lodash.clonedeepwith@^4.5.0:
1927 | version "4.5.0"
1928 | resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4"
1929 | integrity sha1-buMFc6A6GmDWcKYu8zwQzxr9vdQ=
1930 |
1931 | lodash.debounce@^4.0.3, lodash.debounce@^4.0.8:
1932 | version "4.0.8"
1933 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
1934 | integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
1935 |
1936 | lodash.difference@^4.3.0:
1937 | version "4.5.0"
1938 | resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
1939 | integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
1940 |
1941 | lodash.flatten@^4.2.0:
1942 | version "4.4.0"
1943 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
1944 | integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
1945 |
1946 | lodash.flattendeep@^4.4.0:
1947 | version "4.4.0"
1948 | resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
1949 | integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=
1950 |
1951 | lodash.islength@^4.0.1:
1952 | version "4.0.1"
1953 | resolved "https://registry.yarnpkg.com/lodash.islength/-/lodash.islength-4.0.1.tgz#4e9868d452575d750affd358c979543dc20ed577"
1954 | integrity sha1-Tpho1FJXXXUK/9NYyXlUPcIO1Xc=
1955 |
1956 | lodash.merge@^4.6.1:
1957 | version "4.6.1"
1958 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
1959 | integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
1960 |
1961 | lodash@^4.17.10:
1962 | version "4.17.11"
1963 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
1964 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
1965 |
1966 | log-symbols@^2.2.0:
1967 | version "2.2.0"
1968 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
1969 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
1970 | dependencies:
1971 | chalk "^2.0.1"
1972 |
1973 | loud-rejection@^1.0.0, loud-rejection@^1.2.0:
1974 | version "1.6.0"
1975 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
1976 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
1977 | dependencies:
1978 | currently-unhandled "^0.4.1"
1979 | signal-exit "^3.0.0"
1980 |
1981 | lowercase-keys@^1.0.0:
1982 | version "1.0.1"
1983 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
1984 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
1985 |
1986 | lru-cache@^4.0.1:
1987 | version "4.1.4"
1988 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.4.tgz#51cc46e8e6d9530771c857e24ccc720ecdbcc031"
1989 | integrity sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==
1990 | dependencies:
1991 | pseudomap "^1.0.2"
1992 | yallist "^3.0.2"
1993 |
1994 | make-dir@^1.0.0, make-dir@^1.3.0:
1995 | version "1.3.0"
1996 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
1997 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
1998 | dependencies:
1999 | pify "^3.0.0"
2000 |
2001 | make-error@^1.1.1:
2002 | version "1.3.5"
2003 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
2004 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
2005 |
2006 | map-cache@^0.2.2:
2007 | version "0.2.2"
2008 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
2009 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
2010 |
2011 | map-obj@^1.0.0:
2012 | version "1.0.1"
2013 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
2014 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
2015 |
2016 | map-obj@^2.0.0:
2017 | version "2.0.0"
2018 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
2019 | integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk=
2020 |
2021 | map-visit@^1.0.0:
2022 | version "1.0.0"
2023 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
2024 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
2025 | dependencies:
2026 | object-visit "^1.0.0"
2027 |
2028 | matcher@^1.1.1:
2029 | version "1.1.1"
2030 | resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2"
2031 | integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==
2032 | dependencies:
2033 | escape-string-regexp "^1.0.4"
2034 |
2035 | md5-hex@^2.0.0:
2036 | version "2.0.0"
2037 | resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33"
2038 | integrity sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=
2039 | dependencies:
2040 | md5-o-matic "^0.1.1"
2041 |
2042 | md5-o-matic@^0.1.1:
2043 | version "0.1.1"
2044 | resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
2045 | integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=
2046 |
2047 | meow@^5.0.0:
2048 | version "5.0.0"
2049 | resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4"
2050 | integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==
2051 | dependencies:
2052 | camelcase-keys "^4.0.0"
2053 | decamelize-keys "^1.0.0"
2054 | loud-rejection "^1.0.0"
2055 | minimist-options "^3.0.1"
2056 | normalize-package-data "^2.3.4"
2057 | read-pkg-up "^3.0.0"
2058 | redent "^2.0.0"
2059 | trim-newlines "^2.0.0"
2060 | yargs-parser "^10.0.0"
2061 |
2062 | mhysa@./:
2063 | version "1.0.2"
2064 |
2065 | micromatch@^3.1.10, micromatch@^3.1.4:
2066 | version "3.1.10"
2067 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
2068 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
2069 | dependencies:
2070 | arr-diff "^4.0.0"
2071 | array-unique "^0.3.2"
2072 | braces "^2.3.1"
2073 | define-property "^2.0.2"
2074 | extend-shallow "^3.0.2"
2075 | extglob "^2.0.4"
2076 | fragment-cache "^0.2.1"
2077 | kind-of "^6.0.2"
2078 | nanomatch "^1.2.9"
2079 | object.pick "^1.3.0"
2080 | regex-not "^1.0.0"
2081 | snapdragon "^0.8.1"
2082 | to-regex "^3.0.2"
2083 |
2084 | mimic-fn@^1.0.0:
2085 | version "1.2.0"
2086 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
2087 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
2088 |
2089 | minimatch@^3.0.0, minimatch@^3.0.4:
2090 | version "3.0.4"
2091 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
2092 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
2093 | dependencies:
2094 | brace-expansion "^1.1.7"
2095 |
2096 | minimist-options@^3.0.1:
2097 | version "3.0.2"
2098 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954"
2099 | integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==
2100 | dependencies:
2101 | arrify "^1.0.1"
2102 | is-plain-obj "^1.1.0"
2103 |
2104 | minimist@0.0.8:
2105 | version "0.0.8"
2106 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
2107 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
2108 |
2109 | minimist@^1.2.0:
2110 | version "1.2.0"
2111 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
2112 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
2113 |
2114 | minipass@^2.2.1, minipass@^2.3.4:
2115 | version "2.3.5"
2116 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
2117 | integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
2118 | dependencies:
2119 | safe-buffer "^5.1.2"
2120 | yallist "^3.0.0"
2121 |
2122 | minizlib@^1.1.1:
2123 | version "1.1.1"
2124 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42"
2125 | integrity sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==
2126 | dependencies:
2127 | minipass "^2.2.1"
2128 |
2129 | mixin-deep@^1.2.0:
2130 | version "1.3.1"
2131 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
2132 | integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
2133 | dependencies:
2134 | for-in "^1.0.2"
2135 | is-extendable "^1.0.1"
2136 |
2137 | mkdirp@^0.5.0, mkdirp@^0.5.1:
2138 | version "0.5.1"
2139 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
2140 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
2141 | dependencies:
2142 | minimist "0.0.8"
2143 |
2144 | ms@2.0.0:
2145 | version "2.0.0"
2146 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
2147 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
2148 |
2149 | ms@^2.1.1:
2150 | version "2.1.1"
2151 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
2152 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
2153 |
2154 | multimatch@^2.1.0:
2155 | version "2.1.0"
2156 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
2157 | integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=
2158 | dependencies:
2159 | array-differ "^1.0.0"
2160 | array-union "^1.0.1"
2161 | arrify "^1.0.0"
2162 | minimatch "^3.0.0"
2163 |
2164 | nan@^2.9.2:
2165 | version "2.11.1"
2166 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
2167 | integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==
2168 |
2169 | nanomatch@^1.2.9:
2170 | version "1.2.13"
2171 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
2172 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
2173 | dependencies:
2174 | arr-diff "^4.0.0"
2175 | array-unique "^0.3.2"
2176 | define-property "^2.0.2"
2177 | extend-shallow "^3.0.2"
2178 | fragment-cache "^0.2.1"
2179 | is-windows "^1.0.2"
2180 | kind-of "^6.0.2"
2181 | object.pick "^1.3.0"
2182 | regex-not "^1.0.0"
2183 | snapdragon "^0.8.1"
2184 | to-regex "^3.0.1"
2185 |
2186 | needle@^2.2.1:
2187 | version "2.2.4"
2188 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
2189 | integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA==
2190 | dependencies:
2191 | debug "^2.1.2"
2192 | iconv-lite "^0.4.4"
2193 | sax "^1.2.4"
2194 |
2195 | node-pre-gyp@^0.10.0:
2196 | version "0.10.3"
2197 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc"
2198 | integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==
2199 | dependencies:
2200 | detect-libc "^1.0.2"
2201 | mkdirp "^0.5.1"
2202 | needle "^2.2.1"
2203 | nopt "^4.0.1"
2204 | npm-packlist "^1.1.6"
2205 | npmlog "^4.0.2"
2206 | rc "^1.2.7"
2207 | rimraf "^2.6.1"
2208 | semver "^5.3.0"
2209 | tar "^4"
2210 |
2211 | nopt@^4.0.1:
2212 | version "4.0.1"
2213 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
2214 | integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
2215 | dependencies:
2216 | abbrev "1"
2217 | osenv "^0.1.4"
2218 |
2219 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
2220 | version "2.4.0"
2221 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
2222 | integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
2223 | dependencies:
2224 | hosted-git-info "^2.1.4"
2225 | is-builtin-module "^1.0.0"
2226 | semver "2 || 3 || 4 || 5"
2227 | validate-npm-package-license "^3.0.1"
2228 |
2229 | normalize-path@^2.1.1:
2230 | version "2.1.1"
2231 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
2232 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
2233 | dependencies:
2234 | remove-trailing-separator "^1.0.1"
2235 |
2236 | npm-bundled@^1.0.1:
2237 | version "1.0.5"
2238 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
2239 | integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==
2240 |
2241 | npm-packlist@^1.1.6:
2242 | version "1.1.12"
2243 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a"
2244 | integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==
2245 | dependencies:
2246 | ignore-walk "^3.0.1"
2247 | npm-bundled "^1.0.1"
2248 |
2249 | npm-run-path@^2.0.0:
2250 | version "2.0.2"
2251 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
2252 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
2253 | dependencies:
2254 | path-key "^2.0.0"
2255 |
2256 | npmlog@^4.0.2:
2257 | version "4.1.2"
2258 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
2259 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
2260 | dependencies:
2261 | are-we-there-yet "~1.1.2"
2262 | console-control-strings "~1.1.0"
2263 | gauge "~2.7.3"
2264 | set-blocking "~2.0.0"
2265 |
2266 | number-is-nan@^1.0.0:
2267 | version "1.0.1"
2268 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
2269 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
2270 |
2271 | object-assign@^4.0.1, object-assign@^4.1.0:
2272 | version "4.1.1"
2273 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
2274 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
2275 |
2276 | object-copy@^0.1.0:
2277 | version "0.1.0"
2278 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
2279 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
2280 | dependencies:
2281 | copy-descriptor "^0.1.0"
2282 | define-property "^0.2.5"
2283 | kind-of "^3.0.3"
2284 |
2285 | object-visit@^1.0.0:
2286 | version "1.0.1"
2287 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
2288 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
2289 | dependencies:
2290 | isobject "^3.0.0"
2291 |
2292 | object.pick@^1.3.0:
2293 | version "1.3.0"
2294 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
2295 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
2296 | dependencies:
2297 | isobject "^3.0.1"
2298 |
2299 | observable-to-promise@^0.5.0:
2300 | version "0.5.0"
2301 | resolved "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.5.0.tgz#c828f0f0dc47e9f86af8a4977c5d55076ce7a91f"
2302 | integrity sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=
2303 | dependencies:
2304 | is-observable "^0.2.0"
2305 | symbol-observable "^1.0.4"
2306 |
2307 | once@^1.3.0:
2308 | version "1.4.0"
2309 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2310 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
2311 | dependencies:
2312 | wrappy "1"
2313 |
2314 | onetime@^2.0.0:
2315 | version "2.0.1"
2316 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
2317 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
2318 | dependencies:
2319 | mimic-fn "^1.0.0"
2320 |
2321 | ora@^3.0.0:
2322 | version "3.0.0"
2323 | resolved "https://registry.yarnpkg.com/ora/-/ora-3.0.0.tgz#8179e3525b9aafd99242d63cc206fd64732741d0"
2324 | integrity sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==
2325 | dependencies:
2326 | chalk "^2.3.1"
2327 | cli-cursor "^2.1.0"
2328 | cli-spinners "^1.1.0"
2329 | log-symbols "^2.2.0"
2330 | strip-ansi "^4.0.0"
2331 | wcwidth "^1.0.1"
2332 |
2333 | os-homedir@^1.0.0:
2334 | version "1.0.2"
2335 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
2336 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
2337 |
2338 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
2339 | version "1.0.2"
2340 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
2341 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
2342 |
2343 | osenv@^0.1.4:
2344 | version "0.1.5"
2345 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
2346 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
2347 | dependencies:
2348 | os-homedir "^1.0.0"
2349 | os-tmpdir "^1.0.0"
2350 |
2351 | p-finally@^1.0.0:
2352 | version "1.0.0"
2353 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
2354 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
2355 |
2356 | p-limit@^1.1.0:
2357 | version "1.3.0"
2358 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
2359 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
2360 | dependencies:
2361 | p-try "^1.0.0"
2362 |
2363 | p-limit@^2.0.0:
2364 | version "2.0.0"
2365 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
2366 | integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==
2367 | dependencies:
2368 | p-try "^2.0.0"
2369 |
2370 | p-locate@^2.0.0:
2371 | version "2.0.0"
2372 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
2373 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
2374 | dependencies:
2375 | p-limit "^1.1.0"
2376 |
2377 | p-locate@^3.0.0:
2378 | version "3.0.0"
2379 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
2380 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
2381 | dependencies:
2382 | p-limit "^2.0.0"
2383 |
2384 | p-map@^1.1.1:
2385 | version "1.2.0"
2386 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
2387 | integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
2388 |
2389 | p-try@^1.0.0:
2390 | version "1.0.0"
2391 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
2392 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
2393 |
2394 | p-try@^2.0.0:
2395 | version "2.0.0"
2396 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
2397 | integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
2398 |
2399 | package-hash@^2.0.0:
2400 | version "2.0.0"
2401 | resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d"
2402 | integrity sha1-eK4ybIngWk2BO2hgGXevBcANKg0=
2403 | dependencies:
2404 | graceful-fs "^4.1.11"
2405 | lodash.flattendeep "^4.4.0"
2406 | md5-hex "^2.0.0"
2407 | release-zalgo "^1.0.0"
2408 |
2409 | package-json@^4.0.0:
2410 | version "4.0.1"
2411 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
2412 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=
2413 | dependencies:
2414 | got "^6.7.1"
2415 | registry-auth-token "^3.0.1"
2416 | registry-url "^3.0.3"
2417 | semver "^5.1.0"
2418 |
2419 | parse-json@^4.0.0:
2420 | version "4.0.0"
2421 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
2422 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
2423 | dependencies:
2424 | error-ex "^1.3.1"
2425 | json-parse-better-errors "^1.0.1"
2426 |
2427 | parse-ms@^2.0.0:
2428 | version "2.0.0"
2429 | resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.0.0.tgz#7b3640295100caf3fa0100ccceb56635b62f9d62"
2430 | integrity sha512-AddiXFSLLCqj+tCRJ9MrUtHZB4DWojO3tk0NVZ+g5MaMQHF2+p2ktqxuoXyPFLljz/aUK0Nfhd/uGWnhXVXEyA==
2431 |
2432 | pascalcase@^0.1.1:
2433 | version "0.1.1"
2434 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
2435 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
2436 |
2437 | path-dirname@^1.0.0:
2438 | version "1.0.2"
2439 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
2440 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
2441 |
2442 | path-exists@^3.0.0:
2443 | version "3.0.0"
2444 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
2445 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
2446 |
2447 | path-is-absolute@^1.0.0:
2448 | version "1.0.1"
2449 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2450 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
2451 |
2452 | path-is-inside@^1.0.1:
2453 | version "1.0.2"
2454 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
2455 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
2456 |
2457 | path-key@^2.0.0:
2458 | version "2.0.1"
2459 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
2460 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
2461 |
2462 | path-parse@^1.0.5:
2463 | version "1.0.6"
2464 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
2465 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
2466 |
2467 | path-type@^3.0.0:
2468 | version "3.0.0"
2469 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
2470 | integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
2471 | dependencies:
2472 | pify "^3.0.0"
2473 |
2474 | pathval@^1.1.0:
2475 | version "1.1.0"
2476 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
2477 | integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA=
2478 |
2479 | pify@^2.0.0:
2480 | version "2.3.0"
2481 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
2482 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
2483 |
2484 | pify@^3.0.0:
2485 | version "3.0.0"
2486 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
2487 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
2488 |
2489 | pinkie-promise@^2.0.0:
2490 | version "2.0.1"
2491 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
2492 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
2493 | dependencies:
2494 | pinkie "^2.0.0"
2495 |
2496 | pinkie@^2.0.0:
2497 | version "2.0.4"
2498 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
2499 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
2500 |
2501 | pkg-conf@^2.1.0:
2502 | version "2.1.0"
2503 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058"
2504 | integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=
2505 | dependencies:
2506 | find-up "^2.0.0"
2507 | load-json-file "^4.0.0"
2508 |
2509 | pkg-dir@^3.0.0:
2510 | version "3.0.0"
2511 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
2512 | integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
2513 | dependencies:
2514 | find-up "^3.0.0"
2515 |
2516 | plur@^3.0.1:
2517 | version "3.0.1"
2518 | resolved "https://registry.yarnpkg.com/plur/-/plur-3.0.1.tgz#268652d605f816699b42b86248de73c9acd06a7c"
2519 | integrity sha512-lJl0ojUynAM1BZn58Pas2WT/TXeC1+bS+UqShl0x9+49AtOn7DixRXVzaC8qrDOIxNDmepKnLuMTH7NQmkX0PA==
2520 | dependencies:
2521 | irregular-plurals "^2.0.0"
2522 |
2523 | posix-character-classes@^0.1.0:
2524 | version "0.1.1"
2525 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
2526 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
2527 |
2528 | prepend-http@^1.0.1:
2529 | version "1.0.4"
2530 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
2531 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
2532 |
2533 | prettier@^1.14.3:
2534 | version "1.15.2"
2535 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.2.tgz#d31abe22afa4351efa14c7f8b94b58bb7452205e"
2536 | integrity sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==
2537 |
2538 | pretty-ms@^4.0.0:
2539 | version "4.0.0"
2540 | resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-4.0.0.tgz#31baf41b94fd02227098aaa03bd62608eb0d6e92"
2541 | integrity sha512-qG66ahoLCwpLXD09ZPHSCbUWYTqdosB7SMP4OffgTgL2PBKXMuUsrk5Bwg8q4qPkjTXsKBMr+YK3Ltd/6F9s/Q==
2542 | dependencies:
2543 | parse-ms "^2.0.0"
2544 |
2545 | process-nextick-args@~2.0.0:
2546 | version "2.0.0"
2547 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
2548 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
2549 |
2550 | pseudomap@^1.0.2:
2551 | version "1.0.2"
2552 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
2553 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
2554 |
2555 | quick-lru@^1.0.0:
2556 | version "1.1.0"
2557 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
2558 | integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
2559 |
2560 | rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
2561 | version "1.2.8"
2562 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
2563 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
2564 | dependencies:
2565 | deep-extend "^0.6.0"
2566 | ini "~1.3.0"
2567 | minimist "^1.2.0"
2568 | strip-json-comments "~2.0.1"
2569 |
2570 | read-pkg-up@^3.0.0:
2571 | version "3.0.0"
2572 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
2573 | integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
2574 | dependencies:
2575 | find-up "^2.0.0"
2576 | read-pkg "^3.0.0"
2577 |
2578 | read-pkg@^3.0.0:
2579 | version "3.0.0"
2580 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
2581 | integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
2582 | dependencies:
2583 | load-json-file "^4.0.0"
2584 | normalize-package-data "^2.3.2"
2585 | path-type "^3.0.0"
2586 |
2587 | readable-stream@^2.0.2, readable-stream@^2.0.6:
2588 | version "2.3.6"
2589 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
2590 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
2591 | dependencies:
2592 | core-util-is "~1.0.0"
2593 | inherits "~2.0.3"
2594 | isarray "~1.0.0"
2595 | process-nextick-args "~2.0.0"
2596 | safe-buffer "~5.1.1"
2597 | string_decoder "~1.1.1"
2598 | util-deprecate "~1.0.1"
2599 |
2600 | readdirp@^2.0.0:
2601 | version "2.2.1"
2602 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
2603 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
2604 | dependencies:
2605 | graceful-fs "^4.1.11"
2606 | micromatch "^3.1.10"
2607 | readable-stream "^2.0.2"
2608 |
2609 | redent@^2.0.0:
2610 | version "2.0.0"
2611 | resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
2612 | integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=
2613 | dependencies:
2614 | indent-string "^3.0.0"
2615 | strip-indent "^2.0.0"
2616 |
2617 | regenerate-unicode-properties@^7.0.0:
2618 | version "7.0.0"
2619 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c"
2620 | integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==
2621 | dependencies:
2622 | regenerate "^1.4.0"
2623 |
2624 | regenerate@^1.4.0:
2625 | version "1.4.0"
2626 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
2627 | integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
2628 |
2629 | regex-not@^1.0.0, regex-not@^1.0.2:
2630 | version "1.0.2"
2631 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
2632 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
2633 | dependencies:
2634 | extend-shallow "^3.0.2"
2635 | safe-regex "^1.1.0"
2636 |
2637 | regexpu-core@^4.1.3:
2638 | version "4.2.0"
2639 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d"
2640 | integrity sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==
2641 | dependencies:
2642 | regenerate "^1.4.0"
2643 | regenerate-unicode-properties "^7.0.0"
2644 | regjsgen "^0.4.0"
2645 | regjsparser "^0.3.0"
2646 | unicode-match-property-ecmascript "^1.0.4"
2647 | unicode-match-property-value-ecmascript "^1.0.2"
2648 |
2649 | registry-auth-token@^3.0.1:
2650 | version "3.3.2"
2651 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"
2652 | integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==
2653 | dependencies:
2654 | rc "^1.1.6"
2655 | safe-buffer "^5.0.1"
2656 |
2657 | registry-url@^3.0.3:
2658 | version "3.1.0"
2659 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
2660 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI=
2661 | dependencies:
2662 | rc "^1.0.1"
2663 |
2664 | regjsgen@^0.4.0:
2665 | version "0.4.0"
2666 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561"
2667 | integrity sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==
2668 |
2669 | regjsparser@^0.3.0:
2670 | version "0.3.0"
2671 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96"
2672 | integrity sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==
2673 | dependencies:
2674 | jsesc "~0.5.0"
2675 |
2676 | release-zalgo@^1.0.0:
2677 | version "1.0.0"
2678 | resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730"
2679 | integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=
2680 | dependencies:
2681 | es6-error "^4.0.1"
2682 |
2683 | remove-trailing-separator@^1.0.1:
2684 | version "1.1.0"
2685 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
2686 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
2687 |
2688 | repeat-element@^1.1.2:
2689 | version "1.1.3"
2690 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
2691 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
2692 |
2693 | repeat-string@^1.6.1:
2694 | version "1.6.1"
2695 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2696 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
2697 |
2698 | require-precompiled@^0.1.0:
2699 | version "0.1.0"
2700 | resolved "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa"
2701 | integrity sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=
2702 |
2703 | resolve-cwd@^2.0.0:
2704 | version "2.0.0"
2705 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
2706 | integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
2707 | dependencies:
2708 | resolve-from "^3.0.0"
2709 |
2710 | resolve-from@^3.0.0:
2711 | version "3.0.0"
2712 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
2713 | integrity sha1-six699nWiBvItuZTM17rywoYh0g=
2714 |
2715 | resolve-url@^0.2.1:
2716 | version "0.2.1"
2717 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
2718 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
2719 |
2720 | resolve@^1.3.2:
2721 | version "1.8.1"
2722 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
2723 | integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
2724 | dependencies:
2725 | path-parse "^1.0.5"
2726 |
2727 | restore-cursor@^2.0.0:
2728 | version "2.0.0"
2729 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
2730 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
2731 | dependencies:
2732 | onetime "^2.0.0"
2733 | signal-exit "^3.0.2"
2734 |
2735 | ret@~0.1.10:
2736 | version "0.1.15"
2737 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
2738 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
2739 |
2740 | rimraf@^2.2.8, rimraf@^2.6.1:
2741 | version "2.6.2"
2742 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
2743 | integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
2744 | dependencies:
2745 | glob "^7.0.5"
2746 |
2747 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2748 | version "5.1.2"
2749 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
2750 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
2751 |
2752 | safe-regex@^1.1.0:
2753 | version "1.1.0"
2754 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
2755 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
2756 | dependencies:
2757 | ret "~0.1.10"
2758 |
2759 | "safer-buffer@>= 2.1.2 < 3":
2760 | version "2.1.2"
2761 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
2762 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
2763 |
2764 | sax@^1.2.4:
2765 | version "1.2.4"
2766 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
2767 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
2768 |
2769 | semver-diff@^2.0.0:
2770 | version "2.1.0"
2771 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
2772 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=
2773 | dependencies:
2774 | semver "^5.0.3"
2775 |
2776 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.1:
2777 | version "5.6.0"
2778 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
2779 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
2780 |
2781 | serialize-error@^2.1.0:
2782 | version "2.1.0"
2783 | resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a"
2784 | integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
2785 |
2786 | set-blocking@~2.0.0:
2787 | version "2.0.0"
2788 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2789 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
2790 |
2791 | set-value@^0.4.3:
2792 | version "0.4.3"
2793 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
2794 | integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
2795 | dependencies:
2796 | extend-shallow "^2.0.1"
2797 | is-extendable "^0.1.1"
2798 | is-plain-object "^2.0.1"
2799 | to-object-path "^0.3.0"
2800 |
2801 | set-value@^2.0.0:
2802 | version "2.0.0"
2803 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
2804 | integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
2805 | dependencies:
2806 | extend-shallow "^2.0.1"
2807 | is-extendable "^0.1.1"
2808 | is-plain-object "^2.0.3"
2809 | split-string "^3.0.1"
2810 |
2811 | shebang-command@^1.2.0:
2812 | version "1.2.0"
2813 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
2814 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
2815 | dependencies:
2816 | shebang-regex "^1.0.0"
2817 |
2818 | shebang-regex@^1.0.0:
2819 | version "1.0.0"
2820 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
2821 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
2822 |
2823 | signal-exit@^3.0.0, signal-exit@^3.0.2:
2824 | version "3.0.2"
2825 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
2826 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
2827 |
2828 | slash@^1.0.0:
2829 | version "1.0.0"
2830 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
2831 | integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
2832 |
2833 | slash@^2.0.0:
2834 | version "2.0.0"
2835 | resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
2836 | integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
2837 |
2838 | slice-ansi@^1.0.0:
2839 | version "1.0.0"
2840 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
2841 | integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
2842 | dependencies:
2843 | is-fullwidth-code-point "^2.0.0"
2844 |
2845 | slide@^1.1.5:
2846 | version "1.1.6"
2847 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
2848 | integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
2849 |
2850 | snapdragon-node@^2.0.1:
2851 | version "2.1.1"
2852 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
2853 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
2854 | dependencies:
2855 | define-property "^1.0.0"
2856 | isobject "^3.0.0"
2857 | snapdragon-util "^3.0.1"
2858 |
2859 | snapdragon-util@^3.0.1:
2860 | version "3.0.1"
2861 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
2862 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
2863 | dependencies:
2864 | kind-of "^3.2.0"
2865 |
2866 | snapdragon@^0.8.1:
2867 | version "0.8.2"
2868 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
2869 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
2870 | dependencies:
2871 | base "^0.11.1"
2872 | debug "^2.2.0"
2873 | define-property "^0.2.5"
2874 | extend-shallow "^2.0.1"
2875 | map-cache "^0.2.2"
2876 | source-map "^0.5.6"
2877 | source-map-resolve "^0.5.0"
2878 | use "^3.1.0"
2879 |
2880 | source-map-resolve@^0.5.0:
2881 | version "0.5.2"
2882 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
2883 | integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
2884 | dependencies:
2885 | atob "^2.1.1"
2886 | decode-uri-component "^0.2.0"
2887 | resolve-url "^0.2.1"
2888 | source-map-url "^0.4.0"
2889 | urix "^0.1.0"
2890 |
2891 | source-map-support@^0.5.6, source-map-support@^0.5.9:
2892 | version "0.5.9"
2893 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f"
2894 | integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==
2895 | dependencies:
2896 | buffer-from "^1.0.0"
2897 | source-map "^0.6.0"
2898 |
2899 | source-map-url@^0.4.0:
2900 | version "0.4.0"
2901 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
2902 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
2903 |
2904 | source-map@^0.5.0, source-map@^0.5.6:
2905 | version "0.5.7"
2906 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
2907 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
2908 |
2909 | source-map@^0.6.0:
2910 | version "0.6.1"
2911 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2912 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2913 |
2914 | spdx-correct@^3.0.0:
2915 | version "3.0.2"
2916 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e"
2917 | integrity sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==
2918 | dependencies:
2919 | spdx-expression-parse "^3.0.0"
2920 | spdx-license-ids "^3.0.0"
2921 |
2922 | spdx-exceptions@^2.1.0:
2923 | version "2.2.0"
2924 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
2925 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
2926 |
2927 | spdx-expression-parse@^3.0.0:
2928 | version "3.0.0"
2929 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
2930 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
2931 | dependencies:
2932 | spdx-exceptions "^2.1.0"
2933 | spdx-license-ids "^3.0.0"
2934 |
2935 | spdx-license-ids@^3.0.0:
2936 | version "3.0.2"
2937 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz#a59efc09784c2a5bada13cfeaf5c75dd214044d2"
2938 | integrity sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==
2939 |
2940 | split-string@^3.0.1, split-string@^3.0.2:
2941 | version "3.1.0"
2942 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
2943 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
2944 | dependencies:
2945 | extend-shallow "^3.0.0"
2946 |
2947 | sprintf-js@~1.0.2:
2948 | version "1.0.3"
2949 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2950 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
2951 |
2952 | stack-utils@^1.0.1:
2953 | version "1.0.2"
2954 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
2955 | integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
2956 |
2957 | static-extend@^0.1.1:
2958 | version "0.1.2"
2959 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
2960 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
2961 | dependencies:
2962 | define-property "^0.2.5"
2963 | object-copy "^0.1.0"
2964 |
2965 | string-width@^1.0.1:
2966 | version "1.0.2"
2967 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2968 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
2969 | dependencies:
2970 | code-point-at "^1.0.0"
2971 | is-fullwidth-code-point "^1.0.0"
2972 | strip-ansi "^3.0.0"
2973 |
2974 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
2975 | version "2.1.1"
2976 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
2977 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
2978 | dependencies:
2979 | is-fullwidth-code-point "^2.0.0"
2980 | strip-ansi "^4.0.0"
2981 |
2982 | string_decoder@~1.1.1:
2983 | version "1.1.1"
2984 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
2985 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
2986 | dependencies:
2987 | safe-buffer "~5.1.0"
2988 |
2989 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2990 | version "3.0.1"
2991 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2992 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
2993 | dependencies:
2994 | ansi-regex "^2.0.0"
2995 |
2996 | strip-ansi@^4.0.0:
2997 | version "4.0.0"
2998 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
2999 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
3000 | dependencies:
3001 | ansi-regex "^3.0.0"
3002 |
3003 | strip-ansi@^5.0.0:
3004 | version "5.0.0"
3005 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f"
3006 | integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==
3007 | dependencies:
3008 | ansi-regex "^4.0.0"
3009 |
3010 | strip-bom-buf@^1.0.0:
3011 | version "1.0.0"
3012 | resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572"
3013 | integrity sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=
3014 | dependencies:
3015 | is-utf8 "^0.2.1"
3016 |
3017 | strip-bom@^3.0.0:
3018 | version "3.0.0"
3019 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
3020 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
3021 |
3022 | strip-eof@^1.0.0:
3023 | version "1.0.0"
3024 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
3025 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
3026 |
3027 | strip-indent@^2.0.0:
3028 | version "2.0.0"
3029 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
3030 | integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
3031 |
3032 | strip-json-comments@~2.0.1:
3033 | version "2.0.1"
3034 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
3035 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
3036 |
3037 | supertap@^1.0.0:
3038 | version "1.0.0"
3039 | resolved "https://registry.yarnpkg.com/supertap/-/supertap-1.0.0.tgz#bd9751c7fafd68c68cf8222a29892206a119fa9e"
3040 | integrity sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==
3041 | dependencies:
3042 | arrify "^1.0.1"
3043 | indent-string "^3.2.0"
3044 | js-yaml "^3.10.0"
3045 | serialize-error "^2.1.0"
3046 | strip-ansi "^4.0.0"
3047 |
3048 | supports-color@^2.0.0:
3049 | version "2.0.0"
3050 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
3051 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
3052 |
3053 | supports-color@^5.3.0, supports-color@^5.5.0:
3054 | version "5.5.0"
3055 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
3056 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
3057 | dependencies:
3058 | has-flag "^3.0.0"
3059 |
3060 | symbol-observable@^0.2.2:
3061 | version "0.2.4"
3062 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40"
3063 | integrity sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=
3064 |
3065 | symbol-observable@^1.0.4, symbol-observable@^1.1.0:
3066 | version "1.2.0"
3067 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
3068 | integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
3069 |
3070 | tar@^4:
3071 | version "4.4.8"
3072 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
3073 | integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==
3074 | dependencies:
3075 | chownr "^1.1.1"
3076 | fs-minipass "^1.2.5"
3077 | minipass "^2.3.4"
3078 | minizlib "^1.1.1"
3079 | mkdirp "^0.5.0"
3080 | safe-buffer "^5.1.2"
3081 | yallist "^3.0.2"
3082 |
3083 | term-size@^1.2.0:
3084 | version "1.2.0"
3085 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
3086 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=
3087 | dependencies:
3088 | execa "^0.7.0"
3089 |
3090 | time-zone@^1.0.0:
3091 | version "1.0.0"
3092 | resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d"
3093 | integrity sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=
3094 |
3095 | timed-out@^4.0.0:
3096 | version "4.0.1"
3097 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
3098 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
3099 |
3100 | to-fast-properties@^2.0.0:
3101 | version "2.0.0"
3102 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
3103 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
3104 |
3105 | to-object-path@^0.3.0:
3106 | version "0.3.0"
3107 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
3108 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
3109 | dependencies:
3110 | kind-of "^3.0.2"
3111 |
3112 | to-regex-range@^2.1.0:
3113 | version "2.1.1"
3114 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
3115 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
3116 | dependencies:
3117 | is-number "^3.0.0"
3118 | repeat-string "^1.6.1"
3119 |
3120 | to-regex@^3.0.1, to-regex@^3.0.2:
3121 | version "3.0.2"
3122 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
3123 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
3124 | dependencies:
3125 | define-property "^2.0.2"
3126 | extend-shallow "^3.0.2"
3127 | regex-not "^1.0.2"
3128 | safe-regex "^1.1.0"
3129 |
3130 | trim-newlines@^2.0.0:
3131 | version "2.0.0"
3132 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20"
3133 | integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=
3134 |
3135 | trim-off-newlines@^1.0.1:
3136 | version "1.0.1"
3137 | resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3"
3138 | integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM=
3139 |
3140 | trim-right@^1.0.1:
3141 | version "1.0.1"
3142 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
3143 | integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
3144 |
3145 | ts-node@^7.0.1:
3146 | version "7.0.1"
3147 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf"
3148 | integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==
3149 | dependencies:
3150 | arrify "^1.0.0"
3151 | buffer-from "^1.1.0"
3152 | diff "^3.1.0"
3153 | make-error "^1.1.1"
3154 | minimist "^1.2.0"
3155 | mkdirp "^0.5.1"
3156 | source-map-support "^0.5.6"
3157 | yn "^2.0.0"
3158 |
3159 | tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1:
3160 | version "1.9.3"
3161 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
3162 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
3163 |
3164 | tslint-config-prettier@^1.16.0:
3165 | version "1.16.0"
3166 | resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.16.0.tgz#4627d0e2639554d89210e480093c381b5186963f"
3167 | integrity sha512-zu6RAcpBtqdvhT6KpBh9kRPYATjOf9BnRi718kNqVKFjEgSE4rFrPprFju1YJrkOa3RbtbWI1ZSuLd2NBX1MDw==
3168 |
3169 | tslint-plugin-prettier@^2.0.1:
3170 | version "2.0.1"
3171 | resolved "https://registry.yarnpkg.com/tslint-plugin-prettier/-/tslint-plugin-prettier-2.0.1.tgz#95b6a3b766622ffc44375825d7760225c50c3680"
3172 | integrity sha512-4FX9JIx/1rKHIPJNfMb+ooX1gPk5Vg3vNi7+dyFYpLO+O57F4g+b/fo1+W/G0SUOkBLHB/YKScxjX/P+7ZT/Tw==
3173 | dependencies:
3174 | eslint-plugin-prettier "^2.2.0"
3175 | lines-and-columns "^1.1.6"
3176 | tslib "^1.7.1"
3177 |
3178 | tslint@^5.11.0:
3179 | version "5.11.0"
3180 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed"
3181 | integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0=
3182 | dependencies:
3183 | babel-code-frame "^6.22.0"
3184 | builtin-modules "^1.1.1"
3185 | chalk "^2.3.0"
3186 | commander "^2.12.1"
3187 | diff "^3.2.0"
3188 | glob "^7.1.1"
3189 | js-yaml "^3.7.0"
3190 | minimatch "^3.0.4"
3191 | resolve "^1.3.2"
3192 | semver "^5.3.0"
3193 | tslib "^1.8.0"
3194 | tsutils "^2.27.2"
3195 |
3196 | tsutils@^2.27.2:
3197 | version "2.29.0"
3198 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
3199 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
3200 | dependencies:
3201 | tslib "^1.8.1"
3202 |
3203 | type-detect@^4.0.0, type-detect@^4.0.5:
3204 | version "4.0.8"
3205 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
3206 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
3207 |
3208 | typescript@^3.1.6:
3209 | version "3.1.6"
3210 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68"
3211 | integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==
3212 |
3213 | uid2@0.0.3:
3214 | version "0.0.3"
3215 | resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
3216 | integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
3217 |
3218 | unicode-canonical-property-names-ecmascript@^1.0.4:
3219 | version "1.0.4"
3220 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
3221 | integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
3222 |
3223 | unicode-match-property-ecmascript@^1.0.4:
3224 | version "1.0.4"
3225 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
3226 | integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
3227 | dependencies:
3228 | unicode-canonical-property-names-ecmascript "^1.0.4"
3229 | unicode-property-aliases-ecmascript "^1.0.4"
3230 |
3231 | unicode-match-property-value-ecmascript@^1.0.2:
3232 | version "1.0.2"
3233 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4"
3234 | integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==
3235 |
3236 | unicode-property-aliases-ecmascript@^1.0.4:
3237 | version "1.0.4"
3238 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0"
3239 | integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==
3240 |
3241 | union-value@^1.0.0:
3242 | version "1.0.0"
3243 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
3244 | integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
3245 | dependencies:
3246 | arr-union "^3.1.0"
3247 | get-value "^2.0.6"
3248 | is-extendable "^0.1.1"
3249 | set-value "^0.4.3"
3250 |
3251 | unique-string@^1.0.0:
3252 | version "1.0.0"
3253 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
3254 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
3255 | dependencies:
3256 | crypto-random-string "^1.0.0"
3257 |
3258 | unique-temp-dir@^1.0.0:
3259 | version "1.0.0"
3260 | resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385"
3261 | integrity sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=
3262 | dependencies:
3263 | mkdirp "^0.5.1"
3264 | os-tmpdir "^1.0.1"
3265 | uid2 "0.0.3"
3266 |
3267 | unset-value@^1.0.0:
3268 | version "1.0.0"
3269 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
3270 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
3271 | dependencies:
3272 | has-value "^0.3.1"
3273 | isobject "^3.0.0"
3274 |
3275 | unzip-response@^2.0.1:
3276 | version "2.0.1"
3277 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
3278 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
3279 |
3280 | upath@^1.0.5:
3281 | version "1.1.0"
3282 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
3283 | integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==
3284 |
3285 | update-notifier@^2.5.0:
3286 | version "2.5.0"
3287 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
3288 | integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==
3289 | dependencies:
3290 | boxen "^1.2.1"
3291 | chalk "^2.0.1"
3292 | configstore "^3.0.0"
3293 | import-lazy "^2.1.0"
3294 | is-ci "^1.0.10"
3295 | is-installed-globally "^0.1.0"
3296 | is-npm "^1.0.0"
3297 | latest-version "^3.0.0"
3298 | semver-diff "^2.0.0"
3299 | xdg-basedir "^3.0.0"
3300 |
3301 | urix@^0.1.0:
3302 | version "0.1.0"
3303 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
3304 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
3305 |
3306 | url-parse-lax@^1.0.0:
3307 | version "1.0.0"
3308 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
3309 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
3310 | dependencies:
3311 | prepend-http "^1.0.1"
3312 |
3313 | use@^3.1.0:
3314 | version "3.1.1"
3315 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
3316 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
3317 |
3318 | util-deprecate@~1.0.1:
3319 | version "1.0.2"
3320 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
3321 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
3322 |
3323 | validate-npm-package-license@^3.0.1:
3324 | version "3.0.4"
3325 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
3326 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
3327 | dependencies:
3328 | spdx-correct "^3.0.0"
3329 | spdx-expression-parse "^3.0.0"
3330 |
3331 | wcwidth@^1.0.1:
3332 | version "1.0.1"
3333 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
3334 | integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
3335 | dependencies:
3336 | defaults "^1.0.3"
3337 |
3338 | well-known-symbols@^2.0.0:
3339 | version "2.0.0"
3340 | resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5"
3341 | integrity sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==
3342 |
3343 | which@^1.2.9:
3344 | version "1.3.1"
3345 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
3346 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
3347 | dependencies:
3348 | isexe "^2.0.0"
3349 |
3350 | wide-align@^1.1.0:
3351 | version "1.1.3"
3352 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
3353 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
3354 | dependencies:
3355 | string-width "^1.0.2 || 2"
3356 |
3357 | widest-line@^2.0.0:
3358 | version "2.0.1"
3359 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
3360 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==
3361 | dependencies:
3362 | string-width "^2.1.1"
3363 |
3364 | wrappy@1:
3365 | version "1.0.2"
3366 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
3367 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
3368 |
3369 | write-file-atomic@^2.0.0:
3370 | version "2.3.0"
3371 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
3372 | integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==
3373 | dependencies:
3374 | graceful-fs "^4.1.11"
3375 | imurmurhash "^0.1.4"
3376 | signal-exit "^3.0.2"
3377 |
3378 | xdg-basedir@^3.0.0:
3379 | version "3.0.0"
3380 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
3381 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
3382 |
3383 | xtend@^4.0.0:
3384 | version "4.0.1"
3385 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
3386 | integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
3387 |
3388 | yallist@^3.0.0, yallist@^3.0.2:
3389 | version "3.0.3"
3390 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
3391 | integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
3392 |
3393 | yargs-parser@^10.0.0:
3394 | version "10.1.0"
3395 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
3396 | integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
3397 | dependencies:
3398 | camelcase "^4.1.0"
3399 |
3400 | yn@^2.0.0:
3401 | version "2.0.0"
3402 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
3403 | integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=
3404 |
--------------------------------------------------------------------------------