Move theme to workspace (#241)

* feat: move theme to workspace * chore: fix theme tests

Luke Karrys committed Oct 10, 2022 at 14:35 UTC e0aa4bfa8af407894299b1ffe87688285b460782
82 files changed +34256 -38638
.reuse/dep5
+1 -1
@@ -7,6 +7,6 @@ Files: content/* static/*
7 Copyright: 2020 GitHub
8 License: CC-BY-4.0
9
10 -Files: cli/* src/* .github/* *.md *.js *.json .gitignore .gitmodules
10 +Files: cli/* theme/* src/* .github/* *.md *.js *.json .gitignore
11 Copyright: 2020 GitHub
12 License: MIT
CONTRIBUTING.md
+3 -5
@@ -142,7 +142,7 @@ The content pages should include
142 ## Navigation
143
144 The site's navigation (on the left-hand sidebar of the site) is controlled
145 -by `src/gatsby-theme-doctornpm/nav.yml`. If you add or remove a page from the site, you'll
145 +by `src/theme/nav.yml`. If you add or remove a page from the site, you'll
146 also want to add or remove it from the navigation configuration.
147
148 ## CLI
@@ -222,9 +222,7 @@ On step three, your changes will be published live! 🎉
222
223 ## Theme
224
225 -Much of the documentation's theme is separate.
226 -
227 -The gatsby theme used here is "doctornpm" - a variation of
225 +The gatsby theme used here is located in the [`theme/`](./theme) directory. It is a variation of
226 [doctocat](https://github.com/primer/doctocat) with some theme changes
227 for npm's design language and additional components to support multiple
230 -versions of the CLI documentation.
228 +versions of the CLI documentation.
\ No newline at end of file
README.md
+1 -1
@@ -27,7 +27,7 @@ Do you want to know more? Check out our [contributing guide](CONTRIBUTING.md).
27
28 ## Theme
29
30 -The gatsby theme used here is "[doctornpm](https://github.com/npm/doctornpm)" - a variation of
30 +The gatsby theme used here is located in the [`theme/`](./theme) directory. It is a variation of
31 [doctocat](https://github.com/primer/doctocat) with some theme changes
32 for npm's design language and additional components to support multiple
33 versions of the CLI documentation.
cli/bin/build.js
+1 -1
@@ -12,7 +12,7 @@ build({
12 '..',
13 '..',
14 'src',
15 - 'gatsby-theme-doctornpm',
15 + 'theme',
16 'nav.yml'
17 ),
18 })
cli/test/index.js
+1 -1
@@ -9,7 +9,7 @@ const navPath = resolve(
9 '..',
10 '..',
11 'src',
12 - 'gatsby-theme-doctornpm',
12 + 'theme',
13 'nav.yml'
14 )
15
content/index.mdx
+1 -1
@@ -3,7 +3,7 @@ title: npm Documentation
3 github_path: src/nav-base.yml
4 ---
5
6 -import {HeroLayout, Index} from 'gatsby-theme-doctornpm'
6 +import {HeroLayout, Index} from 'theme'
7 export default HeroLayout
8
9 <!-- edit the output of Index in `src/nav-base.yml` -->
gatsby-config.js
+3 -3
@@ -1,4 +1,5 @@
1 module.exports = {
2 + trailingSlash: "never",
3 siteMetadata: {
4 title: 'npm Docs',
5 shortName: 'npm',
@@ -8,7 +9,7 @@ module.exports = {
9 },
10 plugins: [
11 {
11 - resolve: 'gatsby-theme-doctornpm',
12 + resolve: './theme',
13 options: {
14 icon: './src/images/npm-favicon.png',
15 editOnGitHub: true,
@@ -17,10 +18,9 @@ module.exports = {
18 repo: {
19 url: 'https://github.com/npm/documentation',
20 defaultBranch: 'main',
20 - }
21 + },
22 },
23 },
24 'gatsby-plugin-meta-redirect'
25 ],
25 - pathPrefix: process.env.PATH_PREFIX || '',
26 }
package-lock.json
+31077 -38620
@@ -8,14 +8,15 @@
8 "name": "npm-documentation",
9 "version": "0.1.0",
10 "workspaces": [
11 - "cli/"
11 + "cli/",
12 + "theme/"
13 ],
14 "dependencies": {
14 - "gatsby": "^2.32.7",
15 + "gatsby": "^4.24.4",
16 "gatsby-plugin-meta-redirect": "^1.1.1",
16 - "gatsby-theme-doctornpm": "^1.9.0",
17 "react": "^16.14.0",
18 - "react-dom": "^16.14.0"
18 + "react-dom": "^16.14.0",
19 + "theme": "*"
20 }
21 },
22 "cli": {
@@ -61,49 +62,15 @@
62 "eslint-plugin-promise": "^6.0.0"
63 }
64 },
64 - "cli/node_modules/acorn": {
65 - "version": "8.8.0",
66 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
67 - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
68 - "dev": true,
69 - "peer": true,
70 - "bin": {
71 - "acorn": "bin/acorn"
72 - },
73 - "engines": {
74 - "node": ">=0.4.0"
75 - }
76 - },
77 - "cli/node_modules/ansi-regex": {
78 - "version": "5.0.1",
79 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
80 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
81 - "dev": true,
82 - "peer": true,
83 - "engines": {
84 - "node": ">=8"
85 - }
86 - },
87 - "cli/node_modules/argparse": {
88 - "version": "2.0.1",
89 - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
90 - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
91 - "dev": true,
92 - "peer": true
93 - },
94 - "cli/node_modules/cross-spawn": {
95 - "version": "7.0.3",
96 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
97 - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
65 + "cli/node_modules/brace-expansion": {
66 + "version": "1.1.11",
67 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
68 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
69 "dev": true,
70 "peer": true,
71 "dependencies": {
101 - "path-key": "^3.1.0",
102 - "shebang-command": "^2.0.0",
103 - "which": "^2.0.1"
104 - },
105 - "engines": {
106 - "node": ">= 8"
72 + "balanced-match": "^1.0.0",
73 + "concat-map": "0.0.1"
74 }
75 },
76 "cli/node_modules/debug": {
@@ -125,15 +92,14 @@
92 }
93 },
94 "cli/node_modules/eslint": {
128 - "version": "8.24.0",
129 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz",
130 - "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==",
95 + "version": "8.25.0",
96 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
97 + "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
98 "dev": true,
99 "peer": true,
100 "dependencies": {
134 - "@eslint/eslintrc": "^1.3.2",
101 + "@eslint/eslintrc": "^1.3.3",
102 "@humanwhocodes/config-array": "^0.10.5",
136 - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
103 "@humanwhocodes/module-importer": "^1.0.1",
104 "ajv": "^6.10.0",
105 "chalk": "^4.0.0",
@@ -181,19 +147,6 @@
147 "url": "https://opencollective.com/eslint"
148 }
149 },
184 - "cli/node_modules/eslint-plugin-promise": {
185 - "version": "6.0.1",
186 - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz",
187 - "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==",
188 - "dev": true,
189 - "peer": true,
190 - "engines": {
191 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
192 - },
193 - "peerDependencies": {
194 - "eslint": "^7.0.0 || ^8.0.0"
195 - }
196 - },
150 "cli/node_modules/eslint-scope": {
151 "version": "7.1.1",
152 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
@@ -208,35 +161,6 @@
161 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
162 }
163 },
211 - "cli/node_modules/eslint-utils": {
212 - "version": "3.0.0",
213 - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
214 - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
215 - "dev": true,
216 - "peer": true,
217 - "dependencies": {
218 - "eslint-visitor-keys": "^2.0.0"
219 - },
220 - "engines": {
221 - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
222 - },
223 - "funding": {
224 - "url": "https://github.com/sponsors/mysticatea"
225 - },
226 - "peerDependencies": {
227 - "eslint": ">=5"
228 - }
229 - },
230 - "cli/node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
231 - "version": "2.1.0",
232 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
233 - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
234 - "dev": true,
235 - "peer": true,
236 - "engines": {
237 - "node": ">=10"
238 - }
239 - },
164 "cli/node_modules/eslint-visitor-keys": {
165 "version": "3.3.0",
166 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
@@ -260,75 +184,6 @@
184 "node": "*"
185 }
186 },
263 - "cli/node_modules/espree": {
264 - "version": "9.4.0",
265 - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
266 - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
267 - "dev": true,
268 - "peer": true,
269 - "dependencies": {
270 - "acorn": "^8.8.0",
271 - "acorn-jsx": "^5.3.2",
272 - "eslint-visitor-keys": "^3.3.0"
273 - },
274 - "engines": {
275 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
276 - },
277 - "funding": {
278 - "url": "https://opencollective.com/eslint"
279 - }
280 - },
281 - "cli/node_modules/file-entry-cache": {
282 - "version": "6.0.1",
283 - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
284 - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
285 - "dev": true,
286 - "peer": true,
287 - "dependencies": {
288 - "flat-cache": "^3.0.4"
289 - },
290 - "engines": {
291 - "node": "^10.12.0 || >=12.0.0"
292 - }
293 - },
294 - "cli/node_modules/find-up": {
295 - "version": "5.0.0",
296 - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
297 - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
298 - "dev": true,
299 - "peer": true,
300 - "dependencies": {
301 - "locate-path": "^6.0.0",
302 - "path-exists": "^4.0.0"
303 - },
304 - "engines": {
305 - "node": ">=10"
306 - },
307 - "funding": {
308 - "url": "https://github.com/sponsors/sindresorhus"
309 - }
310 - },
311 - "cli/node_modules/flat-cache": {
312 - "version": "3.0.4",
313 - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
314 - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
315 - "dev": true,
316 - "peer": true,
317 - "dependencies": {
318 - "flatted": "^3.1.0",
319 - "rimraf": "^3.0.2"
320 - },
321 - "engines": {
322 - "node": "^10.12.0 || >=12.0.0"
323 - }
324 - },
325 - "cli/node_modules/flatted": {
326 - "version": "3.2.7",
327 - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
328 - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
329 - "dev": true,
330 - "peer": true
331 - },
187 "cli/node_modules/glob-parent": {
188 "version": "6.0.2",
189 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -358,267 +213,6 @@
213 "url": "https://github.com/sponsors/sindresorhus"
214 }
215 },
361 - "cli/node_modules/globby": {
362 - "version": "11.1.0",
363 - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
364 - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
365 - "dev": true,
366 - "peer": true,
367 - "dependencies": {
368 - "array-union": "^2.1.0",
369 - "dir-glob": "^3.0.1",
370 - "fast-glob": "^3.2.9",
371 - "ignore": "^5.2.0",
372 - "merge2": "^1.4.1",
373 - "slash": "^3.0.0"
374 - },
375 - "engines": {
376 - "node": ">=10"
377 - },
378 - "funding": {
379 - "url": "https://github.com/sponsors/sindresorhus"
380 - }
381 - },
382 - "cli/node_modules/ignore": {
383 - "version": "5.2.0",
384 - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
385 - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
386 - "dev": true,
387 - "peer": true,
388 - "engines": {
389 - "node": ">= 4"
390 - }
391 - },
392 - "cli/node_modules/js-yaml": {
393 - "version": "4.1.0",
394 - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
395 - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
396 - "dev": true,
397 - "peer": true,
398 - "dependencies": {
399 - "argparse": "^2.0.1"
400 - },
401 - "bin": {
402 - "js-yaml": "bin/js-yaml.js"
403 - }
404 - },
405 - "cli/node_modules/levn": {
406 - "version": "0.4.1",
407 - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
408 - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
409 - "dev": true,
410 - "peer": true,
411 - "dependencies": {
412 - "prelude-ls": "^1.2.1",
413 - "type-check": "~0.4.0"
414 - },
415 - "engines": {
416 - "node": ">= 0.8.0"
417 - }
418 - },
419 - "cli/node_modules/locate-path": {
420 - "version": "6.0.0",
421 - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
422 - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
423 - "dev": true,
424 - "peer": true,
425 - "dependencies": {
426 - "p-locate": "^5.0.0"
427 - },
428 - "engines": {
429 - "node": ">=10"
430 - },
431 - "funding": {
432 - "url": "https://github.com/sponsors/sindresorhus"
433 - }
434 - },
435 - "cli/node_modules/lru-cache": {
436 - "version": "6.0.0",
437 - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
438 - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
439 - "dependencies": {
440 - "yallist": "^4.0.0"
441 - },
442 - "engines": {
443 - "node": ">=10"
444 - }
445 - },
446 - "cli/node_modules/minimatch": {
447 - "version": "5.1.0",
448 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
449 - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
450 - "dependencies": {
451 - "brace-expansion": "^2.0.1"
452 - },
453 - "engines": {
454 - "node": ">=10"
455 - }
456 - },
457 - "cli/node_modules/minimatch/node_modules/brace-expansion": {
458 - "version": "2.0.1",
459 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
460 - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
461 - "dependencies": {
462 - "balanced-match": "^1.0.0"
463 - }
464 - },
465 - "cli/node_modules/ms": {
466 - "version": "2.1.2",
467 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
468 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
469 - "dev": true,
470 - "peer": true
471 - },
472 - "cli/node_modules/optionator": {
473 - "version": "0.9.1",
474 - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
475 - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
476 - "dev": true,
477 - "peer": true,
478 - "dependencies": {
479 - "deep-is": "^0.1.3",
480 - "fast-levenshtein": "^2.0.6",
481 - "levn": "^0.4.1",
482 - "prelude-ls": "^1.2.1",
483 - "type-check": "^0.4.0",
484 - "word-wrap": "^1.2.3"
485 - },
486 - "engines": {
487 - "node": ">= 0.8.0"
488 - }
489 - },
490 - "cli/node_modules/p-locate": {
491 - "version": "5.0.0",
492 - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
493 - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
494 - "dev": true,
495 - "peer": true,
496 - "dependencies": {
497 - "p-limit": "^3.0.2"
498 - },
499 - "engines": {
500 - "node": ">=10"
501 - },
502 - "funding": {
503 - "url": "https://github.com/sponsors/sindresorhus"
504 - }
505 - },
506 - "cli/node_modules/path-key": {
507 - "version": "3.1.1",
508 - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
509 - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
510 - "dev": true,
511 - "peer": true,
512 - "engines": {
513 - "node": ">=8"
514 - }
515 - },
516 - "cli/node_modules/prelude-ls": {
517 - "version": "1.2.1",
518 - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
519 - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
520 - "dev": true,
521 - "peer": true,
522 - "engines": {
523 - "node": ">= 0.8.0"
524 - }
525 - },
526 - "cli/node_modules/semver": {
527 - "version": "7.3.8",
528 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
529 - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
530 - "dependencies": {
531 - "lru-cache": "^6.0.0"
532 - },
533 - "bin": {
534 - "semver": "bin/semver.js"
535 - },
536 - "engines": {
537 - "node": ">=10"
538 - }
539 - },
540 - "cli/node_modules/shebang-command": {
541 - "version": "2.0.0",
542 - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
543 - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
544 - "dev": true,
545 - "peer": true,
546 - "dependencies": {
547 - "shebang-regex": "^3.0.0"
548 - },
549 - "engines": {
550 - "node": ">=8"
551 - }
552 - },
553 - "cli/node_modules/shebang-regex": {
554 - "version": "3.0.0",
555 - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
556 - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
557 - "dev": true,
558 - "peer": true,
559 - "engines": {
560 - "node": ">=8"
561 - }
562 - },
563 - "cli/node_modules/strip-ansi": {
564 - "version": "6.0.1",
565 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
566 - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
567 - "dev": true,
568 - "peer": true,
569 - "dependencies": {
570 - "ansi-regex": "^5.0.1"
571 - },
572 - "engines": {
573 - "node": ">=8"
574 - }
575 - },
576 - "cli/node_modules/type-check": {
577 - "version": "0.4.0",
578 - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
579 - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
580 - "dev": true,
581 - "peer": true,
582 - "dependencies": {
583 - "prelude-ls": "^1.2.1"
584 - },
585 - "engines": {
586 - "node": ">= 0.8.0"
587 - }
588 - },
589 - "cli/node_modules/type-fest": {
590 - "version": "0.20.2",
591 - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
592 - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
593 - "dev": true,
594 - "peer": true,
595 - "engines": {
596 - "node": ">=10"
597 - },
598 - "funding": {
599 - "url": "https://github.com/sponsors/sindresorhus"
600 - }
601 - },
602 - "cli/node_modules/which": {
603 - "version": "2.0.2",
604 - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
605 - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
606 - "dev": true,
607 - "dependencies": {
608 - "isexe": "^2.0.0"
609 - },
610 - "bin": {
611 - "node-which": "bin/node-which"
612 - },
613 - "engines": {
614 - "node": ">= 8"
615 - }
616 - },
617 - "cli/node_modules/yallist": {
618 - "version": "4.0.0",
619 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
620 - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
621 - },
216 "cli/node_modules/yaml": {
217 "version": "2.1.3",
218 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz",
@@ -637,15 +231,6 @@
231 "uuid": "^8.3.2"
232 }
233 },
640 - "node_modules/@actions/core/node_modules/uuid": {
641 - "version": "8.3.2",
642 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
643 - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
644 - "dev": true,
645 - "bin": {
646 - "uuid": "dist/bin/uuid"
647 - }
648 - },
234 "node_modules/@actions/http-client": {
235 "version": "2.0.1",
236 "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
@@ -655,9 +240,16 @@
240 "tunnel": "^0.0.6"
241 }
242 },
243 + "node_modules/@adobe/css-tools": {
244 + "version": "4.0.1",
245 + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz",
246 + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==",
247 + "dev": true
248 + },
249 "node_modules/@ampproject/remapping": {
250 "version": "2.2.0",
660 - "license": "Apache-2.0",
251 + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
252 + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
253 "dependencies": {
254 "@jridgewell/gen-mapping": "^0.1.0",
255 "@jridgewell/trace-mapping": "^0.3.9"
@@ -666,23 +258,40 @@
258 "node": ">=6.0.0"
259 }
260 },
669 - "node_modules/@ardatan/aggregate-error": {
670 - "version": "0.0.6",
671 - "license": "MIT",
261 + "node_modules/@ardatan/relay-compiler": {
262 + "version": "12.0.0",
263 + "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz",
264 + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==",
265 "dependencies": {
673 - "tslib": "~2.0.1"
266 + "@babel/core": "^7.14.0",
267 + "@babel/generator": "^7.14.0",
268 + "@babel/parser": "^7.14.0",
269 + "@babel/runtime": "^7.0.0",
270 + "@babel/traverse": "^7.14.0",
271 + "@babel/types": "^7.0.0",
272 + "babel-preset-fbjs": "^3.4.0",
273 + "chalk": "^4.0.0",
274 + "fb-watchman": "^2.0.0",
275 + "fbjs": "^3.0.0",
276 + "glob": "^7.1.1",
277 + "immutable": "~3.7.6",
278 + "invariant": "^2.2.4",
279 + "nullthrows": "^1.1.1",
280 + "relay-runtime": "12.0.0",
281 + "signedsource": "^1.0.0",
282 + "yargs": "^15.3.1"
283 },
675 - "engines": {
676 - "node": ">=8"
284 + "bin": {
285 + "relay-compiler": "bin/relay-compiler"
286 + },
287 + "peerDependencies": {
288 + "graphql": "*"
289 }
290 },
679 - "node_modules/@ardatan/aggregate-error/node_modules/tslib": {
680 - "version": "2.0.3",
681 - "license": "0BSD"
682 - },
291 "node_modules/@babel/code-frame": {
292 "version": "7.18.6",
685 - "license": "MIT",
293 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
294 + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
295 "dependencies": {
296 "@babel/highlight": "^7.18.6"
297 },
@@ -691,26 +300,28 @@
300 }
301 },
302 "node_modules/@babel/compat-data": {
694 - "version": "7.18.8",
695 - "license": "MIT",
303 + "version": "7.19.4",
304 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
305 + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
306 "engines": {
307 "node": ">=6.9.0"
308 }
309 },
310 "node_modules/@babel/core": {
701 - "version": "7.18.10",
702 - "license": "MIT",
311 + "version": "7.19.3",
312 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz",
313 + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==",
314 "dependencies": {
315 "@ampproject/remapping": "^2.1.0",
316 "@babel/code-frame": "^7.18.6",
706 - "@babel/generator": "^7.18.10",
707 - "@babel/helper-compilation-targets": "^7.18.9",
708 - "@babel/helper-module-transforms": "^7.18.9",
709 - "@babel/helpers": "^7.18.9",
710 - "@babel/parser": "^7.18.10",
317 + "@babel/generator": "^7.19.3",
318 + "@babel/helper-compilation-targets": "^7.19.3",
319 + "@babel/helper-module-transforms": "^7.19.0",
320 + "@babel/helpers": "^7.19.0",
321 + "@babel/parser": "^7.19.3",
322 "@babel/template": "^7.18.10",
712 - "@babel/traverse": "^7.18.10",
713 - "@babel/types": "^7.18.10",
323 + "@babel/traverse": "^7.19.3",
324 + "@babel/types": "^7.19.3",
325 "convert-source-map": "^1.7.0",
326 "debug": "^4.1.0",
327 "gensync": "^1.0.0-beta.2",
@@ -727,7 +338,8 @@
338 },
339 "node_modules/@babel/core/node_modules/debug": {
340 "version": "4.3.4",
730 - "license": "MIT",
341 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
342 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
343 "dependencies": {
344 "ms": "2.1.2"
345 },
@@ -740,22 +352,45 @@
352 }
353 }
354 },
743 - "node_modules/@babel/core/node_modules/ms": {
744 - "version": "2.1.2",
745 - "license": "MIT"
746 - },
355 "node_modules/@babel/core/node_modules/semver": {
356 "version": "6.3.0",
749 - "license": "ISC",
357 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
358 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
359 + "bin": {
360 + "semver": "bin/semver.js"
361 + }
362 + },
363 + "node_modules/@babel/eslint-parser": {
364 + "version": "7.19.1",
365 + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
366 + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
367 + "dependencies": {
368 + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
369 + "eslint-visitor-keys": "^2.1.0",
370 + "semver": "^6.3.0"
371 + },
372 + "engines": {
373 + "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
374 + },
375 + "peerDependencies": {
376 + "@babel/core": ">=7.11.0",
377 + "eslint": "^7.5.0 || ^8.0.0"
378 + }
379 + },
380 + "node_modules/@babel/eslint-parser/node_modules/semver": {
381 + "version": "6.3.0",
382 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
383 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
384 "bin": {
385 "semver": "bin/semver.js"
386 }
387 },
388 "node_modules/@babel/generator": {
755 - "version": "7.18.12",
756 - "license": "MIT",
389 + "version": "7.19.4",
390 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.4.tgz",
391 + "integrity": "sha512-5T2lY5vXqS+5UEit/5TwcIUeCnwgCljcF8IQRT6XRQPBrvLeq5V8W+URv+GvwoF3FP8tkhp++evVyDzkDGzNmA==",
392 "dependencies": {
758 - "@babel/types": "^7.18.10",
393 + "@babel/types": "^7.19.4",
394 "@jridgewell/gen-mapping": "^0.3.2",
395 "jsesc": "^2.5.1"
396 },
@@ -765,7 +400,8 @@
400 },
401 "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
402 "version": "0.3.2",
768 - "license": "MIT",
403 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
404 + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
405 "dependencies": {
406 "@jridgewell/set-array": "^1.0.1",
407 "@jridgewell/sourcemap-codec": "^1.4.10",
@@ -777,7 +413,8 @@
413 },
414 "node_modules/@babel/helper-annotate-as-pure": {
415 "version": "7.18.6",
780 - "license": "MIT",
416 + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
417 + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
418 "dependencies": {
419 "@babel/types": "^7.18.6"
420 },
@@ -787,7 +424,8 @@
424 },
425 "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
426 "version": "7.18.9",
790 - "license": "MIT",
427 + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
428 + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
429 "dependencies": {
430 "@babel/helper-explode-assignable-expression": "^7.18.6",
431 "@babel/types": "^7.18.9"
@@ -797,12 +435,13 @@
435 }
436 },
437 "node_modules/@babel/helper-compilation-targets": {
800 - "version": "7.18.9",
801 - "license": "MIT",
438 + "version": "7.19.3",
439 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
440 + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
441 "dependencies": {
803 - "@babel/compat-data": "^7.18.8",
442 + "@babel/compat-data": "^7.19.3",
443 "@babel/helper-validator-option": "^7.18.6",
805 - "browserslist": "^4.20.2",
444 + "browserslist": "^4.21.3",
445 "semver": "^6.3.0"
446 },
447 "engines": {
@@ -814,18 +453,20 @@
453 },
454 "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
455 "version": "6.3.0",
817 - "license": "ISC",
456 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
457 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
458 "bin": {
459 "semver": "bin/semver.js"
460 }
461 },
462 "node_modules/@babel/helper-create-class-features-plugin": {
823 - "version": "7.18.9",
824 - "license": "MIT",
463 + "version": "7.19.0",
464 + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
465 + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
466 "dependencies": {
467 "@babel/helper-annotate-as-pure": "^7.18.6",
468 "@babel/helper-environment-visitor": "^7.18.9",
828 - "@babel/helper-function-name": "^7.18.9",
469 + "@babel/helper-function-name": "^7.19.0",
470 "@babel/helper-member-expression-to-functions": "^7.18.9",
471 "@babel/helper-optimise-call-expression": "^7.18.6",
472 "@babel/helper-replace-supers": "^7.18.9",
@@ -839,8 +480,9 @@
480 }
481 },
482 "node_modules/@babel/helper-create-regexp-features-plugin": {
842 - "version": "7.18.6",
843 - "license": "MIT",
483 + "version": "7.19.0",
484 + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz",
485 + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==",
486 "dependencies": {
487 "@babel/helper-annotate-as-pure": "^7.18.6",
488 "regexpu-core": "^5.1.0"
@@ -853,8 +495,9 @@
495 }
496 },
497 "node_modules/@babel/helper-define-polyfill-provider": {
856 - "version": "0.3.2",
857 - "license": "MIT",
498 + "version": "0.3.3",
499 + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
500 + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
501 "dependencies": {
502 "@babel/helper-compilation-targets": "^7.17.7",
503 "@babel/helper-plugin-utils": "^7.16.7",
@@ -869,7 +512,8 @@
512 },
513 "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": {
514 "version": "4.3.4",
872 - "license": "MIT",
515 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
516 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
517 "dependencies": {
518 "ms": "2.1.2"
519 },
@@ -882,27 +526,26 @@
526 }
527 }
528 },
885 - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": {
886 - "version": "2.1.2",
887 - "license": "MIT"
888 - },
529 "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
530 "version": "6.3.0",
891 - "license": "ISC",
531 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
532 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
533 "bin": {
534 "semver": "bin/semver.js"
535 }
536 },
537 "node_modules/@babel/helper-environment-visitor": {
538 "version": "7.18.9",
898 - "license": "MIT",
539 + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
540 + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
541 "engines": {
542 "node": ">=6.9.0"
543 }
544 },
545 "node_modules/@babel/helper-explode-assignable-expression": {
546 "version": "7.18.6",
905 - "license": "MIT",
547 + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
548 + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
549 "dependencies": {
550 "@babel/types": "^7.18.6"
551 },
@@ -911,11 +554,12 @@
554 }
555 },
556 "node_modules/@babel/helper-function-name": {
914 - "version": "7.18.9",
915 - "license": "MIT",
557 + "version": "7.19.0",
558 + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
559 + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
560 "dependencies": {
917 - "@babel/template": "^7.18.6",
918 - "@babel/types": "^7.18.9"
561 + "@babel/template": "^7.18.10",
562 + "@babel/types": "^7.19.0"
563 },
564 "engines": {
565 "node": ">=6.9.0"
@@ -923,7 +567,8 @@
567 },
568 "node_modules/@babel/helper-hoist-variables": {
569 "version": "7.18.6",
926 - "license": "MIT",
570 + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
571 + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
572 "dependencies": {
573 "@babel/types": "^7.18.6"
574 },
@@ -933,7 +578,8 @@
578 },
579 "node_modules/@babel/helper-member-expression-to-functions": {
580 "version": "7.18.9",
936 - "license": "MIT",
581 + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
582 + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
583 "dependencies": {
584 "@babel/types": "^7.18.9"
585 },
@@ -943,7 +589,8 @@
589 },
590 "node_modules/@babel/helper-module-imports": {
591 "version": "7.18.6",
946 - "license": "MIT",
592 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
593 + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
594 "dependencies": {
595 "@babel/types": "^7.18.6"
596 },
@@ -952,17 +599,18 @@
599 }
600 },
601 "node_modules/@babel/helper-module-transforms": {
955 - "version": "7.18.9",
956 - "license": "MIT",
602 + "version": "7.19.0",
603 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
604 + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
605 "dependencies": {
606 "@babel/helper-environment-visitor": "^7.18.9",
607 "@babel/helper-module-imports": "^7.18.6",
608 "@babel/helper-simple-access": "^7.18.6",
609 "@babel/helper-split-export-declaration": "^7.18.6",
610 "@babel/helper-validator-identifier": "^7.18.6",
963 - "@babel/template": "^7.18.6",
964 - "@babel/traverse": "^7.18.9",
965 - "@babel/types": "^7.18.9"
611 + "@babel/template": "^7.18.10",
612 + "@babel/traverse": "^7.19.0",
613 + "@babel/types": "^7.19.0"
614 },
615 "engines": {
616 "node": ">=6.9.0"
@@ -970,7 +618,8 @@
618 },
619 "node_modules/@babel/helper-optimise-call-expression": {
620 "version": "7.18.6",
973 - "license": "MIT",
621 + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
622 + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
623 "dependencies": {
624 "@babel/types": "^7.18.6"
625 },
@@ -979,15 +628,17 @@
628 }
629 },
630 "node_modules/@babel/helper-plugin-utils": {
982 - "version": "7.18.9",
983 - "license": "MIT",
631 + "version": "7.19.0",
632 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
633 + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==",
634 "engines": {
635 "node": ">=6.9.0"
636 }
637 },
638 "node_modules/@babel/helper-remap-async-to-generator": {
639 "version": "7.18.9",
990 - "license": "MIT",
640 + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
641 + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
642 "dependencies": {
643 "@babel/helper-annotate-as-pure": "^7.18.6",
644 "@babel/helper-environment-visitor": "^7.18.9",
@@ -1002,24 +653,26 @@
653 }
654 },
655 "node_modules/@babel/helper-replace-supers": {
1005 - "version": "7.18.9",
1006 - "license": "MIT",
656 + "version": "7.19.1",
657 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
658 + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
659 "dependencies": {
660 "@babel/helper-environment-visitor": "^7.18.9",
661 "@babel/helper-member-expression-to-functions": "^7.18.9",
662 "@babel/helper-optimise-call-expression": "^7.18.6",
1011 - "@babel/traverse": "^7.18.9",
1012 - "@babel/types": "^7.18.9"
663 + "@babel/traverse": "^7.19.1",
664 + "@babel/types": "^7.19.0"
665 },
666 "engines": {
667 "node": ">=6.9.0"
668 }
669 },
670 "node_modules/@babel/helper-simple-access": {
1019 - "version": "7.18.6",
1020 - "license": "MIT",
671 + "version": "7.19.4",
672 + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
673 + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
674 "dependencies": {
1022 - "@babel/types": "^7.18.6"
675 + "@babel/types": "^7.19.4"
676 },
677 "engines": {
678 "node": ">=6.9.0"
@@ -1027,7 +680,8 @@
680 },
681 "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
682 "version": "7.18.9",
1030 - "license": "MIT",
683 + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
684 + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
685 "dependencies": {
686 "@babel/types": "^7.18.9"
687 },
@@ -1037,7 +691,8 @@
691 },
692 "node_modules/@babel/helper-split-export-declaration": {
693 "version": "7.18.6",
1040 - "license": "MIT",
694 + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
695 + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
696 "dependencies": {
697 "@babel/types": "^7.18.6"
698 },
@@ -1046,46 +701,51 @@
701 }
702 },
703 "node_modules/@babel/helper-string-parser": {
1049 - "version": "7.18.10",
1050 - "license": "MIT",
704 + "version": "7.19.4",
705 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
706 + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
707 "engines": {
708 "node": ">=6.9.0"
709 }
710 },
711 "node_modules/@babel/helper-validator-identifier": {
1056 - "version": "7.18.6",
1057 - "license": "MIT",
712 + "version": "7.19.1",
713 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
714 + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
715 "engines": {
716 "node": ">=6.9.0"
717 }
718 },
719 "node_modules/@babel/helper-validator-option": {
720 "version": "7.18.6",
1064 - "license": "MIT",
721 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
722 + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
723 "engines": {
724 "node": ">=6.9.0"
725 }
726 },
727 "node_modules/@babel/helper-wrap-function": {
1070 - "version": "7.18.11",
1071 - "license": "MIT",
728 + "version": "7.19.0",
729 + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz",
730 + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==",
731 "dependencies": {
1073 - "@babel/helper-function-name": "^7.18.9",
732 + "@babel/helper-function-name": "^7.19.0",
733 "@babel/template": "^7.18.10",
1075 - "@babel/traverse": "^7.18.11",
1076 - "@babel/types": "^7.18.10"
734 + "@babel/traverse": "^7.19.0",
735 + "@babel/types": "^7.19.0"
736 },
737 "engines": {
738 "node": ">=6.9.0"
739 }
740 },
741 "node_modules/@babel/helpers": {
1083 - "version": "7.18.9",
1084 - "license": "MIT",
742 + "version": "7.19.4",
743 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
744 + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
745 "dependencies": {
1086 - "@babel/template": "^7.18.6",
1087 - "@babel/traverse": "^7.18.9",
1088 - "@babel/types": "^7.18.9"
746 + "@babel/template": "^7.18.10",
747 + "@babel/traverse": "^7.19.4",
748 + "@babel/types": "^7.19.4"
749 },
750 "engines": {
751 "node": ">=6.9.0"
@@ -1093,7 +753,8 @@
753 },
754 "node_modules/@babel/highlight": {
755 "version": "7.18.6",
1096 - "license": "MIT",
756 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
757 + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
758 "dependencies": {
759 "@babel/helper-validator-identifier": "^7.18.6",
760 "chalk": "^2.0.0",
@@ -1105,7 +766,8 @@
766 },
767 "node_modules/@babel/highlight/node_modules/ansi-styles": {
768 "version": "3.2.1",
1108 - "license": "MIT",
769 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
770 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
771 "dependencies": {
772 "color-convert": "^1.9.0"
773 },
@@ -1115,7 +777,8 @@
777 },
778 "node_modules/@babel/highlight/node_modules/chalk": {
779 "version": "2.4.2",
1118 - "license": "MIT",
780 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
781 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
782 "dependencies": {
783 "ansi-styles": "^3.2.1",
784 "escape-string-regexp": "^1.0.5",
@@ -1127,32 +790,37 @@
790 },
791 "node_modules/@babel/highlight/node_modules/color-convert": {
792 "version": "1.9.3",
1130 - "license": "MIT",
793 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
794 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
795 "dependencies": {
796 "color-name": "1.1.3"
797 }
798 },
799 "node_modules/@babel/highlight/node_modules/color-name": {
800 "version": "1.1.3",
1137 - "license": "MIT"
801 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
802 + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
803 },
804 "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
805 "version": "1.0.5",
1141 - "license": "MIT",
806 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
807 + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
808 "engines": {
809 "node": ">=0.8.0"
810 }
811 },
812 "node_modules/@babel/highlight/node_modules/has-flag": {
813 "version": "3.0.0",
1148 - "license": "MIT",
814 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
815 + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
816 "engines": {
817 "node": ">=4"
818 }
819 },
820 "node_modules/@babel/highlight/node_modules/supports-color": {
821 "version": "5.5.0",
1155 - "license": "MIT",
822 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
823 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
824 "dependencies": {
825 "has-flag": "^3.0.0"
826 },
@@ -1161,8 +829,9 @@
829 }
830 },
831 "node_modules/@babel/parser": {
1164 - "version": "7.18.11",
1165 - "license": "MIT",
832 + "version": "7.19.4",
833 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz",
834 + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==",
835 "bin": {
836 "parser": "bin/babel-parser.js"
837 },
@@ -1172,7 +841,8 @@
841 },
842 "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
843 "version": "7.18.6",
1175 - "license": "MIT",
844 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
845 + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
846 "dependencies": {
847 "@babel/helper-plugin-utils": "^7.18.6"
848 },
@@ -1185,7 +855,8 @@
855 },
856 "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
857 "version": "7.18.9",
1188 - "license": "MIT",
858 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
859 + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
860 "dependencies": {
861 "@babel/helper-plugin-utils": "^7.18.9",
862 "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
@@ -1199,11 +870,12 @@
870 }
871 },
872 "node_modules/@babel/plugin-proposal-async-generator-functions": {
1202 - "version": "7.18.10",
1203 - "license": "MIT",
873 + "version": "7.19.1",
874 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz",
875 + "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==",
876 "dependencies": {
877 "@babel/helper-environment-visitor": "^7.18.9",
1206 - "@babel/helper-plugin-utils": "^7.18.9",
878 + "@babel/helper-plugin-utils": "^7.19.0",
879 "@babel/helper-remap-async-to-generator": "^7.18.9",
880 "@babel/plugin-syntax-async-generators": "^7.8.4"
881 },
@@ -1216,7 +888,8 @@
888 },
889 "node_modules/@babel/plugin-proposal-class-properties": {
890 "version": "7.18.6",
1219 - "license": "MIT",
891 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
892 + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
893 "dependencies": {
894 "@babel/helper-create-class-features-plugin": "^7.18.6",
895 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1230,7 +903,8 @@
903 },
904 "node_modules/@babel/plugin-proposal-class-static-block": {
905 "version": "7.18.6",
1233 - "license": "MIT",
906 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
907 + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
908 "dependencies": {
909 "@babel/helper-create-class-features-plugin": "^7.18.6",
910 "@babel/helper-plugin-utils": "^7.18.6",
@@ -1245,7 +919,8 @@
919 },
920 "node_modules/@babel/plugin-proposal-dynamic-import": {
921 "version": "7.18.6",
1248 - "license": "MIT",
922 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
923 + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
924 "dependencies": {
925 "@babel/helper-plugin-utils": "^7.18.6",
926 "@babel/plugin-syntax-dynamic-import": "^7.8.3"
@@ -1259,7 +934,8 @@
934 },
935 "node_modules/@babel/plugin-proposal-export-namespace-from": {
936 "version": "7.18.9",
1262 - "license": "MIT",
937 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
938 + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
939 "dependencies": {
940 "@babel/helper-plugin-utils": "^7.18.9",
941 "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
@@ -1273,7 +949,8 @@
949 },
950 "node_modules/@babel/plugin-proposal-json-strings": {
951 "version": "7.18.6",
1276 - "license": "MIT",
952 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
953 + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
954 "dependencies": {
955 "@babel/helper-plugin-utils": "^7.18.6",
956 "@babel/plugin-syntax-json-strings": "^7.8.3"
@@ -1287,7 +964,8 @@
964 },
965 "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
966 "version": "7.18.9",
1290 - "license": "MIT",
967 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
968 + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
969 "dependencies": {
970 "@babel/helper-plugin-utils": "^7.18.9",
971 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
@@ -1301,7 +979,8 @@
979 },
980 "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
981 "version": "7.18.6",
1304 - "license": "MIT",
982 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
983 + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
984 "dependencies": {
985 "@babel/helper-plugin-utils": "^7.18.6",
986 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
@@ -1315,7 +994,8 @@
994 },
995 "node_modules/@babel/plugin-proposal-numeric-separator": {
996 "version": "7.18.6",
1318 - "license": "MIT",
997 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
998 + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
999 "dependencies": {
1000 "@babel/helper-plugin-utils": "^7.18.6",
1001 "@babel/plugin-syntax-numeric-separator": "^7.10.4"
@@ -1328,12 +1008,13 @@
1008 }
1009 },
1010 "node_modules/@babel/plugin-proposal-object-rest-spread": {
1331 - "version": "7.18.9",
1332 - "license": "MIT",
1011 + "version": "7.19.4",
1012 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
1013 + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
1014 "dependencies": {
1334 - "@babel/compat-data": "^7.18.8",
1335 - "@babel/helper-compilation-targets": "^7.18.9",
1336 - "@babel/helper-plugin-utils": "^7.18.9",
1015 + "@babel/compat-data": "^7.19.4",
1016 + "@babel/helper-compilation-targets": "^7.19.3",
1017 + "@babel/helper-plugin-utils": "^7.19.0",
1018 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1019 "@babel/plugin-transform-parameters": "^7.18.8"
1020 },
@@ -1346,7 +1027,8 @@
1027 },
1028 "node_modules/@babel/plugin-proposal-optional-catch-binding": {
1029 "version": "7.18.6",
1349 - "license": "MIT",
1030 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
1031 + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
1032 "dependencies": {
1033 "@babel/helper-plugin-utils": "^7.18.6",
1034 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
@@ -1360,7 +1042,8 @@
1042 },
1043 "node_modules/@babel/plugin-proposal-optional-chaining": {
1044 "version": "7.18.9",
1363 - "license": "MIT",
1045 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
1046 + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
1047 "dependencies": {
1048 "@babel/helper-plugin-utils": "^7.18.9",
1049 "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
@@ -1375,7 +1058,8 @@
1058 },
1059 "node_modules/@babel/plugin-proposal-private-methods": {
1060 "version": "7.18.6",
1378 - "license": "MIT",
1061 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
1062 + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
1063 "dependencies": {
1064 "@babel/helper-create-class-features-plugin": "^7.18.6",
1065 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1389,7 +1073,8 @@
1073 },
1074 "node_modules/@babel/plugin-proposal-private-property-in-object": {
1075 "version": "7.18.6",
1392 - "license": "MIT",
1076 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
1077 + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
1078 "dependencies": {
1079 "@babel/helper-annotate-as-pure": "^7.18.6",
1080 "@babel/helper-create-class-features-plugin": "^7.18.6",
@@ -1405,7 +1090,8 @@
1090 },
1091 "node_modules/@babel/plugin-proposal-unicode-property-regex": {
1092 "version": "7.18.6",
1408 - "license": "MIT",
1093 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
1094 + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
1095 "dependencies": {
1096 "@babel/helper-create-regexp-features-plugin": "^7.18.6",
1097 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1419,7 +1105,20 @@
1105 },
1106 "node_modules/@babel/plugin-syntax-async-generators": {
1107 "version": "7.8.4",
1422 - "license": "MIT",
1108 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
1109 + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
1110 + "dependencies": {
1111 + "@babel/helper-plugin-utils": "^7.8.0"
1112 + },
1113 + "peerDependencies": {
1114 + "@babel/core": "^7.0.0-0"
1115 + }
1116 + },
1117 + "node_modules/@babel/plugin-syntax-bigint": {
1118 + "version": "7.8.3",
1119 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
1120 + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
1121 + "dev": true,
1122 "dependencies": {
1123 "@babel/helper-plugin-utils": "^7.8.0"
1124 },
@@ -1429,7 +1128,8 @@
1128 },
1129 "node_modules/@babel/plugin-syntax-class-properties": {
1130 "version": "7.12.13",
1432 - "license": "MIT",
1131 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
1132 + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
1133 "dependencies": {
1134 "@babel/helper-plugin-utils": "^7.12.13"
1135 },
@@ -1439,7 +1139,8 @@
1139 },
1140 "node_modules/@babel/plugin-syntax-class-static-block": {
1141 "version": "7.14.5",
1442 - "license": "MIT",
1142 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
1143 + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
1144 "dependencies": {
1145 "@babel/helper-plugin-utils": "^7.14.5"
1146 },
@@ -1452,7 +1153,8 @@
1153 },
1154 "node_modules/@babel/plugin-syntax-dynamic-import": {
1155 "version": "7.8.3",
1455 - "license": "MIT",
1156 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
1157 + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
1158 "dependencies": {
1159 "@babel/helper-plugin-utils": "^7.8.0"
1160 },
@@ -1462,7 +1164,8 @@
1164 },
1165 "node_modules/@babel/plugin-syntax-export-namespace-from": {
1166 "version": "7.8.3",
1465 - "license": "MIT",
1167 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
1168 + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
1169 "dependencies": {
1170 "@babel/helper-plugin-utils": "^7.8.3"
1171 },
@@ -1470,9 +1173,24 @@
1173 "@babel/core": "^7.0.0-0"
1174 }
1175 },
1176 + "node_modules/@babel/plugin-syntax-flow": {
1177 + "version": "7.18.6",
1178 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz",
1179 + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==",
1180 + "dependencies": {
1181 + "@babel/helper-plugin-utils": "^7.18.6"
1182 + },
1183 + "engines": {
1184 + "node": ">=6.9.0"
1185 + },
1186 + "peerDependencies": {
1187 + "@babel/core": "^7.0.0-0"
1188 + }
1189 + },
1190 "node_modules/@babel/plugin-syntax-import-assertions": {
1191 "version": "7.18.6",
1475 - "license": "MIT",
1192 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
1193 + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
1194 "dependencies": {
1195 "@babel/helper-plugin-utils": "^7.18.6"
1196 },
@@ -1483,9 +1201,22 @@
1201 "@babel/core": "^7.0.0-0"
1202 }
1203 },
1204 + "node_modules/@babel/plugin-syntax-import-meta": {
1205 + "version": "7.10.4",
1206 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
1207 + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
1208 + "dev": true,
1209 + "dependencies": {
1210 + "@babel/helper-plugin-utils": "^7.10.4"
1211 + },
1212 + "peerDependencies": {
1213 + "@babel/core": "^7.0.0-0"
1214 + }
1215 + },
1216 "node_modules/@babel/plugin-syntax-json-strings": {
1217 "version": "7.8.3",
1488 - "license": "MIT",
1218 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
1219 + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
1220 "dependencies": {
1221 "@babel/helper-plugin-utils": "^7.8.0"
1222 },
@@ -1495,7 +1226,8 @@
1226 },
1227 "node_modules/@babel/plugin-syntax-jsx": {
1228 "version": "7.18.6",
1498 - "license": "MIT",
1229 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
1230 + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
1231 "dependencies": {
1232 "@babel/helper-plugin-utils": "^7.18.6"
1233 },
@@ -1508,7 +1240,8 @@
1240 },
1241 "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
1242 "version": "7.10.4",
1511 - "license": "MIT",
1243 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
1244 + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
1245 "dependencies": {
1246 "@babel/helper-plugin-utils": "^7.10.4"
1247 },
@@ -1518,7 +1251,8 @@
1251 },
1252 "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
1253 "version": "7.8.3",
1521 - "license": "MIT",
1254 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
1255 + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
1256 "dependencies": {
1257 "@babel/helper-plugin-utils": "^7.8.0"
1258 },
@@ -1528,7 +1262,8 @@
1262 },
1263 "node_modules/@babel/plugin-syntax-numeric-separator": {
1264 "version": "7.10.4",
1531 - "license": "MIT",
1265 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
1266 + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
1267 "dependencies": {
1268 "@babel/helper-plugin-utils": "^7.10.4"
1269 },
@@ -1538,7 +1273,8 @@
1273 },
1274 "node_modules/@babel/plugin-syntax-object-rest-spread": {
1275 "version": "7.8.3",
1541 - "license": "MIT",
1276 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
1277 + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
1278 "dependencies": {
1279 "@babel/helper-plugin-utils": "^7.8.0"
1280 },
@@ -1548,7 +1284,8 @@
1284 },
1285 "node_modules/@babel/plugin-syntax-optional-catch-binding": {
1286 "version": "7.8.3",
1551 - "license": "MIT",
1287 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
1288 + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
1289 "dependencies": {
1290 "@babel/helper-plugin-utils": "^7.8.0"
1291 },
@@ -1558,7 +1295,8 @@
1295 },
1296 "node_modules/@babel/plugin-syntax-optional-chaining": {
1297 "version": "7.8.3",
1561 - "license": "MIT",
1298 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
1299 + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
1300 "dependencies": {
1301 "@babel/helper-plugin-utils": "^7.8.0"
1302 },
@@ -1568,7 +1306,8 @@
1306 },
1307 "node_modules/@babel/plugin-syntax-private-property-in-object": {
1308 "version": "7.14.5",
1571 - "license": "MIT",
1309 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
1310 + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
1311 "dependencies": {
1312 "@babel/helper-plugin-utils": "^7.14.5"
1313 },
@@ -1581,7 +1320,8 @@
1320 },
1321 "node_modules/@babel/plugin-syntax-top-level-await": {
1322 "version": "7.14.5",
1584 - "license": "MIT",
1323 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
1324 + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
1325 "dependencies": {
1326 "@babel/helper-plugin-utils": "^7.14.5"
1327 },
@@ -1594,7 +1334,8 @@
1334 },
1335 "node_modules/@babel/plugin-syntax-typescript": {
1336 "version": "7.18.6",
1597 - "license": "MIT",
1337 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
1338 + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
1339 "dependencies": {
1340 "@babel/helper-plugin-utils": "^7.18.6"
1341 },
@@ -1607,7 +1348,8 @@
1348 },
1349 "node_modules/@babel/plugin-transform-arrow-functions": {
1350 "version": "7.18.6",
1610 - "license": "MIT",
1351 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
1352 + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
1353 "dependencies": {
1354 "@babel/helper-plugin-utils": "^7.18.6"
1355 },
@@ -1620,7 +1362,8 @@
1362 },
1363 "node_modules/@babel/plugin-transform-async-to-generator": {
1364 "version": "7.18.6",
1623 - "license": "MIT",
1365 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
1366 + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
1367 "dependencies": {
1368 "@babel/helper-module-imports": "^7.18.6",
1369 "@babel/helper-plugin-utils": "^7.18.6",
@@ -1635,7 +1378,8 @@
1378 },
1379 "node_modules/@babel/plugin-transform-block-scoped-functions": {
1380 "version": "7.18.6",
1638 - "license": "MIT",
1381 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
1382 + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
1383 "dependencies": {
1384 "@babel/helper-plugin-utils": "^7.18.6"
1385 },
@@ -1647,10 +1391,11 @@
1391 }
1392 },
1393 "node_modules/@babel/plugin-transform-block-scoping": {
1650 - "version": "7.18.9",
1651 - "license": "MIT",
1394 + "version": "7.19.4",
1395 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
1396 + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
1397 "dependencies": {
1653 - "@babel/helper-plugin-utils": "^7.18.9"
1398 + "@babel/helper-plugin-utils": "^7.19.0"
1399 },
1400 "engines": {
1401 "node": ">=6.9.0"
@@ -1660,14 +1405,16 @@
1405 }
1406 },
1407 "node_modules/@babel/plugin-transform-classes": {
1663 - "version": "7.18.9",
1664 - "license": "MIT",
1408 + "version": "7.19.0",
1409 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz",
1410 + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==",
1411 "dependencies": {
1412 "@babel/helper-annotate-as-pure": "^7.18.6",
1413 + "@babel/helper-compilation-targets": "^7.19.0",
1414 "@babel/helper-environment-visitor": "^7.18.9",
1668 - "@babel/helper-function-name": "^7.18.9",
1415 + "@babel/helper-function-name": "^7.19.0",
1416 "@babel/helper-optimise-call-expression": "^7.18.6",
1670 - "@babel/helper-plugin-utils": "^7.18.9",
1417 + "@babel/helper-plugin-utils": "^7.19.0",
1418 "@babel/helper-replace-supers": "^7.18.9",
1419 "@babel/helper-split-export-declaration": "^7.18.6",
1420 "globals": "^11.1.0"
@@ -1681,7 +1428,8 @@
1428 },
1429 "node_modules/@babel/plugin-transform-computed-properties": {
1430 "version": "7.18.9",
1684 - "license": "MIT",
1431 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
1432 + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
1433 "dependencies": {
1434 "@babel/helper-plugin-utils": "^7.18.9"
1435 },
@@ -1693,10 +1441,11 @@
1441 }
1442 },
1443 "node_modules/@babel/plugin-transform-destructuring": {
1696 - "version": "7.18.9",
1697 - "license": "MIT",
1444 + "version": "7.19.4",
1445 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
1446 + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
1447 "dependencies": {
1699 - "@babel/helper-plugin-utils": "^7.18.9"
1448 + "@babel/helper-plugin-utils": "^7.19.0"
1449 },
1450 "engines": {
1451 "node": ">=6.9.0"
@@ -1707,7 +1456,8 @@
1456 },
1457 "node_modules/@babel/plugin-transform-dotall-regex": {
1458 "version": "7.18.6",
1710 - "license": "MIT",
1459 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
1460 + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
1461 "dependencies": {
1462 "@babel/helper-create-regexp-features-plugin": "^7.18.6",
1463 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1721,7 +1471,8 @@
1471 },
1472 "node_modules/@babel/plugin-transform-duplicate-keys": {
1473 "version": "7.18.9",
1724 - "license": "MIT",
1474 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
1475 + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
1476 "dependencies": {
1477 "@babel/helper-plugin-utils": "^7.18.9"
1478 },
@@ -1734,7 +1485,8 @@
1485 },
1486 "node_modules/@babel/plugin-transform-exponentiation-operator": {
1487 "version": "7.18.6",
1737 - "license": "MIT",
1488 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
1489 + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
1490 "dependencies": {
1491 "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
1492 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1746,9 +1498,25 @@
1498 "@babel/core": "^7.0.0-0"
1499 }
1500 },
1501 + "node_modules/@babel/plugin-transform-flow-strip-types": {
1502 + "version": "7.19.0",
1503 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz",
1504 + "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==",
1505 + "dependencies": {
1506 + "@babel/helper-plugin-utils": "^7.19.0",
1507 + "@babel/plugin-syntax-flow": "^7.18.6"
1508 + },
1509 + "engines": {
1510 + "node": ">=6.9.0"
1511 + },
1512 + "peerDependencies": {
1513 + "@babel/core": "^7.0.0-0"
1514 + }
1515 + },
1516 "node_modules/@babel/plugin-transform-for-of": {
1517 "version": "7.18.8",
1751 - "license": "MIT",
1518 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
1519 + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
1520 "dependencies": {
1521 "@babel/helper-plugin-utils": "^7.18.6"
1522 },
@@ -1761,7 +1529,8 @@
1529 },
1530 "node_modules/@babel/plugin-transform-function-name": {
1531 "version": "7.18.9",
1764 - "license": "MIT",
1532 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
1533 + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
1534 "dependencies": {
1535 "@babel/helper-compilation-targets": "^7.18.9",
1536 "@babel/helper-function-name": "^7.18.9",
@@ -1776,7 +1545,8 @@
1545 },
1546 "node_modules/@babel/plugin-transform-literals": {
1547 "version": "7.18.9",
1779 - "license": "MIT",
1548 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
1549 + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
1550 "dependencies": {
1551 "@babel/helper-plugin-utils": "^7.18.9"
1552 },
@@ -1789,7 +1559,8 @@
1559 },
1560 "node_modules/@babel/plugin-transform-member-expression-literals": {
1561 "version": "7.18.6",
1792 - "license": "MIT",
1562 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
1563 + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
1564 "dependencies": {
1565 "@babel/helper-plugin-utils": "^7.18.6"
1566 },
@@ -1802,7 +1573,8 @@
1573 },
1574 "node_modules/@babel/plugin-transform-modules-amd": {
1575 "version": "7.18.6",
1805 - "license": "MIT",
1576 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
1577 + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
1578 "dependencies": {
1579 "@babel/helper-module-transforms": "^7.18.6",
1580 "@babel/helper-plugin-utils": "^7.18.6",
@@ -1817,7 +1589,8 @@
1589 },
1590 "node_modules/@babel/plugin-transform-modules-commonjs": {
1591 "version": "7.18.6",
1820 - "license": "MIT",
1592 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
1593 + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
1594 "dependencies": {
1595 "@babel/helper-module-transforms": "^7.18.6",
1596 "@babel/helper-plugin-utils": "^7.18.6",
@@ -1832,12 +1605,13 @@
1605 }
1606 },
1607 "node_modules/@babel/plugin-transform-modules-systemjs": {
1835 - "version": "7.18.9",
1836 - "license": "MIT",
1608 + "version": "7.19.0",
1609 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz",
1610 + "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==",
1611 "dependencies": {
1612 "@babel/helper-hoist-variables": "^7.18.6",
1839 - "@babel/helper-module-transforms": "^7.18.9",
1840 - "@babel/helper-plugin-utils": "^7.18.9",
1613 + "@babel/helper-module-transforms": "^7.19.0",
1614 + "@babel/helper-plugin-utils": "^7.19.0",
1615 "@babel/helper-validator-identifier": "^7.18.6",
1616 "babel-plugin-dynamic-import-node": "^2.3.3"
1617 },
@@ -1850,7 +1624,8 @@
1624 },
1625 "node_modules/@babel/plugin-transform-modules-umd": {
1626 "version": "7.18.6",
1853 - "license": "MIT",
1627 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
1628 + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
1629 "dependencies": {
1630 "@babel/helper-module-transforms": "^7.18.6",
1631 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1863,11 +1638,12 @@
1638 }
1639 },
1640 "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
1866 - "version": "7.18.6",
1867 - "license": "MIT",
1641 + "version": "7.19.1",
1642 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz",
1643 + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==",
1644 "dependencies": {
1869 - "@babel/helper-create-regexp-features-plugin": "^7.18.6",
1870 - "@babel/helper-plugin-utils": "^7.18.6"
1645 + "@babel/helper-create-regexp-features-plugin": "^7.19.0",
1646 + "@babel/helper-plugin-utils": "^7.19.0"
1647 },
1648 "engines": {
1649 "node": ">=6.9.0"
@@ -1878,7 +1654,8 @@
1654 },
1655 "node_modules/@babel/plugin-transform-new-target": {
1656 "version": "7.18.6",
1881 - "license": "MIT",
1657 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
1658 + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
1659 "dependencies": {
1660 "@babel/helper-plugin-utils": "^7.18.6"
1661 },
@@ -1891,7 +1668,8 @@
1668 },
1669 "node_modules/@babel/plugin-transform-object-super": {
1670 "version": "7.18.6",
1894 - "license": "MIT",
1671 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
1672 + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
1673 "dependencies": {
1674 "@babel/helper-plugin-utils": "^7.18.6",
1675 "@babel/helper-replace-supers": "^7.18.6"
@@ -1905,7 +1683,8 @@
1683 },
1684 "node_modules/@babel/plugin-transform-parameters": {
1685 "version": "7.18.8",
1908 - "license": "MIT",
1686 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
1687 + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
1688 "dependencies": {
1689 "@babel/helper-plugin-utils": "^7.18.6"
1690 },
@@ -1918,7 +1697,8 @@
1697 },
1698 "node_modules/@babel/plugin-transform-property-literals": {
1699 "version": "7.18.6",
1921 - "license": "MIT",
1700 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
1701 + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
1702 "dependencies": {
1703 "@babel/helper-plugin-utils": "^7.18.6"
1704 },
@@ -1931,7 +1711,8 @@
1711 },
1712 "node_modules/@babel/plugin-transform-react-display-name": {
1713 "version": "7.18.6",
1934 - "license": "MIT",
1714 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz",
1715 + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==",
1716 "dependencies": {
1717 "@babel/helper-plugin-utils": "^7.18.6"
1718 },
@@ -1943,14 +1724,15 @@
1724 }
1725 },
1726 "node_modules/@babel/plugin-transform-react-jsx": {
1946 - "version": "7.18.10",
1947 - "license": "MIT",
1727 + "version": "7.19.0",
1728 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz",
1729 + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==",
1730 "dependencies": {
1731 "@babel/helper-annotate-as-pure": "^7.18.6",
1732 "@babel/helper-module-imports": "^7.18.6",
1951 - "@babel/helper-plugin-utils": "^7.18.9",
1733 + "@babel/helper-plugin-utils": "^7.19.0",
1734 "@babel/plugin-syntax-jsx": "^7.18.6",
1953 - "@babel/types": "^7.18.10"
1735 + "@babel/types": "^7.19.0"
1736 },
1737 "engines": {
1738 "node": ">=6.9.0"
@@ -1961,7 +1743,8 @@
1743 },
1744 "node_modules/@babel/plugin-transform-react-jsx-development": {
1745 "version": "7.18.6",
1964 - "license": "MIT",
1746 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
1747 + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
1748 "dependencies": {
1749 "@babel/plugin-transform-react-jsx": "^7.18.6"
1750 },
@@ -1974,7 +1757,8 @@
1757 },
1758 "node_modules/@babel/plugin-transform-react-pure-annotations": {
1759 "version": "7.18.6",
1977 - "license": "MIT",
1760 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz",
1761 + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==",
1762 "dependencies": {
1763 "@babel/helper-annotate-as-pure": "^7.18.6",
1764 "@babel/helper-plugin-utils": "^7.18.6"
@@ -1988,7 +1772,8 @@
1772 },
1773 "node_modules/@babel/plugin-transform-regenerator": {
1774 "version": "7.18.6",
1991 - "license": "MIT",
1775 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
1776 + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
1777 "dependencies": {
1778 "@babel/helper-plugin-utils": "^7.18.6",
1779 "regenerator-transform": "^0.15.0"
@@ -2002,7 +1787,8 @@
1787 },
1788 "node_modules/@babel/plugin-transform-reserved-words": {
1789 "version": "7.18.6",
2005 - "license": "MIT",
1790 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
1791 + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
1792 "dependencies": {
1793 "@babel/helper-plugin-utils": "^7.18.6"
1794 },
@@ -2014,14 +1800,15 @@
1800 }
1801 },
1802 "node_modules/@babel/plugin-transform-runtime": {
2017 - "version": "7.18.10",
2018 - "license": "MIT",
1803 + "version": "7.19.1",
1804 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz",
1805 + "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==",
1806 "dependencies": {
1807 "@babel/helper-module-imports": "^7.18.6",
2021 - "@babel/helper-plugin-utils": "^7.18.9",
2022 - "babel-plugin-polyfill-corejs2": "^0.3.2",
2023 - "babel-plugin-polyfill-corejs3": "^0.5.3",
2024 - "babel-plugin-polyfill-regenerator": "^0.4.0",
1808 + "@babel/helper-plugin-utils": "^7.19.0",
1809 + "babel-plugin-polyfill-corejs2": "^0.3.3",
1810 + "babel-plugin-polyfill-corejs3": "^0.6.0",
1811 + "babel-plugin-polyfill-regenerator": "^0.4.1",
1812 "semver": "^6.3.0"
1813 },
1814 "engines": {
@@ -2033,14 +1820,16 @@
1820 },
1821 "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
1822 "version": "6.3.0",
2036 - "license": "ISC",
1823 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1824 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1825 "bin": {
1826 "semver": "bin/semver.js"
1827 }
1828 },
1829 "node_modules/@babel/plugin-transform-shorthand-properties": {
1830 "version": "7.18.6",
2043 - "license": "MIT",
1831 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
1832 + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
1833 "dependencies": {
1834 "@babel/helper-plugin-utils": "^7.18.6"
1835 },
@@ -2052,10 +1841,11 @@
1841 }
1842 },
1843 "node_modules/@babel/plugin-transform-spread": {
2055 - "version": "7.18.9",
2056 - "license": "MIT",
1844 + "version": "7.19.0",
1845 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
1846 + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
1847 "dependencies": {
2058 - "@babel/helper-plugin-utils": "^7.18.9",
1848 + "@babel/helper-plugin-utils": "^7.19.0",
1849 "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
1850 },
1851 "engines": {
@@ -2067,7 +1857,8 @@
1857 },
1858 "node_modules/@babel/plugin-transform-sticky-regex": {
1859 "version": "7.18.6",
2070 - "license": "MIT",
1860 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
1861 + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
1862 "dependencies": {
1863 "@babel/helper-plugin-utils": "^7.18.6"
1864 },
@@ -2080,7 +1871,8 @@
1871 },
1872 "node_modules/@babel/plugin-transform-template-literals": {
1873 "version": "7.18.9",
2083 - "license": "MIT",
1874 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
1875 + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
1876 "dependencies": {
1877 "@babel/helper-plugin-utils": "^7.18.9"
1878 },
@@ -2093,7 +1885,8 @@
1885 },
1886 "node_modules/@babel/plugin-transform-typeof-symbol": {
1887 "version": "7.18.9",
2096 - "license": "MIT",
1888 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
1889 + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
1890 "dependencies": {
1891 "@babel/helper-plugin-utils": "^7.18.9"
1892 },
@@ -2105,11 +1898,12 @@
1898 }
1899 },
1900 "node_modules/@babel/plugin-transform-typescript": {
2108 - "version": "7.18.12",
2109 - "license": "MIT",
1901 + "version": "7.19.3",
1902 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz",
1903 + "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==",
1904 "dependencies": {
2111 - "@babel/helper-create-class-features-plugin": "^7.18.9",
2112 - "@babel/helper-plugin-utils": "^7.18.9",
1905 + "@babel/helper-create-class-features-plugin": "^7.19.0",
1906 + "@babel/helper-plugin-utils": "^7.19.0",
1907 "@babel/plugin-syntax-typescript": "^7.18.6"
1908 },
1909 "engines": {
@@ -2121,7 +1915,8 @@
1915 },
1916 "node_modules/@babel/plugin-transform-unicode-escapes": {
1917 "version": "7.18.10",
2124 - "license": "MIT",
1918 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
1919 + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
1920 "dependencies": {
1921 "@babel/helper-plugin-utils": "^7.18.9"
1922 },
@@ -2134,7 +1929,8 @@
1929 },
1930 "node_modules/@babel/plugin-transform-unicode-regex": {
1931 "version": "7.18.6",
2137 - "license": "MIT",
1932 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
1933 + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
1934 "dependencies": {
1935 "@babel/helper-create-regexp-features-plugin": "^7.18.6",
1936 "@babel/helper-plugin-utils": "^7.18.6"
@@ -2147,16 +1943,17 @@
1943 }
1944 },
1945 "node_modules/@babel/preset-env": {
2150 - "version": "7.18.10",
2151 - "license": "MIT",
1946 + "version": "7.19.4",
1947 + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz",
1948 + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==",
1949 "dependencies": {
2153 - "@babel/compat-data": "^7.18.8",
2154 - "@babel/helper-compilation-targets": "^7.18.9",
2155 - "@babel/helper-plugin-utils": "^7.18.9",
1950 + "@babel/compat-data": "^7.19.4",
1951 + "@babel/helper-compilation-targets": "^7.19.3",
1952 + "@babel/helper-plugin-utils": "^7.19.0",
1953 "@babel/helper-validator-option": "^7.18.6",
1954 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
1955 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
2159 - "@babel/plugin-proposal-async-generator-functions": "^7.18.10",
1956 + "@babel/plugin-proposal-async-generator-functions": "^7.19.1",
1957 "@babel/plugin-proposal-class-properties": "^7.18.6",
1958 "@babel/plugin-proposal-class-static-block": "^7.18.6",
1959 "@babel/plugin-proposal-dynamic-import": "^7.18.6",
@@ -2165,7 +1962,7 @@
1962 "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
1963 "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
1964 "@babel/plugin-proposal-numeric-separator": "^7.18.6",
2168 - "@babel/plugin-proposal-object-rest-spread": "^7.18.9",
1965 + "@babel/plugin-proposal-object-rest-spread": "^7.19.4",
1966 "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
1967 "@babel/plugin-proposal-optional-chaining": "^7.18.9",
1968 "@babel/plugin-proposal-private-methods": "^7.18.6",
@@ -2189,10 +1986,10 @@
1986 "@babel/plugin-transform-arrow-functions": "^7.18.6",
1987 "@babel/plugin-transform-async-to-generator": "^7.18.6",
1988 "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
2192 - "@babel/plugin-transform-block-scoping": "^7.18.9",
2193 - "@babel/plugin-transform-classes": "^7.18.9",
1989 + "@babel/plugin-transform-block-scoping": "^7.19.4",
1990 + "@babel/plugin-transform-classes": "^7.19.0",
1991 "@babel/plugin-transform-computed-properties": "^7.18.9",
2195 - "@babel/plugin-transform-destructuring": "^7.18.9",
1992 + "@babel/plugin-transform-destructuring": "^7.19.4",
1993 "@babel/plugin-transform-dotall-regex": "^7.18.6",
1994 "@babel/plugin-transform-duplicate-keys": "^7.18.9",
1995 "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
@@ -2202,9 +1999,9 @@
1999 "@babel/plugin-transform-member-expression-literals": "^7.18.6",
2000 "@babel/plugin-transform-modules-amd": "^7.18.6",
2001 "@babel/plugin-transform-modules-commonjs": "^7.18.6",
2205 - "@babel/plugin-transform-modules-systemjs": "^7.18.9",
2002 + "@babel/plugin-transform-modules-systemjs": "^7.19.0",
2003 "@babel/plugin-transform-modules-umd": "^7.18.6",
2207 - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6",
2004 + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
2005 "@babel/plugin-transform-new-target": "^7.18.6",
2006 "@babel/plugin-transform-object-super": "^7.18.6",
2007 "@babel/plugin-transform-parameters": "^7.18.8",
@@ -2212,18 +2009,18 @@
2009 "@babel/plugin-transform-regenerator": "^7.18.6",
2010 "@babel/plugin-transform-reserved-words": "^7.18.6",
2011 "@babel/plugin-transform-shorthand-properties": "^7.18.6",
2215 - "@babel/plugin-transform-spread": "^7.18.9",
2012 + "@babel/plugin-transform-spread": "^7.19.0",
2013 "@babel/plugin-transform-sticky-regex": "^7.18.6",
2014 "@babel/plugin-transform-template-literals": "^7.18.9",
2015 "@babel/plugin-transform-typeof-symbol": "^7.18.9",
2016 "@babel/plugin-transform-unicode-escapes": "^7.18.10",
2017 "@babel/plugin-transform-unicode-regex": "^7.18.6",
2018 "@babel/preset-modules": "^0.1.5",
2222 - "@babel/types": "^7.18.10",
2223 - "babel-plugin-polyfill-corejs2": "^0.3.2",
2224 - "babel-plugin-polyfill-corejs3": "^0.5.3",
2225 - "babel-plugin-polyfill-regenerator": "^0.4.0",
2226 - "core-js-compat": "^3.22.1",
2019 + "@babel/types": "^7.19.4",
2020 + "babel-plugin-polyfill-corejs2": "^0.3.3",
2021 + "babel-plugin-polyfill-corejs3": "^0.6.0",
2022 + "babel-plugin-polyfill-regenerator": "^0.4.1",
2023 + "core-js-compat": "^3.25.1",
2024 "semver": "^6.3.0"
2025 },
2026 "engines": {
@@ -2235,14 +2032,16 @@
2032 },
2033 "node_modules/@babel/preset-env/node_modules/semver": {
2034 "version": "6.3.0",
2238 - "license": "ISC",
2035 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2036 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2037 "bin": {
2038 "semver": "bin/semver.js"
2039 }
2040 },
2041 "node_modules/@babel/preset-modules": {
2042 "version": "0.1.5",
2245 - "license": "MIT",
2043 + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
2044 + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
2045 "dependencies": {
2046 "@babel/helper-plugin-utils": "^7.0.0",
2047 "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
@@ -2256,7 +2055,8 @@
2055 },
2056 "node_modules/@babel/preset-react": {
2057 "version": "7.18.6",
2259 - "license": "MIT",
2058 + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz",
2059 + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==",
2060 "dependencies": {
2061 "@babel/helper-plugin-utils": "^7.18.6",
2062 "@babel/helper-validator-option": "^7.18.6",
@@ -2274,7 +2074,8 @@
2074 },
2075 "node_modules/@babel/preset-typescript": {
2076 "version": "7.18.6",
2277 - "license": "MIT",
2077 + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
2078 + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
2079 "dependencies": {
2080 "@babel/helper-plugin-utils": "^7.18.6",
2081 "@babel/helper-validator-option": "^7.18.6",
@@ -2288,8 +2089,9 @@
2089 }
2090 },
2091 "node_modules/@babel/runtime": {
2291 - "version": "7.18.9",
2292 - "license": "MIT",
2092 + "version": "7.19.4",
2093 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
2094 + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
2095 "dependencies": {
2096 "regenerator-runtime": "^0.13.4"
2097 },
@@ -2298,26 +2100,21 @@
2100 }
2101 },
2102 "node_modules/@babel/runtime-corejs3": {
2301 - "version": "7.18.9",
2302 - "license": "MIT",
2103 + "version": "7.19.4",
2104 + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz",
2105 + "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==",
2106 "dependencies": {
2304 - "core-js-pure": "^3.20.2",
2107 + "core-js-pure": "^3.25.1",
2108 "regenerator-runtime": "^0.13.4"
2109 },
2110 "engines": {
2111 "node": ">=6.9.0"
2112 }
2113 },
2311 - "node_modules/@babel/standalone": {
2312 - "version": "7.18.12",
2313 - "license": "MIT",
2314 - "engines": {
2315 - "node": ">=6.9.0"
2316 - }
2317 - },
2114 "node_modules/@babel/template": {
2115 "version": "7.18.10",
2320 - "license": "MIT",
2116 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
2117 + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
2118 "dependencies": {
2119 "@babel/code-frame": "^7.18.6",
2120 "@babel/parser": "^7.18.10",
@@ -2328,17 +2125,18 @@
2125 }
2126 },
2127 "node_modules/@babel/traverse": {
2331 - "version": "7.18.11",
2332 - "license": "MIT",
2128 + "version": "7.19.4",
2129 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz",
2130 + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==",
2131 "dependencies": {
2132 "@babel/code-frame": "^7.18.6",
2335 - "@babel/generator": "^7.18.10",
2133 + "@babel/generator": "^7.19.4",
2134 "@babel/helper-environment-visitor": "^7.18.9",
2337 - "@babel/helper-function-name": "^7.18.9",
2135 + "@babel/helper-function-name": "^7.19.0",
2136 "@babel/helper-hoist-variables": "^7.18.6",
2137 "@babel/helper-split-export-declaration": "^7.18.6",
2340 - "@babel/parser": "^7.18.11",
2341 - "@babel/types": "^7.18.10",
2138 + "@babel/parser": "^7.19.4",
2139 + "@babel/types": "^7.19.4",
2140 "debug": "^4.1.0",
2141 "globals": "^11.1.0"
2142 },
@@ -2348,7 +2146,8 @@
2146 },
2147 "node_modules/@babel/traverse/node_modules/debug": {
2148 "version": "4.3.4",
2351 - "license": "MIT",
2149 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2150 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2151 "dependencies": {
2152 "ms": "2.1.2"
2153 },
@@ -2361,16 +2160,13 @@
2160 }
2161 }
2162 },
2364 - "node_modules/@babel/traverse/node_modules/ms": {
2365 - "version": "2.1.2",
2366 - "license": "MIT"
2367 - },
2163 "node_modules/@babel/types": {
2369 - "version": "7.18.10",
2370 - "license": "MIT",
2164 + "version": "7.19.4",
2165 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
2166 + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
2167 "dependencies": {
2372 - "@babel/helper-string-parser": "^7.18.10",
2373 - "@babel/helper-validator-identifier": "^7.18.6",
2168 + "@babel/helper-string-parser": "^7.19.4",
2169 + "@babel/helper-validator-identifier": "^7.19.1",
2170 "to-fast-properties": "^2.0.0"
2171 },
2172 "engines": {
@@ -2379,20 +2175,21 @@
2175 },
2176 "node_modules/@base2/pretty-print-object": {
2177 "version": "1.0.1",
2382 - "license": "BSD-2-Clause"
2178 + "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz",
2179 + "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA=="
2180 },
2384 - "node_modules/@cnakazawa/watch": {
2385 - "version": "1.0.4",
2386 - "license": "Apache-2.0",
2387 - "dependencies": {
2388 - "exec-sh": "^0.3.2",
2389 - "minimist": "^1.2.0"
2390 - },
2181 + "node_modules/@bcoe/v8-coverage": {
2182 + "version": "0.2.3",
2183 + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
2184 + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
2185 + "dev": true
2186 + },
2187 + "node_modules/@builder.io/partytown": {
2188 + "version": "0.5.4",
2189 + "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz",
2190 + "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==",
2191 "bin": {
2392 - "watch": "cli.js"
2393 - },
2394 - "engines": {
2395 - "node": ">=0.1.95"
2192 + "partytown": "bin/partytown.cjs"
2193 }
2194 },
2195 "node_modules/@commitlint/cli": {
@@ -2419,15 +2216,6 @@
2216 "node": ">=v14"
2217 }
2218 },
2422 - "node_modules/@commitlint/cli/node_modules/ansi-regex": {
2423 - "version": "5.0.1",
2424 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2425 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2426 - "dev": true,
2427 - "engines": {
2428 - "node": ">=8"
2429 - }
2430 - },
2219 "node_modules/@commitlint/cli/node_modules/cliui": {
2220 "version": "8.0.1",
2221 "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -2442,148 +2230,13 @@
2230 "node": ">=12"
2231 }
2232 },
2445 - "node_modules/@commitlint/cli/node_modules/cross-spawn": {
2446 - "version": "7.0.3",
2447 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2448 - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2449 - "dev": true,
2450 - "dependencies": {
2451 - "path-key": "^3.1.0",
2452 - "shebang-command": "^2.0.0",
2453 - "which": "^2.0.1"
2454 - },
2455 - "engines": {
2456 - "node": ">= 8"
2457 - }
2458 - },
2459 - "node_modules/@commitlint/cli/node_modules/emoji-regex": {
2460 - "version": "8.0.0",
2461 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2462 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2463 - "dev": true
2464 - },
2465 - "node_modules/@commitlint/cli/node_modules/execa": {
2466 - "version": "5.1.1",
2467 - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
2468 - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
2469 - "dev": true,
2470 - "dependencies": {
2471 - "cross-spawn": "^7.0.3",
2472 - "get-stream": "^6.0.0",
2473 - "human-signals": "^2.1.0",
2474 - "is-stream": "^2.0.0",
2475 - "merge-stream": "^2.0.0",
2476 - "npm-run-path": "^4.0.1",
2477 - "onetime": "^5.1.2",
2478 - "signal-exit": "^3.0.3",
2479 - "strip-final-newline": "^2.0.0"
2480 - },
2481 - "engines": {
2482 - "node": ">=10"
2483 - },
2484 - "funding": {
2485 - "url": "https://github.com/sindresorhus/execa?sponsor=1"
2486 - }
2487 - },
2488 - "node_modules/@commitlint/cli/node_modules/get-stream": {
2489 - "version": "6.0.1",
2490 - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
2491 - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
2233 + "node_modules/@commitlint/cli/node_modules/y18n": {
2234 + "version": "5.0.8",
2235 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2236 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2237 "dev": true,
2238 "engines": {
2239 "node": ">=10"
2495 - },
2496 - "funding": {
2497 - "url": "https://github.com/sponsors/sindresorhus"
2498 - }
2499 - },
2500 - "node_modules/@commitlint/cli/node_modules/human-signals": {
2501 - "version": "2.1.0",
2502 - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
2503 - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
2504 - "dev": true,
2505 - "engines": {
2506 - "node": ">=10.17.0"
2507 - }
2508 - },
2509 - "node_modules/@commitlint/cli/node_modules/is-fullwidth-code-point": {
2510 - "version": "3.0.0",
2511 - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2512 - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2513 - "dev": true,
2514 - "engines": {
2515 - "node": ">=8"
2516 - }
2517 - },
2518 - "node_modules/@commitlint/cli/node_modules/path-key": {
2519 - "version": "3.1.1",
2520 - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2521 - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2522 - "dev": true,
2523 - "engines": {
2524 - "node": ">=8"
2525 - }
2526 - },
2527 - "node_modules/@commitlint/cli/node_modules/shebang-command": {
2528 - "version": "2.0.0",
2529 - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2530 - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2531 - "dev": true,
2532 - "dependencies": {
2533 - "shebang-regex": "^3.0.0"
2534 - },
2535 - "engines": {
2536 - "node": ">=8"
2537 - }
2538 - },
2539 - "node_modules/@commitlint/cli/node_modules/shebang-regex": {
2540 - "version": "3.0.0",
2541 - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2542 - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2543 - "dev": true,
2544 - "engines": {
2545 - "node": ">=8"
2546 - }
2547 - },
2548 - "node_modules/@commitlint/cli/node_modules/string-width": {
2549 - "version": "4.2.3",
2550 - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2551 - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2552 - "dev": true,
2553 - "dependencies": {
2554 - "emoji-regex": "^8.0.0",
2555 - "is-fullwidth-code-point": "^3.0.0",
2556 - "strip-ansi": "^6.0.1"
2557 - },
2558 - "engines": {
2559 - "node": ">=8"
2560 - }
2561 - },
2562 - "node_modules/@commitlint/cli/node_modules/strip-ansi": {
2563 - "version": "6.0.1",
2564 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2565 - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2566 - "dev": true,
2567 - "dependencies": {
2568 - "ansi-regex": "^5.0.1"
2569 - },
2570 - "engines": {
2571 - "node": ">=8"
2572 - }
2573 - },
2574 - "node_modules/@commitlint/cli/node_modules/which": {
2575 - "version": "2.0.2",
2576 - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2577 - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2578 - "dev": true,
2579 - "dependencies": {
2580 - "isexe": "^2.0.0"
2581 - },
2582 - "bin": {
2583 - "node-which": "bin/node-which"
2584 - },
2585 - "engines": {
2586 - "node": ">= 8"
2240 }
2241 },
2242 "node_modules/@commitlint/cli/node_modules/yargs": {
@@ -2708,6 +2361,39 @@
2361 "node": ">=v14"
2362 }
2363 },
2364 + "node_modules/@commitlint/is-ignored/node_modules/lru-cache": {
2365 + "version": "6.0.0",
2366 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2367 + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2368 + "dev": true,
2369 + "dependencies": {
2370 + "yallist": "^4.0.0"
2371 + },
2372 + "engines": {
2373 + "node": ">=10"
2374 + }
2375 + },
2376 + "node_modules/@commitlint/is-ignored/node_modules/semver": {
2377 + "version": "7.3.7",
2378 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
2379 + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
2380 + "dev": true,
2381 + "dependencies": {
2382 + "lru-cache": "^6.0.0"
2383 + },
2384 + "bin": {
2385 + "semver": "bin/semver.js"
2386 + },
2387 + "engines": {
2388 + "node": ">=10"
2389 + }
2390 + },
2391 + "node_modules/@commitlint/is-ignored/node_modules/yallist": {
2392 + "version": "4.0.0",
2393 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2394 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2395 + "dev": true
2396 + },
2397 "node_modules/@commitlint/lint": {
2398 "version": "17.1.0",
2399 "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.1.0.tgz",
@@ -2752,27 +2438,6 @@
2438 "integrity": "sha512-vQAnaReSQkEDa8uwAyQby8bYGKu84R/deEc6mg5T8fX6gzCn8QW6rziSgsti1fNvsrswKUKPnVTi7uoB+u62Mw==",
2439 "dev": true
2440 },
2755 - "node_modules/@commitlint/load/node_modules/acorn": {
2756 - "version": "8.8.0",
2757 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
2758 - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
2759 - "dev": true,
2760 - "bin": {
2761 - "acorn": "bin/acorn"
2762 - },
2763 - "engines": {
2764 - "node": ">=0.4.0"
2765 - }
2766 - },
2767 - "node_modules/@commitlint/load/node_modules/acorn-walk": {
2768 - "version": "8.2.0",
2769 - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
2770 - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
2771 - "dev": true,
2772 - "engines": {
2773 - "node": ">=0.4.0"
2774 - }
2775 - },
2441 "node_modules/@commitlint/load/node_modules/cosmiconfig": {
2442 "version": "7.0.1",
2443 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
@@ -2805,49 +2470,6 @@
2470 "typescript": ">=3"
2471 }
2472 },
2808 - "node_modules/@commitlint/load/node_modules/ts-node": {
2809 - "version": "10.9.1",
2810 - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
2811 - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
2812 - "dev": true,
2813 - "dependencies": {
2814 - "@cspotcode/source-map-support": "^0.8.0",
2815 - "@tsconfig/node10": "^1.0.7",
2816 - "@tsconfig/node12": "^1.0.7",
2817 - "@tsconfig/node14": "^1.0.0",
2818 - "@tsconfig/node16": "^1.0.2",
2819 - "acorn": "^8.4.1",
2820 - "acorn-walk": "^8.1.1",
2821 - "arg": "^4.1.0",
2822 - "create-require": "^1.1.0",
2823 - "diff": "^4.0.1",
2824 - "make-error": "^1.1.1",
2825 - "v8-compile-cache-lib": "^3.0.1",
2826 - "yn": "3.1.1"
2827 - },
2828 - "bin": {
2829 - "ts-node": "dist/bin.js",
2830 - "ts-node-cwd": "dist/bin-cwd.js",
2831 - "ts-node-esm": "dist/bin-esm.js",
2832 - "ts-node-script": "dist/bin-script.js",
2833 - "ts-node-transpile-only": "dist/bin-transpile.js",
2834 - "ts-script": "dist/bin-script-deprecated.js"
2835 - },
2836 - "peerDependencies": {
2837 - "@swc/core": ">=1.2.50",
2838 - "@swc/wasm": ">=1.2.50",
2839 - "@types/node": "*",
2840 - "typescript": ">=2.7"
2841 - },
2842 - "peerDependenciesMeta": {
2843 - "@swc/core": {
2844 - "optional": true
2845 - },
2846 - "@swc/wasm": {
2847 - "optional": true
2848 - }
2849 - }
2850 - },
2473 "node_modules/@commitlint/message": {
2474 "version": "17.0.0",
2475 "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.0.0.tgz",
@@ -2887,41 +2509,6 @@
2509 "node": ">=v14"
2510 }
2511 },
2890 - "node_modules/@commitlint/read/node_modules/fs-extra": {
2891 - "version": "10.1.0",
2892 - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
2893 - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
2894 - "dev": true,
2895 - "dependencies": {
2896 - "graceful-fs": "^4.2.0",
2897 - "jsonfile": "^6.0.1",
2898 - "universalify": "^2.0.0"
2899 - },
2900 - "engines": {
2901 - "node": ">=12"
2902 - }
2903 - },
2904 - "node_modules/@commitlint/read/node_modules/jsonfile": {
2905 - "version": "6.1.0",
2906 - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
2907 - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
2908 - "dev": true,
2909 - "dependencies": {
2910 - "universalify": "^2.0.0"
2911 - },
2912 - "optionalDependencies": {
2913 - "graceful-fs": "^4.1.6"
2914 - }
2915 - },
2916 - "node_modules/@commitlint/read/node_modules/universalify": {
2917 - "version": "2.0.0",
2918 - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
2919 - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
2920 - "dev": true,
2921 - "engines": {
2922 - "node": ">= 10.0.0"
2923 - }
2924 - },
2512 "node_modules/@commitlint/resolve-extends": {
2513 "version": "17.1.0",
2514 "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz",
@@ -2955,109 +2542,6 @@
2542 "node": ">=v14"
2543 }
2544 },
2958 - "node_modules/@commitlint/rules/node_modules/cross-spawn": {
2959 - "version": "7.0.3",
2960 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2961 - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2962 - "dev": true,
2963 - "dependencies": {
2964 - "path-key": "^3.1.0",
2965 - "shebang-command": "^2.0.0",
2966 - "which": "^2.0.1"
2967 - },
2968 - "engines": {
2969 - "node": ">= 8"
2970 - }
2971 - },
2972 - "node_modules/@commitlint/rules/node_modules/execa": {
2973 - "version": "5.1.1",
2974 - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
2975 - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
2976 - "dev": true,
2977 - "dependencies": {
2978 - "cross-spawn": "^7.0.3",
2979 - "get-stream": "^6.0.0",
2980 - "human-signals": "^2.1.0",
2981 - "is-stream": "^2.0.0",
2982 - "merge-stream": "^2.0.0",
2983 - "npm-run-path": "^4.0.1",
2984 - "onetime": "^5.1.2",
2985 - "signal-exit": "^3.0.3",
2986 - "strip-final-newline": "^2.0.0"
2987 - },
2988 - "engines": {
2989 - "node": ">=10"
2990 - },
2991 - "funding": {
2992 - "url": "https://github.com/sindresorhus/execa?sponsor=1"
2993 - }
2994 - },
2995 - "node_modules/@commitlint/rules/node_modules/get-stream": {
2996 - "version": "6.0.1",
2997 - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
2998 - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
2999 - "dev": true,
3000 - "engines": {
3001 - "node": ">=10"
3002 - },
3003 - "funding": {
3004 - "url": "https://github.com/sponsors/sindresorhus"
3005 - }
3006 - },
3007 - "node_modules/@commitlint/rules/node_modules/human-signals": {
3008 - "version": "2.1.0",
3009 - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
3010 - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
3011 - "dev": true,
3012 - "engines": {
3013 - "node": ">=10.17.0"
3014 - }
3015 - },
3016 - "node_modules/@commitlint/rules/node_modules/path-key": {
3017 - "version": "3.1.1",
3018 - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3019 - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3020 - "dev": true,
3021 - "engines": {
3022 - "node": ">=8"
3023 - }
3024 - },
3025 - "node_modules/@commitlint/rules/node_modules/shebang-command": {
3026 - "version": "2.0.0",
3027 - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3028 - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3029 - "dev": true,
3030 - "dependencies": {
3031 - "shebang-regex": "^3.0.0"
3032 - },
3033 - "engines": {
3034 - "node": ">=8"
3035 - }
3036 - },
3037 - "node_modules/@commitlint/rules/node_modules/shebang-regex": {
3038 - "version": "3.0.0",
3039 - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3040 - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3041 - "dev": true,
3042 - "engines": {
3043 - "node": ">=8"
3044 - }
3045 - },
3046 - "node_modules/@commitlint/rules/node_modules/which": {
3047 - "version": "2.0.2",
3048 - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3049 - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3050 - "dev": true,
3051 - "dependencies": {
3052 - "isexe": "^2.0.0"
3053 - },
3054 - "bin": {
3055 - "node-which": "bin/node-which"
3056 - },
3057 - "engines": {
3058 - "node": ">= 8"
3059 - }
3060 - },
2545 "node_modules/@commitlint/to-lines": {
2546 "version": "17.0.0",
2547 "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.0.0.tgz",
@@ -3079,52 +2563,6 @@
2563 "node": ">=v14"
2564 }
2565 },
3082 - "node_modules/@commitlint/top-level/node_modules/find-up": {
3083 - "version": "5.0.0",
3084 - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
3085 - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
3086 - "dev": true,
3087 - "dependencies": {
3088 - "locate-path": "^6.0.0",
3089 - "path-exists": "^4.0.0"
3090 - },
3091 - "engines": {
3092 - "node": ">=10"
3093 - },
3094 - "funding": {
3095 - "url": "https://github.com/sponsors/sindresorhus"
3096 - }
3097 - },
3098 - "node_modules/@commitlint/top-level/node_modules/locate-path": {
3099 - "version": "6.0.0",
3100 - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
3101 - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
3102 - "dev": true,
3103 - "dependencies": {
3104 - "p-locate": "^5.0.0"
3105 - },
3106 - "engines": {
3107 - "node": ">=10"
3108 - },
3109 - "funding": {
3110 - "url": "https://github.com/sponsors/sindresorhus"
3111 - }
3112 - },
3113 - "node_modules/@commitlint/top-level/node_modules/p-locate": {
3114 - "version": "5.0.0",
3115 - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
3116 - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
3117 - "dev": true,
3118 - "dependencies": {
3119 - "p-limit": "^3.0.2"
3120 - },
3121 - "engines": {
3122 - "node": ">=10"
3123 - },
3124 - "funding": {
3125 - "url": "https://github.com/sponsors/sindresorhus"
3126 - }
3127 - },
2566 "node_modules/@commitlint/types": {
2567 "version": "17.0.0",
2568 "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.0.0.tgz",
@@ -3171,43 +2609,33 @@
2609 },
2610 "node_modules/@emotion/is-prop-valid": {
2611 "version": "0.8.8",
3174 - "license": "MIT",
2612 + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
2613 + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
2614 + "optional": true,
2615 "dependencies": {
2616 "@emotion/memoize": "0.7.4"
2617 }
2618 },
2619 "node_modules/@emotion/memoize": {
2620 "version": "0.7.4",
3181 - "license": "MIT"
2621 + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
2622 + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
2623 + "optional": true
2624 + },
2625 + "node_modules/@emotion/stylis": {
2626 + "version": "0.8.5",
2627 + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
2628 + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
2629 },
2630 "node_modules/@emotion/unitless": {
2631 "version": "0.7.5",
3185 - "license": "MIT"
3186 - },
3187 - "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": {
3188 - "version": "3.0.2",
3189 - "license": "MIT",
3190 - "dependencies": {
3191 - "lodash.get": "^4",
3192 - "make-error": "^1",
3193 - "ts-node": "^9",
3194 - "tslib": "^2"
3195 - },
3196 - "engines": {
3197 - "node": ">=10.0.0"
3198 - },
3199 - "peerDependencies": {
3200 - "cosmiconfig": ">=6"
3201 - }
3202 - },
3203 - "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader/node_modules/tslib": {
3204 - "version": "2.4.0",
3205 - "license": "0BSD"
2632 + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
2633 + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
2634 },
2635 "node_modules/@eslint/eslintrc": {
3208 - "version": "1.3.2",
3209 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz",
3210 - "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==",
2636 + "version": "1.3.3",
2637 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
2638 + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
2639 "dev": true,
2640 "peer": true,
2641 "dependencies": {
@@ -3228,26 +2656,17 @@
2656 "url": "https://opencollective.com/eslint"
2657 }
2658 },
3231 - "node_modules/@eslint/eslintrc/node_modules/acorn": {
3232 - "version": "8.8.0",
3233 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
3234 - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
2659 + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
2660 + "version": "1.1.11",
2661 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2662 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2663 "dev": true,
2664 "peer": true,
3237 - "bin": {
3238 - "acorn": "bin/acorn"
3239 - },
3240 - "engines": {
3241 - "node": ">=0.4.0"
2665 + "dependencies": {
2666 + "balanced-match": "^1.0.0",
2667 + "concat-map": "0.0.1"
2668 }
2669 },
3244 - "node_modules/@eslint/eslintrc/node_modules/argparse": {
3245 - "version": "2.0.1",
3246 - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
3247 - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
3248 - "dev": true,
3249 - "peer": true
3250 - },
2670 "node_modules/@eslint/eslintrc/node_modules/debug": {
2671 "version": "4.3.4",
2672 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -3266,34 +2685,6 @@
2685 }
2686 }
2687 },
3269 - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": {
3270 - "version": "3.3.0",
3271 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
3272 - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
3273 - "dev": true,
3274 - "peer": true,
3275 - "engines": {
3276 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3277 - }
3278 - },
3279 - "node_modules/@eslint/eslintrc/node_modules/espree": {
3280 - "version": "9.4.0",
3281 - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
3282 - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
3283 - "dev": true,
3284 - "peer": true,
3285 - "dependencies": {
3286 - "acorn": "^8.8.0",
3287 - "acorn-jsx": "^5.3.2",
3288 - "eslint-visitor-keys": "^3.3.0"
3289 - },
3290 - "engines": {
3291 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3292 - },
3293 - "funding": {
3294 - "url": "https://opencollective.com/eslint"
3295 - }
3296 - },
2688 "node_modules/@eslint/eslintrc/node_modules/globals": {
2689 "version": "13.17.0",
2690 "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
@@ -3310,53 +2701,70 @@
2701 "url": "https://github.com/sponsors/sindresorhus"
2702 }
2703 },
3313 - "node_modules/@eslint/eslintrc/node_modules/ignore": {
3314 - "version": "5.2.0",
3315 - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
3316 - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
2704 + "node_modules/@eslint/eslintrc/node_modules/minimatch": {
2705 + "version": "3.1.2",
2706 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2707 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2708 "dev": true,
2709 "peer": true,
2710 + "dependencies": {
2711 + "brace-expansion": "^1.1.7"
2712 + },
2713 "engines": {
3320 - "node": ">= 4"
2714 + "node": "*"
2715 }
2716 },
3323 - "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
3324 - "version": "4.1.0",
3325 - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
3326 - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
3327 - "dev": true,
3328 - "peer": true,
2717 + "node_modules/@gar/promisify": {
2718 + "version": "1.1.3",
2719 + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
2720 + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
2721 + },
2722 + "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": {
2723 + "version": "1.9.0",
2724 + "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.9.0.tgz",
2725 + "integrity": "sha512-N/GUtMxnYgUdn7BeHFQ3iY4A13bN5a7Jfi+kT0fGbfTggMI3XDvIHWRoMfUDcRtUo2D/gL3sQq5gd1k8obye3A==",
2726 "dependencies": {
3330 - "argparse": "^2.0.1"
2727 + "@babel/runtime": "^7.18.0",
2728 + "@parcel/namer-default": "2.6.2",
2729 + "@parcel/plugin": "2.6.2",
2730 + "gatsby-core-utils": "^3.24.0"
2731 },
3332 - "bin": {
3333 - "js-yaml": "bin/js-yaml.js"
2732 + "engines": {
2733 + "node": ">=14.15.0",
2734 + "parcel": "2.x"
2735 }
2736 },
3336 - "node_modules/@eslint/eslintrc/node_modules/ms": {
3337 - "version": "2.1.2",
3338 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3339 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3340 - "dev": true,
3341 - "peer": true
2737 + "node_modules/@gatsbyjs/potrace": {
2738 + "version": "2.3.0",
2739 + "resolved": "https://registry.npmjs.org/@gatsbyjs/potrace/-/potrace-2.3.0.tgz",
2740 + "integrity": "sha512-72szhSY/4tPiPPOzq15CG6LW0s9FuWQ86gkLSUvBNoF0s+jsEdRaZmATYNjiY2Skg//EuyPLEqUQnXKXME0szg==",
2741 + "dependencies": {
2742 + "jimp-compact": "^0.16.1-2"
2743 + }
2744 },
3343 - "node_modules/@eslint/eslintrc/node_modules/type-fest": {
3344 - "version": "0.20.2",
3345 - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
3346 - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
3347 - "dev": true,
3348 - "peer": true,
3349 - "engines": {
3350 - "node": ">=10"
2745 + "node_modules/@gatsbyjs/reach-router": {
2746 + "version": "1.3.9",
2747 + "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-1.3.9.tgz",
2748 + "integrity": "sha512-/354IaUSM54xb7K/TxpLBJB94iEAJ3P82JD38T8bLnIDWF+uw8+W/82DKnQ7y24FJcKxtVmG43aiDLG88KSuYQ==",
2749 + "dependencies": {
2750 + "invariant": "^2.2.3",
2751 + "prop-types": "^15.6.1",
2752 + "react-lifecycles-compat": "^3.0.4"
2753 },
3352 - "funding": {
3353 - "url": "https://github.com/sponsors/sindresorhus"
2754 + "peerDependencies": {
2755 + "react": "15.x || 16.x || 17.x || 18.x",
2756 + "react-dom": "15.x || 16.x || 17.x || 18.x"
2757 }
2758 },
3356 - "node_modules/@gar/promisify": {
3357 - "version": "1.1.3",
3358 - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
3359 - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
2759 + "node_modules/@gatsbyjs/webpack-hot-middleware": {
2760 + "version": "2.25.3",
2761 + "resolved": "https://registry.npmjs.org/@gatsbyjs/webpack-hot-middleware/-/webpack-hot-middleware-2.25.3.tgz",
2762 + "integrity": "sha512-ul17OZ8Dlw+ATRbnuU+kwxuAlq9lKbYz/2uBS1FLCdgoPTF1H2heP7HbUbgfMZbfRQNcCG2rMscMnr32ritCDw==",
2763 + "dependencies": {
2764 + "ansi-html-community": "0.0.8",
2765 + "html-entities": "^2.3.3",
2766 + "strip-ansi": "^6.0.0"
2767 + }
2768 },
2769 "node_modules/@google-automations/git-file-utils": {
2770 "version": "1.2.1",
@@ -3372,372 +2780,253 @@
2780 "node": ">= 14"
2781 }
2782 },
3375 - "node_modules/@google-automations/git-file-utils/node_modules/@octokit/openapi-types": {
3376 - "version": "13.13.1",
3377 - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz",
3378 - "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==",
3379 - "dev": true
3380 - },
3381 - "node_modules/@google-automations/git-file-utils/node_modules/@octokit/types": {
3382 - "version": "7.5.1",
3383 - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz",
3384 - "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==",
3385 - "dev": true,
2783 + "node_modules/@graphql-codegen/add": {
2784 + "version": "3.2.1",
2785 + "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-3.2.1.tgz",
2786 + "integrity": "sha512-w82H/evh8SSGoD3K6K/Oh3kqSdbuU+TgHqMYmmHFxtH692v2xhN/cu1s/TotBQ7r4mO7OQutze7dde2tZEXGEQ==",
2787 "dependencies": {
3387 - "@octokit/openapi-types": "^13.11.0"
2788 + "@graphql-codegen/plugin-helpers": "^2.6.2",
2789 + "tslib": "~2.4.0"
2790 + },
2791 + "peerDependencies": {
2792 + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2793 }
2794 },
3390 - "node_modules/@google-automations/git-file-utils/node_modules/brace-expansion": {
3391 - "version": "2.0.1",
3392 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
3393 - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
3394 - "dev": true,
2795 + "node_modules/@graphql-codegen/core": {
2796 + "version": "2.6.2",
2797 + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.2.tgz",
2798 + "integrity": "sha512-58T5yf9nEfAhDwN1Vz1hImqpdJ/gGpCGUaroQ5tqskZPf7eZYYVkEXbtqRZZLx1MCCKwjWX4hMtTPpHhwKCkng==",
2799 "dependencies": {
3396 - "balanced-match": "^1.0.0"
2800 + "@graphql-codegen/plugin-helpers": "^2.6.2",
2801 + "@graphql-tools/schema": "^9.0.0",
2802 + "@graphql-tools/utils": "^8.8.0",
2803 + "tslib": "~2.4.0"
2804 + },
2805 + "peerDependencies": {
2806 + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2807 }
2808 },
3399 - "node_modules/@google-automations/git-file-utils/node_modules/minimatch": {
3400 - "version": "5.1.0",
3401 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
3402 - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
3403 - "dev": true,
2809 + "node_modules/@graphql-codegen/plugin-helpers": {
2810 + "version": "2.7.1",
2811 + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz",
2812 + "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==",
2813 "dependencies": {
3405 - "brace-expansion": "^2.0.1"
2814 + "@graphql-tools/utils": "^8.8.0",
2815 + "change-case-all": "1.0.14",
2816 + "common-tags": "1.8.2",
2817 + "import-from": "4.0.0",
2818 + "lodash": "~4.17.0",
2819 + "tslib": "~2.4.0"
2820 },
3407 - "engines": {
3408 - "node": ">=10"
2821 + "peerDependencies": {
2822 + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2823 }
2824 },
3411 - "node_modules/@graphql-tools/batch-execute": {
3412 - "version": "7.1.2",
3413 - "license": "MIT",
2825 + "node_modules/@graphql-codegen/schema-ast": {
2826 + "version": "2.5.1",
2827 + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.5.1.tgz",
2828 + "integrity": "sha512-tewa5DEKbglWn7kYyVBkh3J8YQ5ALqAMVmZwiVFIGOao5u66nd+e4HuFqp0u+Jpz4SJGGi0ap/oFrEvlqLjd2A==",
2829 "dependencies": {
3415 - "@graphql-tools/utils": "^7.7.0",
3416 - "dataloader": "2.0.0",
3417 - "tslib": "~2.2.0",
3418 - "value-or-promise": "1.0.6"
2830 + "@graphql-codegen/plugin-helpers": "^2.6.2",
2831 + "@graphql-tools/utils": "^8.8.0",
2832 + "tslib": "~2.4.0"
2833 },
2834 "peerDependencies": {
3421 - "graphql": "^14.0.0 || ^15.0.0"
2835 + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2836 }
2837 },
3424 - "node_modules/@graphql-tools/batch-execute/node_modules/dataloader": {
3425 - "version": "2.0.0",
3426 - "license": "MIT"
3427 - },
3428 - "node_modules/@graphql-tools/batch-execute/node_modules/tslib": {
3429 - "version": "2.2.0",
3430 - "license": "0BSD"
3431 - },
3432 - "node_modules/@graphql-tools/delegate": {
3433 - "version": "7.1.5",
3434 - "license": "MIT",
2838 + "node_modules/@graphql-codegen/typescript": {
2839 + "version": "2.7.3",
2840 + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.7.3.tgz",
2841 + "integrity": "sha512-EzX/acijXtbG/AwPzho2ZZWaNo00+xAbsRDP+vnT2PwQV3AYq3/5bFvjq1XfAGWbTntdmlYlIwC9hf5bI85WVA==",
2842 "dependencies": {
3436 - "@ardatan/aggregate-error": "0.0.6",
3437 - "@graphql-tools/batch-execute": "^7.1.2",
3438 - "@graphql-tools/schema": "^7.1.5",
3439 - "@graphql-tools/utils": "^7.7.1",
3440 - "dataloader": "2.0.0",
3441 - "tslib": "~2.2.0",
3442 - "value-or-promise": "1.0.6"
2843 + "@graphql-codegen/plugin-helpers": "^2.6.2",
2844 + "@graphql-codegen/schema-ast": "^2.5.1",
2845 + "@graphql-codegen/visitor-plugin-common": "2.12.1",
2846 + "auto-bind": "~4.0.0",
2847 + "tslib": "~2.4.0"
2848 },
2849 "peerDependencies": {
3445 - "graphql": "^14.0.0 || ^15.0.0"
2850 + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2851 }
2852 },
3448 - "node_modules/@graphql-tools/delegate/node_modules/dataloader": {
3449 - "version": "2.0.0",
3450 - "license": "MIT"
3451 - },
3452 - "node_modules/@graphql-tools/delegate/node_modules/tslib": {
3453 - "version": "2.2.0",
3454 - "license": "0BSD"
3455 - },
3456 - "node_modules/@graphql-tools/graphql-file-loader": {
3457 - "version": "6.2.7",
3458 - "license": "MIT",
2853 + "node_modules/@graphql-codegen/typescript-operations": {
2854 + "version": "2.5.3",
2855 + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.3.tgz",
2856 + "integrity": "sha512-s+pA+Erm0HeBb/D5cNrflwRM5KWhkiA5cbz4uA99l3fzFPveoQBPfRCBu0XAlJLP/kBDy64+o4B8Nfc7wdRtmA==",
2857 "dependencies": {
3460 - "@graphql-tools/import": "^6.2.6",
3461 - "@graphql-tools/utils": "^7.0.0",
3462 - "tslib": "~2.1.0"
2858 + "@graphql-codegen/plugin-helpers": "^2.6.2",
2859 + "@graphql-codegen/typescript": "^2.7.3",
2860 + "@graphql-codegen/visitor-plugin-common": "2.12.1",
2861 + "auto-bind": "~4.0.0",
2862 + "tslib": "~2.4.0"
2863 },
2864 "peerDependencies": {
3465 - "graphql": "^14.0.0 || ^15.0.0"
2865 + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2866 }
2867 },
3468 - "node_modules/@graphql-tools/graphql-file-loader/node_modules/tslib": {
3469 - "version": "2.1.0",
3470 - "license": "0BSD"
3471 - },
3472 - "node_modules/@graphql-tools/import": {
3473 - "version": "6.7.3",
3474 - "license": "MIT",
3475 - "dependencies": {
3476 - "@graphql-tools/utils": "8.10.0",
3477 - "resolve-from": "5.0.0",
3478 - "tslib": "^2.4.0"
2868 + "node_modules/@graphql-codegen/visitor-plugin-common": {
2869 + "version": "2.12.1",
2870 + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.12.1.tgz",
2871 + "integrity": "sha512-dIUrX4+i/uazyPQqXyQ8cqykgNFe1lknjnfDWFo0gnk2W8+ruuL2JpSrj/7efzFHxbYGMQrCABDCUTVLi3DcVA==",
2872 + "dependencies": {
2873 + "@graphql-codegen/plugin-helpers": "^2.6.2",
2874 + "@graphql-tools/optimize": "^1.3.0",
2875 + "@graphql-tools/relay-operation-optimizer": "^6.5.0",
2876 + "@graphql-tools/utils": "^8.8.0",
2877 + "auto-bind": "~4.0.0",
2878 + "change-case-all": "1.0.14",
2879 + "dependency-graph": "^0.11.0",
2880 + "graphql-tag": "^2.11.0",
2881 + "parse-filepath": "^1.0.2",
2882 + "tslib": "~2.4.0"
2883 },
2884 "peerDependencies": {
3481 - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2885 + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
2886 }
2887 },
3484 - "node_modules/@graphql-tools/import/node_modules/@graphql-tools/utils": {
3485 - "version": "8.10.0",
3486 - "license": "MIT",
2888 + "node_modules/@graphql-tools/code-file-loader": {
2889 + "version": "7.3.6",
2890 + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.6.tgz",
2891 + "integrity": "sha512-PNWWSwSuQAqANerDwS0zdQ5FPipirv75TjjzBHnY+6AF/WvKq5sQiUQheA2P7B+MZc/KdQ7h/JAGMQOhKNVA+Q==",
2892 "dependencies": {
3488 - "tslib": "^2.4.0"
2893 + "@graphql-tools/graphql-tag-pluck": "7.3.6",
2894 + "@graphql-tools/utils": "8.12.0",
2895 + "globby": "^11.0.3",
2896 + "tslib": "^2.4.0",
2897 + "unixify": "^1.0.0"
2898 },
2899 "peerDependencies": {
2900 "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2901 }
2902 },
3494 - "node_modules/@graphql-tools/import/node_modules/tslib": {
3495 - "version": "2.4.0",
3496 - "license": "0BSD"
3497 - },
3498 - "node_modules/@graphql-tools/json-file-loader": {
3499 - "version": "6.2.6",
3500 - "license": "MIT",
2903 + "node_modules/@graphql-tools/graphql-tag-pluck": {
2904 + "version": "7.3.6",
2905 + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.6.tgz",
2906 + "integrity": "sha512-qULgqsOGKY1/PBqmP7fJZqbCg/TzPHKB9Wl51HGA9QjGymrzmrH5EjvsC8RtgdubF8yuTTVVFTz1lmSQ7RPssQ==",
2907 "dependencies": {
3502 - "@graphql-tools/utils": "^7.0.0",
3503 - "tslib": "~2.0.1"
2908 + "@babel/parser": "^7.16.8",
2909 + "@babel/traverse": "^7.16.8",
2910 + "@babel/types": "^7.16.8",
2911 + "@graphql-tools/utils": "8.12.0",
2912 + "tslib": "^2.4.0"
2913 },
2914 "peerDependencies": {
3506 - "graphql": "^14.0.0 || ^15.0.0"
2915 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2916 }
2917 },
3509 - "node_modules/@graphql-tools/json-file-loader/node_modules/tslib": {
3510 - "version": "2.0.3",
3511 - "license": "0BSD"
3512 - },
2918 "node_modules/@graphql-tools/load": {
3514 - "version": "6.2.8",
3515 - "license": "MIT",
2919 + "version": "7.7.7",
2920 + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.7.7.tgz",
2921 + "integrity": "sha512-IpI2672zcoAX4FLjcH5kvHc7eqjPyLP1svrIcZKQenv0GRS6dW0HI9E5UCBs0y/yy8yW6s+SvpmNsfIlkMj3Kw==",
2922 "dependencies": {
3517 - "@graphql-tools/merge": "^6.2.12",
3518 - "@graphql-tools/utils": "^7.5.0",
3519 - "globby": "11.0.3",
3520 - "import-from": "3.0.0",
3521 - "is-glob": "4.0.1",
2923 + "@graphql-tools/schema": "9.0.4",
2924 + "@graphql-tools/utils": "8.12.0",
2925 "p-limit": "3.1.0",
3523 - "tslib": "~2.2.0",
3524 - "unixify": "1.0.0",
3525 - "valid-url": "1.0.9"
2926 + "tslib": "^2.4.0"
2927 },
2928 "peerDependencies": {
3528 - "graphql": "^14.0.0 || ^15.0.0"
2929 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2930 }
2931 },
3531 - "node_modules/@graphql-tools/load/node_modules/globby": {
3532 - "version": "11.0.3",
3533 - "license": "MIT",
2932 + "node_modules/@graphql-tools/merge": {
2933 + "version": "8.3.6",
2934 + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.6.tgz",
2935 + "integrity": "sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==",
2936 "dependencies": {
3535 - "array-union": "^2.1.0",
3536 - "dir-glob": "^3.0.1",
3537 - "fast-glob": "^3.1.1",
3538 - "ignore": "^5.1.4",
3539 - "merge2": "^1.3.0",
3540 - "slash": "^3.0.0"
3541 - },
3542 - "engines": {
3543 - "node": ">=10"
2937 + "@graphql-tools/utils": "8.12.0",
2938 + "tslib": "^2.4.0"
2939 },
3545 - "funding": {
3546 - "url": "https://github.com/sponsors/sindresorhus"
2940 + "peerDependencies": {
2941 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2942 }
2943 },
3549 - "node_modules/@graphql-tools/load/node_modules/ignore": {
3550 - "version": "5.2.0",
3551 - "license": "MIT",
3552 - "engines": {
3553 - "node": ">= 4"
2944 + "node_modules/@graphql-tools/optimize": {
2945 + "version": "1.3.1",
2946 + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.3.1.tgz",
2947 + "integrity": "sha512-5j5CZSRGWVobt4bgRRg7zhjPiSimk+/zIuColih8E8DxuFOaJ+t0qu7eZS5KXWBkjcd4BPNuhUPpNlEmHPqVRQ==",
2948 + "dependencies": {
2949 + "tslib": "^2.4.0"
2950 + },
2951 + "peerDependencies": {
2952 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2953 }
2954 },
3556 - "node_modules/@graphql-tools/load/node_modules/is-glob": {
3557 - "version": "4.0.1",
3558 - "license": "MIT",
2955 + "node_modules/@graphql-tools/relay-operation-optimizer": {
2956 + "version": "6.5.6",
2957 + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.6.tgz",
2958 + "integrity": "sha512-2KjaWYxD/NC6KtckbDEAbN46QO+74d1SBaZQ26qQjWhyoAjon12xlMW4HWxHEN0d0xuz0cnOVUVc+t4wVXePUg==",
2959 "dependencies": {
3560 - "is-extglob": "^2.1.1"
2960 + "@ardatan/relay-compiler": "12.0.0",
2961 + "@graphql-tools/utils": "8.12.0",
2962 + "tslib": "^2.4.0"
2963 },
3562 - "engines": {
3563 - "node": ">=0.10.0"
2964 + "peerDependencies": {
2965 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2966 }
2967 },
3566 - "node_modules/@graphql-tools/load/node_modules/tslib": {
3567 - "version": "2.2.0",
3568 - "license": "0BSD"
3569 - },
3570 - "node_modules/@graphql-tools/merge": {
3571 - "version": "6.2.14",
3572 - "license": "MIT",
2968 + "node_modules/@graphql-tools/schema": {
2969 + "version": "9.0.4",
2970 + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.4.tgz",
2971 + "integrity": "sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==",
2972 "dependencies": {
3574 - "@graphql-tools/schema": "^7.0.0",
3575 - "@graphql-tools/utils": "^7.7.0",
3576 - "tslib": "~2.2.0"
2973 + "@graphql-tools/merge": "8.3.6",
2974 + "@graphql-tools/utils": "8.12.0",
2975 + "tslib": "^2.4.0",
2976 + "value-or-promise": "1.0.11"
2977 },
2978 "peerDependencies": {
3579 - "graphql": "^14.0.0 || ^15.0.0"
2979 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2980 }
2981 },
3582 - "node_modules/@graphql-tools/merge/node_modules/tslib": {
3583 - "version": "2.2.0",
3584 - "license": "0BSD"
3585 - },
3586 - "node_modules/@graphql-tools/schema": {
3587 - "version": "7.1.5",
3588 - "license": "MIT",
2982 + "node_modules/@graphql-tools/utils": {
2983 + "version": "8.12.0",
2984 + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz",
2985 + "integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==",
2986 "dependencies": {
3590 - "@graphql-tools/utils": "^7.1.2",
3591 - "tslib": "~2.2.0",
3592 - "value-or-promise": "1.0.6"
2987 + "tslib": "^2.4.0"
2988 },
2989 "peerDependencies": {
3595 - "graphql": "^14.0.0 || ^15.0.0"
2990 + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
2991 }
2992 },
3598 - "node_modules/@graphql-tools/schema/node_modules/tslib": {
3599 - "version": "2.2.0",
3600 - "license": "0BSD"
2993 + "node_modules/@hapi/hoek": {
2994 + "version": "9.3.0",
2995 + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
2996 + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
2997 },
3602 - "node_modules/@graphql-tools/url-loader": {
3603 - "version": "6.10.1",
3604 - "license": "MIT",
2998 + "node_modules/@hapi/topo": {
2999 + "version": "5.1.0",
3000 + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
3001 + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
3002 "dependencies": {
3606 - "@graphql-tools/delegate": "^7.0.1",
3607 - "@graphql-tools/utils": "^7.9.0",
3608 - "@graphql-tools/wrap": "^7.0.4",
3609 - "@microsoft/fetch-event-source": "2.0.1",
3610 - "@types/websocket": "1.0.2",
3611 - "abort-controller": "3.0.0",
3612 - "cross-fetch": "3.1.4",
3613 - "extract-files": "9.0.0",
3614 - "form-data": "4.0.0",
3615 - "graphql-ws": "^4.4.1",
3616 - "is-promise": "4.0.0",
3617 - "isomorphic-ws": "4.0.1",
3618 - "lodash": "4.17.21",
3619 - "meros": "1.1.4",
3620 - "subscriptions-transport-ws": "^0.9.18",
3621 - "sync-fetch": "0.3.0",
3622 - "tslib": "~2.2.0",
3623 - "valid-url": "1.0.9",
3624 - "ws": "7.4.5"
3625 - },
3626 - "peerDependencies": {
3627 - "graphql": "^14.0.0 || ^15.0.0"
3628 - }
3629 - },
3630 - "node_modules/@graphql-tools/url-loader/node_modules/form-data": {
3631 - "version": "4.0.0",
3632 - "license": "MIT",
3003 + "@hapi/hoek": "^9.0.0"
3004 + }
3005 + },
3006 + "node_modules/@humanwhocodes/config-array": {
3007 + "version": "0.10.7",
3008 + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
3009 + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
3010 + "dev": true,
3011 + "peer": true,
3012 "dependencies": {
3634 - "asynckit": "^0.4.0",
3635 - "combined-stream": "^1.0.8",
3636 - "mime-types": "^2.1.12"
3013 + "@humanwhocodes/object-schema": "^1.2.1",
3014 + "debug": "^4.1.1",
3015 + "minimatch": "^3.0.4"
3016 },
3017 "engines": {
3639 - "node": ">= 6"
3018 + "node": ">=10.10.0"
3019 }
3020 },
3642 - "node_modules/@graphql-tools/url-loader/node_modules/tslib": {
3643 - "version": "2.2.0",
3644 - "license": "0BSD"
3645 - },
3646 - "node_modules/@graphql-tools/url-loader/node_modules/ws": {
3647 - "version": "7.4.5",
3648 - "license": "MIT",
3649 - "engines": {
3650 - "node": ">=8.3.0"
3651 - },
3652 - "peerDependencies": {
3653 - "bufferutil": "^4.0.1",
3654 - "utf-8-validate": "^5.0.2"
3655 - },
3656 - "peerDependenciesMeta": {
3657 - "bufferutil": {
3658 - "optional": true
3659 - },
3660 - "utf-8-validate": {
3661 - "optional": true
3662 - }
3663 - }
3664 - },
3665 - "node_modules/@graphql-tools/utils": {
3666 - "version": "7.10.0",
3667 - "license": "MIT",
3668 - "dependencies": {
3669 - "@ardatan/aggregate-error": "0.0.6",
3670 - "camel-case": "4.1.2",
3671 - "tslib": "~2.2.0"
3672 - },
3673 - "peerDependencies": {
3674 - "graphql": "^14.0.0 || ^15.0.0"
3675 - }
3676 - },
3677 - "node_modules/@graphql-tools/utils/node_modules/tslib": {
3678 - "version": "2.2.0",
3679 - "license": "0BSD"
3680 - },
3681 - "node_modules/@graphql-tools/wrap": {
3682 - "version": "7.0.8",
3683 - "license": "MIT",
3684 - "dependencies": {
3685 - "@graphql-tools/delegate": "^7.1.5",
3686 - "@graphql-tools/schema": "^7.1.5",
3687 - "@graphql-tools/utils": "^7.8.1",
3688 - "tslib": "~2.2.0",
3689 - "value-or-promise": "1.0.6"
3690 - },
3691 - "peerDependencies": {
3692 - "graphql": "^14.0.0 || ^15.0.0"
3693 - }
3694 - },
3695 - "node_modules/@graphql-tools/wrap/node_modules/tslib": {
3696 - "version": "2.2.0",
3697 - "license": "0BSD"
3698 - },
3699 - "node_modules/@hapi/address": {
3700 - "version": "2.1.4",
3701 - "license": "BSD-3-Clause"
3702 - },
3703 - "node_modules/@hapi/bourne": {
3704 - "version": "1.3.2",
3705 - "license": "BSD-3-Clause"
3706 - },
3707 - "node_modules/@hapi/hoek": {
3708 - "version": "8.5.1",
3709 - "license": "BSD-3-Clause"
3710 - },
3711 - "node_modules/@hapi/joi": {
3712 - "version": "15.1.1",
3713 - "license": "BSD-3-Clause",
3714 - "dependencies": {
3715 - "@hapi/address": "2.x.x",
3716 - "@hapi/bourne": "1.x.x",
3717 - "@hapi/hoek": "8.x.x",
3718 - "@hapi/topo": "3.x.x"
3719 - }
3720 - },
3721 - "node_modules/@hapi/topo": {
3722 - "version": "3.1.6",
3723 - "license": "BSD-3-Clause",
3724 - "dependencies": {
3725 - "@hapi/hoek": "^8.3.0"
3726 - }
3727 - },
3728 - "node_modules/@humanwhocodes/config-array": {
3729 - "version": "0.10.7",
3730 - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
3731 - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
3021 + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
3022 + "version": "1.1.11",
3023 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3024 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3025 "dev": true,
3026 "peer": true,
3027 "dependencies": {
3735 - "@humanwhocodes/object-schema": "^1.2.1",
3736 - "debug": "^4.1.1",
3737 - "minimatch": "^3.0.4"
3738 - },
3739 - "engines": {
3740 - "node": ">=10.10.0"
3028 + "balanced-match": "^1.0.0",
3029 + "concat-map": "0.0.1"
3030 }
3031 },
3032 "node_modules/@humanwhocodes/config-array/node_modules/debug": {
@@ -3758,22 +3047,17 @@
3047 }
3048 }
3049 },
3761 - "node_modules/@humanwhocodes/config-array/node_modules/ms": {
3762 - "version": "2.1.2",
3763 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3764 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3765 - "dev": true,
3766 - "peer": true
3767 - },
3768 - "node_modules/@humanwhocodes/gitignore-to-minimatch": {
3769 - "version": "1.0.2",
3770 - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
3771 - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
3050 + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
3051 + "version": "3.1.2",
3052 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3053 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3054 "dev": true,
3055 "peer": true,
3774 - "funding": {
3775 - "type": "github",
3776 - "url": "https://github.com/sponsors/nzakas"
3056 + "dependencies": {
3057 + "brace-expansion": "^1.1.7"
3058 + },
3059 + "engines": {
3060 + "node": "*"
3061 }
3062 },
3063 "node_modules/@humanwhocodes/module-importer": {
@@ -3793,20 +3077,21 @@
3077 "node_modules/@humanwhocodes/object-schema": {
3078 "version": "1.2.1",
3079 "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
3796 - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
3797 - "dev": true,
3798 - "peer": true
3080 + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
3081 },
3082 "node_modules/@hutson/parse-repository-url": {
3083 "version": "3.0.2",
3802 - "license": "Apache-2.0",
3084 + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
3085 + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
3086 "engines": {
3087 "node": ">=6.9.0"
3088 }
3089 },
3090 "node_modules/@iarna/toml": {
3091 "version": "2.2.5",
3809 - "license": "ISC"
3092 + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
3093 + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
3094 + "dev": true
3095 },
3096 "node_modules/@isaacs/string-locale-compare": {
3097 "version": "1.1.0",
@@ -3830,917 +3115,1033 @@
3115 "node": ">=8"
3116 }
3117 },
3833 - "node_modules/@istanbuljs/schema": {
3834 - "version": "0.1.3",
3835 - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
3836 - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
3118 + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
3119 + "version": "1.0.10",
3120 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
3121 + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
3122 + "dev": true,
3123 + "dependencies": {
3124 + "sprintf-js": "~1.0.2"
3125 + }
3126 + },
3127 + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
3128 + "version": "5.3.1",
3129 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
3130 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
3131 "dev": true,
3132 "engines": {
3839 - "node": ">=8"
3133 + "node": ">=6"
3134 }
3135 },
3842 - "node_modules/@jest/console": {
3843 - "version": "24.9.0",
3844 - "license": "MIT",
3136 + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
3137 + "version": "4.1.0",
3138 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
3139 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
3140 + "dev": true,
3141 "dependencies": {
3846 - "@jest/source-map": "^24.9.0",
3847 - "chalk": "^2.0.1",
3848 - "slash": "^2.0.0"
3142 + "locate-path": "^5.0.0",
3143 + "path-exists": "^4.0.0"
3144 },
3145 "engines": {
3851 - "node": ">= 6"
3146 + "node": ">=8"
3147 }
3148 },
3854 - "node_modules/@jest/console/node_modules/ansi-styles": {
3855 - "version": "3.2.1",
3856 - "license": "MIT",
3149 + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
3150 + "version": "3.14.1",
3151 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
3152 + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
3153 + "dev": true,
3154 "dependencies": {
3858 - "color-convert": "^1.9.0"
3155 + "argparse": "^1.0.7",
3156 + "esprima": "^4.0.0"
3157 + },
3158 + "bin": {
3159 + "js-yaml": "bin/js-yaml.js"
3160 + }
3161 + },
3162 + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
3163 + "version": "5.0.0",
3164 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
3165 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
3166 + "dev": true,
3167 + "dependencies": {
3168 + "p-locate": "^4.1.0"
3169 },
3170 "engines": {
3861 - "node": ">=4"
3171 + "node": ">=8"
3172 }
3173 },
3864 - "node_modules/@jest/console/node_modules/chalk": {
3865 - "version": "2.4.2",
3866 - "license": "MIT",
3174 + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
3175 + "version": "2.3.0",
3176 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
3177 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
3178 + "dev": true,
3179 "dependencies": {
3868 - "ansi-styles": "^3.2.1",
3869 - "escape-string-regexp": "^1.0.5",
3870 - "supports-color": "^5.3.0"
3180 + "p-try": "^2.0.0"
3181 },
3182 "engines": {
3873 - "node": ">=4"
3183 + "node": ">=6"
3184 + },
3185 + "funding": {
3186 + "url": "https://github.com/sponsors/sindresorhus"
3187 }
3188 },
3876 - "node_modules/@jest/console/node_modules/color-convert": {
3877 - "version": "1.9.3",
3878 - "license": "MIT",
3189 + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
3190 + "version": "4.1.0",
3191 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
3192 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
3193 + "dev": true,
3194 "dependencies": {
3880 - "color-name": "1.1.3"
3195 + "p-limit": "^2.2.0"
3196 + },
3197 + "engines": {
3198 + "node": ">=8"
3199 }
3200 },
3883 - "node_modules/@jest/console/node_modules/color-name": {
3884 - "version": "1.1.3",
3885 - "license": "MIT"
3201 + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": {
3202 + "version": "1.0.3",
3203 + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3204 + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
3205 + "dev": true
3206 },
3887 - "node_modules/@jest/console/node_modules/escape-string-regexp": {
3888 - "version": "1.0.5",
3889 - "license": "MIT",
3207 + "node_modules/@istanbuljs/schema": {
3208 + "version": "0.1.3",
3209 + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
3210 + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
3211 + "dev": true,
3212 "engines": {
3891 - "node": ">=0.8.0"
3213 + "node": ">=8"
3214 }
3215 },
3894 - "node_modules/@jest/console/node_modules/has-flag": {
3895 - "version": "3.0.0",
3896 - "license": "MIT",
3216 + "node_modules/@jest/environment": {
3217 + "version": "29.1.2",
3218 + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.1.2.tgz",
3219 + "integrity": "sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ==",
3220 + "dev": true,
3221 + "dependencies": {
3222 + "@jest/fake-timers": "^29.1.2",
3223 + "@jest/types": "^29.1.2",
3224 + "@types/node": "*",
3225 + "jest-mock": "^29.1.2"
3226 + },
3227 "engines": {
3898 - "node": ">=4"
3228 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3229 }
3230 },
3901 - "node_modules/@jest/console/node_modules/slash": {
3902 - "version": "2.0.0",
3903 - "license": "MIT",
3231 + "node_modules/@jest/environment/node_modules/@jest/types": {
3232 + "version": "29.1.2",
3233 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
3234 + "integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
3235 + "dev": true,
3236 + "dependencies": {
3237 + "@jest/schemas": "^29.0.0",
3238 + "@types/istanbul-lib-coverage": "^2.0.0",
3239 + "@types/istanbul-reports": "^3.0.0",
3240 + "@types/node": "*",
3241 + "@types/yargs": "^17.0.8",
3242 + "chalk": "^4.0.0"
3243 + },
3244 "engines": {
3905 - "node": ">=6"
3245 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3246 }
3247 },
3908 - "node_modules/@jest/console/node_modules/supports-color": {
3909 - "version": "5.5.0",
3910 - "license": "MIT",
3248 + "node_modules/@jest/environment/node_modules/@types/istanbul-reports": {
3249 + "version": "3.0.1",
3250 + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3251 + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3252 + "dev": true,
3253 "dependencies": {
3912 - "has-flag": "^3.0.0"
3254 + "@types/istanbul-lib-report": "*"
3255 + }
3256 + },
3257 + "node_modules/@jest/environment/node_modules/@types/yargs": {
3258 + "version": "17.0.13",
3259 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz",
3260 + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==",
3261 + "dev": true,
3262 + "dependencies": {
3263 + "@types/yargs-parser": "*"
3264 + }
3265 + },
3266 + "node_modules/@jest/expect": {
3267 + "version": "29.1.2",
3268 + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.1.2.tgz",
3269 + "integrity": "sha512-FXw/UmaZsyfRyvZw3M6POgSNqwmuOXJuzdNiMWW9LCYo0GRoRDhg+R5iq5higmRTHQY7hx32+j7WHwinRmoILQ==",
3270 + "dev": true,
3271 + "dependencies": {
3272 + "expect": "^29.1.2",
3273 + "jest-snapshot": "^29.1.2"
3274 },
3275 "engines": {
3915 - "node": ">=4"
3276 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3277 }
3278 },
3918 - "node_modules/@jest/core": {
3919 - "version": "24.9.0",
3920 - "license": "MIT",
3279 + "node_modules/@jest/expect-utils": {
3280 + "version": "29.1.2",
3281 + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.1.2.tgz",
3282 + "integrity": "sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg==",
3283 + "dev": true,
3284 "dependencies": {
3922 - "@jest/console": "^24.7.1",
3923 - "@jest/reporters": "^24.9.0",
3924 - "@jest/test-result": "^24.9.0",
3925 - "@jest/transform": "^24.9.0",
3926 - "@jest/types": "^24.9.0",
3927 - "ansi-escapes": "^3.0.0",
3928 - "chalk": "^2.0.1",
3929 - "exit": "^0.1.2",
3930 - "graceful-fs": "^4.1.15",
3931 - "jest-changed-files": "^24.9.0",
3932 - "jest-config": "^24.9.0",
3933 - "jest-haste-map": "^24.9.0",
3934 - "jest-message-util": "^24.9.0",
3935 - "jest-regex-util": "^24.3.0",
3936 - "jest-resolve": "^24.9.0",
3937 - "jest-resolve-dependencies": "^24.9.0",
3938 - "jest-runner": "^24.9.0",
3939 - "jest-runtime": "^24.9.0",
3940 - "jest-snapshot": "^24.9.0",
3941 - "jest-util": "^24.9.0",
3942 - "jest-validate": "^24.9.0",
3943 - "jest-watcher": "^24.9.0",
3944 - "micromatch": "^3.1.10",
3945 - "p-each-series": "^1.0.0",
3946 - "realpath-native": "^1.1.0",
3947 - "rimraf": "^2.5.4",
3948 - "slash": "^2.0.0",
3949 - "strip-ansi": "^5.0.0"
3285 + "jest-get-type": "^29.0.0"
3286 },
3287 "engines": {
3952 - "node": ">= 6"
3288 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3289 }
3290 },
3955 - "node_modules/@jest/core/node_modules/ansi-escapes": {
3956 - "version": "3.2.0",
3957 - "license": "MIT",
3291 + "node_modules/@jest/expect-utils/node_modules/jest-get-type": {
3292 + "version": "29.0.0",
3293 + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
3294 + "integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
3295 + "dev": true,
3296 "engines": {
3959 - "node": ">=4"
3297 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3298 }
3299 },
3962 - "node_modules/@jest/core/node_modules/ansi-styles": {
3963 - "version": "3.2.1",
3964 - "license": "MIT",
3300 + "node_modules/@jest/expect/node_modules/@jest/transform": {
3301 + "version": "29.1.2",
3302 + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.1.2.tgz",
3303 + "integrity": "sha512-2uaUuVHTitmkx1tHF+eBjb4p7UuzBG7SXIaA/hNIkaMP6K+gXYGxP38ZcrofzqN0HeZ7A90oqsOa97WU7WZkSw==",
3304 + "dev": true,
3305 "dependencies": {
3966 - "color-convert": "^1.9.0"
3306 + "@babel/core": "^7.11.6",
3307 + "@jest/types": "^29.1.2",
3308 + "@jridgewell/trace-mapping": "^0.3.15",
3309 + "babel-plugin-istanbul": "^6.1.1",
3310 + "chalk": "^4.0.0",
3311 + "convert-source-map": "^1.4.0",
3312 + "fast-json-stable-stringify": "^2.1.0",
3313 + "graceful-fs": "^4.2.9",
3314 + "jest-haste-map": "^29.1.2",
3315 + "jest-regex-util": "^29.0.0",
3316 + "jest-util": "^29.1.2",
3317 + "micromatch": "^4.0.4",
3318 + "pirates": "^4.0.4",
3319 + "slash": "^3.0.0",
3320 + "write-file-atomic": "^4.0.1"
3321 },
3322 "engines": {
3969 - "node": ">=4"
3323 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3324 }
3325 },
3972 - "node_modules/@jest/core/node_modules/braces": {
3973 - "version": "2.3.2",
3974 - "license": "MIT",
3326 + "node_modules/@jest/expect/node_modules/@jest/types": {
3327 + "version": "29.1.2",
3328 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
3329 + "integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
3330 + "dev": true,
3331 "dependencies": {
3976 - "arr-flatten": "^1.1.0",
3977 - "array-unique": "^0.3.2",
3978 - "extend-shallow": "^2.0.1",
3979 - "fill-range": "^4.0.0",
3980 - "isobject": "^3.0.1",
3981 - "repeat-element": "^1.1.2",
3982 - "snapdragon": "^0.8.1",
3983 - "snapdragon-node": "^2.0.1",
3984 - "split-string": "^3.0.2",
3985 - "to-regex": "^3.0.1"
3332 + "@jest/schemas": "^29.0.0",
3333 + "@types/istanbul-lib-coverage": "^2.0.0",
3334 + "@types/istanbul-reports": "^3.0.0",
3335 + "@types/node": "*",
3336 + "@types/yargs": "^17.0.8",
3337 + "chalk": "^4.0.0"
3338 },
3339 "engines": {
3988 - "node": ">=0.10.0"
3340 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3341 }
3342 },
3991 - "node_modules/@jest/core/node_modules/chalk": {
3992 - "version": "2.4.2",
3993 - "license": "MIT",
3343 + "node_modules/@jest/expect/node_modules/@types/istanbul-reports": {
3344 + "version": "3.0.1",
3345 + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3346 + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3347 + "dev": true,
3348 "dependencies": {
3995 - "ansi-styles": "^3.2.1",
3996 - "escape-string-regexp": "^1.0.5",
3997 - "supports-color": "^5.3.0"
3998 - },
3999 - "engines": {
4000 - "node": ">=4"
3349 + "@types/istanbul-lib-report": "*"
3350 }
3351 },
4003 - "node_modules/@jest/core/node_modules/color-convert": {
4004 - "version": "1.9.3",
4005 - "license": "MIT",
3352 + "node_modules/@jest/expect/node_modules/@types/yargs": {
3353 + "version": "17.0.13",
3354 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz",
3355 + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==",
3356 + "dev": true,
3357 "dependencies": {
4007 - "color-name": "1.1.3"
3358 + "@types/yargs-parser": "*"
3359 }
3360 },
4010 - "node_modules/@jest/core/node_modules/color-name": {
4011 - "version": "1.1.3",
4012 - "license": "MIT"
4013 - },
4014 - "node_modules/@jest/core/node_modules/escape-string-regexp": {
4015 - "version": "1.0.5",
4016 - "license": "MIT",
3361 + "node_modules/@jest/expect/node_modules/ansi-styles": {
3362 + "version": "5.2.0",
3363 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
3364 + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
3365 + "dev": true,
3366 "engines": {
4018 - "node": ">=0.8.0"
3367 + "node": ">=10"
3368 + },
3369 + "funding": {
3370 + "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3371 }
3372 },
4021 - "node_modules/@jest/core/node_modules/fill-range": {
4022 - "version": "4.0.0",
4023 - "license": "MIT",
3373 + "node_modules/@jest/expect/node_modules/babel-plugin-istanbul": {
3374 + "version": "6.1.1",
3375 + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
3376 + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
3377 + "dev": true,
3378 "dependencies": {
4025 - "extend-shallow": "^2.0.1",
4026 - "is-number": "^3.0.0",
4027 - "repeat-string": "^1.6.1",
4028 - "to-regex-range": "^2.1.0"
3379 + "@babel/helper-plugin-utils": "^7.0.0",
3380 + "@istanbuljs/load-nyc-config": "^1.0.0",
3381 + "@istanbuljs/schema": "^0.1.2",
3382 + "istanbul-lib-instrument": "^5.0.4",
3383 + "test-exclude": "^6.0.0"
3384 },
3385 "engines": {
4031 - "node": ">=0.10.0"
3386 + "node": ">=8"
3387 }
3388 },
4034 - "node_modules/@jest/core/node_modules/has-flag": {
4035 - "version": "3.0.0",
4036 - "license": "MIT",
4037 - "engines": {
4038 - "node": ">=4"
3389 + "node_modules/@jest/expect/node_modules/brace-expansion": {
3390 + "version": "1.1.11",
3391 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3392 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3393 + "dev": true,
3394 + "dependencies": {
3395 + "balanced-match": "^1.0.0",
3396 + "concat-map": "0.0.1"
3397 }
3398 },
4041 - "node_modules/@jest/core/node_modules/is-buffer": {
4042 - "version": "1.1.6",
4043 - "license": "MIT"
3399 + "node_modules/@jest/expect/node_modules/diff-sequences": {
3400 + "version": "29.0.0",
3401 + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz",
3402 + "integrity": "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==",
3403 + "dev": true,
3404 + "engines": {
3405 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3406 + }
3407 },
4045 - "node_modules/@jest/core/node_modules/is-extendable": {
4046 - "version": "1.0.1",
4047 - "license": "MIT",
3408 + "node_modules/@jest/expect/node_modules/expect": {
3409 + "version": "29.1.2",
3410 + "resolved": "https://registry.npmjs.org/expect/-/expect-29.1.2.tgz",
3411 + "integrity": "sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw==",
3412 + "dev": true,
3413 "dependencies": {
4049 - "is-plain-object": "^2.0.4"
3414 + "@jest/expect-utils": "^29.1.2",
3415 + "jest-get-type": "^29.0.0",
3416 + "jest-matcher-utils": "^29.1.2",
3417 + "jest-message-util": "^29.1.2",
3418 + "jest-util": "^29.1.2"
3419 },
3420 "engines": {
4052 - "node": ">=0.10.0"
3421 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3422 }
3423 },
4055 - "node_modules/@jest/core/node_modules/is-number": {
4056 - "version": "3.0.0",
4057 - "license": "MIT",
4058 - "dependencies": {
4059 - "kind-of": "^3.0.2"
4060 - },
3424 + "node_modules/@jest/expect/node_modules/istanbul-lib-coverage": {
3425 + "version": "3.2.0",
3426 + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
3427 + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
3428 + "dev": true,
3429 "engines": {
4062 - "node": ">=0.10.0"
3430 + "node": ">=8"
3431 }
3432 },
4065 - "node_modules/@jest/core/node_modules/is-number/node_modules/kind-of": {
4066 - "version": "3.2.2",
4067 - "license": "MIT",
3433 + "node_modules/@jest/expect/node_modules/istanbul-lib-instrument": {
3434 + "version": "5.2.1",
3435 + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
3436 + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
3437 + "dev": true,
3438 "dependencies": {
4069 - "is-buffer": "^1.1.5"
3439 + "@babel/core": "^7.12.3",
3440 + "@babel/parser": "^7.14.7",
3441 + "@istanbuljs/schema": "^0.1.2",
3442 + "istanbul-lib-coverage": "^3.2.0",
3443 + "semver": "^6.3.0"
3444 },
3445 "engines": {
4072 - "node": ">=0.10.0"
3446 + "node": ">=8"
3447 }
3448 },
4075 - "node_modules/@jest/core/node_modules/is-plain-object": {
4076 - "version": "2.0.4",
4077 - "license": "MIT",
3449 + "node_modules/@jest/expect/node_modules/istanbul-lib-instrument/node_modules/semver": {
3450 + "version": "6.3.0",
3451 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3452 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3453 + "dev": true,
3454 + "bin": {
3455 + "semver": "bin/semver.js"
3456 + }
3457 + },
3458 + "node_modules/@jest/expect/node_modules/jest-diff": {
3459 + "version": "29.1.2",
3460 + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.1.2.tgz",
3461 + "integrity": "sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ==",
3462 + "dev": true,
3463 "dependencies": {
4079 - "isobject": "^3.0.1"
3464 + "chalk": "^4.0.0",
3465 + "diff-sequences": "^29.0.0",
3466 + "jest-get-type": "^29.0.0",
3467 + "pretty-format": "^29.1.2"
3468 },
3469 "engines": {
4082 - "node": ">=0.10.0"
3470 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3471 }
3472 },
4085 - "node_modules/@jest/core/node_modules/micromatch": {
4086 - "version": "3.1.10",
4087 - "license": "MIT",
4088 - "dependencies": {
4089 - "arr-diff": "^4.0.0",
4090 - "array-unique": "^0.3.2",
4091 - "braces": "^2.3.1",
4092 - "define-property": "^2.0.2",
4093 - "extend-shallow": "^3.0.2",
4094 - "extglob": "^2.0.4",
4095 - "fragment-cache": "^0.2.1",
4096 - "kind-of": "^6.0.2",
4097 - "nanomatch": "^1.2.9",
4098 - "object.pick": "^1.3.0",
4099 - "regex-not": "^1.0.0",
4100 - "snapdragon": "^0.8.1",
4101 - "to-regex": "^3.0.2"
4102 - },
3473 + "node_modules/@jest/expect/node_modules/jest-get-type": {
3474 + "version": "29.0.0",
3475 + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
3476 + "integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
3477 + "dev": true,
3478 "engines": {
4104 - "node": ">=0.10.0"
3479 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3480 }
3481 },
4107 - "node_modules/@jest/core/node_modules/micromatch/node_modules/extend-shallow": {
4108 - "version": "3.0.2",
4109 - "license": "MIT",
3482 + "node_modules/@jest/expect/node_modules/jest-haste-map": {
3483 + "version": "29.1.2",
3484 + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.1.2.tgz",
3485 + "integrity": "sha512-xSjbY8/BF11Jh3hGSPfYTa/qBFrm3TPM7WU8pU93m2gqzORVLkHFWvuZmFsTEBPRKndfewXhMOuzJNHyJIZGsw==",
3486 + "dev": true,
3487 "dependencies": {
4111 - "assign-symbols": "^1.0.0",
4112 - "is-extendable": "^1.0.1"
3488 + "@jest/types": "^29.1.2",
3489 + "@types/graceful-fs": "^4.1.3",
3490 + "@types/node": "*",
3491 + "anymatch": "^3.0.3",
3492 + "fb-watchman": "^2.0.0",
3493 + "graceful-fs": "^4.2.9",
3494 + "jest-regex-util": "^29.0.0",
3495 + "jest-util": "^29.1.2",
3496 + "jest-worker": "^29.1.2",
3497 + "micromatch": "^4.0.4",
3498 + "walker": "^1.0.8"
3499 },
3500 "engines": {
4115 - "node": ">=0.10.0"
3501 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3502 + },
3503 + "optionalDependencies": {
3504 + "fsevents": "^2.3.2"
3505 }
3506 },
4118 - "node_modules/@jest/core/node_modules/rimraf": {
4119 - "version": "2.7.1",
4120 - "license": "ISC",
3507 + "node_modules/@jest/expect/node_modules/jest-matcher-utils": {
3508 + "version": "29.1.2",
3509 + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz",
3510 + "integrity": "sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw==",
3511 + "dev": true,
3512 "dependencies": {
4122 - "glob": "^7.1.3"
3513 + "chalk": "^4.0.0",
3514 + "jest-diff": "^29.1.2",
3515 + "jest-get-type": "^29.0.0",
3516 + "pretty-format": "^29.1.2"
3517 },
4124 - "bin": {
4125 - "rimraf": "bin.js"
3518 + "engines": {
3519 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3520 }
3521 },
4128 - "node_modules/@jest/core/node_modules/slash": {
4129 - "version": "2.0.0",
4130 - "license": "MIT",
3522 + "node_modules/@jest/expect/node_modules/jest-regex-util": {
3523 + "version": "29.0.0",
3524 + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.0.0.tgz",
3525 + "integrity": "sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==",
3526 + "dev": true,
3527 "engines": {
4132 - "node": ">=6"
3528 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3529 }
3530 },
4135 - "node_modules/@jest/core/node_modules/supports-color": {
4136 - "version": "5.5.0",
4137 - "license": "MIT",
3531 + "node_modules/@jest/expect/node_modules/jest-snapshot": {
3532 + "version": "29.1.2",
3533 + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.1.2.tgz",
3534 + "integrity": "sha512-rYFomGpVMdBlfwTYxkUp3sjD6usptvZcONFYNqVlaz4EpHPnDvlWjvmOQ9OCSNKqYZqLM2aS3wq01tWujLg7gg==",
3535 + "dev": true,
3536 "dependencies": {
4139 - "has-flag": "^3.0.0"
3537 + "@babel/core": "^7.11.6",
3538 + "@babel/generator": "^7.7.2",
3539 + "@babel/plugin-syntax-jsx": "^7.7.2",
3540 + "@babel/plugin-syntax-typescript": "^7.7.2",
3541 + "@babel/traverse": "^7.7.2",
3542 + "@babel/types": "^7.3.3",
3543 + "@jest/expect-utils": "^29.1.2",
3544 + "@jest/transform": "^29.1.2",
3545 + "@jest/types": "^29.1.2",
3546 + "@types/babel__traverse": "^7.0.6",
3547 + "@types/prettier": "^2.1.5",
3548 + "babel-preset-current-node-syntax": "^1.0.0",
3549 + "chalk": "^4.0.0",
3550 + "expect": "^29.1.2",
3551 + "graceful-fs": "^4.2.9",
3552 + "jest-diff": "^29.1.2",
3553 + "jest-get-type": "^29.0.0",
3554 + "jest-haste-map": "^29.1.2",
3555 + "jest-matcher-utils": "^29.1.2",
3556 + "jest-message-util": "^29.1.2",
3557 + "jest-util": "^29.1.2",
3558 + "natural-compare": "^1.4.0",
3559 + "pretty-format": "^29.1.2",
3560 + "semver": "^7.3.5"
3561 },
3562 "engines": {
4142 - "node": ">=4"
3563 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3564 }
3565 },
4145 - "node_modules/@jest/core/node_modules/to-regex-range": {
4146 - "version": "2.1.1",
4147 - "license": "MIT",
3566 + "node_modules/@jest/expect/node_modules/jest-worker": {
3567 + "version": "29.1.2",
3568 + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.1.2.tgz",
3569 + "integrity": "sha512-AdTZJxKjTSPHbXT/AIOjQVmoFx0LHFcVabWu0sxI7PAy7rFf8c0upyvgBKgguVXdM4vY74JdwkyD4hSmpTW8jA==",
3570 + "dev": true,
3571 "dependencies": {
4149 - "is-number": "^3.0.0",
4150 - "repeat-string": "^1.6.1"
3572 + "@types/node": "*",
3573 + "jest-util": "^29.1.2",
3574 + "merge-stream": "^2.0.0",
3575 + "supports-color": "^8.0.0"
3576 },
3577 "engines": {
4153 - "node": ">=0.10.0"
3578 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3579 }
3580 },
4156 - "node_modules/@jest/environment": {
4157 - "version": "24.9.0",
4158 - "license": "MIT",
3581 + "node_modules/@jest/expect/node_modules/minimatch": {
3582 + "version": "3.1.2",
3583 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3584 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3585 + "dev": true,
3586 "dependencies": {
4160 - "@jest/fake-timers": "^24.9.0",
4161 - "@jest/transform": "^24.9.0",
4162 - "@jest/types": "^24.9.0",
4163 - "jest-mock": "^24.9.0"
3587 + "brace-expansion": "^1.1.7"
3588 },
3589 "engines": {
4166 - "node": ">= 6"
3590 + "node": "*"
3591 }
3592 },
4169 - "node_modules/@jest/fake-timers": {
4170 - "version": "24.9.0",
4171 - "license": "MIT",
3593 + "node_modules/@jest/expect/node_modules/pretty-format": {
3594 + "version": "29.1.2",
3595 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
3596 + "integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
3597 + "dev": true,
3598 "dependencies": {
4173 - "@jest/types": "^24.9.0",
4174 - "jest-message-util": "^24.9.0",
4175 - "jest-mock": "^24.9.0"
3599 + "@jest/schemas": "^29.0.0",
3600 + "ansi-styles": "^5.0.0",
3601 + "react-is": "^18.0.0"
3602 },
3603 "engines": {
4178 - "node": ">= 6"
3604 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3605 }
3606 },
4181 - "node_modules/@jest/reporters": {
4182 - "version": "24.9.0",
4183 - "license": "MIT",
3607 + "node_modules/@jest/expect/node_modules/supports-color": {
3608 + "version": "8.1.1",
3609 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
3610 + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
3611 + "dev": true,
3612 "dependencies": {
4185 - "@jest/environment": "^24.9.0",
4186 - "@jest/test-result": "^24.9.0",
4187 - "@jest/transform": "^24.9.0",
4188 - "@jest/types": "^24.9.0",
4189 - "chalk": "^2.0.1",
4190 - "exit": "^0.1.2",
4191 - "glob": "^7.1.2",
4192 - "istanbul-lib-coverage": "^2.0.2",
4193 - "istanbul-lib-instrument": "^3.0.1",
4194 - "istanbul-lib-report": "^2.0.4",
4195 - "istanbul-lib-source-maps": "^3.0.1",
4196 - "istanbul-reports": "^2.2.6",
4197 - "jest-haste-map": "^24.9.0",
4198 - "jest-resolve": "^24.9.0",
4199 - "jest-runtime": "^24.9.0",
4200 - "jest-util": "^24.9.0",
4201 - "jest-worker": "^24.6.0",
4202 - "node-notifier": "^5.4.2",
4203 - "slash": "^2.0.0",
4204 - "source-map": "^0.6.0",
4205 - "string-length": "^2.0.0"
3613 + "has-flag": "^4.0.0"
3614 },
3615 "engines": {
4208 - "node": ">= 6"
3616 + "node": ">=10"
3617 + },
3618 + "funding": {
3619 + "url": "https://github.com/chalk/supports-color?sponsor=1"
3620 }
3621 },
4211 - "node_modules/@jest/reporters/node_modules/ansi-styles": {
4212 - "version": "3.2.1",
4213 - "license": "MIT",
3622 + "node_modules/@jest/expect/node_modules/test-exclude": {
3623 + "version": "6.0.0",
3624 + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
3625 + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
3626 + "dev": true,
3627 "dependencies": {
4215 - "color-convert": "^1.9.0"
3628 + "@istanbuljs/schema": "^0.1.2",
3629 + "glob": "^7.1.4",
3630 + "minimatch": "^3.0.4"
3631 },
3632 "engines": {
4218 - "node": ">=4"
3633 + "node": ">=8"
3634 }
3635 },
4221 - "node_modules/@jest/reporters/node_modules/chalk": {
4222 - "version": "2.4.2",
4223 - "license": "MIT",
3636 + "node_modules/@jest/expect/node_modules/write-file-atomic": {
3637 + "version": "4.0.2",
3638 + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
3639 + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
3640 + "dev": true,
3641 "dependencies": {
4225 - "ansi-styles": "^3.2.1",
4226 - "escape-string-regexp": "^1.0.5",
4227 - "supports-color": "^5.3.0"
3642 + "imurmurhash": "^0.1.4",
3643 + "signal-exit": "^3.0.7"
3644 },
3645 "engines": {
4230 - "node": ">=4"
3646 + "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
3647 }
3648 },
4233 - "node_modules/@jest/reporters/node_modules/color-convert": {
4234 - "version": "1.9.3",
4235 - "license": "MIT",
3649 + "node_modules/@jest/fake-timers": {
3650 + "version": "29.1.2",
3651 + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.1.2.tgz",
3652 + "integrity": "sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q==",
3653 + "dev": true,
3654 "dependencies": {
4237 - "color-name": "1.1.3"
4238 - }
4239 - },
4240 - "node_modules/@jest/reporters/node_modules/color-name": {
4241 - "version": "1.1.3",
4242 - "license": "MIT"
4243 - },
4244 - "node_modules/@jest/reporters/node_modules/escape-string-regexp": {
4245 - "version": "1.0.5",
4246 - "license": "MIT",
3655 + "@jest/types": "^29.1.2",
3656 + "@sinonjs/fake-timers": "^9.1.2",
3657 + "@types/node": "*",
3658 + "jest-message-util": "^29.1.2",
3659 + "jest-mock": "^29.1.2",
3660 + "jest-util": "^29.1.2"
3661 + },
3662 "engines": {
4248 - "node": ">=0.8.0"
3663 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3664 }
3665 },
4251 - "node_modules/@jest/reporters/node_modules/has-flag": {
4252 - "version": "3.0.0",
4253 - "license": "MIT",
3666 + "node_modules/@jest/fake-timers/node_modules/@jest/types": {
3667 + "version": "29.1.2",
3668 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
3669 + "integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
3670 + "dev": true,
3671 + "dependencies": {
3672 + "@jest/schemas": "^29.0.0",
3673 + "@types/istanbul-lib-coverage": "^2.0.0",
3674 + "@types/istanbul-reports": "^3.0.0",
3675 + "@types/node": "*",
3676 + "@types/yargs": "^17.0.8",
3677 + "chalk": "^4.0.0"
3678 + },
3679 "engines": {
4255 - "node": ">=4"
3680 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3681 }
3682 },
4258 - "node_modules/@jest/reporters/node_modules/slash": {
4259 - "version": "2.0.0",
4260 - "license": "MIT",
4261 - "engines": {
4262 - "node": ">=6"
3683 + "node_modules/@jest/fake-timers/node_modules/@types/istanbul-reports": {
3684 + "version": "3.0.1",
3685 + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3686 + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3687 + "dev": true,
3688 + "dependencies": {
3689 + "@types/istanbul-lib-report": "*"
3690 }
3691 },
4265 - "node_modules/@jest/reporters/node_modules/source-map": {
4266 - "version": "0.6.1",
4267 - "license": "BSD-3-Clause",
4268 - "engines": {
4269 - "node": ">=0.10.0"
3692 + "node_modules/@jest/fake-timers/node_modules/@types/yargs": {
3693 + "version": "17.0.13",
3694 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz",
3695 + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==",
3696 + "dev": true,
3697 + "dependencies": {
3698 + "@types/yargs-parser": "*"
3699 }
3700 },
4272 - "node_modules/@jest/reporters/node_modules/supports-color": {
4273 - "version": "5.5.0",
4274 - "license": "MIT",
3701 + "node_modules/@jest/globals": {
3702 + "version": "29.1.2",
3703 + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.1.2.tgz",
3704 + "integrity": "sha512-uMgfERpJYoQmykAd0ffyMq8wignN4SvLUG6orJQRe9WAlTRc9cdpCaE/29qurXixYJVZWUqIBXhSk8v5xN1V9g==",
3705 + "dev": true,
3706 "dependencies": {
4276 - "has-flag": "^3.0.0"
3707 + "@jest/environment": "^29.1.2",
3708 + "@jest/expect": "^29.1.2",
3709 + "@jest/types": "^29.1.2",
3710 + "jest-mock": "^29.1.2"
3711 },
3712 "engines": {
4279 - "node": ">=4"
3713 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3714 }
3715 },
4282 - "node_modules/@jest/source-map": {
4283 - "version": "24.9.0",
4284 - "license": "MIT",
3716 + "node_modules/@jest/globals/node_modules/@jest/types": {
3717 + "version": "29.1.2",
3718 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
3719 + "integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
3720 + "dev": true,
3721 "dependencies": {
4286 - "callsites": "^3.0.0",
4287 - "graceful-fs": "^4.1.15",
4288 - "source-map": "^0.6.0"
3722 + "@jest/schemas": "^29.0.0",
3723 + "@types/istanbul-lib-coverage": "^2.0.0",
3724 + "@types/istanbul-reports": "^3.0.0",
3725 + "@types/node": "*",
3726 + "@types/yargs": "^17.0.8",
3727 + "chalk": "^4.0.0"
3728 },
3729 "engines": {
4291 - "node": ">= 6"
3730 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3731 }
3732 },
4294 - "node_modules/@jest/source-map/node_modules/source-map": {
4295 - "version": "0.6.1",
4296 - "license": "BSD-3-Clause",
4297 - "engines": {
4298 - "node": ">=0.10.0"
3733 + "node_modules/@jest/globals/node_modules/@types/istanbul-reports": {
3734 + "version": "3.0.1",
3735 + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3736 + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3737 + "dev": true,
3738 + "dependencies": {
3739 + "@types/istanbul-lib-report": "*"
3740 }
3741 },
4301 - "node_modules/@jest/test-result": {
4302 - "version": "24.9.0",
4303 - "license": "MIT",
3742 + "node_modules/@jest/globals/node_modules/@types/yargs": {
3743 + "version": "17.0.13",
3744 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz",
3745 + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==",
3746 + "dev": true,
3747 "dependencies": {
4305 - "@jest/console": "^24.9.0",
4306 - "@jest/types": "^24.9.0",
4307 - "@types/istanbul-lib-coverage": "^2.0.0"
4308 - },
4309 - "engines": {
4310 - "node": ">= 6"
3748 + "@types/yargs-parser": "*"
3749 }
3750 },
4313 - "node_modules/@jest/test-sequencer": {
4314 - "version": "24.9.0",
4315 - "license": "MIT",
3751 + "node_modules/@jest/schemas": {
3752 + "version": "29.0.0",
3753 + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz",
3754 + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==",
3755 + "dev": true,
3756 "dependencies": {
4317 - "@jest/test-result": "^24.9.0",
4318 - "jest-haste-map": "^24.9.0",
4319 - "jest-runner": "^24.9.0",
4320 - "jest-runtime": "^24.9.0"
3757 + "@sinclair/typebox": "^0.24.1"
3758 },
3759 "engines": {
4323 - "node": ">= 6"
3760 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3761 }
3762 },
4326 - "node_modules/@jest/transform": {
3763 + "node_modules/@jest/types": {
3764 "version": "24.9.0",
4328 - "license": "MIT",
3765 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
3766 + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
3767 "dependencies": {
4330 - "@babel/core": "^7.1.0",
4331 - "@jest/types": "^24.9.0",
4332 - "babel-plugin-istanbul": "^5.1.0",
4333 - "chalk": "^2.0.1",
4334 - "convert-source-map": "^1.4.0",
4335 - "fast-json-stable-stringify": "^2.0.0",
4336 - "graceful-fs": "^4.1.15",
4337 - "jest-haste-map": "^24.9.0",
4338 - "jest-regex-util": "^24.9.0",
4339 - "jest-util": "^24.9.0",
4340 - "micromatch": "^3.1.10",
4341 - "pirates": "^4.0.1",
4342 - "realpath-native": "^1.1.0",
4343 - "slash": "^2.0.0",
4344 - "source-map": "^0.6.1",
4345 - "write-file-atomic": "2.4.1"
3768 + "@types/istanbul-lib-coverage": "^2.0.0",
3769 + "@types/istanbul-reports": "^1.1.1",
3770 + "@types/yargs": "^13.0.0"
3771 },
3772 "engines": {
3773 "node": ">= 6"
3774 }
3775 },
4351 - "node_modules/@jest/transform/node_modules/ansi-styles": {
4352 - "version": "3.2.1",
4353 - "license": "MIT",
3776 + "node_modules/@jridgewell/gen-mapping": {
3777 + "version": "0.1.1",
3778 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
3779 + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
3780 "dependencies": {
4355 - "color-convert": "^1.9.0"
3781 + "@jridgewell/set-array": "^1.0.0",
3782 + "@jridgewell/sourcemap-codec": "^1.4.10"
3783 },
3784 "engines": {
4358 - "node": ">=4"
3785 + "node": ">=6.0.0"
3786 }
3787 },
4361 - "node_modules/@jest/transform/node_modules/braces": {
4362 - "version": "2.3.2",
4363 - "license": "MIT",
4364 - "dependencies": {
4365 - "arr-flatten": "^1.1.0",
4366 - "array-unique": "^0.3.2",
4367 - "extend-shallow": "^2.0.1",
4368 - "fill-range": "^4.0.0",
4369 - "isobject": "^3.0.1",
4370 - "repeat-element": "^1.1.2",
4371 - "snapdragon": "^0.8.1",
4372 - "snapdragon-node": "^2.0.1",
4373 - "split-string": "^3.0.2",
4374 - "to-regex": "^3.0.1"
4375 - },
3788 + "node_modules/@jridgewell/resolve-uri": {
3789 + "version": "3.1.0",
3790 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
3791 + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
3792 "engines": {
4377 - "node": ">=0.10.0"
3793 + "node": ">=6.0.0"
3794 }
3795 },
4380 - "node_modules/@jest/transform/node_modules/chalk": {
4381 - "version": "2.4.2",
4382 - "license": "MIT",
4383 - "dependencies": {
4384 - "ansi-styles": "^3.2.1",
4385 - "escape-string-regexp": "^1.0.5",
4386 - "supports-color": "^5.3.0"
4387 - },
4388 - "engines": {
4389 - "node": ">=4"
4390 - }
4391 - },
4392 - "node_modules/@jest/transform/node_modules/color-convert": {
4393 - "version": "1.9.3",
4394 - "license": "MIT",
4395 - "dependencies": {
4396 - "color-name": "1.1.3"
4397 - }
4398 - },
4399 - "node_modules/@jest/transform/node_modules/color-name": {
4400 - "version": "1.1.3",
4401 - "license": "MIT"
4402 - },
4403 - "node_modules/@jest/transform/node_modules/escape-string-regexp": {
4404 - "version": "1.0.5",
4405 - "license": "MIT",
3796 + "node_modules/@jridgewell/set-array": {
3797 + "version": "1.1.2",
3798 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
3799 + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
3800 "engines": {
4407 - "node": ">=0.8.0"
3801 + "node": ">=6.0.0"
3802 }
3803 },
4410 - "node_modules/@jest/transform/node_modules/fill-range": {
4411 - "version": "4.0.0",
4412 - "license": "MIT",
3804 + "node_modules/@jridgewell/source-map": {
3805 + "version": "0.3.2",
3806 + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
3807 + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
3808 "dependencies": {
4414 - "extend-shallow": "^2.0.1",
4415 - "is-number": "^3.0.0",
4416 - "repeat-string": "^1.6.1",
4417 - "to-regex-range": "^2.1.0"
4418 - },
4419 - "engines": {
4420 - "node": ">=0.10.0"
4421 - }
4422 - },
4423 - "node_modules/@jest/transform/node_modules/has-flag": {
4424 - "version": "3.0.0",
4425 - "license": "MIT",
4426 - "engines": {
4427 - "node": ">=4"
3809 + "@jridgewell/gen-mapping": "^0.3.0",
3810 + "@jridgewell/trace-mapping": "^0.3.9"
3811 }
3812 },
4430 - "node_modules/@jest/transform/node_modules/is-buffer": {
4431 - "version": "1.1.6",
4432 - "license": "MIT"
4433 - },
4434 - "node_modules/@jest/transform/node_modules/is-extendable": {
4435 - "version": "1.0.1",
4436 - "license": "MIT",
3813 + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
3814 + "version": "0.3.2",
3815 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
3816 + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
3817 "dependencies": {
4438 - "is-plain-object": "^2.0.4"
3818 + "@jridgewell/set-array": "^1.0.1",
3819 + "@jridgewell/sourcemap-codec": "^1.4.10",
3820 + "@jridgewell/trace-mapping": "^0.3.9"
3821 },
3822 "engines": {
4441 - "node": ">=0.10.0"
3823 + "node": ">=6.0.0"
3824 }
3825 },
4444 - "node_modules/@jest/transform/node_modules/is-number": {
4445 - "version": "3.0.0",
4446 - "license": "MIT",
4447 - "dependencies": {
4448 - "kind-of": "^3.0.2"
4449 - },
4450 - "engines": {
4451 - "node": ">=0.10.0"
4452 - }
3826 + "node_modules/@jridgewell/sourcemap-codec": {
3827 + "version": "1.4.14",
3828 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
3829 + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
3830 },
4454 - "node_modules/@jest/transform/node_modules/is-number/node_modules/kind-of": {
4455 - "version": "3.2.2",
4456 - "license": "MIT",
3831 + "node_modules/@jridgewell/trace-mapping": {
3832 + "version": "0.3.16",
3833 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz",
3834 + "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==",
3835 "dependencies": {
4458 - "is-buffer": "^1.1.5"
4459 - },
4460 - "engines": {
4461 - "node": ">=0.10.0"
3836 + "@jridgewell/resolve-uri": "3.1.0",
3837 + "@jridgewell/sourcemap-codec": "1.4.14"
3838 }
3839 },
4464 - "node_modules/@jest/transform/node_modules/is-plain-object": {
4465 - "version": "2.0.4",
4466 - "license": "MIT",
3840 + "node_modules/@lerna/child-process": {
3841 + "version": "4.0.0",
3842 + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz",
3843 + "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==",
3844 + "dev": true,
3845 "dependencies": {
4468 - "isobject": "^3.0.1"
3846 + "chalk": "^4.1.0",
3847 + "execa": "^5.0.0",
3848 + "strong-log-transformer": "^2.1.0"
3849 },
3850 "engines": {
4471 - "node": ">=0.10.0"
3851 + "node": ">= 10.18.0"
3852 }
3853 },
4474 - "node_modules/@jest/transform/node_modules/micromatch": {
4475 - "version": "3.1.10",
4476 - "license": "MIT",
3854 + "node_modules/@lerna/collect-updates": {
3855 + "version": "4.0.0",
3856 + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz",
3857 + "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==",
3858 + "dev": true,
3859 "dependencies": {
4478 - "arr-diff": "^4.0.0",
4479 - "array-unique": "^0.3.2",
4480 - "braces": "^2.3.1",
4481 - "define-property": "^2.0.2",
4482 - "extend-shallow": "^3.0.2",
4483 - "extglob": "^2.0.4",
4484 - "fragment-cache": "^0.2.1",
4485 - "kind-of": "^6.0.2",
4486 - "nanomatch": "^1.2.9",
4487 - "object.pick": "^1.3.0",
4488 - "regex-not": "^1.0.0",
4489 - "snapdragon": "^0.8.1",
4490 - "to-regex": "^3.0.2"
3860 + "@lerna/child-process": "4.0.0",
3861 + "@lerna/describe-ref": "4.0.0",
3862 + "minimatch": "^3.0.4",
3863 + "npmlog": "^4.1.2",
3864 + "slash": "^3.0.0"
3865 },
3866 "engines": {
4493 - "node": ">=0.10.0"
3867 + "node": ">= 10.18.0"
3868 }
3869 },
4496 - "node_modules/@jest/transform/node_modules/micromatch/node_modules/extend-shallow": {
4497 - "version": "3.0.2",
4498 - "license": "MIT",
4499 - "dependencies": {
4500 - "assign-symbols": "^1.0.0",
4501 - "is-extendable": "^1.0.1"
4502 - },
3870 + "node_modules/@lerna/collect-updates/node_modules/ansi-regex": {
3871 + "version": "2.1.1",
3872 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
3873 + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
3874 + "dev": true,
3875 "engines": {
3876 "node": ">=0.10.0"
3877 }
3878 },
4507 - "node_modules/@jest/transform/node_modules/slash": {
4508 - "version": "2.0.0",
4509 - "license": "MIT",
4510 - "engines": {
4511 - "node": ">=6"
4512 - }
4513 - },
4514 - "node_modules/@jest/transform/node_modules/source-map": {
4515 - "version": "0.6.1",
4516 - "license": "BSD-3-Clause",
4517 - "engines": {
4518 - "node": ">=0.10.0"
4519 - }
3879 + "node_modules/@lerna/collect-updates/node_modules/aproba": {
3880 + "version": "1.2.0",
3881 + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
3882 + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
3883 + "dev": true
3884 },
4521 - "node_modules/@jest/transform/node_modules/supports-color": {
4522 - "version": "5.5.0",
4523 - "license": "MIT",
3885 + "node_modules/@lerna/collect-updates/node_modules/are-we-there-yet": {
3886 + "version": "1.1.7",
3887 + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
3888 + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
3889 + "dev": true,
3890 "dependencies": {
4525 - "has-flag": "^3.0.0"
4526 - },
4527 - "engines": {
4528 - "node": ">=4"
3891 + "delegates": "^1.0.0",
3892 + "readable-stream": "^2.0.6"
3893 }
3894 },
4531 - "node_modules/@jest/transform/node_modules/to-regex-range": {
4532 - "version": "2.1.1",
4533 - "license": "MIT",
3895 + "node_modules/@lerna/collect-updates/node_modules/brace-expansion": {
3896 + "version": "1.1.11",
3897 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3898 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3899 + "dev": true,
3900 "dependencies": {
4535 - "is-number": "^3.0.0",
4536 - "repeat-string": "^1.6.1"
4537 - },
4538 - "engines": {
4539 - "node": ">=0.10.0"
3901 + "balanced-match": "^1.0.0",
3902 + "concat-map": "0.0.1"
3903 }
3904 },
4542 - "node_modules/@jest/transform/node_modules/write-file-atomic": {
4543 - "version": "2.4.1",
4544 - "license": "ISC",
3905 + "node_modules/@lerna/collect-updates/node_modules/gauge": {
3906 + "version": "2.7.4",
3907 + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
3908 + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
3909 + "dev": true,
3910 "dependencies": {
4546 - "graceful-fs": "^4.1.11",
4547 - "imurmurhash": "^0.1.4",
4548 - "signal-exit": "^3.0.2"
3911 + "aproba": "^1.0.3",
3912 + "console-control-strings": "^1.0.0",
3913 + "has-unicode": "^2.0.0",
3914 + "object-assign": "^4.1.0",
3915 + "signal-exit": "^3.0.0",
3916 + "string-width": "^1.0.1",
3917 + "strip-ansi": "^3.0.1",
3918 + "wide-align": "^1.1.0"
3919 }
3920 },
4551 - "node_modules/@jest/types": {
4552 - "version": "24.9.0",
4553 - "license": "MIT",
3921 + "node_modules/@lerna/collect-updates/node_modules/is-fullwidth-code-point": {
3922 + "version": "1.0.0",
3923 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
3924 + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
3925 + "dev": true,
3926 "dependencies": {
4555 - "@types/istanbul-lib-coverage": "^2.0.0",
4556 - "@types/istanbul-reports": "^1.1.1",
4557 - "@types/yargs": "^13.0.0"
3927 + "number-is-nan": "^1.0.0"
3928 },
3929 "engines": {
4560 - "node": ">= 6"
3930 + "node": ">=0.10.0"
3931 }
3932 },
4563 - "node_modules/@jridgewell/gen-mapping": {
4564 - "version": "0.1.1",
4565 - "license": "MIT",
3933 + "node_modules/@lerna/collect-updates/node_modules/minimatch": {
3934 + "version": "3.1.2",
3935 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3936 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3937 + "dev": true,
3938 "dependencies": {
4567 - "@jridgewell/set-array": "^1.0.0",
4568 - "@jridgewell/sourcemap-codec": "^1.4.10"
3939 + "brace-expansion": "^1.1.7"
3940 },
3941 "engines": {
4571 - "node": ">=6.0.0"
3942 + "node": "*"
3943 }
3944 },
4574 - "node_modules/@jridgewell/resolve-uri": {
4575 - "version": "3.1.0",
4576 - "license": "MIT",
4577 - "engines": {
4578 - "node": ">=6.0.0"
3945 + "node_modules/@lerna/collect-updates/node_modules/npmlog": {
3946 + "version": "4.1.2",
3947 + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
3948 + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
3949 + "dev": true,
3950 + "dependencies": {
3951 + "are-we-there-yet": "~1.1.2",
3952 + "console-control-strings": "~1.1.0",
3953 + "gauge": "~2.7.3",
3954 + "set-blocking": "~2.0.0"
3955 }
3956 },
4581 - "node_modules/@jridgewell/set-array": {
4582 - "version": "1.1.2",
4583 - "license": "MIT",
4584 - "engines": {
4585 - "node": ">=6.0.0"
3957 + "node_modules/@lerna/collect-updates/node_modules/readable-stream": {
3958 + "version": "2.3.7",
3959 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
3960 + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
3961 + "dev": true,
3962 + "dependencies": {
3963 + "core-util-is": "~1.0.0",
3964 + "inherits": "~2.0.3",
3965 + "isarray": "~1.0.0",
3966 + "process-nextick-args": "~2.0.0",
3967 + "safe-buffer": "~5.1.1",
3968 + "string_decoder": "~1.1.1",
3969 + "util-deprecate": "~1.0.1"
3970 }
3971 },
4588 - "node_modules/@jridgewell/sourcemap-codec": {
4589 - "version": "1.4.14",
4590 - "license": "MIT"
3972 + "node_modules/@lerna/collect-updates/node_modules/safe-buffer": {
3973 + "version": "5.1.2",
3974 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3975 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3976 + "dev": true
3977 },
4592 - "node_modules/@jridgewell/trace-mapping": {
4593 - "version": "0.3.15",
4594 - "license": "MIT",
3978 + "node_modules/@lerna/collect-updates/node_modules/string_decoder": {
3979 + "version": "1.1.1",
3980 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3981 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3982 + "dev": true,
3983 "dependencies": {
4596 - "@jridgewell/resolve-uri": "^3.0.3",
4597 - "@jridgewell/sourcemap-codec": "^1.4.10"
3984 + "safe-buffer": "~5.1.0"
3985 }
3986 },
4600 - "node_modules/@lerna/child-process": {
4601 - "version": "4.0.0",
4602 - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz",
4603 - "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==",
3987 + "node_modules/@lerna/collect-updates/node_modules/string-width": {
3988 + "version": "1.0.2",
3989 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
3990 + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",

This file is too large to show in full.

package.json
+9 -4
@@ -5,22 +5,27 @@
5 "private": true,
6 "scripts": {
7 "develop": "gatsby develop",
8 - "build": "gatsby build",
8 + "build": "NODE_OPTIONS=--max-old-space-size=5376 gatsby build",
9 "serve": "gatsby serve"
10 },
11 "workspaces": [
12 - "cli/"
12 + "cli/",
13 + "theme/"
14 ],
15 "dependencies": {
15 - "gatsby": "^2.32.7",
16 + "gatsby": "^4.24.4",
17 "gatsby-plugin-meta-redirect": "^1.1.1",
17 - "gatsby-theme-doctornpm": "^1.9.0",
18 + "theme": "*",
19 "react": "^16.14.0",
20 "react-dom": "^16.14.0"
21 },
22 + "overrides": {
23 + "react": "$react"
24 + },
25 "templateOSS": {
26 "rootRepo": false,
27 "rootModule": false,
28 + "workspaces": ["cli"],
29 "version": "4.5.1"
30 }
31 }
src/.DS_Store
Binary files a/src/.DS_Store and /dev/null differ
src/shared.js
+1 -1
@@ -1,6 +1,6 @@
1 import React from 'react';
2 import {Link} from '@primer/components';
3 -import {Note, Screenshot} from 'gatsby-theme-doctornpm';
3 +import {Note, Screenshot} from 'theme';
4
5 const shared = {
6 /* User login */
src/theme/header-nav.yml renamed
src/theme/nav.yml renamed
theme/LICENSE new
+22
@@ -0,0 +1,22 @@
1 +Copyright (c) GitHub, Inc.
2 +
3 +Permission is hereby granted, free of charge, to any person
4 +obtaining a copy of this software and associated documentation
5 +files (the "Software"), to deal in the Software without
6 +restriction, including without limitation the rights to use,
7 +copy, modify, merge, publish, distribute, sublicense, and/or sell
8 +copies of the Software, and to permit persons to whom the
9 +Software is furnished to do so, subject to the following
10 +conditions:
11 +
12 +The above copyright notice and this permission notice shall be
13 +included in all copies or substantial portions of the Software.
14 +
15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 +OTHER DEALINGS IN THE SOFTWARE.
theme/README.md new
+39
@@ -0,0 +1,39 @@
1 +# theme
2 +
3 +This theme is a simple fork of the excellent gatsby-theme-doctocat included in primer's [primer.style/doctocat](https://primer.style/doctocat).
4 +
5 +This theme just gives it a little more npm flavor.
6 +
7 +```javascript
8 +// gatsby-config.js
9 +
10 +module.exports = {
11 + siteMetadata: {
12 + ...
13 + },
14 + plugins: [
15 + ...
16 + {
17 + resolve: './theme',
18 + options: {
19 + icon: './src/images/npm-favicon.png',
20 + editOnGitHub: true,
21 + showContributors: false,
22 + showSidebarEditLink: true,
23 + },
24 + }
25 + ],
26 +}
27 +
28 +```
29 +
30 +
31 +## Theme Options
32 +
33 +| Option | Required | Default | Type | Description |
34 +| ---------------------- | -------- |---------| --------- | ------------------------------------------------------------------------------ |
35 +| icon | yes | n/a | string | The favicon to display |
36 +| editOnGitHub | yes | n/a | boolean | Determines if the "Edit this page on GitHub" link is displayed on the page |
37 +| showContributors | yes | n/a | boolean | Determines if the repository contributors are displayed |
38 +| showSidebarEditLink | yes | n/a | boolean | Determines if the "Edit this page on GitHub" link is displayed in the SideBar |
39 +| repo | yes | n/a | object | `url`, `defaultBranch` and `path` to repository |
theme/gatsby-browser.js new
+2
@@ -0,0 +1,2 @@
1 +export {default as wrapPageElement} from './src/components/wrap-page-element'
2 +export {default as wrapRootElement} from './src/components/wrap-root-element'
theme/gatsby-config.js new
+36
@@ -0,0 +1,36 @@
1 +const path = require('path')
2 +
3 +module.exports = (themeOptions) => {
4 + return {
5 + plugins: [
6 + 'gatsby-plugin-styled-components',
7 + 'gatsby-plugin-react-helmet',
8 + 'gatsby-plugin-catch-links',
9 + 'gatsby-transformer-yaml',
10 + {
11 + resolve: 'gatsby-plugin-mdx',
12 + options: {
13 + extensions: ['.mdx', '.md'],
14 + defaultLayouts: {
15 + default: require.resolve('./src/components/layout.js'),
16 + },
17 + },
18 + },
19 + {
20 + resolve: 'gatsby-source-filesystem',
21 + options: {
22 + name: 'content',
23 + path: path.resolve('./content'),
24 + },
25 + },
26 + {
27 + resolve: 'gatsby-plugin-manifest',
28 + options: {
29 + icon: themeOptions.icon
30 + ? path.resolve(themeOptions.icon)
31 + : require.resolve('./src/images/favicon.png'),
32 + },
33 + },
34 + ],
35 + }
36 +}
theme/gatsby-node.js new
+223
@@ -0,0 +1,223 @@
1 +const path = require('path')
2 +const readPkgUp = require('read-pkg-up')
3 +const getPkgRepo = require('get-pkg-repo')
4 +const axios = require('axios')
5 +const uniqBy = require('lodash.uniqby')
6 +
7 +const CONTRIBUTOR_CACHE = new Map()
8 +
9 +exports.createSchemaCustomization = ({actions: {createTypes}}) => {
10 + createTypes(`
11 + type Mdx implements Node {
12 + frontmatter: MdxFrontmatter
13 + fields: MdxFields
14 + }
15 + type MdxFrontmatter {
16 + github_repo: String,
17 + github_branch: String,
18 + github_path: String,
19 + edit_on_github: Boolean,
20 + slug: String,
21 + redirect_from: [String]
22 + }
23 + type MdxFields {
24 + slug: String
25 + }
26 + `);
27 +}
28 +
29 +exports.createPages = async ({graphql, actions}, themeOptions) => {
30 + const repo = themeOptions.repo ? themeOptions.repo : { url: getPkgRepo(readPkgUp.sync().package).browse() };
31 +
32 +
33 + const {data} = await graphql(`
34 + {
35 + allMdx {
36 + nodes {
37 + id
38 + fileAbsolutePath
39 + fields {
40 + slug
41 + }
42 + frontmatter {
43 + title
44 + github_repo
45 + github_branch
46 + github_path
47 + edit_on_github
48 + slug
49 + redirect_from
50 + }
51 + tableOfContents
52 + parent {
53 + ... on File {
54 + relativeDirectory
55 + name
56 + }
57 + }
58 + }
59 + }
60 + }
61 + `)
62 +
63 + if (!process.env.GITHUB_TOKEN && !process.env.NOW_GITHUB_DEPLOYMENT) {
64 + console.error(`Non-deploy build and no GITHUB_TOKEN environment variable set; skipping GitHub API calls`)
65 + }
66 +
67 + // Turn every MDX file into a page.
68 + return Promise.all(
69 + data.allMdx.nodes.map(async node => {
70 + const pagePath = getPath(node);
71 +
72 + const rootAbsolutePath = path.resolve(
73 + process.cwd(),
74 + themeOptions.repoRootPath || '.',
75 + )
76 +
77 + const fileRelativePath = path.relative(
78 + rootAbsolutePath,
79 + node.fileAbsolutePath,
80 + )
81 +
82 + const editUrl = getEditUrl(themeOptions, repo, fileRelativePath, node.frontmatter);
83 +
84 + let contributors = []
85 + if (themeOptions.showContributors !== false && (process.env.GITHUB_TOKEN || process.env.NOW_GITHUB_DEPLOYMENT)) {
86 + contributors = await fetchContributors(repo, fileRelativePath, node.frontmatter, process.env.GITHUB_TOKEN)
87 + }
88 +
89 + actions.createPage({
90 + path: pagePath,
91 + component: node.fileAbsolutePath,
92 + context: {
93 + mdxId: node.id,
94 + themeOptions,
95 + editUrl,
96 + contributors,
97 + tableOfContents: node.tableOfContents,
98 + },
99 + })
100 +
101 + if (node.frontmatter.redirect_from) {
102 + node.frontmatter.redirect_from.forEach((from) => {
103 + actions.createRedirect({
104 + fromPath: from,
105 + toPath: '/' + pagePath,
106 + isPermanent: true,
107 + redirectInBrowser: true
108 + })
109 + })
110 + }
111 + }),
112 + )
113 +}
114 +
115 +function getPath(node) {
116 + // sites can programmatically override slug, that takes priority
117 + if (node.fields && node.fields.slug) {
118 + return node.fields.slug;
119 + }
120 +
121 + // then a slug specified in frontmatter
122 + if (node.frontmatter && node.frontmatter.slug) {
123 + return node.frontmatter.slug;
124 + }
125 +
126 + // finally, we'll just use the path on disk
127 + return path.join(
128 + node.parent.relativeDirectory,
129 + node.parent.name === 'index' ? '/' : node.parent.name,
130 + )
131 + .replace(/\\/g, '/'); // Windows paths to forward slashes
132 +}
133 +
134 +function getNameWithOwner(url) {
135 + if ((nwo = url.match(/^http(?:s)?:\/\/(?:www\.)?github\.com\/([^/]+\/[^/]+)(?:\/)?$/i))) {
136 + return nwo[1];
137 + }
138 +
139 + return null;
140 +}
141 +
142 +function getGitHubData(repo, overrideData, filePath) {
143 + const gh = {
144 + nwo: getNameWithOwner(repo.url),
145 + branch: 'master',
146 + };
147 +
148 + if (overrideData.github_repo) {
149 + gh.nwo = overrideData.github_repo;
150 + }
151 +
152 + if (overrideData.github_branch) {
153 + gh.branch = overrideData.github_branch;
154 + }
155 + else if (repo.defaultBranch) {
156 + gh.branch = repo.defaultBranch;
157 + }
158 +
159 + if (overrideData.github_path) {
160 + gh.path = overrideData.github_path;
161 + }
162 + else if(repo.path) {
163 + gh.path = repo.path + '/' + filePath;
164 + }
165 + else {
166 + gh.path = filePath;
167 + }
168 +
169 + return gh;
170 +}
171 +
172 +function getEditUrl(themeOptions, repo, filePath, overrideData = { }) {
173 + if (themeOptions.editOnGitHub === false || overrideData.edit_on_github === false) {
174 + return null
175 + }
176 +
177 + const gh = getGitHubData(repo, overrideData, filePath);
178 + return `https://github.com/${gh.nwo}/edit/${gh.branch}/${gh.path}`
179 +}
180 +
181 +async function fetchContributors(repo, filePath, overrideData = { }, accessToken = "") {
182 + const gh = getGitHubData(repo, overrideData, filePath);
183 +
184 + const cached = CONTRIBUTOR_CACHE.get(gh)
185 + if (cached) {
186 + return cached
187 + }
188 +
189 + try {
190 + const req = {
191 + method: 'get',
192 + baseURL: 'https://api.github.com/',
193 + url: `/repos/${gh.nwo}/commits?path=${gh.path}&sha=${gh.branch}&per_page=100`
194 + }
195 +
196 + if (accessToken && accessToken.length) {
197 + req.headers = {
198 + 'Authorization': `token ${accessToken}`
199 + }
200 + }
201 +
202 + const {data} = await axios.request(req)
203 +
204 + const commits = data
205 + .map(commit => ({
206 + login: commit.author && commit.author.login,
207 + latestCommit: {
208 + date: commit.commit.author.date,
209 + url: commit.html_url,
210 + },
211 + }))
212 + .filter(contributor => Boolean(contributor.login))
213 +
214 + const result = uniqBy(commits, 'login')
215 + CONTRIBUTOR_CACHE.set(gh, result)
216 + return result
217 + } catch (error) {
218 + console.error(
219 + `[ERROR] Unable to fetch contributors for ${filePath}. ${error.message}`,
220 + )
221 + return []
222 + }
223 +}
theme/gatsby-ssr.js new
+2
@@ -0,0 +1,2 @@
1 +export {default as wrapPageElement} from './src/components/wrap-page-element'
2 +export {default as wrapRootElement} from './src/components/wrap-root-element'
theme/index.js new
+15
@@ -0,0 +1,15 @@
1 +export {default as Caption} from './src/components/caption'
2 +export {default as Container} from './src/components/container'
3 +export {default as Contributors} from './src/components/contributors'
4 +export {Do, DoDontContainer, Dont} from './src/components/do-dont'
5 +export {default as Frame} from './src/components/frame'
6 +export {default as Head} from './src/components/head'
7 +export {default as Header} from './src/components/header'
8 +export {default as Hero} from './src/components/hero'
9 +export {default as HeroLayout} from './src/components/hero-layout'
10 +export {default as Index} from './src/components/index'
11 +export {default as Note} from './src/components/note'
12 +export {default as Screenshot} from './src/components/screenshot'
13 +export {default as Sidebar} from './src/components/sidebar'
14 +export {default as SourceLink} from './src/components/source-link'
15 +export {default as StatusLabel} from './src/components/status-label'
theme/jest-preprocess.js new
+5
@@ -0,0 +1,5 @@
1 +const babelOptions = {
2 + presets: ["babel-preset-gatsby"],
3 +}
4 +
5 +module.exports = require("babel-jest").default.createTransformer(babelOptions)
theme/jest.config.js new
+8
@@ -0,0 +1,8 @@
1 +module.exports = {
2 + testEnvironment: "jsdom",
3 + setupFilesAfterEnv: ['<rootDir>/setup-tests.js'],
4 + transform: {
5 + "^.+\\.jsx?$": `<rootDir>/jest-preprocess.js`,
6 + },
7 +}
8 +
theme/package.json new
+76
@@ -0,0 +1,76 @@
1 +{
2 + "name": "theme",
3 + "repository": {
4 + "url": "https://github.com/npm/documentation.git",
5 + "directory": "theme",
6 + "type": "git"
7 + },
8 + "private": true,
9 + "version": "1.9.0",
10 + "main": "index.js",
11 + "license": "MIT",
12 + "scripts": {
13 + "test": "jest"
14 + },
15 + "files": [
16 + "src",
17 + "!src/**/__tests__/",
18 + "gatsby-*.js",
19 + "index.js"
20 + ],
21 + "peerDependencies": {
22 + "gatsby": "^4.19.0",
23 + "react": "^16.9.0",
24 + "react-dom": "^16.9.0"
25 + },
26 + "dependencies": {
27 + "@mdx-js/mdx": "^1.0.21",
28 + "@mdx-js/react": "^1.0.21",
29 + "@primer/components": "^20.0.0",
30 + "@primer/octicons-react": "^17.3.0",
31 + "@styled-system/theme-get": "^5.0.12",
32 + "@testing-library/react": "^9.1.3",
33 + "axios": "^0.21.2",
34 + "babel-plugin-styled-components": "^2.0.7",
35 + "copy-to-clipboard": "^3.2.0",
36 + "date-fns": "^2.0.1",
37 + "details-element-polyfill": "^2.4.0",
38 + "downshift": "^3.2.10",
39 + "find-up": "^4.1.0",
40 + "framer-motion": "^1.4.2",
41 + "fuse.js": "^3.4.5",
42 + "gatsby-plugin-catch-links": "^4.19.0",
43 + "gatsby-plugin-manifest": "^4.19.0",
44 + "gatsby-plugin-mdx": "^3.19.0",
45 + "gatsby-plugin-react-helmet": "^5.19.0",
46 + "gatsby-plugin-styled-components": "^5.19.0",
47 + "gatsby-source-filesystem": "^4.19.0",
48 + "gatsby-transformer-yaml": "^4.19.0",
49 + "get-pkg-repo": "^4.1.0",
50 + "github-slugger": "^1.2.1",
51 + "html-react-parser": "^0.9.1",
52 + "lodash.debounce": "4.0.8",
53 + "lodash.uniqby": "^4.7.0",
54 + "pkg-up": "^3.1.0",
55 + "pluralize": "^8.0.0",
56 + "preval.macro": "^3.0.0",
57 + "prism-react-renderer": "^0.1.7",
58 + "react-addons-text-content": "^0.0.4",
59 + "react-element-to-jsx-string": "^14.0.3",
60 + "react-focus-on": "^3.3.0",
61 + "react-frame-component": "^4.1.1",
62 + "react-helmet": "^5.2.1",
63 + "react-live": "^2.1.2",
64 + "react-measure": "^2.3.0",
65 + "read-pkg-up": "^6.0.0",
66 + "sentence-case": "^2.1.1",
67 + "styled-components": "^5.3.5",
68 + "styled-system": "^5.0.18"
69 + },
70 + "devDependencies": {
71 + "@testing-library/jest-dom": "^5.16.5",
72 + "babel-jest": "^29.1.2",
73 + "jest": "^29.1.2",
74 + "jest-environment-jsdom": "^29.1.2"
75 + }
76 +}
theme/setup-tests.js new
+1
@@ -0,0 +1 @@
1 +import "@testing-library/jest-dom/extend-expect"
theme/src/components/__tests__/contributors.test.js new
+73
@@ -0,0 +1,73 @@
1 +import {render} from '@testing-library/react'
2 +import React from 'react'
3 +import Contributors from '../contributors'
4 +
5 +test('renders contributors', () => {
6 + const {queryByText} = render(
7 + <Contributors
8 + contributors={[
9 + {
10 + login: 'colebemis',
11 + latestCommit: {
12 + url: '#',
13 + date: '2019-08-15T23:40:19Z',
14 + },
15 + },
16 + {
17 + login: 'emplums',
18 + latestCommit: {
19 + url: '#',
20 + date: '2019-08-14T00:19:54Z',
21 + },
22 + },
23 + ]}
24 + />,
25 + )
26 +
27 + expect(queryByText(/2 contributors/)).toBeInTheDocument()
28 + expect(queryByText(/Last edited by/)).toBeInTheDocument()
29 + expect(queryByText(/colebemis/)).toBeInTheDocument()
30 + expect(queryByText(/August 15, 2019/)).toBeInTheDocument()
31 +})
32 +
33 +test('does not render "last edited by" if latest contributor does not have a latest commit', () => {
34 + const {queryByText} = render(
35 + <Contributors contributors={[{login: 'ashygee'}]} />,
36 + )
37 +
38 + expect(queryByText(/1 contributor/)).toBeInTheDocument()
39 + expect(queryByText(/Last edited by/)).toBeNull()
40 +})
41 +
42 +// The `Contributors` component is unlikely to be passed an empty array
43 +// but it should be able to handle an empty array gracefully just in case.
44 +test('handles no contributors', () => {
45 + const {queryByText} = render(<Contributors contributors={[]} />)
46 +
47 + expect(queryByText(/0 contributors/)).toBeInTheDocument()
48 +})
49 +
50 +test('does not render duplicate contributors', () => {
51 + const {queryByText} = render(
52 + <Contributors
53 + contributors={[
54 + {
55 + login: 'colebemis',
56 + latestCommit: {
57 + url: '#',
58 + date: '2019-08-15T23:40:19Z',
59 + },
60 + },
61 + {
62 + login: 'colebemis',
63 + latestCommit: {
64 + url: '#',
65 + date: '2019-08-14T00:19:54Z',
66 + },
67 + },
68 + ]}
69 + />,
70 + )
71 +
72 + expect(queryByText(/1 contributor/)).toBeInTheDocument()
73 +})
theme/src/components/__tests__/page-footer.test.js new
+41
@@ -0,0 +1,41 @@
1 +import {render} from '@testing-library/react'
2 +import React from 'react'
3 +import PageFooter from '../page-footer'
4 +
5 +test('renders correctly when editUrl and contributors are defined', () => {
6 + const {queryByText} = render(
7 + <PageFooter editUrl="#" contributors={[{login: 'broccolini'}]} />,
8 + )
9 +
10 + expect(queryByText(/Edit this page on GitHub/)).toBeInTheDocument()
11 + expect(queryByText(/contributor/)).toBeInTheDocument()
12 +})
13 +
14 +test('renders correctly when editUrl and contributors are undefined', () => {
15 + const {queryByText} = render(<PageFooter />)
16 +
17 + expect(queryByText(/Edit this page on GitHub/)).toBeNull()
18 + expect(queryByText(/contributor/)).toBeNull()
19 +})
20 +
21 +test('renders correctly when editUrl is defined but contributors is undefined', () => {
22 + const {queryByText} = render(<PageFooter editUrl="#" />)
23 +
24 + expect(queryByText(/Edit this page on GitHub/)).toBeInTheDocument()
25 + expect(queryByText(/contributor/)).toBeNull()
26 +})
27 +
28 +test('renders correctly when contributors is defined but editUrl is undefined', () => {
29 + const {queryByText} = render(
30 + <PageFooter contributors={[{login: 'broccolini'}]} />,
31 + )
32 +
33 + expect(queryByText(/Edit this page on GitHub/)).toBeNull()
34 + expect(queryByText(/contributor/)).toBeInTheDocument()
35 +})
36 +
37 +test('does not render contributors if contributors is an empty array', () => {
38 + const {queryByText} = render(<PageFooter contributors={[]} />)
39 +
40 + expect(queryByText(/contributor/)).toBeNull()
41 +})
theme/src/components/blockquote.js new
+19
@@ -0,0 +1,19 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const Blockquote = styled.blockquote`
5 + margin: 0 0 ${themeGet('space.3')};
6 + padding: 0 ${themeGet('space.3')};
7 + color: ${themeGet('colors.gray.5')};
8 + border-left: 0.25em solid ${themeGet('colors.gray.2')};
9 +
10 + > :first-child {
11 + margin-top: 0;
12 + }
13 +
14 + > :last-child {
15 + margin-bottom: 0;
16 + }
17 +`
18 +
19 +export default Blockquote
theme/src/components/caption.js new
+8
@@ -0,0 +1,8 @@
1 +import {Text} from '@primer/components'
2 +import React from 'react'
3 +
4 +function Caption(props) {
5 + return <Text as="p" mt={2} mb={3} fontSize={1} color="gray.5" {...props} />
6 +}
7 +
8 +export default Caption
theme/src/components/clipboard-copy.js new
+30
@@ -0,0 +1,30 @@
1 +import {Button, StyledOcticon} from '@primer/components'
2 +import {CheckIcon, CopyIcon} from '@primer/octicons-react'
3 +import copy from 'copy-to-clipboard'
4 +import React from 'react'
5 +
6 +function ClipboardCopy({value}) {
7 + const [copied, setCopied] = React.useState(false)
8 +
9 + React.useEffect(() => {
10 + const timeout = setTimeout(() => {
11 + if (copied) setCopied(false)
12 + }, 1000)
13 +
14 + return () => clearTimeout(timeout)
15 + }, [copied])
16 +
17 + return (
18 + <Button
19 + aria-label="Copy to clipboard"
20 + onClick={() => {
21 + copy(value)
22 + setCopied(true)
23 + }}
24 + >
25 + {copied ? <StyledOcticon icon={CheckIcon} color="green.5" /> : <StyledOcticon icon={CopyIcon} color="gray.7" />}
26 + </Button>
27 + )
28 +}
29 +
30 +export default ClipboardCopy
theme/src/components/code.js new
+56
@@ -0,0 +1,56 @@
1 +import {Absolute, BorderBox, Relative, Text} from '@primer/components'
2 +import Highlight, {defaultProps} from 'prism-react-renderer'
3 +import githubTheme from 'prism-react-renderer/themes/github'
4 +import React from 'react'
5 +import ClipboardCopy from './clipboard-copy'
6 +import LiveCode from './live-code'
7 +
8 +function Code({className, children, live, noinline}) {
9 + const language = className ? className.replace(/language-/, '') : ''
10 + const code = children.trim()
11 +
12 + if (live) {
13 + return <LiveCode code={code} language={language} noinline={noinline} />
14 + }
15 +
16 + return (
17 + <Relative>
18 + <Absolute top={0} right={0} p={2}>
19 + <ClipboardCopy value={code} />
20 + </Absolute>
21 + <Highlight
22 + {...defaultProps}
23 + code={code}
24 + language={language}
25 + theme={githubTheme}
26 + >
27 + {({className, style, tokens, getLineProps, getTokenProps}) => (
28 + <BorderBox
29 + as="pre"
30 + className={className}
31 + mt={0}
32 + mb={3}
33 + p={3}
34 + border={0}
35 + style={{...style, overflow: 'auto'}}
36 + >
37 + {tokens.map((line, i) => (
38 + <div key={i} {...getLineProps({line, key: i})}>
39 + {line.map((token, key) => (
40 + <Text
41 + key={key}
42 + fontFamily="mono"
43 + fontSize={1}
44 + {...getTokenProps({token, key})}
45 + />
46 + ))}
47 + </div>
48 + ))}
49 + </BorderBox>
50 + )}
51 + </Highlight>
52 + </Relative>
53 + )
54 +}
55 +
56 +export default Code
theme/src/components/container.js new
+12
@@ -0,0 +1,12 @@
1 +import {Box} from '@primer/components'
2 +import React from 'react'
3 +
4 +function Container({children}) {
5 + return (
6 + <Box id="skip-nav" width="100%" maxWidth={960} p={5} mx="auto">
7 + {children}
8 + </Box>
9 + )
10 +}
11 +
12 +export default Container
theme/src/components/contributors.js new
+53
@@ -0,0 +1,53 @@
1 +import {Avatar, Flex, Link, Text, Tooltip} from '@primer/components'
2 +import {format} from 'date-fns'
3 +import uniqBy from 'lodash.uniqby'
4 +import pluralize from 'pluralize'
5 +import React from 'react'
6 +
7 +// The `contributors` array is fetched in gatsby-node.js at build-time.
8 +
9 +function Contributors({contributors}) {
10 + const uniqueContributors = uniqBy(contributors, 'login')
11 + const latestContributor = uniqueContributors[0] || {}
12 +
13 + return (
14 + <div>
15 + <Flex alignItems="center">
16 + <Text mr={2}>
17 + {uniqueContributors.length}{' '}
18 + {pluralize('contributor', uniqueContributors.length)}
19 + </Text>
20 + {uniqueContributors.map(contributor => (
21 + <Link
22 + key={contributor.login}
23 + href={`https://github.com/${contributor.login}`}
24 + lineHeight="condensedUltra"
25 + mr={2}
26 + >
27 + <Tooltip key={contributor.login} aria-label={contributor.login}>
28 + <Avatar
29 + src={`https://github.com/${contributor.login}.png?size=40`}
30 + alt={contributor.login}
31 + />
32 + </Tooltip>
33 + </Link>
34 + ))}
35 + </Flex>
36 +
37 + {latestContributor.latestCommit ? (
38 + <Text fontSize={1} color="gray.7" mt={1}>
39 + Last edited by{' '}
40 + <Link href={`https://github.com/${latestContributor.login}`}>
41 + {latestContributor.login}
42 + </Link>{' '}
43 + on{' '}
44 + <Link href={latestContributor.latestCommit.url}>
45 + {format(new Date(latestContributor.latestCommit.date), 'MMMM d, y')}
46 + </Link>
47 + </Text>
48 + ) : null}
49 + </div>
50 + )
51 +}
52 +
53 +export default Contributors
theme/src/components/dark-button.js new
+23
@@ -0,0 +1,23 @@
1 +import {ButtonOutline, themeGet} from '@primer/components'
2 +import styled from 'styled-components'
3 +
4 +const DarkButton = styled(ButtonOutline)`
5 + color: ${themeGet('colors.gray.2')};
6 + background-color: transparent;
7 + border: 1px solid ${themeGet('colors.gray.7')};
8 + box-shadow: none;
9 +
10 + &:hover {
11 + background-color: #cb0000;
12 + }
13 +
14 + &:focus {
15 + box-shadow: 0 0 0 3px rgba(214, 102, 102, 0.3);
16 + }
17 +
18 + &:active {
19 + background-color: #ba0000;
20 + }
21 +`
22 +
23 +export default DarkButton
theme/src/components/dark-text-input.js new
+21
@@ -0,0 +1,21 @@
1 +import {TextInput, themeGet} from '@primer/components'
2 +import styled from 'styled-components'
3 +
4 +const DarkTextInput = styled(TextInput)`
5 + /* The font-size of inputs should never be less than 16px.
6 + * Otherwise, iOS browsers will zoom in when the input is focused.
7 + * TODO: Update font-size of TextInput in @primer/components.
8 + */
9 + font-size: ${themeGet('fontSizes.2')} !important;
10 + color: ${themeGet('colors.white')};
11 + background-color: rgba(255, 255, 255, 0.07);
12 + border: 1px solid transparent;
13 + box-shadow: none;
14 +
15 + &:focus {
16 + border: 1px solid rgba(255, 255, 255, 0.15);
17 + outline: none;
18 + box-shadow: none;
19 + }
20 +`
21 +export default DarkTextInput
theme/src/components/description-list.js new
+21
@@ -0,0 +1,21 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const DescriptionList = styled.dl`
5 + padding: 0;
6 +
7 + dt {
8 + padding: 0;
9 + margin-top: ${themeGet('space.3')};
10 + font-size: 1em;
11 + font-style: italic;
12 + font-weight: ${themeGet('fontWeights.bold')};
13 + }
14 +
15 + dd {
16 + padding: 0 ${themeGet('space.3')};
17 + margin: 0 0 ${themeGet('space.3')};
18 + }
19 +`
20 +
21 +export default DescriptionList
theme/src/components/details.js new
+67
@@ -0,0 +1,67 @@
1 +import React from 'react'
2 +import styled from 'styled-components'
3 +
4 +// The <details> element is not yet supported in Edge so we have to use a polyfill.
5 +// We have to check if window is defined before importing the polyfill
6 +// so the code doesn’t run while Gatsby is building.
7 +if (typeof window !== 'undefined') {
8 + require('details-element-polyfill')
9 +}
10 +
11 +// TODO: Replace this Details component with the one from @primer/components when 14.0.0 is released.
12 +// Reference: https://github.com/primer/components/pull/499
13 +
14 +const DetailsReset = styled.details`
15 + & > summary {
16 + list-style: none;
17 + }
18 +
19 + & > summary::-webkit-details-marker {
20 + display: none;
21 + }
22 +
23 + & > summary::before {
24 + display: none;
25 + }
26 +`
27 +
28 +function getRenderer(children) {
29 + return typeof children === 'function' ? children : () => children
30 +}
31 +
32 +function Details({children, overlay, render = getRenderer(children), ...rest}) {
33 + const [open, setOpen] = React.useState(Boolean(rest.open))
34 +
35 + function toggle(event) {
36 + if (event) event.preventDefault()
37 + if (overlay) {
38 + openMenu()
39 + } else {
40 + setOpen(!open)
41 + }
42 + }
43 +
44 + function openMenu() {
45 + if (!open) {
46 + setOpen(true)
47 + document.addEventListener('click', closeMenu)
48 + }
49 + }
50 +
51 + function closeMenu() {
52 + setOpen(false)
53 + document.removeEventListener('click', closeMenu)
54 + }
55 +
56 + return (
57 + <DetailsReset {...rest} open={open}>
58 + {render({open, toggle})}
59 + </DetailsReset>
60 + )
61 +}
62 +
63 +Details.defaultProps = {
64 + overlay: false,
65 +}
66 +
67 +export default Details
theme/src/components/do-dont.js new
+49
@@ -0,0 +1,49 @@
1 +import {Flex, Grid, Text, StyledOcticon} from '@primer/components'
2 +import {CheckIcon, XIcon} from '@primer/octicons-react'
3 +import React from 'react'
4 +import Caption from './caption'
5 +
6 +export function DoDontContainer({stacked, children}) {
7 + return (
8 + <Grid
9 + gridTemplateColumns={['1fr', null, stacked ? '1fr' : '1fr 1fr']}
10 + gridGap={3}
11 + mb={3}
12 + >
13 + {children}
14 + </Grid>
15 + )
16 +}
17 +
18 +DoDontContainer.defaultProps = {
19 + stacked: false,
20 +}
21 +
22 +export function Do(props) {
23 + return <DoDontBase {...props} text="Do" icon={CheckIcon} iconBg="green.5" />
24 +}
25 +
26 +export function Dont(props) {
27 + return <DoDontBase {...props} text="Don't" icon={XIcon} iconBg="red.5" />
28 +}
29 +
30 +function DoDontBase({src, alt, children, text, icon: Icon, iconBg}) {
31 + return (
32 + <Flex flexDirection="column">
33 + <Flex alignSelf="start" flexDirection="row" alignItems="center" mb="2">
34 + <Flex bg={iconBg} color="white" p={1} style={{borderRadius: '50%'}}>
35 + <StyledOcticon icon={Icon} verticalAlign="middle" size={12} />
36 + </Flex>
37 + <Text fontWeight="bold" color="gray.9" ml={2}>
38 + {text}
39 + </Text>
40 + </Flex>
41 + <img src={src} alt={alt} width="100%" />
42 + <Caption mb={0}>{children}</Caption>
43 + </Flex>
44 + )
45 +}
46 +
47 +DoDontBase.defaultProps = {
48 + alt: '',
49 +}
theme/src/components/drawer.js new
+56
@@ -0,0 +1,56 @@
1 +import {Fixed} from '@primer/components'
2 +import {AnimatePresence, motion} from 'framer-motion'
3 +import React from 'react'
4 +import {FocusOn} from 'react-focus-on'
5 +
6 +function Drawer({isOpen, onDismiss, children}) {
7 + return (
8 + <AnimatePresence>
9 + {isOpen ? (
10 + <div
11 + // These event handlers fix a bug that caused links below the fold
12 + // to be unclickable in macOS Safari.
13 + // Reference: https://github.com/theKashey/react-focus-lock/issues/79
14 + onMouseDown={event => event.preventDefault()}
15 + onClick={event => event.target.focus()}
16 + >
17 + <FocusOn returnFocus={true} onEscapeKey={() => onDismiss()}>
18 + <Fixed
19 + key="overlay"
20 + as={motion.div}
21 + initial={{opacity: 0}}
22 + animate={{opacity: 1}}
23 + exit={{opacity: 0}}
24 + transition={{type: 'tween'}}
25 + top={0}
26 + right={0}
27 + bottom={0}
28 + left={0}
29 + bg="rgba(0, 0, 0, 0.5)"
30 + onClick={() => onDismiss()}
31 + />
32 +
33 + <Fixed
34 + key="drawer"
35 + as={motion.div}
36 + initial={{x: '100%'}}
37 + animate={{x: 0}}
38 + exit={{x: '100%'}}
39 + transition={{type: 'tween', duration: 0.2}}
40 + width={300}
41 + top={0}
42 + right={0}
43 + bottom={0}
44 + bg="gray.0"
45 + style={{zIndex: 1}}
46 + >
47 + {children}
48 + </Fixed>
49 + </FocusOn>
50 + </div>
51 + ) : null}
52 + </AnimatePresence>
53 + )
54 +}
55 +
56 +export default Drawer
theme/src/components/frame.js new
+35
@@ -0,0 +1,35 @@
1 +import React from 'react'
2 +import FrameComponent, {FrameContextConsumer} from 'react-frame-component'
3 +import {StyleSheetManager} from 'styled-components'
4 +import Measure from 'react-measure'
5 +
6 +function Frame({children}) {
7 + const [height, setHeight] = React.useState('auto')
8 + return (
9 + <FrameComponent style={{width: '100%', border: 0, height}}>
10 + <FrameContextConsumer>
11 + {({document}) => {
12 + // By default, styled-components injects styles in the head of the page.
13 + // However, styles from the page's head don't apply inside iframes.
14 + // We're using StyleSheetManager to make styled-components inject styles
15 + // into the head of the iframe instead.
16 + return (
17 + <StyleSheetManager target={document.head}>
18 + <Measure
19 + // iframes don't adjust to the height of their content by default.
20 + // We're using Measure to calculate the size of the content
21 + // and adjust the iframe's height dynamically.
22 + bounds={true}
23 + onResize={rect => setHeight(rect.bounds.height)}
24 + >
25 + {({measureRef}) => <div ref={measureRef}>{children}</div>}
26 + </Measure>
27 + </StyleSheetManager>
28 + )
29 + }}
30 + </FrameContextConsumer>
31 + </FrameComponent>
32 + )
33 +}
34 +
35 +export default Frame
theme/src/components/head.js new
+27
@@ -0,0 +1,27 @@
1 +import React from 'react'
2 +import Helmet from 'react-helmet'
3 +import useSiteMetdata from '../use-site-metadata'
4 +
5 +function Head(props) {
6 + const siteMetadata = useSiteMetdata()
7 + const title = props.title
8 + ? `${props.title} | ${siteMetadata.title}`
9 + : siteMetadata.title
10 + const description = props.description || siteMetadata.description
11 + const lang = props.lang || siteMetadata.lang
12 +
13 + return (
14 + <Helmet>
15 + <title>{title}</title>
16 + <meta name="description" content={description} />
17 + <meta property="og:title" content={title} />
18 + <meta property="og:description" content={description} />
19 + <meta property="og:image" content={siteMetadata.imageUrl} />
20 + <meta property="twitter:card" content="summary_large_image" />
21 +
22 + <html lang={lang} />
23 + </Helmet>
24 + )
25 +}
26 +
27 +export default Head
theme/src/components/header.js new
+135
@@ -0,0 +1,135 @@
1 +import {Box, Flex, Link, Sticky} from '@primer/components'
2 +import {
3 + SearchIcon,
4 + ThreeBarsIcon,
5 +} from '@primer/octicons-react'
6 +import {Link as GatsbyLink} from 'gatsby'
7 +import React from 'react'
8 +import styled from 'styled-components';
9 +import {ThemeContext} from 'styled-components'
10 +import headerNavItems from '../header-nav.yml'
11 +import useSiteMetadata from '../use-site-metadata'
12 +import DarkButton from './dark-button'
13 +import MobileSearch from './mobile-search'
14 +import NavDrawer, {useNavDrawerState} from './nav-drawer'
15 +import NavDropdown, {NavDropdownItem} from './nav-dropdown'
16 +import Search from './search'
17 +import NpmLogo from './npm-logo'
18 +
19 +export const HEADER_HEIGHT = 66
20 +
21 +const NpmHeaderBar = styled(Box)`
22 + height: 10px;
23 + background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
24 +`
25 +
26 +function Header({location, isSearchEnabled = true}) {
27 + const theme = React.useContext(ThemeContext)
28 + const [isNavDrawerOpen, setIsNavDrawerOpen] = useNavDrawerState(
29 + theme.breakpoints[2],
30 + )
31 + const [isMobileSearchOpen, setIsMobileSearchOpen] = React.useState(false)
32 + const siteMetadata = useSiteMetadata()
33 +
34 + const logoStyle = { 'color': '#cb0000' };
35 + const titleStyle = { 'color': '#dddddd', 'fontWeight': '600' };
36 +
37 + return (
38 + <Sticky>
39 + <NpmHeaderBar />
40 + <Flex
41 + height={HEADER_HEIGHT}
42 + px={[3, null, null, 4]}
43 + alignItems="center"
44 + justifyContent="space-between"
45 + bg="#333333"
46 + >
47 + <Flex alignItems="center">
48 + <Link as={GatsbyLink} to="/" style={logoStyle} mr={3}>
49 + <NpmLogo size="32" />
50 + </Link>
51 + <Link as={GatsbyLink} to="/" style={titleStyle} mr={4}>
52 + {siteMetadata.title}
53 + </Link>
54 +
55 + {isSearchEnabled ? (
56 + <Box display={['none', null, null, 'block']} ml={4}>
57 + <Search />
58 + </Box>
59 + ) : null}
60 + </Flex>
61 + <Flex>
62 + <Box display={['none', null, null, 'block']}>
63 + <HeaderNavItems items={headerNavItems} />
64 + </Box>
65 + <Flex display={['flex', null, null, 'none']}>
66 + {isSearchEnabled ? (
67 + <>
68 + <DarkButton
69 + aria-label="Search"
70 + aria-expanded={isMobileSearchOpen}
71 + onClick={() => setIsMobileSearchOpen(true)}
72 + >
73 + <SearchIcon />
74 + </DarkButton>
75 + <MobileSearch
76 + isOpen={isMobileSearchOpen}
77 + onDismiss={() => setIsMobileSearchOpen(false)}
78 + />
79 + </>
80 + ) : null}
81 + <DarkButton
82 + aria-label="Menu"
83 + aria-expanded={isNavDrawerOpen}
84 + onClick={() => setIsNavDrawerOpen(true)}
85 + ml={3}
86 + >
87 + <ThreeBarsIcon />
88 + </DarkButton>
89 + <NavDrawer
90 + location={location}
91 + isOpen={isNavDrawerOpen}
92 + onDismiss={() => setIsNavDrawerOpen(false)}
93 + />
94 + </Flex>
95 + </Flex>
96 + </Flex>
97 + </Sticky>
98 + )
99 +}
100 +
101 +function HeaderNavItems({items}) {
102 + return (
103 + <Flex alignItems="center" color="gray.2">
104 + {items.map((item, index) => {
105 + if (item.children) {
106 + return (
107 + <Box ml={4} key={index}>
108 + <NavDropdown title={item.title}>
109 + {item.children.map((child) => (
110 + <NavDropdownItem key={child.title} href={child.url}>
111 + {child.title}
112 + </NavDropdownItem>
113 + ))}
114 + </NavDropdown>
115 + </Box>
116 + )
117 + }
118 +
119 + return (
120 + <Link
121 + key={index}
122 + href={item.url}
123 + display="block"
124 + color="inherit"
125 + ml={4}
126 + >
127 + {item.title}
128 + </Link>
129 + )
130 + })}
131 + </Flex>
132 + )
133 +}
134 +
135 +export default Header
theme/src/components/heading.js new
+80
@@ -0,0 +1,80 @@
1 +import {Heading, Link} from '@primer/components'
2 +import {LinkIcon} from '@primer/octicons-react'
3 +import themeGet from '@styled-system/theme-get'
4 +import GithubSlugger from 'github-slugger'
5 +import React from 'react'
6 +import textContent from 'react-addons-text-content'
7 +import styled from 'styled-components'
8 +import {HEADER_HEIGHT} from './header'
9 +
10 +const StyledHeading = styled(Heading)`
11 + margin-top: ${themeGet('space.4')};
12 + margin-bottom: ${themeGet('space.3')};
13 + scroll-margin-top: ${HEADER_HEIGHT + 24}px;
14 +
15 + & .octicon-link {
16 + visibility: hidden;
17 + }
18 +
19 + &:hover .octicon-link,
20 + &:focus-within .octicon-link {
21 + visibility: visible;
22 + }
23 +`
24 +
25 +function MarkdownHeading({children, ...props}) {
26 + const slugger = new GithubSlugger()
27 + const text = children ? textContent(children) : ''
28 + const id = text ? slugger.slug(text) : ''
29 +
30 + return (
31 + <StyledHeading id={id} {...props}>
32 + <Link
33 + href={`#${id}`}
34 + p={2}
35 + ml={-32}
36 + color="gray.8"
37 + aria-label={`${text} permalink`}
38 + >
39 + <LinkIcon className="octicon-link" verticalAlign="middle" />
40 + </Link>
41 + {children}
42 + </StyledHeading>
43 + )
44 +}
45 +
46 +const StyledH1 = styled(StyledHeading).attrs({as: 'h1'})`
47 + padding-bottom: ${themeGet('space.1')};
48 + font-size: ${themeGet('fontSizes.5')};
49 + border-bottom: 1px solid ${themeGet('colors.gray.2')};
50 +`
51 +
52 +const StyledH2 = styled(StyledHeading).attrs({as: 'h2'})`
53 + padding-bottom: ${themeGet('space.1')};
54 + font-size: ${themeGet('fontSizes.4')};
55 + border-bottom: 1px solid ${themeGet('colors.gray.2')};
56 +`
57 +
58 +const StyledH3 = styled(StyledHeading).attrs({as: 'h3'})`
59 + font-size: ${themeGet('fontSizes.3')};
60 +`
61 +
62 +const StyledH4 = styled(StyledHeading).attrs({as: 'h4'})`
63 + font-size: ${themeGet('fontSizes.2')};
64 +`
65 +
66 +const StyledH5 = styled(StyledHeading).attrs({as: 'h5'})`
67 + font-size: ${themeGet('fontSizes.1')};
68 +`
69 +
70 +const StyledH6 = styled(StyledHeading).attrs({as: 'h6'})`
71 + font-size: ${themeGet('fontSizes.1')};
72 + color: ${themeGet('colors.gray.5')};
73 +`
74 +
75 +export const H1 = (props) => <MarkdownHeading as={StyledH1} {...props} />
76 +export const H2 = (props) => <MarkdownHeading as={StyledH2} {...props} />
77 +export const H3 = (props) => <MarkdownHeading as={StyledH3} {...props} />
78 +export const H4 = (props) => <MarkdownHeading as={StyledH4} {...props} />
79 +export const H5 = (props) => <MarkdownHeading as={StyledH5} {...props} />
80 +export const H6 = (props) => <MarkdownHeading as={StyledH6} {...props} />
theme/src/components/hero-layout.js new
+45
@@ -0,0 +1,45 @@
1 +import {Box, Flex} from '@primer/components'
2 +import React from 'react'
3 +import Container from './container'
4 +import PageFooter from './page-footer'
5 +import Head from './head'
6 +import Header from './header'
7 +import Hero from './hero'
8 +import Sidebar from './sidebar'
9 +
10 +function HeroLayout({children, pageContext, location}) {
11 + const {additionalContributors = []} = pageContext.frontmatter
12 +
13 + return (
14 + <Flex flexDirection="column" minHeight="100vh">
15 + <Head />
16 + <Header location={location} isSearchEnabled={pageContext.isSearchEnabled} />
17 + <Flex flex="1 1 auto" flexDirection="row">
18 + <Box display={['none', null, null, 'block']}>
19 + <Sidebar
20 + editOnGitHub={
21 + pageContext.themeOptions.showSidebarEditLink &&
22 + pageContext.themeOptions.editOnGitHub
23 + }
24 + location={location}
25 + />
26 + </Box>
27 + <Box width="100%">
28 + <Hero />
29 + <Container>
30 + {children}
31 + <PageFooter
32 + editOnGitHub={pageContext.themeOptions.editOnGitHub}
33 + editUrl={pageContext.themeOptions.editUrl}
34 + contributors={pageContext.contributors.concat(
35 + additionalContributors.map(login => ({login})),
36 + )}
37 + />
38 + </Container>
39 + </Box>
40 + </Flex>
41 + </Flex>
42 + )
43 +}
44 +
45 +export default HeroLayout
theme/src/components/hero.js new
+23
@@ -0,0 +1,23 @@
1 +import {Box, Heading, Text} from '@primer/components'
2 +import React from 'react'
3 +import useSiteMetadata from '../use-site-metadata'
4 +import Container from './container'
5 +
6 +function Hero() {
7 + const {title, description} = useSiteMetadata()
8 +
9 + return (
10 + <Box bg="black" py={6}>
11 + <Container>
12 + <Heading as="h1" color="white" fontSize={7} m={0}>
13 + {title}
14 + </Heading>
15 + <Text as="p" m={0} color="gray.4" fontSize={4}>
16 + {description}
17 + </Text>
18 + </Container>
19 + </Box>
20 + )
21 +}
22 +
23 +export default Hero
theme/src/components/horizontal-rule.js new
+12
@@ -0,0 +1,12 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const HorizontalRule = styled.hr`
5 + height: ${themeGet('space.1')};
6 + padding: 0;
7 + margin: ${themeGet('space.4')} 0;
8 + background-color: ${themeGet('colors.gray.2')};
9 + border: 0;
10 +`
11 +
12 +export default HorizontalRule
theme/src/components/image.js new
+10
@@ -0,0 +1,10 @@
1 +import themeGet from '@styled-system/theme-get'
2 +import styled from 'styled-components'
3 +
4 +const Image = styled.img`
5 + max-width: 100%;
6 + box-sizing: content-box;
7 + background-color: ${themeGet('colors.white')};
8 +`
9 +
10 +export default Image
theme/src/components/index.js new
+54
@@ -0,0 +1,54 @@
1 +import React from 'react';
2 +import { Location } from '@reach/router'
3 +import {Box, Link} from '@primer/components'
4 +import {Link as GatsbyLink} from 'gatsby'
5 +import NavHierarchy from '../nav-hierarchy'
6 +
7 +function showHierarchy(items, props, depth = 1) {
8 + let hierarchy;
9 +
10 + if (props.depth && depth > props.depth) {
11 + return null;
12 + }
13 +
14 + return (
15 + <Box as="ul">
16 + {items.map(item => (
17 + <Box as="li" key={item.url}>
18 + <Link as={GatsbyLink} key={item.title} to={item.url}>{item.title}</Link>
19 + {item.description != null ? (
20 + <>
21 + <Box style={{fontSize: '0.85em', marginBottom: '0.5em'}}>
22 + {item.description}
23 + </Box>
24 + </>
25 + ) : null}
26 + {(hierarchy = NavHierarchy.getHierarchy(item, props)) != null ? showHierarchy(hierarchy, props, depth + 1) : null}
27 + </Box>
28 + ))}
29 + </Box>
30 + );
31 +}
32 +
33 +function Index(props) {
34 + return (
35 + <Location>
36 + {({location}) => {
37 + let path = NavHierarchy.getLocation(location.pathname);
38 + let root = props.root ? props.root : path;
39 + root = root.replace(/\/+$/g, '');
40 +
41 + const rootItem = NavHierarchy.getItem(root);
42 + const hierarchy = NavHierarchy.getHierarchy(rootItem, props);
43 +
44 + if (!hierarchy) {
45 + throw new Error(`could not find entry for ${root}`);
46 + }
47 +
48 + return showHierarchy(hierarchy, props);
49 + }}
50 + </Location>
51 + );
52 +}
53 +
54 +export default Index
theme/src/components/inline-code.js new
+12
@@ -0,0 +1,12 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const InlineCode = styled.code`
5 + padding: 0.2em 0.4em;
6 + font-family: ${themeGet('fonts.mono')};
7 + font-size: 85%;
8 + background-color: ${themeGet('colors.gray.1')};
9 + border-radius: ${themeGet('radii.1')};
10 +`
11 +
12 +export default InlineCode
theme/src/components/layout.js new
+160
@@ -0,0 +1,160 @@
1 +import {
2 + BorderBox,
3 + Box,
4 + Details,
5 + Flex,
6 + Grid,
7 + Heading,
8 + Position,
9 + StyledOcticon,
10 + Text,
11 +} from '@primer/components'
12 +import {ChevronDownIcon, ChevronRightIcon} from '@primer/octicons-react'
13 +import React from 'react'
14 +import {MDXProvider} from "@mdx-js/react"
15 +import Head from './head'
16 +import Header, {HEADER_HEIGHT} from './header'
17 +import Index from './index'
18 +import Note from './note'
19 +import PageFooter from './page-footer'
20 +import Prompt from './prompt'
21 +import PromptReply from './prompt-reply'
22 +import Screenshot from './screenshot'
23 +import Sidebar from './sidebar'
24 +import SourceLink from './source-link'
25 +import StatusLabel from './status-label'
26 +import TableOfContents from './table-of-contents'
27 +import VariantSelect from './variant-select'
28 +import NavHierarchy from '../nav-hierarchy'
29 +
30 +function Layout({children, pageContext, location}) {
31 + const {
32 + title,
33 + description,
34 + status,
35 + source,
36 + additionalContributors = [],
37 + } = pageContext.frontmatter
38 +
39 + const variantRoot = NavHierarchy.getVariantRoot(location.pathname);
40 +
41 + return (
42 + <MDXProvider components={{
43 + Index,
44 + Note,
45 + Prompt,
46 + PromptReply,
47 + Screenshot
48 + }}>
49 +
50 + <Flex flexDirection="column" minHeight="100vh">
51 + <Head title={title} description={description} />
52 + <Header location={location} isSearchEnabled={pageContext.isSearchEnabled} />
53 + <Flex flex="1 1 auto" flexDirection="row" css={{zIndex: 0}}>
54 + <Box display={['none', null, null, 'block']}>
55 + <Sidebar
56 + editOnGitHub={
57 + pageContext.themeOptions.showSidebarEditLink &&
58 + pageContext.themeOptions.editOnGitHub
59 + }
60 + location={location}
61 + />
62 + </Box>
63 + <Grid
64 + id="skip-nav"
65 + maxWidth="100%"
66 + gridTemplateColumns={['100%', null, 'minmax(0, 65ch) 220px']}
67 + gridTemplateAreas={[
68 + '"heading" "content"',
69 + null,
70 + '"heading table-of-contents" "content table-of-contents"',
71 + ]}
72 + gridColumnGap={[null, null, 6, 7]}
73 + gridRowGap={3}
74 + mx="auto"
75 + p={[5, 6, null, 7]}
76 + css={{alignItems: 'start', alignSelf: 'start'}}
77 + >
78 + <Box css={{gridArea: 'heading'}}>
79 + <BorderBox
80 + borderWidth={0}
81 + borderBottomWidth={1}
82 + borderRadius={0}
83 + pb={2}
84 + >
85 + <Box>
86 + <Box>
87 + <Heading as="h1">{title}</Heading>
88 + {description}
89 + </Box>
90 + </Box>
91 + </BorderBox>
92 + {variantRoot != null ? (
93 + <Box css={{'margin-top': '25px'}}>
94 + <VariantSelect overlay={true} direction="se" menuWidth="min(30ch, 500px)" root={variantRoot} location={location} />
95 + </Box>
96 + ) : null}
97 + </Box>
98 + {pageContext.tableOfContents.items ? (
99 + <Position
100 + display={['none', null, 'block']}
101 + css={{gridArea: 'table-of-contents', overflow: 'auto'}}
102 + position="sticky"
103 + top={HEADER_HEIGHT + 24}
104 + mt="6px"
105 + maxHeight={`calc(100vh - ${HEADER_HEIGHT}px - 24px)`}
106 + >
107 + <Text display="inline-block" fontWeight="bold" mb={1}>
108 + Table of contents
109 + </Text>
110 + <TableOfContents items={pageContext.tableOfContents.items} />
111 + </Position>
112 + ) : null}
113 + <Box css={{gridArea: 'content'}}>
114 + {status || source ? (
115 + <Flex mb={3} alignItems="center">
116 + {status ? <StatusLabel status={status} /> : null}
117 + <Box mx="auto" />
118 + {source ? <SourceLink href={source} /> : null}
119 + </Flex>
120 + ) : null}
121 + {pageContext.tableOfContents.items ? (
122 + <Box display={['block', null, 'none']} mb={3}>
123 + <Details>
124 + {({open}) => (
125 + <>
126 + <Text as="summary" fontWeight="bold">
127 + {open ? (
128 + <StyledOcticon icon={ChevronDownIcon} mr={2} />
129 + ) : (
130 + <StyledOcticon icon={ChevronRightIcon} mr={2} />
131 + )}
132 + Table of contents
133 + </Text>
134 + <Box pt={1}>
135 + <TableOfContents
136 + items={pageContext.tableOfContents.items}
137 + />
138 + </Box>
139 + </>
140 + )}
141 + </Details>
142 + </Box>
143 + ) : null}
144 + {children}
145 + <PageFooter
146 + editOnGitHub={pageContext.themeOptions.editOnGitHub}
147 + editUrl={pageContext.editUrl}
148 + contributors={pageContext.contributors.concat(
149 + additionalContributors.map((login) => ({login})),
150 + )}
151 + />
152 + </Box>
153 + </Grid>
154 + </Flex>
155 + </Flex>
156 + </MDXProvider>
157 + )
158 +}
159 +
160 +export default Layout
theme/src/components/list.js new
+26
@@ -0,0 +1,26 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const List = styled.ul`
5 + padding-left: 2em;
6 +
7 + ul,
8 + ol {
9 + margin-top: 0;
10 + margin-bottom: 0;
11 + }
12 +
13 + li {
14 + word-wrap: break-all;
15 + }
16 +
17 + li > p {
18 + margin-top: ${themeGet('space.3')};
19 + }
20 +
21 + li + li {
22 + margin-top: ${themeGet('space.1')};
23 + }
24 +`
25 +
26 +export default List
theme/src/components/live-code.js new
+87
@@ -0,0 +1,87 @@
1 +import {Absolute, BorderBox, Relative, Text} from '@primer/components'
2 +import htmlReactParser from 'html-react-parser'
3 +import githubTheme from 'prism-react-renderer/themes/github'
4 +import React, { useState } from 'react'
5 +import reactElementToJsxString from 'react-element-to-jsx-string'
6 +import {LiveEditor, LiveError, LivePreview, LiveProvider} from 'react-live'
7 +import {ThemeContext} from 'styled-components'
8 +import scope from '../live-code-scope'
9 +import ClipboardCopy from './clipboard-copy'
10 +import LivePreviewWrapper from './live-preview-wrapper'
11 +
12 +const languageTransformers = {
13 + html: html => htmlToJsx(html),
14 + jsx: jsx => wrapWithFragment(jsx),
15 +}
16 +
17 +function htmlToJsx(html) {
18 + try {
19 + const reactElement = htmlReactParser(removeNewlines(html))
20 + // The output of htmlReactParser could be a single React element
21 + // or an array of React elements. reactElementToJsxString does not accept arrays
22 + // so we have to wrap the output in React fragment.
23 + return reactElementToJsxString(<>{reactElement}</>)
24 + } catch (error) {
25 + return wrapWithFragment(html)
26 + }
27 +}
28 +
29 +function removeNewlines(string) {
30 + return string.replace(/(\r\n|\n|\r)/gm, '')
31 +}
32 +
33 +function wrapWithFragment(jsx) {
34 + return `<React.Fragment>${jsx}</React.Fragment>`
35 +}
36 +
37 +function LiveCode({code, language, noinline}) {
38 + const theme = React.useContext(ThemeContext)
39 + const [liveCode, setLiveCode] = useState(code)
40 + const handleChange = (updatedLiveCode) => setLiveCode(updatedLiveCode)
41 +
42 + return (
43 + <BorderBox
44 + flexDirection="column"
45 + mb={3}
46 + >
47 + <LiveProvider
48 + scope={scope}
49 + code={liveCode}
50 + transformCode={languageTransformers[language]}
51 + noInline={noinline}
52 + >
53 + <LivePreviewWrapper>
54 + <LivePreview />
55 + </LivePreviewWrapper>
56 + <Relative>
57 + <LiveEditor
58 + onChange={handleChange}
59 + theme={githubTheme}
60 + ignoreTabKey={true}
61 + padding={theme.space[3]}
62 + style={{
63 + fontFamily: theme.fonts.mono,
64 + fontSize: '85%',
65 + borderBottomLeftRadius: theme.radii[2],
66 + borderBottomRightRadius: theme.radii[2],
67 + }}
68 + />
69 + <Absolute top={0} right={0} p={2}>
70 + <ClipboardCopy value={liveCode} />
71 + </Absolute>
72 + </Relative>
73 + <Text
74 + as={LiveError}
75 + m={0}
76 + p={3}
77 + fontFamily="mono"
78 + fontSize={1}
79 + color="white"
80 + bg="red.5"
81 + />
82 + </LiveProvider>
83 + </BorderBox>
84 + )
85 +}
86 +
87 +export default LiveCode
theme/src/components/live-preview-wrapper.js new
+17
@@ -0,0 +1,17 @@
1 +import {BaseStyles, Box} from '@primer/components'
2 +import Frame from './frame'
3 +import React from 'react'
4 +
5 +// Users can shadow this file to wrap live previews.
6 +// This is useful for applying global styles.
7 +function LivePreviewWrapper({children}) {
8 + return (
9 + <Frame>
10 + <BaseStyles>
11 + <Box p={3}>{children}</Box>
12 + </BaseStyles>
13 + </Frame>
14 + )
15 +}
16 +
17 +export default LivePreviewWrapper
theme/src/components/mobile-search.js new
+136
@@ -0,0 +1,136 @@
1 +import {Absolute, Fixed, Flex} from '@primer/components'
2 +import {XIcon} from '@primer/octicons-react'
3 +import Downshift from 'downshift'
4 +import {AnimatePresence, motion} from 'framer-motion'
5 +import {navigate} from 'gatsby'
6 +import React from 'react'
7 +import {FocusOn} from 'react-focus-on'
8 +import useSearch from '../use-search'
9 +import DarkButton from './dark-button'
10 +import DarkTextInput from './dark-text-input'
11 +import SearchResults from './search-results'
12 +
13 +function stateReducer(state, changes) {
14 + switch (changes.type) {
15 + case Downshift.stateChangeTypes.changeInput:
16 + if (!changes.inputValue) {
17 + // Close the menu if the input is empty.
18 + return {...changes, isOpen: false}
19 + }
20 + return changes
21 + case Downshift.stateChangeTypes.blurInput:
22 + // Don't let a blur event change the state of `inputValue` or `isOpen`.
23 + return {...changes, inputValue: state.inputValue, isOpen: state.isOpen}
24 + default:
25 + return changes
26 + }
27 +}
28 +
29 +function MobileSearch({isOpen, onDismiss}) {
30 + const [query, setQuery] = React.useState('')
31 + const results = useSearch(query)
32 +
33 + function handleDismiss() {
34 + setQuery('')
35 + onDismiss()
36 + }
37 +
38 + return (
39 + <AnimatePresence>
40 + {isOpen ? (
41 + <FocusOn returnFocus={true} onEscapeKey={() => handleDismiss()}>
42 + <Fixed top={0} left={0} right={0} bottom={0} zIndex={1}>
43 + <Absolute
44 + as={motion.div}
45 + initial={{opacity: 0}}
46 + animate={{opacity: 1}}
47 + exit={{opacity: 0}}
48 + top={0}
49 + left={0}
50 + right={0}
51 + bottom={0}
52 + bg="rgba(0,0,0,0.5)"
53 + zIndex={-1}
54 + onClick={handleDismiss}
55 + />
56 + <Downshift
57 + inputValue={query}
58 + onInputValueChange={(inputValue) => setQuery(inputValue)}
59 + selectedItem={null}
60 + onSelect={(item) => {
61 + if (item) {
62 + navigate(item.path)
63 + handleDismiss()
64 + }
65 + }}
66 + itemToString={(item) => (item ? item.title : '')}
67 + stateReducer={stateReducer}
68 + >
69 + {({
70 + getInputProps,
71 + getItemProps,
72 + getMenuProps,
73 + getRootProps,
74 + isOpen: isMenuOpen,
75 + highlightedIndex,
76 + }) => (
77 + <Flex
78 + {...getRootProps({
79 + flexDirection: 'column',
80 + height: isMenuOpen ? '100%' : 'auto',
81 + })}
82 + >
83 + <Flex bg="gray.9" color="white" p={3} flex="0 0 auto">
84 + <motion.div
85 + initial={{scaleX: 0.1}}
86 + animate={{scaleX: 1}}
87 + exit={{scaleX: 0.1, transition: {duration: 0.1}}}
88 + transition={{type: 'tween', duration: 0.2}}
89 + style={{width: '100%', originX: '100%'}}
90 + >
91 + <DarkTextInput
92 + {...getInputProps({
93 + placeholder: `Search`,
94 + width: '100%',
95 + })}
96 + />
97 + </motion.div>
98 + <DarkButton
99 + ml={3}
100 + aria-label="Cancel"
101 + onClick={handleDismiss}
102 + >
103 + <XIcon />
104 + </DarkButton>
105 + </Flex>
106 + {isMenuOpen ? (
107 + <Flex
108 + {...getMenuProps({
109 + bg: 'white',
110 + py: 1,
111 + flexDirection: 'column',
112 + flex: '1 1 auto',
113 + style: {
114 + overflow: 'auto',
115 + WebkitOverflowScrolling: 'touch',
116 + },
117 + })}
118 + >
119 + <SearchResults
120 + results={results}
121 + getItemProps={getItemProps}
122 + highlightedIndex={highlightedIndex}
123 + />
124 + </Flex>
125 + ) : null}
126 + </Flex>
127 + )}
128 + </Downshift>
129 + </Fixed>
130 + </FocusOn>
131 + ) : null}
132 + </AnimatePresence>
133 + )
134 +}
135 +
136 +export default MobileSearch
theme/src/components/nav-drawer.js new
+153
@@ -0,0 +1,153 @@
1 +import {BorderBox, Flex, Link, Text} from '@primer/components'
2 +import {ChevronDownIcon, ChevronUpIcon, XIcon} from '@primer/octicons-react'
3 +import {Link as GatsbyLink} from 'gatsby'
4 +import debounce from 'lodash.debounce'
5 +import React from 'react'
6 +import navItems from '../nav.yml'
7 +import headerNavItems from '../header-nav.yml'
8 +import useSiteMetadata from '../use-site-metadata'
9 +import DarkButton from './dark-button'
10 +import Details from './details'
11 +import Drawer from './drawer'
12 +import NavItems from './nav-items'
13 +
14 +export function useNavDrawerState(breakpoint) {
15 + // Handle string values from themes with units at the end
16 + if (typeof breakpoint === 'string') {
17 + breakpoint = parseInt(breakpoint, 10)
18 + }
19 + const [isOpen, setOpen] = React.useState(false)
20 +
21 + const onResize = React.useCallback(() => {
22 + if (window.innerWidth >= breakpoint) {
23 + setOpen(false)
24 + }
25 + }, [setOpen])
26 +
27 + const debouncedOnResize = React.useCallback(debounce(onResize, 250), [
28 + onResize,
29 + ])
30 +
31 + React.useEffect(() => {
32 + if (isOpen) {
33 + window.addEventListener('resize', debouncedOnResize)
34 + return () => {
35 + // cancel any debounced invocation of the resize handler
36 + debouncedOnResize.cancel()
37 + window.removeEventListener('resize', debouncedOnResize)
38 + }
39 + }
40 + }, [isOpen, debouncedOnResize])
41 +
42 + return [isOpen, setOpen]
43 +}
44 +
45 +function NavDrawer({location, isOpen, onDismiss}) {
46 + const siteMetadata = useSiteMetadata()
47 + return (
48 + <Drawer isOpen={isOpen} onDismiss={onDismiss}>
49 + <Flex
50 + flexDirection="column"
51 + height="100%"
52 + bg="gray.0"
53 + style={{overflow: 'auto', WebkitOverflowScrolling: 'touch'}}
54 + >
55 + <Flex flexDirection="column" flex="1 0 auto" color="gray.7" bg="gray.0">
56 + <BorderBox
57 + borderWidth={0}
58 + borderRadius={0}
59 + borderBottomWidth={1}
60 + borderColor="gray.7"
61 + >
62 + <Flex
63 + py={3}
64 + pl={4}
65 + pr={3}
66 + alignItems="center"
67 + justifyContent="space-between"
68 + color="gray.1"
69 + bg="gray.9"
70 + >
71 + <Link
72 + as={GatsbyLink}
73 + to="/"
74 + display="inline-block"
75 + color="inherit"
76 + >
77 + {siteMetadata.title}
78 + </Link>
79 + <DarkButton aria-label="Close" onClick={onDismiss}>
80 + <XIcon />
81 + </DarkButton>
82 + </Flex>
83 + </BorderBox>
84 + {navItems.length > 0 ? (
85 + <Flex flexDirection="column">
86 + <NavItems location={location} items={navItems} editOnGitHub={false} />
87 + </Flex>
88 + ) : null}
89 + </Flex>
90 + {headerNavItems.length > 0 ? (
91 + <Flex
92 + flexDirection="column"
93 + flex="1 0 auto"
94 + color="gray.1"
95 + bg="gray.9"
96 + >
97 + <HeaderNavItems items={headerNavItems} />
98 + </Flex>
99 + ) : null}
100 + </Flex>
101 + </Drawer>
102 + )
103 +}
104 +
105 +function HeaderNavItems({items}) {
106 + return items.map((item, index) => {
107 + return (
108 + <BorderBox
109 + key={item.title}
110 + borderWidth={0}
111 + borderRadius={0}
112 + borderTopWidth={index !== 0 ? 1 : 0}
113 + borderColor="gray.7"
114 + p={4}
115 + >
116 + {item.children ? (
117 + <Details key={index}>
118 + {({open, toggle}) => (
119 + <>
120 + <summary onClick={toggle} style={{cursor: 'pointer'}}>
121 + <Flex alignItems="center" justifyContent="space-between">
122 + <Text>{item.title}</Text>
123 + {open ? <ChevronUpIcon /> : <ChevronDownIcon />}
124 + </Flex>
125 + </summary>
126 + <Flex flexDirection="column" mt={2}>
127 + {item.children.map((child) => (
128 + <Link
129 + key={child.title}
130 + href={child.url}
131 + py={1}
132 + mt={2}
133 + fontSize={1}
134 + color="inherit"
135 + >
136 + {child.title}
137 + </Link>
138 + ))}
139 + </Flex>
140 + </>
141 + )}
142 + </Details>
143 + ) : (
144 + <Link key={index} href={item.url} color="inherit" display="block">
145 + {item.title}
146 + </Link>
147 + )}
148 + </BorderBox>
149 + )
150 + })
151 +}
152 +
153 +export default NavDrawer
theme/src/components/nav-dropdown.js new
+46
@@ -0,0 +1,46 @@
1 +import {Absolute, BorderBox, StyledOcticon, Text, themeGet} from '@primer/components'
2 +import {ChevronDownIcon} from '@primer/octicons-react'
3 +import React from 'react'
4 +import styled from 'styled-components'
5 +import Details from './details'
6 +
7 +function NavDropdown({title, children}) {
8 + return (
9 + <Details overlay={true}>
10 + {({toggle}) => (
11 + <>
12 + <summary style={{cursor: 'pointer'}} onClick={toggle}>
13 + <Text>{title}</Text>
14 + <StyledOcticon icon={ChevronDownIcon} ml={1} />
15 + </summary>
16 + <Absolute>
17 + <BorderBox
18 + bg="white"
19 + py={1}
20 + mt={2}
21 + boxShadow="medium"
22 + color="gray.8"
23 + >
24 + {children}
25 + </BorderBox>
26 + </Absolute>
27 + </>
28 + )}
29 + </Details>
30 + )
31 +}
32 +
33 +export const NavDropdownItem = styled.a`
34 + display: block;
35 + padding: ${themeGet('space.2')} ${themeGet('space.3')};
36 + color: inherit;
37 + text-decoration: none;
38 +
39 + &:hover {
40 + color: ${themeGet('colors.white')};
41 + background-color: ${themeGet('colors.blue.5')};
42 + text-decoration: none;
43 + }
44 +`
45 +
46 +export default NavDropdown
theme/src/components/nav-items.js new
+192
@@ -0,0 +1,192 @@
1 +import {BorderBox, Box, Flex, StyledOcticon, Link, themeGet} from '@primer/components'
2 +import {LinkExternalIcon} from '@primer/octicons-react'
3 +import {Link as GatsbyLink} from 'gatsby'
4 +import preval from 'preval.macro'
5 +import React from 'react'
6 +import styled from 'styled-components'
7 +import NavHierarchy from '../nav-hierarchy'
8 +
9 +// This code needs to run at build-time so it can access the file system.
10 +const repositoryUrl = preval`
11 + const readPkgUp = require('read-pkg-up')
12 + const getPkgRepo = require('get-pkg-repo')
13 + try {
14 + const repo = getPkgRepo(readPkgUp.sync().package)
15 + module.exports = \`https://github.com/\${repo.user}/\${repo.project}\`
16 + } catch (error) {
17 + module.exports = ''
18 + }
19 +`
20 +
21 +const getActiveProps = (className) => (props) => {
22 + const location = NavHierarchy.getLocation(props.location.pathname);
23 + const href = NavHierarchy.getLocation(props.href);
24 +
25 + if (NavHierarchy.isActiveUrl(location, href)) {
26 + return { className: `${className} active` };
27 + }
28 +
29 + return { className: `${className}` };
30 +}
31 +
32 +const ActiveLink = ({className, children, ...props}) => (
33 + <Link as={GatsbyLink} getProps={getActiveProps(className)} {...props}>
34 + {children}
35 + </Link>
36 +)
37 +
38 +const NavLink = styled(ActiveLink)`
39 + color: inherit;
40 + text-decoration: none;
41 + :hover {
42 + text-decoration: underline;
43 + }
44 +`
45 +
46 +const TopLevelLink = styled(NavLink)`
47 + &.active {
48 + font-weight: ${themeGet('fontWeights.bold')};
49 + color: ${themeGet('colors.gray.8')};
50 + }
51 + &.activePage {
52 + color: ${themeGet('colors.gray.8')};
53 + }
54 +`
55 +const SecondLevelLink = styled(NavLink)`
56 + display: block;
57 + font-size: ${themeGet('fontSizes.1')};
58 + padding-top: ${themeGet('space.1')};
59 + padding-bottom: ${themeGet('space.1')};
60 + margin-top: ${themeGet('space.2')};
61 + &.active {
62 + font-weight: ${themeGet('fontWeights.bold')};
63 + color: ${themeGet('colors.gray.8')};
64 + }
65 +`
66 +
67 +const ThirdLevelLink = styled(NavLink)`
68 + display: block;
69 + font-size: ${themeGet('fontSizes.1')};
70 + padding-top: ${themeGet('space.1')};
71 + padding-bottom: ${themeGet('space.1')};
72 + border-left: solid 1px ${themeGet('colors.gray.3')};
73 + padding-left: calc(${themeGet('space.2')} + (${themeGet('space.1')} - 1px));
74 + color: ${themeGet('colors.blue.5')};
75 + &.active {
76 + border-left: solid ${themeGet('space.1')} ${themeGet('colors.gray.3')};
77 + padding-left: ${themeGet('space.2')};
78 + color: ${themeGet('colors.gray.8')};
79 + }
80 +`
81 +
82 +const Description = styled(Box)`
83 + & {
84 + color: ${themeGet('colors.gray.6')};
85 + font-size: 0.8em;
86 + font-weight: normal;
87 + }
88 +`
89 +
90 +function topLevelItems(items, path) {
91 + if (items == null) {
92 + return null;
93 + }
94 +
95 + return (
96 + <>
97 + {items.map((item) => {
98 + const children = NavHierarchy.isActiveUrl(path, item.url) ? NavHierarchy.getHierarchy(item, { path: path, hideVariants: true }) : null;
99 +
100 + return (
101 + <BorderBox
102 + key={item.title}
103 + borderWidth={0}
104 + borderRadius={0}
105 + borderTopWidth={1}
106 + py={3}
107 + px={4}
108 + >
109 + <Flex flexDirection="column">
110 + <TopLevelLink to={item.url} key={item.title}>{item.title}</TopLevelLink>
111 + {secondLevelItems(children, path)}
112 + </Flex>
113 + </BorderBox>
114 + )
115 + })}
116 + </>
117 + );
118 +}
119 +
120 +function secondLevelItems(items, path) {
121 + if (items == null) {
122 + return null;
123 + }
124 +
125 + return (
126 + <Flex flexDirection="column" mt={2}>
127 + {items.map((item) => {
128 + const children = NavHierarchy.isActiveUrl(path, item.url) ? NavHierarchy.getHierarchy(item, { path: path, hideVariants: true }) : null;
129 + return(
130 + <Box key={item.title}>
131 + <SecondLevelLink key={item.url} to={item.url}>
132 + {item.title}
133 + {item.description != null ? (
134 + <>
135 + <Description>{item.description}</Description>
136 + </>
137 + ) : null}
138 + </SecondLevelLink>
139 + {thirdLevelItems(children, path)}
140 + </Box>
141 + )
142 + })}
143 + </Flex>
144 + );
145 +}
146 +
147 +function thirdLevelItems(items, path) {
148 + if (items == null) {
149 + return null;
150 + }
151 +
152 + return (
153 + <Flex flexDirection="column" mt={2}>
154 + {items.map((item) => (
155 + <ThirdLevelLink key={item.url} to={item.url}>
156 + {item.title}
157 + </ThirdLevelLink>
158 + ))}
159 + </Flex>
160 + )
161 +}
162 +
163 +function githubLink(props) {
164 + if (!repositoryUrl) {
165 + return null;
166 + }
167 +
168 + return (
169 + <BorderBox borderWidth={0} borderTopWidth={1} borderRadius={0} py={5} px={4}>
170 + <Link href={repositoryUrl} color="inherit">
171 + <Flex justifyContent="space-between" alignItems="center" color="gray.5">
172 + Edit on GitHub
173 + <StyledOcticon icon={LinkExternalIcon} color="gray.5" />
174 + </Flex>
175 + </Link>
176 + </BorderBox>
177 + );
178 +}
179 +
180 +function NavItems(props) {
181 + const path = NavHierarchy.getLocation(props.location.pathname);
182 + const items = NavHierarchy.getHierarchy(null, { path: path, hideVariants: true });
183 +
184 + return (
185 + <>
186 + {topLevelItems(items, path)}
187 + {props.editOnGitHub !== false ? githubLink(props) : null}
188 + </>
189 + )
190 +}
191 +
192 +export default NavItems
theme/src/components/note.js new
+24
@@ -0,0 +1,24 @@
1 +import React from 'react';
2 +import {BorderBox} from '@primer/components';
3 +
4 +function Note({children}) {
5 + return (
6 + <BorderBox
7 + borderWidth={1}
8 + borderRadius={0}
9 + borderColor='blue.1'
10 + backgroundColor='blue.0'
11 + px={3}
12 + py={2}
13 + my={4}
14 + >
15 + {React.Children.toArray(children).map((child, index, list) => (
16 + React.cloneElement(child, {
17 + style: index === list.length - 1 ? { marginBottom: '0' } : null,
18 + })
19 + ))}
20 + </BorderBox>
21 + );
22 +}
23 +
24 +export default Note;
theme/src/components/npm-logo.js new
+15
@@ -0,0 +1,15 @@
1 +import React from 'react';
2 +
3 +export default class NpmLogo extends React.Component {
4 + render() {
5 + const bgcolor = this.props.bg || "#cb0000";
6 + const fgcolor = this.props.fg || "#ffffff";
7 +
8 + return (
9 + <svg height={this.props.size} width={this.props.size} viewBox="0 0 700 700" fill="currentColor">
10 + <polygon fill={bgcolor} points="0,700 700,700 700,0 0,0" />
11 + <polygon fill={fgcolor} points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150 "/>
12 + </svg>
13 + );
14 + }
15 +}
theme/src/components/page-footer.js new
+29
@@ -0,0 +1,29 @@
1 +import {BorderBox, Grid, StyledOcticon, Link} from '@primer/components'
2 +import {PencilIcon} from '@primer/octicons-react'
3 +import React from 'react'
4 +import Contributors from './contributors'
5 +
6 +function PageFooter({ editOnGitHub, editUrl, contributors }) {
7 + return editUrl || contributors.length > 0 ? (
8 + <BorderBox borderWidth={0} borderTopWidth={1} mt={8} py={5}>
9 + <Grid gridGap={4}>
10 + {editOnGitHub !== false && editUrl != null ? (
11 + <Link href={editUrl}>
12 + <StyledOcticon icon={PencilIcon} mr={2} />
13 + Edit this page on GitHub
14 + </Link>
15 + ) : null}
16 +
17 + {contributors.length > 0 ? (
18 + <Contributors contributors={contributors} />
19 + ) : null}
20 + </Grid>
21 + </BorderBox>
22 + ) : null
23 +}
24 +
25 +PageFooter.defaultProps = {
26 + contributors: [],
27 +}
28 +
29 +export default PageFooter
theme/src/components/paragraph.js new
+8
@@ -0,0 +1,8 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const Paragraph = styled.p`
5 + margin: 0 0 ${themeGet('space.3')};
6 +`
7 +
8 +export default Paragraph
theme/src/components/prompt-reply.js new
+7
@@ -0,0 +1,7 @@
1 +import React from 'react';
2 +
3 +function PromptReply({children}) {
4 + return (<strong>{children}</strong>);
5 +}
6 +
7 +export default PromptReply;
theme/src/components/prompt.js new
+19
@@ -0,0 +1,19 @@
1 +import React from 'react'
2 +import {BorderBox, Text} from '@primer/components'
3 +
4 +function Prompt({children}) {
5 + return (
6 + <BorderBox
7 + as="pre"
8 + mt={0}
9 + mb={3}
10 + p={3}
11 + border={0}
12 + style={{color: 'rgb(57, 58, 52)', backgroundColor: 'rgb(246, 248, 250)', overflow: 'auto'}}
13 + >
14 + <Text fontFamily="mono" fontSize={1}>{children}</Text>
15 + </BorderBox>
16 + )
17 +}
18 +
19 +export default Prompt
theme/src/components/screenshot.js new
+18
@@ -0,0 +1,18 @@
1 +import React from 'react';
2 +import { withPrefix } from 'gatsby'
3 +
4 +function Screenshot(props) {
5 + if (!props.src) {
6 + throw new Error("src is required");
7 + }
8 +
9 + if (!props.alt) {
10 + throw new Error("alt text is required");
11 + }
12 +
13 + return (
14 + <div><img src={withPrefix(props.src)} alt={props.alt} style={{'border': 'solid 1px #999999', 'marginTop': '15px', 'maxWidth': 'min(100%, 525px)', 'maxHeight': '300px'}} /></div>
15 + );
16 +}
17 +
18 +export default Screenshot;
theme/src/components/search-results.js new
+54
@@ -0,0 +1,54 @@
1 +import {Flex, Text} from '@primer/components'
2 +import React from 'react'
3 +import useSiteMetadata from '../use-site-metadata'
4 +import NavHierarchy from '../nav-hierarchy'
5 +
6 +function SearchResults({results, getItemProps, highlightedIndex}) {
7 + const siteMetadata = useSiteMetadata()
8 +
9 + if (results.length === 0) {
10 + return (
11 + <Text as="div" p={3} fontSize={1} color="gray.7" width="100%">
12 + No results
13 + </Text>
14 + )
15 + }
16 +
17 + return results.map((item, index) => (
18 + <Flex
19 + key={item.path}
20 + {...getItemProps({
21 + item,
22 + flexDirection: 'column',
23 + flex: '0 0 auto',
24 + px: 3,
25 + py: 2,
26 + color: highlightedIndex === index ? 'white' : 'gray.8',
27 + bg: highlightedIndex === index ? 'blue.5' : 'transparent',
28 + style: {cursor: 'pointer'},
29 + })}
30 + >
31 + <Text
32 + fontSize={0}
33 + color={highlightedIndex === index ? 'blue.2' : 'gray.7'}
34 + >
35 + {getBreadcrumbs(siteMetadata.shortName, item.path).join(' / ')}
36 + </Text>
37 + {item.title}
38 + </Flex>
39 + ))
40 +}
41 +
42 +function getBreadcrumbs(siteTitle, path) {
43 + const hierarchy = NavHierarchy.getItemHierarchy(path);
44 +
45 + if (hierarchy) {
46 + hierarchy.pop();
47 + return hierarchy.map(item => item.shortName ? item.shortName : item.title);
48 + }
49 + else {
50 + return [ siteTitle ];
51 + }
52 +}
53 +
54 +export default SearchResults
theme/src/components/search.js new
+92
@@ -0,0 +1,92 @@
1 +import {BorderBox, Position} from '@primer/components'
2 +import Downshift from 'downshift'
3 +import {navigate} from 'gatsby'
4 +import React from 'react'
5 +import useSearch from '../use-search'
6 +import useSiteMetadata from '../use-site-metadata'
7 +import DarkTextInput from './dark-text-input'
8 +import SearchResults from './search-results'
9 +
10 +function stateReducer(state, changes) {
11 + switch (changes.type) {
12 + case Downshift.stateChangeTypes.changeInput:
13 + if (!changes.inputValue) {
14 + // Close the menu if the input is empty.
15 + return {...changes, isOpen: false}
16 + }
17 + return changes
18 + default:
19 + return changes
20 + }
21 +}
22 +
23 +function Search() {
24 + const [query, setQuery] = React.useState('')
25 + const results = useSearch(query)
26 + const siteMetadata = useSiteMetadata()
27 +
28 + return (
29 + <Downshift
30 + inputValue={query}
31 + onInputValueChange={inputValue => setQuery(inputValue)}
32 + // We don't need Downshift to keep track of a selected item because as
33 + // soon as an item is selected we navigate to a new page.
34 + // Let's avoid any unexpected states related to the selected item
35 + // by setting it to always be `null`.
36 + selectedItem={null}
37 + onSelect={item => {
38 + if (item) {
39 + navigate(item.path)
40 + setQuery('')
41 + }
42 + }}
43 + itemToString={item => (item ? item.title : '')}
44 + stateReducer={stateReducer}
45 + >
46 + {({
47 + getInputProps,
48 + getItemProps,
49 + getMenuProps,
50 + getRootProps,
51 + isOpen,
52 + highlightedIndex,
53 + }) => (
54 + <Position {...getRootProps({position: 'relative'})}>
55 + <DarkTextInput
56 + {...getInputProps({
57 + placeholder: `Search ${siteMetadata.title}`,
58 + width: 240,
59 + })}
60 + />
61 + {isOpen ? (
62 + <Position
63 + {...getMenuProps({
64 + position: 'absolute',
65 + left: 0,
66 + right: 0,
67 + pt: 2,
68 + })}
69 + >
70 + <BorderBox
71 + minWidth={300}
72 + maxHeight="70vh"
73 + py={1}
74 + boxShadow="medium"
75 + bg="white"
76 + style={{overflow: 'auto'}}
77 + >
78 + <SearchResults
79 + results={results}
80 + getItemProps={getItemProps}
81 + highlightedIndex={highlightedIndex}
82 + />
83 + </BorderBox>
84 + </Position>
85 + ) : null}
86 + </Position>
87 + )}
88 + </Downshift>
89 + )
90 +}
91 +
92 +export default Search
theme/src/components/sidebar.js new
+32
@@ -0,0 +1,32 @@
1 +import {BorderBox, Flex, Position} from '@primer/components'
2 +import React from 'react'
3 +import navItems from '../nav.yml'
4 +import {HEADER_HEIGHT} from './header'
5 +import NavItems from './nav-items'
6 +
7 +function Sidebar({location, editOnGitHub}) {
8 + return (
9 + <Position
10 + position="sticky"
11 + top={HEADER_HEIGHT}
12 + height={`calc(100vh - ${HEADER_HEIGHT}px)`}
13 + minWidth={260}
14 + color="gray.8"
15 + bg="gray.0"
16 + >
17 + <BorderBox
18 + borderWidth={0}
19 + borderRightWidth={1}
20 + borderRadius={0}
21 + height="100%"
22 + style={{overflow: 'auto'}}
23 + >
24 + <Flex flexDirection="column">
25 + <NavItems location={location} items={navItems} editOnGitHub={editOnGitHub} />
26 + </Flex>
27 + </BorderBox>
28 + </Position>
29 + )
30 +}
31 +
32 +export default Sidebar
theme/src/components/skip-link.js new
+43
@@ -0,0 +1,43 @@
1 +import {Link} from '@primer/components'
2 +import styled from 'styled-components'
3 +import React from 'react'
4 +
5 +function SkipLinkBase(props) {
6 + return (
7 + <Link
8 + {...props}
9 + backgroundColor="blue.6"
10 + color="white"
11 + p={3}
12 + href="#skip-nav"
13 + fontSize={1}
14 + >
15 + Skip to content
16 + </Link>
17 + )
18 +}
19 +
20 +const SkipLink = styled(SkipLinkBase)`
21 + z-index: 20;
22 + width: auto;
23 + height: auto;
24 + clip: auto;
25 + position: absolute;
26 + overflow: hidden;
27 +
28 + // The following rules are to ensure that the element
29 + // is visually hidden, unless it has focus. This is the recommended
30 + // way to hide content from:
31 + // https://webaim.org/techniques/css/invisiblecontent/#techniques
32 +
33 + &:not(:focus) {
34 + clip: rect(1px, 1px, 1px, 1px);
35 + clip-path: inset(50%);
36 + height: 1px;
37 + width: 1px;
38 + margin: -1px;
39 + padding: 0;
40 + }
41 +`
42 +
43 +export default SkipLink
theme/src/components/source-link.js new
+14
@@ -0,0 +1,14 @@
1 +import {Link, StyledOcticon} from '@primer/components'
2 +import {CodeIcon} from '@primer/octicons-react'
3 +import React from 'react'
4 +
5 +function SourceLink({href}) {
6 + return (
7 + <Link href={href} lineHeight="condensedUltra" fontSize={1}>
8 + <StyledOcticon icon={CodeIcon} mr={2} />
9 + View source
10 + </Link>
11 + )
12 +}
13 +
14 +export default SourceLink
theme/src/components/status-label.js new
+28
@@ -0,0 +1,28 @@
1 +import {BorderBox, StyledOcticon, Flex, Text} from '@primer/components'
2 +import {DotFillIcon} from '@primer/octicons-react'
3 +import React from 'react'
4 +
5 +const STATUS_COLORS = {
6 + stable: 'green.6',
7 + new: 'green.6',
8 + experimental: 'yellow.7',
9 + review: 'yellow.7',
10 + deprecated: 'red.6',
11 +}
12 +
13 +function getStatusColor(status) {
14 + return STATUS_COLORS[status.toLowerCase()] || 'gray.5'
15 +}
16 +
17 +function StatusLabel({status}) {
18 + return (
19 + <BorderBox display="inline-block" px={2} py={1}>
20 + <Flex alignItems="center">
21 + <StyledOcticon icon={DotFillIcon} color={getStatusColor(status)} mr={2} />
22 + <Text fontSize={1}>{status}</Text>
23 + </Flex>
24 + </BorderBox>
25 + )
26 +}
27 +
28 +export default StatusLabel
theme/src/components/table-of-contents.js new
+25
@@ -0,0 +1,25 @@
1 +import {Box, Link} from '@primer/components'
2 +import React from 'react'
3 +
4 +function TableOfContents({items, depth}) {
5 + return (
6 + <Box key={items} as="ul" m={0} p={0} css={{listStyle: 'none', lineHeight: '1.4em'}}>
7 + {items.map(item => (
8 + <Box as="li" key={item.url} pl={depth > 0 ? 3 : 0}>
9 + <Link key={item.title} display="inline-block" py={1} href={item.url} color="gray.6">
10 + {item.title}
11 + </Link>
12 + {item.items ? (
13 + <TableOfContents items={item.items} depth={depth + 1} />
14 + ) : null}
15 + </Box>
16 + ))}
17 + </Box>
18 + )
19 +}
20 +
21 +TableOfContents.defaultProps = {
22 + depth: 0,
23 +}
24 +
25 +export default TableOfContents
theme/src/components/table.js new
+34
@@ -0,0 +1,34 @@
1 +import styled from 'styled-components'
2 +import themeGet from '@styled-system/theme-get'
3 +
4 +const Table = styled.table`
5 + display: block;
6 + width: 100%;
7 + margin: 0 0 ${themeGet('space.3')};
8 + overflow: auto;
9 +
10 + th {
11 + font-weight: ${themeGet('fontWeights.bold')};
12 + }
13 +
14 + th,
15 + td {
16 + padding: ${themeGet('space.2')} ${themeGet('space.3')};
17 + border: 1px solid ${themeGet('colors.gray.2')};
18 + }
19 +
20 + tr {
21 + background-color: ${themeGet('colors.white')};
22 + border-top: 1px solid ${themeGet('colors.gray.2')};
23 +
24 + &:nth-child(2n) {
25 + background-color: ${themeGet('colors.gray.1')};
26 + }
27 + }
28 +
29 + img {
30 + background-color: transparent;
31 + }
32 +`
33 +
34 +export default Table
theme/src/components/variant-select.js new
+50
@@ -0,0 +1,50 @@
1 +// VariantSelect: allows a variant to be set up within a document hierarchy
2 +//
3 +// For example, given two paths `/docs/v1.0/foo` and `/docs/v2.0/foo`, the
4 +// second folder acts as a variant. If you use <VariantSelect root="/docs">
5 +// then you'll get a selection for the different variants (v1.0, v2.0).
6 +
7 +import React from 'react';
8 +import styled from 'styled-components';
9 +import { Dropdown } from '@primer/components';
10 +import NavHierarchy from '../nav-hierarchy'
11 +
12 +VariantSelect.Menu = styled(Dropdown.Menu)`
13 + width: ${props => props.width ? props.width : '160px'};
14 +`
15 +
16 +function VariantSelect(props) {
17 + const path = NavHierarchy.getPath(props.location.pathname);
18 + const vp = NavHierarchy.getVariantAndPage(props.root, path);
19 +
20 + if (!vp) {
21 + return null;
22 + }
23 +
24 + const variantPages = NavHierarchy.getVariantsForPage(props.root, vp.page);
25 + const items = [];
26 + let selectedItem = variantPages[0];
27 +
28 + if (variantPages.length === 0) {
29 + return null;
30 + }
31 +
32 + variantPages.forEach((match) => {
33 + if (match.page.url === path) {
34 + selectedItem = match;
35 + }
36 +
37 + items.push(<Dropdown.Item onClick={() => { window.location.href = match.page.url; }} key={match.variant.title}>{match.variant.title}</Dropdown.Item>);
38 + });
39 +
40 + return (
41 + <Dropdown overlay={props.overlay}>
42 + <Dropdown.Button>{selectedItem.variant.title}</Dropdown.Button>
43 + <VariantSelect.Menu direction={props.direction} width={props.menuWidth}>
44 + {items}
45 + </VariantSelect.Menu>
46 + </Dropdown>
47 + );
48 +}
49 +
50 +export default VariantSelect
theme/src/components/wrap-page-element.js new
+14
@@ -0,0 +1,14 @@
1 +import {BaseStyles} from '@primer/components'
2 +import React from 'react'
3 +import SkipLink from './skip-link'
4 +
5 +function wrapPageElement({element}) {
6 + return (
7 + <BaseStyles>
8 + <SkipLink />
9 + {element}
10 + </BaseStyles>
11 + )
12 +}
13 +
14 +export default wrapPageElement
theme/src/components/wrap-root-element.js new
+45
@@ -0,0 +1,45 @@
1 +import {MDXProvider} from '@mdx-js/react'
2 +import {Link, theme} from '@primer/components'
3 +import React from 'react'
4 +import {ThemeProvider} from 'styled-components'
5 +import Blockquote from './blockquote'
6 +import Code from './code'
7 +import DescriptionList from './description-list'
8 +import {H1, H2, H3, H4, H5, H6} from './heading'
9 +import HorizontalRule from './horizontal-rule'
10 +import Image from './image'
11 +import InlineCode from './inline-code'
12 +import List from './list'
13 +import Paragraph from './paragraph'
14 +import Table from './table'
15 +
16 +const components = {
17 + a: Link,
18 + pre: props => props.children,
19 + code: Code,
20 + inlineCode: InlineCode,
21 + table: Table,
22 + img: Image,
23 + p: Paragraph,
24 + hr: HorizontalRule,
25 + blockquote: Blockquote,
26 + h1: H1,
27 + h2: H2,
28 + h3: H3,
29 + h4: H4,
30 + h5: H5,
31 + h6: H6,
32 + ul: List,
33 + ol: List.withComponent('ol'),
34 + dl: DescriptionList,
35 +}
36 +
37 +function wrapRootElement({element}) {
38 + return (
39 + <MDXProvider components={components}>
40 + <ThemeProvider theme={theme}>{element}</ThemeProvider>
41 + </MDXProvider>
42 + )
43 +}
44 +
45 +export default wrapRootElement
theme/src/header-nav.yml new
+2
@@ -0,0 +1,2 @@
1 +- title: npmjs.com
2 + url: https://www.npmjs.com/
theme/src/images/favicon.png
Binary files /dev/null and b/theme/src/images/favicon.png differ
theme/src/live-code-scope.js new
+3
@@ -0,0 +1,3 @@
1 +// Users can shadow this file to define the scope of live code examples.
2 +// See https://primer.style/doctocat/usage/live-code for more details
3 +export default {}
theme/src/nav-hierarchy.js new
+256
@@ -0,0 +1,256 @@
1 +import navItems from './nav.yml';
2 +import { withPrefix } from "gatsby";
3 +
4 +export default {
5 + getLocation(path) {
6 + const pathPrefix = withPrefix("/");
7 +
8 + if (!pathPrefix || pathPrefix === "/") {
9 + return path;
10 + }
11 +
12 + const match = new RegExp(`^${pathPrefix}`);
13 + return path.replace(match, '/');
14 + },
15 +
16 + getPath(path) {
17 + while (path && path.endsWith('/')) {
18 + path = path.substring(0, path.length - 1);
19 + }
20 +
21 + return path;
22 + },
23 +
24 + getVariantRoot(path) {
25 + path = this.getPath(path);
26 +
27 + return this.findItem((item) => {
28 + if (item.variants && path.startsWith(item.url + '/')) {
29 + return item.url;
30 + }
31 +
32 + return null;
33 + });
34 + },
35 +
36 + findItem(fn, items = navItems) {
37 + for (let i = 0; i < items.length; i++) {
38 + const item = items[i];
39 + let result = fn(item);
40 +
41 + if (!result && item.children) {
42 + result = this.findItem(fn, item.children);
43 + }
44 +
45 + if (result) {
46 + return result;
47 + }
48 + }
49 +
50 + return null;
51 + },
52 +
53 + getItemHierarchy(path, items = navItems) {
54 + if (!path) {
55 + return null;
56 + }
57 +
58 + for (let i = 0; i < items.length; i++) {
59 + const item = items[i];
60 +
61 + if (this.getPath(item.url) === this.getPath(path)) {
62 + return [ item ];
63 + }
64 +
65 + const children = item.variants ? item.variants : item.children;
66 +
67 + if (children) {
68 + const hierarchy = this.getItemHierarchy(path, children);
69 +
70 + if (hierarchy) {
71 + return [ item, ...hierarchy ];
72 + }
73 + }
74 + }
75 +
76 + return null;
77 + },
78 +
79 + getItem(path, items = navItems) {
80 + if (!path) {
81 + return { url: '/', children: items };
82 + }
83 +
84 + for (let i = 0; i < items.length; i++) {
85 + const item = items[i];
86 +
87 + if (this.getPath(item.url) === this.getPath(path)) {
88 + return item;
89 + }
90 +
91 + const children = item.variants ? item.variants : item.children;
92 +
93 + if (children) {
94 + const child = this.getItem(path, children);
95 +
96 + if (child) {
97 + return child;
98 + }
99 + }
100 + }
101 +
102 + return null;
103 + },
104 +
105 + isPathForItem(path, item) {
106 + return (this.getPath(item.url) === this.getPath(path));
107 + },
108 +
109 + isChildItem(path, items = navItems) {
110 + if (!path) {
111 + return false;
112 + }
113 +
114 + return (this.findItem((item) => this.isPathForItem(path, item) ? item : null, items) != null);
115 + },
116 +
117 + getHierarchy(root, props = { }) {
118 + let children;
119 +
120 + if (!root) {
121 + children = navItems;
122 + }
123 + else if (root.variants && props.hideVariants === true) {
124 + const variant = this.getCurrentOrDefaultVariant(root, props.path);
125 + children = variant.children;
126 + }
127 + else if (root.variants) {
128 + children = root.variants;
129 + }
130 + else {
131 + children = root.children;
132 + }
133 +
134 + if (children && props.hideVariants === true) {
135 + children = this.hideVariantsForItems(children, props);
136 + }
137 +
138 + return children;
139 + },
140 +
141 + hideVariantsForItems(items, props) {
142 + if (!items) {
143 + return null;
144 + }
145 +
146 + const updated = [ ];
147 +
148 + for (let item of items) {
149 + if (item.variants) {
150 + const cloned = { };
151 + Object.assign(cloned, item);
152 +
153 + const variant = this.getCurrentOrDefaultVariant(item, props.path);
154 +
155 + cloned.url = variant.url;
156 +
157 + updated.push(cloned);
158 + }
159 + else {
160 + updated.push(item);
161 + }
162 + }
163 +
164 + return updated
165 + },
166 +
167 + getCurrentOrDefaultVariant(root, path) {
168 + let variant = path ? this.getCurrentVariant(root, path) : null;
169 +
170 + if (!variant) {
171 + variant = this.getDefaultVariant(root);
172 + }
173 +
174 + return variant;
175 + },
176 +
177 + getCurrentVariant(root, path) {
178 + for (let v of root.variants) {
179 + if (this.isActiveItem(path, v)) {
180 + return v;
181 + }
182 + }
183 +
184 + return null;
185 + },
186 +
187 + getDefaultVariant(root) {
188 + for (let v of root.variants) {
189 + if (v.default) {
190 + return v;
191 + }
192 + }
193 +
194 + return root.variants[0];
195 + },
196 +
197 + getVariantAndPage(root, path) {
198 + if (!path.startsWith(root + '/')) {
199 + return null;
200 + }
201 +
202 + path = path.substring(root.length + 1);
203 +
204 + const match = /^([^/]+)(?:\/(.*))?/.exec(path);
205 +
206 + if (!match) {
207 + return null;
208 + }
209 +
210 + return { variant: match[1], page: match[2] };
211 + },
212 +
213 + getVariantsForPage(root, page) {
214 + const pages = [];
215 + const rootItem = this.findItem((item) => this.getPath(item.url) === this.getPath(root) ? item : null);
216 +
217 + if (rootItem && rootItem.variants) {
218 + rootItem.variants.forEach((variant) => {
219 + if (!variant.children) {
220 + return;
221 + }
222 +
223 + const vp = this.getVariantAndPage(root, variant.url);
224 + let variantPage;
225 +
226 + if (vp.page === page) {
227 + variantPage = variant;
228 + } else {
229 + variantPage = this.findItem((item) => {
230 + const vp = this.getVariantAndPage(root, item.url);
231 + return (vp && vp.page === page) ? item : null;
232 + }, variant.children);
233 + }
234 +
235 + if (!variantPage) {
236 + return;
237 + }
238 +
239 + pages.push({ variant: variant, page: variantPage });
240 + });
241 + }
242 +
243 + return pages;
244 + },
245 +
246 + isActiveItem(currentPath, linkItem) {
247 + return (this.isPathForItem(currentPath, linkItem) ||
248 + (linkItem.children && this.isChildItem(currentPath, linkItem.children)) ||
249 + (linkItem.variants && this.isChildItem(currentPath, linkItem.variants)));
250 + },
251 +
252 + isActiveUrl(currentPath, linkPath) {
253 + const linkItem = this.getItem(linkPath);
254 + return linkItem ? this.isActiveItem(currentPath, linkItem) : false;
255 + }
256 +}
theme/src/nav.yml new
+3
@@ -0,0 +1,3 @@
1 +# Users can shadow this file to define navigation items.
2 +# See https://primer.style/doctocat/usage/customization/#side-navigation for more details.
3 +[]
theme/src/search.worker.js new
+32
@@ -0,0 +1,32 @@
1 +import Fuse from 'fuse.js'
2 +import debounce from 'lodash.debounce'
3 +
4 +(function searchWorker() {
5 + let fuse = null
6 +
7 + // [MKT]: I landed on the debouce wait value of 50 based mostly on
8 + // experimentation. With both `leading` and `trailing` set to `true`, this
9 + // feels pretty snappy.
10 + //
11 + // From https://lodash.com/docs/#debounce:
12 + //
13 + // > Note: If `leading` and `trailing` options are `true`, `func` is invoked
14 + // > on the trailing edge of the timeout only if the debounced function is
15 + // > invoked more than once during the wait timeout.
16 + const performSearch = debounce(function performSearch(query) {
17 + const results = fuse.search(query).slice(0, 20)
18 + postMessage({results: results, query: query})
19 + }, 50, {leading: true, trailing: true})
20 +
21 + onmessage = function({data}) {
22 + if (data.list) {
23 + fuse = new Fuse(data.list, {
24 + threshold: 0.2,
25 + keys: ['title', 'rawBody'],
26 + tokenize: true,
27 + })
28 + } else if (data.query) {
29 + performSearch(data.query)
30 + }
31 + }
32 +})()
theme/src/use-search.js new
+83
@@ -0,0 +1,83 @@
1 +import {graphql, useStaticQuery} from 'gatsby'
2 +import React from 'react'
3 +
4 +function useSearch(query) {
5 + const latestQuery = React.useRef(query)
6 + const workerRef = React.useRef()
7 +
8 + const data = useStaticQuery(graphql`
9 + {
10 + allMdx {
11 + nodes {
12 + id
13 + frontmatter {
14 + title
15 + }
16 + rawBody
17 + }
18 + }
19 + allSitePage {
20 + nodes {
21 + path
22 + pageContext
23 + }
24 + }
25 + }
26 + `)
27 +
28 + const mdxNodes = data.allMdx.nodes.reduce((map, obj) => {
29 + map[obj.id] = obj;
30 + return map;
31 + }, { });
32 +
33 +
34 + const list = React.useMemo(
35 + () =>
36 + data.allSitePage.nodes.filter(node => {
37 + return (node.pageContext && node.pageContext.mdxId && mdxNodes[node.pageContext.mdxId] != null);
38 + }).map(node => {
39 + const mdxNode = mdxNodes[node.pageContext.mdxId];
40 +
41 + const obj =
42 + {
43 + path: node.path,
44 + title: mdxNode.frontmatter.title,
45 + rawBody: mdxNode.rawBody
46 + };
47 + return obj;
48 + }),
49 + [data],
50 + )
51 +
52 + const [results, setResults] = React.useState(list)
53 +
54 + const handleSearchResults = React.useCallback(({data}) => {
55 + if (data.query && data.results && data.query === latestQuery.current) {
56 + setResults(data.results)
57 + }
58 + }, [])
59 +
60 + React.useEffect(() => {
61 + const worker = new Worker(new URL('./search.worker.js', import.meta.url));
62 + worker.addEventListener('message', handleSearchResults)
63 + worker.postMessage({list})
64 + workerRef.current = worker
65 +
66 + return () => {
67 + workerRef.current.terminate()
68 + }
69 + }, [list, handleSearchResults])
70 +
71 + React.useEffect(() => {
72 + latestQuery.current = query
73 + if (query && workerRef.current) {
74 + workerRef.current.postMessage({query: query})
75 + } else {
76 + setResults(list)
77 + }
78 + }, [query, list])
79 +
80 + return results
81 +}
82 +
83 +export default useSearch
theme/src/use-site-metadata.js new
+20
@@ -0,0 +1,20 @@
1 +import {useStaticQuery, graphql} from 'gatsby'
2 +
3 +function useSiteMetadata() {
4 + const data = useStaticQuery(graphql`
5 + {
6 + site {
7 + siteMetadata {
8 + title
9 + shortName
10 + description
11 + lang
12 + imageUrl
13 + }
14 + }
15 + }
16 + `)
17 + return data.site.siteMetadata
18 +}
19 +
20 +export default useSiteMetadata