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