##// END OF EJS Templates
prevent safe::debounce async tasks to run in parallel
cin -
r167:d6fe22864d82 v1.4.3 default
parent child
Show More
This diff has been collapsed as it changes many lines, (1620 lines changed) Show them Hide them
@@ -1,1314 +1,2932
1 {
1 {
2 "name": "@implab/core",
2 "name": "@implab/core",
3 "version": "0.0.1-dev",
3 "version": "0.0.1-dev",
4 "lockfileVersion": 1,
4 "lockfileVersion": 2,
5 "requires": true,
5 "requires": true,
6 "packages": {
7 "": {
8 "name": "@implab/core",
9 "version": "0.0.1-dev",
10 "license": "BSD-2-Clause",
11 "devDependencies": {
12 "@types/node": "^8.0.0",
13 "@types/requirejs": "~2.1.31",
14 "@types/tape": "~4.2.33",
15 "dojo": "~1.10.0",
16 "dojo-typings": "^1.11.9",
17 "eslint": "6.1.0",
18 "requirejs": "latest",
19 "tape": "~4.11.0",
20 "tslint": "5.18.0",
21 "typescript": "~4.1.5"
22 },
23 "peerDependencies": {
24 "dojo": "^1.10.0"
25 }
26 },
27 "node_modules/@babel/code-frame": {
28 "version": "7.5.5",
29 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
30 "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
31 "dev": true,
32 "dependencies": {
33 "@babel/highlight": "^7.0.0"
34 }
35 },
36 "node_modules/@babel/highlight": {
37 "version": "7.5.0",
38 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
39 "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
40 "dev": true,
41 "dependencies": {
42 "chalk": "^2.0.0",
43 "esutils": "^2.0.2",
44 "js-tokens": "^4.0.0"
45 }
46 },
47 "node_modules/@types/chai": {
48 "version": "4.2.3",
49 "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.3.tgz",
50 "integrity": "sha512-VRw2xEGbll3ZiTQ4J02/hUjNqZoue1bMhoo2dgM2LXjDdyaq4q80HgBDHwpI0/VKlo4Eg+BavyQMv/NYgTetzA==",
51 "dev": true
52 },
53 "node_modules/@types/node": {
54 "version": "8.10.55",
55 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.55.tgz",
56 "integrity": "sha512-iZeh1EgupfmAAOASk580R1SL5lWF3CsBVgVH0395qyNF8fhO16xy1UwAav2PdGxIIsYRn7RzJgMGjdsvam6YYg==",
57 "dev": true
58 },
59 "node_modules/@types/requirejs": {
60 "version": "2.1.31",
61 "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz",
62 "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==",
63 "dev": true
64 },
65 "node_modules/@types/tape": {
66 "version": "4.2.33",
67 "resolved": "https://registry.npmjs.org/@types/tape/-/tape-4.2.33.tgz",
68 "integrity": "sha512-ltfyuY5BIkYlGuQfwqzTDT8f0q8Z5DGppvUnWGs39oqDmMd6/UWhNpX3ZMh/VYvfxs3rFGHMrLC/eGRdLiDGuw==",
69 "dev": true,
70 "dependencies": {
71 "@types/node": "*"
72 }
73 },
74 "node_modules/acorn": {
75 "version": "7.1.0",
76 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
77 "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
78 "dev": true,
79 "bin": {
80 "acorn": "bin/acorn"
81 },
82 "engines": {
83 "node": ">=0.4.0"
84 }
85 },
86 "node_modules/acorn-jsx": {
87 "version": "5.1.0",
88 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
89 "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
90 "dev": true
91 },
92 "node_modules/ajv": {
93 "version": "6.10.2",
94 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
95 "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
96 "dev": true,
97 "dependencies": {
98 "fast-deep-equal": "^2.0.1",
99 "fast-json-stable-stringify": "^2.0.0",
100 "json-schema-traverse": "^0.4.1",
101 "uri-js": "^4.2.2"
102 }
103 },
104 "node_modules/ansi-escapes": {
105 "version": "3.2.0",
106 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
107 "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
108 "dev": true,
109 "engines": {
110 "node": ">=4"
111 }
112 },
113 "node_modules/ansi-regex": {
114 "version": "3.0.0",
115 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
116 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
117 "dev": true,
118 "engines": {
119 "node": ">=4"
120 }
121 },
122 "node_modules/ansi-styles": {
123 "version": "3.2.1",
124 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
125 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
126 "dev": true,
127 "dependencies": {
128 "color-convert": "^1.9.0"
129 },
130 "engines": {
131 "node": ">=4"
132 }
133 },
134 "node_modules/argparse": {
135 "version": "1.0.10",
136 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
137 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
138 "dev": true,
139 "dependencies": {
140 "sprintf-js": "~1.0.2"
141 }
142 },
143 "node_modules/astral-regex": {
144 "version": "1.0.0",
145 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
146 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
147 "dev": true,
148 "engines": {
149 "node": ">=4"
150 }
151 },
152 "node_modules/balanced-match": {
153 "version": "1.0.0",
154 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
155 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
156 "dev": true
157 },
158 "node_modules/brace-expansion": {
159 "version": "1.1.11",
160 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
161 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
162 "dev": true,
163 "dependencies": {
164 "balanced-match": "^1.0.0",
165 "concat-map": "0.0.1"
166 }
167 },
168 "node_modules/builtin-modules": {
169 "version": "1.1.1",
170 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
171 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
172 "dev": true,
173 "engines": {
174 "node": ">=0.10.0"
175 }
176 },
177 "node_modules/callsites": {
178 "version": "3.1.0",
179 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
180 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
181 "dev": true,
182 "engines": {
183 "node": ">=6"
184 }
185 },
186 "node_modules/chalk": {
187 "version": "2.4.2",
188 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
189 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
190 "dev": true,
191 "dependencies": {
192 "ansi-styles": "^3.2.1",
193 "escape-string-regexp": "^1.0.5",
194 "supports-color": "^5.3.0"
195 },
196 "engines": {
197 "node": ">=4"
198 }
199 },
200 "node_modules/chardet": {
201 "version": "0.7.0",
202 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
203 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
204 "dev": true
205 },
206 "node_modules/cli-cursor": {
207 "version": "2.1.0",
208 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
209 "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
210 "dev": true,
211 "dependencies": {
212 "restore-cursor": "^2.0.0"
213 },
214 "engines": {
215 "node": ">=4"
216 }
217 },
218 "node_modules/cli-width": {
219 "version": "2.2.0",
220 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
221 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
222 "dev": true
223 },
224 "node_modules/color-convert": {
225 "version": "1.9.3",
226 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
227 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
228 "dev": true,
229 "dependencies": {
230 "color-name": "1.1.3"
231 }
232 },
233 "node_modules/color-name": {
234 "version": "1.1.3",
235 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
236 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
237 "dev": true
238 },
239 "node_modules/commander": {
240 "version": "2.20.3",
241 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
242 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
243 "dev": true
244 },
245 "node_modules/concat-map": {
246 "version": "0.0.1",
247 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
248 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
249 "dev": true
250 },
251 "node_modules/cross-spawn": {
252 "version": "6.0.5",
253 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
254 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
255 "dev": true,
256 "dependencies": {
257 "nice-try": "^1.0.4",
258 "path-key": "^2.0.1",
259 "semver": "^5.5.0",
260 "shebang-command": "^1.2.0",
261 "which": "^1.2.9"
262 },
263 "engines": {
264 "node": ">=4.8"
265 }
266 },
267 "node_modules/cross-spawn/node_modules/semver": {
268 "version": "5.7.1",
269 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
270 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
271 "dev": true,
272 "bin": {
273 "semver": "bin/semver"
274 }
275 },
276 "node_modules/debug": {
277 "version": "4.1.1",
278 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
279 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
280 "dev": true,
281 "dependencies": {
282 "ms": "^2.1.1"
283 }
284 },
285 "node_modules/deep-is": {
286 "version": "0.1.3",
287 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
288 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
289 "dev": true
290 },
291 "node_modules/define-properties": {
292 "version": "1.1.3",
293 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
294 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
295 "dev": true,
296 "dependencies": {
297 "object-keys": "^1.0.12"
298 },
299 "engines": {
300 "node": ">= 0.4"
301 }
302 },
303 "node_modules/define-properties/node_modules/object-keys": {
304 "version": "1.1.1",
305 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
306 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
307 "dev": true,
308 "engines": {
309 "node": ">= 0.4"
310 }
311 },
312 "node_modules/diff": {
313 "version": "3.5.0",
314 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
315 "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
316 "dev": true,
317 "engines": {
318 "node": ">=0.3.1"
319 }
320 },
321 "node_modules/doctrine": {
322 "version": "3.0.0",
323 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
324 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
325 "dev": true,
326 "dependencies": {
327 "esutils": "^2.0.2"
328 },
329 "engines": {
330 "node": ">=6.0.0"
331 }
332 },
333 "node_modules/dojo": {
334 "version": "1.10.10",
335 "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.10.10.tgz",
336 "integrity": "sha512-kg79C8Yyd317cG3MgXGMH4AeQ8TgNr8H/PpA3BRms7DTfl0CJCRAgGE/C6d9Nw55s1ID/fEsfS+P3bj1s7dWgA==",
337 "dev": true
338 },
339 "node_modules/dojo-typings": {
340 "version": "1.11.9",
341 "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
342 "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
343 "dev": true,
344 "dependencies": {
345 "@types/chai": "^4.0.4"
346 }
347 },
348 "node_modules/emoji-regex": {
349 "version": "7.0.3",
350 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
351 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
352 "dev": true
353 },
354 "node_modules/es-abstract": {
355 "version": "1.15.0",
356 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
357 "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
358 "dev": true,
359 "dependencies": {
360 "es-to-primitive": "^1.2.0",
361 "function-bind": "^1.1.1",
362 "has": "^1.0.3",
363 "has-symbols": "^1.0.0",
364 "is-callable": "^1.1.4",
365 "is-regex": "^1.0.4",
366 "object-inspect": "^1.6.0",
367 "object-keys": "^1.1.1",
368 "string.prototype.trimleft": "^2.1.0",
369 "string.prototype.trimright": "^2.1.0"
370 },
371 "engines": {
372 "node": ">= 0.4"
373 }
374 },
375 "node_modules/es-abstract/node_modules/object-keys": {
376 "version": "1.1.1",
377 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
378 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
379 "dev": true,
380 "engines": {
381 "node": ">= 0.4"
382 }
383 },
384 "node_modules/es-to-primitive": {
385 "version": "1.2.0",
386 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
387 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
388 "dev": true,
389 "dependencies": {
390 "is-callable": "^1.1.4",
391 "is-date-object": "^1.0.1",
392 "is-symbol": "^1.0.2"
393 },
394 "engines": {
395 "node": ">= 0.4"
396 }
397 },
398 "node_modules/escape-string-regexp": {
399 "version": "1.0.5",
400 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
401 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
402 "dev": true,
403 "engines": {
404 "node": ">=0.8.0"
405 }
406 },
407 "node_modules/eslint": {
408 "version": "6.1.0",
409 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz",
410 "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==",
411 "dev": true,
412 "dependencies": {
413 "@babel/code-frame": "^7.0.0",
414 "ajv": "^6.10.0",
415 "chalk": "^2.1.0",
416 "cross-spawn": "^6.0.5",
417 "debug": "^4.0.1",
418 "doctrine": "^3.0.0",
419 "eslint-scope": "^5.0.0",
420 "eslint-utils": "^1.3.1",
421 "eslint-visitor-keys": "^1.0.0",
422 "espree": "^6.0.0",
423 "esquery": "^1.0.1",
424 "esutils": "^2.0.2",
425 "file-entry-cache": "^5.0.1",
426 "functional-red-black-tree": "^1.0.1",
427 "glob-parent": "^5.0.0",
428 "globals": "^11.7.0",
429 "ignore": "^4.0.6",
430 "import-fresh": "^3.0.0",
431 "imurmurhash": "^0.1.4",
432 "inquirer": "^6.4.1",
433 "is-glob": "^4.0.0",
434 "js-yaml": "^3.13.1",
435 "json-stable-stringify-without-jsonify": "^1.0.1",
436 "levn": "^0.3.0",
437 "lodash": "^4.17.14",
438 "minimatch": "^3.0.4",
439 "mkdirp": "^0.5.1",
440 "natural-compare": "^1.4.0",
441 "optionator": "^0.8.2",
442 "progress": "^2.0.0",
443 "regexpp": "^2.0.1",
444 "semver": "^6.1.2",
445 "strip-ansi": "^5.2.0",
446 "strip-json-comments": "^3.0.1",
447 "table": "^5.2.3",
448 "text-table": "^0.2.0",
449 "v8-compile-cache": "^2.0.3"
450 },
451 "bin": {
452 "eslint": "bin/eslint.js"
453 },
454 "engines": {
455 "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
456 }
457 },
458 "node_modules/eslint-scope": {
459 "version": "5.0.0",
460 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
461 "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
462 "dev": true,
463 "dependencies": {
464 "esrecurse": "^4.1.0",
465 "estraverse": "^4.1.1"
466 },
467 "engines": {
468 "node": ">=8.0.0"
469 }
470 },
471 "node_modules/eslint-utils": {
472 "version": "1.4.2",
473 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
474 "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
475 "dev": true,
476 "dependencies": {
477 "eslint-visitor-keys": "^1.0.0"
478 },
479 "engines": {
480 "node": ">=6"
481 }
482 },
483 "node_modules/eslint-visitor-keys": {
484 "version": "1.1.0",
485 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
486 "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
487 "dev": true,
488 "engines": {
489 "node": ">=4"
490 }
491 },
492 "node_modules/espree": {
493 "version": "6.1.1",
494 "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz",
495 "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==",
496 "dev": true,
497 "dependencies": {
498 "acorn": "^7.0.0",
499 "acorn-jsx": "^5.0.2",
500 "eslint-visitor-keys": "^1.1.0"
501 },
502 "engines": {
503 "node": ">=6.0.0"
504 }
505 },
506 "node_modules/esprima": {
507 "version": "4.0.1",
508 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
509 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
510 "dev": true,
511 "bin": {
512 "esparse": "bin/esparse.js",
513 "esvalidate": "bin/esvalidate.js"
514 },
515 "engines": {
516 "node": ">=4"
517 }
518 },
519 "node_modules/esquery": {
520 "version": "1.0.1",
521 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
522 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
523 "dev": true,
524 "dependencies": {
525 "estraverse": "^4.0.0"
526 },
527 "engines": {
528 "node": ">=0.6"
529 }
530 },
531 "node_modules/esrecurse": {
532 "version": "4.2.1",
533 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
534 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
535 "dev": true,
536 "dependencies": {
537 "estraverse": "^4.1.0"
538 },
539 "engines": {
540 "node": ">=4.0"
541 }
542 },
543 "node_modules/estraverse": {
544 "version": "4.3.0",
545 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
546 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
547 "dev": true,
548 "engines": {
549 "node": ">=4.0"
550 }
551 },
552 "node_modules/esutils": {
553 "version": "2.0.3",
554 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
555 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
556 "dev": true,
557 "engines": {
558 "node": ">=0.10.0"
559 }
560 },
561 "node_modules/external-editor": {
562 "version": "3.1.0",
563 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
564 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
565 "dev": true,
566 "dependencies": {
567 "chardet": "^0.7.0",
568 "iconv-lite": "^0.4.24",
569 "tmp": "^0.0.33"
570 },
571 "engines": {
572 "node": ">=4"
573 }
574 },
575 "node_modules/fast-deep-equal": {
576 "version": "2.0.1",
577 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
578 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
579 "dev": true
580 },
581 "node_modules/fast-json-stable-stringify": {
582 "version": "2.0.0",
583 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
584 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
585 "dev": true
586 },
587 "node_modules/fast-levenshtein": {
588 "version": "2.0.6",
589 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
590 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
591 "dev": true
592 },
593 "node_modules/figures": {
594 "version": "2.0.0",
595 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
596 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
597 "dev": true,
598 "dependencies": {
599 "escape-string-regexp": "^1.0.5"
600 },
601 "engines": {
602 "node": ">=4"
603 }
604 },
605 "node_modules/file-entry-cache": {
606 "version": "5.0.1",
607 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
608 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
609 "dev": true,
610 "dependencies": {
611 "flat-cache": "^2.0.1"
612 },
613 "engines": {
614 "node": ">=4"
615 }
616 },
617 "node_modules/flat-cache": {
618 "version": "2.0.1",
619 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
620 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
621 "dev": true,
622 "dependencies": {
623 "flatted": "^2.0.0",
624 "rimraf": "2.6.3",
625 "write": "1.0.3"
626 },
627 "engines": {
628 "node": ">=4"
629 }
630 },
631 "node_modules/flatted": {
632 "version": "2.0.1",
633 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
634 "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
635 "dev": true
636 },
637 "node_modules/for-each": {
638 "version": "0.3.3",
639 "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
640 "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
641 "dev": true,
642 "dependencies": {
643 "is-callable": "^1.1.3"
644 }
645 },
646 "node_modules/fs.realpath": {
647 "version": "1.0.0",
648 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
649 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
650 "dev": true
651 },
652 "node_modules/function-bind": {
653 "version": "1.1.1",
654 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
655 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
656 "dev": true
657 },
658 "node_modules/functional-red-black-tree": {
659 "version": "1.0.1",
660 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
661 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
662 "dev": true
663 },
664 "node_modules/glob": {
665 "version": "7.1.4",
666 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
667 "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
668 "dev": true,
669 "dependencies": {
670 "fs.realpath": "^1.0.0",
671 "inflight": "^1.0.4",
672 "inherits": "2",
673 "minimatch": "^3.0.4",
674 "once": "^1.3.0",
675 "path-is-absolute": "^1.0.0"
676 },
677 "engines": {
678 "node": "*"
679 }
680 },
681 "node_modules/glob-parent": {
682 "version": "5.1.0",
683 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
684 "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
685 "dev": true,
686 "dependencies": {
687 "is-glob": "^4.0.1"
688 },
689 "engines": {
690 "node": ">= 6"
691 }
692 },
693 "node_modules/globals": {
694 "version": "11.12.0",
695 "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
696 "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
697 "dev": true,
698 "engines": {
699 "node": ">=4"
700 }
701 },
702 "node_modules/has": {
703 "version": "1.0.3",
704 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
705 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
706 "dev": true,
707 "dependencies": {
708 "function-bind": "^1.1.1"
709 },
710 "engines": {
711 "node": ">= 0.4.0"
712 }
713 },
714 "node_modules/has-flag": {
715 "version": "3.0.0",
716 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
717 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
718 "dev": true,
719 "engines": {
720 "node": ">=4"
721 }
722 },
723 "node_modules/has-symbols": {
724 "version": "1.0.0",
725 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
726 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
727 "dev": true,
728 "engines": {
729 "node": ">= 0.4"
730 }
731 },
732 "node_modules/iconv-lite": {
733 "version": "0.4.24",
734 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
735 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
736 "dev": true,
737 "dependencies": {
738 "safer-buffer": ">= 2.1.2 < 3"
739 },
740 "engines": {
741 "node": ">=0.10.0"
742 }
743 },
744 "node_modules/ignore": {
745 "version": "4.0.6",
746 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
747 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
748 "dev": true,
749 "engines": {
750 "node": ">= 4"
751 }
752 },
753 "node_modules/import-fresh": {
754 "version": "3.1.0",
755 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
756 "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
757 "dev": true,
758 "dependencies": {
759 "parent-module": "^1.0.0",
760 "resolve-from": "^4.0.0"
761 },
762 "engines": {
763 "node": ">=6"
764 }
765 },
766 "node_modules/imurmurhash": {
767 "version": "0.1.4",
768 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
769 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
770 "dev": true,
771 "engines": {
772 "node": ">=0.8.19"
773 }
774 },
775 "node_modules/inflight": {
776 "version": "1.0.6",
777 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
778 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
779 "dev": true,
780 "dependencies": {
781 "once": "^1.3.0",
782 "wrappy": "1"
783 }
784 },
785 "node_modules/inherits": {
786 "version": "2.0.3",
787 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
788 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
789 "dev": true
790 },
791 "node_modules/inquirer": {
792 "version": "6.5.2",
793 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
794 "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
795 "dev": true,
796 "dependencies": {
797 "ansi-escapes": "^3.2.0",
798 "chalk": "^2.4.2",
799 "cli-cursor": "^2.1.0",
800 "cli-width": "^2.0.0",
801 "external-editor": "^3.0.3",
802 "figures": "^2.0.0",
803 "lodash": "^4.17.12",
804 "mute-stream": "0.0.7",
805 "run-async": "^2.2.0",
806 "rxjs": "^6.4.0",
807 "string-width": "^2.1.0",
808 "strip-ansi": "^5.1.0",
809 "through": "^2.3.6"
810 },
811 "engines": {
812 "node": ">=6.0.0"
813 }
814 },
815 "node_modules/is-callable": {
816 "version": "1.1.4",
817 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
818 "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
819 "dev": true,
820 "engines": {
821 "node": ">= 0.4"
822 }
823 },
824 "node_modules/is-date-object": {
825 "version": "1.0.1",
826 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
827 "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
828 "dev": true,
829 "engines": {
830 "node": ">= 0.4"
831 }
832 },
833 "node_modules/is-extglob": {
834 "version": "2.1.1",
835 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
836 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
837 "dev": true,
838 "engines": {
839 "node": ">=0.10.0"
840 }
841 },
842 "node_modules/is-fullwidth-code-point": {
843 "version": "2.0.0",
844 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
845 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
846 "dev": true,
847 "engines": {
848 "node": ">=4"
849 }
850 },
851 "node_modules/is-glob": {
852 "version": "4.0.1",
853 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
854 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
855 "dev": true,
856 "dependencies": {
857 "is-extglob": "^2.1.1"
858 },
859 "engines": {
860 "node": ">=0.10.0"
861 }
862 },
863 "node_modules/is-promise": {
864 "version": "2.1.0",
865 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
866 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
867 "dev": true
868 },
869 "node_modules/is-regex": {
870 "version": "1.0.4",
871 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
872 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
873 "dev": true,
874 "dependencies": {
875 "has": "^1.0.1"
876 },
877 "engines": {
878 "node": ">= 0.4"
879 }
880 },
881 "node_modules/is-symbol": {
882 "version": "1.0.2",
883 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
884 "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
885 "dev": true,
886 "dependencies": {
887 "has-symbols": "^1.0.0"
888 },
889 "engines": {
890 "node": ">= 0.4"
891 }
892 },
893 "node_modules/isexe": {
894 "version": "2.0.0",
895 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
896 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
897 "dev": true
898 },
899 "node_modules/js-tokens": {
900 "version": "4.0.0",
901 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
902 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
903 "dev": true
904 },
905 "node_modules/js-yaml": {
906 "version": "3.13.1",
907 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
908 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
909 "dev": true,
910 "dependencies": {
911 "argparse": "^1.0.7",
912 "esprima": "^4.0.0"
913 },
914 "bin": {
915 "js-yaml": "bin/js-yaml.js"
916 }
917 },
918 "node_modules/json-schema-traverse": {
919 "version": "0.4.1",
920 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
921 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
922 "dev": true
923 },
924 "node_modules/json-stable-stringify-without-jsonify": {
925 "version": "1.0.1",
926 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
927 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
928 "dev": true
929 },
930 "node_modules/levn": {
931 "version": "0.3.0",
932 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
933 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
934 "dev": true,
935 "dependencies": {
936 "prelude-ls": "~1.1.2",
937 "type-check": "~0.3.2"
938 },
939 "engines": {
940 "node": ">= 0.8.0"
941 }
942 },
943 "node_modules/lodash": {
944 "version": "4.17.15",
945 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
946 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
947 "dev": true
948 },
949 "node_modules/mimic-fn": {
950 "version": "1.2.0",
951 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
952 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
953 "dev": true,
954 "engines": {
955 "node": ">=4"
956 }
957 },
958 "node_modules/minimatch": {
959 "version": "3.0.4",
960 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
961 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
962 "dev": true,
963 "dependencies": {
964 "brace-expansion": "^1.1.7"
965 },
966 "engines": {
967 "node": "*"
968 }
969 },
970 "node_modules/minimist": {
971 "version": "0.0.8",
972 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
973 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
974 "dev": true
975 },
976 "node_modules/mkdirp": {
977 "version": "0.5.1",
978 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
979 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
980 "dev": true,
981 "dependencies": {
982 "minimist": "0.0.8"
983 },
984 "bin": {
985 "mkdirp": "bin/cmd.js"
986 }
987 },
988 "node_modules/ms": {
989 "version": "2.1.2",
990 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
991 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
992 "dev": true
993 },
994 "node_modules/mute-stream": {
995 "version": "0.0.7",
996 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
997 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
998 "dev": true
999 },
1000 "node_modules/natural-compare": {
1001 "version": "1.4.0",
1002 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1003 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1004 "dev": true
1005 },
1006 "node_modules/nice-try": {
1007 "version": "1.0.5",
1008 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1009 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1010 "dev": true
1011 },
1012 "node_modules/object-inspect": {
1013 "version": "1.6.0",
1014 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
1015 "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
1016 "dev": true
1017 },
1018 "node_modules/once": {
1019 "version": "1.4.0",
1020 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1021 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1022 "dev": true,
1023 "dependencies": {
1024 "wrappy": "1"
1025 }
1026 },
1027 "node_modules/onetime": {
1028 "version": "2.0.1",
1029 "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
1030 "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
1031 "dev": true,
1032 "dependencies": {
1033 "mimic-fn": "^1.0.0"
1034 },
1035 "engines": {
1036 "node": ">=4"
1037 }
1038 },
1039 "node_modules/optionator": {
1040 "version": "0.8.2",
1041 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
1042 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
1043 "dev": true,
1044 "dependencies": {
1045 "deep-is": "~0.1.3",
1046 "fast-levenshtein": "~2.0.4",
1047 "levn": "~0.3.0",
1048 "prelude-ls": "~1.1.2",
1049 "type-check": "~0.3.2",
1050 "wordwrap": "~1.0.0"
1051 },
1052 "engines": {
1053 "node": ">= 0.8.0"
1054 }
1055 },
1056 "node_modules/os-tmpdir": {
1057 "version": "1.0.2",
1058 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1059 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1060 "dev": true,
1061 "engines": {
1062 "node": ">=0.10.0"
1063 }
1064 },
1065 "node_modules/parent-module": {
1066 "version": "1.0.1",
1067 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1068 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1069 "dev": true,
1070 "dependencies": {
1071 "callsites": "^3.0.0"
1072 },
1073 "engines": {
1074 "node": ">=6"
1075 }
1076 },
1077 "node_modules/path-is-absolute": {
1078 "version": "1.0.1",
1079 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1080 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1081 "dev": true,
1082 "engines": {
1083 "node": ">=0.10.0"
1084 }
1085 },
1086 "node_modules/path-key": {
1087 "version": "2.0.1",
1088 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1089 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1090 "dev": true,
1091 "engines": {
1092 "node": ">=4"
1093 }
1094 },
1095 "node_modules/path-parse": {
1096 "version": "1.0.6",
1097 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1098 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1099 "dev": true
1100 },
1101 "node_modules/prelude-ls": {
1102 "version": "1.1.2",
1103 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1104 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1105 "dev": true,
1106 "engines": {
1107 "node": ">= 0.8.0"
1108 }
1109 },
1110 "node_modules/progress": {
1111 "version": "2.0.3",
1112 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1113 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1114 "dev": true,
1115 "engines": {
1116 "node": ">=0.4.0"
1117 }
1118 },
1119 "node_modules/punycode": {
1120 "version": "2.1.1",
1121 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1122 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1123 "dev": true,
1124 "engines": {
1125 "node": ">=6"
1126 }
1127 },
1128 "node_modules/regexpp": {
1129 "version": "2.0.1",
1130 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
1131 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
1132 "dev": true,
1133 "engines": {
1134 "node": ">=6.5.0"
1135 }
1136 },
1137 "node_modules/requirejs": {
1138 "version": "2.3.6",
1139 "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
1140 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
1141 "dev": true,
1142 "bin": {
1143 "r_js": "bin/r.js",
1144 "r.js": "bin/r.js"
1145 },
1146 "engines": {
1147 "node": ">=0.4.0"
1148 }
1149 },
1150 "node_modules/resolve": {
1151 "version": "1.11.1",
1152 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
1153 "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
1154 "dev": true,
1155 "dependencies": {
1156 "path-parse": "^1.0.6"
1157 }
1158 },
1159 "node_modules/resolve-from": {
1160 "version": "4.0.0",
1161 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1162 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1163 "dev": true,
1164 "engines": {
1165 "node": ">=4"
1166 }
1167 },
1168 "node_modules/restore-cursor": {
1169 "version": "2.0.0",
1170 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
1171 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
1172 "dev": true,
1173 "dependencies": {
1174 "onetime": "^2.0.0",
1175 "signal-exit": "^3.0.2"
1176 },
1177 "engines": {
1178 "node": ">=4"
1179 }
1180 },
1181 "node_modules/resumer": {
1182 "version": "0.0.0",
1183 "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
1184 "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
1185 "dev": true,
1186 "dependencies": {
1187 "through": "~2.3.4"
1188 }
1189 },
1190 "node_modules/rimraf": {
1191 "version": "2.6.3",
1192 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1193 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1194 "dev": true,
1195 "dependencies": {
1196 "glob": "^7.1.3"
1197 },
1198 "bin": {
1199 "rimraf": "bin.js"
1200 }
1201 },
1202 "node_modules/run-async": {
1203 "version": "2.3.0",
1204 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
1205 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
1206 "dev": true,
1207 "dependencies": {
1208 "is-promise": "^2.1.0"
1209 },
1210 "engines": {
1211 "node": ">=0.12.0"
1212 }
1213 },
1214 "node_modules/rxjs": {
1215 "version": "6.5.3",
1216 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
1217 "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
1218 "dev": true,
1219 "dependencies": {
1220 "tslib": "^1.9.0"
1221 },
1222 "engines": {
1223 "npm": ">=2.0.0"
1224 }
1225 },
1226 "node_modules/safer-buffer": {
1227 "version": "2.1.2",
1228 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1229 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1230 "dev": true
1231 },
1232 "node_modules/semver": {
1233 "version": "6.3.0",
1234 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1235 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1236 "dev": true,
1237 "bin": {
1238 "semver": "bin/semver.js"
1239 }
1240 },
1241 "node_modules/shebang-command": {
1242 "version": "1.2.0",
1243 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1244 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1245 "dev": true,
1246 "dependencies": {
1247 "shebang-regex": "^1.0.0"
1248 },
1249 "engines": {
1250 "node": ">=0.10.0"
1251 }
1252 },
1253 "node_modules/shebang-regex": {
1254 "version": "1.0.0",
1255 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1256 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1257 "dev": true,
1258 "engines": {
1259 "node": ">=0.10.0"
1260 }
1261 },
1262 "node_modules/signal-exit": {
1263 "version": "3.0.2",
1264 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1265 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1266 "dev": true
1267 },
1268 "node_modules/slice-ansi": {
1269 "version": "2.1.0",
1270 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
1271 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
1272 "dev": true,
1273 "dependencies": {
1274 "ansi-styles": "^3.2.0",
1275 "astral-regex": "^1.0.0",
1276 "is-fullwidth-code-point": "^2.0.0"
1277 },
1278 "engines": {
1279 "node": ">=6"
1280 }
1281 },
1282 "node_modules/sprintf-js": {
1283 "version": "1.0.3",
1284 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1285 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1286 "dev": true
1287 },
1288 "node_modules/string-width": {
1289 "version": "2.1.1",
1290 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1291 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1292 "dev": true,
1293 "dependencies": {
1294 "is-fullwidth-code-point": "^2.0.0",
1295 "strip-ansi": "^4.0.0"
1296 },
1297 "engines": {
1298 "node": ">=4"
1299 }
1300 },
1301 "node_modules/string-width/node_modules/strip-ansi": {
1302 "version": "4.0.0",
1303 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1304 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1305 "dev": true,
1306 "dependencies": {
1307 "ansi-regex": "^3.0.0"
1308 },
1309 "engines": {
1310 "node": ">=4"
1311 }
1312 },
1313 "node_modules/string.prototype.trim": {
1314 "version": "1.1.2",
1315 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
1316 "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
1317 "dev": true,
1318 "dependencies": {
1319 "define-properties": "^1.1.2",
1320 "es-abstract": "^1.5.0",
1321 "function-bind": "^1.0.2"
1322 },
1323 "engines": {
1324 "node": ">= 0.4"
1325 }
1326 },
1327 "node_modules/string.prototype.trimleft": {
1328 "version": "2.1.0",
1329 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
1330 "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
1331 "dev": true,
1332 "dependencies": {
1333 "define-properties": "^1.1.3",
1334 "function-bind": "^1.1.1"
1335 },
1336 "engines": {
1337 "node": ">= 0.4"
1338 }
1339 },
1340 "node_modules/string.prototype.trimright": {
1341 "version": "2.1.0",
1342 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
1343 "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
1344 "dev": true,
1345 "dependencies": {
1346 "define-properties": "^1.1.3",
1347 "function-bind": "^1.1.1"
1348 },
1349 "engines": {
1350 "node": ">= 0.4"
1351 }
1352 },
1353 "node_modules/strip-ansi": {
1354 "version": "5.2.0",
1355 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1356 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1357 "dev": true,
1358 "dependencies": {
1359 "ansi-regex": "^4.1.0"
1360 },
1361 "engines": {
1362 "node": ">=6"
1363 }
1364 },
1365 "node_modules/strip-ansi/node_modules/ansi-regex": {
1366 "version": "4.1.0",
1367 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1368 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1369 "dev": true,
1370 "engines": {
1371 "node": ">=6"
1372 }
1373 },
1374 "node_modules/strip-json-comments": {
1375 "version": "3.0.1",
1376 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
1377 "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
1378 "dev": true,
1379 "engines": {
1380 "node": ">=8"
1381 }
1382 },
1383 "node_modules/supports-color": {
1384 "version": "5.5.0",
1385 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1386 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1387 "dev": true,
1388 "dependencies": {
1389 "has-flag": "^3.0.0"
1390 },
1391 "engines": {
1392 "node": ">=4"
1393 }
1394 },
1395 "node_modules/table": {
1396 "version": "5.4.6",
1397 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1398 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1399 "dev": true,
1400 "dependencies": {
1401 "ajv": "^6.10.2",
1402 "lodash": "^4.17.14",
1403 "slice-ansi": "^2.1.0",
1404 "string-width": "^3.0.0"
1405 },
1406 "engines": {
1407 "node": ">=6.0.0"
1408 }
1409 },
1410 "node_modules/table/node_modules/string-width": {
1411 "version": "3.1.0",
1412 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1413 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1414 "dev": true,
1415 "dependencies": {
1416 "emoji-regex": "^7.0.1",
1417 "is-fullwidth-code-point": "^2.0.0",
1418 "strip-ansi": "^5.1.0"
1419 },
1420 "engines": {
1421 "node": ">=6"
1422 }
1423 },
1424 "node_modules/tape": {
1425 "version": "4.11.0",
1426 "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz",
1427 "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==",
1428 "dev": true,
1429 "dependencies": {
1430 "deep-equal": "~1.0.1",
1431 "defined": "~1.0.0",
1432 "for-each": "~0.3.3",
1433 "function-bind": "~1.1.1",
1434 "glob": "~7.1.4",
1435 "has": "~1.0.3",
1436 "inherits": "~2.0.4",
1437 "minimist": "~1.2.0",
1438 "object-inspect": "~1.6.0",
1439 "resolve": "~1.11.1",
1440 "resumer": "~0.0.0",
1441 "string.prototype.trim": "~1.1.2",
1442 "through": "~2.3.8"
1443 },
1444 "bin": {
1445 "tape": "bin/tape"
1446 }
1447 },
1448 "node_modules/tape/node_modules/deep-equal": {
1449 "version": "1.0.1",
1450 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
1451 "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
1452 "dev": true
1453 },
1454 "node_modules/tape/node_modules/defined": {
1455 "version": "1.0.0",
1456 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
1457 "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
1458 "dev": true
1459 },
1460 "node_modules/tape/node_modules/inherits": {
1461 "version": "2.0.4",
1462 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1463 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1464 "dev": true
1465 },
1466 "node_modules/tape/node_modules/minimist": {
1467 "version": "1.2.0",
1468 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1469 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1470 "dev": true
1471 },
1472 "node_modules/text-table": {
1473 "version": "0.2.0",
1474 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1475 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1476 "dev": true
1477 },
1478 "node_modules/through": {
1479 "version": "2.3.8",
1480 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
1481 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1482 "dev": true
1483 },
1484 "node_modules/tmp": {
1485 "version": "0.0.33",
1486 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1487 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1488 "dev": true,
1489 "dependencies": {
1490 "os-tmpdir": "~1.0.2"
1491 },
1492 "engines": {
1493 "node": ">=0.6.0"
1494 }
1495 },
1496 "node_modules/tslib": {
1497 "version": "1.10.0",
1498 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
1499 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
1500 "dev": true
1501 },
1502 "node_modules/tslint": {
1503 "version": "5.18.0",
1504 "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz",
1505 "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==",
1506 "dev": true,
1507 "dependencies": {
1508 "@babel/code-frame": "^7.0.0",
1509 "builtin-modules": "^1.1.1",
1510 "chalk": "^2.3.0",
1511 "commander": "^2.12.1",
1512 "diff": "^3.2.0",
1513 "glob": "^7.1.1",
1514 "js-yaml": "^3.13.1",
1515 "minimatch": "^3.0.4",
1516 "mkdirp": "^0.5.1",
1517 "resolve": "^1.3.2",
1518 "semver": "^5.3.0",
1519 "tslib": "^1.8.0",
1520 "tsutils": "^2.29.0"
1521 },
1522 "bin": {
1523 "tslint": "bin/tslint"
1524 },
1525 "engines": {
1526 "node": ">=4.8.0"
1527 }
1528 },
1529 "node_modules/tslint/node_modules/semver": {
1530 "version": "5.7.1",
1531 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1532 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1533 "dev": true,
1534 "bin": {
1535 "semver": "bin/semver"
1536 }
1537 },
1538 "node_modules/tsutils": {
1539 "version": "2.29.0",
1540 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
1541 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
1542 "dev": true,
1543 "dependencies": {
1544 "tslib": "^1.8.1"
1545 }
1546 },
1547 "node_modules/type-check": {
1548 "version": "0.3.2",
1549 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1550 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1551 "dev": true,
1552 "dependencies": {
1553 "prelude-ls": "~1.1.2"
1554 },
1555 "engines": {
1556 "node": ">= 0.8.0"
1557 }
1558 },
1559 "node_modules/typescript": {
1560 "version": "4.1.5",
1561 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz",
1562 "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==",
1563 "dev": true,
1564 "bin": {
1565 "tsc": "bin/tsc",
1566 "tsserver": "bin/tsserver"
1567 },
1568 "engines": {
1569 "node": ">=4.2.0"
1570 }
1571 },
1572 "node_modules/uri-js": {
1573 "version": "4.2.2",
1574 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1575 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1576 "dev": true,
1577 "dependencies": {
1578 "punycode": "^2.1.0"
1579 }
1580 },
1581 "node_modules/v8-compile-cache": {
1582 "version": "2.1.0",
1583 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
1584 "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
1585 "dev": true
1586 },
1587 "node_modules/which": {
1588 "version": "1.3.1",
1589 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1590 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1591 "dev": true,
1592 "dependencies": {
1593 "isexe": "^2.0.0"
1594 },
1595 "bin": {
1596 "which": "bin/which"
1597 }
1598 },
1599 "node_modules/wordwrap": {
1600 "version": "1.0.0",
1601 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1602 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
1603 "dev": true
1604 },
1605 "node_modules/wrappy": {
1606 "version": "1.0.2",
1607 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1608 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1609 "dev": true
1610 },
1611 "node_modules/write": {
1612 "version": "1.0.3",
1613 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1614 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1615 "dev": true,
1616 "dependencies": {
1617 "mkdirp": "^0.5.1"
1618 },
1619 "engines": {
1620 "node": ">=4"
1621 }
1622 }
1623 },
6 "dependencies": {
1624 "dependencies": {
7 "@babel/code-frame": {
1625 "@babel/code-frame": {
8 "version": "7.5.5",
1626 "version": "7.5.5",
9 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
1627 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
10 "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
1628 "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
11 "dev": true,
1629 "dev": true,
12 "requires": {
1630 "requires": {
13 "@babel/highlight": "^7.0.0"
1631 "@babel/highlight": "^7.0.0"
14 }
1632 }
15 },
1633 },
16 "@babel/highlight": {
1634 "@babel/highlight": {
17 "version": "7.5.0",
1635 "version": "7.5.0",
18 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
1636 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
19 "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
1637 "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
20 "dev": true,
1638 "dev": true,
21 "requires": {
1639 "requires": {
22 "chalk": "^2.0.0",
1640 "chalk": "^2.0.0",
23 "esutils": "^2.0.2",
1641 "esutils": "^2.0.2",
24 "js-tokens": "^4.0.0"
1642 "js-tokens": "^4.0.0"
25 }
1643 }
26 },
1644 },
27 "@types/chai": {
1645 "@types/chai": {
28 "version": "4.2.3",
1646 "version": "4.2.3",
29 "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.3.tgz",
1647 "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.3.tgz",
30 "integrity": "sha512-VRw2xEGbll3ZiTQ4J02/hUjNqZoue1bMhoo2dgM2LXjDdyaq4q80HgBDHwpI0/VKlo4Eg+BavyQMv/NYgTetzA==",
1648 "integrity": "sha512-VRw2xEGbll3ZiTQ4J02/hUjNqZoue1bMhoo2dgM2LXjDdyaq4q80HgBDHwpI0/VKlo4Eg+BavyQMv/NYgTetzA==",
31 "dev": true
1649 "dev": true
32 },
1650 },
33 "@types/node": {
1651 "@types/node": {
34 "version": "8.10.55",
1652 "version": "8.10.55",
35 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.55.tgz",
1653 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.55.tgz",
36 "integrity": "sha512-iZeh1EgupfmAAOASk580R1SL5lWF3CsBVgVH0395qyNF8fhO16xy1UwAav2PdGxIIsYRn7RzJgMGjdsvam6YYg==",
1654 "integrity": "sha512-iZeh1EgupfmAAOASk580R1SL5lWF3CsBVgVH0395qyNF8fhO16xy1UwAav2PdGxIIsYRn7RzJgMGjdsvam6YYg==",
37 "dev": true
1655 "dev": true
38 },
1656 },
39 "@types/requirejs": {
1657 "@types/requirejs": {
40 "version": "2.1.31",
1658 "version": "2.1.31",
41 "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz",
1659 "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz",
42 "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==",
1660 "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==",
43 "dev": true
1661 "dev": true
44 },
1662 },
45 "@types/tape": {
1663 "@types/tape": {
46 "version": "4.2.33",
1664 "version": "4.2.33",
47 "resolved": "https://registry.npmjs.org/@types/tape/-/tape-4.2.33.tgz",
1665 "resolved": "https://registry.npmjs.org/@types/tape/-/tape-4.2.33.tgz",
48 "integrity": "sha512-ltfyuY5BIkYlGuQfwqzTDT8f0q8Z5DGppvUnWGs39oqDmMd6/UWhNpX3ZMh/VYvfxs3rFGHMrLC/eGRdLiDGuw==",
1666 "integrity": "sha512-ltfyuY5BIkYlGuQfwqzTDT8f0q8Z5DGppvUnWGs39oqDmMd6/UWhNpX3ZMh/VYvfxs3rFGHMrLC/eGRdLiDGuw==",
49 "dev": true,
1667 "dev": true,
50 "requires": {
1668 "requires": {
51 "@types/node": "*"
1669 "@types/node": "*"
52 }
1670 }
53 },
1671 },
54 "acorn": {
1672 "acorn": {
55 "version": "7.1.0",
1673 "version": "7.1.0",
56 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
1674 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
57 "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
1675 "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
58 "dev": true
1676 "dev": true
59 },
1677 },
60 "acorn-jsx": {
1678 "acorn-jsx": {
61 "version": "5.1.0",
1679 "version": "5.1.0",
62 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
1680 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
63 "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
1681 "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
64 "dev": true
1682 "dev": true
65 },
1683 },
66 "ajv": {
1684 "ajv": {
67 "version": "6.10.2",
1685 "version": "6.10.2",
68 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
1686 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
69 "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
1687 "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
70 "dev": true,
1688 "dev": true,
71 "requires": {
1689 "requires": {
72 "fast-deep-equal": "^2.0.1",
1690 "fast-deep-equal": "^2.0.1",
73 "fast-json-stable-stringify": "^2.0.0",
1691 "fast-json-stable-stringify": "^2.0.0",
74 "json-schema-traverse": "^0.4.1",
1692 "json-schema-traverse": "^0.4.1",
75 "uri-js": "^4.2.2"
1693 "uri-js": "^4.2.2"
76 }
1694 }
77 },
1695 },
78 "ansi-escapes": {
1696 "ansi-escapes": {
79 "version": "3.2.0",
1697 "version": "3.2.0",
80 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
1698 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
81 "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
1699 "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
82 "dev": true
1700 "dev": true
83 },
1701 },
84 "ansi-regex": {
1702 "ansi-regex": {
85 "version": "3.0.0",
1703 "version": "3.0.0",
86 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1704 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
87 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1705 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
88 "dev": true
1706 "dev": true
89 },
1707 },
90 "ansi-styles": {
1708 "ansi-styles": {
91 "version": "3.2.1",
1709 "version": "3.2.1",
92 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1710 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
93 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1711 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
94 "dev": true,
1712 "dev": true,
95 "requires": {
1713 "requires": {
96 "color-convert": "^1.9.0"
1714 "color-convert": "^1.9.0"
97 }
1715 }
98 },
1716 },
99 "argparse": {
1717 "argparse": {
100 "version": "1.0.10",
1718 "version": "1.0.10",
101 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1719 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
102 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1720 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
103 "dev": true,
1721 "dev": true,
104 "requires": {
1722 "requires": {
105 "sprintf-js": "~1.0.2"
1723 "sprintf-js": "~1.0.2"
106 }
1724 }
107 },
1725 },
108 "astral-regex": {
1726 "astral-regex": {
109 "version": "1.0.0",
1727 "version": "1.0.0",
110 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
1728 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
111 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
1729 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
112 "dev": true
1730 "dev": true
113 },
1731 },
114 "balanced-match": {
1732 "balanced-match": {
115 "version": "1.0.0",
1733 "version": "1.0.0",
116 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1734 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
117 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1735 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
118 "dev": true
1736 "dev": true
119 },
1737 },
120 "brace-expansion": {
1738 "brace-expansion": {
121 "version": "1.1.11",
1739 "version": "1.1.11",
122 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1740 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
123 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1741 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
124 "dev": true,
1742 "dev": true,
125 "requires": {
1743 "requires": {
126 "balanced-match": "^1.0.0",
1744 "balanced-match": "^1.0.0",
127 "concat-map": "0.0.1"
1745 "concat-map": "0.0.1"
128 }
1746 }
129 },
1747 },
130 "builtin-modules": {
1748 "builtin-modules": {
131 "version": "1.1.1",
1749 "version": "1.1.1",
132 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
1750 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
133 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
1751 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
134 "dev": true
1752 "dev": true
135 },
1753 },
136 "callsites": {
1754 "callsites": {
137 "version": "3.1.0",
1755 "version": "3.1.0",
138 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1756 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
139 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1757 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
140 "dev": true
1758 "dev": true
141 },
1759 },
142 "chalk": {
1760 "chalk": {
143 "version": "2.4.2",
1761 "version": "2.4.2",
144 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1762 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
145 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1763 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
146 "dev": true,
1764 "dev": true,
147 "requires": {
1765 "requires": {
148 "ansi-styles": "^3.2.1",
1766 "ansi-styles": "^3.2.1",
149 "escape-string-regexp": "^1.0.5",
1767 "escape-string-regexp": "^1.0.5",
150 "supports-color": "^5.3.0"
1768 "supports-color": "^5.3.0"
151 }
1769 }
152 },
1770 },
153 "chardet": {
1771 "chardet": {
154 "version": "0.7.0",
1772 "version": "0.7.0",
155 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
1773 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
156 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
1774 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
157 "dev": true
1775 "dev": true
158 },
1776 },
159 "cli-cursor": {
1777 "cli-cursor": {
160 "version": "2.1.0",
1778 "version": "2.1.0",
161 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
1779 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
162 "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
1780 "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
163 "dev": true,
1781 "dev": true,
164 "requires": {
1782 "requires": {
165 "restore-cursor": "^2.0.0"
1783 "restore-cursor": "^2.0.0"
166 }
1784 }
167 },
1785 },
168 "cli-width": {
1786 "cli-width": {
169 "version": "2.2.0",
1787 "version": "2.2.0",
170 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
1788 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
171 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
1789 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
172 "dev": true
1790 "dev": true
173 },
1791 },
174 "color-convert": {
1792 "color-convert": {
175 "version": "1.9.3",
1793 "version": "1.9.3",
176 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1794 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
177 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1795 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
178 "dev": true,
1796 "dev": true,
179 "requires": {
1797 "requires": {
180 "color-name": "1.1.3"
1798 "color-name": "1.1.3"
181 }
1799 }
182 },
1800 },
183 "color-name": {
1801 "color-name": {
184 "version": "1.1.3",
1802 "version": "1.1.3",
185 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1803 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
186 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1804 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
187 "dev": true
1805 "dev": true
188 },
1806 },
189 "commander": {
1807 "commander": {
190 "version": "2.20.3",
1808 "version": "2.20.3",
191 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1809 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
192 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1810 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
193 "dev": true
1811 "dev": true
194 },
1812 },
195 "concat-map": {
1813 "concat-map": {
196 "version": "0.0.1",
1814 "version": "0.0.1",
197 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1815 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
198 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1816 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
199 "dev": true
1817 "dev": true
200 },
1818 },
201 "cross-spawn": {
1819 "cross-spawn": {
202 "version": "6.0.5",
1820 "version": "6.0.5",
203 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1821 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
204 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1822 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
205 "dev": true,
1823 "dev": true,
206 "requires": {
1824 "requires": {
207 "nice-try": "^1.0.4",
1825 "nice-try": "^1.0.4",
208 "path-key": "^2.0.1",
1826 "path-key": "^2.0.1",
209 "semver": "^5.5.0",
1827 "semver": "^5.5.0",
210 "shebang-command": "^1.2.0",
1828 "shebang-command": "^1.2.0",
211 "which": "^1.2.9"
1829 "which": "^1.2.9"
212 },
1830 },
213 "dependencies": {
1831 "dependencies": {
214 "semver": {
1832 "semver": {
215 "version": "5.7.1",
1833 "version": "5.7.1",
216 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1834 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
217 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1835 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
218 "dev": true
1836 "dev": true
219 }
1837 }
220 }
1838 }
221 },
1839 },
222 "debug": {
1840 "debug": {
223 "version": "4.1.1",
1841 "version": "4.1.1",
224 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
1842 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
225 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
1843 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
226 "dev": true,
1844 "dev": true,
227 "requires": {
1845 "requires": {
228 "ms": "^2.1.1"
1846 "ms": "^2.1.1"
229 }
1847 }
230 },
1848 },
231 "deep-is": {
1849 "deep-is": {
232 "version": "0.1.3",
1850 "version": "0.1.3",
233 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
1851 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
234 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
1852 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
235 "dev": true
1853 "dev": true
236 },
1854 },
237 "define-properties": {
1855 "define-properties": {
238 "version": "1.1.3",
1856 "version": "1.1.3",
239 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1857 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
240 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1858 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
241 "dev": true,
1859 "dev": true,
242 "requires": {
1860 "requires": {
243 "object-keys": "^1.0.12"
1861 "object-keys": "^1.0.12"
244 },
1862 },
245 "dependencies": {
1863 "dependencies": {
246 "object-keys": {
1864 "object-keys": {
247 "version": "1.1.1",
1865 "version": "1.1.1",
248 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1866 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
249 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1867 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
250 "dev": true
1868 "dev": true
251 }
1869 }
252 }
1870 }
253 },
1871 },
254 "diff": {
1872 "diff": {
255 "version": "3.5.0",
1873 "version": "3.5.0",
256 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
1874 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
257 "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
1875 "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
258 "dev": true
1876 "dev": true
259 },
1877 },
260 "doctrine": {
1878 "doctrine": {
261 "version": "3.0.0",
1879 "version": "3.0.0",
262 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1880 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
263 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1881 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
264 "dev": true,
1882 "dev": true,
265 "requires": {
1883 "requires": {
266 "esutils": "^2.0.2"
1884 "esutils": "^2.0.2"
267 }
1885 }
268 },
1886 },
269 "dojo": {
1887 "dojo": {
270 "version": "1.10.10",
1888 "version": "1.10.10",
271 "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.10.10.tgz",
1889 "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.10.10.tgz",
272 "integrity": "sha512-kg79C8Yyd317cG3MgXGMH4AeQ8TgNr8H/PpA3BRms7DTfl0CJCRAgGE/C6d9Nw55s1ID/fEsfS+P3bj1s7dWgA==",
1890 "integrity": "sha512-kg79C8Yyd317cG3MgXGMH4AeQ8TgNr8H/PpA3BRms7DTfl0CJCRAgGE/C6d9Nw55s1ID/fEsfS+P3bj1s7dWgA==",
273 "dev": true
1891 "dev": true
274 },
1892 },
275 "dojo-typings": {
1893 "dojo-typings": {
276 "version": "1.11.9",
1894 "version": "1.11.9",
277 "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
1895 "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
278 "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
1896 "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
279 "dev": true,
1897 "dev": true,
280 "requires": {
1898 "requires": {
281 "@types/chai": "^4.0.4"
1899 "@types/chai": "^4.0.4"
282 }
1900 }
283 },
1901 },
284 "emoji-regex": {
1902 "emoji-regex": {
285 "version": "7.0.3",
1903 "version": "7.0.3",
286 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
1904 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
287 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
1905 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
288 "dev": true
1906 "dev": true
289 },
1907 },
290 "es-abstract": {
1908 "es-abstract": {
291 "version": "1.15.0",
1909 "version": "1.15.0",
292 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
1910 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
293 "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
1911 "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
294 "dev": true,
1912 "dev": true,
295 "requires": {
1913 "requires": {
296 "es-to-primitive": "^1.2.0",
1914 "es-to-primitive": "^1.2.0",
297 "function-bind": "^1.1.1",
1915 "function-bind": "^1.1.1",
298 "has": "^1.0.3",
1916 "has": "^1.0.3",
299 "has-symbols": "^1.0.0",
1917 "has-symbols": "^1.0.0",
300 "is-callable": "^1.1.4",
1918 "is-callable": "^1.1.4",
301 "is-regex": "^1.0.4",
1919 "is-regex": "^1.0.4",
302 "object-inspect": "^1.6.0",
1920 "object-inspect": "^1.6.0",
303 "object-keys": "^1.1.1",
1921 "object-keys": "^1.1.1",
304 "string.prototype.trimleft": "^2.1.0",
1922 "string.prototype.trimleft": "^2.1.0",
305 "string.prototype.trimright": "^2.1.0"
1923 "string.prototype.trimright": "^2.1.0"
306 },
1924 },
307 "dependencies": {
1925 "dependencies": {
308 "object-keys": {
1926 "object-keys": {
309 "version": "1.1.1",
1927 "version": "1.1.1",
310 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1928 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
311 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1929 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
312 "dev": true
1930 "dev": true
313 }
1931 }
314 }
1932 }
315 },
1933 },
316 "es-to-primitive": {
1934 "es-to-primitive": {
317 "version": "1.2.0",
1935 "version": "1.2.0",
318 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
1936 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
319 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
1937 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
320 "dev": true,
1938 "dev": true,
321 "requires": {
1939 "requires": {
322 "is-callable": "^1.1.4",
1940 "is-callable": "^1.1.4",
323 "is-date-object": "^1.0.1",
1941 "is-date-object": "^1.0.1",
324 "is-symbol": "^1.0.2"
1942 "is-symbol": "^1.0.2"
325 }
1943 }
326 },
1944 },
327 "escape-string-regexp": {
1945 "escape-string-regexp": {
328 "version": "1.0.5",
1946 "version": "1.0.5",
329 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1947 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
330 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1948 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
331 "dev": true
1949 "dev": true
332 },
1950 },
333 "eslint": {
1951 "eslint": {
334 "version": "6.1.0",
1952 "version": "6.1.0",
335 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz",
1953 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz",
336 "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==",
1954 "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==",
337 "dev": true,
1955 "dev": true,
338 "requires": {
1956 "requires": {
339 "@babel/code-frame": "^7.0.0",
1957 "@babel/code-frame": "^7.0.0",
340 "ajv": "^6.10.0",
1958 "ajv": "^6.10.0",
341 "chalk": "^2.1.0",
1959 "chalk": "^2.1.0",
342 "cross-spawn": "^6.0.5",
1960 "cross-spawn": "^6.0.5",
343 "debug": "^4.0.1",
1961 "debug": "^4.0.1",
344 "doctrine": "^3.0.0",
1962 "doctrine": "^3.0.0",
345 "eslint-scope": "^5.0.0",
1963 "eslint-scope": "^5.0.0",
346 "eslint-utils": "^1.3.1",
1964 "eslint-utils": "^1.3.1",
347 "eslint-visitor-keys": "^1.0.0",
1965 "eslint-visitor-keys": "^1.0.0",
348 "espree": "^6.0.0",
1966 "espree": "^6.0.0",
349 "esquery": "^1.0.1",
1967 "esquery": "^1.0.1",
350 "esutils": "^2.0.2",
1968 "esutils": "^2.0.2",
351 "file-entry-cache": "^5.0.1",
1969 "file-entry-cache": "^5.0.1",
352 "functional-red-black-tree": "^1.0.1",
1970 "functional-red-black-tree": "^1.0.1",
353 "glob-parent": "^5.0.0",
1971 "glob-parent": "^5.0.0",
354 "globals": "^11.7.0",
1972 "globals": "^11.7.0",
355 "ignore": "^4.0.6",
1973 "ignore": "^4.0.6",
356 "import-fresh": "^3.0.0",
1974 "import-fresh": "^3.0.0",
357 "imurmurhash": "^0.1.4",
1975 "imurmurhash": "^0.1.4",
358 "inquirer": "^6.4.1",
1976 "inquirer": "^6.4.1",
359 "is-glob": "^4.0.0",
1977 "is-glob": "^4.0.0",
360 "js-yaml": "^3.13.1",
1978 "js-yaml": "^3.13.1",
361 "json-stable-stringify-without-jsonify": "^1.0.1",
1979 "json-stable-stringify-without-jsonify": "^1.0.1",
362 "levn": "^0.3.0",
1980 "levn": "^0.3.0",
363 "lodash": "^4.17.14",
1981 "lodash": "^4.17.14",
364 "minimatch": "^3.0.4",
1982 "minimatch": "^3.0.4",
365 "mkdirp": "^0.5.1",
1983 "mkdirp": "^0.5.1",
366 "natural-compare": "^1.4.0",
1984 "natural-compare": "^1.4.0",
367 "optionator": "^0.8.2",
1985 "optionator": "^0.8.2",
368 "progress": "^2.0.0",
1986 "progress": "^2.0.0",
369 "regexpp": "^2.0.1",
1987 "regexpp": "^2.0.1",
370 "semver": "^6.1.2",
1988 "semver": "^6.1.2",
371 "strip-ansi": "^5.2.0",
1989 "strip-ansi": "^5.2.0",
372 "strip-json-comments": "^3.0.1",
1990 "strip-json-comments": "^3.0.1",
373 "table": "^5.2.3",
1991 "table": "^5.2.3",
374 "text-table": "^0.2.0",
1992 "text-table": "^0.2.0",
375 "v8-compile-cache": "^2.0.3"
1993 "v8-compile-cache": "^2.0.3"
376 }
1994 }
377 },
1995 },
378 "eslint-scope": {
1996 "eslint-scope": {
379 "version": "5.0.0",
1997 "version": "5.0.0",
380 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
1998 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
381 "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
1999 "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
382 "dev": true,
2000 "dev": true,
383 "requires": {
2001 "requires": {
384 "esrecurse": "^4.1.0",
2002 "esrecurse": "^4.1.0",
385 "estraverse": "^4.1.1"
2003 "estraverse": "^4.1.1"
386 }
2004 }
387 },
2005 },
388 "eslint-utils": {
2006 "eslint-utils": {
389 "version": "1.4.2",
2007 "version": "1.4.2",
390 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
2008 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
391 "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
2009 "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
392 "dev": true,
2010 "dev": true,
393 "requires": {
2011 "requires": {
394 "eslint-visitor-keys": "^1.0.0"
2012 "eslint-visitor-keys": "^1.0.0"
395 }
2013 }
396 },
2014 },
397 "eslint-visitor-keys": {
2015 "eslint-visitor-keys": {
398 "version": "1.1.0",
2016 "version": "1.1.0",
399 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
2017 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
400 "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
2018 "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
401 "dev": true
2019 "dev": true
402 },
2020 },
403 "espree": {
2021 "espree": {
404 "version": "6.1.1",
2022 "version": "6.1.1",
405 "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz",
2023 "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz",
406 "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==",
2024 "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==",
407 "dev": true,
2025 "dev": true,
408 "requires": {
2026 "requires": {
409 "acorn": "^7.0.0",
2027 "acorn": "^7.0.0",
410 "acorn-jsx": "^5.0.2",
2028 "acorn-jsx": "^5.0.2",
411 "eslint-visitor-keys": "^1.1.0"
2029 "eslint-visitor-keys": "^1.1.0"
412 }
2030 }
413 },
2031 },
414 "esprima": {
2032 "esprima": {
415 "version": "4.0.1",
2033 "version": "4.0.1",
416 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
2034 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
417 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
2035 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
418 "dev": true
2036 "dev": true
419 },
2037 },
420 "esquery": {
2038 "esquery": {
421 "version": "1.0.1",
2039 "version": "1.0.1",
422 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
2040 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
423 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
2041 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
424 "dev": true,
2042 "dev": true,
425 "requires": {
2043 "requires": {
426 "estraverse": "^4.0.0"
2044 "estraverse": "^4.0.0"
427 }
2045 }
428 },
2046 },
429 "esrecurse": {
2047 "esrecurse": {
430 "version": "4.2.1",
2048 "version": "4.2.1",
431 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
2049 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
432 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
2050 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
433 "dev": true,
2051 "dev": true,
434 "requires": {
2052 "requires": {
435 "estraverse": "^4.1.0"
2053 "estraverse": "^4.1.0"
436 }
2054 }
437 },
2055 },
438 "estraverse": {
2056 "estraverse": {
439 "version": "4.3.0",
2057 "version": "4.3.0",
440 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
2058 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
441 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
2059 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
442 "dev": true
2060 "dev": true
443 },
2061 },
444 "esutils": {
2062 "esutils": {
445 "version": "2.0.3",
2063 "version": "2.0.3",
446 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
2064 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
447 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
2065 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
448 "dev": true
2066 "dev": true
449 },
2067 },
450 "external-editor": {
2068 "external-editor": {
451 "version": "3.1.0",
2069 "version": "3.1.0",
452 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
2070 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
453 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
2071 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
454 "dev": true,
2072 "dev": true,
455 "requires": {
2073 "requires": {
456 "chardet": "^0.7.0",
2074 "chardet": "^0.7.0",
457 "iconv-lite": "^0.4.24",
2075 "iconv-lite": "^0.4.24",
458 "tmp": "^0.0.33"
2076 "tmp": "^0.0.33"
459 }
2077 }
460 },
2078 },
461 "fast-deep-equal": {
2079 "fast-deep-equal": {
462 "version": "2.0.1",
2080 "version": "2.0.1",
463 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
2081 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
464 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
2082 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
465 "dev": true
2083 "dev": true
466 },
2084 },
467 "fast-json-stable-stringify": {
2085 "fast-json-stable-stringify": {
468 "version": "2.0.0",
2086 "version": "2.0.0",
469 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
2087 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
470 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
2088 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
471 "dev": true
2089 "dev": true
472 },
2090 },
473 "fast-levenshtein": {
2091 "fast-levenshtein": {
474 "version": "2.0.6",
2092 "version": "2.0.6",
475 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2093 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
476 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
2094 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
477 "dev": true
2095 "dev": true
478 },
2096 },
479 "figures": {
2097 "figures": {
480 "version": "2.0.0",
2098 "version": "2.0.0",
481 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
2099 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
482 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
2100 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
483 "dev": true,
2101 "dev": true,
484 "requires": {
2102 "requires": {
485 "escape-string-regexp": "^1.0.5"
2103 "escape-string-regexp": "^1.0.5"
486 }
2104 }
487 },
2105 },
488 "file-entry-cache": {
2106 "file-entry-cache": {
489 "version": "5.0.1",
2107 "version": "5.0.1",
490 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
2108 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
491 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
2109 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
492 "dev": true,
2110 "dev": true,
493 "requires": {
2111 "requires": {
494 "flat-cache": "^2.0.1"
2112 "flat-cache": "^2.0.1"
495 }
2113 }
496 },
2114 },
497 "flat-cache": {
2115 "flat-cache": {
498 "version": "2.0.1",
2116 "version": "2.0.1",
499 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
2117 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
500 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
2118 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
501 "dev": true,
2119 "dev": true,
502 "requires": {
2120 "requires": {
503 "flatted": "^2.0.0",
2121 "flatted": "^2.0.0",
504 "rimraf": "2.6.3",
2122 "rimraf": "2.6.3",
505 "write": "1.0.3"
2123 "write": "1.0.3"
506 }
2124 }
507 },
2125 },
508 "flatted": {
2126 "flatted": {
509 "version": "2.0.1",
2127 "version": "2.0.1",
510 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
2128 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
511 "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
2129 "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
512 "dev": true
2130 "dev": true
513 },
2131 },
514 "for-each": {
2132 "for-each": {
515 "version": "0.3.3",
2133 "version": "0.3.3",
516 "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
2134 "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
517 "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
2135 "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
518 "dev": true,
2136 "dev": true,
519 "requires": {
2137 "requires": {
520 "is-callable": "^1.1.3"
2138 "is-callable": "^1.1.3"
521 }
2139 }
522 },
2140 },
523 "fs.realpath": {
2141 "fs.realpath": {
524 "version": "1.0.0",
2142 "version": "1.0.0",
525 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2143 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
526 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2144 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
527 "dev": true
2145 "dev": true
528 },
2146 },
529 "function-bind": {
2147 "function-bind": {
530 "version": "1.1.1",
2148 "version": "1.1.1",
531 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2149 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
532 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2150 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
533 "dev": true
2151 "dev": true
534 },
2152 },
535 "functional-red-black-tree": {
2153 "functional-red-black-tree": {
536 "version": "1.0.1",
2154 "version": "1.0.1",
537 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
2155 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
538 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
2156 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
539 "dev": true
2157 "dev": true
540 },
2158 },
541 "glob": {
2159 "glob": {
542 "version": "7.1.4",
2160 "version": "7.1.4",
543 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
2161 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
544 "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
2162 "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
545 "dev": true,
2163 "dev": true,
546 "requires": {
2164 "requires": {
547 "fs.realpath": "^1.0.0",
2165 "fs.realpath": "^1.0.0",
548 "inflight": "^1.0.4",
2166 "inflight": "^1.0.4",
549 "inherits": "2",
2167 "inherits": "2",
550 "minimatch": "^3.0.4",
2168 "minimatch": "^3.0.4",
551 "once": "^1.3.0",
2169 "once": "^1.3.0",
552 "path-is-absolute": "^1.0.0"
2170 "path-is-absolute": "^1.0.0"
553 }
2171 }
554 },
2172 },
555 "glob-parent": {
2173 "glob-parent": {
556 "version": "5.1.0",
2174 "version": "5.1.0",
557 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
2175 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
558 "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
2176 "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
559 "dev": true,
2177 "dev": true,
560 "requires": {
2178 "requires": {
561 "is-glob": "^4.0.1"
2179 "is-glob": "^4.0.1"
562 }
2180 }
563 },
2181 },
564 "globals": {
2182 "globals": {
565 "version": "11.12.0",
2183 "version": "11.12.0",
566 "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2184 "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
567 "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2185 "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
568 "dev": true
2186 "dev": true
569 },
2187 },
570 "has": {
2188 "has": {
571 "version": "1.0.3",
2189 "version": "1.0.3",
572 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
2190 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
573 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
2191 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
574 "dev": true,
2192 "dev": true,
575 "requires": {
2193 "requires": {
576 "function-bind": "^1.1.1"
2194 "function-bind": "^1.1.1"
577 }
2195 }
578 },
2196 },
579 "has-flag": {
2197 "has-flag": {
580 "version": "3.0.0",
2198 "version": "3.0.0",
581 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2199 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
582 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2200 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
583 "dev": true
2201 "dev": true
584 },
2202 },
585 "has-symbols": {
2203 "has-symbols": {
586 "version": "1.0.0",
2204 "version": "1.0.0",
587 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
2205 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
588 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
2206 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
589 "dev": true
2207 "dev": true
590 },
2208 },
591 "iconv-lite": {
2209 "iconv-lite": {
592 "version": "0.4.24",
2210 "version": "0.4.24",
593 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2211 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
594 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2212 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
595 "dev": true,
2213 "dev": true,
596 "requires": {
2214 "requires": {
597 "safer-buffer": ">= 2.1.2 < 3"
2215 "safer-buffer": ">= 2.1.2 < 3"
598 }
2216 }
599 },
2217 },
600 "ignore": {
2218 "ignore": {
601 "version": "4.0.6",
2219 "version": "4.0.6",
602 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
2220 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
603 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
2221 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
604 "dev": true
2222 "dev": true
605 },
2223 },
606 "import-fresh": {
2224 "import-fresh": {
607 "version": "3.1.0",
2225 "version": "3.1.0",
608 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
2226 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
609 "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
2227 "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
610 "dev": true,
2228 "dev": true,
611 "requires": {
2229 "requires": {
612 "parent-module": "^1.0.0",
2230 "parent-module": "^1.0.0",
613 "resolve-from": "^4.0.0"
2231 "resolve-from": "^4.0.0"
614 }
2232 }
615 },
2233 },
616 "imurmurhash": {
2234 "imurmurhash": {
617 "version": "0.1.4",
2235 "version": "0.1.4",
618 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2236 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
619 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
2237 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
620 "dev": true
2238 "dev": true
621 },
2239 },
622 "inflight": {
2240 "inflight": {
623 "version": "1.0.6",
2241 "version": "1.0.6",
624 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2242 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
625 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2243 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
626 "dev": true,
2244 "dev": true,
627 "requires": {
2245 "requires": {
628 "once": "^1.3.0",
2246 "once": "^1.3.0",
629 "wrappy": "1"
2247 "wrappy": "1"
630 }
2248 }
631 },
2249 },
632 "inherits": {
2250 "inherits": {
633 "version": "2.0.3",
2251 "version": "2.0.3",
634 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2252 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
635 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2253 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
636 "dev": true
2254 "dev": true
637 },
2255 },
638 "inquirer": {
2256 "inquirer": {
639 "version": "6.5.2",
2257 "version": "6.5.2",
640 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
2258 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
641 "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
2259 "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
642 "dev": true,
2260 "dev": true,
643 "requires": {
2261 "requires": {
644 "ansi-escapes": "^3.2.0",
2262 "ansi-escapes": "^3.2.0",
645 "chalk": "^2.4.2",
2263 "chalk": "^2.4.2",
646 "cli-cursor": "^2.1.0",
2264 "cli-cursor": "^2.1.0",
647 "cli-width": "^2.0.0",
2265 "cli-width": "^2.0.0",
648 "external-editor": "^3.0.3",
2266 "external-editor": "^3.0.3",
649 "figures": "^2.0.0",
2267 "figures": "^2.0.0",
650 "lodash": "^4.17.12",
2268 "lodash": "^4.17.12",
651 "mute-stream": "0.0.7",
2269 "mute-stream": "0.0.7",
652 "run-async": "^2.2.0",
2270 "run-async": "^2.2.0",
653 "rxjs": "^6.4.0",
2271 "rxjs": "^6.4.0",
654 "string-width": "^2.1.0",
2272 "string-width": "^2.1.0",
655 "strip-ansi": "^5.1.0",
2273 "strip-ansi": "^5.1.0",
656 "through": "^2.3.6"
2274 "through": "^2.3.6"
657 }
2275 }
658 },
2276 },
659 "is-callable": {
2277 "is-callable": {
660 "version": "1.1.4",
2278 "version": "1.1.4",
661 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
2279 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
662 "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
2280 "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
663 "dev": true
2281 "dev": true
664 },
2282 },
665 "is-date-object": {
2283 "is-date-object": {
666 "version": "1.0.1",
2284 "version": "1.0.1",
667 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
2285 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
668 "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
2286 "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
669 "dev": true
2287 "dev": true
670 },
2288 },
671 "is-extglob": {
2289 "is-extglob": {
672 "version": "2.1.1",
2290 "version": "2.1.1",
673 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2291 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
674 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2292 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
675 "dev": true
2293 "dev": true
676 },
2294 },
677 "is-fullwidth-code-point": {
2295 "is-fullwidth-code-point": {
678 "version": "2.0.0",
2296 "version": "2.0.0",
679 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2297 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
680 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2298 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
681 "dev": true
2299 "dev": true
682 },
2300 },
683 "is-glob": {
2301 "is-glob": {
684 "version": "4.0.1",
2302 "version": "4.0.1",
685 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
2303 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
686 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
2304 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
687 "dev": true,
2305 "dev": true,
688 "requires": {
2306 "requires": {
689 "is-extglob": "^2.1.1"
2307 "is-extglob": "^2.1.1"
690 }
2308 }
691 },
2309 },
692 "is-promise": {
2310 "is-promise": {
693 "version": "2.1.0",
2311 "version": "2.1.0",
694 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
2312 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
695 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
2313 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
696 "dev": true
2314 "dev": true
697 },
2315 },
698 "is-regex": {
2316 "is-regex": {
699 "version": "1.0.4",
2317 "version": "1.0.4",
700 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
2318 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
701 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
2319 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
702 "dev": true,
2320 "dev": true,
703 "requires": {
2321 "requires": {
704 "has": "^1.0.1"
2322 "has": "^1.0.1"
705 }
2323 }
706 },
2324 },
707 "is-symbol": {
2325 "is-symbol": {
708 "version": "1.0.2",
2326 "version": "1.0.2",
709 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
2327 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
710 "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
2328 "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
711 "dev": true,
2329 "dev": true,
712 "requires": {
2330 "requires": {
713 "has-symbols": "^1.0.0"
2331 "has-symbols": "^1.0.0"
714 }
2332 }
715 },
2333 },
716 "isexe": {
2334 "isexe": {
717 "version": "2.0.0",
2335 "version": "2.0.0",
718 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2336 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
719 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2337 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
720 "dev": true
2338 "dev": true
721 },
2339 },
722 "js-tokens": {
2340 "js-tokens": {
723 "version": "4.0.0",
2341 "version": "4.0.0",
724 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2342 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
725 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
2343 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
726 "dev": true
2344 "dev": true
727 },
2345 },
728 "js-yaml": {
2346 "js-yaml": {
729 "version": "3.13.1",
2347 "version": "3.13.1",
730 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
2348 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
731 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
2349 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
732 "dev": true,
2350 "dev": true,
733 "requires": {
2351 "requires": {
734 "argparse": "^1.0.7",
2352 "argparse": "^1.0.7",
735 "esprima": "^4.0.0"
2353 "esprima": "^4.0.0"
736 }
2354 }
737 },
2355 },
738 "json-schema-traverse": {
2356 "json-schema-traverse": {
739 "version": "0.4.1",
2357 "version": "0.4.1",
740 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2358 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
741 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2359 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
742 "dev": true
2360 "dev": true
743 },
2361 },
744 "json-stable-stringify-without-jsonify": {
2362 "json-stable-stringify-without-jsonify": {
745 "version": "1.0.1",
2363 "version": "1.0.1",
746 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2364 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
747 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
2365 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
748 "dev": true
2366 "dev": true
749 },
2367 },
750 "levn": {
2368 "levn": {
751 "version": "0.3.0",
2369 "version": "0.3.0",
752 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
2370 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
753 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
2371 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
754 "dev": true,
2372 "dev": true,
755 "requires": {
2373 "requires": {
756 "prelude-ls": "~1.1.2",
2374 "prelude-ls": "~1.1.2",
757 "type-check": "~0.3.2"
2375 "type-check": "~0.3.2"
758 }
2376 }
759 },
2377 },
760 "lodash": {
2378 "lodash": {
761 "version": "4.17.15",
2379 "version": "4.17.15",
762 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
2380 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
763 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
2381 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
764 "dev": true
2382 "dev": true
765 },
2383 },
766 "mimic-fn": {
2384 "mimic-fn": {
767 "version": "1.2.0",
2385 "version": "1.2.0",
768 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
2386 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
769 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
2387 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
770 "dev": true
2388 "dev": true
771 },
2389 },
772 "minimatch": {
2390 "minimatch": {
773 "version": "3.0.4",
2391 "version": "3.0.4",
774 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2392 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
775 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2393 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
776 "dev": true,
2394 "dev": true,
777 "requires": {
2395 "requires": {
778 "brace-expansion": "^1.1.7"
2396 "brace-expansion": "^1.1.7"
779 }
2397 }
780 },
2398 },
781 "minimist": {
2399 "minimist": {
782 "version": "0.0.8",
2400 "version": "0.0.8",
783 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2401 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
784 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2402 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
785 "dev": true
2403 "dev": true
786 },
2404 },
787 "mkdirp": {
2405 "mkdirp": {
788 "version": "0.5.1",
2406 "version": "0.5.1",
789 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2407 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
790 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2408 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
791 "dev": true,
2409 "dev": true,
792 "requires": {
2410 "requires": {
793 "minimist": "0.0.8"
2411 "minimist": "0.0.8"
794 }
2412 }
795 },
2413 },
796 "ms": {
2414 "ms": {
797 "version": "2.1.2",
2415 "version": "2.1.2",
798 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2416 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
799 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2417 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
800 "dev": true
2418 "dev": true
801 },
2419 },
802 "mute-stream": {
2420 "mute-stream": {
803 "version": "0.0.7",
2421 "version": "0.0.7",
804 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
2422 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
805 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
2423 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
806 "dev": true
2424 "dev": true
807 },
2425 },
808 "natural-compare": {
2426 "natural-compare": {
809 "version": "1.4.0",
2427 "version": "1.4.0",
810 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2428 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
811 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
2429 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
812 "dev": true
2430 "dev": true
813 },
2431 },
814 "nice-try": {
2432 "nice-try": {
815 "version": "1.0.5",
2433 "version": "1.0.5",
816 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
2434 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
817 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
2435 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
818 "dev": true
2436 "dev": true
819 },
2437 },
820 "object-inspect": {
2438 "object-inspect": {
821 "version": "1.6.0",
2439 "version": "1.6.0",
822 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
2440 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
823 "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
2441 "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
824 "dev": true
2442 "dev": true
825 },
2443 },
826 "once": {
2444 "once": {
827 "version": "1.4.0",
2445 "version": "1.4.0",
828 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2446 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
829 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2447 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
830 "dev": true,
2448 "dev": true,
831 "requires": {
2449 "requires": {
832 "wrappy": "1"
2450 "wrappy": "1"
833 }
2451 }
834 },
2452 },
835 "onetime": {
2453 "onetime": {
836 "version": "2.0.1",
2454 "version": "2.0.1",
837 "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
2455 "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
838 "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
2456 "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
839 "dev": true,
2457 "dev": true,
840 "requires": {
2458 "requires": {
841 "mimic-fn": "^1.0.0"
2459 "mimic-fn": "^1.0.0"
842 }
2460 }
843 },
2461 },
844 "optionator": {
2462 "optionator": {
845 "version": "0.8.2",
2463 "version": "0.8.2",
846 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
2464 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
847 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
2465 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
848 "dev": true,
2466 "dev": true,
849 "requires": {
2467 "requires": {
850 "deep-is": "~0.1.3",
2468 "deep-is": "~0.1.3",
851 "fast-levenshtein": "~2.0.4",
2469 "fast-levenshtein": "~2.0.4",
852 "levn": "~0.3.0",
2470 "levn": "~0.3.0",
853 "prelude-ls": "~1.1.2",
2471 "prelude-ls": "~1.1.2",
854 "type-check": "~0.3.2",
2472 "type-check": "~0.3.2",
855 "wordwrap": "~1.0.0"
2473 "wordwrap": "~1.0.0"
856 }
2474 }
857 },
2475 },
858 "os-tmpdir": {
2476 "os-tmpdir": {
859 "version": "1.0.2",
2477 "version": "1.0.2",
860 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
2478 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
861 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
2479 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
862 "dev": true
2480 "dev": true
863 },
2481 },
864 "parent-module": {
2482 "parent-module": {
865 "version": "1.0.1",
2483 "version": "1.0.1",
866 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2484 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
867 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2485 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
868 "dev": true,
2486 "dev": true,
869 "requires": {
2487 "requires": {
870 "callsites": "^3.0.0"
2488 "callsites": "^3.0.0"
871 }
2489 }
872 },
2490 },
873 "path-is-absolute": {
2491 "path-is-absolute": {
874 "version": "1.0.1",
2492 "version": "1.0.1",
875 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2493 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
876 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2494 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
877 "dev": true
2495 "dev": true
878 },
2496 },
879 "path-key": {
2497 "path-key": {
880 "version": "2.0.1",
2498 "version": "2.0.1",
881 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
2499 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
882 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
2500 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
883 "dev": true
2501 "dev": true
884 },
2502 },
885 "path-parse": {
2503 "path-parse": {
886 "version": "1.0.6",
2504 "version": "1.0.6",
887 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
2505 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
888 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
2506 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
889 "dev": true
2507 "dev": true
890 },
2508 },
891 "prelude-ls": {
2509 "prelude-ls": {
892 "version": "1.1.2",
2510 "version": "1.1.2",
893 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2511 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
894 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
2512 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
895 "dev": true
2513 "dev": true
896 },
2514 },
897 "progress": {
2515 "progress": {
898 "version": "2.0.3",
2516 "version": "2.0.3",
899 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2517 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
900 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2518 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
901 "dev": true
2519 "dev": true
902 },
2520 },
903 "punycode": {
2521 "punycode": {
904 "version": "2.1.1",
2522 "version": "2.1.1",
905 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2523 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
906 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2524 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
907 "dev": true
2525 "dev": true
908 },
2526 },
909 "regexpp": {
2527 "regexpp": {
910 "version": "2.0.1",
2528 "version": "2.0.1",
911 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
2529 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
912 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
2530 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
913 "dev": true
2531 "dev": true
914 },
2532 },
915 "requirejs": {
2533 "requirejs": {
916 "version": "2.3.6",
2534 "version": "2.3.6",
917 "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
2535 "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
918 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
2536 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
919 "dev": true
2537 "dev": true
920 },
2538 },
921 "resolve": {
2539 "resolve": {
922 "version": "1.11.1",
2540 "version": "1.11.1",
923 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
2541 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
924 "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
2542 "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
925 "dev": true,
2543 "dev": true,
926 "requires": {
2544 "requires": {
927 "path-parse": "^1.0.6"
2545 "path-parse": "^1.0.6"
928 }
2546 }
929 },
2547 },
930 "resolve-from": {
2548 "resolve-from": {
931 "version": "4.0.0",
2549 "version": "4.0.0",
932 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2550 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
933 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2551 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
934 "dev": true
2552 "dev": true
935 },
2553 },
936 "restore-cursor": {
2554 "restore-cursor": {
937 "version": "2.0.0",
2555 "version": "2.0.0",
938 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
2556 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
939 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
2557 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
940 "dev": true,
2558 "dev": true,
941 "requires": {
2559 "requires": {
942 "onetime": "^2.0.0",
2560 "onetime": "^2.0.0",
943 "signal-exit": "^3.0.2"
2561 "signal-exit": "^3.0.2"
944 }
2562 }
945 },
2563 },
946 "resumer": {
2564 "resumer": {
947 "version": "0.0.0",
2565 "version": "0.0.0",
948 "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
2566 "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
949 "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
2567 "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
950 "dev": true,
2568 "dev": true,
951 "requires": {
2569 "requires": {
952 "through": "~2.3.4"
2570 "through": "~2.3.4"
953 }
2571 }
954 },
2572 },
955 "rimraf": {
2573 "rimraf": {
956 "version": "2.6.3",
2574 "version": "2.6.3",
957 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
2575 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
958 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
2576 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
959 "dev": true,
2577 "dev": true,
960 "requires": {
2578 "requires": {
961 "glob": "^7.1.3"
2579 "glob": "^7.1.3"
962 }
2580 }
963 },
2581 },
964 "run-async": {
2582 "run-async": {
965 "version": "2.3.0",
2583 "version": "2.3.0",
966 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
2584 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
967 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
2585 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
968 "dev": true,
2586 "dev": true,
969 "requires": {
2587 "requires": {
970 "is-promise": "^2.1.0"
2588 "is-promise": "^2.1.0"
971 }
2589 }
972 },
2590 },
973 "rxjs": {
2591 "rxjs": {
974 "version": "6.5.3",
2592 "version": "6.5.3",
975 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
2593 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
976 "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
2594 "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
977 "dev": true,
2595 "dev": true,
978 "requires": {
2596 "requires": {
979 "tslib": "^1.9.0"
2597 "tslib": "^1.9.0"
980 }
2598 }
981 },
2599 },
982 "safer-buffer": {
2600 "safer-buffer": {
983 "version": "2.1.2",
2601 "version": "2.1.2",
984 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2602 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
985 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2603 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
986 "dev": true
2604 "dev": true
987 },
2605 },
988 "semver": {
2606 "semver": {
989 "version": "6.3.0",
2607 "version": "6.3.0",
990 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2608 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
991 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2609 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
992 "dev": true
2610 "dev": true
993 },
2611 },
994 "shebang-command": {
2612 "shebang-command": {
995 "version": "1.2.0",
2613 "version": "1.2.0",
996 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
2614 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
997 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
2615 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
998 "dev": true,
2616 "dev": true,
999 "requires": {
2617 "requires": {
1000 "shebang-regex": "^1.0.0"
2618 "shebang-regex": "^1.0.0"
1001 }
2619 }
1002 },
2620 },
1003 "shebang-regex": {
2621 "shebang-regex": {
1004 "version": "1.0.0",
2622 "version": "1.0.0",
1005 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
2623 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1006 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
2624 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1007 "dev": true
2625 "dev": true
1008 },
2626 },
1009 "signal-exit": {
2627 "signal-exit": {
1010 "version": "3.0.2",
2628 "version": "3.0.2",
1011 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2629 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1012 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2630 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1013 "dev": true
2631 "dev": true
1014 },
2632 },
1015 "slice-ansi": {
2633 "slice-ansi": {
1016 "version": "2.1.0",
2634 "version": "2.1.0",
1017 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
2635 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
1018 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
2636 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
1019 "dev": true,
2637 "dev": true,
1020 "requires": {
2638 "requires": {
1021 "ansi-styles": "^3.2.0",
2639 "ansi-styles": "^3.2.0",
1022 "astral-regex": "^1.0.0",
2640 "astral-regex": "^1.0.0",
1023 "is-fullwidth-code-point": "^2.0.0"
2641 "is-fullwidth-code-point": "^2.0.0"
1024 }
2642 }
1025 },
2643 },
1026 "sprintf-js": {
2644 "sprintf-js": {
1027 "version": "1.0.3",
2645 "version": "1.0.3",
1028 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2646 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1029 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2647 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1030 "dev": true
2648 "dev": true
1031 },
2649 },
1032 "string-width": {
2650 "string-width": {
1033 "version": "2.1.1",
2651 "version": "2.1.1",
1034 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2652 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1035 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2653 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1036 "dev": true,
2654 "dev": true,
1037 "requires": {
2655 "requires": {
1038 "is-fullwidth-code-point": "^2.0.0",
2656 "is-fullwidth-code-point": "^2.0.0",
1039 "strip-ansi": "^4.0.0"
2657 "strip-ansi": "^4.0.0"
1040 },
2658 },
1041 "dependencies": {
2659 "dependencies": {
1042 "strip-ansi": {
2660 "strip-ansi": {
1043 "version": "4.0.0",
2661 "version": "4.0.0",
1044 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2662 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1045 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2663 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1046 "dev": true,
2664 "dev": true,
1047 "requires": {
2665 "requires": {
1048 "ansi-regex": "^3.0.0"
2666 "ansi-regex": "^3.0.0"
1049 }
2667 }
1050 }
2668 }
1051 }
2669 }
1052 },
2670 },
1053 "string.prototype.trim": {
2671 "string.prototype.trim": {
1054 "version": "1.1.2",
2672 "version": "1.1.2",
1055 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
2673 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
1056 "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
2674 "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
1057 "dev": true,
2675 "dev": true,
1058 "requires": {
2676 "requires": {
1059 "define-properties": "^1.1.2",
2677 "define-properties": "^1.1.2",
1060 "es-abstract": "^1.5.0",
2678 "es-abstract": "^1.5.0",
1061 "function-bind": "^1.0.2"
2679 "function-bind": "^1.0.2"
1062 }
2680 }
1063 },
2681 },
1064 "string.prototype.trimleft": {
2682 "string.prototype.trimleft": {
1065 "version": "2.1.0",
2683 "version": "2.1.0",
1066 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
2684 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
1067 "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
2685 "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
1068 "dev": true,
2686 "dev": true,
1069 "requires": {
2687 "requires": {
1070 "define-properties": "^1.1.3",
2688 "define-properties": "^1.1.3",
1071 "function-bind": "^1.1.1"
2689 "function-bind": "^1.1.1"
1072 }
2690 }
1073 },
2691 },
1074 "string.prototype.trimright": {
2692 "string.prototype.trimright": {
1075 "version": "2.1.0",
2693 "version": "2.1.0",
1076 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
2694 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
1077 "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
2695 "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
1078 "dev": true,
2696 "dev": true,
1079 "requires": {
2697 "requires": {
1080 "define-properties": "^1.1.3",
2698 "define-properties": "^1.1.3",
1081 "function-bind": "^1.1.1"
2699 "function-bind": "^1.1.1"
1082 }
2700 }
1083 },
2701 },
1084 "strip-ansi": {
2702 "strip-ansi": {
1085 "version": "5.2.0",
2703 "version": "5.2.0",
1086 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2704 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1087 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2705 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1088 "dev": true,
2706 "dev": true,
1089 "requires": {
2707 "requires": {
1090 "ansi-regex": "^4.1.0"
2708 "ansi-regex": "^4.1.0"
1091 },
2709 },
1092 "dependencies": {
2710 "dependencies": {
1093 "ansi-regex": {
2711 "ansi-regex": {
1094 "version": "4.1.0",
2712 "version": "4.1.0",
1095 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2713 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1096 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2714 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1097 "dev": true
2715 "dev": true
1098 }
2716 }
1099 }
2717 }
1100 },
2718 },
1101 "strip-json-comments": {
2719 "strip-json-comments": {
1102 "version": "3.0.1",
2720 "version": "3.0.1",
1103 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
2721 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
1104 "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
2722 "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
1105 "dev": true
2723 "dev": true
1106 },
2724 },
1107 "supports-color": {
2725 "supports-color": {
1108 "version": "5.5.0",
2726 "version": "5.5.0",
1109 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2727 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1110 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2728 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1111 "dev": true,
2729 "dev": true,
1112 "requires": {
2730 "requires": {
1113 "has-flag": "^3.0.0"
2731 "has-flag": "^3.0.0"
1114 }
2732 }
1115 },
2733 },
1116 "table": {
2734 "table": {
1117 "version": "5.4.6",
2735 "version": "5.4.6",
1118 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
2736 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1119 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
2737 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1120 "dev": true,
2738 "dev": true,
1121 "requires": {
2739 "requires": {
1122 "ajv": "^6.10.2",
2740 "ajv": "^6.10.2",
1123 "lodash": "^4.17.14",
2741 "lodash": "^4.17.14",
1124 "slice-ansi": "^2.1.0",
2742 "slice-ansi": "^2.1.0",
1125 "string-width": "^3.0.0"
2743 "string-width": "^3.0.0"
1126 },
2744 },
1127 "dependencies": {
2745 "dependencies": {
1128 "string-width": {
2746 "string-width": {
1129 "version": "3.1.0",
2747 "version": "3.1.0",
1130 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2748 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1131 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2749 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1132 "dev": true,
2750 "dev": true,
1133 "requires": {
2751 "requires": {
1134 "emoji-regex": "^7.0.1",
2752 "emoji-regex": "^7.0.1",
1135 "is-fullwidth-code-point": "^2.0.0",
2753 "is-fullwidth-code-point": "^2.0.0",
1136 "strip-ansi": "^5.1.0"
2754 "strip-ansi": "^5.1.0"
1137 }
2755 }
1138 }
2756 }
1139 }
2757 }
1140 },
2758 },
1141 "tape": {
2759 "tape": {
1142 "version": "4.11.0",
2760 "version": "4.11.0",
1143 "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz",
2761 "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz",
1144 "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==",
2762 "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==",
1145 "dev": true,
2763 "dev": true,
1146 "requires": {
2764 "requires": {
1147 "deep-equal": "~1.0.1",
2765 "deep-equal": "~1.0.1",
1148 "defined": "~1.0.0",
2766 "defined": "~1.0.0",
1149 "for-each": "~0.3.3",
2767 "for-each": "~0.3.3",
1150 "function-bind": "~1.1.1",
2768 "function-bind": "~1.1.1",
1151 "glob": "~7.1.4",
2769 "glob": "~7.1.4",
1152 "has": "~1.0.3",
2770 "has": "~1.0.3",
1153 "inherits": "~2.0.4",
2771 "inherits": "~2.0.4",
1154 "minimist": "~1.2.0",
2772 "minimist": "~1.2.0",
1155 "object-inspect": "~1.6.0",
2773 "object-inspect": "~1.6.0",
1156 "resolve": "~1.11.1",
2774 "resolve": "~1.11.1",
1157 "resumer": "~0.0.0",
2775 "resumer": "~0.0.0",
1158 "string.prototype.trim": "~1.1.2",
2776 "string.prototype.trim": "~1.1.2",
1159 "through": "~2.3.8"
2777 "through": "~2.3.8"
1160 },
2778 },
1161 "dependencies": {
2779 "dependencies": {
1162 "deep-equal": {
2780 "deep-equal": {
1163 "version": "1.0.1",
2781 "version": "1.0.1",
1164 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
2782 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
1165 "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
2783 "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
1166 "dev": true
2784 "dev": true
1167 },
2785 },
1168 "defined": {
2786 "defined": {
1169 "version": "1.0.0",
2787 "version": "1.0.0",
1170 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
2788 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
1171 "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
2789 "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
1172 "dev": true
2790 "dev": true
1173 },
2791 },
1174 "inherits": {
2792 "inherits": {
1175 "version": "2.0.4",
2793 "version": "2.0.4",
1176 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2794 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1177 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2795 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1178 "dev": true
2796 "dev": true
1179 },
2797 },
1180 "minimist": {
2798 "minimist": {
1181 "version": "1.2.0",
2799 "version": "1.2.0",
1182 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2800 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1183 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
2801 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1184 "dev": true
2802 "dev": true
1185 }
2803 }
1186 }
2804 }
1187 },
2805 },
1188 "text-table": {
2806 "text-table": {
1189 "version": "0.2.0",
2807 "version": "0.2.0",
1190 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2808 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1191 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2809 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1192 "dev": true
2810 "dev": true
1193 },
2811 },
1194 "through": {
2812 "through": {
1195 "version": "2.3.8",
2813 "version": "2.3.8",
1196 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
2814 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
1197 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2815 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1198 "dev": true
2816 "dev": true
1199 },
2817 },
1200 "tmp": {
2818 "tmp": {
1201 "version": "0.0.33",
2819 "version": "0.0.33",
1202 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2820 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1203 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2821 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1204 "dev": true,
2822 "dev": true,
1205 "requires": {
2823 "requires": {
1206 "os-tmpdir": "~1.0.2"
2824 "os-tmpdir": "~1.0.2"
1207 }
2825 }
1208 },
2826 },
1209 "tslib": {
2827 "tslib": {
1210 "version": "1.10.0",
2828 "version": "1.10.0",
1211 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
2829 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
1212 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
2830 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
1213 "dev": true
2831 "dev": true
1214 },
2832 },
1215 "tslint": {
2833 "tslint": {
1216 "version": "5.18.0",
2834 "version": "5.18.0",
1217 "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz",
2835 "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz",
1218 "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==",
2836 "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==",
1219 "dev": true,
2837 "dev": true,
1220 "requires": {
2838 "requires": {
1221 "@babel/code-frame": "^7.0.0",
2839 "@babel/code-frame": "^7.0.0",
1222 "builtin-modules": "^1.1.1",
2840 "builtin-modules": "^1.1.1",
1223 "chalk": "^2.3.0",
2841 "chalk": "^2.3.0",
1224 "commander": "^2.12.1",
2842 "commander": "^2.12.1",
1225 "diff": "^3.2.0",
2843 "diff": "^3.2.0",
1226 "glob": "^7.1.1",
2844 "glob": "^7.1.1",
1227 "js-yaml": "^3.13.1",
2845 "js-yaml": "^3.13.1",
1228 "minimatch": "^3.0.4",
2846 "minimatch": "^3.0.4",
1229 "mkdirp": "^0.5.1",
2847 "mkdirp": "^0.5.1",
1230 "resolve": "^1.3.2",
2848 "resolve": "^1.3.2",
1231 "semver": "^5.3.0",
2849 "semver": "^5.3.0",
1232 "tslib": "^1.8.0",
2850 "tslib": "^1.8.0",
1233 "tsutils": "^2.29.0"
2851 "tsutils": "^2.29.0"
1234 },
2852 },
1235 "dependencies": {
2853 "dependencies": {
1236 "semver": {
2854 "semver": {
1237 "version": "5.7.1",
2855 "version": "5.7.1",
1238 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
2856 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1239 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
2857 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1240 "dev": true
2858 "dev": true
1241 }
2859 }
1242 }
2860 }
1243 },
2861 },
1244 "tsutils": {
2862 "tsutils": {
1245 "version": "2.29.0",
2863 "version": "2.29.0",
1246 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
2864 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
1247 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
2865 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
1248 "dev": true,
2866 "dev": true,
1249 "requires": {
2867 "requires": {
1250 "tslib": "^1.8.1"
2868 "tslib": "^1.8.1"
1251 }
2869 }
1252 },
2870 },
1253 "type-check": {
2871 "type-check": {
1254 "version": "0.3.2",
2872 "version": "0.3.2",
1255 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2873 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1256 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
2874 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1257 "dev": true,
2875 "dev": true,
1258 "requires": {
2876 "requires": {
1259 "prelude-ls": "~1.1.2"
2877 "prelude-ls": "~1.1.2"
1260 }
2878 }
1261 },
2879 },
1262 "typescript": {
2880 "typescript": {
1263 "version": "4.1.5",
2881 "version": "4.1.5",
1264 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz",
2882 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz",
1265 "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==",
2883 "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==",
1266 "dev": true
2884 "dev": true
1267 },
2885 },
1268 "uri-js": {
2886 "uri-js": {
1269 "version": "4.2.2",
2887 "version": "4.2.2",
1270 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
2888 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1271 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
2889 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1272 "dev": true,
2890 "dev": true,
1273 "requires": {
2891 "requires": {
1274 "punycode": "^2.1.0"
2892 "punycode": "^2.1.0"
1275 }
2893 }
1276 },
2894 },
1277 "v8-compile-cache": {
2895 "v8-compile-cache": {
1278 "version": "2.1.0",
2896 "version": "2.1.0",
1279 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
2897 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
1280 "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
2898 "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
1281 "dev": true
2899 "dev": true
1282 },
2900 },
1283 "which": {
2901 "which": {
1284 "version": "1.3.1",
2902 "version": "1.3.1",
1285 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2903 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1286 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2904 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1287 "dev": true,
2905 "dev": true,
1288 "requires": {
2906 "requires": {
1289 "isexe": "^2.0.0"
2907 "isexe": "^2.0.0"
1290 }
2908 }
1291 },
2909 },
1292 "wordwrap": {
2910 "wordwrap": {
1293 "version": "1.0.0",
2911 "version": "1.0.0",
1294 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
2912 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1295 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
2913 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
1296 "dev": true
2914 "dev": true
1297 },
2915 },
1298 "wrappy": {
2916 "wrappy": {
1299 "version": "1.0.2",
2917 "version": "1.0.2",
1300 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2918 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1301 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2919 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1302 "dev": true
2920 "dev": true
1303 },
2921 },
1304 "write": {
2922 "write": {
1305 "version": "1.0.3",
2923 "version": "1.0.3",
1306 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
2924 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1307 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
2925 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1308 "dev": true,
2926 "dev": true,
1309 "requires": {
2927 "requires": {
1310 "mkdirp": "^0.5.1"
2928 "mkdirp": "^0.5.1"
1311 }
2929 }
1312 }
2930 }
1313 }
2931 }
1314 }
2932 }
@@ -1,34 +1,31
1 {
1 {
2 "name": "@implab/core",
2 "name": "@implab/core",
3 "version": "0.0.1-dev",
3 "version": "0.0.1-dev",
4 "description": "Dependency injection, logging, simple and fast text template engine",
4 "description": "Dependency injection, logging, simple and fast text template engine",
5 "main": "main.js",
5 "main": "main.js",
6 "keywords": [
6 "keywords": [
7 "di",
7 "di",
8 "ioc",
8 "ioc",
9 "logging",
9 "logging",
10 "template engine",
10 "template engine",
11 "dependency injection"
11 "dependency injection"
12 ],
12 ],
13 "author": "Implab team",
13 "author": "Implab team",
14 "license": "BSD-2-Clause",
14 "license": "BSD-2-Clause",
15 "repository": "https://bitbucket.org/implab/implabjs",
15 "repository": "https://bitbucket.org/implab/implabjs",
16 "publishConfig": {
17 "access": "public"
18 },
19 "peerDependencies": {
16 "peerDependencies": {
20 "dojo": "^1.10.0"
17 "dojo": "^1.10.0"
21 },
18 },
22 "devDependencies": {
19 "devDependencies": {
23 "@types/node": "^8.0.0",
20 "@types/node": "^8.0.0",
24 "@types/requirejs": "~2.1.31",
21 "@types/requirejs": "~2.1.31",
25 "@types/tape": "~4.2.33",
22 "@types/tape": "~4.2.33",
26 "dojo": "~1.10.0",
23 "dojo": "~1.10.0",
27 "dojo-typings": "^1.11.9",
24 "dojo-typings": "^1.11.9",
25 "eslint": "6.1.0",
28 "requirejs": "latest",
26 "requirejs": "latest",
29 "tape": "~4.11.0",
27 "tape": "~4.11.0",
30 "typescript": "~4.1.5",
28 "tslint": "5.18.0",
31 "eslint": "6.1.0",
29 "typescript": "~4.1.5"
32 "tslint": "5.18.0"
33 }
30 }
34 }
31 }
@@ -1,565 +1,566
1 import { Cancellation } from "./Cancellation";
1 import { Cancellation } from "./Cancellation";
2 import { ICancellable, Constructor, IDestroyable, ICancellation, IRemovable, PromiseOrValue } from "./interfaces";
2 import { ICancellable, Constructor, IDestroyable, ICancellation, IRemovable, PromiseOrValue } from "./interfaces";
3
3
4 let _nextOid = 0;
4 let _nextOid = 0;
5 const _oid = typeof Symbol === "function" ?
5 const _oid = typeof Symbol === "function" ?
6 Symbol("__implab__oid__") :
6 Symbol("__implab__oid__") :
7 "__implab__oid__";
7 "__implab__oid__";
8
8
9 function _noop() { }
9 function _noop() { }
10
10
11 export function oid(instance: null | undefined): undefined;
11 export function oid(instance: null | undefined): undefined;
12 export function oid(instance: NonNullable<any>): string;
12 export function oid(instance: NonNullable<any>): string;
13 export function oid(instance: any): string | undefined {
13 export function oid(instance: any): string | undefined {
14 if (isNull(instance))
14 if (isNull(instance))
15 return undefined;
15 return undefined;
16
16
17 if (_oid in instance)
17 if (_oid in instance)
18 return instance[_oid];
18 return instance[_oid];
19 else
19 else
20 return (instance[_oid] = "oid_" + (++_nextOid));
20 return (instance[_oid] = "oid_" + (++_nextOid));
21 }
21 }
22
22
23 const cancellationNone: ICancellation = {
23 const cancellationNone: ICancellation = {
24 isSupported(): boolean {
24 isSupported(): boolean {
25 return false;
25 return false;
26 },
26 },
27
27
28 throwIfRequested(): void {
28 throwIfRequested(): void {
29 },
29 },
30
30
31 isRequested(): boolean {
31 isRequested(): boolean {
32 return false;
32 return false;
33 },
33 },
34
34
35 register(_cb: (e: any) => void): IDestroyable {
35 register(_cb: (e: any) => void): IDestroyable {
36 return destroyed;
36 return destroyed;
37 }
37 }
38 };
38 };
39
39
40 export function keys<T>(arg: T): (Extract<keyof T, string>)[] {
40 export function keys<T>(arg: T): (Extract<keyof T, string>)[] {
41 return isObject(arg) && arg ? Object.keys(arg) as (Extract<keyof T, string>)[] : [];
41 return isObject(arg) && arg ? Object.keys(arg) as (Extract<keyof T, string>)[] : [];
42 }
42 }
43
43
44 export function isKeyof<T>(k: string, target: T): k is Extract<keyof T, string> {
44 export function isKeyof<T>(k: string, target: T): k is Extract<keyof T, string> {
45 return target && typeof target === "object" && k in target;
45 return target && typeof target === "object" && k in target;
46 }
46 }
47
47
48 export function argumentNotNull(arg: any, name: string) {
48 export function argumentNotNull(arg: any, name: string) {
49 if (arg === null || arg === undefined)
49 if (arg === null || arg === undefined)
50 throw new Error("The argument " + name + " can't be null or undefined");
50 throw new Error("The argument " + name + " can't be null or undefined");
51 }
51 }
52
52
53 export function argumentNotEmptyString(arg: any, name: string) {
53 export function argumentNotEmptyString(arg: any, name: string) {
54 if (typeof (arg) !== "string" || !arg.length)
54 if (typeof (arg) !== "string" || !arg.length)
55 throw new Error("The argument '" + name + "' must be a not empty string");
55 throw new Error("The argument '" + name + "' must be a not empty string");
56 }
56 }
57
57
58 export function argumentNotEmptyArray(arg: any, name: string) {
58 export function argumentNotEmptyArray(arg: any, name: string) {
59 if (!(arg instanceof Array) || !arg.length)
59 if (!(arg instanceof Array) || !arg.length)
60 throw new Error("The argument '" + name + "' must be a not empty array");
60 throw new Error("The argument '" + name + "' must be a not empty array");
61 }
61 }
62
62
63 export function argumentOfType(arg: any, type: Constructor<{}>, name: string) {
63 export function argumentOfType(arg: any, type: Constructor<{}>, name: string) {
64 if (!(arg instanceof type))
64 if (!(arg instanceof type))
65 throw new Error("The argument '" + name + "' type doesn't match");
65 throw new Error("The argument '" + name + "' type doesn't match");
66 }
66 }
67
67
68 export function isNull(val: any): val is null | undefined {
68 export function isNull(val: any): val is null | undefined {
69 return (val === null || val === undefined);
69 return (val === null || val === undefined);
70 }
70 }
71
71
72 export type primitive = symbol | string | number | boolean | undefined | null;
72 export type primitive = symbol | string | number | boolean | undefined | null;
73
73
74 export function isPrimitive(val: any): val is primitive {
74 export function isPrimitive(val: any): val is primitive {
75 return (val === null || val === undefined || typeof (val) === "string" ||
75 return (val === null || val === undefined || typeof (val) === "string" ||
76 typeof (val) === "number" || typeof (val) === "boolean");
76 typeof (val) === "number" || typeof (val) === "boolean");
77 }
77 }
78
78
79 export function isObject<T>(value: T): value is Exclude<T & object, primitive> {
79 export function isObject<T>(value: T): value is Exclude<T & object, primitive> {
80 return !!(value && typeof value === "object");
80 return !!(value && typeof value === "object");
81 }
81 }
82
82
83 export function isInteger(val: any): val is number {
83 export function isInteger(val: any): val is number {
84 return parseInt(val, 10) === val;
84 return parseInt(val, 10) === val;
85 }
85 }
86
86
87 export function isNumber(val: any): val is number {
87 export function isNumber(val: any): val is number {
88 return parseFloat(val) === val;
88 return parseFloat(val) === val;
89 }
89 }
90
90
91 export function isString(val: any): val is string {
91 export function isString(val: any): val is string {
92 return typeof (val) === "string";
92 return typeof (val) === "string";
93 }
93 }
94
94
95 export function isPromise<T = any>(val: any): val is PromiseLike<T> {
95 export function isPromise<T = any>(val: any): val is PromiseLike<T> {
96 return !!(val && typeof val.then === "function");
96 return !!(val && typeof val.then === "function");
97 }
97 }
98
98
99 export function isCancellable(val: any): val is ICancellable {
99 export function isCancellable(val: any): val is ICancellable {
100 return !!(val && typeof val.cancel === "function");
100 return !!(val && typeof val.cancel === "function");
101 }
101 }
102
102
103 export function isNullOrEmptyString(val: any): val is ("" | null | undefined) {
103 export function isNullOrEmptyString(val: any): val is ("" | null | undefined) {
104 return (val === null || val === undefined ||
104 return (val === null || val === undefined ||
105 ((typeof (val) === "string" || val instanceof String) && val.length === 0));
105 ((typeof (val) === "string" || val instanceof String) && val.length === 0));
106 }
106 }
107
107
108 export function isNotEmptyArray<T = any>(arg: any): arg is T[] {
108 export function isNotEmptyArray<T = any>(arg: any): arg is T[] {
109 return (arg instanceof Array && arg.length > 0);
109 return (arg instanceof Array && arg.length > 0);
110 }
110 }
111
111
112 function _isStrictMode(this: any) {
112 function _isStrictMode(this: any) {
113 return !this;
113 return !this;
114 }
114 }
115
115
116 function _getNonStrictGlobal(this: any) {
116 function _getNonStrictGlobal(this: any) {
117 return this;
117 return this;
118 }
118 }
119
119
120 export function getGlobal() {
120 export function getGlobal() {
121 // in es3 we can't use indirect call to eval, since it will
121 // in es3 we can't use indirect call to eval, since it will
122 // be executed in the current call context.
122 // be executed in the current call context.
123 if (!_isStrictMode()) {
123 if (!_isStrictMode()) {
124 return _getNonStrictGlobal();
124 return _getNonStrictGlobal();
125 } else {
125 } else {
126 // tslint:disable-next-line:no-eval
126 // tslint:disable-next-line:no-eval
127 return eval.call(null, "this");
127 return eval.call(null, "this");
128 }
128 }
129 }
129 }
130
130
131 export function get(member: string, context?: object) {
131 export function get(member: string, context?: object) {
132 argumentNotEmptyString(member, "member");
132 argumentNotEmptyString(member, "member");
133 let that = context || getGlobal();
133 let that = context || getGlobal();
134 const parts = member.split(".");
134 const parts = member.split(".");
135 for (const m of parts) {
135 for (const m of parts) {
136 if (!m)
136 if (!m)
137 continue;
137 continue;
138 if (isNull(that = that[m]))
138 if (isNull(that = that[m]))
139 break;
139 break;
140 }
140 }
141 return that;
141 return that;
142 }
142 }
143
143
144 /**
144 /**
145 * ВыполняСт ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива, останавливаСтся, ΠΊΠΎΠ³Π΄Π°
145 * ВыполняСт ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива, останавливаСтся, ΠΊΠΎΠ³Π΄Π°
146 * Π»ΠΈΠ±ΠΎ достигнут ΠΊΠΎΠ½Π΅Ρ† массива, Π»ΠΈΠ±ΠΎ функция <c>cb</c> Π²Π΅Ρ€Π½ΡƒΠ»Π°
146 * Π»ΠΈΠ±ΠΎ достигнут ΠΊΠΎΠ½Π΅Ρ† массива, Π»ΠΈΠ±ΠΎ функция <c>cb</c> Π²Π΅Ρ€Π½ΡƒΠ»Π°
147 * Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
147 * Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
148 *
148 *
149 * @param {Array | Object} obj массив элСмСнтов для просмотра
149 * @param {Array | Object} obj массив элСмСнтов для просмотра
150 * @param {Function} cb функция, вызываСмая для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта
150 * @param {Function} cb функция, вызываСмая для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта
151 * @param {Object} thisArg Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² качСствС
151 * @param {Object} thisArg Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² качСствС
152 * <c>this</c> Π² <c>cb</c>.
152 * <c>this</c> Π² <c>cb</c>.
153 * @returns {void}
153 * @returns {void}
154 */
154 */
155 export function each<T>(obj: T, cb: <X extends Extract<keyof T, string>>(v: NonNullable<T[X]>, k: X) => void): void;
155 export function each<T>(obj: T, cb: <X extends Extract<keyof T, string>>(v: NonNullable<T[X]>, k: X) => void): void;
156 export function each<T>(array: T[], cb: (v: T, i: number) => void): void;
156 export function each<T>(array: T[], cb: (v: T, i: number) => void): void;
157 export function each(obj: any, cb: any, thisArg?: any): any;
157 export function each(obj: any, cb: any, thisArg?: any): any;
158 export function each(obj: any, cb: any, thisArg?: any) {
158 export function each(obj: any, cb: any, thisArg?: any) {
159 argumentNotNull(cb, "cb");
159 argumentNotNull(cb, "cb");
160 if (obj instanceof Array) {
160 if (obj instanceof Array) {
161 let v: any;
161 let v: any;
162 for (let i = 0; i < obj.length; i++) {
162 for (let i = 0; i < obj.length; i++) {
163 v = obj[i];
163 v = obj[i];
164 if (v !== undefined)
164 if (v !== undefined)
165 cb.call(thisArg, v, i);
165 cb.call(thisArg, v, i);
166 }
166 }
167 } else {
167 } else {
168 Object.keys(obj).forEach(k => obj[k] !== undefined && cb.call(thisArg, obj[k], k));
168 Object.keys(obj).forEach(k => obj[k] !== undefined && cb.call(thisArg, obj[k], k));
169 }
169 }
170 }
170 }
171
171
172 /** Copies property values from a source object to the destination and returns
172 /** Copies property values from a source object to the destination and returns
173 * the destination object.
173 * the destination object.
174 *
174 *
175 * @param dest The destination object into which properties from the source
175 * @param dest The destination object into which properties from the source
176 * object will be copied.
176 * object will be copied.
177 * @param source The source of values which will be copied to the destination
177 * @param source The source of values which will be copied to the destination
178 * object.
178 * object.
179 * @param template An optional parameter specifies which properties should be
179 * @param template An optional parameter specifies which properties should be
180 * copied from the source and how to map them to the destination. If the
180 * copied from the source and how to map them to the destination. If the
181 * template is an array it contains the list of property names to copy from the
181 * template is an array it contains the list of property names to copy from the
182 * source to the destination. In case of object the templates contains the map
182 * source to the destination. In case of object the templates contains the map
183 * where keys are property names in the source and the values are property
183 * where keys are property names in the source and the values are property
184 * names in the destination object. If the template isn't specified then the
184 * names in the destination object. If the template isn't specified then the
185 * own properties of the source are entirely copied to the destination.
185 * own properties of the source are entirely copied to the destination.
186 *
186 *
187 */
187 */
188 export function mixin<T extends object, S extends object>(dest: T, source: S, template?: (keyof S)[]): T & S;
188 export function mixin<T extends object, S extends object>(dest: T, source: S, template?: (keyof S)[]): T & S;
189 export function mixin<T extends object, S extends object, R extends object = T>(dest: T, source: S, template: { [p in keyof S]?: keyof R; }): T & R;
189 export function mixin<T extends object, S extends object, R extends object = T>(dest: T, source: S, template: { [p in keyof S]?: keyof R; }): T & R;
190 export function mixin<T extends object, S extends object>(dest: T, source: S, template?: any): any {
190 export function mixin<T extends object, S extends object>(dest: T, source: S, template?: any): any {
191 argumentNotNull(dest, "dest");
191 argumentNotNull(dest, "dest");
192 const _res: any = dest as any;
192 const _res: any = dest as any;
193
193
194 if (isPrimitive(source))
194 if (isPrimitive(source))
195 return _res;
195 return _res;
196
196
197 if (template instanceof Array) {
197 if (template instanceof Array) {
198 template.forEach(p => {
198 template.forEach(p => {
199 if (isKeyof(p, source))
199 if (isKeyof(p, source))
200 _res[p] = source[p];
200 _res[p] = source[p];
201 });
201 });
202 } else if (template) {
202 } else if (template) {
203 keys(source).forEach(p => {
203 keys(source).forEach(p => {
204 if (isKeyof(p, template))
204 if (isKeyof(p, template))
205 _res[template[p]] = source[p];
205 _res[template[p]] = source[p];
206 });
206 });
207 } else {
207 } else {
208 keys(source).forEach(p => _res[p] = source[p]);
208 keys(source).forEach(p => _res[p] = source[p]);
209 }
209 }
210
210
211 return _res;
211 return _res;
212 }
212 }
213
213
214 /** Wraps the specified function to emulate an asynchronous execution.
214 /** Wraps the specified function to emulate an asynchronous execution.
215 * @param{Object} thisArg [Optional] Object which will be passed as 'this' to the function.
215 * @param{Object} thisArg [Optional] Object which will be passed as 'this' to the function.
216 * @param{Function|String} fn [Required] Function wich will be wrapped.
216 * @param{Function|String} fn [Required] Function wich will be wrapped.
217 */
217 */
218 export function async<T, F extends (...args: any[]) => T | PromiseLike<T>>(
218 export function async<T, F extends (...args: any[]) => T | PromiseLike<T>>(
219 fn: F,
219 fn: F,
220 thisArg?: ThisParameterType<F>
220 thisArg?: ThisParameterType<F>
221 ): (...args: Parameters<F>) => PromiseLike<T>;
221 ): (...args: Parameters<F>) => PromiseLike<T>;
222 export function async<T, M extends string, O extends { [m in M]?: (...args: any[]) => T | PromiseLike<T> }>(
222 export function async<T, M extends string, O extends { [m in M]?: (...args: any[]) => T | PromiseLike<T> }>(
223 fn: M,
223 fn: M,
224 thisArg: O
224 thisArg: O
225 ): (...args: Parameters<NonNullable<O[M]>>) => PromiseLike<T>;
225 ): (...args: Parameters<NonNullable<O[M]>>) => PromiseLike<T>;
226 export function async(_fn: any, thisArg: any): (...args: any[]) => PromiseLike<any> {
226 export function async(_fn: any, thisArg: any): (...args: any[]) => PromiseLike<any> {
227 let fn = _fn;
227 let fn = _fn;
228
228
229 if (arguments.length === 2 && !(fn instanceof Function))
229 if (arguments.length === 2 && !(fn instanceof Function))
230 fn = thisArg[fn];
230 fn = thisArg[fn];
231
231
232 if (fn == null)
232 if (fn == null)
233 throw new Error("The function must be specified");
233 throw new Error("The function must be specified");
234
234
235 function wrapresult(x: any, e?: any): PromiseLike<any> {
235 function wrapresult(x: any, e?: any): PromiseLike<any> {
236 if (e) {
236 if (e) {
237 return {
237 return {
238 then(cb, eb) {
238 then(cb, eb) {
239 try {
239 try {
240 return eb ? wrapresult(eb(e)) : this;
240 return eb ? wrapresult(eb(e)) : this;
241 } catch (e2) {
241 } catch (e2) {
242 return wrapresult(null, e2);
242 return wrapresult(null, e2);
243 }
243 }
244 }
244 }
245 };
245 };
246 } else {
246 } else {
247 if (x && x.then)
247 if (x && x.then)
248 return x;
248 return x;
249 return {
249 return {
250 then(cb) {
250 then(cb) {
251 try {
251 try {
252 return cb ? wrapresult(cb(x)) : this;
252 return cb ? wrapresult(cb(x)) : this;
253 } catch (e2) {
253 } catch (e2) {
254 return wrapresult(e2);
254 return wrapresult(e2);
255 }
255 }
256 }
256 }
257 };
257 };
258 }
258 }
259 }
259 }
260
260
261 return (...args) => {
261 return (...args) => {
262 try {
262 try {
263 return wrapresult(fn.apply(thisArg, args));
263 return wrapresult(fn.apply(thisArg, args));
264 } catch (e) {
264 } catch (e) {
265 return wrapresult(null, e);
265 return wrapresult(null, e);
266 }
266 }
267 };
267 };
268 }
268 }
269
269
270 export function delegate<T extends object, F extends (this: T, ...args: any[]) => any>(
270 export function delegate<T extends object, F extends (this: T, ...args: any[]) => any>(
271 target: T,
271 target: T,
272 method: F
272 method: F
273 ): OmitThisParameter<F>;
273 ): OmitThisParameter<F>;
274 export function delegate<M extends string, T extends { [m in M]?: (...args: any[]) => any; }>(
274 export function delegate<M extends string, T extends { [m in M]?: (...args: any[]) => any; }>(
275 target: T,
275 target: T,
276 method: M
276 method: M
277 ): OmitThisParameter<T[M]>;
277 ): OmitThisParameter<T[M]>;
278 export function delegate(target: any, _method: any): (...args: any[]) => any {
278 export function delegate(target: any, _method: any): (...args: any[]) => any {
279 let method: any;
279 let method: any;
280 if (!(_method instanceof Function)) {
280 if (!(_method instanceof Function)) {
281 argumentNotNull(target, "target");
281 argumentNotNull(target, "target");
282 method = target[_method];
282 method = target[_method];
283 if (!(method instanceof Function))
283 if (!(method instanceof Function))
284 throw new Error("'method' argument must be a Function or a method name");
284 throw new Error("'method' argument must be a Function or a method name");
285 } else {
285 } else {
286 method = _method;
286 method = _method;
287 }
287 }
288
288
289 return (...args) => {
289 return (...args) => {
290 return method.apply(target, args);
290 return method.apply(target, args);
291 };
291 };
292 }
292 }
293
293
294 /** Returns promise which will be resolved after the specified amount of time.
294 /** Returns promise which will be resolved after the specified amount of time.
295 *
295 *
296 * @param timeMs The delay before the promise will be resolved in milliseconds.
296 * @param timeMs The delay before the promise will be resolved in milliseconds.
297 * @param ct Optional. A cancellation token for the operation.
297 * @param ct Optional. A cancellation token for the operation.
298 */
298 */
299 export function delay(timeMs: number, ct = cancellationNone) {
299 export function delay(timeMs: number, ct = cancellationNone) {
300 ct.throwIfRequested();
300 ct.throwIfRequested();
301 return new Promise<void>((resolve, reject) => {
301 return new Promise<void>((resolve, reject) => {
302 const h = ct.register(e => {
302 const h = ct.register(e => {
303 clearTimeout(id);
303 clearTimeout(id);
304 reject(e);
304 reject(e);
305 // we don't nedd to unregister h, since ct is already disposed
305 // we don't nedd to unregister h, since ct is already disposed
306 });
306 });
307 const id = setTimeout(() => {
307 const id = setTimeout(() => {
308 h.destroy();
308 h.destroy();
309 resolve();
309 resolve();
310 }, timeMs);
310 }, timeMs);
311
311
312 });
312 });
313 }
313 }
314
314
315 /**
315 /**
316 * Wraps the specified function to delay its execution by the specified timeout.
316 * Wraps the specified function to delay its execution by the specified timeout.
317 * If the wrapped function was called multiple times before the timeout has elapsed,
317 * If the wrapped function was called multiple times before the timeout has elapsed,
318 * the target function will be executed only once.
318 * the target function will be executed only once.
319 * Each call to the wrapped function will return a promise is the timeout hasn't
319 * Each call to the wrapped function will return a promise is the timeout hasn't
320 * elapsed the subsequent calls to the wrapped function will reject previous promises.
320 * elapsed the subsequent calls to the wrapped function will reject previous promises.
321 *
321 *
322 * @param func function that accepts a cancellation token as a single
322 * @param func function that accepts a cancellation token as a single
323 * parameter and returns the callback which will be invoked.
323 * parameter and returns the callback which will be invoked.
324 * @param wait A timeout to wait before the callback should be invoked
324 * @param wait A timeout to wait before the callback should be invoked
325 * @returns The function withe the same parameters as the original callback.
325 * @returns The function withe the same parameters as the original callback.
326 */
326 */
327 export function debounce<T extends any[], R, This>(func: (ct: ICancellation) => ((this: This, ...args: T) => PromiseOrValue<R>), wait: number) {
327 export function debounce<T extends any[], R, This>(func: (ct: ICancellation) => ((this: This, ...args: T) => PromiseOrValue<R>), wait: number) {
328 let cancel: (e?: any) => void = _noop;
328 let cancel: (e?: any) => void = _noop;
329
329
330 let pending = Promise.resolve();
330 let pending = Promise.resolve();
331
331
332 const fn = async function executedFunction(this: This, ...args: T) {
332 const fn = async function executedFunction(this: This, ...args: T) {
333 cancel();
333 cancel();
334 const ct = new Cancellation(_cancel => cancel = _cancel);
334 const ct = new Cancellation(_cancel => cancel = _cancel);
335
335
336 await pending;
336 await pending;
337 let resolve = _noop;
337 let resolve = _noop;
338 pending = new Promise(_resolve => resolve = _resolve);
338 pending = new Promise(_resolve => resolve = _resolve);
339 try {
339 try {
340 await delay(wait, ct);
340 await delay(wait, ct);
341 return func(ct).apply(this, args);
341 // use return await to make finally work correctly
342 return await func(ct).apply(this, args);
342 } finally {
343 } finally {
343 resolve();
344 resolve();
344 }
345 }
345 };
346 };
346
347
347 fn.cancel = (e?: any) => cancel(e);
348 fn.cancel = (e?: any) => cancel(e);
348
349
349 return fn;
350 return fn;
350 }
351 }
351
352
352 /** Returns resolved promise, awaiting this method will cause the asynchronous
353 /** Returns resolved promise, awaiting this method will cause the asynchronous
353 * completion of the rest of the code.
354 * completion of the rest of the code.
354 */
355 */
355 export function fork() {
356 export function fork() {
356 return Promise.resolve();
357 return Promise.resolve();
357 }
358 }
358
359
359 /** Always throws Error, can be used as a stub for the methods which should be
360 /** Always throws Error, can be used as a stub for the methods which should be
360 * assigned later and are required to be not null.
361 * assigned later and are required to be not null.
361 */
362 */
362 export function notImplemented(): never {
363 export function notImplemented(): never {
363 throw new Error("Not implemented");
364 throw new Error("Not implemented");
364 }
365 }
365 /**
366 /**
366 * Iterates over the specified array of items and calls the callback `cb`, if
367 * Iterates over the specified array of items and calls the callback `cb`, if
367 * the result of the callback is a promise the next item from the array will be
368 * the result of the callback is a promise the next item from the array will be
368 * proceeded after the promise is resolved.
369 * proceeded after the promise is resolved.
369 *
370 *
370 */
371 */
371 export function pmap<T, T2>(
372 export function pmap<T, T2>(
372 items: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
373 items: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
373 cb: (item: T, i: number) => T2 | PromiseLike<T2>
374 cb: (item: T, i: number) => T2 | PromiseLike<T2>
374 ): T2[] | PromiseLike<T2[]> {
375 ): T2[] | PromiseLike<T2[]> {
375 argumentNotNull(cb, "cb");
376 argumentNotNull(cb, "cb");
376
377
377 if (isPromise(items)) {
378 if (isPromise(items)) {
378 return items.then(data => pmap(data, cb));
379 return items.then(data => pmap(data, cb));
379 } else {
380 } else {
380
381
381 if (isNull(items) || !items.length)
382 if (isNull(items) || !items.length)
382 return [];
383 return [];
383
384
384 let i = 0;
385 let i = 0;
385 const result = new Array<T2>();
386 const result = new Array<T2>();
386
387
387 const next = (): any => {
388 const next = (): any => {
388 while (i < items.length) {
389 while (i < items.length) {
389 const r = cb(items[i], i);
390 const r = cb(items[i], i);
390 const ri = i;
391 const ri = i;
391 i++;
392 i++;
392 if (isPromise(r)) {
393 if (isPromise(r)) {
393 return r.then(x => {
394 return r.then(x => {
394 result[ri] = x;
395 result[ri] = x;
395 return next();
396 return next();
396 });
397 });
397 } else {
398 } else {
398 result[ri] = r;
399 result[ri] = r;
399 }
400 }
400 }
401 }
401 return result;
402 return result;
402 };
403 };
403
404
404 return next();
405 return next();
405 }
406 }
406 }
407 }
407
408
408 export function pfor<T>(
409 export function pfor<T>(
409 items: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
410 items: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
410 cb: (item: T, i: number) => any
411 cb: (item: T, i: number) => any
411 ): void | PromiseLike<void> {
412 ): void | PromiseLike<void> {
412 argumentNotNull(cb, "cb");
413 argumentNotNull(cb, "cb");
413
414
414 if (isPromise(items)) {
415 if (isPromise(items)) {
415 return items.then(data => pfor(data, cb));
416 return items.then(data => pfor(data, cb));
416 } else {
417 } else {
417 if (isNull(items) || !items.length)
418 if (isNull(items) || !items.length)
418 return;
419 return;
419
420
420 let i = 0;
421 let i = 0;
421
422
422 const next = (): any => {
423 const next = (): any => {
423 while (i < items.length) {
424 while (i < items.length) {
424 const r = cb(items[i], i);
425 const r = cb(items[i], i);
425 i++;
426 i++;
426 if (isPromise(r))
427 if (isPromise(r))
427 return r.then(next);
428 return r.then(next);
428 }
429 }
429 };
430 };
430
431
431 return next();
432 return next();
432 }
433 }
433 }
434 }
434
435
435 export function first<T>(sequence: ArrayLike<T>): T;
436 export function first<T>(sequence: ArrayLike<T>): T;
436 export function first<T>(sequence: PromiseLike<ArrayLike<T>>): PromiseLike<T>;
437 export function first<T>(sequence: PromiseLike<ArrayLike<T>>): PromiseLike<T>;
437 export function first<T>(
438 export function first<T>(
438 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
439 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
439 cb?: (x: T) => void,
440 cb?: (x: T) => void,
440 err?: (x: Error) => void
441 err?: (x: Error) => void
441 ): void;
442 ): void;
442 /**
443 /**
443 * Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΠ»ΠΈ обСщания, Ссли Π²
444 * Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΠ»ΠΈ обСщания, Ссли Π²
444 * качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив.
445 * качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив.
445 *
446 *
446 * @param {Function} cb ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ
447 * @param {Function} cb ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ
447 * элСмСнт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² случаС успСха
448 * элСмСнт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² случаС успСха
448 * @param {Function} err ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли массив пустой, Π»ΠΈΠ±ΠΎ
449 * @param {Function} err ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли массив пустой, Π»ΠΈΠ±ΠΎ
449 * нС массив
450 * нС массив
450 *
451 *
451 * @remarks Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΈ cb Π½ΠΈ err, Ρ‚ΠΎΠ³Π΄Π° функция Π²Π΅Ρ€Π½Π΅Ρ‚ Π»ΠΈΠ±ΠΎ
452 * @remarks Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΈ cb Π½ΠΈ err, Ρ‚ΠΎΠ³Π΄Π° функция Π²Π΅Ρ€Π½Π΅Ρ‚ Π»ΠΈΠ±ΠΎ
452 * ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт.
453 * ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт.
453 * @async
454 * @async
454 */
455 */
455 export function first<T>(
456 export function first<T>(
456 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
457 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
457 cb?: (x: T) => void,
458 cb?: (x: T) => void,
458 err?: (x: Error) => void
459 err?: (x: Error) => void
459 ) {
460 ) {
460 if (isPromise(sequence)) {
461 if (isPromise(sequence)) {
461 return sequence.then(res => first(res, cb as any /* force to pass undefined cb */, err));
462 return sequence.then(res => first(res, cb as any /* force to pass undefined cb */, err));
462 } else if (sequence && "length" in sequence) {
463 } else if (sequence && "length" in sequence) {
463 if (sequence.length === 0) {
464 if (sequence.length === 0) {
464 if (err)
465 if (err)
465 return err(new Error("The sequence is empty"));
466 return err(new Error("The sequence is empty"));
466 else
467 else
467 throw new Error("The sequence is empty");
468 throw new Error("The sequence is empty");
468 } else if (cb) {
469 } else if (cb) {
469 return cb(sequence[0]);
470 return cb(sequence[0]);
470 } else {
471 } else {
471 return sequence[0];
472 return sequence[0];
472 }
473 }
473 } else {
474 } else {
474 if (err)
475 if (err)
475 return err(new Error("The sequence is required"));
476 return err(new Error("The sequence is required"));
476 else
477 else
477 throw new Error("The sequence is required");
478 throw new Error("The sequence is required");
478 }
479 }
479 }
480 }
480
481
481 export function firstWhere<T>(
482 export function firstWhere<T>(
482 sequence: ArrayLike<T>,
483 sequence: ArrayLike<T>,
483 predicate: (x: T) => boolean
484 predicate: (x: T) => boolean
484 ): T;
485 ): T;
485 export function firstWhere<T>(
486 export function firstWhere<T>(
486 sequence: PromiseLike<ArrayLike<T>>,
487 sequence: PromiseLike<ArrayLike<T>>,
487 predicate: (x: T) => boolean
488 predicate: (x: T) => boolean
488 ): PromiseLike<T>;
489 ): PromiseLike<T>;
489 export function firstWhere<T>(
490 export function firstWhere<T>(
490 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
491 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
491 predicate: (x: T) => boolean,
492 predicate: (x: T) => boolean,
492 cb: (x: T) => void,
493 cb: (x: T) => void,
493 err?: (x: Error) => void
494 err?: (x: Error) => void
494 ): void;
495 ): void;
495
496
496 export function firstWhere<T>(
497 export function firstWhere<T>(
497 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
498 sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>,
498 predicate?: (x: T) => boolean,
499 predicate?: (x: T) => boolean,
499 cb?: (x: T) => any,
500 cb?: (x: T) => any,
500 err?: (x: Error) => any
501 err?: (x: Error) => any
501 ) {
502 ) {
502 if (isPromise(sequence)) {
503 if (isPromise(sequence)) {
503 return sequence.then(res => firstWhere(
504 return sequence.then(res => firstWhere(
504 res,
505 res,
505 predicate as any /* force to pass undefined predicate */,
506 predicate as any /* force to pass undefined predicate */,
506 cb as any /* force to pass undefined cb */,
507 cb as any /* force to pass undefined cb */,
507 err)
508 err)
508 );
509 );
509 } else if (sequence && "length" in sequence) {
510 } else if (sequence && "length" in sequence) {
510 if (sequence.length === 0) {
511 if (sequence.length === 0) {
511 if (err)
512 if (err)
512 err(new Error("The sequence is empty"));
513 err(new Error("The sequence is empty"));
513 else
514 else
514 throw new Error("The sequence is empty");
515 throw new Error("The sequence is empty");
515 } else {
516 } else {
516 if (!predicate) {
517 if (!predicate) {
517 return cb ? cb(sequence[0]) && void (0) : sequence[0];
518 return cb ? cb(sequence[0]) && void (0) : sequence[0];
518 } else {
519 } else {
519 for (let i = 0; i < sequence.length; i++) {
520 for (let i = 0; i < sequence.length; i++) {
520 const v = sequence[i];
521 const v = sequence[i];
521 if (predicate(v))
522 if (predicate(v))
522 return cb ? cb(v) : v;
523 return cb ? cb(v) : v;
523 }
524 }
524 if (err)
525 if (err)
525 err(new Error("The sequence doesn't contain matching items"));
526 err(new Error("The sequence doesn't contain matching items"));
526 else
527 else
527 throw new Error("The sequence doesn't contain matching items");
528 throw new Error("The sequence doesn't contain matching items");
528 }
529 }
529 }
530 }
530 } else {
531 } else {
531 if (err)
532 if (err)
532 err(new Error("The sequence is required"));
533 err(new Error("The sequence is required"));
533 else
534 else
534 throw new Error("The sequence is required");
535 throw new Error("The sequence is required");
535 }
536 }
536 }
537 }
537
538
538 export function isDestroyable(d: any): d is IDestroyable {
539 export function isDestroyable(d: any): d is IDestroyable {
539 return !!(d && typeof d.destroy === "function");
540 return !!(d && typeof d.destroy === "function");
540 }
541 }
541
542
542 export function isRemovable(value: any): value is IRemovable {
543 export function isRemovable(value: any): value is IRemovable {
543 return !!(value && typeof value.remove === "function");
544 return !!(value && typeof value.remove === "function");
544 }
545 }
545
546
546 export function destroy(d: any) {
547 export function destroy(d: any) {
547 if (isDestroyable(d))
548 if (isDestroyable(d))
548 d.destroy();
549 d.destroy();
549 }
550 }
550
551
551 /**
552 /**
552 * Used to mark that the async operation isn't awaited intentionally.
553 * Used to mark that the async operation isn't awaited intentionally.
553 * @param p The promise which represents the async operation.
554 * @param p The promise which represents the async operation.
554 */
555 */
555 export function nowait(p: Promise<any>) {
556 export function nowait(p: Promise<any>) {
556 }
557 }
557
558
558 /** represents already destroyed object.
559 /** represents already destroyed object.
559 */
560 */
560 export const destroyed = {
561 export const destroyed = {
561 /** Calling to this method doesn't affect anything, noop.
562 /** Calling to this method doesn't affect anything, noop.
562 */
563 */
563 destroy() {
564 destroy() {
564 }
565 }
565 };
566 };
@@ -1,156 +1,210
1 import { Cancellation } from "../Cancellation";
1 import { Cancellation } from "../Cancellation";
2 import { ICancellation } from "../interfaces";
2 import { ICancellation } from "../interfaces";
3 import { first, isPromise, firstWhere, delay, nowait, notImplemented, debounce, fork } from "../safe";
3 import { first, isPromise, firstWhere, delay, nowait, notImplemented, debounce, fork } from "../safe";
4 import { test } from "./TestTraits";
4 import { test } from "./TestTraits";
5
5
6 test("await delay test", async t => {
6 test("await delay test", async t => {
7 // schedule delay
7 // schedule delay
8 let resolved = false;
8 let resolved = false;
9 let res = delay(0).then(() => resolved = true);
9 let res = delay(0).then(() => resolved = true);
10
10
11 t.false(resolved, "the delay should be async");
11 t.false(resolved, "the delay should be async");
12
12
13 await res;
13 await res;
14 t.pass("await delay");
14 t.pass("await delay");
15
15
16 // create cancellation token
16 // create cancellation token
17 let cancel: (e?: any) => void = notImplemented;
17 let cancel: (e?: any) => void = notImplemented;
18 const ct = new Cancellation(c => cancel = c);
18 const ct = new Cancellation(c => cancel = c);
19
19
20 // schedule delay
20 // schedule delay
21 resolved = false;
21 resolved = false;
22 res = delay(0, ct).then(() => resolved = true);
22 res = delay(0, ct).then(() => resolved = true);
23
23
24 t.false(resolved, "created delay with ct");
24 t.false(resolved, "created delay with ct");
25
25
26 // cancel
26 // cancel
27 cancel();
27 cancel();
28
28
29 try {
29 try {
30 await res;
30 await res;
31 t.fail("the delay should fail when it is cancelled");
31 t.fail("the delay should fail when it is cancelled");
32 } catch {
32 } catch {
33 t.pass("the delay is cancelled");
33 t.pass("the delay is cancelled");
34 }
34 }
35
35
36 t.throws(() => {
36 t.throws(() => {
37 // try schedule delay after the cancellation is requested
37 // try schedule delay after the cancellation is requested
38 nowait(delay(0, ct));
38 nowait(delay(0, ct));
39 }, "Should throw if cancelled before start");
39 }, "Should throw if cancelled before start");
40 });
40 });
41
41
42 test("sequemce test", async t => {
42 test("sequemce test", async t => {
43 const sequence = ["a", "b", "c"];
43 const sequence = ["a", "b", "c"];
44 const empty: string[] = [];
44 const empty: string[] = [];
45
45
46 // synchronous tests
46 // synchronous tests
47 t.equals(first(sequence), "a", "Should return the first element");
47 t.equals(first(sequence), "a", "Should return the first element");
48 t.equals(firstWhere(sequence, x => x === "b"), "b", "Should get the second element");
48 t.equals(firstWhere(sequence, x => x === "b"), "b", "Should get the second element");
49
49
50 let v: string | undefined;
50 let v: string | undefined;
51 let e: Error | undefined;
51 let e: Error | undefined;
52 first(sequence, x => v = x);
52 first(sequence, x => v = x);
53 t.equal(v, "a", "The callback should be called for the first element");
53 t.equal(v, "a", "The callback should be called for the first element");
54 firstWhere(sequence, x => x === "b", x => v = x);
54 firstWhere(sequence, x => x === "b", x => v = x);
55 t.equal(v, "b", "The callback should be called for the second element");
55 t.equal(v, "b", "The callback should be called for the second element");
56
56
57 t.throws(() => {
57 t.throws(() => {
58 first(empty);
58 first(empty);
59 }, "Should throw when the sequence is empty");
59 }, "Should throw when the sequence is empty");
60
60
61 t.throws(() => {
61 t.throws(() => {
62 firstWhere(empty, x => x === "b");
62 firstWhere(empty, x => x === "b");
63 }, "Should throw when the sequence is empty");
63 }, "Should throw when the sequence is empty");
64
64
65 t.throws(() => {
65 t.throws(() => {
66 first(empty, x => v = x);
66 first(empty, x => v = x);
67 }, "Should throw when the sequence is empty");
67 }, "Should throw when the sequence is empty");
68
68
69 t.throws(() => {
69 t.throws(() => {
70 firstWhere(empty, x => x === "b", x => v = x);
70 firstWhere(empty, x => x === "b", x => v = x);
71 }, "Should throw when the sequence is empty");
71 }, "Should throw when the sequence is empty");
72
72
73 t.throws(() => {
73 t.throws(() => {
74 firstWhere(sequence, x => x === "z");
74 firstWhere(sequence, x => x === "z");
75 }, "Should throw when the element isn't found");
75 }, "Should throw when the element isn't found");
76
76
77 t.throws(() => {
77 t.throws(() => {
78 firstWhere(sequence, x => x === "z", x => v = x);
78 firstWhere(sequence, x => x === "z", x => v = x);
79 }, "Should throw when the element isn't found");
79 }, "Should throw when the element isn't found");
80
80
81 first(empty, undefined, x => e = x);
81 first(empty, undefined, x => e = x);
82 t.true(e, "The errorback should be called for the empty sequence");
82 t.true(e, "The errorback should be called for the empty sequence");
83
83
84 // async tests
84 // async tests
85 const asyncSequence = Promise.resolve(sequence);
85 const asyncSequence = Promise.resolve(sequence);
86 const asyncEmptySequence = Promise.resolve(empty);
86 const asyncEmptySequence = Promise.resolve(empty);
87
87
88 const promise = first(asyncSequence);
88 const promise = first(asyncSequence);
89 t.true(isPromise(promise), "Should return promise");
89 t.true(isPromise(promise), "Should return promise");
90
90
91 v = await promise;
91 v = await promise;
92 t.equal(v, "a", "Should return the first element");
92 t.equal(v, "a", "Should return the first element");
93
93
94 v = await new Promise(resolve => first(asyncSequence, resolve));
94 v = await new Promise(resolve => first(asyncSequence, resolve));
95 t.equal(v, "a", "The callback should be called for the first element");
95 t.equal(v, "a", "The callback should be called for the first element");
96 });
96 });
97
97
98 test("debounce tests", async (t, trace) => {
98 test("debounce tests", async (t, trace) => {
99 let count = 0;
99 let count = 0;
100 let rejected = 0;
100 let rejected = 0;
101 function increment(step: number = 1) {
101 function increment(step: number = 1) {
102 count += step;
102 count += step;
103 return count;
103 return count;
104 }
104 }
105
105
106 const f = debounce(() => increment, 100);
106 const f = debounce(() => increment, 100);
107 f().then(undefined, () => rejected++);
107 f().then(undefined, () => rejected++);
108 f().then(undefined, () => rejected++);
108 f().then(undefined, () => rejected++);
109
109
110 await f(1);
110 await f(1);
111
111
112 t.equal(rejected, 2, "Previous operations should be rejected");
112 t.equal(rejected, 2, "Previous operations should be rejected");
113 t.equal(count, 1, "The operation should run once");
113 t.equal(count, 1, "The operation should run once");
114
114
115 const acc = debounce(
115 const acc = debounce(
116 () => (...values: number[]) => count = values.reduce((a, v) => v + a, count),
116 () => (...values: number[]) => count = values.reduce((a, v) => v + a, count),
117 100
117 100
118 );
118 );
119
119
120 acc(1, 2, 3).catch(() => { });
120 acc(1, 2, 3).catch(() => { });
121 const result = acc(1, 2, 3);
121 const result = acc(1, 2, 3);
122 acc.cancel();
122 acc.cancel();
123
123
124 try {
124 try {
125 await result;
125 await result;
126 t.notOk("fn.cancel() should make current operation to throw an exception");
126 t.notOk("fn.cancel() should make current operation to throw an exception");
127 } catch {
127 } catch {
128 t.ok("fn.cancel() should make current operation to throw an exception");
128 t.ok("fn.cancel() should make current operation to throw an exception");
129 }
129 }
130
130
131 t.equal(count, 1, "fn.cancel() The operation should not run");
131 t.equal(count, 1, "fn.cancel() The operation should not run");
132
132
133 acc.cancel();
133 acc.cancel();
134 await acc(1, 2);
134 await acc(1, 2);
135 t.equal(count, 4, "The variable arguments list shoud be handled correctly");
135 t.equal(count, 4, "The variable arguments list shoud be handled correctly");
136
136
137 // create cancellation token
137 // create cancellation token
138 let cancel: (e?: any) => void = notImplemented;
138 let cancel: (e?: any) => void = notImplemented;
139 const ct = new Cancellation(c => cancel = c);
139 const ct = new Cancellation(c => cancel = c);
140
140
141 const d = debounce(() => async (_ct: ICancellation) => {
141 const d = debounce(() => async (_ct: ICancellation) => {
142 _ct.throwIfRequested();
142 _ct.throwIfRequested();
143 trace.debug("do async increment");
143 trace.debug("do async increment");
144 await fork();
144 await fork();
145 count++;
145 count++;
146 return count;
146 return count;
147 }, 0);
147 }, 0);
148
148
149 const p = d(ct).then(undefined, () => rejected++);
149 const p = d(ct).then(undefined, () => rejected++);
150 cancel();
150 cancel();
151 await p;
151 await p;
152
152
153 t.equal(count, 4, "Cancellation token should prevent the function execution");
153 t.equal(count, 4, "Cancellation token should prevent the function execution");
154 t.equal(rejected, 3, "Cancellation token should reject operation");
154 t.equal(rejected, 3, "Cancellation token should reject operation");
155
155
156 });
156 });
157
158 test("async debounce test", async t => {
159 let rejected = 0;
160 let executed = 0;
161
162 const longTask = (ct = Cancellation.none) => {
163 executed++;
164 return delay(100, ct);
165 };
166
167 // d - can be cancelled
168 const d = debounce(ct => () => longTask(ct), 1);
169 d().catch(() => rejected++);
170 await delay(10);
171 t.equal(executed, 1, "first call should be executed");
172 await d();
173 t.equal(rejected, 1, "First call to debounced should be rejected");
174 });
175
176 test("async debounce test", async t => {
177 let rejected = 0;
178 let executed = 0;
179 let running = 0;
180
181 const start = () => {
182 if (running++)
183 throw new Error("The task started in parallel");
184 executed++;
185 };
186
187 const end = () => {
188 if (--running)
189 throw new Error("running !== 0");
190 };
191
192 const longTask = async (ct = Cancellation.none) => {
193 start();
194 try {
195 await delay(100, ct);
196 } finally {
197 end();
198 }
199 };
200
201 // d2 - can't be cancelled
202 const d2 = debounce(ct => () => longTask(), 1);
203 d2().catch(() => rejected++);
204 await delay(10);
205 t.equal(executed, 1, "first call should be executed");
206 const p = d2();
207 await delay(10);
208 t.equal(rejected, 0, "First call to debounced can't be rejected");
209 await p;
210 });
General Comments 0
You need to be logged in to leave comments. Login now