git.iko.soy/rowtype-yoga/purescript-yoga-json
on main help sign in
Add option for enums and more instances (#9)

Instances for `Either`, `JSDate`. And some bullshit coverage.

commitf9fb9d7b41cb503513d9f384b86f27616b316287 authorMark Eibes <mark.eibes@gmail.com> dateThu 21 Jul 2022, 14:45 (4 years ago) parent0e8a34c
12 files changed+3528−45
.github/workflows/ci.yml+1−1 .gitignore+2 .nycrc.json+8 README.md+12−3 package-lock.json+3381−1 package.json+10−1 spago.dhall+1 src/Yoga/JSON.purs+22 src/Yoga/JSON/Generics.purs+1−1 src/Yoga/JSON/Generics/EnumSumRep.purs+44−31 test/BasicsSpec.purs+19 test/GenericsSpec.purs+27−7
.github/workflows/ci.yml+1−1
@@ -34,4 +34,4 @@ jobs:
3434 - run: npm install
3535 - run: spago build
3636
37− - run: spago -x test.dhall test
37+ - run: npm run coverage
.gitignore+2
@@ -6,3 +6,5 @@
66/.purs*
77/.psa*
88/.spago/
9+/.nyc_output/
10+/coverage/
.nycrc.jsonnew file+8
@@ -0,0 +1,8 @@
1+{
2+ "all": true,
3+ "extension": [".purs"],
4+ "include": [ "src/**/*.purs"],
5+ "exclude": [ "src/Yoga/JSON/Generics.purs"],
6+ "excludeAfterRemap": true,
7+ "sourceMap": true
8+}
README.md+12−3
@@ -20,24 +20,33 @@ Check out the tests for how to encode/decode increasingly complex types.
2020
2121## Migrate from `purescript-simple-json`
2222
23−`purescript-yoga-json` is a drop-in replacement for `purescript-simple-json`. Just change the imports from `Simple.JSON` to `Yoga.JSON`.
23+`purescript-yoga-json` is almost (read below if you use variants) a drop-in replacement for `purescript-simple-json`. Just change the imports from `Simple.JSON` to `Yoga.JSON`.
2424
25−## Differences to `simple-json`
25+## Additions over `simple-json`
2626
2727### Tuples
2828There is an inbuilt codec for `Tuple`s thanks to @ursi
29+`yoga-json` represents tuples as arrays in JSON.
30+
31+### Tuples
32+There is an inbuilt codec for `Either`s.
33+`yoga-json` represents eithers as objects with a `type` and a `value` tag in JSON.
2934
3035### Generics
3136It includes @justinwoo's codecs for en- and decoding generics inspired by
3237[simple-json-generics](https://github.com/justinwoo/purescript-simple-json-generics)
3338
39+It is possible to customise the representation of enums, tagged sum types, and untagged sum types via options.
40+
3441### BigInts
3542It can *read* bigints (if you install `big-integer` as a JS dependency).
3643
3744### 💣 Cannot write bigints as bigints but only strings
3845It seems that there is no way to write bigints in JavaScript except for writing your own `JSON.stringify`.
3946
40−### 💣 The Variant Codec is different
47+## Differences to `simple-json`
48+
49+### 💣 Variant codec
4150If you want to emulate `simple-json`'s format you may use the newtype `TaggedVariant`
4251
4352```purescript
package-lock.json+3381−1
@@ -6,22 +6,3402 @@
66 "": {
77 "dependencies": {
88 "big-integer": "^1.6.51"
9+ },
10+ "devDependencies": {
11+ "c8": "^7.12.0",
12+ "nyc": "^15.1.0",
13+ "rimraf": "^3.0.2"
914 }
1015 },
16+ "node_modules/@ampproject/remapping": {
17+ "version": "2.2.0",
18+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
19+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
20+ "dev": true,
21+ "dependencies": {
22+ "@jridgewell/gen-mapping": "^0.1.0",
23+ "@jridgewell/trace-mapping": "^0.3.9"
24+ },
25+ "engines": {
26+ "node": ">=6.0.0"
27+ }
28+ },
29+ "node_modules/@babel/code-frame": {
30+ "version": "7.18.6",
31+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
32+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
33+ "dev": true,
34+ "dependencies": {
35+ "@babel/highlight": "^7.18.6"
36+ },
37+ "engines": {
38+ "node": ">=6.9.0"
39+ }
40+ },
41+ "node_modules/@babel/compat-data": {
42+ "version": "7.18.8",
43+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
44+ "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
45+ "dev": true,
46+ "engines": {
47+ "node": ">=6.9.0"
48+ }
49+ },
50+ "node_modules/@babel/core": {
51+ "version": "7.18.9",
52+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz",
53+ "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==",
54+ "dev": true,
55+ "dependencies": {
56+ "@ampproject/remapping": "^2.1.0",
57+ "@babel/code-frame": "^7.18.6",
58+ "@babel/generator": "^7.18.9",
59+ "@babel/helper-compilation-targets": "^7.18.9",
60+ "@babel/helper-module-transforms": "^7.18.9",
61+ "@babel/helpers": "^7.18.9",
62+ "@babel/parser": "^7.18.9",
63+ "@babel/template": "^7.18.6",
64+ "@babel/traverse": "^7.18.9",
65+ "@babel/types": "^7.18.9",
66+ "convert-source-map": "^1.7.0",
67+ "debug": "^4.1.0",
68+ "gensync": "^1.0.0-beta.2",
69+ "json5": "^2.2.1",
70+ "semver": "^6.3.0"
71+ },
72+ "engines": {
73+ "node": ">=6.9.0"
74+ },
75+ "funding": {
76+ "type": "opencollective",
77+ "url": "https://opencollective.com/babel"
78+ }
79+ },
80+ "node_modules/@babel/generator": {
81+ "version": "7.18.9",
82+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
83+ "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
84+ "dev": true,
85+ "dependencies": {
86+ "@babel/types": "^7.18.9",
87+ "@jridgewell/gen-mapping": "^0.3.2",
88+ "jsesc": "^2.5.1"
89+ },
90+ "engines": {
91+ "node": ">=6.9.0"
92+ }
93+ },
94+ "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
95+ "version": "0.3.2",
96+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
97+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
98+ "dev": true,
99+ "dependencies": {
100+ "@jridgewell/set-array": "^1.0.1",
101+ "@jridgewell/sourcemap-codec": "^1.4.10",
102+ "@jridgewell/trace-mapping": "^0.3.9"
103+ },
104+ "engines": {
105+ "node": ">=6.0.0"
106+ }
107+ },
108+ "node_modules/@babel/helper-compilation-targets": {
109+ "version": "7.18.9",
110+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
111+ "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
112+ "dev": true,
113+ "dependencies": {
114+ "@babel/compat-data": "^7.18.8",
115+ "@babel/helper-validator-option": "^7.18.6",
116+ "browserslist": "^4.20.2",
117+ "semver": "^6.3.0"
118+ },
119+ "engines": {
120+ "node": ">=6.9.0"
121+ },
122+ "peerDependencies": {
123+ "@babel/core": "^7.0.0"
124+ }
125+ },
126+ "node_modules/@babel/helper-environment-visitor": {
127+ "version": "7.18.9",
128+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
129+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
130+ "dev": true,
131+ "engines": {
132+ "node": ">=6.9.0"
133+ }
134+ },
135+ "node_modules/@babel/helper-function-name": {
136+ "version": "7.18.9",
137+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
138+ "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
139+ "dev": true,
140+ "dependencies": {
141+ "@babel/template": "^7.18.6",
142+ "@babel/types": "^7.18.9"
143+ },
144+ "engines": {
145+ "node": ">=6.9.0"
146+ }
147+ },
148+ "node_modules/@babel/helper-hoist-variables": {
149+ "version": "7.18.6",
150+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
151+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
152+ "dev": true,
153+ "dependencies": {
154+ "@babel/types": "^7.18.6"
155+ },
156+ "engines": {
157+ "node": ">=6.9.0"
158+ }
159+ },
160+ "node_modules/@babel/helper-module-imports": {
161+ "version": "7.18.6",
162+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
163+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
164+ "dev": true,
165+ "dependencies": {
166+ "@babel/types": "^7.18.6"
167+ },
168+ "engines": {
169+ "node": ">=6.9.0"
170+ }
171+ },
172+ "node_modules/@babel/helper-module-transforms": {
173+ "version": "7.18.9",
174+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
175+ "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
176+ "dev": true,
177+ "dependencies": {
178+ "@babel/helper-environment-visitor": "^7.18.9",
179+ "@babel/helper-module-imports": "^7.18.6",
180+ "@babel/helper-simple-access": "^7.18.6",
181+ "@babel/helper-split-export-declaration": "^7.18.6",
182+ "@babel/helper-validator-identifier": "^7.18.6",
183+ "@babel/template": "^7.18.6",
184+ "@babel/traverse": "^7.18.9",
185+ "@babel/types": "^7.18.9"
186+ },
187+ "engines": {
188+ "node": ">=6.9.0"
189+ }
190+ },
191+ "node_modules/@babel/helper-simple-access": {
192+ "version": "7.18.6",
193+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
194+ "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
195+ "dev": true,
196+ "dependencies": {
197+ "@babel/types": "^7.18.6"
198+ },
199+ "engines": {
200+ "node": ">=6.9.0"
201+ }
202+ },
203+ "node_modules/@babel/helper-split-export-declaration": {
204+ "version": "7.18.6",
205+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
206+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
207+ "dev": true,
208+ "dependencies": {
209+ "@babel/types": "^7.18.6"
210+ },
211+ "engines": {
212+ "node": ">=6.9.0"
213+ }
214+ },
215+ "node_modules/@babel/helper-validator-identifier": {
216+ "version": "7.18.6",
217+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
218+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
219+ "dev": true,
220+ "engines": {
221+ "node": ">=6.9.0"
222+ }
223+ },
224+ "node_modules/@babel/helper-validator-option": {
225+ "version": "7.18.6",
226+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
227+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
228+ "dev": true,
229+ "engines": {
230+ "node": ">=6.9.0"
231+ }
232+ },
233+ "node_modules/@babel/helpers": {
234+ "version": "7.18.9",
235+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
236+ "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
237+ "dev": true,
238+ "dependencies": {
239+ "@babel/template": "^7.18.6",
240+ "@babel/traverse": "^7.18.9",
241+ "@babel/types": "^7.18.9"
242+ },
243+ "engines": {
244+ "node": ">=6.9.0"
245+ }
246+ },
247+ "node_modules/@babel/highlight": {
248+ "version": "7.18.6",
249+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
250+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
251+ "dev": true,
252+ "dependencies": {
253+ "@babel/helper-validator-identifier": "^7.18.6",
254+ "chalk": "^2.0.0",
255+ "js-tokens": "^4.0.0"
256+ },
257+ "engines": {
258+ "node": ">=6.9.0"
259+ }
260+ },
261+ "node_modules/@babel/parser": {
262+ "version": "7.18.9",
263+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
264+ "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
265+ "dev": true,
266+ "bin": {
267+ "parser": "bin/babel-parser.js"
268+ },
269+ "engines": {
270+ "node": ">=6.0.0"
271+ }
272+ },
273+ "node_modules/@babel/template": {
274+ "version": "7.18.6",
275+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
276+ "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
277+ "dev": true,
278+ "dependencies": {
279+ "@babel/code-frame": "^7.18.6",
280+ "@babel/parser": "^7.18.6",
281+ "@babel/types": "^7.18.6"
282+ },
283+ "engines": {
284+ "node": ">=6.9.0"
285+ }
286+ },
287+ "node_modules/@babel/traverse": {
288+ "version": "7.18.9",
289+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
290+ "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
291+ "dev": true,
292+ "dependencies": {
293+ "@babel/code-frame": "^7.18.6",
294+ "@babel/generator": "^7.18.9",
295+ "@babel/helper-environment-visitor": "^7.18.9",
296+ "@babel/helper-function-name": "^7.18.9",
297+ "@babel/helper-hoist-variables": "^7.18.6",
298+ "@babel/helper-split-export-declaration": "^7.18.6",
299+ "@babel/parser": "^7.18.9",
300+ "@babel/types": "^7.18.9",
301+ "debug": "^4.1.0",
302+ "globals": "^11.1.0"
303+ },
304+ "engines": {
305+ "node": ">=6.9.0"
306+ }
307+ },
308+ "node_modules/@babel/types": {
309+ "version": "7.18.9",
310+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
311+ "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
312+ "dev": true,
313+ "dependencies": {
314+ "@babel/helper-validator-identifier": "^7.18.6",
315+ "to-fast-properties": "^2.0.0"
316+ },
317+ "engines": {
318+ "node": ">=6.9.0"
319+ }
320+ },
321+ "node_modules/@bcoe/v8-coverage": {
322+ "version": "0.2.3",
323+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
324+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
325+ "dev": true
326+ },
327+ "node_modules/@istanbuljs/load-nyc-config": {
328+ "version": "1.1.0",
329+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
330+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
331+ "dev": true,
332+ "dependencies": {
333+ "camelcase": "^5.3.1",
334+ "find-up": "^4.1.0",
335+ "get-package-type": "^0.1.0",
336+ "js-yaml": "^3.13.1",
337+ "resolve-from": "^5.0.0"
338+ },
339+ "engines": {
340+ "node": ">=8"
341+ }
342+ },
343+ "node_modules/@istanbuljs/schema": {
344+ "version": "0.1.3",
345+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
346+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
347+ "dev": true,
348+ "engines": {
349+ "node": ">=8"
350+ }
351+ },
352+ "node_modules/@jridgewell/gen-mapping": {
353+ "version": "0.1.1",
354+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
355+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
356+ "dev": true,
357+ "dependencies": {
358+ "@jridgewell/set-array": "^1.0.0",
359+ "@jridgewell/sourcemap-codec": "^1.4.10"
360+ },
361+ "engines": {
362+ "node": ">=6.0.0"
363+ }
364+ },
365+ "node_modules/@jridgewell/resolve-uri": {
366+ "version": "3.1.0",
367+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
368+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
369+ "dev": true,
370+ "engines": {
371+ "node": ">=6.0.0"
372+ }
373+ },
374+ "node_modules/@jridgewell/set-array": {
375+ "version": "1.1.2",
376+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
377+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
378+ "dev": true,
379+ "engines": {
380+ "node": ">=6.0.0"
381+ }
382+ },
383+ "node_modules/@jridgewell/sourcemap-codec": {
384+ "version": "1.4.14",
385+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
386+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
387+ "dev": true
388+ },
389+ "node_modules/@jridgewell/trace-mapping": {
390+ "version": "0.3.14",
391+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
392+ "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
393+ "dev": true,
394+ "dependencies": {
395+ "@jridgewell/resolve-uri": "^3.0.3",
396+ "@jridgewell/sourcemap-codec": "^1.4.10"
397+ }
398+ },
399+ "node_modules/@types/istanbul-lib-coverage": {
400+ "version": "2.0.4",
401+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
402+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
403+ "dev": true
404+ },
405+ "node_modules/aggregate-error": {
406+ "version": "3.1.0",
407+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
408+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
409+ "dev": true,
410+ "dependencies": {
411+ "clean-stack": "^2.0.0",
412+ "indent-string": "^4.0.0"
413+ },
414+ "engines": {
415+ "node": ">=8"
416+ }
417+ },
418+ "node_modules/ansi-regex": {
419+ "version": "5.0.1",
420+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
421+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
422+ "dev": true,
423+ "engines": {
424+ "node": ">=8"
425+ }
426+ },
427+ "node_modules/ansi-styles": {
428+ "version": "3.2.1",
429+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
430+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
431+ "dev": true,
432+ "dependencies": {
433+ "color-convert": "^1.9.0"
434+ },
435+ "engines": {
436+ "node": ">=4"
437+ }
438+ },
439+ "node_modules/append-transform": {
440+ "version": "2.0.0",
441+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
442+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
443+ "dev": true,
444+ "dependencies": {
445+ "default-require-extensions": "^3.0.0"
446+ },
447+ "engines": {
448+ "node": ">=8"
449+ }
450+ },
451+ "node_modules/archy": {
452+ "version": "1.0.0",
453+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
454+ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
455+ "dev": true
456+ },
457+ "node_modules/argparse": {
458+ "version": "1.0.10",
459+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
460+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
461+ "dev": true,
462+ "dependencies": {
463+ "sprintf-js": "~1.0.2"
464+ }
465+ },
466+ "node_modules/balanced-match": {
467+ "version": "1.0.2",
468+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
469+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
470+ "dev": true
471+ },
11472 "node_modules/big-integer": {
12473 "version": "1.6.51",
13474 "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
14475 "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
15476 "engines": {
16− "node": ">=0.6"
477+ "node": ">=0.6"
478+ }
479+ },
480+ "node_modules/brace-expansion": {
481+ "version": "1.1.11",
482+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
483+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
484+ "dev": true,
485+ "dependencies": {
486+ "balanced-match": "^1.0.0",
487+ "concat-map": "0.0.1"
488+ }
489+ },
490+ "node_modules/browserslist": {
491+ "version": "4.21.2",
492+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz",
493+ "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==",
494+ "dev": true,
495+ "funding": [
496+ {
497+ "type": "opencollective",
498+ "url": "https://opencollective.com/browserslist"
499+ },
500+ {
501+ "type": "tidelift",
502+ "url": "https://tidelift.com/funding/github/npm/browserslist"
503+ }
504+ ],
505+ "dependencies": {
506+ "caniuse-lite": "^1.0.30001366",
507+ "electron-to-chromium": "^1.4.188",
508+ "node-releases": "^2.0.6",
509+ "update-browserslist-db": "^1.0.4"
510+ },
511+ "bin": {
512+ "browserslist": "cli.js"
513+ },
514+ "engines": {
515+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
516+ }
517+ },
518+ "node_modules/c8": {
519+ "version": "7.12.0",
520+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz",
521+ "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==",
522+ "dev": true,
523+ "dependencies": {
524+ "@bcoe/v8-coverage": "^0.2.3",
525+ "@istanbuljs/schema": "^0.1.3",
526+ "find-up": "^5.0.0",
527+ "foreground-child": "^2.0.0",
528+ "istanbul-lib-coverage": "^3.2.0",
529+ "istanbul-lib-report": "^3.0.0",
530+ "istanbul-reports": "^3.1.4",
531+ "rimraf": "^3.0.2",
532+ "test-exclude": "^6.0.0",
533+ "v8-to-istanbul": "^9.0.0",
534+ "yargs": "^16.2.0",
535+ "yargs-parser": "^20.2.9"
536+ },
537+ "bin": {
538+ "c8": "bin/c8.js"
539+ },
540+ "engines": {
541+ "node": ">=10.12.0"
542+ }
543+ },
544+ "node_modules/c8/node_modules/ansi-styles": {
545+ "version": "4.3.0",
546+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
547+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
548+ "dev": true,
549+ "dependencies": {
550+ "color-convert": "^2.0.1"
551+ },
552+ "engines": {
553+ "node": ">=8"
554+ },
555+ "funding": {
556+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
557+ }
558+ },
559+ "node_modules/c8/node_modules/cliui": {
560+ "version": "7.0.4",
561+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
562+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
563+ "dev": true,
564+ "dependencies": {
565+ "string-width": "^4.2.0",
566+ "strip-ansi": "^6.0.0",
567+ "wrap-ansi": "^7.0.0"
568+ }
569+ },
570+ "node_modules/c8/node_modules/color-convert": {
571+ "version": "2.0.1",
572+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
573+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
574+ "dev": true,
575+ "dependencies": {
576+ "color-name": "~1.1.4"
577+ },
578+ "engines": {
579+ "node": ">=7.0.0"
580+ }
581+ },
582+ "node_modules/c8/node_modules/color-name": {
583+ "version": "1.1.4",
584+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
585+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
586+ "dev": true
587+ },
588+ "node_modules/c8/node_modules/find-up": {
589+ "version": "5.0.0",
590+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
591+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
592+ "dev": true,
593+ "dependencies": {
594+ "locate-path": "^6.0.0",
595+ "path-exists": "^4.0.0"
596+ },
597+ "engines": {
598+ "node": ">=10"
599+ },
600+ "funding": {
601+ "url": "https://github.com/sponsors/sindresorhus"
602+ }
603+ },
604+ "node_modules/c8/node_modules/locate-path": {
605+ "version": "6.0.0",
606+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
607+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
608+ "dev": true,
609+ "dependencies": {
610+ "p-locate": "^5.0.0"
611+ },
612+ "engines": {
613+ "node": ">=10"
614+ },
615+ "funding": {
616+ "url": "https://github.com/sponsors/sindresorhus"
617+ }
618+ },
619+ "node_modules/c8/node_modules/p-limit": {
620+ "version": "3.1.0",
621+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
622+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
623+ "dev": true,
624+ "dependencies": {
625+ "yocto-queue": "^0.1.0"
626+ },
627+ "engines": {
628+ "node": ">=10"
629+ },
630+ "funding": {
631+ "url": "https://github.com/sponsors/sindresorhus"
632+ }
633+ },
634+ "node_modules/c8/node_modules/p-locate": {
635+ "version": "5.0.0",
636+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
637+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
638+ "dev": true,
639+ "dependencies": {
640+ "p-limit": "^3.0.2"
641+ },
642+ "engines": {
643+ "node": ">=10"
644+ },
645+ "funding": {
646+ "url": "https://github.com/sponsors/sindresorhus"
647+ }
648+ },
649+ "node_modules/c8/node_modules/wrap-ansi": {
650+ "version": "7.0.0",
651+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
652+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
653+ "dev": true,
654+ "dependencies": {
655+ "ansi-styles": "^4.0.0",
656+ "string-width": "^4.1.0",
657+ "strip-ansi": "^6.0.0"
658+ },
659+ "engines": {
660+ "node": ">=10"
661+ },
662+ "funding": {
663+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
664+ }
665+ },
666+ "node_modules/c8/node_modules/y18n": {
667+ "version": "5.0.8",
668+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
669+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
670+ "dev": true,
671+ "engines": {
672+ "node": ">=10"
673+ }
674+ },
675+ "node_modules/c8/node_modules/yargs": {
676+ "version": "16.2.0",
677+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
678+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
679+ "dev": true,
680+ "dependencies": {
681+ "cliui": "^7.0.2",
682+ "escalade": "^3.1.1",
683+ "get-caller-file": "^2.0.5",
684+ "require-directory": "^2.1.1",
685+ "string-width": "^4.2.0",
686+ "y18n": "^5.0.5",
687+ "yargs-parser": "^20.2.2"
688+ },
689+ "engines": {
690+ "node": ">=10"
691+ }
692+ },
693+ "node_modules/c8/node_modules/yargs-parser": {
694+ "version": "20.2.9",
695+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
696+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
697+ "dev": true,
698+ "engines": {
699+ "node": ">=10"
700+ }
701+ },
702+ "node_modules/caching-transform": {
703+ "version": "4.0.0",
704+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
705+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
706+ "dev": true,
707+ "dependencies": {
708+ "hasha": "^5.0.0",
709+ "make-dir": "^3.0.0",
710+ "package-hash": "^4.0.0",
711+ "write-file-atomic": "^3.0.0"
712+ },
713+ "engines": {
714+ "node": ">=8"
715+ }
716+ },
717+ "node_modules/camelcase": {
718+ "version": "5.3.1",
719+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
720+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
721+ "dev": true,
722+ "engines": {
723+ "node": ">=6"
724+ }
725+ },
726+ "node_modules/caniuse-lite": {
727+ "version": "1.0.30001368",
728+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001368.tgz",
729+ "integrity": "sha512-wgfRYa9DenEomLG/SdWgQxpIyvdtH3NW8Vq+tB6AwR9e56iOIcu1im5F/wNdDf04XlKHXqIx4N8Jo0PemeBenQ==",
730+ "dev": true,
731+ "funding": [
732+ {
733+ "type": "opencollective",
734+ "url": "https://opencollective.com/browserslist"
735+ },
736+ {
737+ "type": "tidelift",
738+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
739+ }
740+ ]
741+ },
742+ "node_modules/chalk": {
743+ "version": "2.4.2",
744+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
745+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
746+ "dev": true,
747+ "dependencies": {
748+ "ansi-styles": "^3.2.1",
749+ "escape-string-regexp": "^1.0.5",
750+ "supports-color": "^5.3.0"
751+ },
752+ "engines": {
753+ "node": ">=4"
754+ }
755+ },
756+ "node_modules/clean-stack": {
757+ "version": "2.2.0",
758+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
759+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
760+ "dev": true,
761+ "engines": {
762+ "node": ">=6"
763+ }
764+ },
765+ "node_modules/cliui": {
766+ "version": "6.0.0",
767+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
768+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
769+ "dev": true,
770+ "dependencies": {
771+ "string-width": "^4.2.0",
772+ "strip-ansi": "^6.0.0",
773+ "wrap-ansi": "^6.2.0"
774+ }
775+ },
776+ "node_modules/color-convert": {
777+ "version": "1.9.3",
778+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
779+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
780+ "dev": true,
781+ "dependencies": {
782+ "color-name": "1.1.3"
783+ }
784+ },
785+ "node_modules/color-name": {
786+ "version": "1.1.3",
787+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
788+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
789+ "dev": true
790+ },
791+ "node_modules/commondir": {
792+ "version": "1.0.1",
793+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
794+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
795+ "dev": true
796+ },
797+ "node_modules/concat-map": {
798+ "version": "0.0.1",
799+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
800+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
801+ "dev": true
802+ },
803+ "node_modules/convert-source-map": {
804+ "version": "1.8.0",
805+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
806+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
807+ "dev": true,
808+ "dependencies": {
809+ "safe-buffer": "~5.1.1"
810+ }
811+ },
812+ "node_modules/cross-spawn": {
813+ "version": "7.0.3",
814+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
815+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
816+ "dev": true,
817+ "dependencies": {
818+ "path-key": "^3.1.0",
819+ "shebang-command": "^2.0.0",
820+ "which": "^2.0.1"
821+ },
822+ "engines": {
823+ "node": ">= 8"
824+ }
825+ },
826+ "node_modules/debug": {
827+ "version": "4.3.4",
828+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
829+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
830+ "dev": true,
831+ "dependencies": {
832+ "ms": "2.1.2"
833+ },
834+ "engines": {
835+ "node": ">=6.0"
836+ },
837+ "peerDependenciesMeta": {
838+ "supports-color": {
839+ "optional": true
840+ }
841+ }
842+ },
843+ "node_modules/decamelize": {
844+ "version": "1.2.0",
845+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
846+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
847+ "dev": true,
848+ "engines": {
849+ "node": ">=0.10.0"
850+ }
851+ },
852+ "node_modules/default-require-extensions": {
853+ "version": "3.0.0",
854+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
855+ "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
856+ "dev": true,
857+ "dependencies": {
858+ "strip-bom": "^4.0.0"
859+ },
860+ "engines": {
861+ "node": ">=8"
862+ }
863+ },
864+ "node_modules/electron-to-chromium": {
865+ "version": "1.4.196",
866+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.196.tgz",
867+ "integrity": "sha512-uxMa/Dt7PQsLBVXwH+t6JvpHJnrsYBaxWKi/J6HE+/nBtoHENhwBoNkgkm226/Kfxeg0z1eMQLBRPPKcDH8xWA==",
868+ "dev": true
869+ },
870+ "node_modules/emoji-regex": {
871+ "version": "8.0.0",
872+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
873+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
874+ "dev": true
875+ },
876+ "node_modules/es6-error": {
877+ "version": "4.1.1",
878+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
879+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
880+ "dev": true
881+ },
882+ "node_modules/escalade": {
883+ "version": "3.1.1",
884+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
885+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
886+ "dev": true,
887+ "engines": {
888+ "node": ">=6"
889+ }
890+ },
891+ "node_modules/escape-string-regexp": {
892+ "version": "1.0.5",
893+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
894+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
895+ "dev": true,
896+ "engines": {
897+ "node": ">=0.8.0"
898+ }
899+ },
900+ "node_modules/esprima": {
901+ "version": "4.0.1",
902+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
903+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
904+ "dev": true,
905+ "bin": {
906+ "esparse": "bin/esparse.js",
907+ "esvalidate": "bin/esvalidate.js"
908+ },
909+ "engines": {
910+ "node": ">=4"
911+ }
912+ },
913+ "node_modules/find-cache-dir": {
914+ "version": "3.3.2",
915+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
916+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
917+ "dev": true,
918+ "dependencies": {
919+ "commondir": "^1.0.1",
920+ "make-dir": "^3.0.2",
921+ "pkg-dir": "^4.1.0"
922+ },
923+ "engines": {
924+ "node": ">=8"
925+ },
926+ "funding": {
927+ "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
928+ }
929+ },
930+ "node_modules/find-up": {
931+ "version": "4.1.0",
932+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
933+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
934+ "dev": true,
935+ "dependencies": {
936+ "locate-path": "^5.0.0",
937+ "path-exists": "^4.0.0"
938+ },
939+ "engines": {
940+ "node": ">=8"
941+ }
942+ },
943+ "node_modules/foreground-child": {
944+ "version": "2.0.0",
945+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
946+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
947+ "dev": true,
948+ "dependencies": {
949+ "cross-spawn": "^7.0.0",
950+ "signal-exit": "^3.0.2"
951+ },
952+ "engines": {
953+ "node": ">=8.0.0"
954+ }
955+ },
956+ "node_modules/fromentries": {
957+ "version": "1.3.2",
958+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
959+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
960+ "dev": true,
961+ "funding": [
962+ {
963+ "type": "github",
964+ "url": "https://github.com/sponsors/feross"
965+ },
966+ {
967+ "type": "patreon",
968+ "url": "https://www.patreon.com/feross"
969+ },
970+ {
971+ "type": "consulting",
972+ "url": "https://feross.org/support"
973+ }
974+ ]
975+ },
976+ "node_modules/fs.realpath": {
977+ "version": "1.0.0",
978+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
979+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
980+ "dev": true
981+ },
982+ "node_modules/gensync": {
983+ "version": "1.0.0-beta.2",
984+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
985+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
986+ "dev": true,
987+ "engines": {
988+ "node": ">=6.9.0"
989+ }
990+ },
991+ "node_modules/get-caller-file": {
992+ "version": "2.0.5",
993+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
994+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
995+ "dev": true,
996+ "engines": {
997+ "node": "6.* || 8.* || >= 10.*"
998+ }
999+ },
1000+ "node_modules/get-package-type": {
1001+ "version": "0.1.0",
1002+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
1003+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
1004+ "dev": true,
1005+ "engines": {
1006+ "node": ">=8.0.0"
1007+ }
1008+ },
1009+ "node_modules/glob": {
1010+ "version": "7.2.3",
1011+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1012+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1013+ "dev": true,
1014+ "dependencies": {
1015+ "fs.realpath": "^1.0.0",
1016+ "inflight": "^1.0.4",
1017+ "inherits": "2",
1018+ "minimatch": "^3.1.1",
1019+ "once": "^1.3.0",
1020+ "path-is-absolute": "^1.0.0"
1021+ },
1022+ "engines": {
1023+ "node": "*"
1024+ },
1025+ "funding": {
1026+ "url": "https://github.com/sponsors/isaacs"
1027+ }
1028+ },
1029+ "node_modules/globals": {
1030+ "version": "11.12.0",
1031+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1032+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1033+ "dev": true,
1034+ "engines": {
1035+ "node": ">=4"
1036+ }
1037+ },
1038+ "node_modules/graceful-fs": {
1039+ "version": "4.2.10",
1040+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
1041+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
1042+ "dev": true
1043+ },
1044+ "node_modules/has-flag": {
1045+ "version": "3.0.0",
1046+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1047+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1048+ "dev": true,
1049+ "engines": {
1050+ "node": ">=4"
1051+ }
1052+ },
1053+ "node_modules/hasha": {
1054+ "version": "5.2.2",
1055+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
1056+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
1057+ "dev": true,
1058+ "dependencies": {
1059+ "is-stream": "^2.0.0",
1060+ "type-fest": "^0.8.0"
1061+ },
1062+ "engines": {
1063+ "node": ">=8"
1064+ },
1065+ "funding": {
1066+ "url": "https://github.com/sponsors/sindresorhus"
1067+ }
1068+ },
1069+ "node_modules/html-escaper": {
1070+ "version": "2.0.2",
1071+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
1072+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
1073+ "dev": true
1074+ },
1075+ "node_modules/imurmurhash": {
1076+ "version": "0.1.4",
1077+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1078+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
1079+ "dev": true,
1080+ "engines": {
1081+ "node": ">=0.8.19"
1082+ }
1083+ },
1084+ "node_modules/indent-string": {
1085+ "version": "4.0.0",
1086+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1087+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
1088+ "dev": true,
1089+ "engines": {
1090+ "node": ">=8"
1091+ }
1092+ },
1093+ "node_modules/inflight": {
1094+ "version": "1.0.6",
1095+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1096+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1097+ "dev": true,
1098+ "dependencies": {
1099+ "once": "^1.3.0",
1100+ "wrappy": "1"
1101+ }
1102+ },
1103+ "node_modules/inherits": {
1104+ "version": "2.0.4",
1105+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1106+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1107+ "dev": true
1108+ },
1109+ "node_modules/is-fullwidth-code-point": {
1110+ "version": "3.0.0",
1111+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1112+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1113+ "dev": true,
1114+ "engines": {
1115+ "node": ">=8"
1116+ }
1117+ },
1118+ "node_modules/is-stream": {
1119+ "version": "2.0.1",
1120+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1121+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
1122+ "dev": true,
1123+ "engines": {
1124+ "node": ">=8"
1125+ },
1126+ "funding": {
1127+ "url": "https://github.com/sponsors/sindresorhus"
1128+ }
1129+ },
1130+ "node_modules/is-typedarray": {
1131+ "version": "1.0.0",
1132+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1133+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
1134+ "dev": true
1135+ },
1136+ "node_modules/is-windows": {
1137+ "version": "1.0.2",
1138+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1139+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
1140+ "dev": true,
1141+ "engines": {
1142+ "node": ">=0.10.0"
1143+ }
1144+ },
1145+ "node_modules/isexe": {
1146+ "version": "2.0.0",
1147+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1148+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1149+ "dev": true
1150+ },
1151+ "node_modules/istanbul-lib-coverage": {
1152+ "version": "3.2.0",
1153+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
1154+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
1155+ "dev": true,
1156+ "engines": {
1157+ "node": ">=8"
1158+ }
1159+ },
1160+ "node_modules/istanbul-lib-hook": {
1161+ "version": "3.0.0",
1162+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
1163+ "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
1164+ "dev": true,
1165+ "dependencies": {
1166+ "append-transform": "^2.0.0"
1167+ },
1168+ "engines": {
1169+ "node": ">=8"
1170+ }
1171+ },
1172+ "node_modules/istanbul-lib-instrument": {
1173+ "version": "4.0.3",
1174+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
1175+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
1176+ "dev": true,
1177+ "dependencies": {
1178+ "@babel/core": "^7.7.5",
1179+ "@istanbuljs/schema": "^0.1.2",
1180+ "istanbul-lib-coverage": "^3.0.0",
1181+ "semver": "^6.3.0"
1182+ },
1183+ "engines": {
1184+ "node": ">=8"
1185+ }
1186+ },
1187+ "node_modules/istanbul-lib-processinfo": {
1188+ "version": "2.0.3",
1189+ "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
1190+ "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
1191+ "dev": true,
1192+ "dependencies": {
1193+ "archy": "^1.0.0",
1194+ "cross-spawn": "^7.0.3",
1195+ "istanbul-lib-coverage": "^3.2.0",
1196+ "p-map": "^3.0.0",
1197+ "rimraf": "^3.0.0",
1198+ "uuid": "^8.3.2"
1199+ },
1200+ "engines": {
1201+ "node": ">=8"
1202+ }
1203+ },
1204+ "node_modules/istanbul-lib-report": {
1205+ "version": "3.0.0",
1206+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
1207+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
1208+ "dev": true,
1209+ "dependencies": {
1210+ "istanbul-lib-coverage": "^3.0.0",
1211+ "make-dir": "^3.0.0",
1212+ "supports-color": "^7.1.0"
1213+ },
1214+ "engines": {
1215+ "node": ">=8"
1216+ }
1217+ },
1218+ "node_modules/istanbul-lib-report/node_modules/has-flag": {
1219+ "version": "4.0.0",
1220+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1221+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1222+ "dev": true,
1223+ "engines": {
1224+ "node": ">=8"
1225+ }
1226+ },
1227+ "node_modules/istanbul-lib-report/node_modules/supports-color": {
1228+ "version": "7.2.0",
1229+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1230+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1231+ "dev": true,
1232+ "dependencies": {
1233+ "has-flag": "^4.0.0"
1234+ },
1235+ "engines": {
1236+ "node": ">=8"
1237+ }
1238+ },
1239+ "node_modules/istanbul-lib-source-maps": {
1240+ "version": "4.0.1",
1241+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
1242+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
1243+ "dev": true,
1244+ "dependencies": {
1245+ "debug": "^4.1.1",
1246+ "istanbul-lib-coverage": "^3.0.0",
1247+ "source-map": "^0.6.1"
1248+ },
1249+ "engines": {
1250+ "node": ">=10"
1251+ }
1252+ },
1253+ "node_modules/istanbul-reports": {
1254+ "version": "3.1.5",
1255+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
1256+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
1257+ "dev": true,
1258+ "dependencies": {
1259+ "html-escaper": "^2.0.0",
1260+ "istanbul-lib-report": "^3.0.0"
1261+ },
1262+ "engines": {
1263+ "node": ">=8"
1264+ }
1265+ },
1266+ "node_modules/js-tokens": {
1267+ "version": "4.0.0",
1268+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1269+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1270+ "dev": true
1271+ },
1272+ "node_modules/js-yaml": {
1273+ "version": "3.14.1",
1274+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
1275+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
1276+ "dev": true,
1277+ "dependencies": {
1278+ "argparse": "^1.0.7",
1279+ "esprima": "^4.0.0"
1280+ },
1281+ "bin": {
1282+ "js-yaml": "bin/js-yaml.js"
1283+ }
1284+ },
1285+ "node_modules/jsesc": {
1286+ "version": "2.5.2",
1287+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1288+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1289+ "dev": true,
1290+ "bin": {
1291+ "jsesc": "bin/jsesc"
1292+ },
1293+ "engines": {
1294+ "node": ">=4"
1295+ }
1296+ },
1297+ "node_modules/json5": {
1298+ "version": "2.2.1",
1299+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
1300+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
1301+ "dev": true,
1302+ "bin": {
1303+ "json5": "lib/cli.js"
1304+ },
1305+ "engines": {
1306+ "node": ">=6"
1307+ }
1308+ },
1309+ "node_modules/locate-path": {
1310+ "version": "5.0.0",
1311+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1312+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1313+ "dev": true,
1314+ "dependencies": {
1315+ "p-locate": "^4.1.0"
1316+ },
1317+ "engines": {
1318+ "node": ">=8"
1319+ }
1320+ },
1321+ "node_modules/lodash.flattendeep": {
1322+ "version": "4.4.0",
1323+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
1324+ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
1325+ "dev": true
1326+ },
1327+ "node_modules/make-dir": {
1328+ "version": "3.1.0",
1329+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1330+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1331+ "dev": true,
1332+ "dependencies": {
1333+ "semver": "^6.0.0"
1334+ },
1335+ "engines": {
1336+ "node": ">=8"
1337+ },
1338+ "funding": {
1339+ "url": "https://github.com/sponsors/sindresorhus"
1340+ }
1341+ },
1342+ "node_modules/minimatch": {
1343+ "version": "3.1.2",
1344+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1345+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1346+ "dev": true,
1347+ "dependencies": {
1348+ "brace-expansion": "^1.1.7"
1349+ },
1350+ "engines": {
1351+ "node": "*"
1352+ }
1353+ },
1354+ "node_modules/ms": {
1355+ "version": "2.1.2",
1356+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1357+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1358+ "dev": true
1359+ },
1360+ "node_modules/node-preload": {
1361+ "version": "0.2.1",
1362+ "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
1363+ "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
1364+ "dev": true,
1365+ "dependencies": {
1366+ "process-on-spawn": "^1.0.0"
1367+ },
1368+ "engines": {
1369+ "node": ">=8"
1370+ }
1371+ },
1372+ "node_modules/node-releases": {
1373+ "version": "2.0.6",
1374+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
1375+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
1376+ "dev": true
1377+ },
1378+ "node_modules/nyc": {
1379+ "version": "15.1.0",
1380+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
1381+ "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
1382+ "dev": true,
1383+ "dependencies": {
1384+ "@istanbuljs/load-nyc-config": "^1.0.0",
1385+ "@istanbuljs/schema": "^0.1.2",
1386+ "caching-transform": "^4.0.0",
1387+ "convert-source-map": "^1.7.0",
1388+ "decamelize": "^1.2.0",
1389+ "find-cache-dir": "^3.2.0",
1390+ "find-up": "^4.1.0",
1391+ "foreground-child": "^2.0.0",
1392+ "get-package-type": "^0.1.0",
1393+ "glob": "^7.1.6",
1394+ "istanbul-lib-coverage": "^3.0.0",
1395+ "istanbul-lib-hook": "^3.0.0",
1396+ "istanbul-lib-instrument": "^4.0.0",
1397+ "istanbul-lib-processinfo": "^2.0.2",
1398+ "istanbul-lib-report": "^3.0.0",
1399+ "istanbul-lib-source-maps": "^4.0.0",
1400+ "istanbul-reports": "^3.0.2",
1401+ "make-dir": "^3.0.0",
1402+ "node-preload": "^0.2.1",
1403+ "p-map": "^3.0.0",
1404+ "process-on-spawn": "^1.0.0",
1405+ "resolve-from": "^5.0.0",
1406+ "rimraf": "^3.0.0",
1407+ "signal-exit": "^3.0.2",
1408+ "spawn-wrap": "^2.0.0",
1409+ "test-exclude": "^6.0.0",
1410+ "yargs": "^15.0.2"
1411+ },
1412+ "bin": {
1413+ "nyc": "bin/nyc.js"
1414+ },
1415+ "engines": {
1416+ "node": ">=8.9"
1417+ }
1418+ },
1419+ "node_modules/once": {
1420+ "version": "1.4.0",
1421+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1422+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1423+ "dev": true,
1424+ "dependencies": {
1425+ "wrappy": "1"
1426+ }
1427+ },
1428+ "node_modules/p-limit": {
1429+ "version": "2.3.0",
1430+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1431+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1432+ "dev": true,
1433+ "dependencies": {
1434+ "p-try": "^2.0.0"
1435+ },
1436+ "engines": {
1437+ "node": ">=6"
1438+ },
1439+ "funding": {
1440+ "url": "https://github.com/sponsors/sindresorhus"
1441+ }
1442+ },
1443+ "node_modules/p-locate": {
1444+ "version": "4.1.0",
1445+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1446+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1447+ "dev": true,
1448+ "dependencies": {
1449+ "p-limit": "^2.2.0"
1450+ },
1451+ "engines": {
1452+ "node": ">=8"
1453+ }
1454+ },
1455+ "node_modules/p-map": {
1456+ "version": "3.0.0",
1457+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
1458+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
1459+ "dev": true,
1460+ "dependencies": {
1461+ "aggregate-error": "^3.0.0"
1462+ },
1463+ "engines": {
1464+ "node": ">=8"
1465+ }
1466+ },
1467+ "node_modules/p-try": {
1468+ "version": "2.2.0",
1469+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1470+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1471+ "dev": true,
1472+ "engines": {
1473+ "node": ">=6"
1474+ }
1475+ },
1476+ "node_modules/package-hash": {
1477+ "version": "4.0.0",
1478+ "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
1479+ "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
1480+ "dev": true,
1481+ "dependencies": {
1482+ "graceful-fs": "^4.1.15",
1483+ "hasha": "^5.0.0",
1484+ "lodash.flattendeep": "^4.4.0",
1485+ "release-zalgo": "^1.0.0"
1486+ },
1487+ "engines": {
1488+ "node": ">=8"
1489+ }
1490+ },
1491+ "node_modules/path-exists": {
1492+ "version": "4.0.0",
1493+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1494+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1495+ "dev": true,
1496+ "engines": {
1497+ "node": ">=8"
1498+ }
1499+ },
1500+ "node_modules/path-is-absolute": {
1501+ "version": "1.0.1",
1502+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1503+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1504+ "dev": true,
1505+ "engines": {
1506+ "node": ">=0.10.0"
1507+ }
1508+ },
1509+ "node_modules/path-key": {
1510+ "version": "3.1.1",
1511+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1512+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1513+ "dev": true,
1514+ "engines": {
1515+ "node": ">=8"
1516+ }
1517+ },
1518+ "node_modules/picocolors": {
1519+ "version": "1.0.0",
1520+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1521+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1522+ "dev": true
1523+ },
1524+ "node_modules/pkg-dir": {
1525+ "version": "4.2.0",
1526+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
1527+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
1528+ "dev": true,
1529+ "dependencies": {
1530+ "find-up": "^4.0.0"
1531+ },
1532+ "engines": {
1533+ "node": ">=8"
1534+ }
1535+ },
1536+ "node_modules/process-on-spawn": {
1537+ "version": "1.0.0",
1538+ "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
1539+ "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
1540+ "dev": true,
1541+ "dependencies": {
1542+ "fromentries": "^1.2.0"
1543+ },
1544+ "engines": {
1545+ "node": ">=8"
1546+ }
1547+ },
1548+ "node_modules/release-zalgo": {
1549+ "version": "1.0.0",
1550+ "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
1551+ "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
1552+ "dev": true,
1553+ "dependencies": {
1554+ "es6-error": "^4.0.1"
1555+ },
1556+ "engines": {
1557+ "node": ">=4"
1558+ }
1559+ },
1560+ "node_modules/require-directory": {
1561+ "version": "2.1.1",
1562+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1563+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1564+ "dev": true,
1565+ "engines": {
1566+ "node": ">=0.10.0"
1567+ }
1568+ },
1569+ "node_modules/require-main-filename": {
1570+ "version": "2.0.0",
1571+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1572+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1573+ "dev": true
1574+ },
1575+ "node_modules/resolve-from": {
1576+ "version": "5.0.0",
1577+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
1578+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
1579+ "dev": true,
1580+ "engines": {
1581+ "node": ">=8"
1582+ }
1583+ },
1584+ "node_modules/rimraf": {
1585+ "version": "3.0.2",
1586+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1587+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1588+ "dev": true,
1589+ "dependencies": {
1590+ "glob": "^7.1.3"
1591+ },
1592+ "bin": {
1593+ "rimraf": "bin.js"
1594+ },
1595+ "funding": {
1596+ "url": "https://github.com/sponsors/isaacs"
1597+ }
1598+ },
1599+ "node_modules/safe-buffer": {
1600+ "version": "5.1.2",
1601+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1602+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1603+ "dev": true
1604+ },
1605+ "node_modules/semver": {
1606+ "version": "6.3.0",
1607+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1608+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1609+ "dev": true,
1610+ "bin": {
1611+ "semver": "bin/semver.js"
1612+ }
1613+ },
1614+ "node_modules/set-blocking": {
1615+ "version": "2.0.0",
1616+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1617+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
1618+ "dev": true
1619+ },
1620+ "node_modules/shebang-command": {
1621+ "version": "2.0.0",
1622+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1623+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1624+ "dev": true,
1625+ "dependencies": {
1626+ "shebang-regex": "^3.0.0"
1627+ },
1628+ "engines": {
1629+ "node": ">=8"
1630+ }
1631+ },
1632+ "node_modules/shebang-regex": {
1633+ "version": "3.0.0",
1634+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1635+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1636+ "dev": true,
1637+ "engines": {
1638+ "node": ">=8"
1639+ }
1640+ },
1641+ "node_modules/signal-exit": {
1642+ "version": "3.0.7",
1643+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
1644+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
1645+ "dev": true
1646+ },
1647+ "node_modules/source-map": {
1648+ "version": "0.6.1",
1649+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1650+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1651+ "dev": true,
1652+ "engines": {
1653+ "node": ">=0.10.0"
1654+ }
1655+ },
1656+ "node_modules/spawn-wrap": {
1657+ "version": "2.0.0",
1658+ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
1659+ "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
1660+ "dev": true,
1661+ "dependencies": {
1662+ "foreground-child": "^2.0.0",
1663+ "is-windows": "^1.0.2",
1664+ "make-dir": "^3.0.0",
1665+ "rimraf": "^3.0.0",
1666+ "signal-exit": "^3.0.2",
1667+ "which": "^2.0.1"
1668+ },
1669+ "engines": {
1670+ "node": ">=8"
1671+ }
1672+ },
1673+ "node_modules/sprintf-js": {
1674+ "version": "1.0.3",
1675+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1676+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
1677+ "dev": true
1678+ },
1679+ "node_modules/string-width": {
1680+ "version": "4.2.3",
1681+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1682+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1683+ "dev": true,
1684+ "dependencies": {
1685+ "emoji-regex": "^8.0.0",
1686+ "is-fullwidth-code-point": "^3.0.0",
1687+ "strip-ansi": "^6.0.1"
1688+ },
1689+ "engines": {
1690+ "node": ">=8"
1691+ }
1692+ },
1693+ "node_modules/strip-ansi": {
1694+ "version": "6.0.1",
1695+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1696+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1697+ "dev": true,
1698+ "dependencies": {
1699+ "ansi-regex": "^5.0.1"
1700+ },
1701+ "engines": {
1702+ "node": ">=8"
1703+ }
1704+ },
1705+ "node_modules/strip-bom": {
1706+ "version": "4.0.0",
1707+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
1708+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
1709+ "dev": true,
1710+ "engines": {
1711+ "node": ">=8"
1712+ }
1713+ },
1714+ "node_modules/supports-color": {
1715+ "version": "5.5.0",
1716+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1717+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1718+ "dev": true,
1719+ "dependencies": {
1720+ "has-flag": "^3.0.0"
1721+ },
1722+ "engines": {
1723+ "node": ">=4"
1724+ }
1725+ },
1726+ "node_modules/test-exclude": {
1727+ "version": "6.0.0",
1728+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
1729+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
1730+ "dev": true,
1731+ "dependencies": {
1732+ "@istanbuljs/schema": "^0.1.2",
1733+ "glob": "^7.1.4",
1734+ "minimatch": "^3.0.4"
1735+ },
1736+ "engines": {
1737+ "node": ">=8"
1738+ }
1739+ },
1740+ "node_modules/to-fast-properties": {
1741+ "version": "2.0.0",
1742+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1743+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
1744+ "dev": true,
1745+ "engines": {
1746+ "node": ">=4"
1747+ }
1748+ },
1749+ "node_modules/type-fest": {
1750+ "version": "0.8.1",
1751+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1752+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1753+ "dev": true,
1754+ "engines": {
1755+ "node": ">=8"
1756+ }
1757+ },
1758+ "node_modules/typedarray-to-buffer": {
1759+ "version": "3.1.5",
1760+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1761+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1762+ "dev": true,
1763+ "dependencies": {
1764+ "is-typedarray": "^1.0.0"
1765+ }
1766+ },
1767+ "node_modules/update-browserslist-db": {
1768+ "version": "1.0.5",
1769+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
1770+ "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
1771+ "dev": true,
1772+ "funding": [
1773+ {
1774+ "type": "opencollective",
1775+ "url": "https://opencollective.com/browserslist"
1776+ },
1777+ {
1778+ "type": "tidelift",
1779+ "url": "https://tidelift.com/funding/github/npm/browserslist"
1780+ }
1781+ ],
1782+ "dependencies": {
1783+ "escalade": "^3.1.1",
1784+ "picocolors": "^1.0.0"
1785+ },
1786+ "bin": {
1787+ "browserslist-lint": "cli.js"
1788+ },
1789+ "peerDependencies": {
1790+ "browserslist": ">= 4.21.0"
1791+ }
1792+ },
1793+ "node_modules/uuid": {
1794+ "version": "8.3.2",
1795+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
1796+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
1797+ "dev": true,
1798+ "bin": {
1799+ "uuid": "dist/bin/uuid"
1800+ }
1801+ },
1802+ "node_modules/v8-to-istanbul": {
1803+ "version": "9.0.1",
1804+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
1805+ "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
1806+ "dev": true,
1807+ "dependencies": {
1808+ "@jridgewell/trace-mapping": "^0.3.12",
1809+ "@types/istanbul-lib-coverage": "^2.0.1",
1810+ "convert-source-map": "^1.6.0"
1811+ },
1812+ "engines": {
1813+ "node": ">=10.12.0"
1814+ }
1815+ },
1816+ "node_modules/which": {
1817+ "version": "2.0.2",
1818+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1819+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1820+ "dev": true,
1821+ "dependencies": {
1822+ "isexe": "^2.0.0"
1823+ },
1824+ "bin": {
1825+ "node-which": "bin/node-which"
1826+ },
1827+ "engines": {
1828+ "node": ">= 8"
1829+ }
1830+ },
1831+ "node_modules/which-module": {
1832+ "version": "2.0.0",
1833+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
1834+ "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
1835+ "dev": true
1836+ },
1837+ "node_modules/wrap-ansi": {
1838+ "version": "6.2.0",
1839+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
1840+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
1841+ "dev": true,
1842+ "dependencies": {
1843+ "ansi-styles": "^4.0.0",
1844+ "string-width": "^4.1.0",
1845+ "strip-ansi": "^6.0.0"
1846+ },
1847+ "engines": {
1848+ "node": ">=8"
1849+ }
1850+ },
1851+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
1852+ "version": "4.3.0",
1853+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1854+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1855+ "dev": true,
1856+ "dependencies": {
1857+ "color-convert": "^2.0.1"
1858+ },
1859+ "engines": {
1860+ "node": ">=8"
1861+ },
1862+ "funding": {
1863+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1864+ }
1865+ },
1866+ "node_modules/wrap-ansi/node_modules/color-convert": {
1867+ "version": "2.0.1",
1868+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1869+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1870+ "dev": true,
1871+ "dependencies": {
1872+ "color-name": "~1.1.4"
1873+ },
1874+ "engines": {
1875+ "node": ">=7.0.0"
1876+ }
1877+ },
1878+ "node_modules/wrap-ansi/node_modules/color-name": {
1879+ "version": "1.1.4",
1880+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1881+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1882+ "dev": true
1883+ },
1884+ "node_modules/wrappy": {
1885+ "version": "1.0.2",
1886+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1887+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1888+ "dev": true
1889+ },
1890+ "node_modules/write-file-atomic": {
1891+ "version": "3.0.3",
1892+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
1893+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
1894+ "dev": true,
1895+ "dependencies": {
1896+ "imurmurhash": "^0.1.4",
1897+ "is-typedarray": "^1.0.0",
1898+ "signal-exit": "^3.0.2",
1899+ "typedarray-to-buffer": "^3.1.5"
1900+ }
1901+ },
1902+ "node_modules/y18n": {
1903+ "version": "4.0.3",
1904+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
1905+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
1906+ "dev": true
1907+ },
1908+ "node_modules/yargs": {
1909+ "version": "15.4.1",
1910+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
1911+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
1912+ "dev": true,
1913+ "dependencies": {
1914+ "cliui": "^6.0.0",
1915+ "decamelize": "^1.2.0",
1916+ "find-up": "^4.1.0",
1917+ "get-caller-file": "^2.0.1",
1918+ "require-directory": "^2.1.1",
1919+ "require-main-filename": "^2.0.0",
1920+ "set-blocking": "^2.0.0",
1921+ "string-width": "^4.2.0",
1922+ "which-module": "^2.0.0",
1923+ "y18n": "^4.0.0",
1924+ "yargs-parser": "^18.1.2"
1925+ },
1926+ "engines": {
1927+ "node": ">=8"
1928+ }
1929+ },
1930+ "node_modules/yargs-parser": {
1931+ "version": "18.1.3",
1932+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
1933+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
1934+ "dev": true,
1935+ "dependencies": {
1936+ "camelcase": "^5.0.0",
1937+ "decamelize": "^1.2.0"
1938+ },
1939+ "engines": {
1940+ "node": ">=6"
1941+ }
1942+ },
1943+ "node_modules/yocto-queue": {
1944+ "version": "0.1.0",
1945+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1946+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1947+ "dev": true,
1948+ "engines": {
1949+ "node": ">=10"
1950+ },
1951+ "funding": {
1952+ "url": "https://github.com/sponsors/sindresorhus"
171953 }
181954 }
191955 },
201956 "dependencies": {
1957+ "@ampproject/remapping": {
1958+ "version": "2.2.0",
1959+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
1960+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
1961+ "dev": true,
1962+ "requires": {
1963+ "@jridgewell/gen-mapping": "^0.1.0",
1964+ "@jridgewell/trace-mapping": "^0.3.9"
1965+ }
1966+ },
1967+ "@babel/code-frame": {
1968+ "version": "7.18.6",
1969+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
1970+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
1971+ "dev": true,
1972+ "requires": {
1973+ "@babel/highlight": "^7.18.6"
1974+ }
1975+ },
1976+ "@babel/compat-data": {
1977+ "version": "7.18.8",
1978+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
1979+ "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
1980+ "dev": true
1981+ },
1982+ "@babel/core": {
1983+ "version": "7.18.9",
1984+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz",
1985+ "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==",
1986+ "dev": true,
1987+ "requires": {
1988+ "@ampproject/remapping": "^2.1.0",
1989+ "@babel/code-frame": "^7.18.6",
1990+ "@babel/generator": "^7.18.9",
1991+ "@babel/helper-compilation-targets": "^7.18.9",
1992+ "@babel/helper-module-transforms": "^7.18.9",
1993+ "@babel/helpers": "^7.18.9",
1994+ "@babel/parser": "^7.18.9",
1995+ "@babel/template": "^7.18.6",
1996+ "@babel/traverse": "^7.18.9",
1997+ "@babel/types": "^7.18.9",
1998+ "convert-source-map": "^1.7.0",
1999+ "debug": "^4.1.0",
2000+ "gensync": "^1.0.0-beta.2",
2001+ "json5": "^2.2.1",
2002+ "semver": "^6.3.0"
2003+ }
2004+ },
2005+ "@babel/generator": {
2006+ "version": "7.18.9",
2007+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
2008+ "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
2009+ "dev": true,
2010+ "requires": {
2011+ "@babel/types": "^7.18.9",
2012+ "@jridgewell/gen-mapping": "^0.3.2",
2013+ "jsesc": "^2.5.1"
2014+ },
2015+ "dependencies": {
2016+ "@jridgewell/gen-mapping": {
2017+ "version": "0.3.2",
2018+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
2019+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
2020+ "dev": true,
2021+ "requires": {
2022+ "@jridgewell/set-array": "^1.0.1",
2023+ "@jridgewell/sourcemap-codec": "^1.4.10",
2024+ "@jridgewell/trace-mapping": "^0.3.9"
2025+ }
2026+ }
2027+ }
2028+ },
2029+ "@babel/helper-compilation-targets": {
2030+ "version": "7.18.9",
2031+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
2032+ "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
2033+ "dev": true,
2034+ "requires": {
2035+ "@babel/compat-data": "^7.18.8",
2036+ "@babel/helper-validator-option": "^7.18.6",
2037+ "browserslist": "^4.20.2",
2038+ "semver": "^6.3.0"
2039+ }
2040+ },
2041+ "@babel/helper-environment-visitor": {
2042+ "version": "7.18.9",
2043+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
2044+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
2045+ "dev": true
2046+ },
2047+ "@babel/helper-function-name": {
2048+ "version": "7.18.9",
2049+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
2050+ "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
2051+ "dev": true,
2052+ "requires": {
2053+ "@babel/template": "^7.18.6",
2054+ "@babel/types": "^7.18.9"
2055+ }
2056+ },
2057+ "@babel/helper-hoist-variables": {
2058+ "version": "7.18.6",
2059+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
2060+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
2061+ "dev": true,
2062+ "requires": {
2063+ "@babel/types": "^7.18.6"
2064+ }
2065+ },
2066+ "@babel/helper-module-imports": {
2067+ "version": "7.18.6",
2068+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
2069+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
2070+ "dev": true,
2071+ "requires": {
2072+ "@babel/types": "^7.18.6"
2073+ }
2074+ },
2075+ "@babel/helper-module-transforms": {
2076+ "version": "7.18.9",
2077+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
2078+ "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
2079+ "dev": true,
2080+ "requires": {
2081+ "@babel/helper-environment-visitor": "^7.18.9",
2082+ "@babel/helper-module-imports": "^7.18.6",
2083+ "@babel/helper-simple-access": "^7.18.6",
2084+ "@babel/helper-split-export-declaration": "^7.18.6",
2085+ "@babel/helper-validator-identifier": "^7.18.6",
2086+ "@babel/template": "^7.18.6",
2087+ "@babel/traverse": "^7.18.9",
2088+ "@babel/types": "^7.18.9"
2089+ }
2090+ },
2091+ "@babel/helper-simple-access": {
2092+ "version": "7.18.6",
2093+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
2094+ "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
2095+ "dev": true,
2096+ "requires": {
2097+ "@babel/types": "^7.18.6"
2098+ }
2099+ },
2100+ "@babel/helper-split-export-declaration": {
2101+ "version": "7.18.6",
2102+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
2103+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
2104+ "dev": true,
2105+ "requires": {
2106+ "@babel/types": "^7.18.6"
2107+ }
2108+ },
2109+ "@babel/helper-validator-identifier": {
2110+ "version": "7.18.6",
2111+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
2112+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
2113+ "dev": true
2114+ },
2115+ "@babel/helper-validator-option": {
2116+ "version": "7.18.6",
2117+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
2118+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
2119+ "dev": true
2120+ },
2121+ "@babel/helpers": {
2122+ "version": "7.18.9",
2123+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
2124+ "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
2125+ "dev": true,
2126+ "requires": {
2127+ "@babel/template": "^7.18.6",
2128+ "@babel/traverse": "^7.18.9",
2129+ "@babel/types": "^7.18.9"
2130+ }
2131+ },
2132+ "@babel/highlight": {
2133+ "version": "7.18.6",
2134+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
2135+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
2136+ "dev": true,
2137+ "requires": {
2138+ "@babel/helper-validator-identifier": "^7.18.6",
2139+ "chalk": "^2.0.0",
2140+ "js-tokens": "^4.0.0"
2141+ }
2142+ },
2143+ "@babel/parser": {
2144+ "version": "7.18.9",
2145+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
2146+ "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
2147+ "dev": true
2148+ },
2149+ "@babel/template": {
2150+ "version": "7.18.6",
2151+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
2152+ "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
2153+ "dev": true,
2154+ "requires": {
2155+ "@babel/code-frame": "^7.18.6",
2156+ "@babel/parser": "^7.18.6",
2157+ "@babel/types": "^7.18.6"
2158+ }
2159+ },
2160+ "@babel/traverse": {
2161+ "version": "7.18.9",
2162+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
2163+ "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
2164+ "dev": true,
2165+ "requires": {
2166+ "@babel/code-frame": "^7.18.6",
2167+ "@babel/generator": "^7.18.9",
2168+ "@babel/helper-environment-visitor": "^7.18.9",
2169+ "@babel/helper-function-name": "^7.18.9",
2170+ "@babel/helper-hoist-variables": "^7.18.6",
2171+ "@babel/helper-split-export-declaration": "^7.18.6",
2172+ "@babel/parser": "^7.18.9",
2173+ "@babel/types": "^7.18.9",
2174+ "debug": "^4.1.0",
2175+ "globals": "^11.1.0"
2176+ }
2177+ },
2178+ "@babel/types": {
2179+ "version": "7.18.9",
2180+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
2181+ "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
2182+ "dev": true,
2183+ "requires": {
2184+ "@babel/helper-validator-identifier": "^7.18.6",
2185+ "to-fast-properties": "^2.0.0"
2186+ }
2187+ },
2188+ "@bcoe/v8-coverage": {
2189+ "version": "0.2.3",
2190+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
2191+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
2192+ "dev": true
2193+ },
2194+ "@istanbuljs/load-nyc-config": {
2195+ "version": "1.1.0",
2196+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
2197+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
2198+ "dev": true,
2199+ "requires": {
2200+ "camelcase": "^5.3.1",
2201+ "find-up": "^4.1.0",
2202+ "get-package-type": "^0.1.0",
2203+ "js-yaml": "^3.13.1",
2204+ "resolve-from": "^5.0.0"
2205+ }
2206+ },
2207+ "@istanbuljs/schema": {
2208+ "version": "0.1.3",
2209+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2210+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2211+ "dev": true
2212+ },
2213+ "@jridgewell/gen-mapping": {
2214+ "version": "0.1.1",
2215+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
2216+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
2217+ "dev": true,
2218+ "requires": {
2219+ "@jridgewell/set-array": "^1.0.0",
2220+ "@jridgewell/sourcemap-codec": "^1.4.10"
2221+ }
2222+ },
2223+ "@jridgewell/resolve-uri": {
2224+ "version": "3.1.0",
2225+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
2226+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
2227+ "dev": true
2228+ },
2229+ "@jridgewell/set-array": {
2230+ "version": "1.1.2",
2231+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
2232+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
2233+ "dev": true
2234+ },
2235+ "@jridgewell/sourcemap-codec": {
2236+ "version": "1.4.14",
2237+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
2238+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
2239+ "dev": true
2240+ },
2241+ "@jridgewell/trace-mapping": {
2242+ "version": "0.3.14",
2243+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
2244+ "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
2245+ "dev": true,
2246+ "requires": {
2247+ "@jridgewell/resolve-uri": "^3.0.3",
2248+ "@jridgewell/sourcemap-codec": "^1.4.10"
2249+ }
2250+ },
2251+ "@types/istanbul-lib-coverage": {
2252+ "version": "2.0.4",
2253+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
2254+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
2255+ "dev": true
2256+ },
2257+ "aggregate-error": {
2258+ "version": "3.1.0",
2259+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
2260+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
2261+ "dev": true,
2262+ "requires": {
2263+ "clean-stack": "^2.0.0",
2264+ "indent-string": "^4.0.0"
2265+ }
2266+ },
2267+ "ansi-regex": {
2268+ "version": "5.0.1",
2269+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2270+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2271+ "dev": true
2272+ },
2273+ "ansi-styles": {
2274+ "version": "3.2.1",
2275+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2276+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2277+ "dev": true,
2278+ "requires": {
2279+ "color-convert": "^1.9.0"
2280+ }
2281+ },
2282+ "append-transform": {
2283+ "version": "2.0.0",
2284+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
2285+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
2286+ "dev": true,
2287+ "requires": {
2288+ "default-require-extensions": "^3.0.0"
2289+ }
2290+ },
2291+ "archy": {
2292+ "version": "1.0.0",
2293+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
2294+ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
2295+ "dev": true
2296+ },
2297+ "argparse": {
2298+ "version": "1.0.10",
2299+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
2300+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
2301+ "dev": true,
2302+ "requires": {
2303+ "sprintf-js": "~1.0.2"
2304+ }
2305+ },
2306+ "balanced-match": {
2307+ "version": "1.0.2",
2308+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2309+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2310+ "dev": true
2311+ },
212312 "big-integer": {
222313 "version": "1.6.51",
232314 "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
242315 "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
2316+ },
2317+ "brace-expansion": {
2318+ "version": "1.1.11",
2319+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2320+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2321+ "dev": true,
2322+ "requires": {
2323+ "balanced-match": "^1.0.0",
2324+ "concat-map": "0.0.1"
2325+ }
2326+ },
2327+ "browserslist": {
2328+ "version": "4.21.2",
2329+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz",
2330+ "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==",
2331+ "dev": true,
2332+ "requires": {
2333+ "caniuse-lite": "^1.0.30001366",
2334+ "electron-to-chromium": "^1.4.188",
2335+ "node-releases": "^2.0.6",
2336+ "update-browserslist-db": "^1.0.4"
2337+ }
2338+ },
2339+ "c8": {
2340+ "version": "7.12.0",
2341+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz",
2342+ "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==",
2343+ "dev": true,
2344+ "requires": {
2345+ "@bcoe/v8-coverage": "^0.2.3",
2346+ "@istanbuljs/schema": "^0.1.3",
2347+ "find-up": "^5.0.0",
2348+ "foreground-child": "^2.0.0",
2349+ "istanbul-lib-coverage": "^3.2.0",
2350+ "istanbul-lib-report": "^3.0.0",
2351+ "istanbul-reports": "^3.1.4",
2352+ "rimraf": "^3.0.2",
2353+ "test-exclude": "^6.0.0",
2354+ "v8-to-istanbul": "^9.0.0",
2355+ "yargs": "^16.2.0",
2356+ "yargs-parser": "^20.2.9"
2357+ },
2358+ "dependencies": {
2359+ "ansi-styles": {
2360+ "version": "4.3.0",
2361+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2362+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2363+ "dev": true,
2364+ "requires": {
2365+ "color-convert": "^2.0.1"
2366+ }
2367+ },
2368+ "cliui": {
2369+ "version": "7.0.4",
2370+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
2371+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
2372+ "dev": true,
2373+ "requires": {
2374+ "string-width": "^4.2.0",
2375+ "strip-ansi": "^6.0.0",
2376+ "wrap-ansi": "^7.0.0"
2377+ }
2378+ },
2379+ "color-convert": {
2380+ "version": "2.0.1",
2381+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2382+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2383+ "dev": true,
2384+ "requires": {
2385+ "color-name": "~1.1.4"
2386+ }
2387+ },
2388+ "color-name": {
2389+ "version": "1.1.4",
2390+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2391+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2392+ "dev": true
2393+ },
2394+ "find-up": {
2395+ "version": "5.0.0",
2396+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
2397+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
2398+ "dev": true,
2399+ "requires": {
2400+ "locate-path": "^6.0.0",
2401+ "path-exists": "^4.0.0"
2402+ }
2403+ },
2404+ "locate-path": {
2405+ "version": "6.0.0",
2406+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2407+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2408+ "dev": true,
2409+ "requires": {
2410+ "p-locate": "^5.0.0"
2411+ }
2412+ },
2413+ "p-limit": {
2414+ "version": "3.1.0",
2415+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2416+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2417+ "dev": true,
2418+ "requires": {
2419+ "yocto-queue": "^0.1.0"
2420+ }
2421+ },
2422+ "p-locate": {
2423+ "version": "5.0.0",
2424+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2425+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2426+ "dev": true,
2427+ "requires": {
2428+ "p-limit": "^3.0.2"
2429+ }
2430+ },
2431+ "wrap-ansi": {
2432+ "version": "7.0.0",
2433+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2434+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2435+ "dev": true,
2436+ "requires": {
2437+ "ansi-styles": "^4.0.0",
2438+ "string-width": "^4.1.0",
2439+ "strip-ansi": "^6.0.0"
2440+ }
2441+ },
2442+ "y18n": {
2443+ "version": "5.0.8",
2444+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2445+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2446+ "dev": true
2447+ },
2448+ "yargs": {
2449+ "version": "16.2.0",
2450+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
2451+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
2452+ "dev": true,
2453+ "requires": {
2454+ "cliui": "^7.0.2",
2455+ "escalade": "^3.1.1",
2456+ "get-caller-file": "^2.0.5",
2457+ "require-directory": "^2.1.1",
2458+ "string-width": "^4.2.0",
2459+ "y18n": "^5.0.5",
2460+ "yargs-parser": "^20.2.2"
2461+ }
2462+ },
2463+ "yargs-parser": {
2464+ "version": "20.2.9",
2465+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
2466+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
2467+ "dev": true
2468+ }
2469+ }
2470+ },
2471+ "caching-transform": {
2472+ "version": "4.0.0",
2473+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
2474+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
2475+ "dev": true,
2476+ "requires": {
2477+ "hasha": "^5.0.0",
2478+ "make-dir": "^3.0.0",
2479+ "package-hash": "^4.0.0",
2480+ "write-file-atomic": "^3.0.0"
2481+ }
2482+ },
2483+ "camelcase": {
2484+ "version": "5.3.1",
2485+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2486+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2487+ "dev": true
2488+ },
2489+ "caniuse-lite": {
2490+ "version": "1.0.30001368",
2491+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001368.tgz",
2492+ "integrity": "sha512-wgfRYa9DenEomLG/SdWgQxpIyvdtH3NW8Vq+tB6AwR9e56iOIcu1im5F/wNdDf04XlKHXqIx4N8Jo0PemeBenQ==",
2493+ "dev": true
2494+ },
2495+ "chalk": {
2496+ "version": "2.4.2",
2497+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
2498+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2499+ "dev": true,
2500+ "requires": {
2501+ "ansi-styles": "^3.2.1",
2502+ "escape-string-regexp": "^1.0.5",
2503+ "supports-color": "^5.3.0"
2504+ }
2505+ },
2506+ "clean-stack": {
2507+ "version": "2.2.0",
2508+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
2509+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
2510+ "dev": true
2511+ },
2512+ "cliui": {
2513+ "version": "6.0.0",
2514+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
2515+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
2516+ "dev": true,
2517+ "requires": {
2518+ "string-width": "^4.2.0",
2519+ "strip-ansi": "^6.0.0",
2520+ "wrap-ansi": "^6.2.0"
2521+ }
2522+ },
2523+ "color-convert": {
2524+ "version": "1.9.3",
2525+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2526+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2527+ "dev": true,
2528+ "requires": {
2529+ "color-name": "1.1.3"
2530+ }
2531+ },
2532+ "color-name": {
2533+ "version": "1.1.3",
2534+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2535+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
2536+ "dev": true
2537+ },
2538+ "commondir": {
2539+ "version": "1.0.1",
2540+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
2541+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
2542+ "dev": true
2543+ },
2544+ "concat-map": {
2545+ "version": "0.0.1",
2546+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2547+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
2548+ "dev": true
2549+ },
2550+ "convert-source-map": {
2551+ "version": "1.8.0",
2552+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
2553+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
2554+ "dev": true,
2555+ "requires": {
2556+ "safe-buffer": "~5.1.1"
2557+ }
2558+ },
2559+ "cross-spawn": {
2560+ "version": "7.0.3",
2561+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2562+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2563+ "dev": true,
2564+ "requires": {
2565+ "path-key": "^3.1.0",
2566+ "shebang-command": "^2.0.0",
2567+ "which": "^2.0.1"
2568+ }
2569+ },
2570+ "debug": {
2571+ "version": "4.3.4",
2572+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2573+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2574+ "dev": true,
2575+ "requires": {
2576+ "ms": "2.1.2"
2577+ }
2578+ },
2579+ "decamelize": {
2580+ "version": "1.2.0",
2581+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
2582+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
2583+ "dev": true
2584+ },
2585+ "default-require-extensions": {
2586+ "version": "3.0.0",
2587+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
2588+ "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
2589+ "dev": true,
2590+ "requires": {
2591+ "strip-bom": "^4.0.0"
2592+ }
2593+ },
2594+ "electron-to-chromium": {
2595+ "version": "1.4.196",
2596+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.196.tgz",
2597+ "integrity": "sha512-uxMa/Dt7PQsLBVXwH+t6JvpHJnrsYBaxWKi/J6HE+/nBtoHENhwBoNkgkm226/Kfxeg0z1eMQLBRPPKcDH8xWA==",
2598+ "dev": true
2599+ },
2600+ "emoji-regex": {
2601+ "version": "8.0.0",
2602+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2603+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2604+ "dev": true
2605+ },
2606+ "es6-error": {
2607+ "version": "4.1.1",
2608+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
2609+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
2610+ "dev": true
2611+ },
2612+ "escalade": {
2613+ "version": "3.1.1",
2614+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2615+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2616+ "dev": true
2617+ },
2618+ "escape-string-regexp": {
2619+ "version": "1.0.5",
2620+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2621+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
2622+ "dev": true
2623+ },
2624+ "esprima": {
2625+ "version": "4.0.1",
2626+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
2627+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
2628+ "dev": true
2629+ },
2630+ "find-cache-dir": {
2631+ "version": "3.3.2",
2632+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
2633+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
2634+ "dev": true,
2635+ "requires": {
2636+ "commondir": "^1.0.1",
2637+ "make-dir": "^3.0.2",
2638+ "pkg-dir": "^4.1.0"
2639+ }
2640+ },
2641+ "find-up": {
2642+ "version": "4.1.0",
2643+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
2644+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
2645+ "dev": true,
2646+ "requires": {
2647+ "locate-path": "^5.0.0",
2648+ "path-exists": "^4.0.0"
2649+ }
2650+ },
2651+ "foreground-child": {
2652+ "version": "2.0.0",
2653+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
2654+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
2655+ "dev": true,
2656+ "requires": {
2657+ "cross-spawn": "^7.0.0",
2658+ "signal-exit": "^3.0.2"
2659+ }
2660+ },
2661+ "fromentries": {
2662+ "version": "1.3.2",
2663+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
2664+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
2665+ "dev": true
2666+ },
2667+ "fs.realpath": {
2668+ "version": "1.0.0",
2669+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2670+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
2671+ "dev": true
2672+ },
2673+ "gensync": {
2674+ "version": "1.0.0-beta.2",
2675+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
2676+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2677+ "dev": true
2678+ },
2679+ "get-caller-file": {
2680+ "version": "2.0.5",
2681+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2682+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2683+ "dev": true
2684+ },
2685+ "get-package-type": {
2686+ "version": "0.1.0",
2687+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
2688+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
2689+ "dev": true
2690+ },
2691+ "glob": {
2692+ "version": "7.2.3",
2693+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2694+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2695+ "dev": true,
2696+ "requires": {
2697+ "fs.realpath": "^1.0.0",
2698+ "inflight": "^1.0.4",
2699+ "inherits": "2",
2700+ "minimatch": "^3.1.1",
2701+ "once": "^1.3.0",
2702+ "path-is-absolute": "^1.0.0"
2703+ }
2704+ },
2705+ "globals": {
2706+ "version": "11.12.0",
2707+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2708+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2709+ "dev": true
2710+ },
2711+ "graceful-fs": {
2712+ "version": "4.2.10",
2713+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
2714+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
2715+ "dev": true
2716+ },
2717+ "has-flag": {
2718+ "version": "3.0.0",
2719+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2720+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
2721+ "dev": true
2722+ },
2723+ "hasha": {
2724+ "version": "5.2.2",
2725+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
2726+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
2727+ "dev": true,
2728+ "requires": {
2729+ "is-stream": "^2.0.0",
2730+ "type-fest": "^0.8.0"
2731+ }
2732+ },
2733+ "html-escaper": {
2734+ "version": "2.0.2",
2735+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
2736+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
2737+ "dev": true
2738+ },
2739+ "imurmurhash": {
2740+ "version": "0.1.4",
2741+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2742+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
2743+ "dev": true
2744+ },
2745+ "indent-string": {
2746+ "version": "4.0.0",
2747+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
2748+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
2749+ "dev": true
2750+ },
2751+ "inflight": {
2752+ "version": "1.0.6",
2753+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2754+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
2755+ "dev": true,
2756+ "requires": {
2757+ "once": "^1.3.0",
2758+ "wrappy": "1"
2759+ }
2760+ },
2761+ "inherits": {
2762+ "version": "2.0.4",
2763+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2764+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2765+ "dev": true
2766+ },
2767+ "is-fullwidth-code-point": {
2768+ "version": "3.0.0",
2769+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2770+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2771+ "dev": true
2772+ },
2773+ "is-stream": {
2774+ "version": "2.0.1",
2775+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
2776+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
2777+ "dev": true
2778+ },
2779+ "is-typedarray": {
2780+ "version": "1.0.0",
2781+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2782+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
2783+ "dev": true
2784+ },
2785+ "is-windows": {
2786+ "version": "1.0.2",
2787+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2788+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2789+ "dev": true
2790+ },
2791+ "isexe": {
2792+ "version": "2.0.0",
2793+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2794+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2795+ "dev": true
2796+ },
2797+ "istanbul-lib-coverage": {
2798+ "version": "3.2.0",
2799+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
2800+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
2801+ "dev": true
2802+ },
2803+ "istanbul-lib-hook": {
2804+ "version": "3.0.0",
2805+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
2806+ "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
2807+ "dev": true,
2808+ "requires": {
2809+ "append-transform": "^2.0.0"
2810+ }
2811+ },
2812+ "istanbul-lib-instrument": {
2813+ "version": "4.0.3",
2814+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
2815+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
2816+ "dev": true,
2817+ "requires": {
2818+ "@babel/core": "^7.7.5",
2819+ "@istanbuljs/schema": "^0.1.2",
2820+ "istanbul-lib-coverage": "^3.0.0",
2821+ "semver": "^6.3.0"
2822+ }
2823+ },
2824+ "istanbul-lib-processinfo": {
2825+ "version": "2.0.3",
2826+ "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
2827+ "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
2828+ "dev": true,
2829+ "requires": {
2830+ "archy": "^1.0.0",
2831+ "cross-spawn": "^7.0.3",
2832+ "istanbul-lib-coverage": "^3.2.0",
2833+ "p-map": "^3.0.0",
2834+ "rimraf": "^3.0.0",
2835+ "uuid": "^8.3.2"
2836+ }
2837+ },
2838+ "istanbul-lib-report": {
2839+ "version": "3.0.0",
2840+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
2841+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
2842+ "dev": true,
2843+ "requires": {
2844+ "istanbul-lib-coverage": "^3.0.0",
2845+ "make-dir": "^3.0.0",
2846+ "supports-color": "^7.1.0"
2847+ },
2848+ "dependencies": {
2849+ "has-flag": {
2850+ "version": "4.0.0",
2851+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2852+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2853+ "dev": true
2854+ },
2855+ "supports-color": {
2856+ "version": "7.2.0",
2857+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2858+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2859+ "dev": true,
2860+ "requires": {
2861+ "has-flag": "^4.0.0"
2862+ }
2863+ }
2864+ }
2865+ },
2866+ "istanbul-lib-source-maps": {
2867+ "version": "4.0.1",
2868+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
2869+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
2870+ "dev": true,
2871+ "requires": {
2872+ "debug": "^4.1.1",
2873+ "istanbul-lib-coverage": "^3.0.0",
2874+ "source-map": "^0.6.1"
2875+ }
2876+ },
2877+ "istanbul-reports": {
2878+ "version": "3.1.5",
2879+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
2880+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
2881+ "dev": true,
2882+ "requires": {
2883+ "html-escaper": "^2.0.0",
2884+ "istanbul-lib-report": "^3.0.0"
2885+ }
2886+ },
2887+ "js-tokens": {
2888+ "version": "4.0.0",
2889+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2890+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
2891+ "dev": true
2892+ },
2893+ "js-yaml": {
2894+ "version": "3.14.1",
2895+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
2896+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
2897+ "dev": true,
2898+ "requires": {
2899+ "argparse": "^1.0.7",
2900+ "esprima": "^4.0.0"
2901+ }
2902+ },
2903+ "jsesc": {
2904+ "version": "2.5.2",
2905+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
2906+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2907+ "dev": true
2908+ },
2909+ "json5": {
2910+ "version": "2.2.1",
2911+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
2912+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
2913+ "dev": true
2914+ },
2915+ "locate-path": {
2916+ "version": "5.0.0",
2917+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
2918+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
2919+ "dev": true,
2920+ "requires": {
2921+ "p-locate": "^4.1.0"
2922+ }
2923+ },
2924+ "lodash.flattendeep": {
2925+ "version": "4.4.0",
2926+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
2927+ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
2928+ "dev": true
2929+ },
2930+ "make-dir": {
2931+ "version": "3.1.0",
2932+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
2933+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
2934+ "dev": true,
2935+ "requires": {
2936+ "semver": "^6.0.0"
2937+ }
2938+ },
2939+ "minimatch": {
2940+ "version": "3.1.2",
2941+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2942+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2943+ "dev": true,
2944+ "requires": {
2945+ "brace-expansion": "^1.1.7"
2946+ }
2947+ },
2948+ "ms": {
2949+ "version": "2.1.2",
2950+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2951+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2952+ "dev": true
2953+ },
2954+ "node-preload": {
2955+ "version": "0.2.1",
2956+ "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
2957+ "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
2958+ "dev": true,
2959+ "requires": {
2960+ "process-on-spawn": "^1.0.0"
2961+ }
2962+ },
2963+ "node-releases": {
2964+ "version": "2.0.6",
2965+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
2966+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
2967+ "dev": true
2968+ },
2969+ "nyc": {
2970+ "version": "15.1.0",
2971+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
2972+ "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
2973+ "dev": true,
2974+ "requires": {
2975+ "@istanbuljs/load-nyc-config": "^1.0.0",
2976+ "@istanbuljs/schema": "^0.1.2",
2977+ "caching-transform": "^4.0.0",
2978+ "convert-source-map": "^1.7.0",
2979+ "decamelize": "^1.2.0",
2980+ "find-cache-dir": "^3.2.0",
2981+ "find-up": "^4.1.0",
2982+ "foreground-child": "^2.0.0",
2983+ "get-package-type": "^0.1.0",
2984+ "glob": "^7.1.6",
2985+ "istanbul-lib-coverage": "^3.0.0",
2986+ "istanbul-lib-hook": "^3.0.0",
2987+ "istanbul-lib-instrument": "^4.0.0",
2988+ "istanbul-lib-processinfo": "^2.0.2",
2989+ "istanbul-lib-report": "^3.0.0",
2990+ "istanbul-lib-source-maps": "^4.0.0",
2991+ "istanbul-reports": "^3.0.2",
2992+ "make-dir": "^3.0.0",
2993+ "node-preload": "^0.2.1",
2994+ "p-map": "^3.0.0",
2995+ "process-on-spawn": "^1.0.0",
2996+ "resolve-from": "^5.0.0",
2997+ "rimraf": "^3.0.0",
2998+ "signal-exit": "^3.0.2",
2999+ "spawn-wrap": "^2.0.0",
3000+ "test-exclude": "^6.0.0",
3001+ "yargs": "^15.0.2"
3002+ }
3003+ },
3004+ "once": {
3005+ "version": "1.4.0",
3006+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3007+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
3008+ "dev": true,
3009+ "requires": {
3010+ "wrappy": "1"
3011+ }
3012+ },
3013+ "p-limit": {
3014+ "version": "2.3.0",
3015+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
3016+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
3017+ "dev": true,
3018+ "requires": {
3019+ "p-try": "^2.0.0"
3020+ }
3021+ },
3022+ "p-locate": {
3023+ "version": "4.1.0",
3024+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
3025+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
3026+ "dev": true,
3027+ "requires": {
3028+ "p-limit": "^2.2.0"
3029+ }
3030+ },
3031+ "p-map": {
3032+ "version": "3.0.0",
3033+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
3034+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
3035+ "dev": true,
3036+ "requires": {
3037+ "aggregate-error": "^3.0.0"
3038+ }
3039+ },
3040+ "p-try": {
3041+ "version": "2.2.0",
3042+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
3043+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
3044+ "dev": true
3045+ },
3046+ "package-hash": {
3047+ "version": "4.0.0",
3048+ "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
3049+ "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
3050+ "dev": true,
3051+ "requires": {
3052+ "graceful-fs": "^4.1.15",
3053+ "hasha": "^5.0.0",
3054+ "lodash.flattendeep": "^4.4.0",
3055+ "release-zalgo": "^1.0.0"
3056+ }
3057+ },
3058+ "path-exists": {
3059+ "version": "4.0.0",
3060+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
3061+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3062+ "dev": true
3063+ },
3064+ "path-is-absolute": {
3065+ "version": "1.0.1",
3066+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3067+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
3068+ "dev": true
3069+ },
3070+ "path-key": {
3071+ "version": "3.1.1",
3072+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3073+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3074+ "dev": true
3075+ },
3076+ "picocolors": {
3077+ "version": "1.0.0",
3078+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
3079+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
3080+ "dev": true
3081+ },
3082+ "pkg-dir": {
3083+ "version": "4.2.0",
3084+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
3085+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
3086+ "dev": true,
3087+ "requires": {
3088+ "find-up": "^4.0.0"
3089+ }
3090+ },
3091+ "process-on-spawn": {
3092+ "version": "1.0.0",
3093+ "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
3094+ "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
3095+ "dev": true,
3096+ "requires": {
3097+ "fromentries": "^1.2.0"
3098+ }
3099+ },
3100+ "release-zalgo": {
3101+ "version": "1.0.0",
3102+ "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
3103+ "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
3104+ "dev": true,
3105+ "requires": {
3106+ "es6-error": "^4.0.1"
3107+ }
3108+ },
3109+ "require-directory": {
3110+ "version": "2.1.1",
3111+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3112+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
3113+ "dev": true
3114+ },
3115+ "require-main-filename": {
3116+ "version": "2.0.0",
3117+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
3118+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
3119+ "dev": true
3120+ },
3121+ "resolve-from": {
3122+ "version": "5.0.0",
3123+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
3124+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
3125+ "dev": true
3126+ },
3127+ "rimraf": {
3128+ "version": "3.0.2",
3129+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
3130+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
3131+ "dev": true,
3132+ "requires": {
3133+ "glob": "^7.1.3"
3134+ }
3135+ },
3136+ "safe-buffer": {
3137+ "version": "5.1.2",
3138+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3139+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3140+ "dev": true
3141+ },
3142+ "semver": {
3143+ "version": "6.3.0",
3144+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3145+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3146+ "dev": true
3147+ },
3148+ "set-blocking": {
3149+ "version": "2.0.0",
3150+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3151+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
3152+ "dev": true
3153+ },
3154+ "shebang-command": {
3155+ "version": "2.0.0",
3156+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3157+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3158+ "dev": true,
3159+ "requires": {
3160+ "shebang-regex": "^3.0.0"
3161+ }
3162+ },
3163+ "shebang-regex": {
3164+ "version": "3.0.0",
3165+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3166+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3167+ "dev": true
3168+ },
3169+ "signal-exit": {
3170+ "version": "3.0.7",
3171+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
3172+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
3173+ "dev": true
3174+ },
3175+ "source-map": {
3176+ "version": "0.6.1",
3177+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3178+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3179+ "dev": true
3180+ },
3181+ "spawn-wrap": {
3182+ "version": "2.0.0",
3183+ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
3184+ "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
3185+ "dev": true,
3186+ "requires": {
3187+ "foreground-child": "^2.0.0",
3188+ "is-windows": "^1.0.2",
3189+ "make-dir": "^3.0.0",
3190+ "rimraf": "^3.0.0",
3191+ "signal-exit": "^3.0.2",
3192+ "which": "^2.0.1"
3193+ }
3194+ },
3195+ "sprintf-js": {
3196+ "version": "1.0.3",
3197+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3198+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
3199+ "dev": true
3200+ },
3201+ "string-width": {
3202+ "version": "4.2.3",
3203+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3204+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3205+ "dev": true,
3206+ "requires": {
3207+ "emoji-regex": "^8.0.0",
3208+ "is-fullwidth-code-point": "^3.0.0",
3209+ "strip-ansi": "^6.0.1"
3210+ }
3211+ },
3212+ "strip-ansi": {
3213+ "version": "6.0.1",
3214+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3215+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3216+ "dev": true,
3217+ "requires": {
3218+ "ansi-regex": "^5.0.1"
3219+ }
3220+ },
3221+ "strip-bom": {
3222+ "version": "4.0.0",
3223+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
3224+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
3225+ "dev": true
3226+ },
3227+ "supports-color": {
3228+ "version": "5.5.0",
3229+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3230+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3231+ "dev": true,
3232+ "requires": {
3233+ "has-flag": "^3.0.0"
3234+ }
3235+ },
3236+ "test-exclude": {
3237+ "version": "6.0.0",
3238+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
3239+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
3240+ "dev": true,
3241+ "requires": {
3242+ "@istanbuljs/schema": "^0.1.2",
3243+ "glob": "^7.1.4",
3244+ "minimatch": "^3.0.4"
3245+ }
3246+ },
3247+ "to-fast-properties": {
3248+ "version": "2.0.0",
3249+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3250+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
3251+ "dev": true
3252+ },
3253+ "type-fest": {
3254+ "version": "0.8.1",
3255+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
3256+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
3257+ "dev": true
3258+ },
3259+ "typedarray-to-buffer": {
3260+ "version": "3.1.5",
3261+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
3262+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
3263+ "dev": true,
3264+ "requires": {
3265+ "is-typedarray": "^1.0.0"
3266+ }
3267+ },
3268+ "update-browserslist-db": {
3269+ "version": "1.0.5",
3270+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
3271+ "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
3272+ "dev": true,
3273+ "requires": {
3274+ "escalade": "^3.1.1",
3275+ "picocolors": "^1.0.0"
3276+ }
3277+ },
3278+ "uuid": {
3279+ "version": "8.3.2",
3280+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
3281+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
3282+ "dev": true
3283+ },
3284+ "v8-to-istanbul": {
3285+ "version": "9.0.1",
3286+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
3287+ "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
3288+ "dev": true,
3289+ "requires": {
3290+ "@jridgewell/trace-mapping": "^0.3.12",
3291+ "@types/istanbul-lib-coverage": "^2.0.1",
3292+ "convert-source-map": "^1.6.0"
3293+ }
3294+ },
3295+ "which": {
3296+ "version": "2.0.2",
3297+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3298+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3299+ "dev": true,
3300+ "requires": {
3301+ "isexe": "^2.0.0"
3302+ }
3303+ },
3304+ "which-module": {
3305+ "version": "2.0.0",
3306+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
3307+ "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
3308+ "dev": true
3309+ },
3310+ "wrap-ansi": {
3311+ "version": "6.2.0",
3312+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
3313+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
3314+ "dev": true,
3315+ "requires": {
3316+ "ansi-styles": "^4.0.0",
3317+ "string-width": "^4.1.0",
3318+ "strip-ansi": "^6.0.0"
3319+ },
3320+ "dependencies": {
3321+ "ansi-styles": {
3322+ "version": "4.3.0",
3323+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3324+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3325+ "dev": true,
3326+ "requires": {
3327+ "color-convert": "^2.0.1"
3328+ }
3329+ },
3330+ "color-convert": {
3331+ "version": "2.0.1",
3332+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3333+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3334+ "dev": true,
3335+ "requires": {
3336+ "color-name": "~1.1.4"
3337+ }
3338+ },
3339+ "color-name": {
3340+ "version": "1.1.4",
3341+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3342+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3343+ "dev": true
3344+ }
3345+ }
3346+ },
3347+ "wrappy": {
3348+ "version": "1.0.2",
3349+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3350+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3351+ "dev": true
3352+ },
3353+ "write-file-atomic": {
3354+ "version": "3.0.3",
3355+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
3356+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
3357+ "dev": true,
3358+ "requires": {
3359+ "imurmurhash": "^0.1.4",
3360+ "is-typedarray": "^1.0.0",
3361+ "signal-exit": "^3.0.2",
3362+ "typedarray-to-buffer": "^3.1.5"
3363+ }
3364+ },
3365+ "y18n": {
3366+ "version": "4.0.3",
3367+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
3368+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
3369+ "dev": true
3370+ },
3371+ "yargs": {
3372+ "version": "15.4.1",
3373+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
3374+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
3375+ "dev": true,
3376+ "requires": {
3377+ "cliui": "^6.0.0",
3378+ "decamelize": "^1.2.0",
3379+ "find-up": "^4.1.0",
3380+ "get-caller-file": "^2.0.1",
3381+ "require-directory": "^2.1.1",
3382+ "require-main-filename": "^2.0.0",
3383+ "set-blocking": "^2.0.0",
3384+ "string-width": "^4.2.0",
3385+ "which-module": "^2.0.0",
3386+ "y18n": "^4.0.0",
3387+ "yargs-parser": "^18.1.2"
3388+ }
3389+ },
3390+ "yargs-parser": {
3391+ "version": "18.1.3",
3392+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
3393+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
3394+ "dev": true,
3395+ "requires": {
3396+ "camelcase": "^5.0.0",
3397+ "decamelize": "^1.2.0"
3398+ }
3399+ },
3400+ "yocto-queue": {
3401+ "version": "0.1.0",
3402+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3403+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3404+ "dev": true
253405 }
263406 }
273407}
package.json+10−1
@@ -1,6 +1,15 @@
11{
2+ "scripts": {
3+ "test": "spago -x test.dhall test --purs-args '-g sourcemaps'",
4+ "precoverage": "rimraf output && npm run test",
5+ "coverage": "c8 --100 npm run test"
6+ },
27 "dependencies": {
38 "big-integer": "^1.6.51"
49 },
5− "type": "module"
10+ "type": "module",
11+ "devDependencies": {
12+ "c8": "^7.12.0",
13+ "rimraf": "^3.0.2"
14+ }
615}
spago.dhall+1
@@ -15,6 +15,7 @@
1515 , "foreign-object"
1616 , "identity"
1717 , "integers"
18+ , "js-date"
1819 , "lists"
1920 , "maybe"
2021 , "newtype"
src/Yoga/JSON.purs+22
@@ -45,6 +45,8 @@ import Data.Either (Either(..), hush, note)
4545import Data.FoldableWithIndex (foldrWithIndex)
4646import Data.Identity (Identity(..))
4747import Data.Int as Int
48+import Data.JSDate (JSDate, toISOString)
49+import Data.JSDate as JSDate
4850import Data.List.NonEmpty (NonEmptyList, singleton)
4951import Data.Map (Map)
5052import Data.Map as Map
@@ -229,6 +231,14 @@ instance ReadForeign a ⇒ ReadForeign (Nullable a) where
229231 TypeMismatch inner other → TypeMismatch ("Nullable " <> inner) other
230232 _ → error
231233
234+instance (ReadForeign a, ReadForeign b) ⇒ ReadForeign (Either a b) where
235+ readImpl f = do
236+ { type: tpe, value } :: { type :: String, value :: Foreign } <- readImpl f
237+ case tpe of
238+ "left" -> Left <$> readImpl value
239+ "right" -> Right <$> readImpl value
240+ _ -> except $ Left (pure $ ForeignError $ "Invalid Either tag " <> tpe)
241+
232242instance ReadForeign a ⇒ ReadForeign (Object.Object a) where
233243 readImpl = sequence <<< Object.mapWithKey (const readImpl) <=< readObject'
234244 where
@@ -394,6 +404,11 @@ instance WriteForeign a ⇒ WriteForeign (Maybe a) where
394404instance WriteForeign a ⇒ WriteForeign (Nullable a) where
395405 writeImpl = maybe (unsafeToForeign $ toNullable Nothing) writeImpl <<< toMaybe
396406
407+instance (WriteForeign a, WriteForeign b) ⇒ WriteForeign (Either a b) where
408+ writeImpl value = case value of
409+ Left l -> writeImpl { type: "left", value: writeImpl l}
410+ Right r -> writeImpl { type: "right", value: writeImpl r}
411+
397412instance WriteForeign a ⇒ WriteForeign (Object.Object a) where
398413 writeImpl = unsafeToForeign <<< Object.mapWithKey (const writeImpl)
399414
@@ -513,6 +528,13 @@ else
513528instance (Newtype nt key, ReadForeign (Map key value)) => ReadForeign (Map nt value) where
514529 readImpl = (readImpl :: (_ -> _ (Map key value))) >>> map (unsafeCoerce :: (Map key value -> Map nt value))
515530
531+-- Date instances
532+instance WriteForeign JSDate where
533+ writeImpl = JSDate.toISOString >>> unsafePerformEffect >>> writeImpl
534+
535+instance ReadForeign JSDate where
536+ readImpl = readImpl >>> map (JSDate.parse >>> unsafePerformEffect)
537+
516538unsafeStringToInt :: String → Int
517539unsafeStringToInt = Int.fromString >>>
518540 (fromMaybe' \_ -> unsafeCrashWith "impossible")
src/Yoga/JSON/Generics.purs+1−1
@@ -5,4 +5,4 @@ module Yoga.JSON.Generics
55import Yoga.JSON.Generics.TaggedSumRep (class ReadGenericTaggedSumRep, class WriteGenericTaggedSumRep, Options, defaultOptions, genericReadForeignTaggedSum, genericReadForeignTaggedSumRep, genericWriteForeignTaggedSum, genericWriteForeignTaggedSumRep) as Exported
66import Yoga.JSON.Generics.UntaggedSumRep (class ReadGenericUntaggedSumRep, class WriteGenericUntaggedSumRep, genericReadForeignUntaggedSum, genericReadForeignUntaggedSumRep, genericWriteForeignUntaggedSum, genericWriteForeignUntaggedSumRep) as Exported
77import Yoga.JSON.Generics.EnumSumRep (class GenericEnumSumRep, genericEnumReadForeign, genericEnumWriteForeign, genericReadForeignEnum, genericWriteForeignEnum) as Exported
8−import Yoga.JSON.Generics.UntaggedProductRep (class ReadGenericUntaggedProduct, class WriteGenericUntaggedProduct, Offset, genericReadForeignUntaggedProduct, genericReadForeignUntaggedProductRep, genericWriteForeignUntaggedProduct, genericWriteForeignUntaggedProductRep) as Exported
8+import Yoga.JSON.Generics.UntaggedProductRep (class ReadGenericUntaggedProduct, class WriteGenericUntaggedProduct, Offset, genericReadForeignUntaggedProduct, genericReadForeignUntaggedProductRep, genericWriteForeignUntaggedProduct, genericWriteForeignUntaggedProductRep) as Exported
src/Yoga/JSON/Generics/EnumSumRep.purs+44−31
@@ -9,44 +9,57 @@ import Foreign as Foreign
99import Yoga.JSON as JSON
1010import Type.Prelude (class IsSymbol, Proxy(..), reflectSymbol)
1111
12−genericReadForeignEnum
13− :: forall a rep
14− . GR.Generic a rep
15− => GenericEnumSumRep rep
16− => Foreign
17− -> Foreign.F a
18−genericReadForeignEnum f =
19− GR.to <$> genericEnumReadForeign f
20−
21−genericWriteForeignEnum
22− :: forall a rep
23− . GR.Generic a rep
24− => GenericEnumSumRep rep
25− => a
26− -> Foreign
27−genericWriteForeignEnum a = genericEnumWriteForeign (GR.from a)
12+type Options =
13+ { toConstructorName ∷ String → String }
14+
15+defaultOptions ∷ Options
16+defaultOptions = { toConstructorName: identity }
17+
18+genericReadForeignEnum ∷
19+ ∀ a rep.
20+ GR.Generic a rep ⇒
21+ GenericEnumSumRep rep ⇒
22+ Options →
23+ Foreign →
24+ Foreign.F a
25+genericReadForeignEnum options f =
26+ GR.to <$> genericEnumReadForeign options f
27+
28+genericWriteForeignEnum ∷
29+ ∀ a rep.
30+ GR.Generic a rep ⇒
31+ GenericEnumSumRep rep ⇒
32+ Options →
33+ a →
34+ Foreign
35+genericWriteForeignEnum options a = genericEnumWriteForeign options (GR.from a)
2836
2937-- | Generic Enum Sum Representations, with constructor names as strings
3038class GenericEnumSumRep rep where
31− genericEnumReadForeign :: Foreign -> Foreign.F rep
32− genericEnumWriteForeign :: rep -> Foreign
39+ genericEnumReadForeign ∷ Options -> Foreign → Foreign.F rep
40+ genericEnumWriteForeign ∷ Options -> rep → Foreign
3341
34−instance ( GenericEnumSumRep a , GenericEnumSumRep b) =>
42+instance
43+ ( GenericEnumSumRep a
44+ , GenericEnumSumRep b
45+ ) ⇒
3546 GenericEnumSumRep (GR.Sum a b) where
36− genericEnumReadForeign f = GR.Inl <$> genericEnumReadForeign f
37− <|> GR.Inr <$> genericEnumReadForeign f
38− genericEnumWriteForeign = case _ of
39− (GR.Inl a) -> genericEnumWriteForeign a
40− (GR.Inr a) -> genericEnumWriteForeign a
47+ genericEnumReadForeign options f = GR.Inl <$> genericEnumReadForeign options f
48+ <|> GR.Inr <$> genericEnumReadForeign options f
49+ genericEnumWriteForeign options = case _ of
50+ (GR.Inl a) → genericEnumWriteForeign options a
51+ (GR.Inr a) → genericEnumWriteForeign options a
4152
42−instance (IsSymbol name) =>
53+instance
54+ ( IsSymbol name
55+ ) ⇒
4356 GenericEnumSumRep (GR.Constructor name GR.NoArguments) where
44− genericEnumReadForeign f = do
45− s <- JSON.readImpl f
46− if s == name then pure $ GR.Constructor GR.NoArguments
57+ genericEnumReadForeign options f = do
58+ s ← JSON.readImpl f
59+ if s == options.toConstructorName name then pure $ GR.Constructor GR.NoArguments
4760 else fail <<< Foreign.ForeignError $
4861 "Enum string " <> s <> " did not match expected string " <> name
4962 where
50− name = reflectSymbol (Proxy :: Proxy name)
51− genericEnumWriteForeign (GR.Constructor GR.NoArguments) =
52− JSON.writeImpl $ reflectSymbol (Proxy :: Proxy name)
63+ name = reflectSymbol (Proxy ∷ Proxy name)
64+ genericEnumWriteForeign options (GR.Constructor GR.NoArguments) =
65+ JSON.writeImpl $ options.toConstructorName (reflectSymbol (Proxy ∷ Proxy name))
test/BasicsSpec.purs+19
@@ -6,6 +6,8 @@ import Data.Array.NonEmpty as NEA
66import Data.BigInt (BigInt)
77import Data.Either (Either(..))
88import Data.Foldable (traverse_)
9+import Data.JSDate as JSDAte
10+import Data.JSDate as JSDate
911import Data.List as List
1012import Data.List.Lazy as LazyList
1113import Data.Map as Map
@@ -15,6 +17,7 @@ import Data.Nullable as Nullable
1517import Data.Tuple (Tuple(..))
1618import Data.Tuple.Nested ((/\))
1719import Data.Variant (Variant, inj)
20+import Effect.Class (liftEffect)
1821import Foreign.Object as Object
1922import Test.Spec (Spec, describe, it)
2023import Test.Spec.Assertions (shouldEqual)
@@ -38,6 +41,11 @@ spec = describe "En- and decoding" $ do
3841 -- just roundtrips Nothing doesn't work when rendering the JSON
3942 roundtrips { empty: Nothing :: Maybe Int }
4043 it "roundtrips Nullable" $ traverse_ roundtrips [Nullable.notNull 3, Nullable.null]
44+ it "roundtrips Either" do
45+ roundtrips ((Left 3) :: Either Int Int)
46+ roundtrips ((Right 3) :: Either String Int)
47+ writeJSON (Right 3 :: Either Int Int) `shouldEqual` """{"value":3,"type":"right"}"""
48+ writeJSON (Left true :: Either Boolean Int) `shouldEqual` """{"value":true,"type":"left"}"""
4149 it "roundtrips Tuple" $ do
4250 roundtrips (Tuple 3 4)
4351 roundtrips ("4" /\ 8 /\ Just 4)
@@ -61,6 +69,7 @@ spec = describe "En- and decoding" $ do
6169 stringified = parsed <#> writeJSON
6270 stringified `shouldEqual` (Right expected)
6371 -- [TODO] Comment in as soon as bug in big-integers is fixed
72+ -- @sigma-andex: What bug? Can we link this???
6473 -- it "roundtrips BigInt (2)" do
6574 -- let
6675 -- smallBig = BigInt.fromInt 10
@@ -72,6 +81,16 @@ spec = describe "En- and decoding" $ do
7281 -- parsed ∷ _ ({ big ∷ BigInt, smallBig ∷ BigInt })
7382 -- parsed = readJSON json
7483 -- (spy "parsed" parsed) `shouldEqual` (Right expected)
84+
85+ describe "works with JSDate" do
86+ it "roundtrips" do
87+ now <- JSDate.now # liftEffect
88+ roundtrips now
89+ someDate <- JSDate.parse "2022-01-01:00:00:00Z" # liftEffect
90+ let result = writeJSON someDate
91+ let expected = show "2022-01-01T00:00:00.000Z"
92+ result `shouldEqual` expected
93+
7594 describe "works on record types" do
7695 it "roundtrips" do
7796 roundtrips { a: 12, b: "54" }
test/GenericsSpec.purs+27−7
@@ -9,16 +9,24 @@ import Test.Spec (Spec, describe, it)
99import Test.Spec.Assertions (shouldEqual)
1010import Test.Util (roundtrips)
1111import Yoga.JSON (class ReadForeign, class WriteForeign, writeJSON)
12−import Yoga.JSON.Generics (genericReadForeignTaggedSum, genericWriteForeignTaggedSum)
12+import Yoga.JSON.Generics (defaultOptions, genericReadForeignEnum, genericReadForeignTaggedSum, genericReadForeignUntaggedProduct, genericReadForeignUntaggedSum, genericWriteForeignEnum, genericWriteForeignTaggedSum, genericWriteForeignUntaggedProduct, genericWriteForeignUntaggedSum)
1313import Yoga.JSON.Generics as GenericTaggedSum
14−import Yoga.JSON.Generics.EnumSumRep (genericReadForeignEnum, genericWriteForeignEnum)
15−import Yoga.JSON.Generics.TaggedSumRep (defaultOptions)
16−import Yoga.JSON.Generics.UntaggedProductRep (genericReadForeignUntaggedProduct, genericWriteForeignUntaggedProduct)
17−import Yoga.JSON.Generics.UntaggedSumRep (genericReadForeignUntaggedSum, genericWriteForeignUntaggedSum)
14+import Yoga.JSON.Generics.EnumSumRep as Enum
1815
1916spec ∷ Spec Unit
2017spec = describe "Generics" $ do
2118
19+ describe "Enum" do
20+ describe "MyEnum = Enum1 | Enum2 | Enum3" do
21+ it "roundtrips" do
22+ roundtrips (Enum1)
23+ roundtrips (Enum3)
24+
25+ describe "works with custom constructor names" do
26+ it "roundtrips" do
27+ roundtrips (SomeOtherEnum2)
28+ writeJSON (SomeThirdEnum3) `shouldEqual` "\"some_third_enum_3\""
29+
2230 describe "Untagged" do
2331
2432 describe "IntOrString = AnInt Int | AString String" do
@@ -70,8 +78,20 @@ data MyEnum = Enum1 | Enum2 | Enum3
7078derive instance Generic MyEnum _
7179derive instance Eq MyEnum
7280instance Show MyEnum where show = genericShow
73−instance ReadForeign MyEnum where readImpl = genericReadForeignEnum
74−instance WriteForeign MyEnum where writeImpl = genericWriteForeignEnum
81+instance ReadForeign MyEnum
82+ where readImpl = genericReadForeignEnum Enum.defaultOptions
83+instance WriteForeign MyEnum
84+ where writeImpl = genericWriteForeignEnum Enum.defaultOptions
85+
86+data MyEnum2 = SomeEnum2 | SomeOtherEnum2 | SomeThirdEnum3
87+
88+derive instance Generic MyEnum2 _
89+derive instance Eq MyEnum2
90+instance Show MyEnum2 where show = genericShow
91+instance ReadForeign MyEnum2
92+ where readImpl = genericReadForeignEnum { toConstructorName: snakeCase}
93+instance WriteForeign MyEnum2
94+ where writeImpl = genericWriteForeignEnum { toConstructorName: snakeCase}
7595
7696data IntOrString = AnInt Int | AString String
7797derive instance Generic IntOrString _