From e2bf90bda3a9204f455e6ae1276cf08b7e22735e Mon Sep 17 00:00:00 2001 From: Alex Panturu Date: Wed, 20 Mar 2024 19:03:30 +0200 Subject: [PATCH 001/229] explorer: app initialization --- .eslintignore | 13 + .eslintrc.cjs | 50 + .gitignore | 12 + .npmrc | 1 + .prettierrc.js | 7 + LICENSE | 373 + Makefile | 8 + README.md | 43 + jsconfig.json | 15 + package-lock.json | 7948 +++++++++++++++++ package.json | 69 + src/app.html | 21 + src/error.html | 0 src/routes/+error.svelte | 23 + src/routes/+layout.js | 4 + src/routes/+layout.svelte | 4 + src/routes/+page.svelte | 1 + .../__tests__/__snapshots__/page.spec.js.snap | 10 + src/routes/__tests__/page.spec.js | 11 + src/routes/blocks/+page.svelte | 1 + .../__tests__/__snapshots__/page.spec.js.snap | 10 + src/routes/blocks/__tests__/page.spec.js | 11 + src/routes/blocks/block/+page.svelte | 1 + .../__tests__/__snapshots__/page.spec.js.snap | 10 + .../blocks/block/__tests__/page.spec.js | 11 + src/routes/charts/+page.svelte | 1 + .../__tests__/__snapshots__/page.spec.js.snap | 10 + src/routes/charts/__tests__/page.spec.js | 11 + src/routes/transactions/+page.svelte | 1 + .../__tests__/__snapshots__/page.spec.js.snap | 10 + .../transactions/__tests__/page.spec.js | 11 + .../transactions/transaction/+page.svelte | 1 + .../__tests__/__snapshots__/page.spec.js.snap | 10 + .../transaction/__tests__/page.spec.js | 11 + static/dusk_logo.svg | 7 + static/favicon.png | Bin 0 -> 685 bytes static/favicon.svg | 5 + static/fonts/soehne-buch.woff2 | Bin 0 -> 33391 bytes static/fonts/soehne-kraftig.woff2 | Bin 0 -> 35734 bytes svelte.config.js | 28 + vite-setup.js | 111 + vite.config.js | 55 + 42 files changed, 8929 insertions(+) create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierrc.js create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/app.html create mode 100644 src/error.html create mode 100644 src/routes/+error.svelte create mode 100644 src/routes/+layout.js create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/__tests__/__snapshots__/page.spec.js.snap create mode 100644 src/routes/__tests__/page.spec.js create mode 100644 src/routes/blocks/+page.svelte create mode 100644 src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap create mode 100644 src/routes/blocks/__tests__/page.spec.js create mode 100644 src/routes/blocks/block/+page.svelte create mode 100644 src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap create mode 100644 src/routes/blocks/block/__tests__/page.spec.js create mode 100644 src/routes/charts/+page.svelte create mode 100644 src/routes/charts/__tests__/__snapshots__/page.spec.js.snap create mode 100644 src/routes/charts/__tests__/page.spec.js create mode 100644 src/routes/transactions/+page.svelte create mode 100644 src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap create mode 100644 src/routes/transactions/__tests__/page.spec.js create mode 100644 src/routes/transactions/transaction/+page.svelte create mode 100644 src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap create mode 100644 src/routes/transactions/transaction/__tests__/page.spec.js create mode 100644 static/dusk_logo.svg create mode 100644 static/favicon.png create mode 100644 static/favicon.svg create mode 100644 static/fonts/soehne-buch.woff2 create mode 100644 static/fonts/soehne-kraftig.woff2 create mode 100644 svelte.config.js create mode 100644 vite-setup.js create mode 100644 vite.config.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..6447794 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,50 @@ +module.exports = { + env: { + browser: true, + es2022: true, + node: true, + }, + extends: [ + "@dusk-network/eslint-config/js", + "@dusk-network/eslint-config/svelte", + ], + globals: { + CONFIG: false, + }, + overrides: [ + { + files: ["*.svelte"], + rules: { + "svelte/require-optimized-style-attribute": 0, + }, + }, + { + // Rules for conventional testing practices using Vitest. + files: ["*.spec.js", "*.test.js"], + rules: { + "max-nested-callbacks": ["error", 5], + "max-statements": 0, + }, + }, + ], + root: true, + settings: { + "import/resolver": { + "eslint-import-resolver-custom-alias": { + alias: { + $app: "node_modules/@sveltejs/kit/src/runtime/app", + $config: "./src/config", + $lib: "./src/lib", + "@sveltejs/kit": "node_modules/@sveltejs/kit/src/exports/index.js", + "@testing-library/svelte": + "node_modules/@testing-library/svelte/src/index.js", + "svelte/motion": "node_modules/svelte/src/runtime/motion/index.js", + "svelte/store": "node_modules/svelte/src/runtime/store/index.js", + "svelte/transition": + "node_modules/svelte/src/runtime/transition/index.js", + }, + extensions: [".cjs", ".js", ".json", ".svelte"], + }, + }, + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc0ab40 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules +/build +/coverage +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* +.nvmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..af8c620 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,7 @@ +import duskJsPrettierConfig from "@dusk-network/prettier-config/js/index.js"; +import duskSveltePrettierConfig from "@dusk-network/prettier-config/svelte/index.js"; + +export default { + ...duskJsPrettierConfig, + ...duskSveltePrettierConfig, +}; diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a612ad9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..93b6999 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +all: ## Build the explorer + npm install + npm run build + +help: ## Display this help screen + @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}' + +.PHONY: all help diff --git a/README.md b/README.md new file mode 100644 index 0000000..f68efd5 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Explorer + +Explorer website. + +## TOC + +- [Explorer](#explorer) + - [TOC](#toc) + - [Build system and dev environment](#build-system-and-dev-environment) + - [Environment variables](#environment-variables) + - [NPM scripts](#npm-scripts) + +## Build system and dev environment + +The build system assumes that you have at least Node.js v20.x installed. The LTS version is 20.11.1 at the time of writing. + +All terminal commands assume that you are positioned in root folder of the repository. +Run `npm install` from the root folder to get the necessary dependencies. + +## Environment variables + +The application defines these variables by reading a local `.env` + +``` +# can be empty string, must start with a slash otherwise, must not end with a slash +VITE_BASE_PATH="" +VITE_API_ENDPOINT="https://api.dusk.network/v1" +``` + +## NPM scripts + +- `npm run build` generates the production build +- `npm run checks` runs all checks (lint, typecheck and test) +- `npm run dev` generates the development build and starts the dev server +- `npm run dev:host` generates the development build, starts the dev server and exposes it to the local network +- `npm run lint`: performs the linting checks +- `npm run lint:fix`: runs ESLint with the `--fix` flag to fix formatting errors +- `npm run preview` previews the production build +- `npm test` runs the test suite +- `npm run test:coverage` runs the test suite and generates the code coverage report in the `coverage` folder +- `npm run test:watch` runs the test suite in watch mode +- `npm run typecheck` runs the type checker +- `npm run typecheck:watch` runs the type checker in watch mode diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..4ec998a --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": true, + "resolveJsonModule": true, + "skipLibCheck": false, + "sourceMap": true, + "strict": true, + "types": ["./node_modules/@testing-library/jest-dom/types/vitest.d.ts"] + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..40adcb8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7948 @@ +{ + "name": "explorer", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "explorer", + "version": "0.0.0", + "license": "MPL-2.0", + "dependencies": { + "@mdi/js": "7.4.47" + }, + "devDependencies": { + "@dusk-network/eslint-config": "3.1.0", + "@dusk-network/prettier-config": "1.1.0", + "@sveltejs/adapter-static": "3.0.1", + "@sveltejs/kit": "2.5.2", + "@testing-library/jest-dom": "6.4.2", + "@testing-library/svelte": "4.1.0", + "@types/node": "20.11.24", + "@vitejs/plugin-basic-ssl": "1.1.0", + "@vitest/browser": "1.3.1", + "@vitest/coverage-istanbul": "1.3.1", + "autoprefixer": "10.4.18", + "eslint": "8.57.0", + "eslint-config-prettier": "9.1.0", + "eslint-import-resolver-custom-alias": "1.3.2", + "eslint-plugin-svelte": "2.35.1", + "jsdom": "24.0.0", + "jsdom-worker": "0.3.0", + "postcss-nested": "6.0.1", + "prettier": "3.2.5", + "prettier-plugin-svelte": "3.2.2", + "svelte": "4.2.12", + "svelte-check": "3.6.6", + "svelte-preprocess": "5.1.3", + "typescript": "5.3.3", + "vite": "5.1.5", + "vite-plugin-node-polyfills": "0.21.0", + "vite-tsconfig-paths": "4.3.1", + "vitest": "1.3.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", + "dev": true + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", + "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.1", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.1", + "@babel/parser": "^7.24.1", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dusk-network/eslint-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@dusk-network/eslint-config/-/eslint-config-3.1.0.tgz", + "integrity": "sha512-g6rR7S84Y7jCeAy6+uAK7Vc1jhQvkTx6zXNujifiBmmPDn5Pa41PD8khWZMs586OO1BfsbhfY7CqBelZ67l2Jw==", + "dev": true, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "eslint-plugin-svelte": ">=2.35.1" + }, + "peerDependencies": { + "eslint": ">=8.56.0", + "eslint-config-prettier": ">=9.1.0", + "eslint-plugin-import": ">=2.29.1" + } + }, + "node_modules/@dusk-network/prettier-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@dusk-network/prettier-config/-/prettier-config-1.1.0.tgz", + "integrity": "sha512-Zr618i5OUAOCHFMKwVzYT0MfI7nI1af0Zd4XFc0dOkSfKaJLQM/YJrTY5HRiBvymtf7TsQD8TPx+R25RAyTXUA==", + "dev": true, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "prettier-plugin-svelte": ">=3.2.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdi/js": { + "version": "7.4.47", + "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.4.47.tgz", + "integrity": "sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", + "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", + "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", + "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", + "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", + "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", + "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", + "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", + "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", + "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", + "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", + "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", + "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", + "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.1.tgz", + "integrity": "sha512-6lMvf7xYEJ+oGeR5L8DFJJrowkefTK6ZgA4JiMqoClMkKq0s6yvsd3FZfCFvX1fQ0tpCD7fkuRVHsnUVgsHyNg==", + "dev": true, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.2.tgz", + "integrity": "sha512-1Pm2lsBYURQsjnLyZa+jw75eVD4gYHxGRwPyFe4DAmB3FjTVR8vRNWGeuDLGFcKMh/B1ij6FTUrc9GrerogCng==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^4.3.2", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.4", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.2.tgz", + "integrity": "sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==", + "dev": true, + "peer": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "svelte-hmr": "^0.15.3", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz", + "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz", + "integrity": "sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.3.2", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@jest/globals": ">= 28", + "@types/bun": "latest", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "@types/bun": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@testing-library/svelte": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/svelte/-/svelte-4.1.0.tgz", + "integrity": "sha512-MJqe7x9WowkiAVdk9mvazEC2ktFZdmK2OqFVoO557PC37aBemQ4ozqdK3yrG34Zg9kuln3qgTVeLSh08e69AMw==", + "dev": true, + "dependencies": { + "@testing-library/dom": "^9.3.1" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "svelte": "^3 || ^4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/node": { + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", + "dev": true + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@vitest/browser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-1.3.1.tgz", + "integrity": "sha512-pRof8G8nqRWwg3ouyIctyhfIVk5jXgF056uF//sqdi37+pVtDz9kBI/RMu0xlc8tgCyJ2aEMfbgJZPUydlEVaQ==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.3.1", + "magic-string": "^0.30.5", + "sirv": "^2.0.4" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "1.3.1", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/@vitest/coverage-istanbul": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-1.3.1.tgz", + "integrity": "sha512-aBVgQ2eY9gzrxBJjGKbWgatTU2w1CacEx0n8OMctPzl9836KqoM5X/WigJpjM7wZEtX2N0ZTE5KDGPmVM+o2Wg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-instrument": "^6.0.1", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.6", + "magicast": "^0.3.3", + "picocolors": "^1.0.0", + "test-exclude": "^6.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "1.3.1" + } + }, + "node_modules/@vitest/expect": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", + "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.1.tgz", + "integrity": "sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.3.1", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.1.tgz", + "integrity": "sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/snapshot/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@vitest/spy": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", + "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", + "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "peer": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001599", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", + "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", + "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.711", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz", + "integrity": "sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", + "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", + "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "dev": true, + "peer": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "peer": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "peer": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "peer": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-custom-alias": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-custom-alias/-/eslint-import-resolver-custom-alias-1.3.2.tgz", + "integrity": "sha512-wBPcZA2k6/IXaT8FsLMyiyVSG6WVEuaYIAbeKLXeGwr523BmeB9lKAAoLJWSqp3txsnU4gpkgD2x1q6K8k0uDQ==", + "dev": true, + "dependencies": { + "glob-parent": "^6.0.2", + "resolve": "^1.22.2" + }, + "peerDependencies": { + "eslint-plugin-import": ">=2.2.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "peer": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.35.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.1.tgz", + "integrity": "sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "debug": "^4.3.1", + "eslint-compat-utils": "^0.1.2", + "esutils": "^2.0.3", + "known-css-properties": "^0.29.0", + "postcss": "^8.4.5", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "semver": "^7.5.3", + "svelte-eslint-parser": ">=0.33.0 <1.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0", + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-svelte/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-svelte/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "peer": true, + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "peer": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "peer": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "peer": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isomorphic-timers-promises": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", + "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", + "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", + "dev": true, + "dependencies": { + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.7", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.3", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.16.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom-worker": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/jsdom-worker/-/jsdom-worker-0.3.0.tgz", + "integrity": "sha512-nlPmN0i93+e6vxzov8xqLMR+MBs/TAYeSviehivzqovHH0AgooVx9pQ/otrygASppPvdR+V9Jqx5SMe8+FcADg==", + "dev": true, + "dependencies": { + "mitt": "^3.0.0", + "uuid-v4": "^0.1.0" + }, + "peerDependencies": { + "node-fetch": "*" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/magicast": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.3.tgz", + "integrity": "sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "source-map-js": "^1.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mlly": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", + "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.0.3", + "ufo": "^1.3.2" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "peer": true, + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "peer": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/node-stdlib-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz", + "integrity": "sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg==", + "dev": true, + "dependencies": { + "assert": "^2.0.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "create-require": "^1.1.1", + "crypto-browserify": "^3.11.0", + "domain-browser": "^4.22.0", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "isomorphic-timers-promises": "^1.0.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "pkg-dir": "^5.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.1", + "url": "^0.11.0", + "util": "^0.12.4", + "vm-browserify": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-stdlib-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.37", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.37.tgz", + "integrity": "sha512-7iB/v/r7Woof0glKLH8b1SPHrsX7uhdO+Geb41QpF/+mWZHU3uxxSlN+UXGVit1PawOYDToO+AbZzhBzWRDwbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.2.tgz", + "integrity": "sha512-ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", + "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", + "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.13.0", + "@rollup/rollup-android-arm64": "4.13.0", + "@rollup/rollup-darwin-arm64": "4.13.0", + "@rollup/rollup-darwin-x64": "4.13.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", + "@rollup/rollup-linux-arm64-gnu": "4.13.0", + "@rollup/rollup-linux-arm64-musl": "4.13.0", + "@rollup/rollup-linux-riscv64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-musl": "4.13.0", + "@rollup/rollup-win32-arm64-msvc": "4.13.0", + "@rollup/rollup-win32-ia32-msvc": "4.13.0", + "@rollup/rollup-win32-x64-msvc": "4.13.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sander/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz", + "integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==", + "dev": true, + "dependencies": { + "js-tokens": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", + "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==", + "dev": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz", + "integrity": "sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.6.tgz", + "integrity": "sha512-b9q9rOHOMYF3U8XllK7LmXTq1LeWQ98waGfEJzrFutViadkNl1tgdEtxIQ8yuPx+VQ4l7YrknYol+0lfZocaZw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.3", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", + "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "postcss": "^8.4.29", + "postcss-scss": "^4.0.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-hmr": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", + "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==", + "dev": true, + "peer": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz", + "integrity": "sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.30.5", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 16.0.0", + "pnpm": "^8.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/tinybench": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", + "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", + "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tsconfck": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.3.tgz", + "integrity": "sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==", + "dev": true, + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "peer": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid-v4": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/uuid-v4/-/uuid-v4-0.1.0.tgz", + "integrity": "sha512-m11RYDtowtAIihBXMoGajOEKpAXrKbpKlpmxqyztMYQNGSY5nZAZ/oYch/w2HNS1RMA4WLGcZvuD8/wFMuCEzA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/vite": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.5.tgz", + "integrity": "sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.3.1.tgz", + "integrity": "sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-node-polyfills": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.21.0.tgz", + "integrity": "sha512-Sk4DiKnmxN8E0vhgEhzLudfJQfaT8k4/gJ25xvUPG54KjLJ6HAmDKbr4rzDD/QWEY+Lwg80KE85fGYBQihEPQA==", + "dev": true, + "dependencies": { + "@rollup/plugin-inject": "^5.0.5", + "node-stdlib-browser": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/davidmyersdev" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.1.tgz", + "integrity": "sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.1" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "dev": true, + "peer": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.3.1.tgz", + "integrity": "sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.3.1", + "@vitest/runner": "1.3.1", + "@vitest/snapshot": "1.3.1", + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.2", + "vite": "^5.0.0", + "vite-node": "1.3.1", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.3.1", + "@vitest/ui": "1.3.1", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..961ce38 --- /dev/null +++ b/package.json @@ -0,0 +1,69 @@ +{ + "author": { + "name": "Dusk Network B.V.", + "url": "https://dusk.network/", + "mail": "info@dusk.network" + }, + "bugs": "https://github.com/dusk-network/rusk/issues", + "engines": { + "node": ">=20.0.0" + }, + "homepage": "https://github.com/dusk-network/rusk/tree/master/explorer", + "license": "MPL-2.0", + "name": "explorer", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/dusk-network/rusk.git" + }, + "scripts": { + "build": "vite build", + "checks": "npm run format && npm run lint && npm run typecheck && npm test", + "dev": "vite dev", + "dev:host": "vite dev --host", + "format": "prettier . --check", + "format:fix": "prettier . --write", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "preview": "vite preview", + "test": "vitest --run", + "test:coverage": "vitest --run --coverage.enabled", + "test:watch": "vitest", + "typecheck": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --fail-on-warnings", + "typecheck:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch --fail-on-warnings" + }, + "type": "module", + "version": "0.0.0", + "dependencies": { + "@mdi/js": "7.4.47" + }, + "devDependencies": { + "@dusk-network/eslint-config": "3.1.0", + "@dusk-network/prettier-config": "1.1.0", + "@sveltejs/adapter-static": "3.0.1", + "@sveltejs/kit": "2.5.2", + "@testing-library/jest-dom": "6.4.2", + "@testing-library/svelte": "4.1.0", + "@types/node": "20.11.24", + "@vitest/browser": "1.3.1", + "@vitest/coverage-istanbul": "1.3.1", + "autoprefixer": "10.4.18", + "eslint": "8.57.0", + "eslint-config-prettier": "9.1.0", + "eslint-import-resolver-custom-alias": "1.3.2", + "eslint-plugin-svelte": "2.35.1", + "jsdom": "24.0.0", + "jsdom-worker": "0.3.0", + "postcss-nested": "6.0.1", + "prettier": "3.2.5", + "prettier-plugin-svelte": "3.2.2", + "svelte": "4.2.12", + "svelte-check": "3.6.6", + "svelte-preprocess": "5.1.3", + "typescript": "5.3.3", + "vite": "5.1.5", + "vite-plugin-node-polyfills": "0.21.0", + "vite-tsconfig-paths": "4.3.1", + "vitest": "1.3.1" + } +} diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..3f72b1e --- /dev/null +++ b/src/app.html @@ -0,0 +1,21 @@ + + + + Dusk Explorer - v%sveltekit.env.PUBLIC_APP_VERSION% + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/error.html b/src/error.html new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte new file mode 100644 index 0000000..9b4ebb3 --- /dev/null +++ b/src/routes/+error.svelte @@ -0,0 +1,23 @@ + + + + +
+

Error - {status}

+

{error?.message ?? ""}

+
+ + diff --git a/src/routes/+layout.js b/src/routes/+layout.js new file mode 100644 index 0000000..125c004 --- /dev/null +++ b/src/routes/+layout.js @@ -0,0 +1,4 @@ +export const csr = true; +export const prerender = true; +export const ssr = false; +export const trailingSlash = "always"; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..fe78d6f --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,4 @@ +
+

Dusk Explorer

+ +
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..3be1e3d --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1 @@ +
Chain Info
diff --git a/src/routes/__tests__/__snapshots__/page.spec.js.snap b/src/routes/__tests__/__snapshots__/page.spec.js.snap new file mode 100644 index 0000000..16df5e2 --- /dev/null +++ b/src/routes/__tests__/__snapshots__/page.spec.js.snap @@ -0,0 +1,10 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Chain Info > should render the Chain Info page 1`] = ` +
+
+ Chain Info +
+ +
+`; diff --git a/src/routes/__tests__/page.spec.js b/src/routes/__tests__/page.spec.js new file mode 100644 index 0000000..0f1414a --- /dev/null +++ b/src/routes/__tests__/page.spec.js @@ -0,0 +1,11 @@ +import { describe, expect, it } from "vitest"; +import { render } from "@testing-library/svelte"; +import ChainInfo from "../+page.svelte"; + +describe("Chain Info", () => { + it("should render the Chain Info page", () => { + const { container } = render(ChainInfo, {}); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/src/routes/blocks/+page.svelte b/src/routes/blocks/+page.svelte new file mode 100644 index 0000000..1dcbfde --- /dev/null +++ b/src/routes/blocks/+page.svelte @@ -0,0 +1 @@ +
All Blocks
diff --git a/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap b/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap new file mode 100644 index 0000000..6cb61e4 --- /dev/null +++ b/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap @@ -0,0 +1,10 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Blocks > should render the Blocks page 1`] = ` +
+
+ All Blocks +
+ +
+`; diff --git a/src/routes/blocks/__tests__/page.spec.js b/src/routes/blocks/__tests__/page.spec.js new file mode 100644 index 0000000..a3cee0b --- /dev/null +++ b/src/routes/blocks/__tests__/page.spec.js @@ -0,0 +1,11 @@ +import { describe, expect, it } from "vitest"; +import { render } from "@testing-library/svelte"; +import Blocks from "../+page.svelte"; + +describe("Blocks", () => { + it("should render the Blocks page", () => { + const { container } = render(Blocks, {}); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/src/routes/blocks/block/+page.svelte b/src/routes/blocks/block/+page.svelte new file mode 100644 index 0000000..62253fa --- /dev/null +++ b/src/routes/blocks/block/+page.svelte @@ -0,0 +1 @@ +
Individual Block
diff --git a/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap b/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap new file mode 100644 index 0000000..9eb68cf --- /dev/null +++ b/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap @@ -0,0 +1,10 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Block > should render the Block page 1`] = ` +
+
+ Individual Block +
+ +
+`; diff --git a/src/routes/blocks/block/__tests__/page.spec.js b/src/routes/blocks/block/__tests__/page.spec.js new file mode 100644 index 0000000..22663cc --- /dev/null +++ b/src/routes/blocks/block/__tests__/page.spec.js @@ -0,0 +1,11 @@ +import { describe, expect, it } from "vitest"; +import { render } from "@testing-library/svelte"; +import Block from "../+page.svelte"; + +describe("Block", () => { + it("should render the Block page", () => { + const { container } = render(Block, {}); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/src/routes/charts/+page.svelte b/src/routes/charts/+page.svelte new file mode 100644 index 0000000..2314a35 --- /dev/null +++ b/src/routes/charts/+page.svelte @@ -0,0 +1 @@ +
Charts & Statistics
diff --git a/src/routes/charts/__tests__/__snapshots__/page.spec.js.snap b/src/routes/charts/__tests__/__snapshots__/page.spec.js.snap new file mode 100644 index 0000000..933d3d6 --- /dev/null +++ b/src/routes/charts/__tests__/__snapshots__/page.spec.js.snap @@ -0,0 +1,10 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Charts > should render the Charts page 1`] = ` +
+
+ Charts & Statistics +
+ +
+`; diff --git a/src/routes/charts/__tests__/page.spec.js b/src/routes/charts/__tests__/page.spec.js new file mode 100644 index 0000000..5c84184 --- /dev/null +++ b/src/routes/charts/__tests__/page.spec.js @@ -0,0 +1,11 @@ +import { describe, expect, it } from "vitest"; +import { render } from "@testing-library/svelte"; +import Charts from "../+page.svelte"; + +describe("Charts", () => { + it("should render the Charts page", () => { + const { container } = render(Charts, {}); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/src/routes/transactions/+page.svelte b/src/routes/transactions/+page.svelte new file mode 100644 index 0000000..534a18b --- /dev/null +++ b/src/routes/transactions/+page.svelte @@ -0,0 +1 @@ +
All Transactions
diff --git a/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap b/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap new file mode 100644 index 0000000..ef0003d --- /dev/null +++ b/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap @@ -0,0 +1,10 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Transactions > should render the Transactions page 1`] = ` +
+
+ All Transactions +
+ +
+`; diff --git a/src/routes/transactions/__tests__/page.spec.js b/src/routes/transactions/__tests__/page.spec.js new file mode 100644 index 0000000..953c16e --- /dev/null +++ b/src/routes/transactions/__tests__/page.spec.js @@ -0,0 +1,11 @@ +import { describe, expect, it } from "vitest"; +import { render } from "@testing-library/svelte"; +import Transactions from "../+page.svelte"; + +describe("Transactions", () => { + it("should render the Transactions page", () => { + const { container } = render(Transactions, {}); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/src/routes/transactions/transaction/+page.svelte b/src/routes/transactions/transaction/+page.svelte new file mode 100644 index 0000000..015da9c --- /dev/null +++ b/src/routes/transactions/transaction/+page.svelte @@ -0,0 +1 @@ +
Individual Transaction
diff --git a/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap b/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap new file mode 100644 index 0000000..7f75613 --- /dev/null +++ b/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap @@ -0,0 +1,10 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Transaction > should render the Transaction page 1`] = ` +
+
+ Individual Transaction +
+ +
+`; diff --git a/src/routes/transactions/transaction/__tests__/page.spec.js b/src/routes/transactions/transaction/__tests__/page.spec.js new file mode 100644 index 0000000..900bb57 --- /dev/null +++ b/src/routes/transactions/transaction/__tests__/page.spec.js @@ -0,0 +1,11 @@ +import { describe, expect, it } from "vitest"; +import { render } from "@testing-library/svelte"; +import Transaction from "../+page.svelte"; + +describe("Transaction", () => { + it("should render the Transaction page", () => { + const { container } = render(Transaction, {}); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/static/dusk_logo.svg b/static/dusk_logo.svg new file mode 100644 index 0000000..08cc7aa --- /dev/null +++ b/static/dusk_logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..14c61451d54daca2e367a157751af3d31e1a10d8 GIT binary patch literal 685 zcmV;e0#f~nP)Px%XGugsRA@u(T3K!bAq-`Xz=_(Nteul}dLoX{$_Pd*HrT99)RFR$h~+)|*?3G2 zHRv(Myep;P^A;=#-~DqbrM~?at@Y=Kt&g5X9Ow@Ryk)5qCiReMB4CUG>jChQ&)Gsm zL|_u|)CeLXECK_hBK6dzwSI6WRS7uoU!28=F*leX&|xS?f)A}V1V8x{2@I4B3dF4s zSu4y|B1w@127(7bMM*IBB0Yf;U@X|8sA_Ol_C-lh1b$i&GUik@T_T~i&hTbGOtSuc z8gsHs0YfImh`?m>O{5f%KhbsA&F8V3GAL5lqWe{17DW zgb)%~VSSN|oRq)=*+J@!U2>jCK;JmKLEviK_Sn0?YN^7|3WGJPiRN4lW?DBY>+VHkRKotUC#a zPGsslcnJbe5yYh!_$Sa4uF8Is?-c%Fc5vl~bo4ciEk~rDN6S}}FrTFdj8Cj{MeMV=5B){s4 z2?fBsJS=*SbII46nbJ!>a4`3ByxNMd5(omjmxv^U;ARpmU%a6tvkWG|$jWQF#rk54r<-&UK)eD!VSl#?wG4l`fxxcnn`4n*Y95>v T+#HC-00000NkvXXu0mjfQo|?8 literal 0 HcmV?d00001 diff --git a/static/favicon.svg b/static/favicon.svg new file mode 100644 index 0000000..e4b1743 --- /dev/null +++ b/static/favicon.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/static/fonts/soehne-buch.woff2 b/static/fonts/soehne-buch.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c26f566686fabd9fe5fc10989e1bd9f4c63c4e15 GIT binary patch literal 33391 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 literal 0 HcmV?d00001 diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..c6c1ee7 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,28 @@ +import adapter from "@sveltejs/adapter-static"; +import autoprefixer from "autoprefixer"; +import postCSSNested from "postcss-nested"; +import preprocess from "svelte-preprocess"; +import { loadEnv } from "vite"; + +const env = loadEnv("", process.cwd()); +const fallBackBase = env.VITE_BASE_PATH ? `${env.VITE_BASE_PATH}/` : ""; + +/** @type {import("@sveltejs/kit").Config} */ +const config = { + kit: { + adapter: adapter({ fallback: `${fallBackBase}index.html` }), + + paths: { + base: /** @type {"" | `/${string}` | undefined} */ (env.VITE_BASE_PATH), + }, + }, + preprocess: [ + preprocess({ + postcss: { + plugins: [autoprefixer, postCSSNested], + }, + }), + ], +}; + +export default config; diff --git a/vite-setup.js b/vite-setup.js new file mode 100644 index 0000000..4ef9a0d --- /dev/null +++ b/vite-setup.js @@ -0,0 +1,111 @@ +/** + * @see https://github.com/davipon/svelte-component-test-recipes + */ + +import * as matchers from "@testing-library/jest-dom/matchers"; +import { expect, vi } from "vitest"; +import { readable } from "svelte/store"; +import "jsdom-worker"; + +/* + * Mocking deprecated `atob` and `btoa` functions in Node. + * Vitest get stuck otherwise. + */ +vi.spyOn(global, "atob").mockImplementation((data) => + Buffer.from(data, "base64").toString("binary") +); +vi.spyOn(global, "btoa").mockImplementation((data) => + Buffer.from(data, "binary").toString("base64") +); + +// Adding missing bits in JSDOM + +const elementMethods = ["scrollBy", "scrollTo", "scrollIntoView"]; + +elementMethods.forEach((method) => { + if (!Element.prototype[method]) { + Object.defineProperty(Element.prototype, method, { + value: () => {}, + writable: true, + }); + } +}); + +// Add custom jest matchers +expect.extend(matchers); + +// Mock SvelteKit runtime module $app/environment +vi.mock("$app/environment", () => ({ + browser: false, + building: false, + dev: true, + version: "any", +})); + +// Mock app paths +vi.mock("$app/paths", async (importOriginal) => ({ + ...(await importOriginal()), + get base() { + return "/some-base-path"; + }, +})); + +// Mock SvelteKit runtime module $app/navigation +vi.mock("$app/navigation", () => ({ + afterNavigate: () => {}, + beforeNavigate: () => {}, + disableScrollHandling: () => {}, + goto: () => Promise.resolve(), + invalidate: () => Promise.resolve(), + invalidateAll: () => Promise.resolve(), + preloadCode: () => Promise.resolve(), + preloadData: () => Promise.resolve(), +})); + +// Mock SvelteKit runtime module $app/stores +vi.mock("$app/stores", () => { + const getStores = () => { + const navigating = readable(null); + const page = readable({ + data: {}, + error: null, + form: undefined, + params: {}, + route: { + id: null, + }, + status: 200, + url: new URL("http://localhost"), + }); + const updated = { + check: async () => false, + subscribe: readable(false).subscribe, + }; + + return { navigating, page, updated }; + }; + + const page = { + subscribe(fn) { + return getStores().page.subscribe(fn); + }, + }; + const navigating = { + subscribe(fn) { + return getStores().navigating.subscribe(fn); + }, + }; + const updated = { + check: async () => false, + subscribe(fn) { + return getStores().updated.subscribe(fn); + }, + }; + + return { + getStores, + navigating, + page, + updated, + }; +}); diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..4d12990 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,55 @@ +// eslint-disable-next-line import/no-unresolved +import { sveltekit } from "@sveltejs/kit/vite"; +import { defineConfig, loadEnv } from "vite"; +import { nodePolyfills } from "vite-plugin-node-polyfills"; +import { execSync } from "child_process"; + +export default defineConfig(({ mode }) => { + const env = loadEnv(mode, process.cwd()); + const buildDate = new Date().toISOString().substring(0, 10); + const buildHash = execSync( + "git log -1 --grep='web-wallet:' --format=format:'%h'" + ); + const APP_VERSION = process.env.npm_package_version ?? "unknown"; + const APP_BUILD_INFO = `${buildHash.toString() || "unknown"} ${buildDate}`; + const commonPlugins = [ + sveltekit(), + nodePolyfills({ + globals: { Buffer: true }, + include: ["buffer"], + }), + ]; + + // needed to use %sveltekit.env.PUBLIC_APP_VERSION% in app.html + process.env.PUBLIC_APP_VERSION = APP_VERSION; + + return { + define: { + CONFIG: { + LOCAL_STORAGE_APP_KEY: process.env.npm_package_name, + }, + "import.meta.env.APP_BUILD_INFO": JSON.stringify(APP_BUILD_INFO), + "import.meta.env.APP_VERSION": JSON.stringify(APP_VERSION), + "process.env": { + API_ENDPOINT: env.VITE_API_ENDPOINT, + }, + }, + plugins: commonPlugins, + test: { + /** @see https://github.com/vitest-dev/vitest/issues/2834 */ + alias: [{ find: /^svelte$/, replacement: "svelte/internal" }], + coverage: { + all: true, + include: ["src/**"], + provider: "istanbul", + }, + env: { + APP_BUILD_INFO: "hash1234 2024-01-12", + APP_VERSION: "0.0.0", + }, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,ts}"], + setupFiles: ["./vite-setup.js"], + }, + }; +}); From 7cc5fb492f88d106e575f5b8a9546ec1681fb771 Mon Sep 17 00:00:00 2001 From: Alex Panturu Date: Mon, 25 Mar 2024 11:00:35 +0200 Subject: [PATCH 002/229] explorer: scaffold page layouts --- package-lock.json | 15 +------- src/routes/+layout.svelte | 7 ++-- src/routes/+page.svelte | 34 ++++++++++++++++++- .../__tests__/__snapshots__/page.spec.js.snap | 24 +++++++++++-- src/routes/blocks/+page.svelte | 4 ++- .../__tests__/__snapshots__/page.spec.js.snap | 10 ++++-- src/routes/blocks/block/+page.svelte | 19 ++++++++++- .../__tests__/__snapshots__/page.spec.js.snap | 18 ++++++++-- src/routes/transactions/+page.svelte | 4 ++- .../__tests__/__snapshots__/page.spec.js.snap | 10 ++++-- .../transactions/transaction/+page.svelte | 4 ++- .../__tests__/__snapshots__/page.spec.js.snap | 10 ++++-- src/style/main.css | 13 +++++++ 13 files changed, 136 insertions(+), 36 deletions(-) create mode 100644 src/style/main.css diff --git a/package-lock.json b/package-lock.json index 40adcb8..59490b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,6 @@ "@testing-library/jest-dom": "6.4.2", "@testing-library/svelte": "4.1.0", "@types/node": "20.11.24", - "@vitejs/plugin-basic-ssl": "1.1.0", "@vitest/browser": "1.3.1", "@vitest/coverage-istanbul": "1.3.1", "autoprefixer": "10.4.18", @@ -42,7 +41,7 @@ "vitest": "1.3.1" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1524,18 +1523,6 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", - "dev": true, - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, "node_modules/@vitest/browser": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-1.3.1.tgz", diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index fe78d6f..4e02d99 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,4 +1,7 @@ -
-

Dusk Explorer

+ + +
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 3be1e3d..313851f 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1 +1,33 @@ -
Chain Info
+
+
Statistics
+
Blocks
+
Transactions
+
+ + diff --git a/src/routes/__tests__/__snapshots__/page.spec.js.snap b/src/routes/__tests__/__snapshots__/page.spec.js.snap index 16df5e2..426efa5 100644 --- a/src/routes/__tests__/__snapshots__/page.spec.js.snap +++ b/src/routes/__tests__/__snapshots__/page.spec.js.snap @@ -2,9 +2,27 @@ exports[`Chain Info > should render the Chain Info page 1`] = `
-
- Chain Info -
+
+
+ Statistics +
+ +
+ Blocks +
+ +
+ Transactions +
+
`; diff --git a/src/routes/blocks/+page.svelte b/src/routes/blocks/+page.svelte index 1dcbfde..a11be9b 100644 --- a/src/routes/blocks/+page.svelte +++ b/src/routes/blocks/+page.svelte @@ -1 +1,3 @@ -
All Blocks
+
+
All Blocks
+
diff --git a/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap b/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap index 6cb61e4..7f99a01 100644 --- a/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap +++ b/src/routes/blocks/__tests__/__snapshots__/page.spec.js.snap @@ -2,9 +2,13 @@ exports[`Blocks > should render the Blocks page 1`] = `
-
- All Blocks -
+
+
+ All Blocks +
+
`; diff --git a/src/routes/blocks/block/+page.svelte b/src/routes/blocks/block/+page.svelte index 62253fa..d2d751b 100644 --- a/src/routes/blocks/block/+page.svelte +++ b/src/routes/blocks/block/+page.svelte @@ -1 +1,18 @@ -
Individual Block
+
+
Block details
+
Block transactions
+
+ + diff --git a/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap b/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap index 9eb68cf..768c595 100644 --- a/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap +++ b/src/routes/blocks/block/__tests__/__snapshots__/page.spec.js.snap @@ -2,9 +2,21 @@ exports[`Block > should render the Block page 1`] = `
-
- Individual Block -
+
+
+ Block details +
+ +
+ Block transactions +
+
`; diff --git a/src/routes/transactions/+page.svelte b/src/routes/transactions/+page.svelte index 534a18b..16870c7 100644 --- a/src/routes/transactions/+page.svelte +++ b/src/routes/transactions/+page.svelte @@ -1 +1,3 @@ -
All Transactions
+
+
All Transactions
+
diff --git a/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap b/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap index ef0003d..dbf68ff 100644 --- a/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap +++ b/src/routes/transactions/__tests__/__snapshots__/page.spec.js.snap @@ -2,9 +2,13 @@ exports[`Transactions > should render the Transactions page 1`] = `
-
- All Transactions -
+
+
+ All Transactions +
+
`; diff --git a/src/routes/transactions/transaction/+page.svelte b/src/routes/transactions/transaction/+page.svelte index 015da9c..cf5e737 100644 --- a/src/routes/transactions/transaction/+page.svelte +++ b/src/routes/transactions/transaction/+page.svelte @@ -1 +1,3 @@ -
Individual Transaction
+
+
Individual Transaction
+
diff --git a/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap b/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap index 7f75613..05e54c0 100644 --- a/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap +++ b/src/routes/transactions/transaction/__tests__/__snapshots__/page.spec.js.snap @@ -2,9 +2,13 @@ exports[`Transaction > should render the Transaction page 1`] = `
-
- Individual Transaction -
+
+
+ Individual Transaction +
+
`; diff --git a/src/style/main.css b/src/style/main.css new file mode 100644 index 0000000..7a00e74 --- /dev/null +++ b/src/style/main.css @@ -0,0 +1,13 @@ +body { + margin: 0; +} + +.explorer { + padding: 0 3rem; +} + +@media (max-width: 768px) { + .explorer { + padding: 0 1.25rem; + } +} From 7e0687f13d022ed80e947b81229f79e6f3012778 Mon Sep 17 00:00:00 2001 From: Alex Panturu Date: Thu, 4 Apr 2024 18:17:12 +0300 Subject: [PATCH 003/229] explorer: compose navbar --- README.md | 2 + jsconfig.json | 5 +- package-lock.json | 18 +- package.json | 4 +- src/app.html | 2 +- .../components/__tests__/AppAnchor.spec.js | 76 ++++ src/lib/components/__tests__/AppImage.spec.js | 53 +++ src/lib/components/__tests__/Navbar.spec.js | 13 + .../__snapshots__/AppAnchor.spec.js.snap | 13 + .../__snapshots__/AppImage.spec.js.snap | 14 + .../__snapshots__/Navbar.spec.js.snap | 122 +++++++ .../components/app-anchor/AppAnchor.svelte | 13 + src/lib/components/app-image/AppImage.svelte | 16 + src/lib/components/index.js | 3 + src/lib/components/navbar/Navbar.css | 137 ++++++++ src/lib/components/navbar/Navbar.svelte | 112 ++++++ .../dusk/components/__tests__/NavList.spec.js | 50 +++ .../dusk/components/__tests__/Select.spec.js | 146 ++++++++ .../__snapshots__/NavList.spec.js.snap | 59 ++++ .../__snapshots__/Select.spec.js.snap | 328 ++++++++++++++++++ src/lib/dusk/components/anchor/Anchor.css | 18 + src/lib/dusk/components/anchor/Anchor.svelte | 21 ++ src/lib/dusk/components/dusk.components.d.ts | 14 + src/lib/dusk/components/index.js | 3 + src/lib/dusk/components/nav-list/NavList.css | 52 +++ .../dusk/components/nav-list/NavList.svelte | 23 ++ src/lib/dusk/components/select/Options.svelte | 20 ++ src/lib/dusk/components/select/Select.css | 41 +++ src/lib/dusk/components/select/Select.svelte | 37 ++ .../string/__tests__/makeClassName.spec.js | 73 ++++ src/lib/dusk/string/index.js | 1 + src/lib/dusk/string/makeClassName.js | 43 +++ src/lib/dusk/test-helpers/SlotContent.svelte | 14 + src/lib/dusk/test-helpers/index.js | 3 + .../test-helpers/renderWithSimpleContent.js | 5 + src/lib/dusk/test-helpers/renderWithSlots.js | 36 ++ .../navigation/__tests__/addBasePath.spec.js | 22 ++ src/lib/navigation/addBasePath.js | 10 + src/lib/navigation/index.js | 1 + src/routes/+layout.svelte | 19 + src/routes/charts/+page.svelte | 1 - .../__tests__/__snapshots__/page.spec.js.snap | 10 - src/routes/charts/__tests__/page.spec.js | 11 - src/style/dusk/colors.css | 27 ++ src/style/dusk/language.css | 131 +++++++ src/style/main.css | 43 ++- static/dusk_logo_light.svg | 1 + vite.config.js | 4 + 48 files changed, 1841 insertions(+), 29 deletions(-) create mode 100644 src/lib/components/__tests__/AppAnchor.spec.js create mode 100644 src/lib/components/__tests__/AppImage.spec.js create mode 100644 src/lib/components/__tests__/Navbar.spec.js create mode 100644 src/lib/components/__tests__/__snapshots__/AppAnchor.spec.js.snap create mode 100644 src/lib/components/__tests__/__snapshots__/AppImage.spec.js.snap create mode 100644 src/lib/components/__tests__/__snapshots__/Navbar.spec.js.snap create mode 100644 src/lib/components/app-anchor/AppAnchor.svelte create mode 100644 src/lib/components/app-image/AppImage.svelte create mode 100644 src/lib/components/index.js create mode 100644 src/lib/components/navbar/Navbar.css create mode 100644 src/lib/components/navbar/Navbar.svelte create mode 100644 src/lib/dusk/components/__tests__/NavList.spec.js create mode 100644 src/lib/dusk/components/__tests__/Select.spec.js create mode 100644 src/lib/dusk/components/__tests__/__snapshots__/NavList.spec.js.snap create mode 100644 src/lib/dusk/components/__tests__/__snapshots__/Select.spec.js.snap create mode 100644 src/lib/dusk/components/anchor/Anchor.css create mode 100644 src/lib/dusk/components/anchor/Anchor.svelte create mode 100644 src/lib/dusk/components/dusk.components.d.ts create mode 100644 src/lib/dusk/components/index.js create mode 100644 src/lib/dusk/components/nav-list/NavList.css create mode 100644 src/lib/dusk/components/nav-list/NavList.svelte create mode 100644 src/lib/dusk/components/select/Options.svelte create mode 100644 src/lib/dusk/components/select/Select.css create mode 100644 src/lib/dusk/components/select/Select.svelte create mode 100644 src/lib/dusk/string/__tests__/makeClassName.spec.js create mode 100644 src/lib/dusk/string/index.js create mode 100644 src/lib/dusk/string/makeClassName.js create mode 100644 src/lib/dusk/test-helpers/SlotContent.svelte create mode 100644 src/lib/dusk/test-helpers/index.js create mode 100644 src/lib/dusk/test-helpers/renderWithSimpleContent.js create mode 100644 src/lib/dusk/test-helpers/renderWithSlots.js create mode 100644 src/lib/navigation/__tests__/addBasePath.spec.js create mode 100644 src/lib/navigation/addBasePath.js create mode 100644 src/lib/navigation/index.js delete mode 100644 src/routes/charts/+page.svelte delete mode 100644 src/routes/charts/__tests__/__snapshots__/page.spec.js.snap delete mode 100644 src/routes/charts/__tests__/page.spec.js create mode 100644 src/style/dusk/colors.css create mode 100644 src/style/dusk/language.css create mode 100644 static/dusk_logo_light.svg diff --git a/README.md b/README.md index f68efd5..1f5f83e 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ The application defines these variables by reading a local `.env` # can be empty string, must start with a slash otherwise, must not end with a slash VITE_BASE_PATH="" VITE_API_ENDPOINT="https://api.dusk.network/v1" +VITE_DUSK_TESTNET_NODE="nodes.dusk.network" +VITE_DUSK_DEVNET_NODE="devnet.nodes.dusk.network" ``` ## NPM scripts diff --git a/jsconfig.json b/jsconfig.json index 4ec998a..8958428 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -10,6 +10,9 @@ "skipLibCheck": false, "sourceMap": true, "strict": true, - "types": ["./node_modules/@testing-library/jest-dom/types/vitest.d.ts"] + "types": [ + "./node_modules/@testing-library/jest-dom/types/vitest.d.ts", + "lamb-types" + ] } } diff --git a/package-lock.json b/package-lock.json index 59490b5..b1679e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "license": "MPL-2.0", "dependencies": { - "@mdi/js": "7.4.47" + "@mdi/js": "7.4.47", + "lamb": "0.61.1" }, "devDependencies": { "@dusk-network/eslint-config": "3.1.0", @@ -28,6 +29,7 @@ "eslint-plugin-svelte": "2.35.1", "jsdom": "24.0.0", "jsdom-worker": "0.3.0", + "lamb-types": "0.61.0", "postcss-nested": "6.0.1", "prettier": "3.2.5", "prettier-plugin-svelte": "3.2.2", @@ -5039,6 +5041,20 @@ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", "dev": true }, + "node_modules/lamb": { + "version": "0.61.1", + "resolved": "https://registry.npmjs.org/lamb/-/lamb-0.61.1.tgz", + "integrity": "sha512-KnJe/9ezIxQjeK5idtlffn9PlA2y4BNW0FslBZK20+EuMmvePfNL4qO2ZGdP187Vd3yWgrEnrBsfMal/Ggzowg==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/lamb-types": { + "version": "0.61.0", + "resolved": "https://registry.npmjs.org/lamb-types/-/lamb-types-0.61.0.tgz", + "integrity": "sha512-95DhTdnrkoMhuopWyv+z0KIMqOJx+Q3pTugOuMw1ZQMVFoEsCG0Zonrx19N3jWLnhG4P4rP4nQQIj9HFXp+54A==", + "dev": true + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", diff --git a/package.json b/package.json index 961ce38..abb77c7 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,8 @@ "type": "module", "version": "0.0.0", "dependencies": { - "@mdi/js": "7.4.47" + "@mdi/js": "7.4.47", + "lamb": "0.61.1" }, "devDependencies": { "@dusk-network/eslint-config": "3.1.0", @@ -54,6 +55,7 @@ "eslint-plugin-svelte": "2.35.1", "jsdom": "24.0.0", "jsdom-worker": "0.3.0", + "lamb-types": "0.61.0", "postcss-nested": "6.0.1", "prettier": "3.2.5", "prettier-plugin-svelte": "3.2.2", diff --git a/src/app.html b/src/app.html index 3f72b1e..b74b01f 100644 --- a/src/app.html +++ b/src/app.html @@ -16,6 +16,6 @@ data-sveltekit-preload-code="viewport" data-sveltekit-preload-data="hover" > -
%sveltekit.body%
+
%sveltekit.body%
diff --git a/src/lib/components/__tests__/AppAnchor.spec.js b/src/lib/components/__tests__/AppAnchor.spec.js new file mode 100644 index 0000000..72c1d14 --- /dev/null +++ b/src/lib/components/__tests__/AppAnchor.spec.js @@ -0,0 +1,76 @@ +import { afterEach, describe, expect, it, vi } from "vitest"; +import { cleanup, fireEvent, render } from "@testing-library/svelte"; +import { base } from "$app/paths"; + +import { renderWithSimpleContent } from "$lib/dusk/test-helpers"; + +import { AppAnchor } from ".."; + +describe("AppAnchor", () => { + const baseProps = { + className: "foo bar", + href: "/setup", + id: "some-id", + }; + const baseOptions = { + props: baseProps, + target: document.body, + }; + + afterEach(cleanup); + + it("should render an `Anchor` with the base path prepended to the `href` attribute, if the `href` represents an absolute URL", () => { + const renderA = renderWithSimpleContent(AppAnchor, baseOptions); + const anchorA = renderA.getByRole("link"); + + expect(renderA.container.firstChild).toMatchSnapshot(); + expect(anchorA).toHaveAttribute("href", `${base}${baseProps.href}`); + expect(anchorA).toHaveClass("foo bar"); + expect(anchorA).toHaveAttribute("id", baseProps.id); + + cleanup(); + + const renderB = renderWithSimpleContent(AppAnchor, { + ...baseOptions, + props: { ...baseProps, href: "/" }, + }); + const anchorB = renderB.getByRole("link"); + + expect(anchorB).toHaveAttribute("href", `${base}/`); + expect(anchorB).toHaveClass("foo bar"); + expect(anchorB).toHaveAttribute("id", baseProps.id); + }); + + it("should leave the `Anchor` as it is if the `href` points to a relative path", () => { + const { getByRole } = renderWithSimpleContent(AppAnchor, { + ...baseOptions, + props: { ...baseProps, href: "foo/bar" }, + }); + + expect(getByRole("link")).toHaveAttribute("href", "foo/bar"); + }); + + it("should leave the `Anchor` as it is if the `href` points to an external URL", () => { + const href = "http://example.com"; + const { getByRole } = renderWithSimpleContent(AppAnchor, { + ...baseOptions, + props: { ...baseProps, href }, + }); + + expect(getByRole("link")).toHaveAttribute("href", href); + }); + + it("should forward the `onclick` event to the `Anchor`", async () => { + const handler = vi.fn(); + const { component, getByRole } = render(AppAnchor, { + ...baseProps, + href: "#", + }); + + component.$on("click", handler); + + await fireEvent.click(getByRole("link")); + + expect(handler).toHaveBeenCalledTimes(1); + }); +}); diff --git a/src/lib/components/__tests__/AppImage.spec.js b/src/lib/components/__tests__/AppImage.spec.js new file mode 100644 index 0000000..e6576b6 --- /dev/null +++ b/src/lib/components/__tests__/AppImage.spec.js @@ -0,0 +1,53 @@ +import { afterEach, describe, expect, it } from "vitest"; +import { cleanup, render } from "@testing-library/svelte"; +import { base } from "$app/paths"; + +import { AppImage } from ".."; + +describe("AppImage", () => { + const baseProps = { + alt: "Some alternative text", + className: "foo bar", + height: "600", + src: "/images/some-image.jpg", + width: "800", + }; + + afterEach(cleanup); + + it("should render an HTML image forwarding all attributes but with the base path prepended to the `src` if it's an absolute URL", () => { + const { container, getByRole, rerender } = render(AppImage, baseProps); + const imgA = getByRole("img"); + + expect(container.firstChild).toMatchSnapshot(); + expect(imgA).toHaveAttribute("alt", baseProps.alt); + expect(imgA).toHaveClass("foo bar"); + expect(imgA).toHaveAttribute("height", baseProps.height); + expect(imgA).toHaveAttribute("src", `${base}${baseProps.src}`); + expect(imgA).toHaveAttribute("width", baseProps.width); + + rerender({ ...baseProps, className: "baz", src: "/" }); + + const imgB = getByRole("img"); + + expect(imgB).toHaveAttribute("alt", baseProps.alt); + expect(imgB).toHaveClass("baz"); + expect(imgB).toHaveAttribute("height", baseProps.height); + expect(imgB).toHaveAttribute("src", `${base}/`); + expect(imgB).toHaveAttribute("width", baseProps.width); + }); + + it("shouldn't touch the src attribute if it represents a relative path", () => { + const src = "images/some-image.jpg"; + const { getByRole } = render(AppImage, { ...baseProps, src }); + + expect(getByRole("img")).toHaveAttribute("src", src); + }); + + it("shoudn't touch the `src` attribute if it points to an external URL", () => { + const src = "http://example.com/some-image.jpg"; + const { getByRole } = render(AppImage, { ...baseProps, src }); + + expect(getByRole("img")).toHaveAttribute("src", src); + }); +}); diff --git a/src/lib/components/__tests__/Navbar.spec.js b/src/lib/components/__tests__/Navbar.spec.js new file mode 100644 index 0000000..28d4840 --- /dev/null +++ b/src/lib/components/__tests__/Navbar.spec.js @@ -0,0 +1,13 @@ +import { afterEach, describe, expect, it } from "vitest"; +import { cleanup, render } from "@testing-library/svelte"; +import { Navbar } from "../"; + +describe("Navbar", () => { + afterEach(cleanup); + + it("renders the Navbar component", () => { + const { container } = render(Navbar); + + expect(container.firstChild).toMatchSnapshot(); + }); +}); diff --git a/src/lib/components/__tests__/__snapshots__/AppAnchor.spec.js.snap b/src/lib/components/__tests__/__snapshots__/AppAnchor.spec.js.snap new file mode 100644 index 0000000..7831817 --- /dev/null +++ b/src/lib/components/__tests__/__snapshots__/AppAnchor.spec.js.snap @@ -0,0 +1,13 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`AppAnchor > should render an \`Anchor\` with the base path prepended to the \`href\` attribute, if the \`href\` represents an absolute URL 1`] = ` +
+ + some text + + +`; diff --git a/src/lib/components/__tests__/__snapshots__/AppImage.spec.js.snap b/src/lib/components/__tests__/__snapshots__/AppImage.spec.js.snap new file mode 100644 index 0000000..15517db --- /dev/null +++ b/src/lib/components/__tests__/__snapshots__/AppImage.spec.js.snap @@ -0,0 +1,14 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`AppImage > should render an HTML image forwarding all attributes but with the base path prepended to the \`src\` if it's an absolute URL 1`] = ` +
+ Some alternative text + +
+`; diff --git a/src/lib/components/__tests__/__snapshots__/Navbar.spec.js.snap b/src/lib/components/__tests__/__snapshots__/Navbar.spec.js.snap new file mode 100644 index 0000000..4ec28f2 --- /dev/null +++ b/src/lib/components/__tests__/__snapshots__/Navbar.spec.js.snap @@ -0,0 +1,122 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Navbar > renders the Navbar component 1`] = ` +
+ + +
+`; diff --git a/src/lib/components/app-anchor/AppAnchor.svelte b/src/lib/components/app-anchor/AppAnchor.svelte new file mode 100644 index 0000000..776a37e --- /dev/null +++ b/src/lib/components/app-anchor/AppAnchor.svelte @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/lib/components/app-image/AppImage.svelte b/src/lib/components/app-image/AppImage.svelte new file mode 100644 index 0000000..bcd2845 --- /dev/null +++ b/src/lib/components/app-image/AppImage.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/lib/components/index.js b/src/lib/components/index.js new file mode 100644 index 0000000..b46c655 --- /dev/null +++ b/src/lib/components/index.js @@ -0,0 +1,3 @@ +export { default as AppAnchor } from "./app-anchor/AppAnchor.svelte"; +export { default as AppImage } from "./app-image/AppImage.svelte"; +export { default as Navbar } from "./navbar/Navbar.svelte"; diff --git a/src/lib/components/navbar/Navbar.css b/src/lib/components/navbar/Navbar.css new file mode 100644 index 0000000..d59ff5b --- /dev/null +++ b/src/lib/components/navbar/Navbar.css @@ -0,0 +1,137 @@ +.dusk-navbar { + overscroll-behavior: contain; + height: 100%; + z-index: 999; + margin: 0 auto; + padding: 1.5625rem 0; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +.dusk-navbar--menu-hidden { + background-color: var(--background-color); + position: sticky; + height: auto; + min-height: 0; +} + +.dusk-navbar__logo { + display: flex; + align-items: center; +} + +.dusk-navbar__logo img { + width: 5.375rem; + height: 1.25rem; +} + +.dusk-navbar__toggle { + background-color: transparent; + display: inline-flex; + align-items: center; + font-size: 1rem; + border: none; +} + +.dusk-navbar__toggle:focus { + outline: none; +} + +.dusk-navbar__toggle-svg { + width: 1.875rem; + height: 1.875rem; + stroke: currentColor; +} + +.dusk-navbar__menu { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 100%; + /* + 80px is the total height of the navbar on a small viewport. + It is needed so we know the exact height that needs to be set to the opened menu. + */ + height: calc(100vh - 80px); + gap: 1.875rem; +} + +.dusk-navbar__menu--hidden { + display: none; +} + +.dusk-navbar__menu--network { + order: 3; +} + +.dusk-navbar__menu--network select { + text-transform: uppercase; + padding: 0.625rem 0.875rem; + padding-right: 2.25rem; + font-size: 0.875rem; + font-weight: 500; +} + +.dusk-navbar__menu--links { + width: 100%; + order: 2; +} + +.dusk-navbar__menu--search { + order: 1; + margin-top: 2.5rem; +} + +@media (min-width: 1024px) { + .dusk-navbar { + padding: 0; + margin-bottom: 1.25rem; + min-height: 5rem; + position: relative; + background-color: transparent; + flex-direction: row; + flex-wrap: nowrap; + column-gap: 4.375rem; + } + + .dusk-navbar__logo img { + width: 8.0625rem; + height: 1.9375rem; + } + + .dusk-navbar--menu-hidden { + position: relative; + } + + .dusk-navbar__toggle { + display: none; + } + + .dusk-navbar__menu { + position: relative; + height: 100%; + flex-direction: row; + align-items: center; + justify-content: space-between; + row-gap: 2rem; + } + + .dusk-navbar__menu--hidden { + display: flex; + } + + .dusk-navbar__menu--network { + order: 1; + } + + .dusk-navbar__menu--links { + order: 2; + } + + .dusk-navbar__menu--search { + order: 3; + margin-top: 0; + } +} diff --git a/src/lib/components/navbar/Navbar.svelte b/src/lib/components/navbar/Navbar.svelte new file mode 100644 index 0000000..fa0a621 --- /dev/null +++ b/src/lib/components/navbar/Navbar.svelte @@ -0,0 +1,112 @@ + + + + + diff --git a/src/lib/components/__tests__/__snapshots__/TextboxAndButton.spec.js.snap b/src/lib/components/__tests__/__snapshots__/TextboxAndButton.spec.js.snap new file mode 100644 index 0000000..a807c5e --- /dev/null +++ b/src/lib/components/__tests__/__snapshots__/TextboxAndButton.spec.js.snap @@ -0,0 +1,71 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`TextField > renders the component with default values 1`] = ` +
+ + + + + + +
+`; + +exports[`TextField > updates input value on change 1`] = ` +
+ + + + + + +
+`; diff --git a/src/lib/components/index.js b/src/lib/components/index.js index 6f86c79..49a4fdf 100644 --- a/src/lib/components/index.js +++ b/src/lib/components/index.js @@ -7,5 +7,6 @@ export { default as Footer } from "./footer/Footer.svelte"; export { default as ListItem } from "./list-item/ListItem.svelte"; export { default as Navbar } from "./navbar/Navbar.svelte"; export { default as StatisticsPanel } from "./statistics-panel/StatisticsPanel.svelte"; +export { default as TextboxAndButton } from "./textbox-and-button/TextboxAndButton.svelte"; export { default as TransactionDetails } from "./transaction-details/TransactionDetails.svelte"; export { default as TransactionsList } from "./transactions-list/TransactionsList.svelte"; diff --git a/src/lib/components/navbar/Navbar.svelte b/src/lib/components/navbar/Navbar.svelte index fa0a621..42e7ad9 100644 --- a/src/lib/components/navbar/Navbar.svelte +++ b/src/lib/components/navbar/Navbar.svelte @@ -1,5 +1,6 @@ + +
+ +
diff --git a/src/lib/containers/index.js b/src/lib/containers/index.js new file mode 100644 index 0000000..1eb77b2 --- /dev/null +++ b/src/lib/containers/index.js @@ -0,0 +1 @@ +export { default as SearchField } from "./search-field/SearchField.svelte"; diff --git a/src/lib/containers/search-field/SearchField.svelte b/src/lib/containers/search-field/SearchField.svelte new file mode 100644 index 0000000..a148117 --- /dev/null +++ b/src/lib/containers/search-field/SearchField.svelte @@ -0,0 +1,59 @@ + + +
+ + diff --git a/src/lib/dusk/components/__tests__/Button.spec.js b/src/lib/dusk/components/__tests__/Button.spec.js new file mode 100644 index 0000000..e236d59 --- /dev/null +++ b/src/lib/dusk/components/__tests__/Button.spec.js @@ -0,0 +1,84 @@ +import { afterEach, describe, expect, it } from "vitest"; +import { cleanup, render } from "@testing-library/svelte"; +import { mdiFolderOutline } from "@mdi/js"; + +import { Button } from ".."; + +describe("Button", () => { + const baseProps = { + text: "some text", + }; + const baseOptions = { + props: baseProps, + target: document.body, + }; + + afterEach(cleanup); + + it('should render the Button component using the type "button" as a default', () => { + const { container } = render(Button, baseOptions); + + expect(container.firstChild).toMatchSnapshot(); + }); + + it("should render a button of the desired type", () => { + ["button", "reset", "submit", "toggle"].forEach((type) => { + const props = { ...baseProps, type }; + const { container } = render(Button, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + }); + }); + + it("should pass additional class names and attributes to the rendered element", () => { + const props = { + ...baseProps, + className: "foo bar", + id: "some-id", + }; + const { container } = render(Button, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + }); + + it("should render a button without a text", () => { + const props = { + ...baseProps, + text: "", + }; + const { container } = render(Button, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + }); + + it("should be able to render a button with an icon and text", () => { + ["after", "before"].forEach((position) => { + const props = { + ...baseProps, + icon: { + path: mdiFolderOutline, + position, + }, + }; + const { container } = render(Button, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + }); + }); + + it("should be able to render a button with an icon only", () => { + ["after", "before"].forEach((position) => { + const props = { + ...baseProps, + icon: { + path: mdiFolderOutline, + position, + }, + text: "", + }; + const { container } = render(Button, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + }); + }); +}); diff --git a/src/lib/dusk/components/__tests__/Textbox.spec.js b/src/lib/dusk/components/__tests__/Textbox.spec.js new file mode 100644 index 0000000..b407ba4 --- /dev/null +++ b/src/lib/dusk/components/__tests__/Textbox.spec.js @@ -0,0 +1,117 @@ +import { afterEach, describe, expect, it, vi } from "vitest"; +import { cleanup, fireEvent, render } from "@testing-library/svelte"; + +import { Textbox } from ".."; + +describe("Textbox", () => { + const baseProps = {}; + const baseOptions = { + props: baseProps, + target: document.body, + }; + + afterEach(cleanup); + + it('should render a Textbox of type "text" as a default', () => { + const { container } = render(Textbox, baseOptions); + + expect(container.firstChild).toMatchSnapshot(); + }); + + it("should render a Textbox component of the desired type", () => { + [ + "email", + "hidden", + "multiline", + "number", + "password", + "search", + "tel", + "text", + "url", + ].forEach((type) => { + const props = { + ...baseProps, + type, + }; + const { container } = render(Textbox, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + + cleanup(); + }); + }); + + it("should pass additional class names and attributes to the rendered element", () => { + const props = { + ...baseProps, + className: "foo bar", + id: "some-id", + value: "some textbox text", + }; + const { container } = render(Textbox, { ...baseOptions, props }); + + expect(container.firstChild).toMatchSnapshot(); + }); + + it("should change value before forwarding the `input` event", async () => { + const initialValue = "some textbox text"; + const newValue = "new value"; + const props = { + ...baseProps, + className: "foo bar", + id: "some-id", + value: initialValue, + }; + + const changeHandler = vi.fn(); + + const { component, getByRole } = render(Textbox, { ...baseOptions, props }); + + const input = getByRole("textbox"); + + expect(input).toHaveValue(initialValue); + + component.$on("input", changeHandler); + + await fireEvent.input(input, { target: { value: newValue } }); + + expect(input).toHaveValue(newValue); + + expect(changeHandler).toHaveBeenCalledTimes(1); + expect(changeHandler).toHaveBeenCalledWith( + expect.objectContaining({ + target: expect.objectContaining({ value: newValue }), + }) + ); + }); + + it("should expose a method to give focus to the rendered element", () => { + const { component, getByRole } = render(Textbox, baseOptions); + const input = getByRole("textbox"); + + component.focus(); + + expect(input).toHaveFocus(); + }); + + it("should expose a method to select the element's text", () => { + const props = { + ...baseProps, + value: "some input text", + }; + const { component, getByRole } = render(Textbox, { ...baseOptions, props }); + + // eslint-disable-next-line no-extra-parens + const input = /** @type {HTMLInputElement} */ (getByRole("textbox")); + + component.select(); + + const selectedText = input.value.substring( + Number(input.selectionStart), + Number(input.selectionEnd) + ); + + expect(selectedText).toBe(props.value); + }); +}); diff --git a/src/lib/dusk/components/__tests__/__snapshots__/Button.spec.js.snap b/src/lib/dusk/components/__tests__/__snapshots__/Button.spec.js.snap new file mode 100644 index 0000000..df64c9c --- /dev/null +++ b/src/lib/dusk/components/__tests__/__snapshots__/Button.spec.js.snap @@ -0,0 +1,177 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Button > should be able to render a button with an icon and text 1`] = ` + +`; + +exports[`Button > should be able to render a button with an icon and text 2`] = ` + +`; + +exports[`Button > should be able to render a button with an icon only 1`] = ` + +`; + +exports[`Button > should be able to render a button with an icon only 2`] = ` + +`; + +exports[`Button > should pass additional class names and attributes to the rendered element 1`] = ` + +`; + +exports[`Button > should render a button of the desired type 1`] = ` + +`; + +exports[`Button > should render a button of the desired type 2`] = ` + +`; + +exports[`Button > should render a button of the desired type 3`] = ` + +`; + +exports[`Button > should render a button of the desired type 4`] = ` + +`; + +exports[`Button > should render a button without a text 1`] = ` + +`; diff --git a/src/lib/dusk/components/__tests__/__snapshots__/Textbox.spec.js.snap b/src/lib/dusk/components/__tests__/__snapshots__/Textbox.spec.js.snap new file mode 100644 index 0000000..853e5b4 --- /dev/null +++ b/src/lib/dusk/components/__tests__/__snapshots__/Textbox.spec.js.snap @@ -0,0 +1,79 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Textbox > should pass additional class names and attributes to the rendered element 1`] = ` + +`; + +exports[`Textbox > should render a Textbox component of the desired type 1`] = ` + +`; + +exports[`Textbox > should render a Textbox component of the desired type 2`] = ` + +`; + +exports[`Textbox > should render a Textbox component of the desired type 3`] = ` + {:else} - /* eslint-disable-next-line import/no-unresolved */ import { flip } from "svelte/animate"; import { fly } from "svelte/transition"; import { Icon } from "$lib/dusk/components"; diff --git a/src/lib/dusk/components/tooltip/Tooltip.svelte b/src/lib/dusk/components/tooltip/Tooltip.svelte index fe0c835..7c3ca93 100644 --- a/src/lib/dusk/components/tooltip/Tooltip.svelte +++ b/src/lib/dusk/components/tooltip/Tooltip.svelte @@ -158,7 +158,6 @@ // We consider only "top", "right", "bottom" and "left" for now. // The extra parenthesis are needed to force the cast for the type checker. - // eslint-disable-next-line no-extra-parens const place = /** @type {import("@floating-ui/dom").Side} */ ( placement.replace(/-.+$/, "") ); diff --git a/src/lib/dusk/icons/logo.js b/src/lib/dusk/icons/logo.js index d9bc5a8..7b00393 100644 --- a/src/lib/dusk/icons/logo.js +++ b/src/lib/dusk/icons/logo.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line max-len const DUSK_LOGO_PATH = "M12.335 0.005a12.186 12.186 0 0 0 -2.58 0.204C4.2 1.259 0 6.14 0 11.999 0 17.859 4.203 22.74 9.759 23.79c0.726 0.138 1.476 0.21 2.241 0.21 6.789 0 12.261 -5.64 11.991 -12.49C23.741 5.249 18.599 0.173 12.335 0.005Zm0.207 21.58c-0.204 0.012 -0.336 -0.222 -0.21 -0.384 1.974 -2.541 3.153 -5.733 3.153 -9.202 0 -3.468 -1.176 -6.663 -3.153 -9.202 -0.126 -0.162 0.003 -0.396 0.207 -0.384 5.052 0.282 9.06 4.465 9.06 9.586 0 5.121 -4.005 9.304 -9.057 9.586Z"; export default DUSK_LOGO_PATH; diff --git a/src/lib/dusk/string/decodeHexString.js b/src/lib/dusk/string/decodeHexString.js index 999fe0a..024d97d 100644 --- a/src/lib/dusk/string/decodeHexString.js +++ b/src/lib/dusk/string/decodeHexString.js @@ -16,7 +16,7 @@ function decodeHexString(value) { let decodedString; try { decodedString = decoder.decode(bytes); - } catch (e) { + } catch { return value; } diff --git a/vite.config.js b/vite.config.js index 0210486..d299075 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-unresolved import { sveltekit } from "@sveltejs/kit/vite"; import { defineConfig, loadEnv } from "vite"; import { execSync } from "child_process"; From c8eb958491c3f3906c2755d20ebe4a164b8cc861 Mon Sep 17 00:00:00 2001 From: Andrea Scartabelli Date: Mon, 12 May 2025 16:15:51 +0200 Subject: [PATCH 209/229] web-wallet: update eslint configuration and dependencies - Updated explorer `@dusk-network/eslint-config` to `v4.0.1` Resolves #3725 --- package-lock.json | 223 ++++++---------------------------------------- package.json | 3 +- 2 files changed, 30 insertions(+), 196 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f1ed4f..3ac9b9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "lamb": "0.61.1" }, "devDependencies": { - "@dusk-network/eslint-config": "4.0.0", + "@dusk-network/eslint-config": "4.0.1", "@dusk-network/prettier-config": "1.1.0", "@eslint/js": "9.26.0", "@juggle/resize-observer": "3.4.0", @@ -33,6 +33,7 @@ "eslint-config-prettier": "10.1.2", "eslint-import-resolver-typescript": "4.3.4", "eslint-plugin-svelte": "3.5.1", + "globals": "16.1.0", "jsdom": "26.1.0", "jsdom-worker": "0.3.0", "lamb-types": "0.61.13", @@ -491,11 +492,14 @@ } }, "node_modules/@dusk-network/eslint-config": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@dusk-network/eslint-config/-/eslint-config-4.0.0.tgz", - "integrity": "sha512-4GZxihKlzh522mUooqUn5lUWY8hbfw0u/wq/IWht1Wscfot58F5sLDmNoHudghODXyrObM5eIv4dNg9LjkkOKQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@dusk-network/eslint-config/-/eslint-config-4.0.1.tgz", + "integrity": "sha512-E9q4sKPT/s9o8kgSySXLUB4jcRy+a0N/vn5psZ49iU4tHI93SXZkqzfF22CtVR+9nW3PNEqkN2kJwPVdjEK0sg==", "dev": true, "license": "MPL-2.0", + "dependencies": { + "eslint-plugin-import": "2.31.0" + }, "engines": { "node": ">=20.18.0" }, @@ -1051,6 +1055,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { "version": "9.26.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", @@ -1652,9 +1669,7 @@ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@sveltejs/adapter-static": { "version": "3.0.8", @@ -1918,9 +1933,7 @@ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@types/node": { "version": "22.14.1", @@ -2674,8 +2687,6 @@ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -2693,8 +2704,6 @@ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -2716,8 +2725,6 @@ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -2740,8 +2747,6 @@ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -2761,8 +2766,6 @@ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -2782,8 +2785,6 @@ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -2816,8 +2817,6 @@ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" } @@ -2866,8 +2865,6 @@ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -3022,8 +3019,6 @@ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -3471,8 +3466,6 @@ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -3491,8 +3484,6 @@ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -3511,8 +3502,6 @@ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -3584,8 +3573,6 @@ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -3604,8 +3591,6 @@ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -3661,8 +3646,6 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "license": "Apache-2.0", - "optional": true, - "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -3749,8 +3732,6 @@ "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", @@ -3857,8 +3838,6 @@ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -3875,8 +3854,6 @@ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "hasown": "^2.0.2" }, @@ -3890,8 +3867,6 @@ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -4062,8 +4037,6 @@ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -4076,8 +4049,6 @@ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -4122,8 +4093,6 @@ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "debug": "^3.2.7" }, @@ -4142,8 +4111,6 @@ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -4154,8 +4121,6 @@ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -4190,8 +4155,6 @@ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -4662,8 +4625,6 @@ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "is-callable": "^1.2.7" }, @@ -4777,8 +4738,6 @@ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4800,8 +4759,6 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4861,8 +4818,6 @@ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -4949,9 +4904,9 @@ } }, "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.1.0.tgz", + "integrity": "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==", "dev": true, "license": "MIT", "engines": { @@ -4967,8 +4922,6 @@ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -5020,8 +4973,6 @@ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5045,8 +4996,6 @@ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -5060,8 +5009,6 @@ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "dunder-proto": "^1.0.0" }, @@ -5091,8 +5038,6 @@ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "has-symbols": "^1.0.3" }, @@ -5277,8 +5222,6 @@ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -5313,8 +5256,6 @@ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5333,8 +5274,6 @@ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -5355,8 +5294,6 @@ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "has-bigints": "^1.0.2" }, @@ -5386,8 +5323,6 @@ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -5428,8 +5363,6 @@ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5443,8 +5376,6 @@ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "hasown": "^2.0.2" }, @@ -5461,8 +5392,6 @@ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -5481,8 +5410,6 @@ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -5510,8 +5437,6 @@ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -5538,8 +5463,6 @@ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", @@ -5572,8 +5495,6 @@ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5597,8 +5518,6 @@ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -5640,8 +5559,6 @@ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -5661,8 +5578,6 @@ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5676,8 +5591,6 @@ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -5694,8 +5607,6 @@ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -5713,8 +5624,6 @@ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -5733,8 +5642,6 @@ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "which-typed-array": "^1.1.16" }, @@ -5751,8 +5658,6 @@ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5766,8 +5671,6 @@ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -5784,8 +5687,6 @@ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -5802,9 +5703,7 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", @@ -6554,8 +6453,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" } @@ -6566,8 +6463,6 @@ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6589,8 +6484,6 @@ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6610,8 +6503,6 @@ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6627,8 +6518,6 @@ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6689,8 +6578,6 @@ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -6813,9 +6700,7 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", @@ -6916,8 +6801,6 @@ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" } @@ -7276,8 +7159,6 @@ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7301,8 +7182,6 @@ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7324,8 +7203,6 @@ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -7519,8 +7396,6 @@ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -7562,8 +7437,6 @@ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -7581,8 +7454,6 @@ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7690,8 +7561,6 @@ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7710,8 +7579,6 @@ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7728,8 +7595,6 @@ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -7997,8 +7862,6 @@ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -8021,8 +7884,6 @@ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -8042,8 +7903,6 @@ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8105,8 +7964,6 @@ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">=4" } @@ -8156,8 +8013,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -8643,8 +8498,6 @@ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -8658,8 +8511,6 @@ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "minimist": "^1.2.0" }, @@ -8709,8 +8560,6 @@ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -8726,8 +8575,6 @@ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -8748,8 +8595,6 @@ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -8772,8 +8617,6 @@ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -8809,8 +8652,6 @@ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -9219,8 +9060,6 @@ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -9241,8 +9080,6 @@ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -9271,8 +9108,6 @@ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -9292,8 +9127,6 @@ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", diff --git a/package.json b/package.json index d010a0c..7023ebf 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "lamb": "0.61.1" }, "devDependencies": { - "@dusk-network/eslint-config": "4.0.0", + "@dusk-network/eslint-config": "4.0.1", "@dusk-network/prettier-config": "1.1.0", "@eslint/js": "9.26.0", "@juggle/resize-observer": "3.4.0", @@ -59,6 +59,7 @@ "eslint-config-prettier": "10.1.2", "eslint-import-resolver-typescript": "4.3.4", "eslint-plugin-svelte": "3.5.1", + "globals": "16.1.0", "jsdom": "26.1.0", "jsdom-worker": "0.3.0", "lamb-types": "0.61.13", From 319ceec80f915306d66129f42c5d1916477e42a2 Mon Sep 17 00:00:00 2001 From: Norton Andreev Date: Wed, 14 May 2025 10:54:43 +0200 Subject: [PATCH 210/229] explorer: Add account address copy button (Account page) Resolves #3698 --- CHANGELOG.md | 2 + .../account-overview/AccountOverview.svelte | 49 ++++++++++++------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 244a519..e0b0b63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to ### Added - Add Tokens page [#3415] +- Add account address copy button (Account page) [#3698] ### Changed @@ -244,6 +245,7 @@ and this project adheres to [#3676]: https://github.com/dusk-network/rusk/issues/3676 [#3692]: https://github.com/dusk-network/rusk/issues/3692 [#3694]: https://github.com/dusk-network/rusk/issues/3694 +[#3698]: https://github.com/dusk-network/rusk/issues/3698 [#3720]: https://github.com/dusk-network/rusk/issues/3720 diff --git a/src/lib/components/account-overview/AccountOverview.svelte b/src/lib/components/account-overview/AccountOverview.svelte index cbf9894..c7f7cae 100644 --- a/src/lib/components/account-overview/AccountOverview.svelte +++ b/src/lib/components/account-overview/AccountOverview.svelte @@ -1,13 +1,13 @@