git.iko.soy/rowtype-yoga/purescript-docs-search
on master help sign in
Extract module names from sources
d5db431Vladimir Kalnitsky
package-lock.json+1684−389
@@ -1,9 +1,1337 @@
1{
1{
2 "name": "purescript-docs-search",
2 "name": "purescript-docs-search",
3 "version": "0.0.11",
3 "version": "0.0.11",
4− "lockfileVersion": 1,
4+ "lockfileVersion": 2,
5 "requires": true,
5 "requires": true,
6+ "packages": {
7+ "": {
8+ "name": "purescript-docs-search",
9+ "version": "0.0.11",
10+ "license": "BSD-3-Clause",
11+ "dependencies": {
12+ "punycode": "^2.1.1"
13+ },
14+ "bin": {
15+ "purescript-docs-search": "dist/purescript-docs-search.js"
16+ },
17+ "devDependencies": {
18+ "esbuild": "^0.11.10",
19+ "glob": "^7.1.6",
20+ "markdown-it": "^12.0.4",
21+ "puppeteer": "^8.0.0",
22+ "spago": "^0.20.9"
23+ }
24+ },
25+ "node_modules/@gar/promisify": {
26+ "version": "1.1.3",
27+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
28+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
29+ "dev": true
30+ },
31+ "node_modules/@npmcli/fs": {
32+ "version": "1.1.1",
33+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
34+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
35+ "dev": true,
36+ "dependencies": {
37+ "@gar/promisify": "^1.0.1",
38+ "semver": "^7.3.5"
39+ }
40+ },
41+ "node_modules/@npmcli/move-file": {
42+ "version": "1.1.2",
43+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
44+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
45+ "dev": true,
46+ "dependencies": {
47+ "mkdirp": "^1.0.4",
48+ "rimraf": "^3.0.2"
49+ },
50+ "engines": {
51+ "node": ">=10"
52+ }
53+ },
54+ "node_modules/@tootallnate/once": {
55+ "version": "1.1.2",
56+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
57+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
58+ "dev": true,
59+ "engines": {
60+ "node": ">= 6"
61+ }
62+ },
63+ "node_modules/@types/node": {
64+ "version": "14.14.39",
65+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.39.tgz",
66+ "integrity": "sha512-Qipn7rfTxGEDqZiezH+wxqWYR8vcXq5LRpZrETD19Gs4o8LbklbmqotSUsMU+s5G3PJwMRDfNEYoxrcBwIxOuw==",
67+ "dev": true,
68+ "optional": true
69+ },
70+ "node_modules/@types/yauzl": {
71+ "version": "2.9.1",
72+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz",
73+ "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==",
74+ "dev": true,
75+ "optional": true,
76+ "dependencies": {
77+ "@types/node": "*"
78+ }
79+ },
80+ "node_modules/agent-base": {
81+ "version": "6.0.2",
82+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
83+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
84+ "dev": true,
85+ "dependencies": {
86+ "debug": "4"
87+ },
88+ "engines": {
89+ "node": ">= 6.0.0"
90+ }
91+ },
92+ "node_modules/agentkeepalive": {
93+ "version": "4.2.1",
94+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
95+ "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
96+ "dev": true,
97+ "dependencies": {
98+ "debug": "^4.1.0",
99+ "depd": "^1.1.2",
100+ "humanize-ms": "^1.2.1"
101+ },
102+ "engines": {
103+ "node": ">= 8.0.0"
104+ }
105+ },
106+ "node_modules/aggregate-error": {
107+ "version": "3.1.0",
108+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
109+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
110+ "dev": true,
111+ "dependencies": {
112+ "clean-stack": "^2.0.0",
113+ "indent-string": "^4.0.0"
114+ },
115+ "engines": {
116+ "node": ">=8"
117+ }
118+ },
119+ "node_modules/argparse": {
120+ "version": "2.0.1",
121+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
122+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
123+ "dev": true
124+ },
125+ "node_modules/balanced-match": {
126+ "version": "1.0.0",
127+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
128+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
129+ "dev": true
130+ },
131+ "node_modules/base64-js": {
132+ "version": "1.5.1",
133+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
134+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
135+ "dev": true,
136+ "funding": [
137+ {
138+ "type": "github",
139+ "url": "https://github.com/sponsors/feross"
140+ },
141+ {
142+ "type": "patreon",
143+ "url": "https://www.patreon.com/feross"
144+ },
145+ {
146+ "type": "consulting",
147+ "url": "https://feross.org/support"
148+ }
149+ ]
150+ },
151+ "node_modules/bl": {
152+ "version": "4.1.0",
153+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
154+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
155+ "dev": true,
156+ "dependencies": {
157+ "buffer": "^5.5.0",
158+ "inherits": "^2.0.4",
159+ "readable-stream": "^3.4.0"
160+ }
161+ },
162+ "node_modules/bl/node_modules/buffer": {
163+ "version": "5.7.1",
164+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
165+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
166+ "dev": true,
167+ "funding": [
168+ {
169+ "type": "github",
170+ "url": "https://github.com/sponsors/feross"
171+ },
172+ {
173+ "type": "patreon",
174+ "url": "https://www.patreon.com/feross"
175+ },
176+ {
177+ "type": "consulting",
178+ "url": "https://feross.org/support"
179+ }
180+ ],
181+ "dependencies": {
182+ "base64-js": "^1.3.1",
183+ "ieee754": "^1.1.13"
184+ }
185+ },
186+ "node_modules/bl/node_modules/readable-stream": {
187+ "version": "3.6.0",
188+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
189+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
190+ "dev": true,
191+ "dependencies": {
192+ "inherits": "^2.0.3",
193+ "string_decoder": "^1.1.1",
194+ "util-deprecate": "^1.0.1"
195+ },
196+ "engines": {
197+ "node": ">= 6"
198+ }
199+ },
200+ "node_modules/brace-expansion": {
201+ "version": "1.1.11",
202+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
203+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
204+ "dev": true,
205+ "dependencies": {
206+ "balanced-match": "^1.0.0",
207+ "concat-map": "0.0.1"
208+ }
209+ },
210+ "node_modules/buffer-crc32": {
211+ "version": "0.2.13",
212+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
213+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
214+ "dev": true,
215+ "engines": {
216+ "node": "*"
217+ }
218+ },
219+ "node_modules/cacache": {
220+ "version": "15.3.0",
221+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
222+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
223+ "dev": true,
224+ "dependencies": {
225+ "@npmcli/fs": "^1.0.0",
226+ "@npmcli/move-file": "^1.0.1",
227+ "chownr": "^2.0.0",
228+ "fs-minipass": "^2.0.0",
229+ "glob": "^7.1.4",
230+ "infer-owner": "^1.0.4",
231+ "lru-cache": "^6.0.0",
232+ "minipass": "^3.1.1",
233+ "minipass-collect": "^1.0.2",
234+ "minipass-flush": "^1.0.5",
235+ "minipass-pipeline": "^1.2.2",
236+ "mkdirp": "^1.0.3",
237+ "p-map": "^4.0.0",
238+ "promise-inflight": "^1.0.1",
239+ "rimraf": "^3.0.2",
240+ "ssri": "^8.0.1",
241+ "tar": "^6.0.2",
242+ "unique-filename": "^1.1.1"
243+ },
244+ "engines": {
245+ "node": ">= 10"
246+ }
247+ },
248+ "node_modules/cacache/node_modules/chownr": {
249+ "version": "2.0.0",
250+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
251+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
252+ "dev": true,
253+ "engines": {
254+ "node": ">=10"
255+ }
256+ },
257+ "node_modules/chownr": {
258+ "version": "1.1.4",
259+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
260+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
261+ "dev": true
262+ },
263+ "node_modules/clean-stack": {
264+ "version": "2.2.0",
265+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
266+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
267+ "dev": true,
268+ "engines": {
269+ "node": ">=6"
270+ }
271+ },
272+ "node_modules/concat-map": {
273+ "version": "0.0.1",
274+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
275+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
276+ "dev": true
277+ },
278+ "node_modules/debug": {
279+ "version": "4.3.4",
280+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
281+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
282+ "dev": true,
283+ "dependencies": {
284+ "ms": "2.1.2"
285+ },
286+ "engines": {
287+ "node": ">=6.0"
288+ },
289+ "peerDependenciesMeta": {
290+ "supports-color": {
291+ "optional": true
292+ }
293+ }
294+ },
295+ "node_modules/depd": {
296+ "version": "1.1.2",
297+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
298+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
299+ "dev": true,
300+ "engines": {
301+ "node": ">= 0.6"
302+ }
303+ },
304+ "node_modules/devtools-protocol": {
305+ "version": "0.0.854822",
306+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.854822.tgz",
307+ "integrity": "sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==",
308+ "dev": true
309+ },
310+ "node_modules/encoding": {
311+ "version": "0.1.13",
312+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
313+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
314+ "dev": true,
315+ "optional": true,
316+ "dependencies": {
317+ "iconv-lite": "^0.6.2"
318+ }
319+ },
320+ "node_modules/end-of-stream": {
321+ "version": "1.4.4",
322+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
323+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
324+ "dev": true,
325+ "dependencies": {
326+ "once": "^1.4.0"
327+ }
328+ },
329+ "node_modules/entities": {
330+ "version": "2.1.0",
331+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
332+ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
333+ "dev": true,
334+ "funding": {
335+ "url": "https://github.com/fb55/entities?sponsor=1"
336+ }
337+ },
338+ "node_modules/err-code": {
339+ "version": "2.0.3",
340+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
341+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
342+ "dev": true
343+ },
344+ "node_modules/esbuild": {
345+ "version": "0.11.11",
346+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.11.tgz",
347+ "integrity": "sha512-iq5YdV63vY/nUAFIvY92BXVkYjMbOchnofLKoLKMPZIa4uuIJAJG9WRA+ZRjQBZbrsORUwvZcANeG2d3p46PJQ==",
348+ "dev": true,
349+ "hasInstallScript": true,
350+ "bin": {
351+ "esbuild": "bin/esbuild"
352+ }
353+ },
354+ "node_modules/extract-zip": {
355+ "version": "2.0.1",
356+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
357+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
358+ "dev": true,
359+ "dependencies": {
360+ "debug": "^4.1.1",
361+ "get-stream": "^5.1.0",
362+ "yauzl": "^2.10.0"
363+ },
364+ "bin": {
365+ "extract-zip": "cli.js"
366+ },
367+ "engines": {
368+ "node": ">= 10.17.0"
369+ },
370+ "optionalDependencies": {
371+ "@types/yauzl": "^2.9.1"
372+ }
373+ },
374+ "node_modules/fd-slicer": {
375+ "version": "1.1.0",
376+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
377+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
378+ "dev": true,
379+ "dependencies": {
380+ "pend": "~1.2.0"
381+ }
382+ },
383+ "node_modules/fs-constants": {
384+ "version": "1.0.0",
385+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
386+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
387+ "dev": true
388+ },
389+ "node_modules/fs-minipass": {
390+ "version": "2.1.0",
391+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
392+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
393+ "dev": true,
394+ "dependencies": {
395+ "minipass": "^3.0.0"
396+ },
397+ "engines": {
398+ "node": ">= 8"
399+ }
400+ },
401+ "node_modules/fs.realpath": {
402+ "version": "1.0.0",
403+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
404+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
405+ "dev": true
406+ },
407+ "node_modules/get-stream": {
408+ "version": "5.2.0",
409+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
410+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
411+ "dev": true,
412+ "dependencies": {
413+ "pump": "^3.0.0"
414+ },
415+ "engines": {
416+ "node": ">=8"
417+ },
418+ "funding": {
419+ "url": "https://github.com/sponsors/sindresorhus"
420+ }
421+ },
422+ "node_modules/glob": {
423+ "version": "7.1.6",
424+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
425+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
426+ "dev": true,
427+ "dependencies": {
428+ "fs.realpath": "^1.0.0",
429+ "inflight": "^1.0.4",
430+ "inherits": "2",
431+ "minimatch": "^3.0.4",
432+ "once": "^1.3.0",
433+ "path-is-absolute": "^1.0.0"
434+ },
435+ "engines": {
436+ "node": "*"
437+ },
438+ "funding": {
439+ "url": "https://github.com/sponsors/isaacs"
440+ }
441+ },
442+ "node_modules/http-cache-semantics": {
443+ "version": "4.1.0",
444+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
445+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
446+ "dev": true
447+ },
448+ "node_modules/http-proxy-agent": {
449+ "version": "4.0.1",
450+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
451+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
452+ "dev": true,
453+ "dependencies": {
454+ "@tootallnate/once": "1",
455+ "agent-base": "6",
456+ "debug": "4"
457+ },
458+ "engines": {
459+ "node": ">= 6"
460+ }
461+ },
462+ "node_modules/https-proxy-agent": {
463+ "version": "5.0.0",
464+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
465+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
466+ "dev": true,
467+ "dependencies": {
468+ "agent-base": "6",
469+ "debug": "4"
470+ },
471+ "engines": {
472+ "node": ">= 6"
473+ }
474+ },
475+ "node_modules/humanize-ms": {
476+ "version": "1.2.1",
477+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
478+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
479+ "dev": true,
480+ "dependencies": {
481+ "ms": "^2.0.0"
482+ }
483+ },
484+ "node_modules/iconv-lite": {
485+ "version": "0.6.3",
486+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
487+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
488+ "dev": true,
489+ "optional": true,
490+ "dependencies": {
491+ "safer-buffer": ">= 2.1.2 < 3.0.0"
492+ },
493+ "engines": {
494+ "node": ">=0.10.0"
495+ }
496+ },
497+ "node_modules/ieee754": {
498+ "version": "1.2.1",
499+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
500+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
501+ "dev": true,
502+ "funding": [
503+ {
504+ "type": "github",
505+ "url": "https://github.com/sponsors/feross"
506+ },
507+ {
508+ "type": "patreon",
509+ "url": "https://www.patreon.com/feross"
510+ },
511+ {
512+ "type": "consulting",
513+ "url": "https://feross.org/support"
514+ }
515+ ]
516+ },
517+ "node_modules/imurmurhash": {
518+ "version": "0.1.4",
519+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
520+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
521+ "dev": true,
522+ "engines": {
523+ "node": ">=0.8.19"
524+ }
525+ },
526+ "node_modules/indent-string": {
527+ "version": "4.0.0",
528+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
529+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
530+ "dev": true,
531+ "engines": {
532+ "node": ">=8"
533+ }
534+ },
535+ "node_modules/infer-owner": {
536+ "version": "1.0.4",
537+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
538+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
539+ "dev": true
540+ },
541+ "node_modules/inflight": {
542+ "version": "1.0.6",
543+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
544+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
545+ "dev": true,
546+ "dependencies": {
547+ "once": "^1.3.0",
548+ "wrappy": "1"
549+ }
550+ },
551+ "node_modules/inherits": {
552+ "version": "2.0.4",
553+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
554+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
555+ "dev": true
556+ },
557+ "node_modules/ip": {
558+ "version": "2.0.0",
559+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
560+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
561+ "dev": true
562+ },
563+ "node_modules/is-lambda": {
564+ "version": "1.0.1",
565+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
566+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
567+ "dev": true
568+ },
569+ "node_modules/linkify-it": {
570+ "version": "3.0.3",
571+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
572+ "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
573+ "dev": true,
574+ "dependencies": {
575+ "uc.micro": "^1.0.1"
576+ }
577+ },
578+ "node_modules/lru-cache": {
579+ "version": "6.0.0",
580+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
581+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
582+ "dev": true,
583+ "dependencies": {
584+ "yallist": "^4.0.0"
585+ },
586+ "engines": {
587+ "node": ">=10"
588+ }
589+ },
590+ "node_modules/make-fetch-happen": {
591+ "version": "9.1.0",
592+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
593+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
594+ "dev": true,
595+ "dependencies": {
596+ "agentkeepalive": "^4.1.3",
597+ "cacache": "^15.2.0",
598+ "http-cache-semantics": "^4.1.0",
599+ "http-proxy-agent": "^4.0.1",
600+ "https-proxy-agent": "^5.0.0",
601+ "is-lambda": "^1.0.1",
602+ "lru-cache": "^6.0.0",
603+ "minipass": "^3.1.3",
604+ "minipass-collect": "^1.0.2",
605+ "minipass-fetch": "^1.3.2",
606+ "minipass-flush": "^1.0.5",
607+ "minipass-pipeline": "^1.2.4",
608+ "negotiator": "^0.6.2",
609+ "promise-retry": "^2.0.1",
610+ "socks-proxy-agent": "^6.0.0",
611+ "ssri": "^8.0.0"
612+ },
613+ "engines": {
614+ "node": ">= 10"
615+ }
616+ },
617+ "node_modules/markdown-it": {
618+ "version": "12.3.2",
619+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
620+ "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
621+ "dev": true,
622+ "dependencies": {
623+ "argparse": "^2.0.1",
624+ "entities": "~2.1.0",
625+ "linkify-it": "^3.0.1",
626+ "mdurl": "^1.0.1",
627+ "uc.micro": "^1.0.5"
628+ },
629+ "bin": {
630+ "markdown-it": "bin/markdown-it.js"
631+ }
632+ },
633+ "node_modules/mdurl": {
634+ "version": "1.0.1",
635+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
636+ "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
637+ "dev": true
638+ },
639+ "node_modules/minimatch": {
640+ "version": "3.0.4",
641+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
642+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
643+ "dev": true,
644+ "dependencies": {
645+ "brace-expansion": "^1.1.7"
646+ },
647+ "engines": {
648+ "node": "*"
649+ }
650+ },
651+ "node_modules/minipass": {
652+ "version": "3.3.4",
653+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
654+ "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
655+ "dev": true,
656+ "dependencies": {
657+ "yallist": "^4.0.0"
658+ },
659+ "engines": {
660+ "node": ">=8"
661+ }
662+ },
663+ "node_modules/minipass-collect": {
664+ "version": "1.0.2",
665+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
666+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
667+ "dev": true,
668+ "dependencies": {
669+ "minipass": "^3.0.0"
670+ },
671+ "engines": {
672+ "node": ">= 8"
673+ }
674+ },
675+ "node_modules/minipass-fetch": {
676+ "version": "1.4.1",
677+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
678+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
679+ "dev": true,
680+ "dependencies": {
681+ "minipass": "^3.1.0",
682+ "minipass-sized": "^1.0.3",
683+ "minizlib": "^2.0.0"
684+ },
685+ "engines": {
686+ "node": ">=8"
687+ },
688+ "optionalDependencies": {
689+ "encoding": "^0.1.12"
690+ }
691+ },
692+ "node_modules/minipass-flush": {
693+ "version": "1.0.5",
694+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
695+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
696+ "dev": true,
697+ "dependencies": {
698+ "minipass": "^3.0.0"
699+ },
700+ "engines": {
701+ "node": ">= 8"
702+ }
703+ },
704+ "node_modules/minipass-pipeline": {
705+ "version": "1.2.4",
706+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
707+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
708+ "dev": true,
709+ "dependencies": {
710+ "minipass": "^3.0.0"
711+ },
712+ "engines": {
713+ "node": ">=8"
714+ }
715+ },
716+ "node_modules/minipass-sized": {
717+ "version": "1.0.3",
718+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
719+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
720+ "dev": true,
721+ "dependencies": {
722+ "minipass": "^3.0.0"
723+ },
724+ "engines": {
725+ "node": ">=8"
726+ }
727+ },
728+ "node_modules/minizlib": {
729+ "version": "2.1.2",
730+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
731+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
732+ "dev": true,
733+ "dependencies": {
734+ "minipass": "^3.0.0",
735+ "yallist": "^4.0.0"
736+ },
737+ "engines": {
738+ "node": ">= 8"
739+ }
740+ },
741+ "node_modules/mkdirp": {
742+ "version": "1.0.4",
743+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
744+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
745+ "dev": true,
746+ "bin": {
747+ "mkdirp": "bin/cmd.js"
748+ },
749+ "engines": {
750+ "node": ">=10"
751+ }
752+ },
753+ "node_modules/mkdirp-classic": {
754+ "version": "0.5.3",
755+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
756+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
757+ "dev": true
758+ },
759+ "node_modules/ms": {
760+ "version": "2.1.2",
761+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
762+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
763+ "dev": true
764+ },
765+ "node_modules/negotiator": {
766+ "version": "0.6.3",
767+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
768+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
769+ "dev": true,
770+ "engines": {
771+ "node": ">= 0.6"
772+ }
773+ },
774+ "node_modules/node-fetch": {
775+ "version": "2.6.1",
776+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
777+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
778+ "dev": true,
779+ "engines": {
780+ "node": "4.x || >=6.0.0"
781+ }
782+ },
783+ "node_modules/once": {
784+ "version": "1.4.0",
785+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
786+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
787+ "dev": true,
788+ "dependencies": {
789+ "wrappy": "1"
790+ }
791+ },
792+ "node_modules/p-limit": {
793+ "version": "2.3.0",
794+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
795+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
796+ "dev": true,
797+ "dependencies": {
798+ "p-try": "^2.0.0"
799+ },
800+ "engines": {
801+ "node": ">=6"
802+ },
803+ "funding": {
804+ "url": "https://github.com/sponsors/sindresorhus"
805+ }
806+ },
807+ "node_modules/p-map": {
808+ "version": "4.0.0",
809+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
810+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
811+ "dev": true,
812+ "dependencies": {
813+ "aggregate-error": "^3.0.0"
814+ },
815+ "engines": {
816+ "node": ">=10"
817+ },
818+ "funding": {
819+ "url": "https://github.com/sponsors/sindresorhus"
820+ }
821+ },
822+ "node_modules/p-try": {
823+ "version": "2.2.0",
824+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
825+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
826+ "dev": true,
827+ "engines": {
828+ "node": ">=6"
829+ }
830+ },
831+ "node_modules/path-is-absolute": {
832+ "version": "1.0.1",
833+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
834+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
835+ "dev": true,
836+ "engines": {
837+ "node": ">=0.10.0"
838+ }
839+ },
840+ "node_modules/pend": {
841+ "version": "1.2.0",
842+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
843+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
844+ "dev": true
845+ },
846+ "node_modules/pkg-dir": {
847+ "version": "4.2.0",
848+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
849+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
850+ "dev": true,
851+ "dependencies": {
852+ "find-up": "^4.0.0"
853+ },
854+ "engines": {
855+ "node": ">=8"
856+ }
857+ },
858+ "node_modules/pkg-dir/node_modules/find-up": {
859+ "version": "4.1.0",
860+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
861+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
862+ "dev": true,
863+ "dependencies": {
864+ "locate-path": "^5.0.0",
865+ "path-exists": "^4.0.0"
866+ },
867+ "engines": {
868+ "node": ">=8"
869+ }
870+ },
871+ "node_modules/pkg-dir/node_modules/locate-path": {
872+ "version": "5.0.0",
873+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
874+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
875+ "dev": true,
876+ "dependencies": {
877+ "p-locate": "^4.1.0"
878+ },
879+ "engines": {
880+ "node": ">=8"
881+ }
882+ },
883+ "node_modules/pkg-dir/node_modules/p-locate": {
884+ "version": "4.1.0",
885+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
886+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
887+ "dev": true,
888+ "dependencies": {
889+ "p-limit": "^2.2.0"
890+ },
891+ "engines": {
892+ "node": ">=8"
893+ }
894+ },
895+ "node_modules/pkg-dir/node_modules/path-exists": {
896+ "version": "4.0.0",
897+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
898+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
899+ "dev": true,
900+ "engines": {
901+ "node": ">=8"
902+ }
903+ },
904+ "node_modules/progress": {
905+ "version": "2.0.3",
906+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
907+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
908+ "dev": true,
909+ "engines": {
910+ "node": ">=0.4.0"
911+ }
912+ },
913+ "node_modules/promise-inflight": {
914+ "version": "1.0.1",
915+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
916+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
917+ "dev": true
918+ },
919+ "node_modules/promise-retry": {
920+ "version": "2.0.1",
921+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
922+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
923+ "dev": true,
924+ "dependencies": {
925+ "err-code": "^2.0.2",
926+ "retry": "^0.12.0"
927+ },
928+ "engines": {
929+ "node": ">=10"
930+ }
931+ },
932+ "node_modules/proxy-from-env": {
933+ "version": "1.1.0",
934+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
935+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
936+ "dev": true
937+ },
938+ "node_modules/pump": {
939+ "version": "3.0.0",
940+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
941+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
942+ "dev": true,
943+ "dependencies": {
944+ "end-of-stream": "^1.1.0",
945+ "once": "^1.3.1"
946+ }
947+ },
948+ "node_modules/punycode": {
949+ "version": "2.1.1",
950+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
951+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
952+ "engines": {
953+ "node": ">=6"
954+ }
955+ },
956+ "node_modules/puppeteer": {
957+ "version": "8.0.0",
958+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-8.0.0.tgz",
959+ "integrity": "sha512-D0RzSWlepeWkxPPdK3xhTcefj8rjah1791GE82Pdjsri49sy11ci/JQsAO8K2NRukqvwEtcI+ImP5F4ZiMvtIQ==",
960+ "deprecated": "Version no longer supported. Upgrade to @latest",
961+ "dev": true,
962+ "hasInstallScript": true,
963+ "dependencies": {
964+ "debug": "^4.1.0",
965+ "devtools-protocol": "0.0.854822",
966+ "extract-zip": "^2.0.0",
967+ "https-proxy-agent": "^5.0.0",
968+ "node-fetch": "^2.6.1",
969+ "pkg-dir": "^4.2.0",
970+ "progress": "^2.0.1",
971+ "proxy-from-env": "^1.1.0",
972+ "rimraf": "^3.0.2",
973+ "tar-fs": "^2.0.0",
974+ "unbzip2-stream": "^1.3.3",
975+ "ws": "^7.2.3"
976+ },
977+ "engines": {
978+ "node": ">=10.18.1"
979+ }
980+ },
981+ "node_modules/puppeteer/node_modules/ws": {
982+ "version": "7.4.4",
983+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
984+ "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
985+ "dev": true,
986+ "engines": {
987+ "node": ">=8.3.0"
988+ },
989+ "peerDependencies": {
990+ "bufferutil": "^4.0.1",
991+ "utf-8-validate": "^5.0.2"
992+ },
993+ "peerDependenciesMeta": {
994+ "bufferutil": {
995+ "optional": true
996+ },
997+ "utf-8-validate": {
998+ "optional": true
999+ }
1000+ }
1001+ },
1002+ "node_modules/retry": {
1003+ "version": "0.12.0",
1004+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
1005+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
1006+ "dev": true,
1007+ "engines": {
1008+ "node": ">= 4"
1009+ }
1010+ },
1011+ "node_modules/rimraf": {
1012+ "version": "3.0.2",
1013+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1014+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1015+ "dev": true,
1016+ "dependencies": {
1017+ "glob": "^7.1.3"
1018+ },
1019+ "bin": {
1020+ "rimraf": "bin.js"
1021+ },
1022+ "funding": {
1023+ "url": "https://github.com/sponsors/isaacs"
1024+ }
1025+ },
1026+ "node_modules/safe-buffer": {
1027+ "version": "5.2.1",
1028+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1029+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1030+ "dev": true,
1031+ "funding": [
1032+ {
1033+ "type": "github",
1034+ "url": "https://github.com/sponsors/feross"
1035+ },
1036+ {
1037+ "type": "patreon",
1038+ "url": "https://www.patreon.com/feross"
1039+ },
1040+ {
1041+ "type": "consulting",
1042+ "url": "https://feross.org/support"
1043+ }
1044+ ]
1045+ },
1046+ "node_modules/safer-buffer": {
1047+ "version": "2.1.2",
1048+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1049+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1050+ "dev": true,
1051+ "optional": true
1052+ },
1053+ "node_modules/semver": {
1054+ "version": "7.3.7",
1055+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
1056+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
1057+ "dev": true,
1058+ "dependencies": {
1059+ "lru-cache": "^6.0.0"
1060+ },
1061+ "bin": {
1062+ "semver": "bin/semver.js"
1063+ },
1064+ "engines": {
1065+ "node": ">=10"
1066+ }
1067+ },
1068+ "node_modules/smart-buffer": {
1069+ "version": "4.2.0",
1070+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1071+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
1072+ "dev": true,
1073+ "engines": {
1074+ "node": ">= 6.0.0",
1075+ "npm": ">= 3.0.0"
1076+ }
1077+ },
1078+ "node_modules/socks": {
1079+ "version": "2.7.0",
1080+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz",
1081+ "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==",
1082+ "dev": true,
1083+ "dependencies": {
1084+ "ip": "^2.0.0",
1085+ "smart-buffer": "^4.2.0"
1086+ },
1087+ "engines": {
1088+ "node": ">= 10.13.0",
1089+ "npm": ">= 3.0.0"
1090+ }
1091+ },
1092+ "node_modules/socks-proxy-agent": {
1093+ "version": "6.2.1",
1094+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
1095+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
1096+ "dev": true,
1097+ "dependencies": {
1098+ "agent-base": "^6.0.2",
1099+ "debug": "^4.3.3",
1100+ "socks": "^2.6.2"
1101+ },
1102+ "engines": {
1103+ "node": ">= 10"
1104+ }
1105+ },
1106+ "node_modules/spago": {
1107+ "version": "0.20.9",
1108+ "resolved": "https://registry.npmjs.org/spago/-/spago-0.20.9.tgz",
1109+ "integrity": "sha512-r5TUxnYn9HawlQyMswlhIk24BGFSN2KGbqgZFZrn47GjTpMscU14xkt9CqTWgoSQYsoZieG+3dUtOxUQ7GYD7w==",
1110+ "dev": true,
1111+ "hasInstallScript": true,
1112+ "dependencies": {
1113+ "make-fetch-happen": "^9.1.0",
1114+ "tar": "^6.1.11"
1115+ },
1116+ "bin": {
1117+ "spago": "spago"
1118+ }
1119+ },
1120+ "node_modules/ssri": {
1121+ "version": "8.0.1",
1122+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
1123+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
1124+ "dev": true,
1125+ "dependencies": {
1126+ "minipass": "^3.1.1"
1127+ },
1128+ "engines": {
1129+ "node": ">= 8"
1130+ }
1131+ },
1132+ "node_modules/string_decoder": {
1133+ "version": "1.3.0",
1134+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1135+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1136+ "dev": true,
1137+ "dependencies": {
1138+ "safe-buffer": "~5.2.0"
1139+ }
1140+ },
1141+ "node_modules/tar": {
1142+ "version": "6.1.11",
1143+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
1144+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
1145+ "dev": true,
1146+ "dependencies": {
1147+ "chownr": "^2.0.0",
1148+ "fs-minipass": "^2.0.0",
1149+ "minipass": "^3.0.0",
1150+ "minizlib": "^2.1.1",
1151+ "mkdirp": "^1.0.3",
1152+ "yallist": "^4.0.0"
1153+ },
1154+ "engines": {
1155+ "node": ">= 10"
1156+ }
1157+ },
1158+ "node_modules/tar-fs": {
1159+ "version": "2.1.1",
1160+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
1161+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
1162+ "dev": true,
1163+ "dependencies": {
1164+ "chownr": "^1.1.1",
1165+ "mkdirp-classic": "^0.5.2",
1166+ "pump": "^3.0.0",
1167+ "tar-stream": "^2.1.4"
1168+ }
1169+ },
1170+ "node_modules/tar-stream": {
1171+ "version": "2.2.0",
1172+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
1173+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
1174+ "dev": true,
1175+ "dependencies": {
1176+ "bl": "^4.0.3",
1177+ "end-of-stream": "^1.4.1",
1178+ "fs-constants": "^1.0.0",
1179+ "inherits": "^2.0.3",
1180+ "readable-stream": "^3.1.1"
1181+ },
1182+ "engines": {
1183+ "node": ">=6"
1184+ }
1185+ },
1186+ "node_modules/tar-stream/node_modules/readable-stream": {
1187+ "version": "3.6.0",
1188+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1189+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1190+ "dev": true,
1191+ "dependencies": {
1192+ "inherits": "^2.0.3",
1193+ "string_decoder": "^1.1.1",
1194+ "util-deprecate": "^1.0.1"
1195+ },
1196+ "engines": {
1197+ "node": ">= 6"
1198+ }
1199+ },
1200+ "node_modules/tar/node_modules/chownr": {
1201+ "version": "2.0.0",
1202+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
1203+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
1204+ "dev": true,
1205+ "engines": {
1206+ "node": ">=10"
1207+ }
1208+ },
1209+ "node_modules/through": {
1210+ "version": "2.3.8",
1211+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1212+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1213+ "dev": true
1214+ },
1215+ "node_modules/uc.micro": {
1216+ "version": "1.0.6",
1217+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
1218+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
1219+ "dev": true
1220+ },
1221+ "node_modules/unbzip2-stream": {
1222+ "version": "1.4.3",
1223+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
1224+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
1225+ "dev": true,
1226+ "dependencies": {
1227+ "buffer": "^5.2.1",
1228+ "through": "^2.3.8"
1229+ }
1230+ },
1231+ "node_modules/unbzip2-stream/node_modules/buffer": {
1232+ "version": "5.7.1",
1233+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
1234+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
1235+ "dev": true,
1236+ "funding": [
1237+ {
1238+ "type": "github",
1239+ "url": "https://github.com/sponsors/feross"
1240+ },
1241+ {
1242+ "type": "patreon",
1243+ "url": "https://www.patreon.com/feross"
1244+ },
1245+ {
1246+ "type": "consulting",
1247+ "url": "https://feross.org/support"
1248+ }
1249+ ],
1250+ "dependencies": {
1251+ "base64-js": "^1.3.1",
1252+ "ieee754": "^1.1.13"
1253+ }
1254+ },
1255+ "node_modules/unique-filename": {
1256+ "version": "1.1.1",
1257+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
1258+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
1259+ "dev": true,
1260+ "dependencies": {
1261+ "unique-slug": "^2.0.0"
1262+ }
1263+ },
1264+ "node_modules/unique-slug": {
1265+ "version": "2.0.2",
1266+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
1267+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
1268+ "dev": true,
1269+ "dependencies": {
1270+ "imurmurhash": "^0.1.4"
1271+ }
1272+ },
1273+ "node_modules/util-deprecate": {
1274+ "version": "1.0.2",
1275+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1276+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1277+ "dev": true
1278+ },
1279+ "node_modules/wrappy": {
1280+ "version": "1.0.2",
1281+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1282+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1283+ "dev": true
1284+ },
1285+ "node_modules/yallist": {
1286+ "version": "4.0.0",
1287+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1288+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1289+ "dev": true
1290+ },
1291+ "node_modules/yauzl": {
1292+ "version": "2.10.0",
1293+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
1294+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
1295+ "dev": true,
1296+ "dependencies": {
1297+ "buffer-crc32": "~0.2.3",
1298+ "fd-slicer": "~1.1.0"
1299+ }
1300+ }
1301+ },
6 "dependencies": {
1302 "dependencies": {
1303+ "@gar/promisify": {
1304+ "version": "1.1.3",
1305+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
1306+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
1307+ "dev": true
1308+ },
1309+ "@npmcli/fs": {
1310+ "version": "1.1.1",
1311+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
1312+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
1313+ "dev": true,
1314+ "requires": {
1315+ "@gar/promisify": "^1.0.1",
1316+ "semver": "^7.3.5"
1317+ }
1318+ },
1319+ "@npmcli/move-file": {
1320+ "version": "1.1.2",
1321+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
1322+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
1323+ "dev": true,
1324+ "requires": {
1325+ "mkdirp": "^1.0.4",
1326+ "rimraf": "^3.0.2"
1327+ }
1328+ },
1329+ "@tootallnate/once": {
1330+ "version": "1.1.2",
1331+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
1332+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
1333+ "dev": true
1334+ },
7 "@types/node": {
1335 "@types/node": {
8 "version": "14.14.39",
1336 "version": "14.14.39",
9 "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.39.tgz",
1337 "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.39.tgz",
@@ -30,55 +1358,31 @@
30 "debug": "4"
1358 "debug": "4"
31 }
1359 }
32 },
1360 },
33− "ajv": {
1361+ "agentkeepalive": {
34− "version": "6.12.6",
1362+ "version": "4.2.1",
35− "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1363+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
36− "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1364+ "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
37 "dev": true,
1365 "dev": true,
38 "requires": {
1366 "requires": {
39− "fast-deep-equal": "^3.1.1",
1367+ "debug": "^4.1.0",
40− "fast-json-stable-stringify": "^2.0.0",
1368+ "depd": "^1.1.2",
41− "json-schema-traverse": "^0.4.1",
1369+ "humanize-ms": "^1.2.1"
42− "uri-js": "^4.2.2"
43 }
1370 }
44 },
1371 },
45− "argparse": {
1372+ "aggregate-error": {
46− "version": "2.0.1",
1373+ "version": "3.1.0",
47− "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1374+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
48− "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1375+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
49− "dev": true
50− },
51− "asn1": {
52− "version": "0.2.4",
53− "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
54− "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
55 "dev": true,
1376 "dev": true,
56 "requires": {
1377 "requires": {
57− "safer-buffer": "~2.1.0"
1378+ "clean-stack": "^2.0.0",
1379+ "indent-string": "^4.0.0"
58 }
1380 }
59 },
1381 },
60− "assert-plus": {
1382+ "argparse": {
61− "version": "1.0.0",
1383+ "version": "2.0.1",
62− "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
63− "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
64− "dev": true
65− },
66− "asynckit": {
67− "version": "0.4.0",
68− "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1384+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
69− "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
1385+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
70− "dev": true
71− },
72− "aws-sign2": {
73− "version": "0.7.0",
74− "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
75− "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
76− "dev": true
77− },
78− "aws4": {
79− "version": "1.11.0",
80− "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
81− "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
82 "dev": true
1386 "dev": true
83 },
1387 },
84 "balanced-match": {
1388 "balanced-match": {
@@ -93,15 +1397,6 @@
93 "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
1397 "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
94 "dev": true
1398 "dev": true
95 },
1399 },
96− "bcrypt-pbkdf": {
97− "version": "1.0.2",
98− "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
99− "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
100− "dev": true,
101− "requires": {
102− "tweetnacl": "^0.14.3"
103− }
104− },
105 "bl": {
1400 "bl": {
106 "version": "4.1.0",
1401 "version": "4.1.0",
107 "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
1402 "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
@@ -152,11 +1447,39 @@
152 "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
1447 "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
153 "dev": true
1448 "dev": true
154 },
1449 },
155− "caseless": {
1450+ "cacache": {
156− "version": "0.12.0",
1451+ "version": "15.3.0",
157− "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1452+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
158− "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
1453+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
1454+ "dev": true,
1455+ "requires": {
1456+ "@npmcli/fs": "^1.0.0",
1457+ "@npmcli/move-file": "^1.0.1",
1458+ "chownr": "^2.0.0",
1459+ "fs-minipass": "^2.0.0",
1460+ "glob": "^7.1.4",
1461+ "infer-owner": "^1.0.4",
1462+ "lru-cache": "^6.0.0",
1463+ "minipass": "^3.1.1",
1464+ "minipass-collect": "^1.0.2",
1465+ "minipass-flush": "^1.0.5",
1466+ "minipass-pipeline": "^1.2.2",
1467+ "mkdirp": "^1.0.3",
1468+ "p-map": "^4.0.0",
1469+ "promise-inflight": "^1.0.1",
1470+ "rimraf": "^3.0.2",
1471+ "ssri": "^8.0.1",
1472+ "tar": "^6.0.2",
1473+ "unique-filename": "^1.1.1"
1474+ },
1475+ "dependencies": {
1476+ "chownr": {
1477+ "version": "2.0.0",
1478+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
1479+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
159− "dev": true
1480+ "dev": true
1481+ }
1482+ }
160 },
1483 },
161 "chownr": {
1484 "chownr": {
162 "version": "1.1.4",
1485 "version": "1.1.4",
@@ -164,14 +1487,11 @@
164 "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
1487 "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
165 "dev": true
1488 "dev": true
166 },
1489 },
167− "combined-stream": {
1490+ "clean-stack": {
168− "version": "1.0.8",
1491+ "version": "2.2.0",
169− "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1492+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
170− "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1493+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
171− "dev": true,
1494+ "dev": true
172− "requires": {
173− "delayed-stream": "~1.0.0"
174− }
175 },
1495 },
176 "concat-map": {
1496 "concat-map": {
177 "version": "0.0.1",
1497 "version": "0.0.1",
@@ -179,34 +1499,19 @@
179 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1499 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
180 "dev": true
1500 "dev": true
181 },
1501 },
182− "core-util-is": {
183− "version": "1.0.2",
184− "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
185− "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
186− "dev": true
187− },
188− "dashdash": {
189− "version": "1.14.1",
190− "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
191− "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
192− "dev": true,
193− "requires": {
194− "assert-plus": "^1.0.0"
195− }
196− },
197 "debug": {
1502 "debug": {
198− "version": "4.3.1",
1503+ "version": "4.3.4",
199− "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
1504+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
200− "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
1505+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
201 "dev": true,
1506 "dev": true,
202 "requires": {
1507 "requires": {
203 "ms": "2.1.2"
1508 "ms": "2.1.2"
204 }
1509 }
205 },
1510 },
206− "delayed-stream": {
1511+ "depd": {
207− "version": "1.0.0",
1512+ "version": "1.1.2",
208− "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1513+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
209− "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
1514+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
210 "dev": true
1515 "dev": true
211 },
1516 },
212 "devtools-protocol": {
1517 "devtools-protocol": {
@@ -215,14 +1520,14 @@
215 "integrity": "sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==",
1520 "integrity": "sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==",
216 "dev": true
1521 "dev": true
217 },
1522 },
218− "ecc-jsbn": {
1523+ "encoding": {
219− "version": "0.1.2",
1524+ "version": "0.1.13",
220− "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
1525+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
221− "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
1526+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
222 "dev": true,
1527 "dev": true,
1528+ "optional": true,
223 "requires": {
1529 "requires": {
224− "jsbn": "~0.1.0",
1530+ "iconv-lite": "^0.6.2"
225− "safer-buffer": "^2.1.0"
226 }
1531 }
227 },
1532 },
228 "end-of-stream": {
1533 "end-of-stream": {
@@ -240,18 +1545,18 @@
240 "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
1545 "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
241 "dev": true
1546 "dev": true
242 },
1547 },
1548+ "err-code": {
1549+ "version": "2.0.3",
1550+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
1551+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
1552+ "dev": true
1553+ },
243 "esbuild": {
1554 "esbuild": {
244 "version": "0.11.11",
1555 "version": "0.11.11",
245 "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.11.tgz",
1556 "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.11.tgz",
246 "integrity": "sha512-iq5YdV63vY/nUAFIvY92BXVkYjMbOchnofLKoLKMPZIa4uuIJAJG9WRA+ZRjQBZbrsORUwvZcANeG2d3p46PJQ==",
1557 "integrity": "sha512-iq5YdV63vY/nUAFIvY92BXVkYjMbOchnofLKoLKMPZIa4uuIJAJG9WRA+ZRjQBZbrsORUwvZcANeG2d3p46PJQ==",
247 "dev": true
1558 "dev": true
248 },
1559 },
249− "extend": {
250− "version": "3.0.2",
251− "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
252− "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
253− "dev": true
254− },
255 "extract-zip": {
1560 "extract-zip": {
256 "version": "2.0.1",
1561 "version": "2.0.1",
257 "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
1562 "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
@@ -264,24 +1569,6 @@
264 "yauzl": "^2.10.0"
1569 "yauzl": "^2.10.0"
265 }
1570 }
266 },
1571 },
267− "extsprintf": {
268− "version": "1.3.0",
269− "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
270− "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
271− "dev": true
272− },
273− "fast-deep-equal": {
274− "version": "3.1.3",
275− "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
276− "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
277− "dev": true
278− },
279− "fast-json-stable-stringify": {
280− "version": "2.1.0",
281− "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
282− "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
283− "dev": true
284− },
285 "fd-slicer": {
1572 "fd-slicer": {
286 "version": "1.1.0",
1573 "version": "1.1.0",
287 "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
1574 "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -291,23 +1578,6 @@
291 "pend": "~1.2.0"
1578 "pend": "~1.2.0"
292 }
1579 }
293 },
1580 },
294− "forever-agent": {
295− "version": "0.6.1",
296− "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
297− "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
298− "dev": true
299− },
300− "form-data": {
301− "version": "2.3.3",
302− "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
303− "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
304− "dev": true,
305− "requires": {
306− "asynckit": "^0.4.0",
307− "combined-stream": "^1.0.6",
308− "mime-types": "^2.1.12"
309− }
310− },
311 "fs-constants": {
1581 "fs-constants": {
312 "version": "1.0.0",
1582 "version": "1.0.0",
313 "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
1583 "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@@ -315,12 +1585,12 @@
315 "dev": true
1585 "dev": true
316 },
1586 },
317 "fs-minipass": {
1587 "fs-minipass": {
318− "version": "1.2.7",
1588+ "version": "2.1.0",
319− "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
1589+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
320− "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
1590+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
321 "dev": true,
1591 "dev": true,
322 "requires": {
1592 "requires": {
323− "minipass": "^2.6.0"
1593+ "minipass": "^3.0.0"
324 }
1594 }
325 },
1595 },
326 "fs.realpath": {
1596 "fs.realpath": {
@@ -338,15 +1608,6 @@
338 "pump": "^3.0.0"
1608 "pump": "^3.0.0"
339 }
1609 }
340 },
1610 },
341− "getpass": {
342− "version": "0.1.7",
343− "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
344− "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
345− "dev": true,
346− "requires": {
347− "assert-plus": "^1.0.0"
348− }
349− },
350 "glob": {
1611 "glob": {
351 "version": "7.1.6",
1612 "version": "7.1.6",
352 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1613 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -361,31 +1622,21 @@
361 "path-is-absolute": "^1.0.0"
1622 "path-is-absolute": "^1.0.0"
362 }
1623 }
363 },
1624 },
364− "har-schema": {
1625+ "http-cache-semantics": {
365− "version": "2.0.0",
1626+ "version": "4.1.0",
366− "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1627+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
367− "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
1628+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
368 "dev": true
1629 "dev": true
369 },
1630 },
370− "har-validator": {
1631+ "http-proxy-agent": {
371− "version": "5.1.5",
1632+ "version": "4.0.1",
372− "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
1633+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
373− "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
1634+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
374− "dev": true,
375− "requires": {
376− "ajv": "^6.12.3",
377− "har-schema": "^2.0.0"
378− }
379− },
380− "http-signature": {
381− "version": "1.2.0",
382− "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
383− "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
384 "dev": true,
1635 "dev": true,
385 "requires": {
1636 "requires": {
386− "assert-plus": "^1.0.0",
1637+ "@tootallnate/once": "1",
387− "jsprim": "^1.2.2",
1638+ "agent-base": "6",
388− "sshpk": "^1.7.0"
1639+ "debug": "4"
389 }
1640 }
390 },
1641 },
391 "https-proxy-agent": {
1642 "https-proxy-agent": {
@@ -398,12 +1649,49 @@
398 "debug": "4"
1649 "debug": "4"
399 }
1650 }
400 },
1651 },
1652+ "humanize-ms": {
1653+ "version": "1.2.1",
1654+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
1655+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
1656+ "dev": true,
1657+ "requires": {
1658+ "ms": "^2.0.0"
1659+ }
1660+ },
1661+ "iconv-lite": {
1662+ "version": "0.6.3",
1663+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
1664+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
1665+ "dev": true,
1666+ "optional": true,
1667+ "requires": {
1668+ "safer-buffer": ">= 2.1.2 < 3.0.0"
1669+ }
1670+ },
401 "ieee754": {
1671 "ieee754": {
402 "version": "1.2.1",
1672 "version": "1.2.1",
403 "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1673 "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
404 "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1674 "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
405 "dev": true
1675 "dev": true
406 },
1676 },
1677+ "imurmurhash": {
1678+ "version": "0.1.4",
1679+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1680+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
1681+ "dev": true
1682+ },
1683+ "indent-string": {
1684+ "version": "4.0.0",
1685+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1686+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
1687+ "dev": true
1688+ },
1689+ "infer-owner": {
1690+ "version": "1.0.4",
1691+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
1692+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
1693+ "dev": true
1694+ },
407 "inflight": {
1695 "inflight": {
408 "version": "1.0.6",
1696 "version": "1.0.6",
409 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1697 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -420,54 +1708,18 @@
420 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1708 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
421 "dev": true
1709 "dev": true
422 },
1710 },
423− "is-typedarray": {
1711+ "ip": {
424− "version": "1.0.0",
425− "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
426− "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
427− "dev": true
428− },
429− "isstream": {
430− "version": "0.1.2",
1712+ "version": "2.0.0",
431− "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
432− "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
433− "dev": true
434− },
435− "jsbn": {
436− "version": "0.1.1",
437− "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1713+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
438− "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1714+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
439− "dev": true
440− },
441− "json-schema": {
442− "version": "0.2.3",
443− "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
444− "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
445− "dev": true
446− },
447− "json-schema-traverse": {
448− "version": "0.4.1",
449− "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
450− "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
451 "dev": true
1715 "dev": true
452 },
1716 },
453− "json-stringify-safe": {
1717+ "is-lambda": {
454− "version": "5.0.1",
1718+ "version": "1.0.1",
455− "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1719+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
456− "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1720+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
457 "dev": true
1721 "dev": true
458 },
1722 },
459− "jsprim": {
460− "version": "1.4.1",
461− "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
462− "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
463− "dev": true,
464− "requires": {
465− "assert-plus": "1.0.0",
466− "extsprintf": "1.3.0",
467− "json-schema": "0.2.3",
468− "verror": "1.10.0"
469− }
470− },
471 "linkify-it": {
1723 "linkify-it": {
472 "version": "3.0.3",
1724 "version": "3.0.3",
473 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
1725 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
@@ -477,6 +1729,39 @@
477 "uc.micro": "^1.0.1"
1729 "uc.micro": "^1.0.1"
478 }
1730 }
479 },
1731 },
1732+ "lru-cache": {
1733+ "version": "6.0.0",
1734+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1735+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1736+ "dev": true,
1737+ "requires": {
1738+ "yallist": "^4.0.0"
1739+ }
1740+ },
1741+ "make-fetch-happen": {
1742+ "version": "9.1.0",
1743+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
1744+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
1745+ "dev": true,
1746+ "requires": {
1747+ "agentkeepalive": "^4.1.3",
1748+ "cacache": "^15.2.0",
1749+ "http-cache-semantics": "^4.1.0",
1750+ "http-proxy-agent": "^4.0.1",
1751+ "https-proxy-agent": "^5.0.0",
1752+ "is-lambda": "^1.0.1",
1753+ "lru-cache": "^6.0.0",
1754+ "minipass": "^3.1.3",
1755+ "minipass-collect": "^1.0.2",
1756+ "minipass-fetch": "^1.3.2",
1757+ "minipass-flush": "^1.0.5",
1758+ "minipass-pipeline": "^1.2.4",
1759+ "negotiator": "^0.6.2",
1760+ "promise-retry": "^2.0.1",
1761+ "socks-proxy-agent": "^6.0.0",
1762+ "ssri": "^8.0.0"
1763+ }
1764+ },
480 "markdown-it": {
1765 "markdown-it": {
481 "version": "12.3.2",
1766 "version": "12.3.2",
482 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
1767 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
@@ -496,21 +1781,6 @@
496 "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
1781 "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
497 "dev": true
1782 "dev": true
498 },
1783 },
499− "mime-db": {
500− "version": "1.47.0",
501− "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
502− "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
503− "dev": true
504− },
505− "mime-types": {
506− "version": "2.1.30",
507− "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
508− "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
509− "dev": true,
510− "requires": {
511− "mime-db": "1.47.0"
512− }
513− },
514 "minimatch": {
1784 "minimatch": {
515 "version": "3.0.4",
1785 "version": "3.0.4",
516 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1786 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -521,41 +1791,78 @@
521 }
1791 }
522 },
1792 },
523 "minipass": {
1793 "minipass": {
524− "version": "2.9.0",
1794+ "version": "3.3.4",
525− "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
1795+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
526− "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
1796+ "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
527 "dev": true,
1797 "dev": true,
528 "requires": {
1798 "requires": {
529− "safe-buffer": "^5.1.2",
530− "yallist": "^3.0.0"
1799+ "yallist": "^4.0.0"
531 }
1800 }
532 },
1801 },
533− "minizlib": {
1802+ "minipass-collect": {
534− "version": "1.3.3",
1803+ "version": "1.0.2",
535− "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
1804+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
536− "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
1805+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
537 "dev": true,
1806 "dev": true,
538 "requires": {
1807 "requires": {
539− "minipass": "^2.9.0"
1808+ "minipass": "^3.0.0"
540 }
1809 }
541 },
1810 },
542− "mkdirp": {
1811+ "minipass-fetch": {
543− "version": "0.5.5",
1812+ "version": "1.4.1",
544− "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1813+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
545− "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1814+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
546 "dev": true,
1815 "dev": true,
547 "requires": {
1816 "requires": {
548− "minimist": "^1.2.5"
1817+ "encoding": "^0.1.12",
1818+ "minipass": "^3.1.0",
1819+ "minipass-sized": "^1.0.3",
1820+ "minizlib": "^2.0.0"
549− },
1821+ }
550− "dependencies": {
1822+ },
551− "minimist": {
1823+ "minipass-flush": {
1824+ "version": "1.0.5",
1825+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
1826+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
1827+ "dev": true,
1828+ "requires": {
1829+ "minipass": "^3.0.0"
1830+ }
1831+ },
1832+ "minipass-pipeline": {
552− "version": "1.2.5",
1833+ "version": "1.2.4",
553− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1834+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
554− "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1835+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
555− "dev": true
1836+ "dev": true,
1837+ "requires": {
1838+ "minipass": "^3.0.0"
556− }
1839+ }
1840+ },
1841+ "minipass-sized": {
1842+ "version": "1.0.3",
1843+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
1844+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
1845+ "dev": true,
1846+ "requires": {
1847+ "minipass": "^3.0.0"
1848+ }
1849+ },
1850+ "minizlib": {
1851+ "version": "2.1.2",
1852+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1853+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1854+ "dev": true,
1855+ "requires": {
1856+ "minipass": "^3.0.0",
1857+ "yallist": "^4.0.0"
557 }
1858 }
558 },
1859 },
1860+ "mkdirp": {
1861+ "version": "1.0.4",
1862+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1863+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1864+ "dev": true
1865+ },
559 "mkdirp-classic": {
1866 "mkdirp-classic": {
560 "version": "0.5.3",
1867 "version": "0.5.3",
561 "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
1868 "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
@@ -568,18 +1875,18 @@
568 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1875 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
569 "dev": true
1876 "dev": true
570 },
1877 },
1878+ "negotiator": {
1879+ "version": "0.6.3",
1880+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1881+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1882+ "dev": true
1883+ },
571 "node-fetch": {
1884 "node-fetch": {
572 "version": "2.6.1",
1885 "version": "2.6.1",
573 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
1886 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
574 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
1887 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
575 "dev": true
1888 "dev": true
576 },
1889 },
577− "oauth-sign": {
578− "version": "0.9.0",
579− "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
580− "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
581− "dev": true
582− },
583 "once": {
1890 "once": {
584 "version": "1.4.0",
1891 "version": "1.4.0",
585 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1892 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -598,6 +1905,15 @@
598 "p-try": "^2.0.0"
1905 "p-try": "^2.0.0"
599 }
1906 }
600 },
1907 },
1908+ "p-map": {
1909+ "version": "4.0.0",
1910+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
1911+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
1912+ "dev": true,
1913+ "requires": {
1914+ "aggregate-error": "^3.0.0"
1915+ }
1916+ },
601 "p-try": {
1917 "p-try": {
602 "version": "2.2.0",
1918 "version": "2.2.0",
603 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1919 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -616,12 +1932,6 @@
616 "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
1932 "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
617 "dev": true
1933 "dev": true
618 },
1934 },
619− "performance-now": {
620− "version": "2.1.0",
621− "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
622− "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
623− "dev": true
624− },
625 "pkg-dir": {
1935 "pkg-dir": {
626 "version": "4.2.0",
1936 "version": "4.2.0",
627 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
1937 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -673,18 +1983,28 @@
673 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1983 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
674 "dev": true
1984 "dev": true
675 },
1985 },
1986+ "promise-inflight": {
1987+ "version": "1.0.1",
1988+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
1989+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
1990+ "dev": true
1991+ },
1992+ "promise-retry": {
1993+ "version": "2.0.1",
1994+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
1995+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
1996+ "dev": true,
1997+ "requires": {
1998+ "err-code": "^2.0.2",
1999+ "retry": "^0.12.0"
2000+ }
2001+ },
676 "proxy-from-env": {
2002 "proxy-from-env": {
677 "version": "1.1.0",
2003 "version": "1.1.0",
678 "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
2004 "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
679 "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
2005 "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
680 "dev": true
2006 "dev": true
681 },
2007 },
682− "psl": {
683− "version": "1.8.0",
684− "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
685− "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
686− "dev": true
687− },
688 "pump": {
2008 "pump": {
689 "version": "3.0.0",
2009 "version": "3.0.0",
690 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2010 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -698,8 +2018,7 @@
698 "punycode": {
2018 "punycode": {
699 "version": "2.1.1",
2019 "version": "2.1.1",
700 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2020 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
701− "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2021+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
702− "dev": true
703 },
2022 },
704 "puppeteer": {
2023 "puppeteer": {
705 "version": "8.0.0",
2024 "version": "8.0.0",
@@ -721,55 +2040,28 @@
721 "ws": "^7.2.3"
2040 "ws": "^7.2.3"
722 },
2041 },
723 "dependencies": {
2042 "dependencies": {
724− "rimraf": {
725− "version": "3.0.2",
726− "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
727− "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
728− "dev": true,
729− "requires": {
730− "glob": "^7.1.3"
731− }
732− },
733 "ws": {
2043 "ws": {
734 "version": "7.4.4",
2044 "version": "7.4.4",
735 "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
2045 "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
736 "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
2046 "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
737− "dev": true
2047+ "dev": true,
2048+ "requires": {}
738 }
2049 }
739 }
2050 }
740 },
2051 },
741− "qs": {
2052+ "retry": {
742− "version": "6.5.2",
2053+ "version": "0.12.0",
743− "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
2054+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
744− "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
2055+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
745− "dev": true
2056+ "dev": true
746− },
2057+ },
747− "request": {
2058+ "rimraf": {
748− "version": "2.88.2",
2059+ "version": "3.0.2",
749− "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
2060+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
750− "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
2061+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
751− "dev": true,
2062+ "dev": true,
752− "requires": {
2063+ "requires": {
753− "aws-sign2": "~0.7.0",
2064+ "glob": "^7.1.3"
754− "aws4": "^1.8.0",
755− "caseless": "~0.12.0",
756− "combined-stream": "~1.0.6",
757− "extend": "~3.0.2",
758− "forever-agent": "~0.6.1",
759− "form-data": "~2.3.2",
760− "har-validator": "~5.1.3",
761− "http-signature": "~1.2.0",
762− "is-typedarray": "~1.0.0",
763− "isstream": "~0.1.2",
764− "json-stringify-safe": "~5.0.1",
765− "mime-types": "~2.1.19",
766− "oauth-sign": "~0.9.0",
767− "performance-now": "^2.1.0",
768− "qs": "~6.5.2",
769− "safe-buffer": "^5.1.2",
770− "tough-cookie": "~2.5.0",
771− "tunnel-agent": "^0.6.0",
772− "uuid": "^3.3.2"
773 }
2065 }
774 },
2066 },
775 "safe-buffer": {
2067 "safe-buffer": {
@@ -782,33 +2074,62 @@
782 "version": "2.1.2",
2074 "version": "2.1.2",
783 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2075 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
784 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2076 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2077+ "dev": true,
2078+ "optional": true
2079+ },
2080+ "semver": {
2081+ "version": "7.3.7",
2082+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
2083+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
2084+ "dev": true,
2085+ "requires": {
2086+ "lru-cache": "^6.0.0"
2087+ }
2088+ },
2089+ "smart-buffer": {
2090+ "version": "4.2.0",
2091+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
2092+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
785 "dev": true
2093 "dev": true
786 },
2094 },
2095+ "socks": {
2096+ "version": "2.7.0",
2097+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz",
2098+ "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==",
2099+ "dev": true,
2100+ "requires": {
2101+ "ip": "^2.0.0",
2102+ "smart-buffer": "^4.2.0"
2103+ }
2104+ },
2105+ "socks-proxy-agent": {
2106+ "version": "6.2.1",
2107+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
2108+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
2109+ "dev": true,
2110+ "requires": {
2111+ "agent-base": "^6.0.2",
2112+ "debug": "^4.3.3",
2113+ "socks": "^2.6.2"
2114+ }
2115+ },
787 "spago": {
2116 "spago": {
788− "version": "0.20.0",
2117+ "version": "0.20.9",
789− "resolved": "https://registry.npmjs.org/spago/-/spago-0.20.0.tgz",
2118+ "resolved": "https://registry.npmjs.org/spago/-/spago-0.20.9.tgz",
790− "integrity": "sha512-B0cvb1g5rjV80ovMT5MuNvUhfcXz0caEa3OPdydvYlvh6/WQZYa0S74or4PUPbRsiwhm9C1FCtfzzEk+yTKaHA==",
2119+ "integrity": "sha512-r5TUxnYn9HawlQyMswlhIk24BGFSN2KGbqgZFZrn47GjTpMscU14xkt9CqTWgoSQYsoZieG+3dUtOxUQ7GYD7w==",
791 "dev": true,
2120 "dev": true,
792 "requires": {
2121 "requires": {
793− "request": "^2.88.0",
2122+ "make-fetch-happen": "^9.1.0",
794− "tar": "^4.4.8"
2123+ "tar": "^6.1.11"
795 }
2124 }
796 },
2125 },
797− "sshpk": {
2126+ "ssri": {
798− "version": "1.16.1",
2127+ "version": "8.0.1",
799− "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
2128+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
800− "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
2129+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
801 "dev": true,
2130 "dev": true,
802 "requires": {
2131 "requires": {
803− "asn1": "~0.2.3",
2132+ "minipass": "^3.1.1"
804− "assert-plus": "^1.0.0",
805− "bcrypt-pbkdf": "^1.0.0",
806− "dashdash": "^1.12.0",
807− "ecc-jsbn": "~0.1.1",
808− "getpass": "^0.1.1",
809− "jsbn": "~0.1.0",
810− "safer-buffer": "^2.0.2",
811− "tweetnacl": "~0.14.0"
812 }
2133 }
813 },
2134 },
814 "string_decoder": {
2135 "string_decoder": {
@@ -821,18 +2142,25 @@
821 }
2142 }
822 },
2143 },
823 "tar": {
2144 "tar": {
824− "version": "4.4.19",
2145+ "version": "6.1.11",
825− "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
2146+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
826− "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
2147+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
827 "dev": true,
2148 "dev": true,
828 "requires": {
2149 "requires": {
829− "chownr": "^1.1.4",
2150+ "chownr": "^2.0.0",
830− "fs-minipass": "^1.2.7",
2151+ "fs-minipass": "^2.0.0",
831− "minipass": "^2.9.0",
2152+ "minipass": "^3.0.0",
832− "minizlib": "^1.3.3",
2153+ "minizlib": "^2.1.1",
833− "mkdirp": "^0.5.5",
2154+ "mkdirp": "^1.0.3",
834− "safe-buffer": "^5.2.1",
835− "yallist": "^3.1.1"
2155+ "yallist": "^4.0.0"
2156+ },
2157+ "dependencies": {
2158+ "chownr": {
2159+ "version": "2.0.0",
2160+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
2161+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
2162+ "dev": true
2163+ }
836 }
2164 }
837 },
2165 },
838 "tar-fs": {
2166 "tar-fs": {
@@ -879,31 +2207,6 @@
879 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2207 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
880 "dev": true
2208 "dev": true
881 },
2209 },
882− "tough-cookie": {
883− "version": "2.5.0",
884− "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
885− "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
886− "dev": true,
887− "requires": {
888− "psl": "^1.1.28",
889− "punycode": "^2.1.1"
890− }
891− },
892− "tunnel-agent": {
893− "version": "0.6.0",
894− "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
895− "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
896− "dev": true,
897− "requires": {
898− "safe-buffer": "^5.0.1"
899− }
900− },
901− "tweetnacl": {
902− "version": "0.14.5",
903− "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
904− "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
905− "dev": true
906− },
907 "uc.micro": {
2210 "uc.micro": {
908 "version": "1.0.6",
2211 "version": "1.0.6",
909 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
2212 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
@@ -932,13 +2235,22 @@
932 }
2235 }
933 }
2236 }
934 },
2237 },
935− "uri-js": {
2238+ "unique-filename": {
936− "version": "4.4.1",
2239+ "version": "1.1.1",
937− "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2240+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
938− "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2241+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
2242+ "dev": true,
2243+ "requires": {
2244+ "unique-slug": "^2.0.0"
2245+ }
2246+ },
2247+ "unique-slug": {
2248+ "version": "2.0.2",
2249+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
2250+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
939 "dev": true,
2251 "dev": true,
940 "requires": {
2252 "requires": {
941− "punycode": "^2.1.0"
2253+ "imurmurhash": "^0.1.4"
942 }
2254 }
943 },
2255 },
944 "util-deprecate": {
2256 "util-deprecate": {
@@ -947,23 +2259,6 @@
947 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2259 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
948 "dev": true
2260 "dev": true
949 },
2261 },
950− "uuid": {
951− "version": "3.4.0",
952− "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
953− "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
954− "dev": true
955− },
956− "verror": {
957− "version": "1.10.0",
958− "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
959− "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
960− "dev": true,
961− "requires": {
962− "assert-plus": "^1.0.0",
963− "core-util-is": "1.0.2",
964− "extsprintf": "^1.2.0"
965− }
966− },
967 "wrappy": {
2262 "wrappy": {
968 "version": "1.0.2",
2263 "version": "1.0.2",
969 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2264 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -971,9 +2266,9 @@
971 "dev": true
2266 "dev": true
972 },
2267 },
973 "yallist": {
2268 "yallist": {
974− "version": "3.1.1",
2269+ "version": "4.0.0",
975− "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
2270+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
976− "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
2271+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
977 "dev": true
2272 "dev": true
978 },
2273 },
979 "yauzl": {
2274 "yauzl": {
package.json+13−11
@@ -7,31 +7,31 @@
7 "test": "test"
7 "test": "test"
8 },
8 },
9 "bin": {
9 "bin": {
10− "purescript-docs-search": "dist/purescript-docs-search"
10+ "purescript-docs-search": "dist/purescript-docs-search.cjs"
11 },
11 },
12 "files": [
12 "files": [
13− "dist/purescript-docs-search",
13+ "dist/purescript-docs-search.cjs",
14 "dist/docs-search-app.js",
14 "dist/docs-search-app.js",
15 "README.md",
15 "README.md",
16 "CHANGELOG.md"
16 "CHANGELOG.md"
17 ],
17 ],
18 "scripts": {
18 "scripts": {
19− "test": "spago docs --no-search && ./dist/purescript-docs-search build-index && spago test && npm run check-version",
19+ "test": "spago docs --no-search && ./dist/purescript-docs-search.cjs build-index && spago test && npm run check-version",
20 "bundle-app": "spago bundle-app --no-build --no-install -m Docs.Search.App --to dist/docs-search-app.js",
20 "bundle-app": "spago bundle-app --no-build --no-install -m Docs.Search.App --to dist/docs-search-app.js",
21 "esbuild-app": "esbuild dist/docs-search-app.js --target=es2016 --bundle --minify --outfile=dist/docs-search-app.min.js && mv dist/docs-search-app.min.js dist/docs-search-app.js",
21 "esbuild-app": "esbuild dist/docs-search-app.js --target=es2016 --bundle --minify --outfile=dist/docs-search-app.min.js && mv dist/docs-search-app.min.js dist/docs-search-app.js",
22 "build-app": "npm run bundle-app && npm run esbuild-app",
22 "build-app": "npm run bundle-app && npm run esbuild-app",
23 "bundle-main": "spago bundle-app --no-build --no-install --platform node -m Docs.Search.Main --to dist/main.js",
23 "bundle-main": "spago bundle-app --no-build --no-install --platform node -m Docs.Search.Main --to dist/main.js",
24 "esbuild-main": "esbuild dist/main.js --platform=node --bundle --minify --outfile=dist/main.min.js && mv dist/main.min.js dist/main.js",
24 "esbuild-main": "esbuild dist/main.js --platform=node --bundle --minify --outfile=dist/main.min.js && mv dist/main.min.js dist/main.js",
25− "add-shebang": "echo \"#!/usr/bin/env node\" > dist/purescript-docs-search && cat dist/main.js >> dist/purescript-docs-search",
25+ "add-shebang": "echo \"#!/usr/bin/env node\" > dist/purescript-docs-search.cjs && cat dist/main.js >> dist/purescript-docs-search.cjs",
26− "chmod-main": "chmod +x dist/purescript-docs-search",
26+ "chmod-main": "chmod +x dist/purescript-docs-search.cjs",
27 "build-main": "npm run bundle-main && npm run esbuild-main && npm run add-shebang && rm dist/main.js && npm run chmod-main",
27 "build-main": "npm run bundle-main && npm run esbuild-main && npm run add-shebang && rm dist/main.js && npm run chmod-main",
28 "build": "spago build && npm run build-app && npm run build-main",
28 "build": "spago build && npm run build-app && npm run build-main",
29 "clean": "rm -rf dist",
29 "clean": "rm -rf dist",
30− "check-version": "[ \"$(./dist/purescript-docs-search version)\" = \"$npm_package_version\" ]"
30+ "check-version": "[ \"$(./dist/purescript-docs-search.cjs version)\" = \"$npm_package_version\" ]"
31 },
31 },
32 "repository": {
32 "repository": {
33 "type": "git",
33 "type": "git",
34− "url": "git+https://github.com/spacchetti/purescript-docs-search.git"
34+ "url": "git+https://github.com/purescript/purescript-docs-search.git"
35 },
35 },
36 "keywords": [
36 "keywords": [
37 "purescript"
37 "purescript"
@@ -39,15 +39,17 @@
39 "author": "Kalnitsky Vladimir <klntsky@gmail.com>",
39 "author": "Kalnitsky Vladimir <klntsky@gmail.com>",
40 "license": "BSD-3-Clause",
40 "license": "BSD-3-Clause",
41 "bugs": {
41 "bugs": {
42− "url": "https://github.com/spacchetti/purescript-docs-search/issues"
42+ "url": "https://github.com/purescript/purescript-docs-search/issues"
43+ },
44+ "homepage": "https://github.com/purescript/purescript-docs-search#readme",
45+ "dependencies": {
46+ "punycode": "^2.1.1"
43 },
47 },
44− "homepage": "https://github.com/spacchetti/purescript-docs-search#readme",
45− "dependencies": {},
46 "devDependencies": {
48 "devDependencies": {
47 "esbuild": "^0.11.10",
49 "esbuild": "^0.11.10",
48 "glob": "^7.1.6",
50 "glob": "^7.1.6",
49 "markdown-it": "^12.0.4",
51 "markdown-it": "^12.0.4",
50 "puppeteer": "^8.0.0",
52 "puppeteer": "^8.0.0",
51− "spago": "^0.20.0"
53+ "spago": "^0.20.9"
52 }
54 }
53}
55}
spago.dhall+1
@@ -33,6 +33,7 @@
33 , "node-readline"
33 , "node-readline"
34 , "optparse"
34 , "optparse"
35 , "ordered-collections"
35 , "ordered-collections"
36+ , "parallel"
36 , "partial"
37 , "partial"
37 , "prelude"
38 , "prelude"
38 , "profunctor"
39 , "profunctor"
src/Docs/Search/IndexBuilder.purs+35−10
@@ -5,13 +5,14 @@ import Docs.Search.Config as Config
5import Docs.Search.Declarations (Declarations(..), mkDeclarations)
5import Docs.Search.Declarations (Declarations(..), mkDeclarations)
6import Docs.Search.DocsJson (DocsJson)
6import Docs.Search.DocsJson (DocsJson)
7import Docs.Search.Extra ((>#>))
7import Docs.Search.Extra ((>#>))
8+import Docs.Search.Meta (Meta)
8import Docs.Search.ModuleIndex (PackedModuleIndex, mkPackedModuleIndex)
9import Docs.Search.ModuleIndex (PackedModuleIndex, mkPackedModuleIndex)
10+import Docs.Search.ModuleParser (parseModuleName)
9import Docs.Search.PackageIndex (PackageInfo, mkPackageInfo)
11import Docs.Search.PackageIndex (PackageInfo, mkPackageInfo)
10import Docs.Search.Score (mkScores)
12import Docs.Search.Score (mkScores)
11import Docs.Search.SearchResult (SearchResult)
13import Docs.Search.SearchResult (SearchResult)
12import Docs.Search.TypeIndex (TypeIndex, mkTypeIndex)
14import Docs.Search.TypeIndex (TypeIndex, mkTypeIndex)
13−import Docs.Search.Types (PackageName, PartId)
15+import Docs.Search.Types (ModuleName, PackageName, PartId)
14−import Docs.Search.Meta (Meta)
15
16
16import Prelude
17import Prelude
17
18
@@ -20,6 +21,7 @@ import Data.Argonaut.Decode (decodeJson)
20import Data.Argonaut.Decode.Error (printJsonDecodeError)
21import Data.Argonaut.Decode.Error (printJsonDecodeError)
21import Data.Argonaut.Encode (encodeJson)
22import Data.Argonaut.Encode (encodeJson)
22import Data.Argonaut.Parser (jsonParser)
23import Data.Argonaut.Parser (jsonParser)
24+import Data.Array (concat)
23import Data.Array as Array
25import Data.Array as Array
24import Data.Either (Either(..), either)
26import Data.Either (Either(..), either)
25import Data.Foldable (sum)
27import Data.Foldable (sum)
@@ -38,14 +40,15 @@ import Data.String.Common (replace) as String
38import Data.String.Pattern (Pattern(..), Replacement(..))
40import Data.String.Pattern (Pattern(..), Replacement(..))
39import Data.Traversable (for, for_)
41import Data.Traversable (for, for_)
40import Data.Tuple (Tuple(..), fst)
42import Data.Tuple (Tuple(..), fst)
43+import Data.Tuple.Nested ((/\))
41import Effect (Effect)
44import Effect (Effect)
42import Effect.Aff (Aff, launchAff_, parallel, sequential)
45import Effect.Aff (Aff, launchAff_, parallel, sequential)
43import Effect.Class (liftEffect)
46import Effect.Class (liftEffect)
44import Effect.Console (log)
47import Effect.Console (log)
45import Node.Encoding (Encoding(UTF8))
48import Node.Encoding (Encoding(UTF8))
46import Node.FS.Aff (mkdir, readFile, readTextFile, readdir, stat, writeFile, writeTextFile)
49import Node.FS.Aff (mkdir, readFile, readTextFile, readdir, stat, writeFile, writeTextFile)
47−import Node.FS.Sync (exists)
48import Node.FS.Stats (isDirectory, isFile)
50import Node.FS.Stats (isDirectory, isFile)
51+import Node.FS.Sync (exists)
49import Node.Process as Process
52import Node.Process as Process
50import Web.Bower.PackageMeta (PackageMeta(..))
53import Web.Bower.PackageMeta (PackageMeta(..))
51
54
@@ -56,6 +59,7 @@ type Config =
56 , generatedDocs :: String
59 , generatedDocs :: String
57 , noPatch :: Boolean
60 , noPatch :: Boolean
58 , packageName :: PackageName
61 , packageName :: PackageName
62+ , sourceFiles :: Array String
59 }
63 }
60
64
61
65
@@ -71,8 +75,11 @@ run' cfg = do
71 liftEffect do
75 liftEffect do
72 log "Building the search index..."
76 log "Building the search index..."
73
77
78+ docsJsons /\ moduleNames /\ packageMetas <- sequential $
79+ (\d h m -> d /\ h /\ m)
74− docsJsons <- decodeDocsJsons cfg
80+ <$> parallel (decodeDocsJsons cfg)
81+ <*> parallel (parseModuleHeaders cfg.sourceFiles)
75− packageMetas <- decodeBowerJsons cfg
82+ <*> parallel (decodeBowerJsons cfg)
76
83
77 let countOfPackages = Array.length packageMetas
84 let countOfPackages = Array.length packageMetas
78 countOfModules = Array.length docsJsons
85 countOfModules = Array.length docsJsons
@@ -89,14 +96,14 @@ run' cfg = do
89 index = mkDeclarations scores docsJsons
96 index = mkDeclarations scores docsJsons
90 typeIndex = mkTypeIndex scores docsJsons
97 typeIndex = mkTypeIndex scores docsJsons
91 packageInfo = mkPackageInfo scores packageMetas
98 packageInfo = mkPackageInfo scores packageMetas
92− moduleIndex = mkPackedModuleIndex index
99+ moduleIndex = mkPackedModuleIndex index moduleNames
93 meta = { localPackageName: cfg.packageName }
100 meta = { localPackageName: cfg.packageName }
94
101
95 createDirectories cfg
102 createDirectories cfg
96
103
97 void $ sequential do
104 void $ sequential do
98 ignore <$> parallel (writeIndex cfg index)
105 ignore <$> parallel (writeIndex cfg index)
99− <*> parallel (writeTypeIndex cfg typeIndex)
106+ <*> parallel (writeTypeIndex typeIndex)
100 <*> parallel (writePackageInfo packageInfo)
107 <*> parallel (writePackageInfo packageInfo)
101 <*> parallel (writeModuleIndex moduleIndex)
108 <*> parallel (writeModuleIndex moduleIndex)
102 <*> parallel (writeMeta meta)
109 <*> parallel (writeMeta meta)
@@ -176,6 +183,24 @@ decodeDocsJsons cfg@{ docsFiles } = do
176
183
177 pure docsJsons
184 pure docsJsons
178
185
186+-- | This function accepts an array of globs pointing to project sources
187+-- | and returns a list of module names extracted from these files.
188+-- | Unfortunately, we can't get all module names from `docs.json`s, because
189+-- | reexport-only modules do not have a single declaration in them, so we can't
190+-- | count them normally in `mkPackedModuleIndex.extract`, where we only look at
191+-- | exported declarations.
192+parseModuleHeaders :: Array String -> Aff (Array ModuleName)
193+parseModuleHeaders globs = do
194+ files <- getPathsByGlobs globs
195+ concat <$> for files \filePath -> do
196+ fileContents <- readTextFile UTF8 filePath
197+ case parseModuleName fileContents of
198+ Nothing -> do
199+ liftEffect $ log $
200+ "Module header decoding failed for " <> filePath <>
201+ ", unable to extract module name"
202+ pure []
203+ Just res -> pure [res]
179
204
180decodeBowerJsons
205decodeBowerJsons
181 :: forall rest
206 :: forall rest
@@ -210,8 +235,8 @@ decodeBowerJsons { bowerFiles } = do
210
235
211
236
212-- | Write type index parts to files.
237-- | Write type index parts to files.
213−writeTypeIndex :: Config -> TypeIndex -> Aff Unit
238+writeTypeIndex :: TypeIndex -> Aff Unit
214−writeTypeIndex { generatedDocs } typeIndex =
239+writeTypeIndex typeIndex =
215 for_ entries \(Tuple typeShape results) -> do
240 for_ entries \(Tuple typeShape results) -> do
216 writeTextFile UTF8 (unwrap Config.typeIndexDirectory <> "/" <> typeShape <> ".js")
241 writeTextFile UTF8 (unwrap Config.typeIndexDirectory <> "/" <> typeShape <> ".js")
217 (mkHeader typeShape <> stringify (encodeJson results))
242 (mkHeader typeShape <> stringify (encodeJson results))
@@ -265,7 +290,7 @@ getIndex (Declarations trie) =
265 Trie.query prefix trie
290 Trie.query prefix trie
266 else
291 else
267 -- Entries with path lengths > 1 have been added already.
292 -- Entries with path lengths > 1 have been added already.
268− List.filter (\(Tuple path value) -> List.length path == 1) (
293+ List.filter (\(Tuple path _value) -> List.length path == 1) (
269 Trie.query prefix trie
294 Trie.query prefix trie
270 )
295 )
271 in
296 in
src/Docs/Search/Interactive.purs+12−4
@@ -6,6 +6,7 @@ import Docs.Search.DocsJson (DataDeclType(..))
6import Docs.Search.Engine (mkEngineState, packageInfoToString, Result(..))
6import Docs.Search.Engine (mkEngineState, packageInfoToString, Result(..))
7import Docs.Search.Engine as Engine
7import Docs.Search.Engine as Engine
8import Docs.Search.Extra (stringToList, (>#>))
8import Docs.Search.Extra (stringToList, (>#>))
9+import Docs.Search.IndexBuilder (parseModuleHeaders)
9import Docs.Search.IndexBuilder as IndexBuilder
10import Docs.Search.IndexBuilder as IndexBuilder
10import Docs.Search.ModuleIndex (ModuleResult, mkPackedModuleIndex, unpackModuleIndex)
11import Docs.Search.ModuleIndex (ModuleResult, mkPackedModuleIndex, unpackModuleIndex)
11import Docs.Search.NodeEngine (nodeEngine)
12import Docs.Search.NodeEngine (nodeEngine)
@@ -19,7 +20,8 @@ import Docs.Search.TypePrinter (keyword, showConstraint, showFunDeps, showType,
19import Docs.Search.Types (ModuleName, PackageName, PackageInfo, Identifier)
20import Docs.Search.Types (ModuleName, PackageName, PackageInfo, Identifier)
20
21
21import Prelude
22import Prelude
22−import Prim hiding (Type, Constraint)
23+
24+import Control.Parallel (parallel, sequential)
23import Data.Array as Array
25import Data.Array as Array
24import Data.Identity (Identity(..))
26import Data.Identity (Identity(..))
25import Data.List as List
27import Data.List as List
@@ -28,17 +30,20 @@ import Data.Newtype (un, unwrap, wrap)
28import Data.Search.Trie as Trie
30import Data.Search.Trie as Trie
29import Data.String (length) as String
31import Data.String (length) as String
30import Data.String.Common (split, toLower, trim) as String
32import Data.String.Common (split, toLower, trim) as String
33+import Data.Tuple.Nested ((/\))
31import Effect (Effect)
34import Effect (Effect)
32import Effect.Aff (launchAff_)
35import Effect.Aff (launchAff_)
33import Effect.Class (liftEffect)
36import Effect.Class (liftEffect)
34import Effect.Console (log, clear) as Console
37import Effect.Console (log, clear) as Console
35import Node.ReadLine (createConsoleInterface, question)
38import Node.ReadLine (createConsoleInterface, question)
39+import Prim hiding (Type, Constraint)
36
40
37
41
38type Config =
42type Config =
39 { docsFiles :: Array String
43 { docsFiles :: Array String
40 , bowerFiles :: Array String
44 , bowerFiles :: Array String
41 , packageName :: PackageName
45 , packageName :: PackageName
46+ , sourceFiles :: Array String
42 }
47 }
43
48
44
49
@@ -48,14 +53,17 @@ run cfg = launchAff_ $ do
48 liftEffect do
53 liftEffect do
49 Console.log "Loading search index..."
54 Console.log "Loading search index..."
50
55
56+ docsJsons /\ moduleNames /\ packageMetas <- sequential $
57+ (\d h m -> d /\ h /\ m)
51− docsJsons <- IndexBuilder.decodeDocsJsons cfg
58+ <$> parallel (IndexBuilder.decodeDocsJsons cfg)
59+ <*> parallel (parseModuleHeaders cfg.sourceFiles)
52− packageMetas <- IndexBuilder.decodeBowerJsons cfg
60+ <*> parallel (IndexBuilder.decodeBowerJsons cfg)
53
61
54 let scores = mkScores packageMetas
62 let scores = mkScores packageMetas
55 index = mkDeclarations scores docsJsons
63 index = mkDeclarations scores docsJsons
56 typeIndex = docsJsons >>= resultsWithTypes scores
64 typeIndex = docsJsons >>= resultsWithTypes scores
57 packageIndex = mkPackageIndex $ mkPackageInfo scores packageMetas
65 packageIndex = mkPackageIndex $ mkPackageInfo scores packageMetas
58− moduleIndex = unpackModuleIndex $ mkPackedModuleIndex index
66+ moduleIndex = unpackModuleIndex $ mkPackedModuleIndex index moduleNames
59 engineState = mkEngineState (unwrap index) typeIndex packageIndex moduleIndex scores
67 engineState = mkEngineState (unwrap index) typeIndex packageIndex moduleIndex scores
60
68
61 let countOfDefinitions = Trie.size $ unwrap index
69 let countOfDefinitions = Trie.size $ unwrap index
src/Docs/Search/Main.purs+17−22
@@ -28,6 +28,7 @@ main = do
28 let defaultCommands = Search { docsFiles: defaultDocsFiles
28 let defaultCommands = Search { docsFiles: defaultDocsFiles
29 , bowerFiles: defaultBowerFiles
29 , bowerFiles: defaultBowerFiles
30 , packageName: Config.defaultPackageName
30 , packageName: Config.defaultPackageName
31+ , sourceFiles: defaultSourceFiles
31 }
32 }
32
33
33 case fromMaybe defaultCommands args of
34 case fromMaybe defaultCommands args of
@@ -35,7 +36,6 @@ main = do
35 Search cfg -> Interactive.run cfg
36 Search cfg -> Interactive.run cfg
36 Version -> log Config.version
37 Version -> log Config.version
37
38
38−
39getArgs :: Effect (Maybe Commands)
39getArgs :: Effect (Maybe Commands)
40getArgs = execParser opts
40getArgs = execParser opts
41 where
41 where
@@ -45,19 +45,16 @@ getArgs = execParser opts
45 <> progDesc "Search frontend for the documentation generated by the PureScript compiler."
45 <> progDesc "Search frontend for the documentation generated by the PureScript compiler."
46 )
46 )
47
47
48−
49data Commands
48data Commands
50 = BuildIndex IndexBuilder.Config
49 = BuildIndex IndexBuilder.Config
51 | Search Interactive.Config
50 | Search Interactive.Config
52 | Version
51 | Version
53
52
54−
55derive instance genericCommands :: Generic Commands _
53derive instance genericCommands :: Generic Commands _
56
54
57instance showCommands :: Show Commands where
55instance showCommands :: Show Commands where
58 show = genericShow
56 show = genericShow
59
57
60−
61commands :: Parser (Maybe Commands)
58commands :: Parser (Maybe Commands)
62commands = optional $ subparser
59commands = optional $ subparser
63 ( command "build-index"
60 ( command "build-index"
@@ -80,39 +77,29 @@ commands = optional $ subparser
80
77
81buildIndex :: Parser Commands
78buildIndex :: Parser Commands
82buildIndex = ado
79buildIndex = ado
83−
84 docsFiles <- docsFilesOption
80 docsFiles <- docsFilesOption
85−
86 bowerFiles <- bowerFilesOption
81 bowerFiles <- bowerFilesOption
87−
88 packageName <- packageNameOption
82 packageName <- packageNameOption
89−
83+ sourceFiles <- sourceFilesOption
90 generatedDocs <- strOption
84 generatedDocs <- strOption
91 ( long "generated-docs"
85 ( long "generated-docs"
92 <> metavar "DIR"
86 <> metavar "DIR"
93 <> value "./generated-docs/"
87 <> value "./generated-docs/"
94 )
88 )
95−
96 noPatch <- flag false true
89 noPatch <- flag false true
97 ( long "no-patch"
90 ( long "no-patch"
98 <> help "Do not patch the HTML docs, only build indices"
91 <> help "Do not patch the HTML docs, only build indices"
99 )
92 )
100−
101−
102− in BuildIndex { docsFiles, bowerFiles, generatedDocs, noPatch, packageName }
93+ in BuildIndex { docsFiles, bowerFiles, generatedDocs, noPatch, packageName, sourceFiles }
103
94
104
95
105startInteractive :: Parser Commands
96startInteractive :: Parser Commands
106startInteractive = ado
97startInteractive = ado
107−
108 docsFiles <- docsFilesOption
98 docsFiles <- docsFilesOption
109−
110 bowerFiles <- bowerFilesOption
99 bowerFiles <- bowerFilesOption
111−
112 packageName <- packageNameOption
100 packageName <- packageNameOption
113−
101+ sourceFiles <- sourceFilesOption
114− in Search { docsFiles, bowerFiles, packageName }
102+ in Search { docsFiles, bowerFiles, packageName, sourceFiles }
115−
116
103
117docsFilesOption :: Parser (Array String)
104docsFilesOption :: Parser (Array String)
118docsFilesOption = fromMaybe defaultDocsFiles <$>
105docsFilesOption = fromMaybe defaultDocsFiles <$>
@@ -125,7 +112,6 @@ docsFilesOption = fromMaybe defaultDocsFiles <$>
125 )
112 )
126 )
113 )
127
114
128−
129bowerFilesOption :: Parser (Array String)
115bowerFilesOption :: Parser (Array String)
130bowerFilesOption = fromMaybe defaultBowerFiles <$>
116bowerFilesOption = fromMaybe defaultBowerFiles <$>
131 optional
117 optional
@@ -137,7 +123,6 @@ bowerFilesOption = fromMaybe defaultBowerFiles <$>
137 )
123 )
138 )
124 )
139
125
140−
141packageNameOption :: Parser PackageName
126packageNameOption :: Parser PackageName
142packageNameOption =
127packageNameOption =
143 PackageName <$> strOption
128 PackageName <$> strOption
@@ -146,18 +131,28 @@ packageNameOption =
146 <> value (unwrap Config.defaultPackageName)
131 <> value (unwrap Config.defaultPackageName)
147 )
132 )
148
133
134+sourceFilesOption :: Parser (Array String)
135+sourceFilesOption = fromMaybe defaultSourceFiles <$>
136+ optional
137+ ( some
138+ ( strOption
139+ ( long "source-files"
140+ <> metavar "GLOB"
141+ )
142+ )
143+ )
149
144
150defaultDocsFiles :: Array String
145defaultDocsFiles :: Array String
151defaultDocsFiles = [ "output/**/docs.json" ]
146defaultDocsFiles = [ "output/**/docs.json" ]
152
147
153−
154defaultBowerFiles :: Array String
148defaultBowerFiles :: Array String
155defaultBowerFiles = [ ".spago/*/*/bower.json", "bower_components/purescript-*/bower.json" ]
149defaultBowerFiles = [ ".spago/*/*/bower.json", "bower_components/purescript-*/bower.json" ]
156
150
151+defaultSourceFiles :: Array String
152+defaultSourceFiles = [ "src/**/*.purs" ]
157
153
158many :: forall a f. Unfoldable f => Parser a -> Parser (f a)
154many :: forall a f. Unfoldable f => Parser a -> Parser (f a)
159many x = CA.many x <#> List.toUnfoldable
155many x = CA.many x <#> List.toUnfoldable
160
156
161−
162some :: forall a f. Unfoldable f => Parser a -> Parser (f a)
157some :: forall a f. Unfoldable f => Parser a -> Parser (f a)
163some x = CA.some x <#> NonEmpty.toUnfoldable
158some x = CA.some x <#> NonEmpty.toUnfoldable
src/Docs/Search/ModuleIndex.purs+10−5
@@ -2,10 +2,10 @@ module Docs.Search.ModuleIndex where
2
2
3import Docs.Search.Config as Config
3import Docs.Search.Config as Config
4import Docs.Search.Declarations (Declarations(..))
4import Docs.Search.Declarations (Declarations(..))
5−import Docs.Search.SearchResult (SearchResult(..))
6−import Docs.Search.Types (ModuleName, PackageInfo, PackageScore)
7import Docs.Search.Extra (stringToList)
5import Docs.Search.Extra (stringToList)
8import Docs.Search.Score (Scores, getPackageScore)
6import Docs.Search.Score (Scores, getPackageScore)
7+import Docs.Search.SearchResult (SearchResult(..))
8+import Docs.Search.Types (ModuleName, PackageInfo(..), PackageScore)
9
9
10import Prelude
10import Prelude
11
11
@@ -21,7 +21,7 @@ import Data.Lens.Record (prop)
21import Data.List (List, (:))
21import Data.List (List, (:))
22import Data.Map (Map)
22import Data.Map (Map)
23import Data.Map as Map
23import Data.Map as Map
24−import Data.Maybe (fromMaybe)
24+import Data.Maybe (Maybe(..), fromMaybe)
25import Data.Newtype (unwrap)
25import Data.Newtype (unwrap)
26import Data.Search.Trie (Trie)
26import Data.Search.Trie (Trie)
27import Data.Search.Trie as Trie
27import Data.Search.Trie as Trie
@@ -91,10 +91,15 @@ queryModuleIndex scores { index, modulePackages } query =
91
91
92
92
93-- | Constructs a mapping from packages to modules
93-- | Constructs a mapping from packages to modules
94−mkPackedModuleIndex :: Declarations -> PackedModuleIndex
94+mkPackedModuleIndex :: Declarations -> Array ModuleName -> PackedModuleIndex
95−mkPackedModuleIndex (Declarations trie) =
95+mkPackedModuleIndex (Declarations trie) moduleNames =
96+ addLocalPackageModuleNames $
96 foldr (Map.unionWith Set.union) Map.empty $ extract <$> Trie.values trie
97 foldr (Map.unionWith Set.union) Map.empty $ extract <$> Trie.values trie
97 where
98 where
99+ -- Add modules from src/ that may not contain any definitions, only
100+ -- re-exports
101+ addLocalPackageModuleNames = flip Map.alter LocalPackage $
102+ Just <<< append (Set.fromFoldable moduleNames) <<< fromMaybe Set.empty
98 extract
103 extract
99 :: List SearchResult
104 :: List SearchResult
100 -> Map PackageInfo (Set ModuleName)
105 -> Map PackageInfo (Set ModuleName)
src/Docs/Search/ModuleParser.purs+2−2
@@ -8,6 +8,7 @@ import Data.Foldable (intercalate)
8import Data.Maybe (Maybe)
8import Data.Maybe (Maybe)
9import Data.Newtype (wrap)
9import Data.Newtype (wrap)
10import Docs.Search.Types (ModuleName)
10import Docs.Search.Types (ModuleName)
11+import Effect (Effect)
11import StringParser (Parser, char, choice, fix, many, manyTill, noneOf, regex, runParser, sepBy, sepBy1, string, try, whiteSpace)
12import StringParser (Parser, char, choice, fix, many, manyTill, noneOf, regex, runParser, sepBy, sepBy1, string, try, whiteSpace)
12
13
13parseModuleName :: String -> Maybe ModuleName
14parseModuleName :: String -> Maybe ModuleName
@@ -33,7 +34,6 @@ singleLineComment = do
33 void $ string "--"
34 void $ string "--"
34 void $ manyTill (void $ noneOf ['\n']) (char '\n')
35 void $ manyTill (void $ noneOf ['\n']) (char '\n')
35
36
36−
37moduleHeader :: Parser String
37moduleHeader :: Parser String
38moduleHeader = do
38moduleHeader = do
39 void $ string "module"
39 void $ string "module"
@@ -46,5 +46,5 @@ moduleName = sepBy1 moduleNameWord (string ".") <#> intercalate "."
46moduleNameWord :: Parser String
46moduleNameWord :: Parser String
47moduleNameWord = do
47moduleNameWord = do
48 first <- regex "[A-Z]"
48 first <- regex "[A-Z]"
49− rest <- regex "[a-z0-9]*"
49+ rest <- regex "[A-Za-z0-9]*"
50 pure $ first <> rest
50 pure $ first <> rest
src/Docs/Search/PackageIndex.purs+1−1
@@ -56,7 +56,7 @@ mkPackageInfo packageScores pms =
56 , score: getPackageScoreForPackageName packageScores packageName
56 , score: getPackageScoreForPackageName packageScores packageName
57 , dependencies:
57 , dependencies:
58 unwrap dependencies <#>
58 unwrap dependencies <#>
59− (_.packageName >>> RawPackageName >>> normalizePackageName)
59+ _.packageName >>> RawPackageName >>> normalizePackageName
60 , repository: repository <#> (_.url)
60 , repository: repository <#> (_.url)
61 }
61 }
62
62
test/Test/ModuleParser.purs+22−3
@@ -1,16 +1,24 @@
1module Test.ModuleParser where
1module Test.ModuleParser where
2
2
3+import Docs.Search.IndexBuilder (getPathsByGlobs)
4+import Docs.Search.ModuleParser (multiLineComment, parseModuleName, singleLineComment)
5+import Docs.Search.Types (ModuleName(..))
6+
3import Prelude
7import Prelude
4
8
9+import Data.Array as Array
5import Data.Either (Either(..))
10import Data.Either (Either(..))
11+import Data.Foldable (for_)
6import Data.Maybe (Maybe(..))
12import Data.Maybe (Maybe(..))
7−import Docs.Search.ModuleParser (multiLineComment, parseModuleName, singleLineComment)
13+import Effect.Class (liftEffect)
8−import Docs.Search.Types (ModuleName(..))
14+import Effect.Console as Console
15+import Effect.Exception (throw)
16+import Node.Encoding (Encoding(..))
17+import Node.FS.Aff (readTextFile)
9import StringParser (runParser)
18import StringParser (runParser)
10import Test.Spec (Spec, describe, it)
19import Test.Spec (Spec, describe, it)
11import Test.Spec.Assertions (shouldEqual)
20import Test.Spec.Assertions (shouldEqual)
12
21
13−
14tests :: Spec Unit
22tests :: Spec Unit
15tests = do
23tests = do
16 describe "ModuleParser" do
24 describe "ModuleParser" do
@@ -40,3 +48,14 @@ tests = do
40 runParser singleLineComment "-- asd\n" `shouldEqual` Right unit
48 runParser singleLineComment "-- asd\n" `shouldEqual` Right unit
41 it "single line comment #1" do
49 it "single line comment #1" do
42 runParser singleLineComment "--\n" `shouldEqual` Right unit
50 runParser singleLineComment "--\n" `shouldEqual` Right unit
51+ it "Parses every module in .spago/" do
52+ files <- getPathsByGlobs ["./.spago/**/*.purs"]
53+ liftEffect $ Console.log $ "Modules in .spago: " <> show (Array.length files)
54+ for_ files \filePath -> do
55+ fileContents <- readTextFile UTF8 filePath
56+ case parseModuleName fileContents of
57+ Nothing -> do
58+ liftEffect $ throw $
59+ "Module header decoding failed for " <> filePath <>
60+ ", unable to extract module name"
61+ Just _ -> pure unit