diff --git a/.circleci/config.yml b/.circleci/config.yml index 7bca81371..0f1b52640 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,13 +2,13 @@ version: 2.1 orbs: - node: circleci/node@5.1.0 + node: circleci/node@5.2.0 executors: rust-node: docker: - - image: cimg/rust:1.73-node + - image: cimg/rust:1.80-node commands: @@ -73,12 +73,31 @@ jobs: yarn test + e2e-testnet: + executor: rust-node + steps: + - setup-sdk + - run: + working_directory: sdk/e2e/testnet + command: | + yarn start + + e2e-mainnet: + executor: rust-node + steps: + - setup-sdk + - run: + working_directory: sdk/e2e/mainnet + command: | + yarn start + + template-node: executor: rust-node steps: - setup-sdk - run: - working_directory: create-aleo-app/template-node + working_directory: create-leo-app/template-node command: | yarn start @@ -87,7 +106,7 @@ jobs: steps: - setup-sdk - run: - working_directory: create-aleo-app/template-node-ts + working_directory: create-leo-app/template-node-ts command: | yarn start @@ -96,7 +115,7 @@ jobs: steps: - setup-sdk - run: - working_directory: create-aleo-app/template-extension + working_directory: create-leo-app/template-extension command: | yarn build @@ -105,7 +124,7 @@ jobs: steps: - setup-sdk - run: - working_directory: create-aleo-app/template-react-leo + working_directory: create-leo-app/template-react-leo command: | yarn build @@ -119,7 +138,8 @@ jobs: - run: working_directory: wasm command: | - cargo clippy + cargo clippy --features testnet + cargo clippy --features mainnet check-fmt: executor: rust-node @@ -144,6 +164,12 @@ workflows: - sdk-test: requires: - sdk + - e2e-testnet: + requires: + - sdk + - e2e-mainnet: + requires: + - sdk - template-node: requires: - sdk diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 88d622157..d70564903 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,3 +1,3 @@ -## πŸ‘‰ [Please follow one of these issue templates](https://github.com/AleoHQ/sdk/issues/new/choose) πŸ‘ˆ +## πŸ‘‰ [Please follow one of these issue templates](https://github.com/ProvableHQ/sdk/issues/new/choose) πŸ‘ˆ Note: to keep the backlog clean and actionable, issues may be immediately closed if they do not follow one of the above issue templates. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 17e35a2a3..fb91efaac 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -24,7 +24,7 @@ diff --git a/.github/workflows/staging-website.yml b/.github/workflows/staging-website.yml index 29f342a00..80e3757e8 100644 --- a/.github/workflows/staging-website.yml +++ b/.github/workflows/staging-website.yml @@ -18,7 +18,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2024-05-14 + toolchain: nightly-2024-07-21 override: true components: rustfmt, rust-src @@ -44,7 +44,7 @@ jobs: uses: JamesIves/github-pages-deploy-action@v4 with: token: ${{ secrets.GITHUB_TOKEN }} - branch: staging.aleo.tools + branch: staging.provable.tools folder: website/dist clean-exclude: '["dev"]' diff --git a/.github/workflows/test-website.yml b/.github/workflows/test-website.yml index fbd9407e4..e420d33ab 100644 --- a/.github/workflows/test-website.yml +++ b/.github/workflows/test-website.yml @@ -15,7 +15,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2024-05-14 + toolchain: nightly-2024-07-21 override: true components: rustfmt, rust-src diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index ec7036618..e494aeebb 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -18,7 +18,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2024-05-14 + toolchain: nightly-2024-07-21 override: true components: rustfmt, rust-src diff --git a/.gitignore b/.gitignore index c3036429c..3b93409d1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ **/node_modules **/target **/dist +**/tmp storage*/ **/.next @@ -18,4 +19,4 @@ rust/src/program/.DS_Store # Local Netlify folder .netlify -package-lock.json \ No newline at end of file +package-lock.json diff --git a/README.md b/README.md index 5fca2f9ee..db9b02263 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,62 @@ -Aleo SDK

Website - + - +

# Zero Knowledge Web App SDK -The [Aleo SDK](https://github.com/AleoHQ/sdk) provides tools for building zero knowledge applications. It consists of +The [Aleo SDK](https://github.com/ProvableHQ/sdk) provides tools for building zero-knowledge applications. It consists of several TypeScript & JavaScript libraries which provide the following functionality: -1. [Aleo account management](https://aleo.tools/account) -2. [Web-based program execution and deployment](https://aleo.tools/develop) -3. [Aleo credit transfers](https://aleo.tools/transfer) -4. [Management of program state and data](https://aleo.tools/record) -5. [Communication with the Aleo network](https://aleo.tools/rest) +1. [Aleo account management](https://provable.tools/account) +2. [Web-based program execution and deployment](https://provable.tools/develop) +3. [Aleo credit transfers](https://provable.tools/transfer) +4. [Management of program state and data](https://provable.tools/record) +5. [Communication with the Aleo network](https://provable.tools/rest) -All of this functionality is demonstrated on [Aleo.tools](https://aleo.tools). +All of this functionality is demonstrated on [Provable.tools](https://provable.tools). -The Aleo SDK is divided into three Typescript/Javascript packages +The Aleo SDK is divided into three TypeScript/JavaScript packages: -## 1. Aleo SDK - Build Zero Knowledge Web Apps +## 1. Aleo SDK - Build Zero-Knowledge Web Apps - Aleo SDK + Aleo SDK -The official Aleo SDK providing Javascript/Typescript tools for creating zero knowledge app. +The official Aleo SDK providing JavaScript/TypeScript tools for creating zero-knowledge applications. ### ⚑ Build your own app -Start here with the [Aleo SDK Readme](https://github.com/AleoHQ/sdk/tree/testnet3/sdk#readme) to get started building your -first zero knowledge web app. +Start here with the [Aleo SDK Readme](https://github.com/ProvableHQ/sdk#readme) to get started building your +first zero-knowledge web app. -#### Source: [`sdk/sdk`](https://github.com/AleoHQ/sdk/tree/testnet3/sdk) +#### Source: [`Aleo SDK`](https://www.npmjs.com/package/@provablehq/sdk) +## 2. Create-Leo-App - Zero-Knowledge Web App Examples + Create Leo App -## 2. Create-Aleo-App - Zero Knowledge Web App Examples - Create Aleo App - -Create-aleo-app provides zero-knowledge web app examples in common web frameworks such as React. Developers looking to +Create-leo-app provides zero-knowledge web app examples in common web frameworks such as React. Developers looking to start with working examples should start here. -### ⚑ Build your own app - - -You can start with a template by running -```bash -npm create aleo-app@latest -``` - -#### Source: [`sdk/create-aleo-app`](https://github.com/AleoHQ/sdk/tree/testnet3/create-aleo-app) +#### Source: [`sdk/create-leo-app`](https://github.com/ProvableHQ/sdk/tree/testnet3/create-leo-app) -## 3. Aleo-Wasm - Zero Knowledge Algorithms in JavaScript + WebAssembly - Create Aleo App - Create Aleo App +## 3. Aleo Wasm - Zero-Knowledge Algorithms in JavaScript + WebAssembly + Create Leo App + Create Leo App Aleo-Wasm -Aleo Wasm is a Rust crate which compiles Aleo code responsible for creating and executing zero knowledge programs into +Aleo Wasm is a Rust crate which compiles the Aleo source code responsible for creating and executing zero-knowledge programs into WebAssembly. -When compiled with `wasm-pack` JavaScript bindings are generated for the WebAssembly allowing Aleo zero -knowledge programs to be used in the browser and NodeJS. This package is available on NPM (linked above). The Aleo WASM -Readme provides instructions for compiling this crate and using it in web projects for those interested in building from +When compiled with `wasm-pack`, JavaScript bindings are generated for the WebAssembly allowing Aleo zero-knowledge programs to be used in the browser and Node.js. This package is available on NPM (linked above). The Aleo Wasm +readme provides instructions for compiling this crate and using it in web projects for those interested in building from source. -❗ Currently program execution is only available in web Browsers. However account, program and data management within +❗ Currently, program execution is only available in web browsers. However, account, program, and data management within NodeJS is functional. -Source: [`sdk/wasm`](https://github.com/AleoHQ/sdk/tree/testnet3/wasm) +Source: [Aleo Wasm](https://www.npmjs.com/package/@provablehq/wasm) ## πŸ“š Documentation @@ -75,13 +64,13 @@ Source: [`sdk/wasm`](https://github.com/AleoHQ/sdk/tree/testnet3/wasm) API Documentation, tutorials for the Aleo SDK, and documentation on how to build Leo and Aleo Instructions programs can be found on the [Aleo Developer Docs](https://developer.aleo.org/sdk/typescript/overview) page. -#### [SDK Readme](https://github.com/AleoHQ/sdk/tree/testnet3/sdk#readme) -The SDK Readme provides concepts core to executing zero knowledge programs in the web and several detailed examples of +#### [SDK Readme](https://github.com/ProvableHQ/sdk/tree/testnet3/sdk#readme) +The SDK readme provides concepts core to executing zero-knowledge programs in the web and several detailed examples of how to use the SDK to build web apps using Aleo. -#### [Aleo Wasm Readme](https://github.com/AleoHQ/sdk/tree/testnet3/wasm#readme) -The Aleo Wasm Readme provides instructions for compiling the Aleo Wasm crate and using it in web projects. Those who -want to build from source or create their own WebAssembly bindings should start here +#### [Aleo Wasm Readme](https://github.com/ProvableHQ/sdk/tree/testnet3/wasm#readme) +The Aleo Wasm readme provides instructions for compiling the Aleo Wasm crate and using it in web projects. Those who +want to build from source or create their own WebAssembly bindings should start here. ## ❀️ Contributors @@ -93,36 +82,36 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + diff --git a/create-aleo-app/template-react-leo/helloworld/.env.example b/create-aleo-app/template-react-leo/helloworld/.env.example deleted file mode 100644 index 11b672e98..000000000 --- a/create-aleo-app/template-react-leo/helloworld/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -NETWORK=testnet3 -PRIVATE_KEY=user1PrivateKey \ No newline at end of file diff --git a/create-aleo-app/template-react-ts/helloworld/.env.example b/create-aleo-app/template-react-ts/helloworld/.env.example deleted file mode 100644 index 11b672e98..000000000 --- a/create-aleo-app/template-react-ts/helloworld/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -NETWORK=testnet3 -PRIVATE_KEY=user1PrivateKey \ No newline at end of file diff --git a/create-leo-app/PUBLISH.md b/create-leo-app/PUBLISH.md new file mode 100644 index 000000000..13395a0a4 --- /dev/null +++ b/create-leo-app/PUBLISH.md @@ -0,0 +1,10 @@ +# create-leo-app + +## Publish instructions + +```bash +npm login +yarn build +npm version patch +yarn publish --access=public +``` \ No newline at end of file diff --git a/create-aleo-app/README.md b/create-leo-app/README.md similarity index 65% rename from create-aleo-app/README.md rename to create-leo-app/README.md index 3503fc678..268476ce5 100644 --- a/create-aleo-app/README.md +++ b/create-leo-app/README.md @@ -1,14 +1,14 @@ -# create-aleo-app +# create-leo-app ## Scaffolding Your First Aleo Project > **Compatibility Note:** -> [Node.js](https://nodejs.org/en/) version 18+ +> Please use [Node.js](https://nodejs.org/en/) version 18+ With NPM: ```bash -npm create aleo-app@latest +npm create leo-app@latest ``` Then follow the prompts! @@ -17,18 +17,17 @@ You can also directly specify the project name and the template you want to use ```bash # npm 6.x -npm create aleo-app@latest my-aleo-app --template react +npm create leo-app@latest my-leo-app --template react # npm 7+, extra double-dash is needed: -npm create aleo-app@latest my-aleo-app -- --template react +npm create leo-app@latest my-leo-app -- --template react ``` Currently supported template presets include: -- `vanilla` -- `react-leo` -- `node` -- `nextjs-ts` +- `Vanilla` +- `React (JavaScript + Leo, React + TypeScript, or TypeScript + Next.js)` +- `Node.js` You can use `.` for the project name to scaffold in the current directory. diff --git a/create-aleo-app/build.config.ts b/create-leo-app/build.config.ts similarity index 100% rename from create-aleo-app/build.config.ts rename to create-leo-app/build.config.ts diff --git a/create-aleo-app/index.js b/create-leo-app/index.js similarity index 100% rename from create-aleo-app/index.js rename to create-leo-app/index.js diff --git a/create-aleo-app/package.json b/create-leo-app/package.json similarity index 81% rename from create-aleo-app/package.json rename to create-leo-app/package.json index 6264beb89..9485e2533 100644 --- a/create-aleo-app/package.json +++ b/create-leo-app/package.json @@ -1,13 +1,13 @@ { - "name": "create-aleo-app", - "version": "0.0.12", + "name": "create-leo-app", + "version": "0.0.13", "type": "module", "license": "GPL-3.0", "collaborators": [ - "The Aleo Team " + "The Provable Team" ], "bin": { - "create-aleo-app": "index.js" + "create-leo-app": "index.js" }, "files": [ "index.js", diff --git a/create-aleo-app/src/index.ts b/create-leo-app/src/index.ts similarity index 100% rename from create-aleo-app/src/index.ts rename to create-leo-app/src/index.ts diff --git a/create-aleo-app/template-extension/.gitignore b/create-leo-app/template-extension/.gitignore similarity index 100% rename from create-aleo-app/template-extension/.gitignore rename to create-leo-app/template-extension/.gitignore diff --git a/create-aleo-app/template-extension/README.md b/create-leo-app/template-extension/README.md similarity index 100% rename from create-aleo-app/template-extension/README.md rename to create-leo-app/template-extension/README.md diff --git a/create-aleo-app/template-extension/package.json b/create-leo-app/template-extension/package.json similarity index 89% rename from create-aleo-app/template-extension/package.json rename to create-leo-app/template-extension/package.json index 78559366b..7fae2e355 100644 --- a/create-aleo-app/template-extension/package.json +++ b/create-leo-app/template-extension/package.json @@ -7,7 +7,7 @@ "build": "rimraf static/js && rollup --config" }, "devDependencies": { - "@aleohq/sdk": "^0.6.0", + "@provablehq/sdk": "^0.6.0", "@web/rollup-plugin-import-meta-assets": "^2.1.0", "rimraf": "^5.0.1", "rollup": "^4.0.0" diff --git a/create-aleo-app/template-extension/rollup.config.js b/create-leo-app/template-extension/rollup.config.js similarity index 100% rename from create-aleo-app/template-extension/rollup.config.js rename to create-leo-app/template-extension/rollup.config.js diff --git a/create-aleo-app/template-extension/src/offscreen.js b/create-leo-app/template-extension/src/offscreen.js similarity index 100% rename from create-aleo-app/template-extension/src/offscreen.js rename to create-leo-app/template-extension/src/offscreen.js diff --git a/create-aleo-app/template-extension/src/service_worker.js b/create-leo-app/template-extension/src/service_worker.js similarity index 100% rename from create-aleo-app/template-extension/src/service_worker.js rename to create-leo-app/template-extension/src/service_worker.js diff --git a/create-aleo-app/template-extension/src/worker.js b/create-leo-app/template-extension/src/worker.js similarity index 97% rename from create-aleo-app/template-extension/src/worker.js rename to create-leo-app/template-extension/src/worker.js index 9aa18cd43..4e0904ee1 100644 --- a/create-aleo-app/template-extension/src/worker.js +++ b/create-leo-app/template-extension/src/worker.js @@ -1,4 +1,4 @@ -import {Account, initThreadPool, PrivateKey, ProgramManager,} from "@aleohq/sdk"; +import {Account, initThreadPool, PrivateKey, ProgramManager,} from "@provablehq/sdk"; await initThreadPool(); diff --git a/create-aleo-app/template-extension/static/manifest.json b/create-leo-app/template-extension/static/manifest.json similarity index 78% rename from create-aleo-app/template-extension/static/manifest.json rename to create-leo-app/template-extension/static/manifest.json index 07aadada7..d215c62d3 100644 --- a/create-aleo-app/template-extension/static/manifest.json +++ b/create-leo-app/template-extension/static/manifest.json @@ -11,6 +11,6 @@ "offscreen" ], "content_security_policy": { - "extension_pages": "default-src 'self' 'wasm-unsafe-eval'; connect-src https://s3-us-west-1.amazonaws.com/testnet3.parameters/shifted-powers-of-beta-16.usrs.d99bcb3" + "extension_pages": "default-src 'self' 'wasm-unsafe-eval'; connect-src https://s3-us-west-1.amazonaws.com/mainnet.parameters/powers-of-beta-15.usrs.eb7040c" } } diff --git a/create-aleo-app/template-extension/static/offscreen.html b/create-leo-app/template-extension/static/offscreen.html similarity index 100% rename from create-aleo-app/template-extension/static/offscreen.html rename to create-leo-app/template-extension/static/offscreen.html diff --git a/create-aleo-app/template-nextjs-ts/README.md b/create-leo-app/template-nextjs-ts/README.md similarity index 100% rename from create-aleo-app/template-nextjs-ts/README.md rename to create-leo-app/template-nextjs-ts/README.md diff --git a/create-aleo-app/template-nextjs-ts/_gitignore b/create-leo-app/template-nextjs-ts/_gitignore similarity index 100% rename from create-aleo-app/template-nextjs-ts/_gitignore rename to create-leo-app/template-nextjs-ts/_gitignore diff --git a/create-aleo-app/template-nextjs-ts/next-env.d.ts b/create-leo-app/template-nextjs-ts/next-env.d.ts similarity index 100% rename from create-aleo-app/template-nextjs-ts/next-env.d.ts rename to create-leo-app/template-nextjs-ts/next-env.d.ts diff --git a/create-aleo-app/template-nextjs-ts/next.config.js b/create-leo-app/template-nextjs-ts/next.config.js similarity index 100% rename from create-aleo-app/template-nextjs-ts/next.config.js rename to create-leo-app/template-nextjs-ts/next.config.js diff --git a/create-aleo-app/template-nextjs-ts/package.json b/create-leo-app/template-nextjs-ts/package.json similarity index 93% rename from create-aleo-app/template-nextjs-ts/package.json rename to create-leo-app/template-nextjs-ts/package.json index 9d128c863..40a4a53b6 100644 --- a/create-aleo-app/template-nextjs-ts/package.json +++ b/create-leo-app/template-nextjs-ts/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@aleohq/sdk": "^0.6.2", + "@provablehq/sdk": "^0.6.2", "next": "13.5.4", "react": "^18", "react-dom": "^18", diff --git a/create-aleo-app/template-nextjs-ts/public/aleo.svg b/create-leo-app/template-nextjs-ts/public/aleo.svg similarity index 100% rename from create-aleo-app/template-nextjs-ts/public/aleo.svg rename to create-leo-app/template-nextjs-ts/public/aleo.svg diff --git a/create-aleo-app/template-nextjs-ts/public/next.svg b/create-leo-app/template-nextjs-ts/public/next.svg similarity index 100% rename from create-aleo-app/template-nextjs-ts/public/next.svg rename to create-leo-app/template-nextjs-ts/public/next.svg diff --git a/create-aleo-app/template-nextjs-ts/src/app/favicon.ico b/create-leo-app/template-nextjs-ts/src/app/favicon.ico similarity index 100% rename from create-aleo-app/template-nextjs-ts/src/app/favicon.ico rename to create-leo-app/template-nextjs-ts/src/app/favicon.ico diff --git a/create-aleo-app/template-nextjs-ts/src/app/globals.css b/create-leo-app/template-nextjs-ts/src/app/globals.css similarity index 100% rename from create-aleo-app/template-nextjs-ts/src/app/globals.css rename to create-leo-app/template-nextjs-ts/src/app/globals.css diff --git a/create-aleo-app/template-nextjs-ts/src/app/layout.tsx b/create-leo-app/template-nextjs-ts/src/app/layout.tsx similarity index 100% rename from create-aleo-app/template-nextjs-ts/src/app/layout.tsx rename to create-leo-app/template-nextjs-ts/src/app/layout.tsx diff --git a/create-aleo-app/template-nextjs-ts/src/app/page.module.css b/create-leo-app/template-nextjs-ts/src/app/page.module.css similarity index 100% rename from create-aleo-app/template-nextjs-ts/src/app/page.module.css rename to create-leo-app/template-nextjs-ts/src/app/page.module.css diff --git a/create-aleo-app/template-nextjs-ts/src/app/page.tsx b/create-leo-app/template-nextjs-ts/src/app/page.tsx similarity index 97% rename from create-aleo-app/template-nextjs-ts/src/app/page.tsx rename to create-leo-app/template-nextjs-ts/src/app/page.tsx index 4ac0104a5..a5eaf0591 100644 --- a/create-aleo-app/template-nextjs-ts/src/app/page.tsx +++ b/create-leo-app/template-nextjs-ts/src/app/page.tsx @@ -77,7 +77,7 @@ export default function Home() {

diff --git a/create-aleo-app/template-nextjs-ts/src/app/worker.ts b/create-leo-app/template-nextjs-ts/src/app/worker.ts similarity index 97% rename from create-aleo-app/template-nextjs-ts/src/app/worker.ts rename to create-leo-app/template-nextjs-ts/src/app/worker.ts index a18671384..87bb908cf 100644 --- a/create-aleo-app/template-nextjs-ts/src/app/worker.ts +++ b/create-leo-app/template-nextjs-ts/src/app/worker.ts @@ -3,7 +3,7 @@ import { initThreadPool, PrivateKey, ProgramManager, -} from "@aleohq/sdk"; +} from "@provablehq/sdk"; await initThreadPool(); diff --git a/create-aleo-app/template-nextjs-ts/tsconfig.json b/create-leo-app/template-nextjs-ts/tsconfig.json similarity index 100% rename from create-aleo-app/template-nextjs-ts/tsconfig.json rename to create-leo-app/template-nextjs-ts/tsconfig.json diff --git a/create-aleo-app/template-node-ts/README.md b/create-leo-app/template-node-ts/README.md similarity index 100% rename from create-aleo-app/template-node-ts/README.md rename to create-leo-app/template-node-ts/README.md diff --git a/create-aleo-app/template-node-ts/_gitignore b/create-leo-app/template-node-ts/_gitignore similarity index 100% rename from create-aleo-app/template-node-ts/_gitignore rename to create-leo-app/template-node-ts/_gitignore diff --git a/create-aleo-app/template-node-ts/package.json b/create-leo-app/template-node-ts/package.json similarity index 92% rename from create-aleo-app/template-node-ts/package.json rename to create-leo-app/template-node-ts/package.json index fd443e736..adbcc56a7 100644 --- a/create-aleo-app/template-node-ts/package.json +++ b/create-leo-app/template-node-ts/package.json @@ -8,7 +8,7 @@ "start": "npm run build && node dist/index.js" }, "dependencies": { - "@aleohq/sdk": "^0.6.0" + "@provablehq/sdk": "^0.6.0" }, "devDependencies": { "rimraf": "^5.0.1", diff --git a/create-aleo-app/template-node-ts/rollup.config.js b/create-leo-app/template-node-ts/rollup.config.js similarity index 90% rename from create-aleo-app/template-node-ts/rollup.config.js rename to create-leo-app/template-node-ts/rollup.config.js index bebb2e39e..259a970aa 100644 --- a/create-aleo-app/template-node-ts/rollup.config.js +++ b/create-leo-app/template-node-ts/rollup.config.js @@ -9,7 +9,7 @@ export default { format: "es", sourcemap: true, }, - external: ['@aleohq/sdk'], + external: ['@provablehq/sdk'], plugins: [ typescript({ tsconfig: "tsconfig.json", diff --git a/create-aleo-app/template-node-ts/src/index.ts b/create-leo-app/template-node-ts/src/index.ts similarity index 98% rename from create-aleo-app/template-node-ts/src/index.ts rename to create-leo-app/template-node-ts/src/index.ts index 668891ed8..58ff32cfa 100644 --- a/create-aleo-app/template-node-ts/src/index.ts +++ b/create-leo-app/template-node-ts/src/index.ts @@ -1,4 +1,4 @@ -import {Account, initThreadPool, ProgramManager, AleoKeyProvider, AleoKeyProviderParams} from "@aleohq/sdk"; +import {Account, initThreadPool, ProgramManager, AleoKeyProvider, AleoKeyProviderParams} from "@provablehq/sdk"; await initThreadPool(); diff --git a/create-aleo-app/template-node-ts/tsconfig.json b/create-leo-app/template-node-ts/tsconfig.json similarity index 100% rename from create-aleo-app/template-node-ts/tsconfig.json rename to create-leo-app/template-node-ts/tsconfig.json diff --git a/create-aleo-app/template-node/README.md b/create-leo-app/template-node/README.md similarity index 100% rename from create-aleo-app/template-node/README.md rename to create-leo-app/template-node/README.md diff --git a/create-aleo-app/template-node/_gitignore b/create-leo-app/template-node/_gitignore similarity index 100% rename from create-aleo-app/template-node/_gitignore rename to create-leo-app/template-node/_gitignore diff --git a/create-aleo-app/template-node/index.js b/create-leo-app/template-node/index.js similarity index 97% rename from create-aleo-app/template-node/index.js rename to create-leo-app/template-node/index.js index a66430c57..dbe36492a 100644 --- a/create-aleo-app/template-node/index.js +++ b/create-leo-app/template-node/index.js @@ -1,4 +1,4 @@ -import {Account, initThreadPool, ProgramManager, AleoKeyProvider, AleoKeyProviderParams} from "@aleohq/sdk"; +import {Account, initThreadPool, ProgramManager, AleoKeyProvider, AleoKeyProviderParams} from "@provablehq/sdk"; await initThreadPool(); diff --git a/create-aleo-app/template-node/package.json b/create-leo-app/template-node/package.json similarity index 83% rename from create-aleo-app/template-node/package.json rename to create-leo-app/template-node/package.json index 614466dc0..51d254f9d 100644 --- a/create-aleo-app/template-node/package.json +++ b/create-leo-app/template-node/package.json @@ -7,6 +7,6 @@ "start": "node index.js" }, "dependencies": { - "@aleohq/sdk": "^0.6.0" + "@provablehq/sdk": "^0.6.0" } } diff --git a/create-aleo-app/template-offline-public-transaction-ts/README.md b/create-leo-app/template-offline-public-transaction-ts/README.md similarity index 100% rename from create-aleo-app/template-offline-public-transaction-ts/README.md rename to create-leo-app/template-offline-public-transaction-ts/README.md diff --git a/create-aleo-app/template-offline-public-transaction-ts/_gitignore b/create-leo-app/template-offline-public-transaction-ts/_gitignore similarity index 100% rename from create-aleo-app/template-offline-public-transaction-ts/_gitignore rename to create-leo-app/template-offline-public-transaction-ts/_gitignore diff --git a/create-aleo-app/template-offline-public-transaction-ts/package.json b/create-leo-app/template-offline-public-transaction-ts/package.json similarity index 92% rename from create-aleo-app/template-offline-public-transaction-ts/package.json rename to create-leo-app/template-offline-public-transaction-ts/package.json index 18df07fe3..0687e4d4e 100644 --- a/create-aleo-app/template-offline-public-transaction-ts/package.json +++ b/create-leo-app/template-offline-public-transaction-ts/package.json @@ -8,7 +8,7 @@ "start": "npm run build && node dist/index.js" }, "dependencies": { - "@aleohq/sdk": "^0.6.0" + "@provablehq/sdk": "^0.6.0" }, "devDependencies": { "rimraf": "^5.0.1", diff --git a/create-aleo-app/template-offline-public-transaction-ts/rollup.config.js b/create-leo-app/template-offline-public-transaction-ts/rollup.config.js similarity index 90% rename from create-aleo-app/template-offline-public-transaction-ts/rollup.config.js rename to create-leo-app/template-offline-public-transaction-ts/rollup.config.js index bebb2e39e..259a970aa 100644 --- a/create-aleo-app/template-offline-public-transaction-ts/rollup.config.js +++ b/create-leo-app/template-offline-public-transaction-ts/rollup.config.js @@ -9,7 +9,7 @@ export default { format: "es", sourcemap: true, }, - external: ['@aleohq/sdk'], + external: ['@provablehq/sdk'], plugins: [ typescript({ tsconfig: "tsconfig.json", diff --git a/create-aleo-app/template-offline-public-transaction-ts/src/helpers.ts b/create-leo-app/template-offline-public-transaction-ts/src/helpers.ts similarity index 97% rename from create-aleo-app/template-offline-public-transaction-ts/src/helpers.ts rename to create-leo-app/template-offline-public-transaction-ts/src/helpers.ts index 242b9ab60..7a715eeca 100644 --- a/create-aleo-app/template-offline-public-transaction-ts/src/helpers.ts +++ b/create-leo-app/template-offline-public-transaction-ts/src/helpers.ts @@ -1,4 +1,4 @@ -import { CREDITS_PROGRAM_KEYS } from "@aleohq/sdk"; +import { CREDITS_PROGRAM_KEYS } from "@provablehq/sdk"; import { promises as fsPromises, writeFileSync } from "fs"; import path from "path"; import { fileURLToPath } from "url"; diff --git a/create-aleo-app/template-offline-public-transaction-ts/src/index.ts b/create-leo-app/template-offline-public-transaction-ts/src/index.ts similarity index 86% rename from create-aleo-app/template-offline-public-transaction-ts/src/index.ts rename to create-leo-app/template-offline-public-transaction-ts/src/index.ts index 3597e3597..73ecdf5d3 100644 --- a/create-aleo-app/template-offline-public-transaction-ts/src/index.ts +++ b/create-leo-app/template-offline-public-transaction-ts/src/index.ts @@ -1,4 +1,4 @@ -import {Account, Address, CREDITS_PROGRAM_KEYS, initThreadPool, ProgramManager, OfflineQuery, OfflineKeyProvider, OfflineSearchParams, ProvingKey, Transaction} from "@aleohq/sdk"; +import {Account, Address, CREDITS_PROGRAM_KEYS, initThreadPool, ProgramManager, OfflineQuery, OfflineKeyProvider, OfflineSearchParams, ProvingKey, Transaction} from "@provablehq/sdk"; import { getLocalKey, preDownloadBondingKeys, preDownloadTransferKeys } from "./helpers"; await initThreadPool(); @@ -15,9 +15,9 @@ async function buildTransferPublicTxOffline(recipientAddress: Address, amount: n // Create the proving keys from the key bytes on the offline machine console.log("Creating proving keys from local key files"); const feePublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.fee_public.locator]); - const transferPublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.transfer_public.locator]); + const transferPublicAsSignerKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.transfer_public_as_signer.locator]); const feePublicProvingKey = ProvingKey.fromBytes(feePublicKeyBytes); - const transferPublicProvingKey = ProvingKey.fromBytes(transferPublicKeyBytes); + const transferPublicProvingKey = ProvingKey.fromBytes(transferPublicAsSignerKeyBytes); // Create an offline key provider console.log("Creating offline key provider"); @@ -37,7 +37,7 @@ async function buildTransferPublicTxOffline(recipientAddress: Address, amount: n // Build tne transfer_public transaction offline console.log("Building transfer transaction offline"); - return programManager.buildTransferPublicTransaction( + return programManager.buildTransferPublicAsSignerTransaction( amount, recipientAddress.to_string(), 0.28, @@ -47,7 +47,7 @@ async function buildTransferPublicTxOffline(recipientAddress: Address, amount: n } /// Build bonding and unbonding transactions without connection to the internet -async function buildBondingTxOffline(recipientAddress: Address, amount: number, latestStateRoot: string, keyPaths: {}): Promise { +async function buildBondingTxOffline(stakerAddress: Address, validatorAddress: Address, withdrawalAddress: Address, amount: number, latestStateRoot: string, keyPaths: {}): Promise { // Create an offline program manager const programManager = new ProgramManager(); @@ -93,7 +93,9 @@ async function buildBondingTxOffline(recipientAddress: Address, amount: number, } const bondTx = await programManager.buildBondPublicTransaction( - recipientAddress.to_string(), + stakerAddress.to_string(), + validatorAddress.to_string(), + withdrawalAddress.to_string(), amount, bondPublicOptions, ) @@ -109,7 +111,7 @@ async function buildBondingTxOffline(recipientAddress: Address, amount: number, } } - const unBondTx = await programManager.buildUnbondPublicTransaction(amount, unbondPublicOptions); + const unBondTx = await programManager.buildUnbondPublicTransaction(stakerAddress.to_string(), amount, unbondPublicOptions); console.log("\nunbond_public transaction built!\n"); console.log("Building a claim_unbond_public transaction offline") @@ -123,7 +125,7 @@ async function buildBondingTxOffline(recipientAddress: Address, amount: number, } } - const claimUnbondTx = await programManager.buildClaimUnbondPublicTransaction(claimUnbondPublicOptions); + const claimUnbondTx = await programManager.buildClaimUnbondPublicTransaction(stakerAddress.to_string(), claimUnbondPublicOptions); console.log("\nclaim_unbond_public transaction built!\n"); return [bondTx, unBondTx, claimUnbondTx]; } @@ -142,14 +144,16 @@ const bondingKeyPaths = await preDownloadBondingKeys(); const latestStateRoot = "sr1p93gpsezrjzdhcd2wujznx5s07k8qa39t6vfcej35zew8vn2jyrs46te8q"; // Build a transfer_public transaction -const recipientAddress = new Account().address(); -const transferTx = await buildTransferPublicTxOffline(recipientAddress, 100, latestStateRoot, transferKeyPaths); +const stakerAddress = new Account().address(); +const validatorAddress = new Account().address(); +const withdrawalAddress = new Account().address(); +const transferTx = await buildTransferPublicTxOffline(stakerAddress, 10000, latestStateRoot, transferKeyPaths); console.log("Transfer transaction built offline!"); console.log(`\n---------------transfer_public transaction---------------\n${transferTx}`); console.log(`---------------------------------------------------------`); // Build bonding & unbonding transactions -const bondTransactions = await buildBondingTxOffline(recipientAddress, 100, latestStateRoot, bondingKeyPaths); +const bondTransactions = await buildBondingTxOffline(stakerAddress, validatorAddress, withdrawalAddress, 100, latestStateRoot, bondingKeyPaths); console.log("Bonding transactions built offline!"); console.log(`\n-----------------bond_public transaction-----------------\n${bondTransactions[0]}`); console.log(`---------------------------------------------------------`); diff --git a/create-aleo-app/template-offline-public-transaction-ts/tsconfig.json b/create-leo-app/template-offline-public-transaction-ts/tsconfig.json similarity index 100% rename from create-aleo-app/template-offline-public-transaction-ts/tsconfig.json rename to create-leo-app/template-offline-public-transaction-ts/tsconfig.json diff --git a/create-aleo-app/template-react-leo/.babelrc b/create-leo-app/template-react-leo/.babelrc similarity index 100% rename from create-aleo-app/template-react-leo/.babelrc rename to create-leo-app/template-react-leo/.babelrc diff --git a/create-aleo-app/template-react-leo/.eslintrc.cjs b/create-leo-app/template-react-leo/.eslintrc.cjs similarity index 100% rename from create-aleo-app/template-react-leo/.eslintrc.cjs rename to create-leo-app/template-react-leo/.eslintrc.cjs diff --git a/create-aleo-app/template-react-leo/README.md b/create-leo-app/template-react-leo/README.md similarity index 91% rename from create-aleo-app/template-react-leo/README.md rename to create-leo-app/template-react-leo/README.md index f6c1e1f76..14e510447 100644 --- a/create-aleo-app/template-react-leo/README.md +++ b/create-leo-app/template-react-leo/README.md @@ -1,6 +1,6 @@ # React + Aleo + Leo -[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/fork/github/AleoHQ/sdk/tree/testnet3/create-aleo-app/template-react-leo) +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/fork/github/ProvableHQ/sdk/tree/testnet3/create-leo-app/template-react-leo) This template provides a minimal setup to get React and Aleo working in Vite with HMR and some ESLint rules. @@ -31,9 +31,9 @@ Your app should be running on http://localhost:5173/ ``` 2. Replace `PRIVATE_KEY=user1PrivateKey` in the `.env` with your own key (you - can use an existing one or generate your own at https://aleo.tools/account) + can use an existing one or generate your own at https://provable.tools/account) -3. Follow instructions to install Leo here: https://github.com/AleoHQ/leo +3. Follow instructions to install Leo here: https://github.com/ProvableHQ/leo 4. You can edit `helloworld/src/main.leo` and run `leo run` to compile and update the Aleo instructions under `build` which are loaded by the web app. diff --git a/create-aleo-app/template-react-leo/_gitignore b/create-leo-app/template-react-leo/_gitignore similarity index 100% rename from create-aleo-app/template-react-leo/_gitignore rename to create-leo-app/template-react-leo/_gitignore diff --git a/create-aleo-app/template-react-leo/_headers b/create-leo-app/template-react-leo/_headers similarity index 100% rename from create-aleo-app/template-react-leo/_headers rename to create-leo-app/template-react-leo/_headers diff --git a/create-leo-app/template-react-leo/helloworld/.env.example b/create-leo-app/template-react-leo/helloworld/.env.example new file mode 100644 index 000000000..88003ea2c --- /dev/null +++ b/create-leo-app/template-react-leo/helloworld/.env.example @@ -0,0 +1,2 @@ +NETWORK=testnet +PRIVATE_KEY=user1PrivateKey diff --git a/create-aleo-app/template-react-leo/helloworld/.gitignore b/create-leo-app/template-react-leo/helloworld/.gitignore similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/.gitignore rename to create-leo-app/template-react-leo/helloworld/.gitignore diff --git a/create-aleo-app/template-react-leo/helloworld/README.md b/create-leo-app/template-react-leo/helloworld/README.md similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/README.md rename to create-leo-app/template-react-leo/helloworld/README.md diff --git a/create-aleo-app/template-react-leo/helloworld/build/main.aleo b/create-leo-app/template-react-leo/helloworld/build/main.aleo similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/build/main.aleo rename to create-leo-app/template-react-leo/helloworld/build/main.aleo diff --git a/create-aleo-app/template-react-leo/helloworld/build/program.json b/create-leo-app/template-react-leo/helloworld/build/program.json similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/build/program.json rename to create-leo-app/template-react-leo/helloworld/build/program.json diff --git a/create-aleo-app/template-react-leo/helloworld/inputs/helloworld.in b/create-leo-app/template-react-leo/helloworld/inputs/helloworld.in similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/inputs/helloworld.in rename to create-leo-app/template-react-leo/helloworld/inputs/helloworld.in diff --git a/create-aleo-app/template-react-leo/helloworld/program.json b/create-leo-app/template-react-leo/helloworld/program.json similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/program.json rename to create-leo-app/template-react-leo/helloworld/program.json diff --git a/create-aleo-app/template-react-leo/helloworld/src/main.leo b/create-leo-app/template-react-leo/helloworld/src/main.leo similarity index 100% rename from create-aleo-app/template-react-leo/helloworld/src/main.leo rename to create-leo-app/template-react-leo/helloworld/src/main.leo diff --git a/create-aleo-app/template-react-leo/index.html b/create-leo-app/template-react-leo/index.html similarity index 100% rename from create-aleo-app/template-react-leo/index.html rename to create-leo-app/template-react-leo/index.html diff --git a/create-aleo-app/template-react-ts/install.sh b/create-leo-app/template-react-leo/install.sh similarity index 93% rename from create-aleo-app/template-react-ts/install.sh rename to create-leo-app/template-react-leo/install.sh index add482688..194995a8c 100755 --- a/create-aleo-app/template-react-ts/install.sh +++ b/create-leo-app/template-react-leo/install.sh @@ -22,7 +22,7 @@ if [ -d "$INSTALL_DIR" ]; then git -C "$INSTALL_DIR" pull else echo "Cloning repository into $INSTALL_DIR..." - git clone https://github.com/AleoHQ/leo "$INSTALL_DIR" + git clone https://github.com/ProvableHQ/leo "$INSTALL_DIR" fi # build and install diff --git a/create-aleo-app/template-react-leo/package.json b/create-leo-app/template-react-leo/package.json similarity index 97% rename from create-aleo-app/template-react-leo/package.json rename to create-leo-app/template-react-leo/package.json index d6aadbb16..6e6229210 100644 --- a/create-aleo-app/template-react-leo/package.json +++ b/create-leo-app/template-react-leo/package.json @@ -12,7 +12,7 @@ "install-leo": "./install.sh" }, "dependencies": { - "@aleohq/sdk": "^0.6.0", + "@provablehq/sdk": "^0.6.0", "comlink": "^4.4.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/create-aleo-app/template-react-leo/public/favicon.ico b/create-leo-app/template-react-leo/public/favicon.ico similarity index 100% rename from create-aleo-app/template-react-leo/public/favicon.ico rename to create-leo-app/template-react-leo/public/favicon.ico diff --git a/create-aleo-app/template-react-leo/src/App.css b/create-leo-app/template-react-leo/src/App.css similarity index 100% rename from create-aleo-app/template-react-leo/src/App.css rename to create-leo-app/template-react-leo/src/App.css diff --git a/create-aleo-app/template-react-leo/src/App.jsx b/create-leo-app/template-react-leo/src/App.jsx similarity index 97% rename from create-aleo-app/template-react-leo/src/App.jsx rename to create-leo-app/template-react-leo/src/App.jsx index 96f4597b2..b41f64e40 100644 --- a/create-aleo-app/template-react-leo/src/App.jsx +++ b/create-leo-app/template-react-leo/src/App.jsx @@ -61,7 +61,7 @@ function App() {

diff --git a/create-aleo-app/template-react-leo/src/assets/aleo.svg b/create-leo-app/template-react-leo/src/assets/aleo.svg similarity index 100% rename from create-aleo-app/template-react-leo/src/assets/aleo.svg rename to create-leo-app/template-react-leo/src/assets/aleo.svg diff --git a/create-aleo-app/template-react-leo/src/assets/react.svg b/create-leo-app/template-react-leo/src/assets/react.svg similarity index 100% rename from create-aleo-app/template-react-leo/src/assets/react.svg rename to create-leo-app/template-react-leo/src/assets/react.svg diff --git a/create-aleo-app/template-react-leo/src/index.css b/create-leo-app/template-react-leo/src/index.css similarity index 100% rename from create-aleo-app/template-react-leo/src/index.css rename to create-leo-app/template-react-leo/src/index.css diff --git a/create-aleo-app/template-react-leo/src/main.jsx b/create-leo-app/template-react-leo/src/main.jsx similarity index 100% rename from create-aleo-app/template-react-leo/src/main.jsx rename to create-leo-app/template-react-leo/src/main.jsx diff --git a/create-aleo-app/template-react-leo/src/workers/AleoWorker.js b/create-leo-app/template-react-leo/src/workers/AleoWorker.js similarity index 100% rename from create-aleo-app/template-react-leo/src/workers/AleoWorker.js rename to create-leo-app/template-react-leo/src/workers/AleoWorker.js diff --git a/create-aleo-app/template-react-leo/src/workers/worker.js b/create-leo-app/template-react-leo/src/workers/worker.js similarity index 98% rename from create-aleo-app/template-react-leo/src/workers/worker.js rename to create-leo-app/template-react-leo/src/workers/worker.js index 62f932900..8f8a86b59 100644 --- a/create-aleo-app/template-react-leo/src/workers/worker.js +++ b/create-leo-app/template-react-leo/src/workers/worker.js @@ -6,7 +6,7 @@ import { AleoKeyProvider, AleoNetworkClient, NetworkRecordProvider, -} from "@aleohq/sdk"; +} from "@provablehq/sdk"; import { expose, proxy } from "comlink"; await initThreadPool(); diff --git a/create-aleo-app/template-react-leo/vite.config.js b/create-leo-app/template-react-leo/vite.config.js similarity index 86% rename from create-aleo-app/template-react-leo/vite.config.js rename to create-leo-app/template-react-leo/vite.config.js index a83386670..24cd5e052 100644 --- a/create-aleo-app/template-react-leo/vite.config.js +++ b/create-leo-app/template-react-leo/vite.config.js @@ -5,7 +5,7 @@ import react from "@vitejs/plugin-react"; export default defineConfig({ plugins: [react()], optimizeDeps: { - exclude: ["@aleohq/wasm", "@aleohq/sdk"], + exclude: ["@provablehq/wasm", "@provablehq/sdk"], }, server: { headers: { diff --git a/create-aleo-app/template-react-leo/webpack.config.js b/create-leo-app/template-react-leo/webpack.config.js similarity index 100% rename from create-aleo-app/template-react-leo/webpack.config.js rename to create-leo-app/template-react-leo/webpack.config.js diff --git a/create-aleo-app/template-react-managed-worker/.babelrc b/create-leo-app/template-react-managed-worker/.babelrc similarity index 100% rename from create-aleo-app/template-react-managed-worker/.babelrc rename to create-leo-app/template-react-managed-worker/.babelrc diff --git a/create-aleo-app/template-react-managed-worker/.eslintrc.cjs b/create-leo-app/template-react-managed-worker/.eslintrc.cjs similarity index 100% rename from create-aleo-app/template-react-managed-worker/.eslintrc.cjs rename to create-leo-app/template-react-managed-worker/.eslintrc.cjs diff --git a/create-aleo-app/template-react-managed-worker/README.md b/create-leo-app/template-react-managed-worker/README.md similarity index 100% rename from create-aleo-app/template-react-managed-worker/README.md rename to create-leo-app/template-react-managed-worker/README.md diff --git a/create-aleo-app/template-react-managed-worker/_gitignore b/create-leo-app/template-react-managed-worker/_gitignore similarity index 100% rename from create-aleo-app/template-react-managed-worker/_gitignore rename to create-leo-app/template-react-managed-worker/_gitignore diff --git a/create-aleo-app/template-react-managed-worker/index.html b/create-leo-app/template-react-managed-worker/index.html similarity index 100% rename from create-aleo-app/template-react-managed-worker/index.html rename to create-leo-app/template-react-managed-worker/index.html diff --git a/create-aleo-app/template-react-managed-worker/package.json b/create-leo-app/template-react-managed-worker/package.json similarity index 97% rename from create-aleo-app/template-react-managed-worker/package.json rename to create-leo-app/template-react-managed-worker/package.json index e88fc9a58..acefd9200 100644 --- a/create-aleo-app/template-react-managed-worker/package.json +++ b/create-leo-app/template-react-managed-worker/package.json @@ -11,7 +11,7 @@ "preview": "vite preview" }, "dependencies": { - "@aleohq/sdk": "^0.6.0", + "@provablehq/sdk": "^0.6.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/create-aleo-app/template-react-managed-worker/public/favicon.ico b/create-leo-app/template-react-managed-worker/public/favicon.ico similarity index 100% rename from create-aleo-app/template-react-managed-worker/public/favicon.ico rename to create-leo-app/template-react-managed-worker/public/favicon.ico diff --git a/create-aleo-app/template-react-managed-worker/src/App.css b/create-leo-app/template-react-managed-worker/src/App.css similarity index 100% rename from create-aleo-app/template-react-managed-worker/src/App.css rename to create-leo-app/template-react-managed-worker/src/App.css diff --git a/create-aleo-app/template-react-managed-worker/src/App.jsx b/create-leo-app/template-react-managed-worker/src/App.jsx similarity index 88% rename from create-aleo-app/template-react-managed-worker/src/App.jsx rename to create-leo-app/template-react-managed-worker/src/App.jsx index deec6bb21..f8504eb67 100644 --- a/create-aleo-app/template-react-managed-worker/src/App.jsx +++ b/create-leo-app/template-react-managed-worker/src/App.jsx @@ -2,7 +2,7 @@ import { useState } from "react"; import reactLogo from "./assets/react.svg"; import aleoLogo from "./assets/aleo.png"; import "./App.css"; -import { createAleoWorker } from "@aleohq/sdk"; +import { createAleoWorker } from "@provablehq/sdk"; const aleoWorker = createAleoWorker(); @@ -27,7 +27,7 @@ function App() { " output r2 as u32.private;\n"; setLoading(true); - const result = await aleoWorker.executeOffline(hello_hello_program,"hello", ["5u32", "5u32"], "APrivateKey1zkp778oUFSck3PZA5xppgp4trFwkkD6xnUXtxcBCfsq4URJ") + const result = await aleoWorker.run(hello_hello_program,"hello", ["5u32", "5u32"], "APrivateKey1zkp778oUFSck3PZA5xppgp4trFwkkD6xnUXtxcBCfsq4URJ") setLoading(false); alert(JSON.stringify(result)); @@ -52,7 +52,7 @@ function App() { diff --git a/create-aleo-app/template-react-managed-worker/src/assets/aleo.png b/create-leo-app/template-react-managed-worker/src/assets/aleo.png similarity index 100% rename from create-aleo-app/template-react-managed-worker/src/assets/aleo.png rename to create-leo-app/template-react-managed-worker/src/assets/aleo.png diff --git a/create-aleo-app/template-react-managed-worker/src/assets/react.svg b/create-leo-app/template-react-managed-worker/src/assets/react.svg similarity index 100% rename from create-aleo-app/template-react-managed-worker/src/assets/react.svg rename to create-leo-app/template-react-managed-worker/src/assets/react.svg diff --git a/create-aleo-app/template-react-managed-worker/src/index.css b/create-leo-app/template-react-managed-worker/src/index.css similarity index 100% rename from create-aleo-app/template-react-managed-worker/src/index.css rename to create-leo-app/template-react-managed-worker/src/index.css diff --git a/create-aleo-app/template-react-managed-worker/src/main.jsx b/create-leo-app/template-react-managed-worker/src/main.jsx similarity index 100% rename from create-aleo-app/template-react-managed-worker/src/main.jsx rename to create-leo-app/template-react-managed-worker/src/main.jsx diff --git a/create-aleo-app/template-react-managed-worker/vite.config.js b/create-leo-app/template-react-managed-worker/vite.config.js similarity index 90% rename from create-aleo-app/template-react-managed-worker/vite.config.js rename to create-leo-app/template-react-managed-worker/vite.config.js index 8b00b47b2..f7dfd3ca3 100644 --- a/create-aleo-app/template-react-managed-worker/vite.config.js +++ b/create-leo-app/template-react-managed-worker/vite.config.js @@ -5,7 +5,7 @@ import react from "@vitejs/plugin-react"; export default defineConfig({ plugins: [react()], optimizeDeps: { - exclude: ["@aleohq/wasm", "@aleohq/sdk"], + exclude: ["@provablehq/wasm", "@provablehq/sdk"], }, server: { // Needed if you are linking local packages for development diff --git a/create-aleo-app/template-react-managed-worker/webpack.config.js b/create-leo-app/template-react-managed-worker/webpack.config.js similarity index 100% rename from create-aleo-app/template-react-managed-worker/webpack.config.js rename to create-leo-app/template-react-managed-worker/webpack.config.js diff --git a/create-aleo-app/template-react-ts/.babelrc b/create-leo-app/template-react-ts/.babelrc similarity index 100% rename from create-aleo-app/template-react-ts/.babelrc rename to create-leo-app/template-react-ts/.babelrc diff --git a/create-aleo-app/template-react-ts/.eslintrc.cjs b/create-leo-app/template-react-ts/.eslintrc.cjs similarity index 100% rename from create-aleo-app/template-react-ts/.eslintrc.cjs rename to create-leo-app/template-react-ts/.eslintrc.cjs diff --git a/create-aleo-app/template-react-ts/README.md b/create-leo-app/template-react-ts/README.md similarity index 91% rename from create-aleo-app/template-react-ts/README.md rename to create-leo-app/template-react-ts/README.md index 2b48090db..b571c81ea 100644 --- a/create-aleo-app/template-react-ts/README.md +++ b/create-leo-app/template-react-ts/README.md @@ -1,6 +1,6 @@ # React + Aleo + Leo -[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/fork/github/AleoHQ/sdk/tree/testnet3/create-aleo-app/template-react) +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/fork/github/ProvableHQ/sdk/tree/testnet3/create-leo-app/template-react) This template provides a minimal setup to get React and Aleo working in Vite with HMR and some ESLint rules. @@ -31,9 +31,9 @@ Your app should be running on http://localhost:5173/ ``` 2. Replace `PRIVATE_KEY=user1PrivateKey` in the `.env` with your own key (you - can use an existing one or generate your own at https://aleo.tools/account) + can use an existing one or generate your own at https://provable.tools/account) -3. Follow instructions to install Leo here: https://github.com/AleoHQ/leo +3. Follow instructions to install Leo here: https://github.com/ProvableHQ/leo 4. You can edit `helloworld/src/main.leo` and run `leo run` to compile and update the Aleo instructions under `build` which are loaded by the web app. diff --git a/create-aleo-app/template-react-ts/_gitignore b/create-leo-app/template-react-ts/_gitignore similarity index 100% rename from create-aleo-app/template-react-ts/_gitignore rename to create-leo-app/template-react-ts/_gitignore diff --git a/create-aleo-app/template-react-ts/_headers b/create-leo-app/template-react-ts/_headers similarity index 100% rename from create-aleo-app/template-react-ts/_headers rename to create-leo-app/template-react-ts/_headers diff --git a/create-leo-app/template-react-ts/helloworld/.env.example b/create-leo-app/template-react-ts/helloworld/.env.example new file mode 100644 index 000000000..88003ea2c --- /dev/null +++ b/create-leo-app/template-react-ts/helloworld/.env.example @@ -0,0 +1,2 @@ +NETWORK=testnet +PRIVATE_KEY=user1PrivateKey diff --git a/create-aleo-app/template-react-ts/helloworld/.gitignore b/create-leo-app/template-react-ts/helloworld/.gitignore similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/.gitignore rename to create-leo-app/template-react-ts/helloworld/.gitignore diff --git a/create-aleo-app/template-react-ts/helloworld/README.md b/create-leo-app/template-react-ts/helloworld/README.md similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/README.md rename to create-leo-app/template-react-ts/helloworld/README.md diff --git a/create-aleo-app/template-react-ts/helloworld/build/main.aleo b/create-leo-app/template-react-ts/helloworld/build/main.aleo similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/build/main.aleo rename to create-leo-app/template-react-ts/helloworld/build/main.aleo diff --git a/create-aleo-app/template-react-ts/helloworld/build/program.json b/create-leo-app/template-react-ts/helloworld/build/program.json similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/build/program.json rename to create-leo-app/template-react-ts/helloworld/build/program.json diff --git a/create-aleo-app/template-react-ts/helloworld/inputs/helloworld.in b/create-leo-app/template-react-ts/helloworld/inputs/helloworld.in similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/inputs/helloworld.in rename to create-leo-app/template-react-ts/helloworld/inputs/helloworld.in diff --git a/create-aleo-app/template-react-ts/helloworld/program.json b/create-leo-app/template-react-ts/helloworld/program.json similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/program.json rename to create-leo-app/template-react-ts/helloworld/program.json diff --git a/create-aleo-app/template-react-ts/helloworld/src/main.leo b/create-leo-app/template-react-ts/helloworld/src/main.leo similarity index 100% rename from create-aleo-app/template-react-ts/helloworld/src/main.leo rename to create-leo-app/template-react-ts/helloworld/src/main.leo diff --git a/create-aleo-app/template-react-ts/index.html b/create-leo-app/template-react-ts/index.html similarity index 100% rename from create-aleo-app/template-react-ts/index.html rename to create-leo-app/template-react-ts/index.html diff --git a/create-aleo-app/template-react-leo/install.sh b/create-leo-app/template-react-ts/install.sh similarity index 93% rename from create-aleo-app/template-react-leo/install.sh rename to create-leo-app/template-react-ts/install.sh index add482688..194995a8c 100755 --- a/create-aleo-app/template-react-leo/install.sh +++ b/create-leo-app/template-react-ts/install.sh @@ -22,7 +22,7 @@ if [ -d "$INSTALL_DIR" ]; then git -C "$INSTALL_DIR" pull else echo "Cloning repository into $INSTALL_DIR..." - git clone https://github.com/AleoHQ/leo "$INSTALL_DIR" + git clone https://github.com/ProvableHQ/leo "$INSTALL_DIR" fi # build and install diff --git a/create-aleo-app/template-react-ts/package.json b/create-leo-app/template-react-ts/package.json similarity index 97% rename from create-aleo-app/template-react-ts/package.json rename to create-leo-app/template-react-ts/package.json index 05a580ab7..2baa9a7d5 100644 --- a/create-aleo-app/template-react-ts/package.json +++ b/create-leo-app/template-react-ts/package.json @@ -12,7 +12,7 @@ "install-leo": "./install.sh" }, "dependencies": { - "@aleohq/sdk": "^0.6.2", + "@provablehq/sdk": "^0.6.2", "comlink": "^4.4.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/create-aleo-app/template-react-ts/public/favicon.ico b/create-leo-app/template-react-ts/public/favicon.ico similarity index 100% rename from create-aleo-app/template-react-ts/public/favicon.ico rename to create-leo-app/template-react-ts/public/favicon.ico diff --git a/create-aleo-app/template-react-ts/src/App.css b/create-leo-app/template-react-ts/src/App.css similarity index 100% rename from create-aleo-app/template-react-ts/src/App.css rename to create-leo-app/template-react-ts/src/App.css diff --git a/create-aleo-app/template-react-ts/src/App.tsx b/create-leo-app/template-react-ts/src/App.tsx similarity index 97% rename from create-aleo-app/template-react-ts/src/App.tsx rename to create-leo-app/template-react-ts/src/App.tsx index b64330c9d..4dab329d4 100644 --- a/create-aleo-app/template-react-ts/src/App.tsx +++ b/create-leo-app/template-react-ts/src/App.tsx @@ -61,7 +61,7 @@ function App() {

diff --git a/create-aleo-app/template-react-ts/src/assets/aleo.svg b/create-leo-app/template-react-ts/src/assets/aleo.svg similarity index 100% rename from create-aleo-app/template-react-ts/src/assets/aleo.svg rename to create-leo-app/template-react-ts/src/assets/aleo.svg diff --git a/create-aleo-app/template-react-ts/src/assets/react.svg b/create-leo-app/template-react-ts/src/assets/react.svg similarity index 100% rename from create-aleo-app/template-react-ts/src/assets/react.svg rename to create-leo-app/template-react-ts/src/assets/react.svg diff --git a/create-aleo-app/template-react-ts/src/custom.d.ts b/create-leo-app/template-react-ts/src/custom.d.ts similarity index 100% rename from create-aleo-app/template-react-ts/src/custom.d.ts rename to create-leo-app/template-react-ts/src/custom.d.ts diff --git a/create-aleo-app/template-react-ts/src/index.css b/create-leo-app/template-react-ts/src/index.css similarity index 100% rename from create-aleo-app/template-react-ts/src/index.css rename to create-leo-app/template-react-ts/src/index.css diff --git a/create-aleo-app/template-react-ts/src/main.tsx b/create-leo-app/template-react-ts/src/main.tsx similarity index 100% rename from create-aleo-app/template-react-ts/src/main.tsx rename to create-leo-app/template-react-ts/src/main.tsx diff --git a/create-aleo-app/template-react-ts/src/workers/AleoWorker.ts b/create-leo-app/template-react-ts/src/workers/AleoWorker.ts similarity index 100% rename from create-aleo-app/template-react-ts/src/workers/AleoWorker.ts rename to create-leo-app/template-react-ts/src/workers/AleoWorker.ts diff --git a/create-aleo-app/template-react-ts/src/workers/worker.ts b/create-leo-app/template-react-ts/src/workers/worker.ts similarity index 90% rename from create-aleo-app/template-react-ts/src/workers/worker.ts rename to create-leo-app/template-react-ts/src/workers/worker.ts index af3f3f24e..125003604 100644 --- a/create-aleo-app/template-react-ts/src/workers/worker.ts +++ b/create-leo-app/template-react-ts/src/workers/worker.ts @@ -7,7 +7,7 @@ import { AleoKeyProvider, AleoNetworkClient, NetworkRecordProvider, -} from "@aleohq/sdk"; +} from "@provablehq/sdk"; import { expose, proxy } from "comlink"; await initThreadPool(); @@ -19,7 +19,7 @@ async function localProgramExecution(program, aleoFunction, inputs) { const account = new Account(); programManager.setAccount(account); - const executionResponse = await programManager.executeOffline( + const executionResponse = await programManager.run( program, aleoFunction, inputs, @@ -38,7 +38,7 @@ async function deployProgram(program) { keyProvider.useCache(true); // Create a record provider that will be used to find records and transaction data for Aleo programs - const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); // Use existing account with funds const account = new Account({ @@ -49,7 +49,7 @@ async function deployProgram(program) { // Initialize a program manager to talk to the Aleo network with the configured key and record providers const programManager = new ProgramManager( - "https://vm.aleo.org/api", + "https://api.explorer.aleo.org/v1", keyProvider, recordProvider, ); diff --git a/create-aleo-app/template-react-ts/tsconfig.json b/create-leo-app/template-react-ts/tsconfig.json similarity index 100% rename from create-aleo-app/template-react-ts/tsconfig.json rename to create-leo-app/template-react-ts/tsconfig.json diff --git a/create-aleo-app/template-react-ts/vite.config.ts b/create-leo-app/template-react-ts/vite.config.ts similarity index 86% rename from create-aleo-app/template-react-ts/vite.config.ts rename to create-leo-app/template-react-ts/vite.config.ts index a83386670..24cd5e052 100644 --- a/create-aleo-app/template-react-ts/vite.config.ts +++ b/create-leo-app/template-react-ts/vite.config.ts @@ -5,7 +5,7 @@ import react from "@vitejs/plugin-react"; export default defineConfig({ plugins: [react()], optimizeDeps: { - exclude: ["@aleohq/wasm", "@aleohq/sdk"], + exclude: ["@provablehq/wasm", "@provablehq/sdk"], }, server: { headers: { diff --git a/create-aleo-app/template-react-ts/webpack.config.ts b/create-leo-app/template-react-ts/webpack.config.ts similarity index 100% rename from create-aleo-app/template-react-ts/webpack.config.ts rename to create-leo-app/template-react-ts/webpack.config.ts diff --git a/create-aleo-app/template-vanilla/_gitignore b/create-leo-app/template-vanilla/_gitignore similarity index 100% rename from create-aleo-app/template-vanilla/_gitignore rename to create-leo-app/template-vanilla/_gitignore diff --git a/create-aleo-app/template-vanilla/_headers b/create-leo-app/template-vanilla/_headers similarity index 100% rename from create-aleo-app/template-vanilla/_headers rename to create-leo-app/template-vanilla/_headers diff --git a/create-aleo-app/template-vanilla/index.html b/create-leo-app/template-vanilla/index.html similarity index 91% rename from create-aleo-app/template-vanilla/index.html rename to create-leo-app/template-vanilla/index.html index 19dff6298..dd895fe66 100644 --- a/create-aleo-app/template-vanilla/index.html +++ b/create-leo-app/template-vanilla/index.html @@ -4,7 +4,7 @@ - Aleo App + Leo App
diff --git a/create-aleo-app/template-vanilla/javascript.svg b/create-leo-app/template-vanilla/javascript.svg similarity index 100% rename from create-aleo-app/template-vanilla/javascript.svg rename to create-leo-app/template-vanilla/javascript.svg diff --git a/create-aleo-app/template-vanilla/main.js b/create-leo-app/template-vanilla/main.js similarity index 100% rename from create-aleo-app/template-vanilla/main.js rename to create-leo-app/template-vanilla/main.js diff --git a/create-aleo-app/template-vanilla/package.json b/create-leo-app/template-vanilla/package.json similarity index 88% rename from create-aleo-app/template-vanilla/package.json rename to create-leo-app/template-vanilla/package.json index 9e4d25d48..3941e8215 100644 --- a/create-aleo-app/template-vanilla/package.json +++ b/create-leo-app/template-vanilla/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@aleohq/sdk": "^0.6.0", + "@provablehq/sdk": "^0.6.0", "tslib": "^2.6.2", "vite": "^4.4.12" } diff --git a/create-aleo-app/template-vanilla/public/aleo.svg b/create-leo-app/template-vanilla/public/aleo.svg similarity index 100% rename from create-aleo-app/template-vanilla/public/aleo.svg rename to create-leo-app/template-vanilla/public/aleo.svg diff --git a/create-aleo-app/template-vanilla/public/vite.svg b/create-leo-app/template-vanilla/public/vite.svg similarity index 100% rename from create-aleo-app/template-vanilla/public/vite.svg rename to create-leo-app/template-vanilla/public/vite.svg diff --git a/create-aleo-app/template-vanilla/style.css b/create-leo-app/template-vanilla/style.css similarity index 100% rename from create-aleo-app/template-vanilla/style.css rename to create-leo-app/template-vanilla/style.css diff --git a/create-aleo-app/template-vanilla/vite.config.js b/create-leo-app/template-vanilla/vite.config.js similarity index 82% rename from create-aleo-app/template-vanilla/vite.config.js rename to create-leo-app/template-vanilla/vite.config.js index fc05618d2..5e903a2a8 100644 --- a/create-aleo-app/template-vanilla/vite.config.js +++ b/create-leo-app/template-vanilla/vite.config.js @@ -1,7 +1,7 @@ import { defineConfig } from "vite"; export default defineConfig({ optimizeDeps: { - exclude: ["@aleohq/wasm", "@aleohq/sdk"], + exclude: ["@provablehq/wasm", "@provablehq/sdk"], }, server: { headers: { diff --git a/create-aleo-app/template-vanilla/worker.js b/create-leo-app/template-vanilla/worker.js similarity index 99% rename from create-aleo-app/template-vanilla/worker.js rename to create-leo-app/template-vanilla/worker.js index e31269bec..cead94590 100644 --- a/create-aleo-app/template-vanilla/worker.js +++ b/create-leo-app/template-vanilla/worker.js @@ -6,7 +6,7 @@ import { AleoKeyProvider, AleoNetworkClient, NetworkRecordProvider, -} from "@aleohq/sdk"; +} from "@provablehq/sdk"; await initThreadPool(); diff --git a/create-aleo-app/tsconfig.json b/create-leo-app/tsconfig.json similarity index 100% rename from create-aleo-app/tsconfig.json rename to create-leo-app/tsconfig.json diff --git a/package.json b/package.json index 6ec1ef99f..612fd6f76 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,12 @@ "sdk", "wasm", "website", - "create-aleo-app", - "create-aleo-app/*" + "create-leo-app", + "create-leo-app/*", + "e2e", + "e2e/*" ], + "type": "module", "scripts": { "build:wasm": "cd wasm && yarn build", "build:sdk": "cd sdk && yarn build", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..84f293f89 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,186 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + prettier: + specifier: 3.0.3 + version: 3.0.3 + wasm-pack: + specifier: ^0.12.1 + version: 0.12.1 + +packages: + + /axios@0.26.1: + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} + dependencies: + follow-redirects: 1.15.6 + transitivePeerDependencies: + - debug + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-install@1.1.0: + resolution: {integrity: sha512-rkwNGW+3aQVSZoD0/o3mfPN6Yxh3Id0R/xzTVBVVpGNlVz8EGwusksxRlbk/A5iKTZt9zkMn3qIqmAt3vpfbzg==} + engines: {node: '>=10'} + dependencies: + axios: 0.26.1 + rimraf: 3.0.2 + tar: 6.2.1 + transitivePeerDependencies: + - debug + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /wasm-pack@0.12.1: + resolution: {integrity: sha512-dIyKWUumPFsGohdndZjDXRFaokUT/kQS+SavbbiXVAvA/eN4riX5QNdB6AhXQx37zNxluxQkuixZUgJ8adKjOg==} + hasBin: true + requiresBuild: true + dependencies: + binary-install: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true diff --git a/rust-toolchain.toml b/rust-toolchain.toml index b20323219..532949107 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2024-05-14" +channel = "nightly-2024-07-21" components = [ "rust-std", "rust-src" ] targets = [ "wasm32-unknown-unknown" ] diff --git a/sdk/README.md b/sdk/README.md index 32ad6707a..2b1dd30c8 100644 --- a/sdk/README.md +++ b/sdk/README.md @@ -5,35 +5,35 @@

Website - + - +

-## Tools for Building Zero Knowledge Web Apps +## Tools for Building Zero-Knowledge Web Apps -The Aleo SDK is a collection of JavaScript libraries for building zero knowledge web applications in both the browser -and node.js. +The Aleo SDK is a collection of JavaScript libraries for building zero-knowledge web applications in both the browser +and Node.js. ## Overview -Aleo provides the ability to run programs in zero knowledge. The Aleo SDK provides the tools to use these programs -within the browser and all other levels of the web stack to build privacy preserving applications. +Aleo provides the ability to run programs with the power of zero-knowledge. The Aleo SDK provides the tools to use these programs +within the browser and all other levels of the web stack to build privacy-preserving applications. The Aleo SDK provides the following functionality (Click to see examples): -1. [Aleo account management](https://aleo.tools/account) -2. [Web-based program execution and deployment](https://aleo.tools/develop) -3. [Aleo credit transfers](https://aleo.tools/transfer) -4. [Management of program state and data](https://aleo.tools/record) -5. [Communication with the Aleo network](https://aleo.tools/rest) +1. [Aleo account management](https://provable.tools/account) +2. [Web-based program execution and deployment](https://provable.tools/develop) +3. [Aleo credit transfers](https://provable.tools/transfer) +4. [Management of program state and data](https://provable.tools/record) +5. [Communication with the Aleo network](https://provable.tools/rest) ## Table of Contents * [Installation](#Installation) * [Usage](#Usage) - * [Zero Knowledge Web App Examples](#Zero-Knowledge-Web-App-Examples) - * [Create Aleo App](#create-aleo-app) - * [Aleo.tools](#aleotools) + * [Zero-Knowledge Web App Examples](#Zero-Knowledge-Web-App-Examples) + * [Create Leo App](#create-leo-app) + * [Provable.tools](#provabletools) * [Create An Aleo Account](#1-create-an-aleo-account) * [Execute Aleo Programs](#2-execute-aleo-programs) * [Aleo Programs](#21-aleo-programs) @@ -58,59 +58,75 @@ The Aleo SDK provides the following functionality (Click to see examples): * [Further Documentation](#further-documentation) ## Installation +### Clone the repository + +To clone the repository, run: + +`git clone git@github.com:ProvableHQ/sdk.git` + ### NPM To install the Aleo SDK from NPM run: -`npm install @aleohq/sdk` or `yarn add @aleohq/sdk`. +`npm install @provablehq/sdk` in your own project's root, or from within this repo run `cd sdk && yarn add @provablehq/sdk`. ### Build from source -To build the project from source, go to this project's root and execute: +To build the project from source, go to the project's root and execute: + +`yarn build:all` -`npm install && npm run build` +### Ensure compatibility with ES modules + +In your project's `package.json`, ensure that the following line is added above `scripts`: + +```json +{ + "type": "module", +} +``` -## Getting Started: Zero Knowledge Web App Examples +## Getting Started: Zero-Knowledge Web App Examples -### Create Aleo App -A set of fully functional examples of zero knowledge web apps can be found in -[create-aleo-app](https://github.com/AleoHQ/sdk/tree/testnet3/create-aleo-app). Create-aleo-app provides several web-app -templates in common web frameworks such as React that can be used as a starting point for building zero knowledge web apps. +### Create Leo App +A set of fully functional examples of zero-knowledge web apps can be found in +[create-leo-app](https://github.com/ProvableHQ/sdk/tree/testnet3/create-leo-app). Create Leo App provides several web app +templates in common web frameworks such as React that can be used as a starting point for building zero-knowledge web apps. -Developers can get started immediately with create-react-app by running: -`npm create aleo-app@latest` +Developers can get started immediately with create-leo-app by running: +`npm create leo-app@latest` -### Aleo.tools +### provable.tools -Additionally, the SDK powers [aleo.tools](https://aleo.tools) - a React app that provides a graphical interface for most -of the functionality provided by the SDK and can be used as a reference for usage of the SDK. Source code for aleo.tools -can be found [in the SDK repo here](https://github.com/AleoHQ/sdk/tree/testnet3/website) +Additionally, the SDK powers [provable.tools](https://provable.tools) - a React app that provides a graphical interface for most +of the functionality provided by the SDK and can be used as a reference for usage of the SDK. Source code for provable.tools +can be found [in the SDK repo here](https://github.com/ProvableHQ/sdk/tree/testnet3/website). ## Usage ## 1. Create an Aleo Account -The first step in operating a zero knowledge web application is creating a private key which serves as a cryptographic +The first step in operating a zero-knowledge web application is creating a private key which serves as a cryptographic identity for a user. After a private key is generated, several keys that enable specialized methods of interacting with Aleo programs can be derived. These keys include: #### Private Key -The `Private Key` can be treated as the identity of a user. It is used for critical functions like authorizing zero knowledge -program execution, decrypting private data, and proving ownership of data. -ownership over user data +The `Private Key` can be treated as the identity of a user. It is used for critical functions like authorizing zero-knowledge +program execution, decrypting private data, and proving ownership of user data. + #### View Key The `View Key` is derived from the private key and can be used to both decrypt encrypted data owned by a user and prove ownership of that data. #### Compute Key The `Compute Key` can be used to trustlessly run applications and generate transactions on a user's behalf. #### Address -The `Address` is a user's unique public identifier. It serves as an address for a user to receive both official Aleo +The `Address` is a user's unique public identifier. It serves as an address for a user to receive both Aleo credits and data from other zero-knowledge Aleo programs. All of these keys can be created using the account object: ```typescript -import { Account } from '@aleohq/sdk'; +import { Account } from '@provablehq/sdk'; const account = new Account(); @@ -129,16 +145,16 @@ Please note that all keys are considered sensitive information and should be sto Aleo programs provide the ability for users to make any input or output of a program private and prove that the program was run correctly. Keeping program inputs and outputs private allows developers to build privacy into their applications. -Zero-Knowledge programs are written in one of two languages: -1. [Leo](https://developer.aleo.org/leo/language): A high level, developer friendly language for developing -zero knowledge programs. -2. [Aleo Instructions](https://developer.aleo.org/aleo/instructions): A low level language that provides developers fine -grained control over the execution flow of zero knowledge programs. Leo programs are compiled into Aleo Instructions +Zero-knowledge programs are written in one of two languages: +1. [Leo](https://docs.leo-lang.org/leo/language): A high-level, developer-friendly language for developing +zero-knowledge programs. + +2. [Aleo Instructions](https://docs.leo-lang.org/aleo/language): A low-level language that provides developers with fine-grained control over the execution flow of zero-knowledge programs. Leo code is compiled into Aleo Instructions under the hood. -Documentation for both languages can be found at [developer.aleo.org](https://developer.aleo.org). +Documentation for both languages can be found at [docs.leo-lang.org](https://docs.leo-lang.org/). -#### Hello world in the Leo Language +#### "Hello World" in Leo ``` // A simple program adding two numbers together program helloworld.aleo { @@ -149,11 +165,11 @@ program helloworld.aleo { } ``` -#### Hello world in Aleo instructions +#### "Hello World" in Aleo Instructions ``` program helloworld.aleo; -// The leo code above compiles to the following Aleo instructions +// The Leo code above compiles to the following Aleo Instructions: function hello: input r0 as u32.public; input r1 as u32.private; @@ -163,23 +179,23 @@ function hello: ### 2.2 Program Execution Model -The SDK provides the ability execute `Aleo Instructions` programs %100 client-side within the browser. +The SDK provides the ability to execute Aleo programs 100% client-side within the browser. -The `ProgramManager` object encapsulates the functionality for executing programs and making zero knowledge proofs about +The `ProgramManager` object encapsulates the functionality for executing programs and making zero-knowledge proofs about them. Under the hood it uses cryptographic code compiled from [SnarkVM](https://developer.aleo.org/aleo) into WebAssembly -with JavaScript bindings that allow execution of Aleo programs fully within the browser. Users interested in lower level -details how this is achieved can visit the [aleo-wasm](https://github.com/AleoHQ/sdk/tree/testnet3/wasm) crate. +with JavaScript bindings that allow for the execution of Aleo programs fully within the browser. Users interested in lower-level +details on how this is achieved can visit the [aleo-wasm](https://www.npmjs.com/package/@provablehq/wasm) crate. The basic execution flow of a program is as follows: -1. A web app is loaded with an instance of the `ProgramManager` object -2. The SDK wasm modules are loaded into the browser's WebAssembly runtime -2. An Aleo program in `Aleo Instructions` format is loaded into the `ProgramManager` as a wasm object -3. The web app provides a user input form for the program -4. The user submits the inputs and the zero knowledge execution is performed entirely within the browser via WebAssembly -5. The result is returned to the user -6. (Optional) A fully encrypted zero knowledge transcript of the execution is optionally sent to the Aleo network - -A diagramatic representation of the program execution flow is shown below. +1. A web app is loaded with an instance of the `ProgramManager` object. +2. The SDK wasm modules are loaded into the browser's WebAssembly runtime. +2. An Aleo program in `Aleo Instructions` format is loaded into the `ProgramManager` as a wasm object. +3. The web app provides a user input form for the program. +4. The user submits the inputs and the zero-knowledge execution is performed entirely within the browser via WebAssembly. +5. The result is returned to the user. +6. A fully encrypted zero-knowledge transcript of the execution is optionally sent to the Aleo network. + +A diagramatic representation of the program execution flow is shown below: ```mermaid graph LR p1[Leo Program] @@ -198,14 +214,14 @@ graph LR in-memory-program-."ZK result (Optional)".->Aleo-Network ``` -### 2.3 Multi-threading +### 2.3 Multithreading -You can enable multi-threading by calling the `initThreadPool` function. This will run the SDK on multiple Workers, which significantly speeds up performance: +You can enable multithreading by calling the `initThreadPool` function. This will run the SDK on multiple workers, which significantly speeds up performance: ```typescript -import { Account, initThreadPool } from '@aleohq/sdk'; +import { Account, initThreadPool } from '@provablehq/sdk'; -// Enables multi-threading +// Enables multithreading await initThreadPool(); // Create a new Aleo account @@ -214,10 +230,11 @@ const account = new Account(); // Perform further program logic... ```` -### 2.4 Local Program Execution -A simple example of running the hello world program within the web browser and capturing its outputs is shown below: +### 2.4 Local program execution + +A simple example of running the "hello world" program locally using Node.js and capturing its outputs is shown below: ```typescript -import { Account, Program } from '@aleohq/sdk'; +import { Account, ProgramManager } from '@provablehq/sdk'; /// Create the source for the "hello world" program const program = "program helloworld.aleo;\n\nfunction hello:\n input r0 as u32.public;\n input r1 as u32.private;\n add r0 r1 into r2;\n output r2 as u32.private;\n"; @@ -228,86 +245,103 @@ const account = new Account(); programManager.setAccount(account); /// Get the response and ensure that the program executed correctly -const executionResponse = await programManager.executeOffline(program, "hello", ["5u32", "5u32"]); +const executionResponse = await programManager.run(program, "hello", ["5u32", "5u32"]); const result = executionResponse.getOutputs(); -assert(result === ["10u32"]); +assert.deepStrictEqual(result, ['10u32']); ``` -### 2.5 Program execution on the Aleo Network +### 2.5 Program execution on the Aleo network The SDK provides the ability to execute programs and store an encrypted transcript of the execution on the Aleo network that anyone can trustlessly verify. -This process can be thought of being executed in the following steps: -1. A program is run locally -2. A proof that the program was executed correctly and that the outputs follow from the inputs is generated +This process can be thought of as being executed in the following steps: +1. A program is run locally. +2. A proof that the program was executed correctly and that the outputs follow from the inputs is generated. 3. A transcript of the proof is generated client-side containing encrypted proof data (see [Section 2.6](#4-managing-records-and-private-state)) -and any public outputs or state the user of the program wishes to reveal -4. The proof transcript is posted to the Aleo network and verified by the Aleo validator nodes in a trustless manner +and any public outputs or state the user of the program wishes to reveal. +4. The proof transcript is posted to the Aleo network and verified by the Aleo validator nodes in a trustless manner. 5. If the proof is valid, it is stored and anyone can later verify the proof and read the outputs the author of the program has chosen to make public. Private inputs will remain encrypted, but the author of the proof can also choose to retrieve this encrypted state at any point and decrypt it locally for their own use. -Posting an execution to the Aleo Network serves as a globally trustless and verifiable record of a program execution and +Posting an execution to the Aleo network serves as a globally trustless and verifiable record of a program execution as well as any resulting state changes in private or public data. -A simple example of running the hello world program on the Aleo network is shown below: +A simple example of running the "hello world" program on the Aleo network is shown below: ```typescript -import { Account, AleoNetworkClient, NetworkRecordProvider, ProgramManager, KeySearchParams } from '@aleohq/sdk'; +import { Account, AleoNetworkClient, NetworkRecordProvider, ProgramManager, AleoKeyProvider } from '@provablehq/sdk'; + +// Create an account +const account = new Account(); + +// Create a network client to connect to the Aleo network +const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); // Create a key provider that will be used to find public proving & verifying keys for Aleo programs const keyProvider = new AleoKeyProvider(); keyProvider.useCache = true; // Create a record provider that will be used to find records and transaction data for Aleo programs -const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); const recordProvider = new NetworkRecordProvider(account, networkClient); // Initialize a program manager to talk to the Aleo network with the configured key and record providers const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); -// Provide a key search parameter to find the correct key for the program if they are stored in a memory cache -const keySearchParams = { "cacheKey": "hello_hello:hello" }; - -// Execute the program using the options provided inline -const tx_id = await programManager.execute({ - programName: "hello_hello.aleo", - functionName: "hello_hello", - fee: 0.020, - privateFee: false, // Assuming a value for privateFee - inputs: ["5u32", "5u32"], - keySearchParams: keySearchParams -}); -const transaction = await programManager.networkClient.getTransaction(tx_id); +// Set the account for the program manager +programManager.setAccount(account); + +(async () => { + try { + // Provide a key search parameter to find the correct key for the program if they are stored in a memory cache + const keySearchParams = { cacheKey: "helloworld.aleo:main" }; + console.log("Key search parameters set: ", keySearchParams); + + // Execute the program using the options provided inline + const tx_id = await programManager.execute({ + programName: "helloworld.aleo", + functionName: "main", + fee: 0.020, + privateFee: false, // Assuming a value for privateFee + inputs: ["5u32", "5u32"], // Example inputs matching the function definition + keySearchParams: keySearchParams, + privateKey: account.privateKey() // Set the private key + }); + const transaction = await programManager.networkClient.getTransaction(tx_id); + console.log("Transaction details: ", transaction); + } catch (error) { + console.error("Error executing program:", error); + } +})(); ``` A reader of the above example may notice the `RecordProvider` and `KeyProvider` classes that were not present in the local execution example. The `KeyProvider` class helps users of the SDK find `Proving Keys` for programs. `Proving Keys` -allow zero knowledge proofs that the programs were executed correctly to be created. The `RecordProvider` class helps +allow zero-knowledge proofs that the programs were executed correctly to be created. The `RecordProvider` class helps find `Records` which are private data associated with programs that can be changed and updated throughout time. These two concepts are explained in more detail below. -### 2.6 Program Proving Keys & Program Records +### 2.6 Program proving keys & program records -Executing Aleo programs in zero knowledge requires two additional pieces of information. +Executing Aleo programs using zero-knowledge requires two additional pieces of information: -1. **Function Proving & Verifying Keys:** Proving and Verifying keys are cryptographic keys that are generated when a - program function is executed. These keys are public and unique for each function in a program. The proving key allows any party to +1. **Function Proving & Verifying Keys:** Proving and verifying keys are cryptographic keys that are generated when a + program function is executed. These keys are public and unique for each function in a program. The proving keys allows any party to execute the program and generate a proof that the program was executed correctly. The verifying keys allow any party to verify that the proof was generated correctly and the execution is correct. These keys are required to create the - zero knowledge property of program execution. + zero-knowledge property of program execution. 2. **Program Records:** Records are private state generated by a program belonging to a unique private keyholder. Records - are generated by a program's functions and can be changed and updated by when a user runs various functions of the + are generated by a program's functions and can be changed and updated when a user runs various functions of the program. These records are private by default and are used to manage updatable private state. One of the most clear - usages of records is to the `credits` record in the `credits.aleo`. Credits records are one of two official ways of - representing Aleo credits on the Aleo Network and are used to pay all transaction fees on the network. More information - on Records can be found in the [Records](#41-private-state-data--records) section below. + usages of records is to the `credits` record in the `credits.aleo` program. Credits records are one of two official ways of + representing Aleo credits on the Aleo network and are used to pay all transaction fees on the network. More information + on records can be found in the [Records](#41-private-state-data--records) section below. For this reason, all programs will need proving and verifying keys to operate and many functions in Aleo programs will require records as inputs. To simplify the process of managing keys and records, the Aleo SDK provides two abstractions for managing these concepts: -1. **KeyProvider:** When program functions execute, by default, they will synthesize the proving and verifying keys needed to -make a zero knowledge proof of the execution. However, these keys are large and expensive to generate. For this reason, applications may +1. **KeyProvider:** When program functions execute, they will by default synthesize the proving and verifying keys needed to +make a zero-knowledge proof of the execution. However, these keys are large and expensive to generate. For this reason, applications may want to store these keys and re-use them in future executions. The `KeyProvider` interface provides the ability for users of the SDK to provide their own key storage and retrieval mechanism. The SDK provides a default implementation of the `KeyProvider` interface via the `AleoKeyProvider` class. @@ -319,14 +353,14 @@ searches the Aleo network for records uniquely belonging to a user. The `ProgramManager` class is capable of taking a `KeyProvider` and `RecordProvider` as arguments and will use them to find the correct keys and records for a program execution. -### 2.7 Deploy a new Program to the Aleo Network +### 2.7 Deploy a new program to the Aleo Network -The Aleo Network contains a public registry of programs that can be executed by anyone. Any user can add an Aleo program -to the network (as long as it doesn't already currently exist) by paying a deployment fee in Aleo credits. The SDK +The Aleo network contains a public registry of programs that can be executed by anyone. Any user can add an Aleo program +to the network (as long as it doesn't already exist) by paying a deployment fee in Aleo credits. The SDK provides a simple interface for deploying programs to the Aleo network using the program manager. ```typescript -import { Account, AleoNetworkClient, NetworkRecordProvider, ProgramManager, KeySearchParams} from '@aleohq/sdk'; +import { Account, AleoNetworkClient, NetworkRecordProvider, ProgramManager, AleoKeyProvider} from '@provablehq/sdk'; // Create a key provider that will be used to find public proving & verifying keys for Aleo programs const keyProvider = new AleoKeyProvider(); @@ -350,7 +384,7 @@ programManager.setAccount(account) const program = "program hello_hello.aleo;\n\nfunction hello:\n input r0 as u32.public;\n input r1 as u32.private;\n add r0 r1 into r2;\n output r2 as u32.private;\n"; // Define a fee to pay to deploy the program -const fee = 1.8; // 1.8 Aleo credits +const fee = 3.8; // 3.8 Aleo credits // Deploy the program to the Aleo network const tx_id = await programManager.deploy(program, fee); @@ -359,7 +393,7 @@ const tx_id = await programManager.deploy(program, fee); const transaction = await programManager.networkClient.getTransaction(tx_id); ``` -The NetworkRecordProvider will attempt to scan the network for a fee record for the account provided. Doing a recent +The `NetworkRecordProvider` will attempt to scan the network for a fee record for the account provided. Doing a recent public transfer to the deploying account will ensure a record is found quickly, or you can provide a fee record manually by [scanning](https://developer.aleo.org/testnet/getting_started/deploy_execute/#scan) for a record and passing it as a string. @@ -372,302 +406,35 @@ const feeRecord = "{ owner: aleo1xxx...xxx.private, microcredits: 2000000u64.p const tx_id = await programManager.deploy(program, fee, undefined, feeRecord); ``` -### 2.8 React Example +### 2.8 React example -The above concepts can be tied together in a concrete example of a React web app. This example can be installed in one +The above concepts can be tied together in a concrete example of a single-page web app. This example can be installed in one step by running: -`npm create aleo-app@latest` - -#### Program Execution - -Program execution is a computationally expensive process. For this reason, it is recommended to execute programs in -webworkers. - -
-Example Web Worker Usage - -A worker file that performs the execution can be created as follows: -`worker.js` -```jsx -import * as aleo from "@aleohq/sdk"; - -// Threads are then initialized to execute the program in parallel using multithreading -await aleo.initThreadPool(); - -/// The program manager is initialized with a key provider and a record provider -const defaultHost = "https://api.explorer.aleo.org/v1"; -const keyProvider = new aleo.AleoKeyProvider(); -const recordProvider = new aleo.NetworkRecordProvider(new Account(), "https://api.explorer.aleo.org/v1"); -const programManager = new aleo.ProgramManager( - defaultHost, - keyProvider, - recordProvider, -); - -// The key provider is set to use an in-memory cache to store keys -keyProvider.useCache(true); - -self.postMessage({ - type: "ALEO_WORKER_READY", -}); - -// The program is executed when specific events are dispatched and then communicates the result to the main thread -// when execution has finished -let lastLocalProgram = null; -self.addEventListener("message", (ev) => { - if (ev.data.type === "ALEO_EXECUTE_PROGRAM_LOCAL") { - const {localProgram, aleoFunction, inputs, privateKey} = ev.data; - - console.log("Web worker: Executing function locally..."); - let startTime = performance.now(); - - (async function () { - try { - // Ensure the program is valid and that it contains the function specified - const program = programManager.createProgramFromSource(localProgram); - const program_id = program.id(); - if (!program.hasFunction(aleoFunction)) { - throw `Program ${program_id} does not contain function ${aleoFunction}`; - } - const cacheKey = `${program_id}:${aleoFunction}`; - - // Get the program imports - const imports = - programManager.networkClient.getProgramImports(localProgram); - - // Get the proving and verifying keys for the function - if (lastLocalProgram !== localProgram) { - const keys = programManager.executionEngine.synthesizeKeypair( - localProgram, - aleoFunction, - ); - programManager.keyProvider.cacheKeys(cacheKey, [ - keys.provingKey(), - keys.verifyingKey(), - ]); - lastLocalProgram = localProgram; - } - - // Pass the cache key to the execute function - const keyParams = new aleo.AleoKeyProviderParams({ - cacheKey: cacheKey, - }); - - // Execute the function locally - let response = await programManager.executeOffline( - localProgram, - aleoFunction, - inputs, - imports, - keyParams, - undefined, - undefined, - aleo.PrivateKey.from_string(privateKey), - ); - - // Return the outputs to the main thread - self.postMessage({ - type: "OFFLINE_EXECUTION_COMPLETED", - outputs, - }); - } catch (error) { - console.error(error); - self.postMessage({ - type: "ERROR", - errorMessage: error.toString(), - }); - } - })(); - } -}); -``` - -The WebWorker can then be initialized in worker provider component which uses React effects - -```jsx -import { useEffect, useState } from "react"; -import WorkerContext from "./WorkerContext"; - -const WorkerProvider = ({ children }) => { - const [worker, setWorker] = useState(null); - const [workerReady, setWorkerReady] = useState(false); - - useEffect(() => { - let worker = new Worker(new URL("./worker.js", import.meta.url), { - type: "module", - }); - setWorker(worker); - - worker.onmessage = (event) => { - if (event.data.type === "ALEO_WORKER_READY") { - setWorkerReady(true); - } - }; - - return () => { - worker.terminate(); - }; - }, []); - - if (!workerReady) { - return ( - <> -
-
-
- - ); - } - - return ( - - {children} - - ); -}; - -export default WorkerProvider; -``` - -
- -Using both webworkers and a wasm initialization in a React hook, a single page app can be created that executes -Aleo zero knowledge programs. +`npm create leo-app@latest` -
-Example App.jsx Implementing Zero Knowledge Program Execution - -```jsx -import { useEffect, useState } from "react"; -import reactLogo from "./assets/react.svg"; -import aleoLogo from "./assets/aleo.png"; -import "./App.css"; -import { useAleoWASM } from "./aleo-wasm-hook"; - -function App() { - const [count, setCount] = useState(0); - const aleo = useAleoWASM(); - const [account, setAccount] = useState(null); - const [loading, setLoading] = useState(false); - - const generateAccount = () => { - setAccount(new aleo.PrivateKey()); - }; - - const [worker, setWorker] = useState(null); - - useEffect(() => { - if (worker === null) { - const spawnedWorker = spawnWorker(); - setWorker(spawnedWorker); - return () => { - spawnedWorker.terminate(); - }; - } - }, []); - - function spawnWorker() { - return new Worker(new URL("workers/worker.js", import.meta.url), { - type: "module", - }); - } - - function postMessagePromise(worker, message) { - return new Promise((resolve, reject) => { - worker.onmessage = (event) => { - resolve(event.data); - }; - worker.onerror = (error) => { - reject(error); - }; - worker.postMessage(message); - }); - } - - async function execute() { - const hello_hello_program = - "program hello_hello.aleo;\n" + - "\n" + - "function hello:\n" + - " input r0 as u32.public;\n" + - " input r1 as u32.private;\n" + - " add r0 r1 into r2;\n" + - " output r2 as u32.private;\n"; - - setLoading(true); - const result = await postMessagePromise(worker, { - type: "ALEO_EXECUTE_PROGRAM_LOCAL", - localProgram: hello_hello_program, - aleoFunction: "hello", - inputs: ["5u32", "5u32"], - privateKey: account.to_string(), - }); - setLoading(false); - - alert(JSON.stringify(result)); - } +You will then be prompted to select either Vanilla, React, or Node.js as the template for the project. For this example, select Vanilla. - return ( - <> - -

Aleo + React

-
- -

- -

-

- -

-

- Edit src/App.jsx and save to test HMR -

-
-

- Click on the Aleo and React logos to learn more -

- - ); -} +#### Program execution -export default App; -``` -
+Program execution is a computationally-expensive process. For this reason, it is recommended to execute programs in +web workers. Create-Leo-App will automatically create a web worker for you that performs the execution called `worker.js`. -A full example of this implementation can be found [here](https://github.com/AleoHQ/sdk/blob/testnet3/create-aleo-app/template-react/src/App.jsx) +A full example of this implementation can be found [here](https://github.com/ProvableHQ/sdk/tree/testnet3/create-leo-app/template-vanilla) ## 3. Aleo Credit Transfers -### 3.1 Aleo Credits +### 3.1 Aleo credits -The official token of operation of the Aleo Network are Aleo credits. Aleo credits are used to pay all fees for program -execution on the Aleo network. +Aleo Credits are used to access blockspace and computational resources on the network, with users paying Credits to submit transactions and have them processed. -Aleo credits are defined in the [credits.aleo](https://www.aleo.network/programs/credits.aleo) program. This program is -deployed to the Aleo Network and defines data structures representing Aleo credits and the functions used to manage them. +Aleo credits are defined in the [credits.aleo](https://explorer.aleo.org/program/credits.aleo) program. This program is +deployed to the Aleo network and defines data structures representing Aleo credits and the functions used to manage them. -There are two ways to hold Aleo credits. +There are two ways to hold Aleo credits: -#### 1 - Private balances via credits.aleo records +#### 1 - Private balances via `credits.aleo` records The first method is owning a `credits` record which enables a participant in the Aleo network to hold a private balance of Aleo credits. ``` @@ -676,11 +443,11 @@ record credits: microcredits as u64.private; ``` -A user's total private credits balance will consist of all unspent `credits` records owned by the user with a nonzero +A user's total private credits balance will consist of all unspent `credits` records owned by the user with a non-zero `microcredits` value. -#### 2 - Public balances via credits.aleo account mapping -The second is by holding a `balance` in the `account` mapping in the `credits.aleo` program on the Aleo Network. +#### 2 - Public balances via `credits.aleo` account mappings +The second method is by holding a `balance` in the `account` mapping in the `credits.aleo` program on the Aleo network. ``` mapping account: @@ -688,21 +455,21 @@ mapping account: value microcredits as u64.public; ``` -The total public credits balance of a user is the value of account mapping at the user's address. Users can hold both private and public balances simultaneously. +The total public credits balance of a user is the value of the account mapping at the user's address. Users can hold both private and public balances simultaneously. -More information about `records` and `mappings` and how they related to private and public balances are explained in the +More information about `records` and `mappings` and how they are related to private and public balances are explained in the [Managing Program Data and Private State](#4-managing-program-data-and-private-state) section. -### 3.2 Transfer Aleo Credits -The `ProgramManager` allows transfers of aleo credits via the `transfer` method. This function executes the credits.aleo +### 3.2 Transferring Aleo credits +The `ProgramManager` allows transfers of Aleo credits via the `transfer` method. This function executes the `credits.aleo` program under the hood. There are four transfer functions available. -#### 1. transfer_private +#### 1. `transfer_private` -Takes a `credits` record of owned by the sender, subtracts an amount from it, and adds that amount -to a new record owned by the receiver. This function is %100 private and does not affect the `account` mapping. +Takes a `credits` record owned by the sender, subtracts an amount from it, and adds that amount +to a new record owned by the receiver. This function is 100% private and does not affect the `account` mapping. ```mermaid graph LR @@ -713,9 +480,10 @@ graph LR ``` -#### 2. transfer_private_to_public -Takes a `credits` record of owned by the sender, subtracts an amount from it, and adds -that amount to the `account` mapping of the receiver. This function is %50 private and %50 public. It consumes a record +#### 2. `transfer_private_to_public` + +Takes a `credits` record owned by the sender, subtracts an amount from it, and adds +that amount to the `account` mapping of the receiver. This function is 50% private and 50% public. It consumes a record as a private input and generates a public balance in the `account` mapping entry belonging to the receiver. ```mermaid @@ -728,9 +496,9 @@ graph LR t1--amount 3000u64-->m1 ``` -#### 3. transfer_public +#### 3. `transfer_public` -Subtracts an amount of `credits` stored in the `account` mapping of the `credits.aleo program`, and +Subtracts an amount of `credits` stored in the `account` mapping of the `credits.aleo` program, and adds that amount to the `account` mapping of the receiver. This function is 100% public and does not consume or generate any records. @@ -747,9 +515,10 @@ graph LR end ``` -#### 4. transfer_public_to_private +#### 4. `transfer_public_to_private` + Subtracts an amount `credits` stored in the `account` mapping of the `credits.aleo program` -and adds that amount to a new private record owned by the receiver. This function is %50 private and %50 public. +and adds that amount to a new private record owned by the receiver. This function is 50% private and 50% public. It publicly consumes a balance in the `account` mapping entry belonging to the sender and generates a private record as a private output. @@ -771,7 +540,7 @@ All four of these functions can be used to transfer credits between users via th `ProgramManager` by specifying the transfer type as the third argument. ```typescript -import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@aleo/sdk'; +import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@provablehq/sdk'; // Create a new NetworkClient, KeyProvider, and RecordProvider const account = Account.from_string({privateKey: "user1PrivateKey"}); @@ -812,7 +581,7 @@ public_balance = programManager.networkClient.getMappingValue("credits.aleo", US assert(public_balance === 0); ``` -### 3.2 Checking Public Balances +### 3.2 Checking public balances As shown above, a public balance of any address can be checked with `getMappingValue` function of the `NetworkClient`. ```typescript @@ -823,19 +592,19 @@ const public_balance = networkClient.getMappingValue("credits.aleo", USER_1_ADDR ## 4. Managing Program Data and Private State -### 4.1 Private State Data: Records -Records in are analogous to concept of [UTXOs](https://en.wikipedia.org/wiki/Unspent_transaction_output). When a record is +### 4.1 Private state data: records +Records are analogous to the concept of [UTXOs](https://en.wikipedia.org/wiki/Unspent_transaction_output). When a record is created by a program, it can then be consumed later by the same program as an input to a function. Once a record is used -as input, it is considered consumed and cannot be used again. In many cases a new record will be created from the output +as an input, it is considered consumed and cannot be used again. In many cases a new record will be created from the output of the function. Records are private by default and are associated with a single Aleo program and a single private key representing a user. -### 4.2 Record Usage Example: Private Value Transfers +### 4.2 Record usage example: private value transfers A straightforward example of a usage of records in a program can be demonstrated by explaining the process of private -value transfers of official Aleo credits on the Aleo network. +value transfers of Aleo credits on the Aleo network. -Aleo credits are the official token in which all on-chain execution and deployment fees are paid. Credits can be public +Aleo credits are used for all on-chain execution and deployment fees. Credits can be public or private. Private credits are represented by the `credits` record in the [credits.aleo](https://www.aleo.network/programs/credits.aleo) program. @@ -865,10 +634,10 @@ function transfer_private: output r5 as credits.record; ``` -The `transfer_private` function can be graphically represented by the graph below. In the graph the first record "Record 1" -is consconsumed and can never be used again. From the data in Record 1, two more records are created. One containing +The `transfer_private` function can be graphically represented by the graph below. In the graph the first record, Record 1, +is consumed and can never be used again. From the data in Record 1, two more records are created. One containing the intended amount for the recipient which is now owned by the recipient and another containing the remaining credits -which is sent back to the sender. +which are sent back to the sender. ```mermaid graph LR @@ -880,8 +649,8 @@ graph LR p1--Credits Record 3-->R1[Recipient Address] ``` -This chain of ownership is tracked by the Aleo Blockchain when users choose to submit their transactions to the Aleo -Network. This is allows other users who receive records to receive the updated data and verify that this data was +This chain of ownership is tracked by the Aleo blockchain when users choose to submit their transactions to the Aleo +network. This allows other users who receive records to receive the updated data and verify that this data was provably generated by the intended program. What this process allows is a private chain of state to be created between multiple users. In the context of value @@ -901,7 +670,7 @@ The above state chain would be executed in the following way using the SDK: #### Step 1 - User 1 sends a private value transfer to User 2 ```typescript // USER 1 -import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@aleo/sdk'; +import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@provablehq/sdk'; // Create a new NetworkClient, KeyProvider, and RecordProvider const account = Account.from_string({privateKey: "user1PrivateKey"}); @@ -914,15 +683,15 @@ const USER_2_ADDRESS = "user2Address"; const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); programManager.setAccount(account); -/// Send private transfer to user 2 +/// Send private transfer to User 2 const tx_id = await programManager.transfer(1, USER_2_ADDRESS, "transfer_private", 0.2); ``` -#### Step 2 - User 2 receives the transaction ID and fetches the credits record they received from user 1 from the network. They then send it to user 3 +#### Step 2 - User 2 receives the transaction ID and fetches the credits record they received from User 1 from the network. They then send it to User 3 ```typescript // USER 2 -import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@aleo/sdk'; +import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@provablehq/sdk'; // Create a new NetworkClient, KeyProvider, and RecordProvider const account = Account.from_string({privateKey: "user2PrivateKey"}); @@ -947,19 +716,18 @@ const USER_3_ADDRESS = "user3Address"; const tx_id = await programManager.transfer(1, USER_3_ADDRESS, "transfer_private", 0.2, undefined, recordPlaintext); ``` -When an execution such as `transfer_private` consumes or generates a record is posted on the network and encrypted transcript -of the execution is posted, containing an encrypted version of the record output and a transaction ID. +When an execution such as `transfer_private` consumes or generates a record, an encrypted transcript of the execution containing an encrypted version of the record output and a transaction ID is posted on the network. Because the records are encrypted when they're posted on the network, they do not reveal any information about the party who executed the program, nor the contents of the record. The only information that is revealed is the program ID, function name, encrypted function inputs, and the transaction ID of the program execution. No user except for the recipient of the record can see the contents of the record. -Below you can see what the exact data which is posted to the Aleo Network when `transfer_private` is run. Note that the -record, the amount transferred, and both the sender & recipient addresses are all encrypted. +Below, you can see the exact data which is posted to the Aleo network when `transfer_private` is run. Note that the +record, the amount transferred, and both the sender and recipient addresses are all encrypted.
-transfer_private Execution Transcript +`transfer_private` Execution Transcript ```json "transactions": [ @@ -1024,7 +792,7 @@ that are not owned by the user will fail. Record decryption and ownership verification can be done in the SDK using the following code: ```typescript -import { Account, RecordCiphertext, RecordPlaintext } from '@aleo/sdk'; +import { Account, RecordCiphertext, RecordPlaintext } from '@provablehq/sdk'; // Create an account from an existing private key const account = Account.from_string({privateKey: "existingPrivateKey"}); @@ -1048,15 +816,15 @@ if (RecordCiphertext.is_owner(account.viewKey())) { Mappings are simple key value stores defined in a program. They are represented by a key and a value each of a specified type. They are stored directly within the Aleo blockchain and can be publicly read by any participant in the Aleo network. -An example of a mapping usage is `account` mapping in the `credits.aleo` program. +An example of a mapping usage is the `account` mapping in the `credits.aleo` program. ``` mapping account: key owner as address.public; value microcredits as u64.public; ``` -The `account` mapping is used to store public credits balances on the Aleo network. It takes a public address as a key -and a public u64 value representing the number of microcredits owned by the address. +The `account` mapping is used to store public credit balances on the Aleo network. It takes a public address as a key +and a public `u64` value representing the number of microcredits owned by the address. Mappings within programs are identified by the `mapping` identifier. Any program where this keyword appears contains an on-chain mapping. An example of a program that uses a mapping is shown below: @@ -1085,17 +853,17 @@ finalize update_score: Note that the above function has a `finalize` identifier. This identifier is used to identify a portion of a function's code that should be executed by nodes on the Aleo network. Program mappings are updated exclusively by code run by nodes -on the Aleo Network written in `finalize` blocks. +on the Aleo network written in `finalize` blocks. -### 4.4 Reading Mappings +### 4.4 Reading mappings Any state within a program mapping is public and can be read by any participant in the Aleo network. The `NetworkClient` class provides the `getMapping` method to read the public mappings within an program and the `getMappingValue` method to read the value of a specific key within a mapping. ```typescript -import { AleoNetworkClient } from '@aleo/sdk'; +import { AleoNetworkClient } from '@provablehq/sdk'; -const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); +const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); const creditsMappings = networkClient.getMappings("credits.aleo"); assert(creditsMappings === ["account"]); @@ -1103,9 +871,9 @@ const publicCredits = networkClient.getMapping("credits.aleo", "[a valid aleo ac assert(publicCredits === "0u64"); ``` -### 4.5 Initializing & Updating Mappings +### 4.5 Initializing & updating mappings Updating mappings is done by executing a program function on the Aleo network which has a finalize block that updates the -program's mapping. For instance the `transfer_public` function in the `credits.aleo` program updates the `account` +program's mapping. For instance, the `transfer_public` function in the `credits.aleo` program updates the `account` mapping (and thus a user's balance) when called. ``` @@ -1130,25 +898,25 @@ finalize transfer_public: From the perspective of the caller of the API, this is as simple as executing a normal Aleo function. Given the inputs to a function with a finalize scope that updates a mapping are valid, the mapping will either be intialized or updated -by the Aleo network. All the user of the SDK must do is ensure that the inputs to the function are valid. +by the Aleo network. All that the user of the SDK must do is ensure that the inputs to the function are valid. -If function inputs are Invalid, the Network will return an error, but the fee paid for the transaction will still be -consumed. So it is important to ensure that the inputs to a function are valid before executing it. +If function inputs are invalid, the network will return an error, but the fee paid for the transaction will still be +consumed. Therefore, it is important to ensure that the inputs to a function are valid before executing it. -A simple example of a mapping update can be shown by simply executing the 'transfer_public` as shown below. +A simple example of a mapping update can be shown by simply executing 'transfer_public` as shown below. ```typescript -import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@aleo/sdk'; +import { Account, ProgramManager, AleoKeyProvider, NetworkRecordProvider, AleoNetworkClient } from '@provablehq/sdk'; // Create a new NetworkClient, KeyProvider, and RecordProvider const account = Account.from_string({privateKey: "user1PrivateKey"}); -const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); +const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); const keyProvider = new AleoKeyProvider(); const recordProvider = new NetworkRecordProvider(account, networkClient); // Initialize a program manager with the key provider to automatically fetch keys for executions const RECIPIENT_ADDRESS = "user1Address"; -const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); +const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); programManager.setAccount(account); // Update or initialize a public balance @@ -1156,7 +924,7 @@ const tx_id = await programManager.transfer(1, RECIPIENT_ADDRESS, "transfer_priv ``` -## 5. Communicating with the Aleo Network +## 5. Communicating with the Aleo network Communication with the Aleo network is done through the `AleoNetworkClient` class. This class provides methods to query data from Aleo network nodes and submit transactions to the Aleo network. @@ -1166,7 +934,7 @@ A full list of methods provided by the `AleoNetworkClient` class and usage examp ## Further Documentation -API documentation for this package, the Leo Language, and Aleo instructions can be found on the [Aleo Developer Hub](https://developer.aleo.org/sdk/typescript/overview). +API documentation for this package, the Leo Language, and Aleo instructions can be found in the [Leo Developer Docs](https://docs.leo-lang.org/getting_started). To view the API documentation for this package locally, open `docs/index.html`. To regenerate the documentation, run `npx jsdoc --configure jsdoc.json --verbose` diff --git a/sdk/docs/account.ts.html b/sdk/docs/account.ts.html index e504251bc..9a2401d9b 100644 --- a/sdk/docs/account.ts.html +++ b/sdk/docs/account.ts.html @@ -1,5 +1,5 @@ -Source: account.ts
On this page

account.ts

import {
   Address,
   PrivateKey,
@@ -7,7 +7,7 @@
   ViewKey,
   PrivateKeyCiphertext,
   RecordCiphertext,
-} from "@aleohq/wasm";
+} from "@provablehq/wasm";
 
 interface AccountParam {
   privateKey?: string;
@@ -214,4 +214,4 @@
     return this._address.verify(message, signature);
   }
 }
-
\ No newline at end of file +
diff --git a/sdk/docs/aleo_network_client.ts.html b/sdk/docs/aleo_network_client.ts.html index 1d06936d7..1dbb95ff9 100644 --- a/sdk/docs/aleo_network_client.ts.html +++ b/sdk/docs/aleo_network_client.ts.html @@ -2,7 +2,7 @@
On this page

network-client.ts

import axios from "axios";
 import { Account, Block, Transaction, Transition } from ".";
-import { RecordCiphertext, RecordPlaintext, PrivateKey } from "@aleohq/wasm";
+import { RecordCiphertext, RecordPlaintext, PrivateKey } from "@provablehq/wasm";
 
 /**
  * Connection management class that encapsulates REST calls to publicly exposed endpoints of Aleo nodes.
@@ -21,7 +21,7 @@
   account: Account | undefined;
 
   constructor(host: string) {
-    this.host = host + "/testnet3";
+    this.host = host + "/testnet";
   }
 
   /**
diff --git a/sdk/docs/development_client.ts.html b/sdk/docs/development_client.ts.html
index 315b82fd8..24e2f6aa6 100644
--- a/sdk/docs/development_client.ts.html
+++ b/sdk/docs/development_client.ts.html
@@ -51,7 +51,7 @@
      * client will not work.
      *
      * Information on how to run an Aleo Development Server can be found here:
-     * https://github.com/AleoHQ/sdk/rust/develop/README.md
+     * https://github.com/ProvableHQ/sdk/rust/develop/README.md
      */
     baseURL: string;
 
@@ -66,7 +66,7 @@
 
 
     async sendRequest<T>(path: string, request: any): Promise<T> {
-        const response = await axios.post(`${this.baseURL}/testnet3${path}`, request, config);
+        const response = await axios.post(`${this.baseURL}/testnet${path}`, request, config);
 
         if (!(response.statusText = "200")) {throw new Error(`Error sending request: ${response.statusText}`);
         }
@@ -80,7 +80,7 @@
      * If one is not running, this function will throw an error.
      *
      * Information on how to run an Aleo Development Server can be found here:
-     * https://github.com/AleoHQ/sdk/rust/develop/README.md
+     * https://github.com/ProvableHQ/sdk/rust/develop/README.md
      * @param {string} program Text representation of the program to be deployed
      * @param {number} fee Fee to be paid for the program deployment (REQUIRED)
      * @param {string | undefined} privateKey Optional private key of the user who is deploying the program
@@ -117,7 +117,7 @@
      * If one is not running, this function will throw an error.
      *
      * Information on how to run an Aleo Development Server can be found here:
-     * https://github.com/AleoHQ/sdk/rust/develop/README.md
+     * https://github.com/ProvableHQ/sdk/rust/develop/README.md
      * @param {string} programId The program_id of the program to be executed (e.g. hello.aleo)
      * @param {string} programFunction The function to execute within the program (e.g. main)
      * @param {number} fee Optional Fee to be paid for the execution transaction, specify 0 for no fee
@@ -160,7 +160,7 @@
      * will throw an error.
      *
      * Information on how to run an Aleo Development Server can be found here:
-     * https://github.com/AleoHQ/sdk/rust/develop/README.md
+     * https://github.com/ProvableHQ/sdk/rust/develop/README.md
      * @param {string} amount The amount of credits to be sent (e.g. 1.5)
      * @param {number} fee Optional Fee to be paid for the transfer, specify 0 for no fee
      * @param {string} recipient The recipient of the transfer
diff --git a/sdk/docs/index.html b/sdk/docs/index.html
index a8c162a63..75a9d4a61 100644
--- a/sdk/docs/index.html
+++ b/sdk/docs/index.html
@@ -1,3 +1,3 @@
 Aleo SDK
On this page

Aleo SDK

@aleohq/sdk

Aleo high-level utilities in javascript to handle Accounts, Records, and Node connections in the browser.

Makes use of @aleohq/wasm under the hood.

Happy hacking!

Build Guide

  1. To build the project, go to the project's root and execute npm install && npm run build.

Documentation

  1. To view the documentation, open docs/index.html.
  2. To regenerate the documentation, run npx jsdoc --configure jsdoc.json --verbose

Aleo Tools

Aleo SDK account generator

Aleo Home

You can visit the SnarkVM repo and SnarkOS repo to go deep into the code of aleo infrastructure

\ No newline at end of file +
On this page

Aleo SDK

@provablehq/sdk

Aleo high-level utilities in javascript to handle Accounts, Records, and Node connections in the browser.

Makes use of @provablehq/wasm under the hood.

Happy hacking!

Build Guide

  1. To build the project, go to the project's root and execute npm install && npm run build.

Documentation

  1. To view the documentation, open docs/index.html.
  2. To regenerate the documentation, run npx jsdoc --configure jsdoc.json --verbose

Aleo Tools

Aleo SDK account generator

Aleo Home

You can visit the SnarkVM repo and SnarkOS repo to go deep into the code of aleo infrastructure

\ No newline at end of file diff --git a/sdk/e2e/mainnet/index.js b/sdk/e2e/mainnet/index.js new file mode 100644 index 000000000..e8b3c103f --- /dev/null +++ b/sdk/e2e/mainnet/index.js @@ -0,0 +1,59 @@ +import {Account, initThreadPool, ProgramManager, AleoKeyProvider, AleoKeyProviderParams} from "@provablehq/sdk/mainnet.js"; + +await initThreadPool(); + +const programName = "hello_hello.aleo" + +const hello_hello_program =` +program ${programName}; + +function hello: + input r0 as u32.public; + input r1 as u32.private; + add r0 r1 into r2; + output r2 as u32.private;` + +async function localProgramExecution(program, programName, aleoFunction, inputs) { + const programManager = new ProgramManager(); + + // Create a temporary account for the execution of the program + const account = new Account(); + programManager.setAccount(account); + + // Create a key provider in order to re-use the same key for each execution + const keyProvider = new AleoKeyProvider(); + keyProvider.useCache(true); + programManager.setKeyProvider(keyProvider); + + // Pre-synthesize the program keys and then cache them in memory using key provider + const keyPair = await programManager.synthesizeKeys(hello_hello_program, aleoFunction, inputs); + programManager.keyProvider.cacheKeys(`${programName}:${aleoFunction}`, keyPair); + + // Specify parameters for the key provider to use search for program keys. In particular specify the cache key + // that was used to cache the keys in the previous step. + const keyProviderParams = new AleoKeyProviderParams({cacheKey: `${programName}:${aleoFunction}`}); + + // Execute once using the key provider params defined above. This will use the cached proving keys and make + // execution significantly faster. + let executionResponse = await programManager.run( + program, + aleoFunction, + inputs, + true, + undefined, + keyProviderParams, + ); + console.log("hello_hello/hello executed - result:", executionResponse.getOutputs()); + + // Verify the execution using the verifying key that was generated earlier. + if (programManager.verifyExecution(executionResponse)) { + console.log("hello_hello/hello execution verified!"); + } else { + throw("Execution failed verification!"); + } +} + +const start = Date.now(); +console.log("Starting execute!"); +await localProgramExecution(hello_hello_program, programName, "hello", ["5u32", "5u32"]); +console.log("Execute finished!", Date.now() - start); diff --git a/sdk/e2e/mainnet/package.json b/sdk/e2e/mainnet/package.json new file mode 100644 index 000000000..76b07025a --- /dev/null +++ b/sdk/e2e/mainnet/package.json @@ -0,0 +1,12 @@ +{ + "name": "e2e-mainnet", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "@provablehq/sdk": "^0.6.0" + } +} diff --git a/sdk/e2e/testnet/index.js b/sdk/e2e/testnet/index.js new file mode 100644 index 000000000..7cacddfd9 --- /dev/null +++ b/sdk/e2e/testnet/index.js @@ -0,0 +1,59 @@ +import {Account, initThreadPool, ProgramManager, AleoKeyProvider, AleoKeyProviderParams} from "@provablehq/sdk/testnet.js"; + +await initThreadPool(); + +const programName = "hello_hello.aleo" + +const hello_hello_program =` +program ${programName}; + +function hello: + input r0 as u32.public; + input r1 as u32.private; + add r0 r1 into r2; + output r2 as u32.private;` + +async function localProgramExecution(program, programName, aleoFunction, inputs) { + const programManager = new ProgramManager(); + + // Create a temporary account for the execution of the program + const account = new Account(); + programManager.setAccount(account); + + // Create a key provider in order to re-use the same key for each execution + const keyProvider = new AleoKeyProvider(); + keyProvider.useCache(true); + programManager.setKeyProvider(keyProvider); + + // Pre-synthesize the program keys and then cache them in memory using key provider + const keyPair = await programManager.synthesizeKeys(hello_hello_program, aleoFunction, inputs); + programManager.keyProvider.cacheKeys(`${programName}:${aleoFunction}`, keyPair); + + // Specify parameters for the key provider to use search for program keys. In particular specify the cache key + // that was used to cache the keys in the previous step. + const keyProviderParams = new AleoKeyProviderParams({cacheKey: `${programName}:${aleoFunction}`}); + + // Execute once using the key provider params defined above. This will use the cached proving keys and make + // execution significantly faster. + let executionResponse = await programManager.run( + program, + aleoFunction, + inputs, + true, + undefined, + keyProviderParams, + ); + console.log("hello_hello/hello executed - result:", executionResponse.getOutputs()); + + // Verify the execution using the verifying key that was generated earlier. + if (programManager.verifyExecution(executionResponse)) { + console.log("hello_hello/hello execution verified!"); + } else { + throw("Execution failed verification!"); + } +} + +const start = Date.now(); +console.log("Starting execute!"); +await localProgramExecution(hello_hello_program, programName, "hello", ["5u32", "5u32"]); +console.log("Execute finished!", Date.now() - start); diff --git a/sdk/e2e/testnet/package.json b/sdk/e2e/testnet/package.json new file mode 100644 index 000000000..4ae49ff3d --- /dev/null +++ b/sdk/e2e/testnet/package.json @@ -0,0 +1,12 @@ +{ + "name": "e2e-testnet", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "@provablehq/sdk": "^0.6.0" + } +} diff --git a/sdk/jest-config.json b/sdk/jest-config.json deleted file mode 100644 index 57191f39f..000000000 --- a/sdk/jest-config.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "transform": { - "^.+\\.(t|j)sx?$": ["ts-jest", { "useESM": true, "tsconfig": "tsconfig.test.json" }] - }, - "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", - "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"], - - "preset": "ts-jest/presets/default-esm" -} diff --git a/sdk/jest-integration-config.json b/sdk/jest-integration-config.json deleted file mode 100644 index 1b279a785..000000000 --- a/sdk/jest-integration-config.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "transform": { - "^.+\\.(t|j)sx?$": ["ts-jest", { "useESM": true, "tsconfig": "tsconfig.test.json" }] - }, - "testRegex": "(/__tests__/.*|(\\.|/)(integration))\\.(jsx?|tsx?)$", - "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"], - - "preset": "ts-jest/presets/default-esm" -} diff --git a/sdk/package.json b/sdk/package.json index f84f6d255..0716e6f30 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -1,18 +1,26 @@ { - "name": "@aleohq/sdk", - "version": "0.6.9", + "name": "@provablehq/sdk", + "version": "0.6.12", "description": "A Software Development Kit (SDK) for Zero-Knowledge Transactions", "collaborators": [ - "The Aleo Team " + "The Provable Team" ], "license": "GPL-3.0", "type": "module", - "main": "./dist/node.js", - "browser": "./dist/index.js", + "main": "./dist/testnet/node.js", + "browser": "./dist/testnet/browser.js", "exports": { ".": { - "node": "./dist/node.js", - "default": "./dist/index.js" + "node": "./dist/testnet/node.js", + "default": "./dist/testnet/browser.js" + }, + "./testnet.js": { + "node": "./dist/testnet/node.js", + "default": "./dist/testnet/browser.js" + }, + "./mainnet.js": { + "node": "./dist/mainnet/node.js", + "default": "./dist/mainnet/browser.js" } }, "files": [ @@ -23,49 +31,51 @@ "scripts": { "build": "rimraf dist && rollup -c rollup.config.js", "prepublish": "yarn build", - "test": "node --no-warnings --experimental-vm-modules ../node_modules/jest/bin/jest.js --config jest-config.json --detectOpenHandles", - "integration": "node --no-warnings --experimental-vm-modules ../node_modules/jest/bin/jest.js --silent=false --runInBand --detectOpenHandles", - "clear_jest": "jest --clearCache" + "test": "rimraf tmp && rollup -c rollup.test.js && mocha tmp/**/*.test.js --parallel --timeout 60000" }, "repository": { "type": "git", - "url": "git+https://github.com/AleoHQ/sdk.git" + "url": "git+https://github.com/ProvableHQ/sdk.git" }, "keywords": [ "Aleo", "Blockchain", - "Zero Knowledge", + "Zero-Knowledge", "ZK" ], "bugs": { - "url": "https://github.com/AleoHQ/sdk/issues" + "url": "https://github.com/ProvableHQ/sdk/issues" }, - "homepage": "https://github.com/AleoHQ/sdk#readme", + "homepage": "https://github.com/ProvableHQ/sdk#readme", "dependencies": { - "@aleohq/wasm": "^0.6.0", + "@provablehq/wasm": "^0.6.0", "comlink": "^4.4.1", "mime": "^3.0.0", "sync-request": "^6.1.0" }, "devDependencies": { "@rollup/plugin-replace": "^5.0.5", - "@types/jest": "^29.5.5", + "@types/chai": "^4.3.16", "@types/mime": "^3.0.1", + "@types/mocha": "^10.0.7", + "@types/sinon": "^17.0.3", "@typescript-eslint/eslint-plugin": "^5.41.0", "@typescript-eslint/parser": "^5.41.0", "better-docs": "^2.7.2", + "chai": "^5.1.1", "clean-jsdoc-theme": "^4.1.8", "cpr": "^3.0.1", "eslint": "^8.26.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", - "jest": "^29.7.0", + "glob": "^10.4.5", "jsdoc": "^3.6.11", + "mocha": "^10.7.0", "prettier": "2.7.1", "rimraf": "^5.0.1", "rollup": "^3.27.2", "rollup-plugin-typescript2": "^0.36.0", - "ts-jest": "^29.1.1", + "sinon": "^18.0.0", "typescript": "^5.2.2" } } diff --git a/sdk/rollup.config.js b/sdk/rollup.config.js index a5b6b3a25..b430f4a7c 100644 --- a/sdk/rollup.config.js +++ b/sdk/rollup.config.js @@ -2,39 +2,50 @@ import typescript from "rollup-plugin-typescript2"; import replace from "@rollup/plugin-replace"; import $package from "./package.json" assert { type: "json" }; -export default { - input: { - index: "./src/index.ts", - worker: "./src/worker.ts", - node: "./src/node.ts", - "node-polyfill": "./src/node-polyfill.ts", - }, - output: { - dir: `dist`, - format: "es", - sourcemap: true, - }, - external: [ - "node:worker_threads", - "node:os", - "node:fs", - "node:crypto", - "mime/lite.js", - "sync-request", - "comlink", - "@aleohq/wasm", - ], - plugins: [ - replace({ - preventAssignment: true, - delimiters: ['', ''], - values: { - '%%VERSION%%': $package.version, - }, - }), - typescript({ - tsconfig: "tsconfig.json", - clean: true, - }), - ], -}; +const networks = [ + "testnet", + "mainnet", +]; + +export default networks.map((network) => { + return { + input: { + "node-polyfill": "./src/node-polyfill.ts", + "browser": "./src/browser.ts", + "worker": "./src/worker.ts", + "node": "./src/node.ts", + }, + output: { + dir: `dist/${network}`, + format: "es", + sourcemap: true, + }, + external: [ + // Used by node-polyfill + "node:worker_threads", + "node:os", + "node:fs", + "node:crypto", + "mime/lite.js", + "sync-request", + + // Used by the SDK + "comlink", + `@provablehq/wasm/${network}.js`, + ], + plugins: [ + replace({ + preventAssignment: true, + delimiters: ['', ''], + values: { + '%%VERSION%%': $package.version, + '%%NETWORK%%': network, + }, + }), + typescript({ + tsconfig: "tsconfig.json", + clean: true, + }), + ], + }; +}); diff --git a/sdk/rollup.test.js b/sdk/rollup.test.js new file mode 100644 index 000000000..57d7bb08b --- /dev/null +++ b/sdk/rollup.test.js @@ -0,0 +1,58 @@ +import typescript from "rollup-plugin-typescript2"; +import replace from "@rollup/plugin-replace"; +import { globSync } from "glob"; +import $package from "./package.json" assert { type: "json" }; + +const networks = [ + "testnet", + "mainnet", +]; + +function inputs() { + const files = {}; + + globSync("./tests/**/*.ts").forEach((x) => { + files[x.replace(/\.[^\.]+$/, "")] = x; + }); + + return files; +} + +export default networks.map((network) => { + return { + input: inputs(), + output: { + dir: `tmp/${network}`, + chunkFileNames: "[name].js", + format: "es", + sourcemap: true, + }, + external: [ + // Used by node-polyfill + "node:worker_threads", + "node:os", + "node:fs", + "node:crypto", + "mime/lite.js", + "sync-request", + + // Used by the SDK + "comlink", + `@provablehq/wasm/${network}.js`, + ], + plugins: [ + replace({ + preventAssignment: true, + delimiters: ['', ''], + values: { + '%%VERSION%%': $package.version, + '%%NETWORK%%': network, + }, + }), + typescript({ + tsconfig: "tsconfig.test.json", + clean: true, + }), + ], + }; +}); diff --git a/sdk/src/account.ts b/sdk/src/account.ts index 13b57099c..62eb019a4 100644 --- a/sdk/src/account.ts +++ b/sdk/src/account.ts @@ -5,7 +5,7 @@ import { ViewKey, PrivateKeyCiphertext, RecordCiphertext, -} from "./index"; +} from "./browser"; interface AccountParam { privateKey?: string; diff --git a/sdk/src/browser.ts b/sdk/src/browser.ts new file mode 100644 index 000000000..83f40ff16 --- /dev/null +++ b/sdk/src/browser.ts @@ -0,0 +1,208 @@ +import {VerifyingKey, Metadata} from "@provablehq/wasm/%%NETWORK%%.js"; + +const KEY_STORE = Metadata.baseUrl(); + +interface Key { + name: string, + locator: string, + prover: string, + verifier: string, + verifyingKey: () => VerifyingKey, +} + +function convert(metadata: Metadata): Key { + // This looks up the method name in VerifyingKey + const verifyingKey = (VerifyingKey as any)[metadata.verifyingKey]; + + if (!verifyingKey) { + throw new Error("Invalid method name: " + metadata.verifyingKey); + } + + return { + name: metadata.name, + locator: metadata.locator, + prover: metadata.prover, + verifier: metadata.verifier, + verifyingKey, + }; +} + +const CREDITS_PROGRAM_KEYS = { + bond_public: convert(Metadata.bond_public()), + bond_validator: convert(Metadata.bond_validator()), + claim_unbond_public: convert(Metadata.claim_unbond_public()), + fee_private: convert(Metadata.fee_private()), + fee_public: convert(Metadata.fee_public()), + inclusion: convert(Metadata.inclusion()), + join: convert(Metadata.join()), + set_validator_state: convert(Metadata.set_validator_state()), + split: convert(Metadata.split()), + transfer_private: convert(Metadata.transfer_private()), + transfer_private_to_public: convert(Metadata.transfer_private_to_public()), + transfer_public: convert(Metadata.transfer_public()), + transfer_public_as_signer: convert(Metadata.transfer_public_as_signer()), + transfer_public_to_private: convert(Metadata.transfer_public_to_private()), + unbond_public: convert(Metadata.unbond_public()), + getKey: function(key: string): Key | Error { + if (this.hasOwnProperty(key)) { + return (this as any)[key] as Key; + } else { + return new Error(`Key "${key}" not found.`); + } + } +}; + +const PRIVATE_TRANSFER_TYPES = new Set([ + "transfer_private", + "private", + "transferPrivate", + "transfer_private_to_public", + "privateToPublic", + "transferPrivateToPublic", +]); +const VALID_TRANSFER_TYPES = new Set([ + "transfer_private", + "private", + "transferPrivate", + "transfer_private_to_public", + "privateToPublic", + "transferPrivateToPublic", + "transfer_public", + "transfer_public_as_signer", + "public", + "public_as_signer", + "transferPublic", + "transferPublicAsSigner", + "transfer_public_to_private", + "publicToPrivate", + "publicAsSigner", + "transferPublicToPrivate", +]); +const PRIVATE_TRANSFER = new Set([ + "private", + "transfer_private", + "transferPrivate", +]); +const PRIVATE_TO_PUBLIC_TRANSFER = new Set([ + "private_to_public", + "privateToPublic", + "transfer_private_to_public", + "transferPrivateToPublic", +]); +const PUBLIC_TRANSFER = new Set([ + "public", + "transfer_public", + "transferPublic", +]); +const PUBLIC_TRANSFER_AS_SIGNER = new Set([ + "public_as_signer", + "transfer_public_as_signer", + "transferPublicAsSigner", +]); +const PUBLIC_TO_PRIVATE_TRANSFER = new Set([ + "public_to_private", + "publicToPrivate", + "transfer_public_to_private", + "transferPublicToPrivate", +]); + +function logAndThrow(message: string): Error { + console.error(message); + throw message; +} + +import { Account } from "./account"; +import { AleoNetworkClient, ProgramImports } from "./network-client"; +import { Block } from "./models/block"; +import { Execution } from "./models/execution"; +import { Input } from "./models/input"; +import { Output } from "./models/output"; +import { TransactionModel } from "./models/transactionModel"; +import { Transition } from "./models/transition"; +import { + AleoKeyProvider, + AleoKeyProviderParams, + AleoKeyProviderInitParams, + CachedKeyPair, + FunctionKeyPair, + FunctionKeyProvider, + KeySearchParams, +} from "./function-key-provider"; +import { + OfflineKeyProvider, + OfflineSearchParams +} from "./offline-key-provider"; +import { + BlockHeightSearch, + NetworkRecordProvider, + RecordProvider, + RecordSearchParams, +} from "./record-provider"; + +// @TODO: This function is no longer needed, remove it. +async function initializeWasm() { + console.warn("initializeWasm is deprecated, you no longer need to use it"); +} + +export { createAleoWorker } from "./managed-worker"; + +export { ProgramManager } from "./program-manager"; + +export { + Address, + Execution as FunctionExecution, + ExecutionResponse, + Field, + OfflineQuery, + PrivateKey, + PrivateKeyCiphertext, + Program, + ProgramManager as ProgramManagerBase, + ProvingKey, + RecordCiphertext, + RecordPlaintext, + Signature, + Transaction, + VerifyingKey, + ViewKey, + initThreadPool, + verifyFunctionExecution, +} from "@provablehq/wasm/%%NETWORK%%.js"; + +export { initializeWasm }; + +export { + Account, + AleoKeyProvider, + AleoKeyProviderParams, + AleoKeyProviderInitParams, + AleoNetworkClient, + Block, + BlockHeightSearch, + CachedKeyPair, + Execution, + FunctionKeyPair, + FunctionKeyProvider, + Input, + Key, + KeySearchParams, + NetworkRecordProvider, + ProgramImports, + OfflineKeyProvider, + OfflineSearchParams, + Output, + RecordProvider, + RecordSearchParams, + TransactionModel, + Transition, + CREDITS_PROGRAM_KEYS, + KEY_STORE, + PRIVATE_TRANSFER, + PRIVATE_TO_PUBLIC_TRANSFER, + PRIVATE_TRANSFER_TYPES, + PUBLIC_TRANSFER, + PUBLIC_TRANSFER_AS_SIGNER, + PUBLIC_TO_PRIVATE_TRANSFER, + VALID_TRANSFER_TYPES, + logAndThrow, +}; diff --git a/sdk/src/function-key-provider.ts b/sdk/src/function-key-provider.ts index 55706f7f0..2e0b525b0 100644 --- a/sdk/src/function-key-provider.ts +++ b/sdk/src/function-key-provider.ts @@ -1,4 +1,15 @@ -import { ProvingKey, VerifyingKey, CREDITS_PROGRAM_KEYS, KEY_STORE, PRIVATE_TRANSFER, PRIVATE_TO_PUBLIC_TRANSFER, PUBLIC_TRANSFER, PUBLIC_TO_PRIVATE_TRANSFER} from "./index"; +import { + ProvingKey, + VerifyingKey, + CREDITS_PROGRAM_KEYS, + KEY_STORE, + Key, + PRIVATE_TRANSFER, + PRIVATE_TO_PUBLIC_TRANSFER, + PUBLIC_TRANSFER, + PUBLIC_TO_PRIVATE_TRANSFER, + PUBLIC_TRANSFER_AS_SIGNER +} from "./browser"; import { get } from "./utils"; type FunctionKeyPair = [ProvingKey, VerifyingKey]; @@ -22,6 +33,7 @@ interface KeySearchParams { * verifierUri to fetch keys via HTTP from a remote resource as well as a unique cacheKey to store the keys in memory. */ class AleoKeyProviderParams implements KeySearchParams { + name: string | undefined; proverUri: string | undefined; verifierUri: string | undefined; cacheKey: string | undefined; @@ -34,10 +46,11 @@ class AleoKeyProviderParams implements KeySearchParams { * * @param { AleoKeyProviderInitParams } params - Optional search parameters */ - constructor(params: {proverUri?: string, verifierUri?: string, cacheKey?: string}) { + constructor(params: {proverUri?: string, verifierUri?: string, cacheKey?: string, name?: string}) { this.proverUri = params.proverUri; this.verifierUri = params.verifierUri; this.cacheKey = params.cacheKey; + this.name = params.name; } } @@ -52,6 +65,12 @@ interface FunctionKeyProvider { */ bondPublicKeys(): Promise; + /** + * Get bond_validator function keys from the credits.aleo program + * + * @returns {Promise} Proving and verifying keys for the bond_validator function + */ + bondValidatorKeys(): Promise; /** * Cache a set of keys. This will overwrite any existing keys with the same keyId. The user can check if a keyId @@ -209,9 +228,9 @@ class AleoKeyProvider implements FunctionKeyProvider { url = "/", ): Promise { try { - const response = await get(url); - const data = await response.arrayBuffer(); - return new Uint8Array(data); + const response = await get(url); + const data = await response.arrayBuffer(); + return new Uint8Array(data); } catch (error) { throw new Error("Error fetching data." + error); } @@ -298,7 +317,6 @@ class AleoKeyProvider implements FunctionKeyProvider { * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * const recordProvider = new NetworkRecordProvider(account, networkClient); - * const AleoProviderParams = new AleoProviderParams("https://testnet3.parameters.aleo.org/transfer_private."); * * // Initialize a program manager with the key provider to automatically fetch keys for value transfers * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); @@ -313,6 +331,13 @@ class AleoKeyProvider implements FunctionKeyProvider { let proverUrl; let verifierUrl; let cacheKey; + if ("name" in params && typeof params["name"] == "string") { + let key = CREDITS_PROGRAM_KEYS.getKey(params["name"]); + if (!(key instanceof Error)) { + return this.fetchCreditsKeys(key); + } + } + if ("proverUri" in params && typeof params["proverUri"] == "string") { proverUrl = params["proverUri"]; } @@ -326,7 +351,7 @@ class AleoKeyProvider implements FunctionKeyProvider { } if (proverUrl && verifierUrl) { - return await this.fetchKeys(proverUrl, verifierUrl, cacheKey); + return await this.fetchRemoteKeys(proverUrl, verifierUrl, cacheKey); } if (cacheKey) { @@ -352,13 +377,16 @@ class AleoKeyProvider implements FunctionKeyProvider { * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for value transfers - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5); * * // Keys can also be fetched manually - * const [transferPrivateProvingKey, transferPrivateVerifyingKey] = await keyProvider.fetchKeys("https://testnet3.parameters.aleo.org/transfer_private.prover.2a9a6f2", "https://testnet3.parameters.aleo.org/transfer_private.verifier.3a59762"); + * const [transferPrivateProvingKey, transferPrivateVerifyingKey] = await keyProvider.fetchKeys( + * CREDITS_PROGRAM_KEYS.transfer_private.prover, + * CREDITS_PROGRAM_KEYS.transfer_private.verifier, + * ); */ - async fetchKeys(proverUrl: string, verifierUrl: string, cacheKey?: string): Promise { + async fetchRemoteKeys(proverUrl: string, verifierUrl: string, cacheKey?: string): Promise { try { // If cache is enabled, check if the keys have already been fetched and return them if they have if (this.cacheOption) { @@ -388,12 +416,67 @@ class AleoKeyProvider implements FunctionKeyProvider { } } - bondPublicKeys(): Promise { - return this.fetchKeys(CREDITS_PROGRAM_KEYS.bond_public.prover, CREDITS_PROGRAM_KEYS.bond_public.verifier, CREDITS_PROGRAM_KEYS.bond_public.locator) + /*** + * Fetches the proving key from a remote source. + * + * @param proverUrl + * @param cacheKey + * + * @returns {Promise} Proving key for the specified program + */ + async fetchProvingKey(proverUrl: string, cacheKey?: string): Promise { + try { + // If cache is enabled, check if the keys have already been fetched and return them if they have + if (this.cacheOption) { + if (!cacheKey) { + cacheKey = proverUrl; + } + const value = this.cache.get(cacheKey); + if (typeof value !== "undefined") { + return ProvingKey.fromBytes(value[0]); + } else { + console.debug("Fetching proving keys from url " + proverUrl); + const provingKey = ProvingKey.fromBytes(await this.fetchBytes(proverUrl)); + return provingKey; + } + } + else { + const provingKey = ProvingKey.fromBytes(await this.fetchBytes(proverUrl)); + return provingKey; + } + } catch (error) { + throw new Error(`Error: ${error} fetching fee proving keys from ${proverUrl}`); + } + } + + async fetchCreditsKeys(key: Key): Promise { + try { + if (!this.cache.has(key.locator) || !this.cacheOption) { + const verifying_key = key.verifyingKey() + const proving_key = await this.fetchProvingKey(key.prover, key.locator); + if (this.cacheOption) { + this.cache.set(CREDITS_PROGRAM_KEYS.bond_public.locator, [proving_key.toBytes(), verifying_key.toBytes()]); + } + return [proving_key, verifying_key]; + } else { + const keyPair = this.cache.get(key.locator); + return [ProvingKey.fromBytes(keyPair[0]), VerifyingKey.fromBytes(keyPair[1])]; + } + } catch (error) { + throw new Error(`Error: fetching credits.aleo keys: ${error}`); + } + } + + async bondPublicKeys(): Promise { + return this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.bond_public); + } + + bondValidatorKeys(): Promise { + return this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.bond_validator); } claimUnbondPublicKeys(): Promise { - return this.fetchKeys(CREDITS_PROGRAM_KEYS.claim_unbond_public.prover, CREDITS_PROGRAM_KEYS.claim_unbond_public.verifier, CREDITS_PROGRAM_KEYS.claim_unbond_public.locator) + return this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.claim_unbond_public) } /** @@ -403,12 +486,12 @@ class AleoKeyProvider implements FunctionKeyProvider { * * @example * // Create a new AleoKeyProvider - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for value transfers - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5); * * // Keys can also be fetched manually @@ -416,13 +499,15 @@ class AleoKeyProvider implements FunctionKeyProvider { */ async transferKeys(visibility: string): Promise { if (PRIVATE_TRANSFER.has(visibility)) { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_private.prover, CREDITS_PROGRAM_KEYS.transfer_private.verifier, CREDITS_PROGRAM_KEYS.transfer_private.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_private); } else if (PRIVATE_TO_PUBLIC_TRANSFER.has(visibility)) { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_private_to_public.prover, CREDITS_PROGRAM_KEYS.transfer_private_to_public.verifier, CREDITS_PROGRAM_KEYS.transfer_private_to_public.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_private_to_public); } else if (PUBLIC_TRANSFER.has(visibility)) { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_public.prover, CREDITS_PROGRAM_KEYS.transfer_public.verifier, CREDITS_PROGRAM_KEYS.transfer_public.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_public); + } else if (PUBLIC_TRANSFER_AS_SIGNER.has(visibility)) { + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_public_as_signer); } else if (PUBLIC_TO_PRIVATE_TRANSFER.has(visibility)) { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_public_to_private.prover, CREDITS_PROGRAM_KEYS.transfer_public_to_private.verifier, CREDITS_PROGRAM_KEYS.transfer_public_to_private.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_public_to_private); } else { throw new Error("Invalid visibility type"); } @@ -434,7 +519,7 @@ class AleoKeyProvider implements FunctionKeyProvider { * @returns {Promise} Proving and verifying keys for the join function */ async joinKeys(): Promise { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.join.prover, CREDITS_PROGRAM_KEYS.join.verifier, CREDITS_PROGRAM_KEYS.join.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.join); } /** @@ -443,7 +528,7 @@ class AleoKeyProvider implements FunctionKeyProvider { * @returns {Promise} Proving and verifying keys for the split function * */ async splitKeys(): Promise { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.split.prover, CREDITS_PROGRAM_KEYS.split.verifier, CREDITS_PROGRAM_KEYS.split.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.split); } /** @@ -452,7 +537,7 @@ class AleoKeyProvider implements FunctionKeyProvider { * @returns {Promise} Proving and verifying keys for the fee function */ async feePrivateKeys(): Promise { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.fee_private.prover, CREDITS_PROGRAM_KEYS.fee_private.verifier, CREDITS_PROGRAM_KEYS.fee_private.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.fee_private); } /** @@ -461,7 +546,7 @@ class AleoKeyProvider implements FunctionKeyProvider { * @returns {Promise} Proving and verifying keys for the fee function */ async feePublicKeys(): Promise { - return await this.fetchKeys(CREDITS_PROGRAM_KEYS.fee_public.prover, CREDITS_PROGRAM_KEYS.fee_public.verifier, CREDITS_PROGRAM_KEYS.fee_public.locator); + return await this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.fee_public); } /** @@ -474,6 +559,8 @@ class AleoKeyProvider implements FunctionKeyProvider { switch (verifierUri) { case CREDITS_PROGRAM_KEYS.bond_public.verifier: return CREDITS_PROGRAM_KEYS.bond_public.verifyingKey(); + case CREDITS_PROGRAM_KEYS.bond_validator.verifier: + return CREDITS_PROGRAM_KEYS.bond_validator.verifyingKey(); case CREDITS_PROGRAM_KEYS.claim_unbond_public.verifier: return CREDITS_PROGRAM_KEYS.claim_unbond_public.verifyingKey(); case CREDITS_PROGRAM_KEYS.fee_private.verifier: @@ -494,10 +581,10 @@ class AleoKeyProvider implements FunctionKeyProvider { return CREDITS_PROGRAM_KEYS.transfer_private_to_public.verifyingKey(); case CREDITS_PROGRAM_KEYS.transfer_public.verifier: return CREDITS_PROGRAM_KEYS.transfer_public.verifyingKey(); + case CREDITS_PROGRAM_KEYS.transfer_public_as_signer.verifier: + return CREDITS_PROGRAM_KEYS.transfer_public_as_signer.verifyingKey(); case CREDITS_PROGRAM_KEYS.transfer_public_to_private.verifier: return CREDITS_PROGRAM_KEYS.transfer_public_to_private.verifyingKey(); - case CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.verifier: - return CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.verifyingKey(); case CREDITS_PROGRAM_KEYS.unbond_public.verifier: return CREDITS_PROGRAM_KEYS.unbond_public.verifyingKey(); default: @@ -509,7 +596,7 @@ class AleoKeyProvider implements FunctionKeyProvider { } catch (e) { /// If that fails, try to fetch the verifying key from the network as bytes try { - return VerifyingKey.fromBytes(await this.fetchBytes(verifierUri)); + return VerifyingKey.fromBytes(await this.fetchBytes(verifierUri)); } catch (inner) { return new Error("Invalid verifying key. Error: " + inner); } @@ -518,7 +605,7 @@ class AleoKeyProvider implements FunctionKeyProvider { } unBondPublicKeys(): Promise { - return this.fetchKeys(CREDITS_PROGRAM_KEYS.unbond_public.prover, CREDITS_PROGRAM_KEYS.unbond_public.verifier, CREDITS_PROGRAM_KEYS.unbond_public.locator); + return this.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.unbond_public); } } diff --git a/sdk/src/index.ts b/sdk/src/index.ts deleted file mode 100644 index f48e49f1e..000000000 --- a/sdk/src/index.ts +++ /dev/null @@ -1,233 +0,0 @@ -import {VerifyingKey} from "@aleohq/wasm"; -const KEY_STORE = "https://testnet3.parameters.aleo.org/"; - -const CREDITS_PROGRAM_KEYS = { - bond_public: { - locator: "credits.aleo/bond_public", - prover: KEY_STORE + "bond_public.prover.9c3547d", - verifier: "bond_public.verifier.10315ae", - verifyingKey: VerifyingKey.bondPublicVerifier - }, - claim_unbond_public: { - locator: "credits.aleo/claim_unbond_public", - prover: KEY_STORE + "claim_unbond_public.prover.f8b64aa", - verifier: "claim_unbond_public.verifier.8fd7445", - verifyingKey: VerifyingKey.claimUnbondPublicVerifier - }, - fee_private: { - locator: "credits.aleo/fee_private", - prover: KEY_STORE + "fee_private.prover.43fab98", - verifier: "fee_private.verifier.f3dfefc", - verifyingKey: VerifyingKey.feePrivateVerifier - }, - fee_public: { - locator: "credits.aleo/fee_public", - prover: KEY_STORE + "fee_public.prover.634f153", - verifier: "fee_public.verifier.09eeb4f", - verifyingKey: VerifyingKey.feePublicVerifier - }, - inclusion: { - locator: "inclusion", - prover: KEY_STORE + "inclusion.prover.cd85cc5", - verifier: "inclusion.verifier.e6f3add", - verifyingKey: VerifyingKey.inclusionVerifier - }, - join: { - locator: "credits.aleo/join", - prover: KEY_STORE + "join.prover.1a76fe8", - verifier: "join.verifier.4f1701b", - verifyingKey: VerifyingKey.joinVerifier - }, - set_validator_state: { - locator: "credits.aleo/set_validator_state", - prover: KEY_STORE + "set_validator_state.prover.5ce19be", - verifier: "set_validator_state.verifier.730d95b", - verifyingKey: VerifyingKey.setValidatorStateVerifier - }, - split: { - locator: "credits.aleo/split", - prover: KEY_STORE + "split.prover.e6d12b9", - verifier: "split.verifier.2f9733d", - verifyingKey: VerifyingKey.splitVerifier - }, - transfer_private: { - locator: "credits.aleo/transfer_private", - prover: KEY_STORE + "transfer_private.prover.2b487c0", - verifier: "transfer_private.verifier.3a3cbba", - verifyingKey: VerifyingKey.transferPrivateVerifier - }, - transfer_private_to_public: { - locator: "credits.aleo/transfer_private_to_public", - prover: KEY_STORE + "transfer_private_to_public.prover.1ff64cb", - verifier: "transfer_private_to_public.verifier.d5b60de", - verifyingKey: VerifyingKey.transferPrivateToPublicVerifier - }, - transfer_public: { - locator: "credits.aleo/transfer_public", - prover: KEY_STORE + "transfer_public.prover.a74565e", - verifier: "transfer_public.verifier.a4c2906", - verifyingKey: VerifyingKey.transferPublicVerifier - }, - transfer_public_to_private: { - locator: "credits.aleo/transfer_public_to_private", - prover: KEY_STORE + "transfer_public_to_private.prover.1bcddf9", - verifier: "transfer_public_to_private.verifier.b094554", - verifyingKey: VerifyingKey.transferPublicToPrivateVerifier - }, - unbond_delegator_as_validator: { - locator: "credits.aleo/unbond_delegator_as_validator", - prover: KEY_STORE + "unbond_delegator_as_validator.prover.115a86b", - verifier: "unbond_delegator_as_validator.verifier.9585609", - verifyingKey: VerifyingKey.unbondDelegatorAsValidatorVerifier - }, - unbond_public: { - locator: "credits.aleo/unbond_public", - prover: KEY_STORE + "unbond_public.prover.9547c05", - verifier: "unbond_public.verifier.09873cd", - verifyingKey: VerifyingKey.unbondPublicVerifier - }, -}; - -const PRIVATE_TRANSFER_TYPES = new Set([ - "transfer_private", - "private", - "transferPrivate", - "transfer_private_to_public", - "privateToPublic", - "transferPrivateToPublic", -]); -const VALID_TRANSFER_TYPES = new Set([ - "transfer_private", - "private", - "transferPrivate", - "transfer_private_to_public", - "privateToPublic", - "transferPrivateToPublic", - "transfer_public", - "public", - "transferPublic", - "transfer_public_to_private", - "publicToPrivate", - "transferPublicToPrivate", -]); -const PRIVATE_TRANSFER = new Set([ - "private", - "transfer_private", - "transferPrivate", -]); -const PRIVATE_TO_PUBLIC_TRANSFER = new Set([ - "private_to_public", - "privateToPublic", - "transfer_private_to_public", - "transferPrivateToPublic", -]); -const PUBLIC_TRANSFER = new Set([ - "public", - "transfer_public", - "transferPublic", -]); -const PUBLIC_TO_PRIVATE_TRANSFER = new Set([ - "public_to_private", - "publicToPrivate", - "transfer_public_to_private", - "transferPublicToPrivate", -]); - -function logAndThrow(message: string): Error { - console.error(message); - throw message; -} - -import { Account } from "./account"; -import { AleoNetworkClient, ProgramImports } from "./network-client"; -import { Block } from "./models/block"; -import { Execution } from "./models/execution"; -import { Input } from "./models/input"; -import { Output } from "./models/output"; -import { TransactionModel } from "./models/transactionModel"; -import { Transition } from "./models/transition"; -import { - AleoKeyProvider, - AleoKeyProviderParams, - AleoKeyProviderInitParams, - CachedKeyPair, - FunctionKeyPair, - FunctionKeyProvider, - KeySearchParams, -} from "./function-key-provider"; -import { - OfflineKeyProvider, - OfflineSearchParams -} from "./offline-key-provider"; -import { - BlockHeightSearch, - NetworkRecordProvider, - RecordProvider, - RecordSearchParams, -} from "./record-provider"; - -// @TODO: This function is no longer needed, remove it. -async function initializeWasm() { - console.warn("initializeWasm is deprecated, you no longer need to use it"); -} - -export { createAleoWorker } from "./managed-worker"; - -export { ProgramManager } from "./program-manager"; - -export { - Address, - Execution as FunctionExecution, - ExecutionResponse, - Field, - OfflineQuery, - PrivateKey, - PrivateKeyCiphertext, - Program, - ProgramManager as ProgramManagerBase, - ProvingKey, - RecordCiphertext, - RecordPlaintext, - Signature, - Transaction, - VerifyingKey, - ViewKey, - initThreadPool, - verifyFunctionExecution, -} from "@aleohq/wasm"; - -export { initializeWasm }; - -export { - Account, - AleoKeyProvider, - AleoKeyProviderParams, - AleoKeyProviderInitParams, - AleoNetworkClient, - Block, - BlockHeightSearch, - CachedKeyPair, - Execution, - FunctionKeyPair, - FunctionKeyProvider, - Input, - KeySearchParams, - NetworkRecordProvider, - ProgramImports, - OfflineKeyProvider, - OfflineSearchParams, - Output, - RecordProvider, - RecordSearchParams, - TransactionModel, - Transition, - CREDITS_PROGRAM_KEYS, - KEY_STORE, - PRIVATE_TRANSFER, - PRIVATE_TO_PUBLIC_TRANSFER, - PRIVATE_TRANSFER_TYPES, - PUBLIC_TRANSFER, - PUBLIC_TO_PRIVATE_TRANSFER, - VALID_TRANSFER_TYPES, - logAndThrow, -}; diff --git a/sdk/src/network-client.ts b/sdk/src/network-client.ts index 405e52074..8cbbd869f 100644 --- a/sdk/src/network-client.ts +++ b/sdk/src/network-client.ts @@ -9,7 +9,7 @@ import { Transaction, TransactionModel, logAndThrow -} from "./index"; +} from "./browser"; type ProgramImports = { [key: string]: string | Program }; @@ -35,7 +35,7 @@ class AleoNetworkClient { account: Account | undefined; constructor(host: string, options?: AleoNetworkClientOptions) { - this.host = host + "/testnet3"; + this.host = host + "/%%NETWORK%%"; if (options && options.headers) { this.headers = options.headers; @@ -77,19 +77,18 @@ class AleoNetworkClient { * @param host */ setHost(host: string) { - this.host = host + "/testnet3"; + this.host = host + "/%%NETWORK%%"; } async fetchData( url = "/", ): Promise { try { - const response = await get(this.host + url, { - headers: this.headers - }); - - return await response.json(); + const response = await get(this.host + url, { + headers: this.headers + }); + return await response.json(); } catch (error) { throw new Error("Error fetching data."); } @@ -584,11 +583,10 @@ class AleoNetworkClient { */ async getTransaction(id: string): Promise { try { - return await this.fetchData("/transaction/" + id); + return await this.fetchData("/transaction/" + id); } catch (error) { throw new Error("Error fetching transaction."); } - } /** @@ -600,7 +598,7 @@ class AleoNetworkClient { */ async getTransactions(height: number): Promise | Error> { try { - return await this.fetchData>("/block/" + height.toString() + "/transactions"); + return await this.fetchData>("/block/" + height.toString() + "/transactions"); } catch (error) { throw new Error("Error fetching transactions."); } diff --git a/sdk/src/node.ts b/sdk/src/node.ts index 6aadbc294..b94eab757 100644 --- a/sdk/src/node.ts +++ b/sdk/src/node.ts @@ -1,2 +1,2 @@ import "./node-polyfill"; -export * from "./index"; +export * from "./browser"; diff --git a/sdk/src/offline-key-provider.ts b/sdk/src/offline-key-provider.ts index 0a1eb8fe9..91fed9dbd 100644 --- a/sdk/src/offline-key-provider.ts +++ b/sdk/src/offline-key-provider.ts @@ -1,4 +1,17 @@ -import { FunctionKeyProvider, KeySearchParams, FunctionKeyPair, CachedKeyPair, ProvingKey, VerifyingKey, CREDITS_PROGRAM_KEYS, PRIVATE_TRANSFER, PRIVATE_TO_PUBLIC_TRANSFER, PUBLIC_TRANSFER, PUBLIC_TO_PRIVATE_TRANSFER} from "./index"; +import { + FunctionKeyProvider, + KeySearchParams, + FunctionKeyPair, + CachedKeyPair, + ProvingKey, + VerifyingKey, + CREDITS_PROGRAM_KEYS, + PRIVATE_TRANSFER, + PRIVATE_TO_PUBLIC_TRANSFER, + PUBLIC_TRANSFER, + PUBLIC_TO_PRIVATE_TRANSFER, + PUBLIC_TRANSFER_AS_SIGNER +} from "./browser"; /** * Search parameters for the offline key provider. This class implements the KeySearchParams interface and includes @@ -9,7 +22,7 @@ import { FunctionKeyProvider, KeySearchParams, FunctionKeyPair, CachedKeyPair, P * offlineSearchParams = new OfflineSearchParams("myprogram.aleo/myfunction"); * * // If storing a key for a credits.aleo program function - * unbondDelegatorAsValidatorSearchParams = OfflineSearchParams.unbondDelegatorAsValidatorKeyParams(); + * bondPublicKeyParams = OfflineSearchParams.bondPublicKeyParams(); */ class OfflineSearchParams implements KeySearchParams { cacheKey: string | undefined; @@ -35,6 +48,13 @@ class OfflineSearchParams implements KeySearchParams { return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.bond_public.locator, true); } + /** + * Create a new OfflineSearchParams instance for the bond_validator function of the credits.aleo program. + */ + static bondValidatorKeyParams(): OfflineSearchParams { + return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.bond_validator.locator, true); + } + /** * Create a new OfflineSearchParams instance for the claim_unbond_public function of the */ @@ -106,21 +126,21 @@ class OfflineSearchParams implements KeySearchParams { } /** - * Create a new OfflineSearchParams instance for the transfer_public_to_private function of the credits.aleo program. + * Create a new OfflineSearchParams instance for the transfer_public_as_signer function of the credits.aleo program. */ - static transferPublicToPrivateKeyParams(): OfflineSearchParams { - return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.transfer_public_to_private.locator, true); + static transferPublicAsSignerKeyParams(): OfflineSearchParams { + return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.transfer_public_as_signer.locator, true); } /** - * Create a new OfflineSearchParams instance for the unbond_delegator_as_validator function of the credits.aleo program. + * Create a new OfflineSearchParams instance for the transfer_public_to_private function of the credits.aleo program. */ - static unbondDelegatorAsValidatorKeyParams(): OfflineSearchParams { - return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.locator, true); + static transferPublicToPrivateKeyParams(): OfflineSearchParams { + return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.transfer_public_to_private.locator, true); } /** - * Create a new OfflineSearchParams instance for the unbond_delegator function of the credits.aleo program. + * Create a new OfflineSearchParams instance for the unbond_public function of the credits.aleo program. */ static unbondPublicKeyParams(): OfflineSearchParams { return new OfflineSearchParams(CREDITS_PROGRAM_KEYS.unbond_public.locator, true); @@ -195,6 +215,16 @@ class OfflineKeyProvider implements FunctionKeyProvider { return this.functionKeys(OfflineSearchParams.bondPublicKeyParams()); }; + /** + * Get bond_validator function keys from the credits.aleo program. The keys must be cached prior to calling this + * method for it to work. + * + * @returns {Promise} Proving and verifying keys for the bond_public function + */ + bondValidatorKeys(): Promise { + return this.functionKeys(OfflineSearchParams.bondValidatorKeyParams()); + }; + /** * Cache a set of keys. This will overwrite any existing keys with the same keyId. The user can check if a keyId @@ -298,8 +328,6 @@ class OfflineKeyProvider implements FunctionKeyProvider { return provingKey.isTransferPublicProver() && verifyingKey.isTransferPublicVerifier(); case CREDITS_PROGRAM_KEYS.transfer_public_to_private.locator: return provingKey.isTransferPublicToPrivateProver() && verifyingKey.isTransferPublicToPrivateVerifier(); - case CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.locator: - return provingKey.isUnbondDelegatorAsValidatorProver() && verifyingKey.isUnbondDelegatorAsValidatorVerifier(); case CREDITS_PROGRAM_KEYS.unbond_public.locator: return provingKey.isUnbondPublicProver() && verifyingKey.isUnbondPublicVerifier(); default: @@ -376,6 +404,8 @@ class OfflineKeyProvider implements FunctionKeyProvider { return this.functionKeys(OfflineSearchParams.transferPrivateToPublicKeyParams()); } else if (PUBLIC_TRANSFER.has(visibility)) { return this.functionKeys(OfflineSearchParams.transferPublicKeyParams()); + } else if (PUBLIC_TRANSFER_AS_SIGNER.has(visibility)) { + return this.functionKeys(OfflineSearchParams.transferPublicAsSignerKeyParams()); } else if (PUBLIC_TO_PRIVATE_TRANSFER.has(visibility)) { return this.functionKeys(OfflineSearchParams.transferPublicToPrivateKeyParams()); } else { @@ -557,14 +587,6 @@ class OfflineKeyProvider implements FunctionKeyProvider { } } - insertUnbondDelegatorAsValidatorKeys(provingKey: ProvingKey) { - if (provingKey.isUnbondDelegatorAsValidatorProver()) { - this.cache.set(CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.locator, [provingKey.toBytes(), VerifyingKey.unbondDelegatorAsValidatorVerifier().toBytes()]); - } else { - throw new Error("Attempted to insert invalid proving keys for unbond_delegator_as_validator"); - } - } - insertUnbondPublicKeys(provingKey: ProvingKey) { if (provingKey.isUnbondPublicProver()) { this.cache.set(CREDITS_PROGRAM_KEYS.unbond_public.locator, [provingKey.toBytes(), VerifyingKey.unbondPublicVerifier().toBytes()]); diff --git a/sdk/src/program-manager.ts b/sdk/src/program-manager.ts index a8a2ac8de..323b300fa 100644 --- a/sdk/src/program-manager.ts +++ b/sdk/src/program-manager.ts @@ -3,6 +3,7 @@ import { AleoKeyProvider, AleoNetworkClient, ExecutionResponse, + FunctionExecution, FunctionKeyProvider, FunctionKeyPair, OfflineQuery, @@ -20,8 +21,7 @@ import { VALID_TRANSFER_TYPES, logAndThrow, ProgramManagerBase as WasmProgramManager, verifyFunctionExecution, AleoKeyProviderParams, CREDITS_PROGRAM_KEYS, -} from "./index"; -import {Execution} from "@aleohq/wasm/dist/crates/aleo_wasm"; +} from "./browser"; /** * Represents the options for executing a transaction in the Aleo network. @@ -78,7 +78,7 @@ class ProgramManager { constructor(host?: string | undefined, keyProvider?: FunctionKeyProvider | undefined, recordProvider?: RecordProvider | undefined) { this.host = host ? host : 'https://api.explorer.aleo.org/v1'; this.networkClient = new AleoNetworkClient(this.host); - + this.keyProvider = keyProvider ? keyProvider : new AleoKeyProvider(); this.recordProvider = recordProvider; } @@ -223,13 +223,13 @@ class ProgramManager { * * @example * // Create a new NetworkClient, KeyProvider, and RecordProvider using official Aleo record, key, and network providers - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * keyProvider.useCache = true; * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for executions - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * * // Build and execute the transaction * const transaction = await programManager.buildExecutionTransaction({ @@ -330,13 +330,13 @@ class ProgramManager { * * @example * // Create a new NetworkClient, KeyProvider, and RecordProvider using official Aleo record, key, and network providers - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * keyProvider.useCache = true; * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for executions - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * * // Build and execute the transaction * const transaction = await programManager.execute({ @@ -372,7 +372,7 @@ class ProgramManager { * @returns {Promise} * * @example - * import { Account, Program } from '@aleohq/sdk'; + * import { Account, Program } from '@provablehq/sdk'; * * /// Create the source for the "helloworld" program * const program = "program helloworld.aleo;\n\nfunction hello:\n input r0 as u32.public;\n input r1 as u32.private;\n add r0 r1 into r2;\n output r2 as u32.private;\n"; @@ -383,7 +383,7 @@ class ProgramManager { * programManager.setAccount(account); * * /// Get the response and ensure that the program executed correctly - * const executionResponse = await programManager.executeOffline(program, "hello", ["5u32", "5u32"]); + * const executionResponse = await programManager.run(program, "hello", ["5u32", "5u32"]); * const result = executionResponse.getOutputs(); * assert(result === ["10u32"]); */ @@ -502,13 +502,13 @@ class ProgramManager { * * @example * // Create a new NetworkClient, KeyProvider, and RecordProvider - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for executions * const programName = "hello_hello.aleo"; - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * const record = "{ owner: aleo184vuwr5u7u0ha5f5k44067dd2uaqewxx6pe5ltha5pv99wvhfqxqv339h4.private, microcredits: 45000000u64.private, _nonce: 4106205762862305308495708971985748592380064201230396559307556388725936304984group.public}" * const tx_id = await programManager.split(25000000, record); * const transaction = await programManager.networkClient.getTransaction(tx_id); @@ -607,13 +607,13 @@ class ProgramManager { * * @example * // Create a new NetworkClient, KeyProvider, and RecordProvider - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for executions * const programName = "hello_hello.aleo"; - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * await programManager.initialize(); * const tx_id = await programManager.transfer(1, "aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "private", 0.2) * const transaction = await programManager.networkClient.getTransaction(tx_id); @@ -690,19 +690,6 @@ class ProgramManager { * @param {PrivateKey | undefined} privateKey Optional private key to use for the transfer transaction * @param {OfflineQuery | undefined} offlineQuery Optional offline query if creating transactions in an offline environment * @returns {Promise} The transaction id of the transfer transaction - * - * @example - * // Create a new NetworkClient, KeyProvider, and RecordProvider - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); - * const keyProvider = new AleoKeyProvider(); - * const recordProvider = new NetworkRecordProvider(account, networkClient); - * - * // Initialize a program manager with the key provider to automatically fetch keys for executions - * const programName = "hello_hello.aleo"; - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); - * await programManager.initialize(); - * const tx_id = await programManager.transfer(1, "aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "private", 0.2) - * const transaction = await programManager.networkClient.getTransaction(tx_id); */ async buildTransferPublicTransaction( amount: number, @@ -714,6 +701,32 @@ class ProgramManager { return this.buildTransferTransaction(amount, recipient, "public", fee, false, undefined, undefined, undefined, privateKey, offlineQuery); } + /** + * Build a transfer_public_as_signer transaction to transfer credits to another account for later submission to the Aleo network + * + * @param {number} amount The amount of credits to transfer + * @param {string} recipient The recipient of the transfer + * @param {string} transferType The type of transfer to perform - options: 'private', 'privateToPublic', 'public', 'publicToPrivate' + * @param {number} fee The fee to pay for the transfer + * @param {boolean} privateFee Use a private record to pay the fee. If false this will use the account's public credit balance + * @param {RecordSearchParams | undefined} recordSearchParams Optional parameters for finding the amount and fee + * records for the transfer transaction + * @param {RecordPlaintext | string} amountRecord Optional amount record to use for the transfer + * @param {RecordPlaintext | string} feeRecord Optional fee record to use for the transfer + * @param {PrivateKey | undefined} privateKey Optional private key to use for the transfer transaction + * @param {OfflineQuery | undefined} offlineQuery Optional offline query if creating transactions in an offline environment + * @returns {Promise} The transaction id of the transfer transaction + */ + async buildTransferPublicAsSignerTransaction( + amount: number, + recipient: string, + fee: number, + privateKey?: PrivateKey, + offlineQuery?: OfflineQuery + ): Promise { + return this.buildTransferTransaction(amount, recipient, "public", fee, false, undefined, undefined, undefined, privateKey, offlineQuery); + } + /** * Transfer credits to another account * @@ -732,13 +745,12 @@ class ProgramManager { * * @example * // Create a new NetworkClient, KeyProvider, and RecordProvider - * const networkClient = new AleoNetworkClient("https://vm.aleo.org/api"); + * const networkClient = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); * const keyProvider = new AleoKeyProvider(); * const recordProvider = new NetworkRecordProvider(account, networkClient); * * // Initialize a program manager with the key provider to automatically fetch keys for executions - * const programName = "hello_hello.aleo"; - * const programManager = new ProgramManager("https://vm.aleo.org/api", keyProvider, recordProvider); + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, recordProvider); * await programManager.initialize(); * const tx_id = await programManager.transfer(1, "aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "private", 0.2) * const transaction = await programManager.networkClient.getTransaction(tx_id); @@ -760,7 +772,7 @@ class ProgramManager { } /** - * Build transaction to bond credits to a staking committee for later submission to the Aleo Network + * Build transaction to bond credits to a validator for later submission to the Aleo Network * * @example * // Create a keyProvider to handle key management @@ -771,19 +783,25 @@ class ProgramManager { * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); * programManager.setAccount(new Account("YourPrivateKey")); * - * // Create the bonding transaction - * const tx_id = await programManager.bondPublic("aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", 2000000); + * // Create the bonding transaction object for later submission + * const tx = await programManager.buildBondPublicTransaction("aleo1jx8s4dvjepculny4wfrzwyhs3tlyv65r58ns3g6q2gm2esh7ps8sqy9s5j", "aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "aleo1feya8sjy9k2zflvl2dx39pdsq5tju28elnp2ektnn588uu9ghv8s84msv9", 2000000); + * console.log(tx); + * + * // The transaction can be later submitted to the network using the network client. + * const result = await programManager.networkClient.submitTransaction(tx); * * @returns string - * @param {string} address Address of the validator to bond to, if this address is the same as the signer (i.e. the + * @param {string} staker_address Address of the staker who is bonding the credits + * @param {string} validator_address Address of the validator to bond to, if this address is the same as the staker (i.e. the * executor of this function), it will attempt to bond the credits as a validator. Bonding as a validator currently - * requires a minimum of 1,000,000 credits to bond (subject to change). If the address is specified is an existing + * requires a minimum of 10,000,000 credits to bond (subject to change). If the address is specified is an existing * validator and is different from the address of the executor of this function, it will bond the credits to that * validator's staking committee as a delegator. A minimum of 10 credits is required to bond as a delegator. + * @param {string} withdrawal_address Address to withdraw the staked credits to when unbond_public is called. * @param {number} amount The amount of credits to bond * @param {Partial} options - Override default execution options. */ - async buildBondPublicTransaction(address: string, amount: number, options: Partial = {}) { + async buildBondPublicTransaction(staker_address: string, validator_address: string, withdrawal_address: string, amount: number, options: Partial = {}) { const scaledAmount = Math.trunc(amount * 1000000); const { @@ -791,7 +809,7 @@ class ProgramManager { functionName = "bond_public", fee = options.fee || 0.86, privateFee = false, - inputs = [address, `${scaledAmount.toString()}u64`], + inputs = [staker_address, validator_address, withdrawal_address, `${scaledAmount.toString()}u64`], keySearchParams = new AleoKeyProviderParams({ proverUri: CREDITS_PROGRAM_KEYS.bond_public.prover, verifierUri: CREDITS_PROGRAM_KEYS.bond_public.verifier, @@ -815,7 +833,7 @@ class ProgramManager { } /** - * Bond credits to a staking committee + * Bond credits to validator. * * @example * // Create a keyProvider to handle key management @@ -827,35 +845,140 @@ class ProgramManager { * programManager.setAccount(new Account("YourPrivateKey")); * * // Create the bonding transaction - * const tx_id = await programManager.bondPublic("aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", 2000000); + * const tx_id = await programManager.bondPublic("aleo1jx8s4dvjepculny4wfrzwyhs3tlyv65r58ns3g6q2gm2esh7ps8sqy9s5j", "aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "aleo1feya8sjy9k2zflvl2dx39pdsq5tju28elnp2ektnn588uu9ghv8s84msv9", 2000000); * * @returns string - * @param {string} address Address of the validator to bond to, if this address is the same as the signer (i.e. the + * @param {string} staker_address Address of the staker who is bonding the credits + * @param {string} validator_address Address of the validator to bond to, if this address is the same as the signer (i.e. the * executor of this function), it will attempt to bond the credits as a validator. Bonding as a validator currently * requires a minimum of 1,000,000 credits to bond (subject to change). If the address is specified is an existing * validator and is different from the address of the executor of this function, it will bond the credits to that * validator's staking committee as a delegator. A minimum of 10 credits is required to bond as a delegator. + * @param {string} withdrawal_address Address to withdraw the staked credits to when unbond_public is called. * @param {number} amount The amount of credits to bond * @param {Options} options Options for the execution */ - async bondPublic(address: string, amount: number, options: Partial = {}) { - const tx = await this.buildBondPublicTransaction(address, amount, options); + async bondPublic(staker_address: string, validator_address: string, withdrawal_address:string, amount: number, options: Partial = {}) { + const tx = await this.buildBondPublicTransaction(staker_address, validator_address, withdrawal_address, amount, options); + return await this.networkClient.submitTransaction(tx); + } + + /** + * Build a bond_validator transaction for later submission to the Aleo Network. + * + * @example + * // Create a keyProvider to handle key management + * const keyProvider = new AleoKeyProvider(); + * keyProvider.useCache = true; + * + * // Create a new ProgramManager with the key that will be used to bond credits + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); + * programManager.setAccount(new Account("YourPrivateKey")); + * + * // Create the bond validator transaction object for later use. + * const tx = await programManager.buildBondValidatorTransaction("aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "aleo1feya8sjy9k2zflvl2dx39pdsq5tju28elnp2ektnn588uu9ghv8s84msv9", 2000000); + * console.log(tx); + * + * // The transaction can later be submitted to the network using the network client. + * const tx_id = await programManager.networkClient.submitTransaction(tx); + * + * @returns string + * @param {string} validator_address Address of the validator to bond to, if this address is the same as the staker (i.e. the + * executor of this function), it will attempt to bond the credits as a validator. Bonding as a validator currently + * requires a minimum of 10,000,000 credits to bond (subject to change). If the address is specified is an existing + * validator and is different from the address of the executor of this function, it will bond the credits to that + * validator's staking committee as a delegator. A minimum of 10 credits is required to bond as a delegator. + * @param {string} withdrawal_address Address to withdraw the staked credits to when unbond_public is called. + * @param {number} amount The amount of credits to bond + * @param {number} commission The commission rate for the validator (must be between 0 and 100 - an error will be thrown if it is not) + * @param {Partial} options - Override default execution options. + */ + async buildBondValidatorTransaction(validator_address: string, withdrawal_address: string, amount: number, commission: number, options: Partial = {}) { + const scaledAmount = Math.trunc(amount * 1000000); + + const adjustedCommission = Math.trunc(commission) + + const { + programName = "credits.aleo", + functionName = "bond_validator", + fee = options.fee || 0.86, + privateFee = false, + inputs = [validator_address, withdrawal_address, `${scaledAmount.toString()}u64`, `${adjustedCommission.toString()}u8`], + keySearchParams = new AleoKeyProviderParams({ + proverUri: CREDITS_PROGRAM_KEYS.bond_validator.prover, + verifierUri: CREDITS_PROGRAM_KEYS.bond_validator.verifier, + cacheKey: "credits.aleo/bond_validator" + }), + program = this.creditsProgram(), + ...additionalOptions + } = options; + + const executeOptions: ExecuteOptions = { + programName, + functionName, + fee, + privateFee, + inputs, + keySearchParams, + ...additionalOptions + }; + + return await this.buildExecutionTransaction(executeOptions); + } + + /** + * Build transaction to bond a validator. + * + * @example + * // Create a keyProvider to handle key management + * const keyProvider = new AleoKeyProvider(); + * keyProvider.useCache = true; + * + * // Create a new ProgramManager with the key that will be used to bond credits + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); + * programManager.setAccount(new Account("YourPrivateKey")); + * + * // Create the bonding transaction + * const tx_id = await programManager.bondValidator("aleo1rhgdu77hgyqd3xjj8ucu3jj9r2krwz6mnzyd80gncr5fxcwlh5rsvzp9px", "aleo1feya8sjy9k2zflvl2dx39pdsq5tju28elnp2ektnn588uu9ghv8s84msv9", 2000000); + * + * @returns string + * @param {string} validator_address Address of the validator to bond to, if this address is the same as the staker (i.e. the + * executor of this function), it will attempt to bond the credits as a validator. Bonding as a validator currently + * requires a minimum of 10,000,000 credits to bond (subject to change). If the address is specified is an existing + * validator and is different from the address of the executor of this function, it will bond the credits to that + * validator's staking committee as a delegator. A minimum of 10 credits is required to bond as a delegator. + * @param {string} withdrawal_address Address to withdraw the staked credits to when unbond_public is called. + * @param {number} amount The amount of credits to bond + * @param {number} commission The commission rate for the validator (must be between 0 and 100 - an error will be thrown if it is not) + * @param {Partial} options - Override default execution options. + */ + async bondValidator(validator_address: string, withdrawal_address: string, amount: number, commission: number, options: Partial = {}) { + const tx = await this.buildBondValidatorTransaction(validator_address, withdrawal_address, amount, commission, options); return await this.networkClient.submitTransaction(tx); } /** - * Build a transaction to unbond public credits in the Aleo network. + * Build a transaction to unbond public credits from a validator in the Aleo network. * + * @param {string} staker_address - The address of the staker who is unbonding the credits. * @param {number} amount - The amount of credits to unbond (scaled by 1,000,000). * @param {Partial} options - Override default execution options. * @returns {Promise} - A promise that resolves to the transaction or an error message. * * @example + * // Create a keyProvider to handle key management. + * const keyProvider = new AleoKeyProvider(); + * keyProvider.useCache = true; + * + * // Create a new ProgramManager with the key that will be used to unbond credits. * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); - * const transaction = await programManager.buildUnbondPublicTransaction(2000000); - * console.log(transaction); + * const tx = await programManager.buildUnbondPublicTransaction("aleo1jx8s4dvjepculny4wfrzwyhs3tlyv65r58ns3g6q2gm2esh7ps8sqy9s5j", 2000000); + * console.log(tx); + * + * // The transaction can be submitted later to the network using the network client. + * programManager.networkClient.submitTransaction(tx); */ - async buildUnbondPublicTransaction(amount: number, options: Partial = {}): Promise { + async buildUnbondPublicTransaction(staker_address: string, amount: number, options: Partial = {}): Promise { const scaledAmount = Math.trunc(amount * 1000000); const { @@ -863,7 +986,7 @@ class ProgramManager { functionName = "unbond_public", fee = options.fee || 1.3, privateFee = false, - inputs = [`${scaledAmount.toString()}u64`], + inputs = [staker_address, `${scaledAmount.toString()}u64`], keySearchParams = new AleoKeyProviderParams({ proverUri: CREDITS_PROGRAM_KEYS.unbond_public.prover, verifierUri: CREDITS_PROGRAM_KEYS.unbond_public.verifier, @@ -887,7 +1010,7 @@ class ProgramManager { } /** - * Unbond a specified amount of staked credits to be used later + * Unbond a specified amount of staked credits. * * @example * // Create a keyProvider to handle key management @@ -898,41 +1021,53 @@ class ProgramManager { * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); * programManager.setAccount(new Account("YourPrivateKey")); * - * // Create the bonding transaction - * const tx_id = await programManager.unbondPublic(10); + * // Create the bonding transaction and send it to the network + * const tx_id = await programManager.unbondPublic("aleo1jx8s4dvjepculny4wfrzwyhs3tlyv65r58ns3g6q2gm2esh7ps8sqy9s5j", 10); * * @returns string + * @param {string} staker_address Address of the staker who is unbonding the credits * @param {number} amount Amount of credits to unbond. If the address of the executor of this function is an * existing validator, it will subtract this amount of credits from the validator's staked credits. If there are * less than 1,000,000 credits staked pool after the unbond, the validator will be removed from the validator set. * If the address of the executor of this function is not a validator and has credits bonded as a delegator, it will * subtract this amount of credits from the delegator's staked credits. If there are less than 10 credits bonded * after the unbond operation, the delegator will be removed from the validator's staking pool. - * @param {Options} options Options for the execution + * @param {ExecuteOptions} options Options for the execution */ - async unbondPublic(amount: number, options: Partial = {}): Promise { - const tx = await this.buildUnbondPublicTransaction(amount, options); + async unbondPublic(staker_address: string, amount: number, options: Partial = {}): Promise { + const tx = await this.buildUnbondPublicTransaction(staker_address, amount, options); return await this.networkClient.submitTransaction(tx); } /** * Build a transaction to claim unbonded public credits in the Aleo network. * + * @param {string} staker_address - The address of the staker who is claiming the credits. * @param {Partial} options - Override default execution options. * @returns {Promise} - A promise that resolves to the transaction or an error message. * * @example + * // Create a keyProvider to handle key management + * const keyProvider = new AleoKeyProvider(); + * keyProvider.useCache = true; + * + * // Create a new ProgramManager with the key that will be used to claim unbonded credits. * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); - * const transaction = await programManager.buildClaimUnbondPublicTransaction(); - * console.log(transaction); + * + * // Create the claim unbonded transaction object for later use. + * const tx = await programManager.buildClaimUnbondPublicTransaction("aleo1jx8s4dvjepculny4wfrzwyhs3tlyv65r58ns3g6q2gm2esh7ps8sqy9s5j"); + * console.log(tx); + * + * // The transaction can be submitted later to the network using the network client. + * programManager.networkClient.submitTransaction(tx); */ - async buildClaimUnbondPublicTransaction(options: Partial = {}): Promise { + async buildClaimUnbondPublicTransaction(staker_address: string, options: Partial = {}): Promise { const { programName = "credits.aleo", functionName = "claim_unbond_public", fee = options.fee || 2, privateFee = false, - inputs = [], + inputs = [staker_address], keySearchParams = new AleoKeyProviderParams({ proverUri: CREDITS_PROGRAM_KEYS.claim_unbond_public.prover, verifierUri: CREDITS_PROGRAM_KEYS.claim_unbond_public.verifier, @@ -969,23 +1104,48 @@ class ProgramManager { * programManager.setAccount(new Account("YourPrivateKey")); * * // Create the bonding transaction - * const tx_id = await programManager.claimUnbondPublic(); + * const tx_id = await programManager.claimUnbondPublic("aleo1jx8s4dvjepculny4wfrzwyhs3tlyv65r58ns3g6q2gm2esh7ps8sqy9s5j"); * + * @param {string} staker_address Address of the staker who is claiming the credits + * @param {ExecuteOptions} options * @returns string - * @param {Options} options */ - async claimUnbondPublic(options: Partial = {}): Promise { - const tx = await this.buildClaimUnbondPublicTransaction(options); + async claimUnbondPublic(staker_address: string, options: Partial = {}): Promise { + const tx = await this.buildClaimUnbondPublicTransaction(staker_address, options); return await this.networkClient.submitTransaction(tx); } /** - * Set Validator State + * Build a set_validator_state transaction for later usage. + * + * This function allows a validator to set their state to be either opened or closed to new stakers. + * When the validator is open to new stakers, any staker (including the validator) can bond or unbond from the validator. + * When the validator is closed to new stakers, existing stakers can still bond or unbond from the validator, but new stakers cannot bond. + * + * This function serves two primary purposes: + * 1. Allow a validator to leave the committee, by closing themselves to stakers and then unbonding all of their stakers. + * 2. Allow a validator to maintain their % of stake, by closing themselves to allowing more stakers to bond to them. + * + * @example + * // Create a keyProvider to handle key management + * const keyProvider = new AleoKeyProvider(); + * keyProvider.useCache = true; + * + * // Create a new ProgramManager with the key that will be used to bond credits + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); + * programManager.setAccount(new Account("ValidatorPrivateKey")); + * + * // Create the bonding transaction + * const tx = await programManager.buildSetValidatorStateTransaction(true); + * + * // The transaction can be submitted later to the network using the network client. + * programManager.networkClient.submitTransaction(tx); + * * @returns string * @param {boolean} validator_state * @param {Partial} options - Override default execution options */ - async setValidatorState(validator_state: boolean, options: Partial = {}) { + async buildSetValidatorStateTransaction(validator_state: boolean, options: Partial = {}) { const { programName = "credits.aleo", functionName = "set_validator_state", @@ -1014,41 +1174,37 @@ class ProgramManager { } /** - * Unbond Delegator As Validator - * @returns {Promise} A promise that resolves to the transaction ID or an error message. - * @param {string} address - The address of the delegator. - * @param {Partial} options - Override default execution options. + * Submit a set_validator_state transaction to the Aleo Network. + * + * This function allows a validator to set their state to be either opened or closed to new stakers. + * When the validator is open to new stakers, any staker (including the validator) can bond or unbond from the validator. + * When the validator is closed to new stakers, existing stakers can still bond or unbond from the validator, but new stakers cannot bond. + * + * This function serves two primary purposes: + * 1. Allow a validator to leave the committee, by closing themselves to stakers and then unbonding all of their stakers. + * 2. Allow a validator to maintain their % of stake, by closing themselves to allowing more stakers to bond to them. + * + * @example + * // Create a keyProvider to handle key management + * const keyProvider = new AleoKeyProvider(); + * keyProvider.useCache = true; + * + * // Create a new ProgramManager with the key that will be used to bond credits + * const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", keyProvider, undefined); + * programManager.setAccount(new Account("ValidatorPrivateKey")); + * + * // Create the bonding transaction + * const tx_id = await programManager.setValidatorState(true); + * + * @returns string + * @param {boolean} validator_state + * @param {Partial} options - Override default execution options */ - async unbondDelegatorAsValidator(address: string, options: Partial = {}) { - const { - programName = "credits.aleo", - functionName = "unbond_delegator_as_validator", - fee = 1, - privateFee = false, - inputs = [address], - keySearchParams = new AleoKeyProviderParams({ - proverUri: CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.prover, - verifierUri: CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.verifier, - cacheKey: "credits.aleo/unbond_delegator_as_validator" - }), - ...additionalOptions - } = options; - - const executeOptions: ExecuteOptions = { - programName, - functionName, - fee, - privateFee, - inputs, - keySearchParams, - ...additionalOptions - }; - - return await this.execute(executeOptions); + async setValidatorState(validator_state: boolean, options: Partial = {}) { + const tx = await this.buildSetValidatorStateTransaction(validator_state, options); + return this.networkClient.submitTransaction(tx); } - - /** * Verify a proof of execution from an offline execution * @@ -1057,7 +1213,7 @@ class ProgramManager { */ verifyExecution(executionResponse: ExecutionResponse): boolean { try { - const execution = executionResponse.getExecution(); + const execution = executionResponse.getExecution(); const function_id = executionResponse.getFunctionId(); const program = executionResponse.getProgram(); const verifyingKey = executionResponse.getVerifyingKey(); diff --git a/sdk/src/record-provider.ts b/sdk/src/record-provider.ts index cc508e851..de44a859a 100644 --- a/sdk/src/record-provider.ts +++ b/sdk/src/record-provider.ts @@ -1,4 +1,4 @@ -import { logAndThrow, RecordPlaintext } from "./index"; +import { logAndThrow, RecordPlaintext } from "./browser"; import { Account } from "./account"; import { AleoNetworkClient } from "./network-client"; diff --git a/sdk/src/worker.ts b/sdk/src/worker.ts index 8611538c7..23d8fce2d 100644 --- a/sdk/src/worker.ts +++ b/sdk/src/worker.ts @@ -1,4 +1,4 @@ -import {initThreadPool, ProgramManager, PrivateKey, verifyFunctionExecution, FunctionKeyPair} from "./index"; +import {initThreadPool, ProgramManager, PrivateKey, verifyFunctionExecution, FunctionKeyPair} from "./browser"; import { AleoKeyProvider, AleoKeyProviderParams} from "./function-key-provider"; import { expose } from "comlink"; diff --git a/sdk/tests/account.test.ts b/sdk/tests/account.test.ts index 3d3ae9bb3..a0474758a 100644 --- a/sdk/tests/account.test.ts +++ b/sdk/tests/account.test.ts @@ -1,67 +1,71 @@ -import {jest} from '@jest/globals' -import { Account, Address, PrivateKey, RecordCiphertext, ViewKey } from '../src/node' -import { seed, message, beaconPrivateKeyString, beaconViewKeyString, beaconAddressString, recordCiphertextString, foreignCiphertextString, recordPlaintextString } from './data/account-data'; - +import sinon from "sinon"; +import { expect } from "chai"; +import { Account, Address, PrivateKey, RecordCiphertext, ViewKey } from "../src/node"; +import { seed, message, beaconPrivateKeyString, beaconViewKeyString, beaconAddressString, recordCiphertextString, foreignCiphertextString, recordPlaintextString } from "./data/account-data"; describe('Account', () => { + afterEach(() => { + sinon.restore(); + }); + describe('constructors', () => { - test('creates a new account if no parameters are passed', () => { + it('creates a new account if no parameters are passed', () => { // Generate account from rng const account = new Account(); // Test object member type consistency - expect(account._privateKey).toBeInstanceOf(PrivateKey); - expect(account._viewKey).toBeInstanceOf(ViewKey); - expect(account._address).toBeInstanceOf(Address); + expect(account._privateKey).instanceof(PrivateKey); + expect(account._viewKey).instanceof(ViewKey); + expect(account._address).instanceof(Address); // Test convenience method type consistency - expect(account.privateKey()).toBeInstanceOf(PrivateKey); - expect(account.viewKey()).toBeInstanceOf(ViewKey); - expect(account.address()).toBeInstanceOf(Address); + expect(account.privateKey()).instanceof(PrivateKey); + expect(account.viewKey()).instanceof(ViewKey); + expect(account.address()).instanceof(Address); }); - test('creates a new from seed', () => { + it('creates a new from seed', () => { // Generate account from a seed const account = new Account({seed: seed}); // Test object member type consistency - expect(account._privateKey).toBeInstanceOf(PrivateKey); - expect(account._viewKey).toBeInstanceOf(ViewKey); - expect(account._address).toBeInstanceOf(Address); + expect(account._privateKey).instanceof(PrivateKey); + expect(account._viewKey).instanceof(ViewKey); + expect(account._address).instanceof(Address); // Test convenience method type consistency - expect(account.privateKey()).toBeInstanceOf(PrivateKey); - expect(account.viewKey()).toBeInstanceOf(ViewKey); - expect(account.address()).toBeInstanceOf(Address); + expect(account.privateKey()).instanceof(PrivateKey); + expect(account.viewKey()).instanceof(ViewKey); + expect(account.address()).instanceof(Address); // Test that expected output is generated - expect(account.privateKey().to_string()).toEqual(beaconPrivateKeyString); - expect(account.viewKey().to_string()).toEqual(beaconViewKeyString); - expect(account.address().to_string()).toEqual(beaconAddressString); - expect(account.toString()).toEqual(beaconAddressString); + expect(account.privateKey().to_string()).equal(beaconPrivateKeyString); + expect(account.viewKey().to_string()).equal(beaconViewKeyString); + expect(account.address().to_string()).equal(beaconAddressString); + expect(account.toString()).equal(beaconAddressString); }); - test('throws an error if parameters are invalid', () => { - expect(() => new Account({privateKey: 'invalidPrivateKey'})).toThrow(); + it('throws an error if parameters are invalid', () => { + expect(() => new Account({privateKey: 'invalidPrivateKey'})).throw(); }); - test('creates an account object from a valid private key string', () => { + it('creates an account object from a valid private key string', () => { // Generate account from valid private key string const account = new Account( {privateKey: beaconPrivateKeyString}); // Test object member type consistency - expect(account._privateKey).toBeInstanceOf(PrivateKey); - expect(account._viewKey).toBeInstanceOf(ViewKey); - expect(account._address).toBeInstanceOf(Address); + expect(account._privateKey).instanceof(PrivateKey); + expect(account._viewKey).instanceof(ViewKey); + expect(account._address).instanceof(Address); // Test convenience method type consistency - expect(account.privateKey()).toBeInstanceOf(PrivateKey); - expect(account.viewKey()).toBeInstanceOf(ViewKey); - expect(account.address()).toBeInstanceOf(Address); + expect(account.privateKey()).instanceof(PrivateKey); + expect(account.viewKey()).instanceof(ViewKey); + expect(account.address()).instanceof(Address); // Test that expected output is generated - expect(account.privateKey().to_string()).toEqual(beaconPrivateKeyString); - expect(account.viewKey().to_string()).toEqual(beaconViewKeyString); - expect(account.address().to_string()).toEqual(beaconAddressString); - expect(account.toString()).toEqual(beaconAddressString); + expect(account.privateKey().to_string()).equal(beaconPrivateKeyString); + expect(account.viewKey().to_string()).equal(beaconViewKeyString); + expect(account.address().to_string()).equal(beaconAddressString); + expect(account.toString()).equal(beaconAddressString); }); - test('can encrypt an account and decrypt to the same account', () => { + it('can encrypt an account and decrypt to the same account', () => { const newAccount = new Account(); const privateKeyCiphertext = newAccount.encryptAccount("mypassword"); const privateKeyCiphertextString = privateKeyCiphertext.toString(); @@ -72,14 +76,14 @@ describe('Account', () => { for (const account of [accountFromString, accountFromObject]) { // Test that expected output is generated - expect(account.privateKey().to_string()).toEqual(newAccount.privateKey().to_string()); - expect(account.viewKey().to_string()).toEqual(newAccount.viewKey().to_string()); - expect(account.address().to_string()).toEqual(newAccount.toString()); - expect(account.toString()).toEqual(newAccount.toString()); + expect(account.privateKey().to_string()).equal(newAccount.privateKey().to_string()); + expect(account.viewKey().to_string()).equal(newAccount.viewKey().to_string()); + expect(account.address().to_string()).equal(newAccount.toString()); + expect(account.toString()).equal(newAccount.toString()); } }); - test('fails to create an account from a bad password', () => { + it('fails to create an account from a bad password', () => { const newAccount = new Account(); const privateKeyCiphertext = newAccount.encryptAccount("mypassword"); const privateKeyCiphertextString = privateKeyCiphertext.toString(); @@ -89,28 +93,30 @@ describe('Account', () => { Account.fromCiphertext(privateKeyCiphertext, "badpassword"); // Should not get here - expect(true).toBe(false); + expect(true).equal(false); } catch (err) { // The account should fail to decrypt - expect(true).toBe(true); + expect(true).equal(true); } }); }); describe('View Key Record Decryption', () => { - test('decrypts a record in ciphertext form', () => { + it('decrypts a record in ciphertext form', () => { const account = new Account({privateKey: "APrivateKey1zkpJkyYRGYtkeHDaFfwsKtUJzia7csiWhfBWPXWhXJzy9Ls"}); - const decrypt_spy = jest.spyOn(account._viewKey, 'decrypt'); + + const decrypt_spy = sinon.spy(account._viewKey, 'decrypt'); + // Decrypt record the private key owns const decryptedRecord = account.decryptRecord(recordCiphertextString); // Ensure the underlying wasm is being called with the right data - expect(decrypt_spy).toHaveBeenCalledWith(recordCiphertextString); + expect(decrypt_spy.calledWith(recordCiphertextString)).equal(true); // Ensure it decrypts to the correct data - expect(decryptedRecord).toBe(recordPlaintextString); + expect(decryptedRecord).equal(recordPlaintextString); }); - test('doesnt decrypt records from other accounts nor identifies them as the record owner', () => { + it('doesnt decrypt records from other accounts nor identifies them as the record owner', () => { function tryDecrypt() { try { return account.decryptRecord(foreignCiphertextString); @@ -119,62 +125,63 @@ describe('Account', () => { } } const account = new Account({privateKey: "APrivateKey1zkpJkyYRGYtkeHDaFfwsKtUJzia7csiWhfBWPXWhXJzy9Ls"}); - const decrypt_spy = jest.spyOn(account._viewKey, 'decrypt'); + const decrypt_spy = sinon.spy(account._viewKey, 'decrypt'); const recordCiphertext = RecordCiphertext.fromString(foreignCiphertextString); // Ensure a foreign record decryption attempt throws - expect(tryDecrypt).toThrow(); + expect(tryDecrypt).throw(); // Ensure the underlying wasm is being called with the right data - expect(decrypt_spy).toHaveBeenCalledWith(foreignCiphertextString); + expect(decrypt_spy.calledWith(foreignCiphertextString)).equal(true); // Ensure the account doesn't identify the record ciphertext as its own from both string and object forms - expect(account.ownsRecordCiphertext(foreignCiphertextString)).toBe(false); - expect(account.ownsRecordCiphertext(recordCiphertext)).toBe(false); + expect(account.ownsRecordCiphertext(foreignCiphertextString)).equal(false); + expect(account.ownsRecordCiphertext(recordCiphertext)).equal(false); }); - test('decrypts an array of records in ciphertext form', () => { + it('decrypts an array of records in ciphertext form', () => { const account = new Account({privateKey: "APrivateKey1zkpJkyYRGYtkeHDaFfwsKtUJzia7csiWhfBWPXWhXJzy9Ls"}); const ciphertexts = [recordCiphertextString, recordCiphertextString]; - const decrypt_spy = jest.spyOn(account._viewKey, 'decrypt'); + const decrypt_spy = sinon.spy(account._viewKey, 'decrypt'); const decryptedRecords = account.decryptRecords(ciphertexts); // Ensure the right number of calls were called and right inputs were passed - expect(decrypt_spy).toHaveBeenCalledTimes(2); - expect(decrypt_spy).toHaveBeenCalledWith(ciphertexts[0]); - expect(decrypt_spy).toHaveBeenCalledWith(ciphertexts[1]); + expect(decrypt_spy.callCount).equal(2); + expect(decrypt_spy.calledWith(ciphertexts[0])).equal(true); + expect(decrypt_spy.calledWith(ciphertexts[1])).equal(true); // Ensure the records were decrypted to the correct data - expect(decryptedRecords).toEqual([recordPlaintextString, recordPlaintextString]); + expect(decryptedRecords).deep.equal([recordPlaintextString, recordPlaintextString]); }); }); describe('Sign and Verify', () => { - test("verifies the signature on a message", () => { + it("verifies the signature on a message", () => { const account = new Account(); const other_message = Uint8Array.from([104, 101, 108, 108, 111, 32, 120, 121, 114, 108, 99]); - const sign_spy = jest.spyOn(account._privateKey, 'sign'); + const sign_spy = sinon.spy(account._privateKey, 'sign'); const signature = account.sign(message); // Ensure the signature was called with the right message - expect(sign_spy).lastCalledWith(message); + expect(sign_spy.calledWith(message)).equal(true); const other_signature = account.sign(other_message); // Ensure the signature was called with the right message and the right number of times - expect(sign_spy).lastCalledWith(other_message); - expect(sign_spy).toHaveBeenCalledTimes(2); - const verify_spy = jest.spyOn(account._address, 'verify'); + expect(sign_spy.calledWith(other_message)).equal(true); + expect(sign_spy.callCount).equal(2); + + const verify_spy = sinon.spy(account._address, 'verify'); const isValid = account.verify(message, signature); - expect(verify_spy).lastCalledWith(message, signature); + expect(verify_spy.calledWith(message, signature)).equal(true); const isSigValidForWrongMessage = account.verify(other_message, signature); - expect(verify_spy).lastCalledWith(other_message, signature); + expect(verify_spy.calledWith(other_message, signature)).equal(true); const isSigValidForMultipleMessages = account.verify(other_message, other_signature); - expect(verify_spy).lastCalledWith(other_message, other_signature); - expect(verify_spy).toHaveBeenCalledTimes(3); + expect(verify_spy.calledWith(other_message, other_signature)).equal(true); + expect(verify_spy.callCount).equal(3); // Ensure the signature was valid - expect(isValid).toBe(true); + expect(isValid).equal(true); // Ensure the second message was valid - expect(isSigValidForMultipleMessages).toBe(true); + expect(isSigValidForMultipleMessages).equal(true); // Ensure a signature & message mismatch is invalid - expect(isSigValidForWrongMessage).toBe(false); + expect(isSigValidForWrongMessage).equal(false); }); }); }); diff --git a/sdk/tests/key-provider.test.ts b/sdk/tests/key-provider.test.ts index 0436f0e5b..87bd24023 100644 --- a/sdk/tests/key-provider.test.ts +++ b/sdk/tests/key-provider.test.ts @@ -1,6 +1,5 @@ +import { expect } from "chai"; import {AleoKeyProvider, CachedKeyPair, CREDITS_PROGRAM_KEYS, FunctionKeyPair, OfflineKeyProvider, ProvingKey, VerifyingKey} from "../src/node"; -import {jest} from '@jest/globals' -jest.retryTimes(1); describe('KeyProvider', () => { let keyProvider: AleoKeyProvider; @@ -16,63 +15,55 @@ describe('KeyProvider', () => { try { const keys = await keyProvider.transferKeys("invalid"); // This should never be reached - expect(true).toBe(false); + expect(true).equal(false); } catch (e) { - expect(e).toBeInstanceOf(Error); + expect(e).instanceof(Error); } - }, 60000); + }); it('Should use cache when set and not use it when not', async () => { // Ensure the cache properly downloads and stores keys keyProvider.useCache(true); - const [provingKey, verifyingKey] = await keyProvider.transferKeys("private"); - expect(keyProvider.cache.size).toBe(1); - expect(provingKey).toBeInstanceOf(ProvingKey); - expect(verifyingKey).toBeInstanceOf(VerifyingKey); + + const [provingKey, verifyingKey] = await keyProvider.feePublicKeys(); + expect(keyProvider.cache.size).equal(1); + expect(provingKey).instanceof(ProvingKey); + expect(verifyingKey).instanceof(VerifyingKey); + const transferCacheKey = keyProvider.cache.keys().next().value; const [cachedProvingKey, cachedVerifyingKey] = keyProvider.cache.get(transferCacheKey); - expect(cachedProvingKey).toBeInstanceOf(Uint8Array); - expect(cachedVerifyingKey).toBeInstanceOf(Uint8Array); + expect(cachedProvingKey).instanceof(Uint8Array); + expect(cachedVerifyingKey).instanceof(Uint8Array); // Ensure the functionKeys method to get the keys and that the cache is used to do so - const [fetchedProvingKey, fetchedVerifyingKey] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_private.prover, CREDITS_PROGRAM_KEYS.transfer_private.verifier) - expect(keyProvider.cache.size).toBe(2); - expect(fetchedProvingKey).toBeInstanceOf(ProvingKey); - expect(fetchedVerifyingKey).toBeInstanceOf(VerifyingKey); + const [fetchedProvingKey, fetchedVerifyingKey] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.fee_public) + expect(keyProvider.cache.size).equal(1); + expect(fetchedProvingKey).instanceof(ProvingKey); + expect(fetchedVerifyingKey).instanceof(VerifyingKey); // Clear the cache and turn it off to ensure the keys are re-downloaded and the cache is not used keyProvider.clearCache(); keyProvider.useCache(false); - const [redownloadedProvingKey, redownloadedVerifyingKey] = await keyProvider.transferKeys("private"); - expect(keyProvider.cache.size).toBe(0); - expect(redownloadedProvingKey).toBeInstanceOf(ProvingKey); - expect(redownloadedVerifyingKey).toBeInstanceOf(VerifyingKey); - }, 200000); - - it('Should fetch verifying keys stored as text', async () => { - const provider = new AleoKeyProvider(); - provider.useCache(true); - const [provingKey, verifyingKey] = await provider.fetchKeys("https://pub-65a47b199b944d48a057ca6603a415a2.r2.dev/tree_mnist_2.prover.30e265c", - "https://pub-65a47b199b944d48a057ca6603a415a2.r2.dev/tree_mnist_2.verifier.17db860", "tree_mnist_2/main"); - expect(provingKey).toBeInstanceOf(ProvingKey); - expect(verifyingKey).toBeInstanceOf(VerifyingKey); - }, 120000); + const [redownloadedProvingKey, redownloadedVerifyingKey] = await keyProvider.feePublicKeys(); + expect(keyProvider.cache.size).equal(0); + expect(redownloadedProvingKey).instanceof(ProvingKey); + expect(redownloadedVerifyingKey).instanceof(VerifyingKey); + }); it.skip("Should not fetch offline keys that haven't already been stored", async () => { // Download the credits.aleo function keys - const [bondPublicProver, bondPublicVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.bond_public.prover, CREDITS_PROGRAM_KEYS.bond_public.verifier, CREDITS_PROGRAM_KEYS.bond_public.locator); - const [claimUnbondPublicProver, claimUnbondVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.claim_unbond_public.prover, CREDITS_PROGRAM_KEYS.claim_unbond_public.verifier, CREDITS_PROGRAM_KEYS.claim_unbond_public.locator); - const [feePrivateProver, feePrivateVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.fee_private.prover, CREDITS_PROGRAM_KEYS.fee_private.verifier, CREDITS_PROGRAM_KEYS.fee_private.locator); - const [feePublicProver, feePublicVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.fee_public.prover, CREDITS_PROGRAM_KEYS.fee_public.verifier, CREDITS_PROGRAM_KEYS.fee_public.locator); - const [joinProver, joinVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.join.prover, CREDITS_PROGRAM_KEYS.join.verifier, CREDITS_PROGRAM_KEYS.join.locator); - const [setValidatorStateProver, setValidatorStateVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.set_validator_state.prover, CREDITS_PROGRAM_KEYS.set_validator_state.verifier, CREDITS_PROGRAM_KEYS.set_validator_state.locator); - const [splitProver, splitVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.split.prover, CREDITS_PROGRAM_KEYS.split.verifier, CREDITS_PROGRAM_KEYS.split.locator); - const [transferPrivateProver, transferPrivateVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_private.prover, CREDITS_PROGRAM_KEYS.transfer_private.verifier, CREDITS_PROGRAM_KEYS.transfer_private.locator); - const [transferPrivateToPublicProver, transferPrivateToPublicVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_private_to_public.prover, CREDITS_PROGRAM_KEYS.transfer_private_to_public.verifier, CREDITS_PROGRAM_KEYS.transfer_private_to_public.locator); - const [transferPublicProver, transferPublicVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_public.prover, CREDITS_PROGRAM_KEYS.transfer_public.verifier, CREDITS_PROGRAM_KEYS.transfer_public.locator); - const [transferPublicToPrivateProver, transferPublicToPrivateVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.transfer_public_to_private.prover, CREDITS_PROGRAM_KEYS.transfer_public_to_private.verifier, CREDITS_PROGRAM_KEYS.transfer_public_to_private.locator); - const [unbondDelegatorAsValidatorProver, unbondDelegatorAsValidatorVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.prover, CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.verifier, CREDITS_PROGRAM_KEYS.unbond_delegator_as_validator.locator); - const [unbondPublicProver, unbondPublicVerifier] = await keyProvider.fetchKeys(CREDITS_PROGRAM_KEYS.unbond_public.prover, CREDITS_PROGRAM_KEYS.unbond_public.verifier, CREDITS_PROGRAM_KEYS.unbond_public.locator); + const [bondPublicProver, bondPublicVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.bond_public); + const [claimUnbondPublicProver, claimUnbondVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.claim_unbond_public); + const [feePrivateProver, feePrivateVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.fee_private); + const [feePublicProver, feePublicVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.fee_public); + const [joinProver, joinVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.join); + const [setValidatorStateProver, setValidatorStateVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.set_validator_state); + const [splitProver, splitVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.split); + const [transferPrivateProver, transferPrivateVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_private); + const [transferPrivateToPublicProver, transferPrivateToPublicVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_private_to_public); + const [transferPublicProver, transferPublicVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_public); + const [transferPublicToPrivateProver, transferPublicToPrivateVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.transfer_public_to_private); + const [unbondPublicProver, unbondPublicVerifier] = await keyProvider.fetchCreditsKeys(CREDITS_PROGRAM_KEYS.unbond_public); // Ensure the insertion methods work as expected without throwing an exception offlineKeyProvider.insertBondPublicKeys(bondPublicProver); @@ -86,7 +77,6 @@ describe('KeyProvider', () => { offlineKeyProvider.insertTransferPrivateToPublicKeys(transferPrivateToPublicProver); offlineKeyProvider.insertTransferPublicKeys(transferPublicProver); offlineKeyProvider.insertTransferPublicToPrivateKeys(transferPublicToPrivateProver); - offlineKeyProvider.insertUnbondDelegatorAsValidatorKeys(unbondDelegatorAsValidatorProver); offlineKeyProvider.insertUnbondPublicKeys(unbondPublicProver); // Ensure the offline key provider methods for credits.aleo return the correct keys @@ -103,53 +93,52 @@ describe('KeyProvider', () => { const [unbondPublicProverLocal, unbondPublicVerifierLocal] = await offlineKeyProvider.unBondPublicKeys(); // Ensure the checksum of the recovered keys match those of the original keys - expect(bondPublicProver.checksum()).toEqual(bondPublicProverLocal.checksum()); - expect(bondPublicVerifier.checksum()).toEqual(bondPublicVerifierLocal.checksum()); - expect(claimUnbondPublicProver.checksum()).toEqual(claimUnbondPublicProverLocal.checksum()); - expect(claimUnbondVerifier.checksum()).toEqual(claimUnbondVerifierLocal.checksum()); - expect(feePrivateProver.checksum()).toEqual(feePrivateProverLocal.checksum()); - expect(feePrivateVerifier.checksum()).toEqual(feePrivateVerifierLocal.checksum()); - expect(feePublicProver.checksum()).toEqual(feePublicProverLocal.checksum()); - expect(feePublicVerifier.checksum()).toEqual(feePublicVerifierLocal.checksum()); - expect(joinProver.checksum()).toEqual(joinProverLocal.checksum()); - expect(joinVerifier.checksum()).toEqual(joinVerifierLocal.checksum()); - expect(splitProver.checksum()).toEqual(splitProverLocal.checksum()); - expect(splitVerifier.checksum()).toEqual(splitVerifierLocal.checksum()); - expect(transferPrivateProver.checksum()).toEqual(transferPrivateProverLocal.checksum()); - expect(transferPrivateVerifier.checksum()).toEqual(transferPrivateVerifierLocal.checksum()); - expect(transferPrivateToPublicProver.checksum()).toEqual(transferPrivateToPublicProverLocal.checksum()); - expect(transferPrivateToPublicVerifier.checksum()).toEqual(transferPrivateToPublicVerifierLocal.checksum()); - expect(transferPublicProver.checksum()).toEqual(transferPublicProverLocal.checksum()); - expect(transferPublicVerifier.checksum()).toEqual(transferPublicVerifierLocal.checksum()); - expect(transferPublicToPrivateProver.checksum()).toEqual(transferPublicToPrivateProverLocal.checksum()); - expect(transferPublicToPrivateVerifier.checksum()).toEqual(transferPublicToPrivateVerifierLocal.checksum()); - expect(unbondPublicProver.checksum()).toEqual(unbondPublicProverLocal.checksum()); - expect(unbondPublicVerifier.checksum()).toEqual(unbondPublicVerifierLocal.checksum()); + expect(bondPublicProver.checksum()).equal(bondPublicProverLocal.checksum()); + expect(bondPublicVerifier.checksum()).equal(bondPublicVerifierLocal.checksum()); + expect(claimUnbondPublicProver.checksum()).equal(claimUnbondPublicProverLocal.checksum()); + expect(claimUnbondVerifier.checksum()).equal(claimUnbondVerifierLocal.checksum()); + expect(feePrivateProver.checksum()).equal(feePrivateProverLocal.checksum()); + expect(feePrivateVerifier.checksum()).equal(feePrivateVerifierLocal.checksum()); + expect(feePublicProver.checksum()).equal(feePublicProverLocal.checksum()); + expect(feePublicVerifier.checksum()).equal(feePublicVerifierLocal.checksum()); + expect(joinProver.checksum()).equal(joinProverLocal.checksum()); + expect(joinVerifier.checksum()).equal(joinVerifierLocal.checksum()); + expect(splitProver.checksum()).equal(splitProverLocal.checksum()); + expect(splitVerifier.checksum()).equal(splitVerifierLocal.checksum()); + expect(transferPrivateProver.checksum()).equal(transferPrivateProverLocal.checksum()); + expect(transferPrivateVerifier.checksum()).equal(transferPrivateVerifierLocal.checksum()); + expect(transferPrivateToPublicProver.checksum()).equal(transferPrivateToPublicProverLocal.checksum()); + expect(transferPrivateToPublicVerifier.checksum()).equal(transferPrivateToPublicVerifierLocal.checksum()); + expect(transferPublicProver.checksum()).equal(transferPublicProverLocal.checksum()); + expect(transferPublicVerifier.checksum()).equal(transferPublicVerifierLocal.checksum()); + expect(transferPublicToPrivateProver.checksum()).equal(transferPublicToPrivateProverLocal.checksum()); + expect(transferPublicToPrivateVerifier.checksum()).equal(transferPublicToPrivateVerifierLocal.checksum()); + expect(unbondPublicProver.checksum()).equal(unbondPublicProverLocal.checksum()); + expect(unbondPublicVerifier.checksum()).equal(unbondPublicVerifierLocal.checksum()); // Ensure the recovered keys are of the correct type - expect(bondPublicProverLocal.isBondPublicProver()).toEqual(true); - expect(bondPublicVerifierLocal.isBondPublicVerifier()).toEqual(true); - expect(claimUnbondPublicProverLocal.isClaimUnbondPublicProver()).toEqual(true); - expect(claimUnbondVerifierLocal.isClaimUnbondPublicVerifier()).toEqual(true); - expect(feePrivateProverLocal.isFeePrivateProver()).toEqual(true); - expect(feePrivateVerifierLocal.isFeePrivateVerifier()).toEqual(true); - expect(feePublicProverLocal.isFeePublicProver()).toEqual(true); - expect(feePublicVerifierLocal.isFeePublicVerifier()).toEqual(true); - expect(joinProverLocal.isJoinProver()).toEqual(true); - expect(joinVerifierLocal.isJoinVerifier()).toEqual(true); - expect(splitProverLocal.isSplitProver()).toEqual(true); - expect(splitVerifierLocal.isSplitVerifier()).toEqual(true); - expect(transferPrivateProverLocal.isTransferPrivateProver()).toEqual(true); - expect(transferPrivateVerifierLocal.isTransferPrivateVerifier()).toEqual(true); - expect(transferPrivateToPublicProverLocal.isTransferPrivateToPublicProver()).toEqual(true); - expect(transferPrivateToPublicVerifierLocal.isTransferPrivateToPublicVerifier()).toEqual(true); - expect(transferPublicProverLocal.isTransferPublicProver()).toEqual(true); - expect(transferPublicVerifierLocal.isTransferPublicVerifier()).toEqual(true); - expect(transferPublicToPrivateProverLocal.isTransferPublicToPrivateProver()).toEqual(true); - expect(transferPublicToPrivateVerifierLocal.isTransferPublicToPrivateVerifier()).toEqual(true); - expect(unbondPublicProverLocal.isUnbondPublicProver()).toEqual(true); - expect(unbondPublicVerifierLocal.isUnbondPublicVerifier()).toEqual(true); - - }, 380000); + expect(bondPublicProverLocal.isBondPublicProver()).equal(true); + expect(bondPublicVerifierLocal.isBondPublicVerifier()).equal(true); + expect(claimUnbondPublicProverLocal.isClaimUnbondPublicProver()).equal(true); + expect(claimUnbondVerifierLocal.isClaimUnbondPublicVerifier()).equal(true); + expect(feePrivateProverLocal.isFeePrivateProver()).equal(true); + expect(feePrivateVerifierLocal.isFeePrivateVerifier()).equal(true); + expect(feePublicProverLocal.isFeePublicProver()).equal(true); + expect(feePublicVerifierLocal.isFeePublicVerifier()).equal(true); + expect(joinProverLocal.isJoinProver()).equal(true); + expect(joinVerifierLocal.isJoinVerifier()).equal(true); + expect(splitProverLocal.isSplitProver()).equal(true); + expect(splitVerifierLocal.isSplitVerifier()).equal(true); + expect(transferPrivateProverLocal.isTransferPrivateProver()).equal(true); + expect(transferPrivateVerifierLocal.isTransferPrivateVerifier()).equal(true); + expect(transferPrivateToPublicProverLocal.isTransferPrivateToPublicProver()).equal(true); + expect(transferPrivateToPublicVerifierLocal.isTransferPrivateToPublicVerifier()).equal(true); + expect(transferPublicProverLocal.isTransferPublicProver()).equal(true); + expect(transferPublicVerifierLocal.isTransferPublicVerifier()).equal(true); + expect(transferPublicToPrivateProverLocal.isTransferPublicToPrivateProver()).equal(true); + expect(transferPublicToPrivateVerifierLocal.isTransferPublicToPrivateVerifier()).equal(true); + expect(unbondPublicProverLocal.isUnbondPublicProver()).equal(true); + expect(unbondPublicVerifierLocal.isUnbondPublicVerifier()).equal(true); + }); }); }); diff --git a/sdk/tests/network-client.integration.ts b/sdk/tests/network-client.integration.ts index a81a8d4fd..1cacf3ad8 100644 --- a/sdk/tests/network-client.integration.ts +++ b/sdk/tests/network-client.integration.ts @@ -1,6 +1,6 @@ +import { expect } from "chai"; import {beaconAddressString, beaconPrivateKeyString} from "./data/account-data"; -import {Account, AleoNetworkClient} from "../src"; -jest.retryTimes(3); +import {Account, AleoNetworkClient} from "../src/browser"; describe('NodeConnection', () => { let localApiClient: AleoNetworkClient; @@ -17,65 +17,64 @@ describe('NodeConnection', () => { // Integration tests to be run with a local node (run with -s flag) it('should find records', async () => { const records = await localApiClient.findUnspentRecords(0, undefined, beaconPrivateKeyString, undefined, undefined, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(records instanceof Error)) { - expect(records.length).toBeGreaterThan(0); + expect(records.length).above(0); } - }, 60000); + }); it('should find records when a private key is pre-configured', async () => { const records = await remoteApiClientWithPrivateKey.findUnspentRecords(0, undefined, undefined, undefined, 100, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(records instanceof Error)) { - expect(records.length).toBeGreaterThan(0); + expect(records.length).above(0); } - }, 60000); + }); it('should find records even when block height specified is higher than current block height', async () => { const records = await localApiClient.findUnspentRecords(0, 50000000000000, beaconPrivateKeyString, undefined, 100, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(records instanceof Error)) { - expect(records.length).toBeGreaterThan(0); + expect(records.length).above(0); } - }, 60000); + }); it('should find records with specified amounts', async () => { let records = await localApiClient.findUnspentRecords(0, 3, beaconPrivateKeyString, [100, 200], undefined, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(records instanceof Error)) { - expect(records.length).toBe(2); + expect(records.length).equal(2); } records = await localApiClient.findUnspentRecords(0, undefined, beaconPrivateKeyString, undefined, 1000, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(records instanceof Error)) { - expect(records.length).toBeGreaterThan(0); + expect(records.length).above(0); } - }, 60000); + }); it('should not find records with existing nonces', async () => { const nonces: string[] = []; const records = await localApiClient.findUnspentRecords(0, 3, beaconPrivateKeyString, [100, 200], undefined, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); // Find two records and store their nonces if (!(records instanceof Error)) { - expect(records.length).toBe(2); + expect(records.length).equal(2); records.forEach((record) => { nonces.push(record.nonce()); }); // Check the next records found do not have the same nonces const new_records = await localApiClient.findUnspentRecords(0, 3, beaconPrivateKeyString, [100, 200], undefined, nonces); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(new_records instanceof Error)) { - expect(new_records.length).toBe(2); + expect(new_records.length).equal(2); new_records.forEach((record) => { - expect(nonces.includes(record.nonce())).toBe(false); + expect(nonces.includes(record.nonce())).equal(false); }); } } - - }, 60000); + }); }); }); diff --git a/sdk/tests/network-client.test.ts b/sdk/tests/network-client.test.ts index 233e78212..27945615e 100644 --- a/sdk/tests/network-client.test.ts +++ b/sdk/tests/network-client.test.ts @@ -1,20 +1,39 @@ -import {jest} from '@jest/globals' +import sinon from "sinon"; +import { expect } from "chai"; import {Account, Block, AleoNetworkClient, TransactionModel} from "../src/node"; import {beaconAddressString, beaconPrivateKeyString} from "./data/account-data"; import {log} from "console"; -jest.retryTimes(3); + + +async function catchError(f: () => Promise): Promise { + try { + await f(); + return null; + + } catch (e) { + return e as Error; + } +} + + +async function expectThrows(f: () => Promise, message: string): Promise { + const error = await catchError(f); + expect(error).not.equal(null); + expect(error!.message).equal(message); +} + describe('NodeConnection', () => { let connection: AleoNetworkClient; - let windowFetchSpy: jest.Spied; + let windowFetchSpy: sinon.SinonSpy; beforeEach(() => { connection = new AleoNetworkClient("https://api.explorer.aleo.org/v1"); - windowFetchSpy = jest.spyOn(globalThis, 'fetch'); + windowFetchSpy = sinon.spy(globalThis, 'fetch'); }); afterEach(() => { - jest.restoreAllMocks(); + sinon.restore(); windowFetchSpy = null as any; }); @@ -22,76 +41,69 @@ describe('NodeConnection', () => { it('should set the account property', () => { const account = new Account(); connection.setAccount(account); - expect(connection.getAccount()).toEqual(account); - }, 60000); + expect(connection.getAccount()).equal(account); + }); }); describe('getBlock', () => { - it('should return a Block object', async () => { + it.skip('should return a Block object', async () => { const block = await connection.getBlock(1); - expect((block as Block).block_hash).toEqual("ab1hap8jlxaz66yt887gxlgxptkm2y0dy72x529mq6pg3ysy9tzwyqsphva9c"); - }, 60000); + expect((block as Block).block_hash).equal("ab1eddc3np4h6duwf5a7ht6u0x5maa08780l885j6xq0s7l88df0qrq3d72me"); + }); it('should throw an error if the request fails', async () => { - await expect(connection.getBlock(99999999)).rejects.toThrow('Error fetching block.'); - }, 60000); + await expectThrows( + () => connection.getBlock(99999999), + "Error fetching block.", + ); + }); }); describe('getBlockRange', () => { - it('should return an array of Block objects', async () => { + it.skip('should return an array of Block objects', async () => { const blockRange = await connection.getBlockRange(1, 3); - expect(Array.isArray(blockRange)).toBe(true); - expect((blockRange as Block[]).length).toBe(2); - expect(((blockRange as Block[])[0] as Block).block_hash).toBe("ab1hap8jlxaz66yt887gxlgxptkm2y0dy72x529mq6pg3ysy9tzwyqsphva9c"); - expect(((blockRange as Block[])[1] as Block).block_hash).toBe("ab18dzmjgqgk5z6x4gggezca7aenqts7289chvhus4a7ydrcj4apvrqq5j5h8"); + expect(Array.isArray(blockRange)).equal(true); + expect((blockRange as Block[]).length).equal(3); + expect(((blockRange as Block[])[0] as Block).block_hash).equal("ab1eddc3np4h6duwf5a7ht6u0x5maa08780l885j6xq0s7l88df0qrq3d72me"); + expect(((blockRange as Block[])[1] as Block).block_hash).equal("ab1uqmm97qk5gzhgwh6308h48aszazhfnn0xdq84lrj7e7myyrf9yyqmqdf42"); - }, 60000); + }); it('should throw an error if the request fails', async () => { - await expect(connection.getBlockRange(999999999, 1000000000)).rejects.toThrow('Error fetching blocks between 999999999 and 1000000000.'); - }, 60000); - }); - - describe('getDeploymentTransactionForProgram', () => { - it('should return a Transaction object', async () => { - const transaction = await connection.getDeploymentTransactionForProgram('hello_hello.aleo'); - expect((transaction as TransactionModel).type).toBe("deploy"); - }, 60000); - }); - - describe('getDeploymentTransactionIDForProgram', () => { - it('should return a Transaction object', async () => { - const transaction = await connection.getDeploymentTransactionIDForProgram('hello_hello.aleo'); - expect(typeof transaction).toBe('string'); - }, 60000); + expect(await connection.getBlockRange(999999999, 1000000000)).deep.equal([]); + }); }); describe('getProgram', () => { it('should return a string', async () => { const program = await connection.getProgram('credits.aleo'); - expect(typeof program).toBe('string'); - }, 60000); + expect(typeof program).equal('string'); + }); it('should throw an error if the request fails', async () => { const program_id = "a" + (Math.random()).toString(32).substring(2) + ".aleo"; - await expect(connection.getProgram(program_id)).rejects.toThrow('Error fetching program'); - }, 60000); + + await expectThrows( + () => connection.getProgram(program_id), + "Error fetching program", + ); + }); }); describe('getLatestBlock', () => { it('should return a Block object', async () => { const latestBlock = await connection.getLatestBlock(); - expect(typeof (latestBlock as Block).block_hash).toBe('string'); - }, 60000); + expect(typeof (latestBlock as Block).block_hash).equal('string'); + }); it('should set the X-Aleo-SDK-Version header', async () => { - expect(windowFetchSpy.mock.calls).toStrictEqual([]); + expect(windowFetchSpy.args).deep.equal([]); await connection.getLatestBlock(); - expect(windowFetchSpy.mock.calls).toStrictEqual([ + expect(windowFetchSpy.args).deep.equal([ [ - "https://api.explorer.aleo.org/v1/testnet3/latest/block", + "https://api.explorer.aleo.org/v1/testnet/latest/block", { "headers": { // @TODO: Run the Jest tests on the compiled Rollup code, @@ -101,59 +113,45 @@ describe('NodeConnection', () => { } ], ]); - }, 60000); + }); }); describe('getLatestCommittee', () => { it('should return a string', async () => { const latestCommittee = await connection.getLatestCommittee(); - expect(typeof latestCommittee).toBe('object'); - }, 60000); + expect(typeof latestCommittee).equal('object'); + }); }); describe('getLatestHeight', () => { it('should return a number', async () => { const latestHeight = await connection.getLatestHeight(); - expect(typeof latestHeight).toBe('number'); - }, 60000); + expect(typeof latestHeight).equal('number'); + }); }); describe('getStateRoot', () => { it('should return a string', async () => { const stateRoot = await connection.getStateRoot(); - expect(typeof stateRoot).toBe('string'); - }, 60000); - }); - - describe('getTransaction', () => { - it('should return a Transaction object', async () => { - const transaction = await connection.getTransaction('at1u833jaha7gtqk7vx0yczcg2njds2tj52lyg54c7zyylgfjvc4vpqn8gqqx'); - expect((transaction as TransactionModel).type).toBe("deploy"); - }, 60000); + expect(typeof stateRoot).equal('string'); + }); }); describe('getTransactions', () => { - it('should return an array of Transaction objects', async () => { - const transactions = await connection.getTransactions(1); - expect(Array.isArray(transactions)).toBe(true); - expect((transactions as TransactionModel[]).length).toBeGreaterThan(0); - }, 60000); - it('should throw an error if the request fails', async () => { - await expect(connection.getTransactions(999999999)).rejects.toThrow('Error fetching transactions.'); - }, 60000); + await expectThrows( + () => connection.getTransactions(999999999), + "Error fetching transactions.", + ); + }); }); describe('getProgramImports', () => { it('should return the correct program import names', async () => { - const importNames = await connection.getProgramImportNames("aleoswap05.aleo"); - const expectedNames = ["credits.aleo"]; - expect(importNames).toEqual(expectedNames); - const creditImports = await connection.getProgramImportNames("credits.aleo"); const expectedCreditImports: string[] = []; - expect(creditImports).toEqual(expectedCreditImports); - }, 60000); + expect(creditImports).deep.equal(expectedCreditImports); + }); it.skip('should return all nested imports', async () => { const imports = await connection.getProgramImports("imported_add_mul.aleo"); @@ -181,37 +179,48 @@ describe('NodeConnection', () => { ' add r0 r1 into r2;\n' + ' output r2 as u32.private;\n' }; - expect(imports).toEqual(expectedImports); - }, 60000); + expect(imports).equal(expectedImports); + }); }); describe('findUnspentRecords', () => { it('should fail if block heights or private keys are incorrectly specified', async () => { - await expect(connection.findUnspentRecords(5, 0, beaconPrivateKeyString, undefined, undefined, [])).rejects.toThrow(); - await expect(connection.findUnspentRecords(-5, 5, beaconPrivateKeyString, undefined, undefined, [])).rejects.toThrow(); - await expect(connection.findUnspentRecords(0, 5, "definitelynotaprivatekey", undefined, undefined, [])).rejects.toThrow(); - await expect(connection.findUnspentRecords(0, 5, undefined, undefined, undefined, [])).rejects.toThrow(); - }, 60000); - - it('should search a range correctly and not find records where none exist', async () => { + await expectThrows( + () => connection.findUnspentRecords(5, 0, beaconPrivateKeyString, undefined, undefined, []), + "Start height must be less than or equal to end height.", + ); + + await expectThrows( + () => connection.findUnspentRecords(-5, 5, beaconPrivateKeyString, undefined, undefined, []), + "Start height must be greater than or equal to 0", + ); + + await expectThrows( + () => connection.findUnspentRecords(0, 5, "definitelynotaprivatekey", undefined, undefined, []), + "Error parsing private key provided.", + ); + + await expectThrows( + () => connection.findUnspentRecords(0, 5, undefined, undefined, undefined, []), + "Private key must be specified in an argument to findOwnedRecords or set in the AleoNetworkClient", + ); + }); + + it.skip('should search a range correctly and not find records where none exist', async () => { const records = await connection.findUnspentRecords(0, 204, beaconPrivateKeyString, undefined, undefined, []); - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); if (!(records instanceof Error)) { - expect(records.length).toBe(0); + expect(records.length).equal(0); } - }, 90000); + }); }); describe('Mappings', () => { it('should find program mappings and read mappings', async () => { const mappings = await connection.getProgramMappingNames("credits.aleo"); if (!(mappings instanceof Error)) { - expect(mappings).toEqual(["committee", "bonded", "unbonding", "account"]); - } - const mappingValue = await connection.getProgramMappingValue("credits.aleo", "account", "aleo1rlwt9w0fl242h40w454m68vttd6vm4lmetu5r57unm5g354y9yzsyexf0y"); - if (!(mappingValue instanceof Error)) { - expect(mappingValue).toBeTruthy() + expect(mappings).deep.equal(["committee", "delegated", "metadata", "bonded", "unbonding", "account", "withdraw"]); } - }, 60000); + }); }); }); diff --git a/sdk/tests/program-manager.test.ts b/sdk/tests/program-manager.test.ts index 721298b12..b4210ea19 100644 --- a/sdk/tests/program-manager.test.ts +++ b/sdk/tests/program-manager.test.ts @@ -1,4 +1,4 @@ -import {jest} from '@jest/globals' +import { expect } from "chai"; import { beaconAddressString, helloProgram, @@ -8,7 +8,6 @@ import { stateRoot } from "./data/account-data"; import { Account, ExecutionResponse, OfflineQuery, ProgramManager, RecordPlaintext } from "../src/node"; -jest.retryTimes(3); describe('Program Manager', () => { const programManager = new ProgramManager("https://api.explorer.aleo.org/v1", undefined, undefined); @@ -17,9 +16,9 @@ describe('Program Manager', () => { describe('Execute offline', () => { it.skip('Program manager should execute offline and verify the resulting proof correctly', async () => { const execution_result = await programManager.run(helloProgram, "hello", ["5u32", "5u32"], true, undefined, undefined, undefined, undefined, undefined, undefined) - expect(execution_result.getOutputs()[0]).toEqual("10u32"); + expect(execution_result.getOutputs()[0]).equal("10u32"); programManager.verifyExecution(execution_result); - }, 1020000); + }); }); describe('Offline query', () => { @@ -32,13 +31,13 @@ describe('Program Manager', () => { const execution_result = await programManager.run(credits, "transfer_private", [statePathRecord, beaconAddressString, "5u64"], true, undefined, undefined, undefined, undefined, undefined, offlineQuery); const verified = programManager.verifyExecution(execution_result); - expect(verified).toEqual(true); - }, 1020000); + expect(verified).equal(true); + }); }); describe('Staking - Bond Public', () => { it.skip('Should execute bondPublic', async () => { // TODO - }, 420000); + }); }); -}); \ No newline at end of file +}); diff --git a/sdk/tests/record-provider.integration.ts b/sdk/tests/record-provider.integration.ts index a1963a8f3..2ca23bae2 100644 --- a/sdk/tests/record-provider.integration.ts +++ b/sdk/tests/record-provider.integration.ts @@ -1,7 +1,6 @@ -import {jest} from '@jest/globals' +import { expect } from "chai"; import { beaconPrivateKeyString } from "./data/account-data"; import { Account, AleoNetworkClient, NetworkRecordProvider, RecordPlaintext } from "../src/node"; -jest.retryTimes(3); describe('RecordProvider', () => { let account: Account; @@ -21,28 +20,28 @@ describe('RecordProvider', () => { const nonces: string[] = []; const records = await recordProvider.findCreditsRecords([100, 200], true, []); if (Array.isArray(records)) { - expect(records.length).toEqual(2); + expect(records.length).equal(2); records.forEach((record) => { nonces.push(record.nonce()); }); } else { - expect(Array.isArray(records)).toBe(true); + expect(Array.isArray(records)).equal(true); } // Get another two records with findCreditsRecords and ensure they are unique const records2 = await recordProvider.findCreditsRecords([100, 200], true, nonces); if (Array.isArray(records2)) { - expect(records2.length).toEqual(2); + expect(records2.length).equal(2); records2.forEach((record) => { - expect(nonces.includes(record.nonce())).toBe(false); + expect(nonces.includes(record.nonce())).equal(false); nonces.push(record.nonce()); }); } else { - expect(Array.isArray(records2)).toBe(true); + expect(Array.isArray(records2)).equal(true); } } catch (e) { throw e; } - }, 60000); + }); }); }); diff --git a/sdk/tests/record-provider.test.ts b/sdk/tests/record-provider.test.ts index afe810939..527a4f3bb 100644 --- a/sdk/tests/record-provider.test.ts +++ b/sdk/tests/record-provider.test.ts @@ -1,13 +1,13 @@ -import {jest} from '@jest/globals' +import { expect } from "chai"; import {Account, AleoNetworkClient, BlockHeightSearch, NetworkRecordProvider} from "../src/node"; import {beaconPrivateKeyString} from "./data/account-data"; import {log} from "console"; -jest.retryTimes(3); describe.skip('RecordProvider', () => { let account: Account; let networkClient: AleoNetworkClient; let recordProvider: NetworkRecordProvider; + beforeEach(() => { account = new Account({privateKey: beaconPrivateKeyString}); networkClient = new AleoNetworkClient("http://vm.aleo.org/api"); @@ -19,11 +19,11 @@ describe.skip('RecordProvider', () => { const params = new BlockHeightSearch(0, 100); try { const records = await recordProvider.findCreditsRecords([100, 200], true, [], params); - expect(records).toEqual([]) + expect(records).equal([]) } catch (e) { log(e) throw e; } - }, 60000); + }); }); }); diff --git a/sdk/tests/wasm.test.ts b/sdk/tests/wasm.test.ts index 560031556..d69ddbcf1 100644 --- a/sdk/tests/wasm.test.ts +++ b/sdk/tests/wasm.test.ts @@ -1,3 +1,4 @@ +import { expect } from "chai"; import { Address, PrivateKey, ViewKey, Signature, RecordCiphertext, RecordPlaintext, PrivateKeyCiphertext } from "../src/node"; import { seed, @@ -19,9 +20,9 @@ describe('WASM Objects', () => { const address = Address.from_private_key(privateKey); // Ensure the address is an instance of Address - expect(address).toBeInstanceOf(Address); + expect(address).instanceof(Address); // Ensure the address string matches the expected value - expect(address.to_string()).toMatch(addressString); + expect(address.to_string()).string(addressString); }); it('can be constructed from view key', () => { @@ -29,18 +30,18 @@ describe('WASM Objects', () => { const address = Address.from_view_key(viewKey); // Ensure the address is an instance of Address - expect(address).toBeInstanceOf(Address); + expect(address).instanceof(Address); // Ensure the address string matches the expected value - expect(address.to_string()).toMatch(addressString); + expect(address.to_string()).string(addressString); }); it('can be constructed from an address string', () => { const address = Address.from_string(addressString); // Ensure the address is an instance of Address - expect(address).toBeInstanceOf(Address); + expect(address).instanceof(Address); // Ensure the address string matches the expected value - expect(address.to_string()).toMatch(addressString); + expect(address.to_string()).string(addressString); }); it('can verify a message signed by the correct private key', () => { @@ -50,9 +51,9 @@ describe('WASM Objects', () => { const result = address.verify(message, signature); // Ensure the result is a boolean - expect(typeof result).toBe('boolean'); + expect(typeof result).equal('boolean'); // Ensure the signature verified - expect(result).toBe(true); + expect(result).equal(true); }); it('cannot verify a message signed by the wrong private key', () => { @@ -63,9 +64,9 @@ describe('WASM Objects', () => { const result = address.verify(message, signature); // Ensure the result is a boolean - expect(typeof result).toBe('boolean'); + expect(typeof result).equal('boolean'); // Ensure the signature failed to verify - expect(result).toBe(false); + expect(result).equal(false); }); }); @@ -75,29 +76,29 @@ describe('WASM Objects', () => { const privateKey2 = new PrivateKey(); // Ensure the private key is a PrivateKey instance - expect(privateKey).toBeInstanceOf(PrivateKey); + expect(privateKey).instanceof(PrivateKey); // Ensure the private key is a PrivateKey instance - expect(privateKey2).toBeInstanceOf(PrivateKey); + expect(privateKey2).instanceof(PrivateKey); // Ensure the private keys are different - expect(privateKey.to_string()).not.toBe(privateKey2.to_string()); + expect(privateKey.to_string()).not.equal(privateKey2.to_string()); }); it('constructs properly from a seed', () => { const privateKey = PrivateKey.from_seed_unchecked(seed); // Ensure the private key is a PrivateKey instance - expect(privateKey).toBeInstanceOf(PrivateKey); + expect(privateKey).instanceof(PrivateKey); // Ensure the private key is the correct value - expect(privateKey.to_string()).toMatch(beaconPrivateKeyString); + expect(privateKey.to_string()).string(beaconPrivateKeyString); }); it('constructs properly from a private key string', () => { const privateKey = PrivateKey.from_string(privateKeyString); // Ensure the private key is a PrivateKey instance - expect(privateKey).toBeInstanceOf(PrivateKey); + expect(privateKey).instanceof(PrivateKey); // Ensure the private key is the correct value - expect(privateKey.to_string()).toMatch(privateKeyString); + expect(privateKey.to_string()).string(privateKeyString); }); it('derives the correct view key and address', () => { @@ -106,11 +107,11 @@ describe('WASM Objects', () => { const address = privateKey.to_address(); // Ensure the view key and address are the correct types - expect(viewKey).toBeInstanceOf(ViewKey); - expect(address).toBeInstanceOf(Address); + expect(viewKey).instanceof(ViewKey); + expect(address).instanceof(Address); // Ensure the view key and address are the correct values - expect(viewKey.to_string()).toMatch(viewKeyString); - expect(address.to_string()).toMatch(addressString); + expect(viewKey.to_string()).string(viewKeyString); + expect(address.to_string()).string(addressString); }); it('can construct directly to ciphertext and then decrypt to a private key', () => { @@ -119,9 +120,9 @@ describe('WASM Objects', () => { const privateKeyFromCiphertext = PrivateKey.fromPrivateKeyCiphertext(ciphertext, secret); // Ensure the ciphertext is a PrivateKeyCiphertext instance - expect(ciphertext).toBeInstanceOf(PrivateKeyCiphertext); + expect(ciphertext).instanceof(PrivateKeyCiphertext); // Ensure the decrypted private key is a PrivateKey instance - expect(privateKeyFromCiphertext).toBeInstanceOf(PrivateKey); + expect(privateKeyFromCiphertext).instanceof(PrivateKey); }); it('encrypts and decrypts to and from ciphertext', () => { @@ -130,12 +131,12 @@ describe('WASM Objects', () => { const ciphertext = privateKey.toCiphertext(secret); // Ensure the ciphertext is a PrivateKeyCiphertext instance - expect(ciphertext).toBeInstanceOf(PrivateKeyCiphertext); + expect(ciphertext).instanceof(PrivateKeyCiphertext); const privateKeyFromCiphertext = PrivateKey.fromPrivateKeyCiphertext(ciphertext, secret); // Ensure the decrypted private key is a PrivateKey instance - expect(privateKeyFromCiphertext).toBeInstanceOf(PrivateKey); + expect(privateKeyFromCiphertext).instanceof(PrivateKey); // Ensure the decrypted private key is the same as the original - expect(privateKeyFromCiphertext.to_string()).toBe(privateKey.to_string()); + expect(privateKeyFromCiphertext.to_string()).equal(privateKey.to_string()); }); it('properly assesses equality and inequality', () => { @@ -144,10 +145,10 @@ describe('WASM Objects', () => { const privateKey3 = PrivateKey.from_string(privateKeyString); // Ensure the different private keys are not equal - expect((privateKey1 === privateKey2)).toBeFalsy(); + expect(privateKey1).not.equal(privateKey2); // Ensure the same private keys are equal - expect((privateKey2 === privateKey2)).toBeTruthy(); - expect(privateKey2.to_string()).toBe(privateKey3.to_string()); + expect(privateKey2).equal(privateKey2); + expect(privateKey2.to_string()).equal(privateKey3.to_string()); }); it('has different ciphertexts for the same password, but decrypts to the same key', () => { @@ -159,14 +160,14 @@ describe('WASM Objects', () => { const decryptedPrivateKey2 = PrivateKey.fromPrivateKeyCiphertext(ciphertext2, secret); // Ensure the ciphertexts are different - expect(ciphertext).not.toBe(ciphertext2); + expect(ciphertext).not.equal(ciphertext2); // Ensure the decrypted private keys are both PrivateKey instances - expect(decryptedPrivateKey).toBeInstanceOf(PrivateKey); - expect(decryptedPrivateKey2).toBeInstanceOf(PrivateKey); + expect(decryptedPrivateKey).instanceof(PrivateKey); + expect(decryptedPrivateKey2).instanceof(PrivateKey); // Ensure the decrypted private keys are the same as the original - expect(decryptedPrivateKey.to_string()).toBe(privateKeyString); - expect(decryptedPrivateKey2.to_string()).toBe(privateKeyString); - expect(decryptedPrivateKey.to_string()).toBe(decryptedPrivateKey2.to_string()); + expect(decryptedPrivateKey.to_string()).equal(privateKeyString); + expect(decryptedPrivateKey2.to_string()).equal(privateKeyString); + expect(decryptedPrivateKey.to_string()).equal(decryptedPrivateKey2.to_string()); }); }); @@ -175,18 +176,18 @@ describe('WASM Objects', () => { it('constructs properly from a string', () => { // Ensure the view key is a ViewKey instance - expect(viewKey).toBeInstanceOf(ViewKey); + expect(viewKey).instanceof(ViewKey); // Ensure the view key is the correct value - expect(viewKey.to_string()).toMatch(viewKeyString); + expect(viewKey.to_string()).string(viewKeyString); }); it('derives the correct address', () => { const address = viewKey.to_address(); // Ensure the address is an Address instance - expect(address).toBeInstanceOf(Address); + expect(address).instanceof(Address); // Ensure the address is the correct value - expect(address.to_string()).toMatch(addressString); + expect(address.to_string()).string(addressString); }); it('properly assesses equality and inequality', () => { @@ -195,17 +196,17 @@ describe('WASM Objects', () => { const viewKey3 = ViewKey.from_string(viewKeyString); // Ensure the different view keys are not equal - expect((viewKey1 === viewKey2)).toBeFalsy(); + expect(viewKey1).not.equal(viewKey2); // Ensure the same view keys are equal - expect((viewKey2 === viewKey2)).toBeTruthy(); - expect(viewKey2.to_string()).toBe(viewKey3.to_string()); + expect(viewKey2).equal(viewKey2); + expect(viewKey2.to_string()).equal(viewKey3.to_string()); }); it('can decrypt a record generated by the account', () => { const decryptedRecord = viewKey.decrypt(recordCiphertextString); // Ensure it decrypts to the correct data - expect(decryptedRecord).toBe(recordPlaintextString); + expect(decryptedRecord).equal(recordPlaintextString); }); }); @@ -218,9 +219,9 @@ describe('WASM Objects', () => { const result = signature.verify(address, message); // Ensure the result is a boolean - expect(typeof result).toBe('boolean'); + expect(typeof result).equal('boolean'); // Ensure the signature verified - expect(result).toBe(true); + expect(result).equal(true); }); it('cannot verify a message signed by the wrong private key', () => { @@ -230,9 +231,9 @@ describe('WASM Objects', () => { const result = signature.verify(address, message); // Ensure the result is a boolean - expect(typeof result).toBe('boolean'); + expect(typeof result).equal('boolean'); // Ensure the signature failed to verify - expect(result).toBe(false); + expect(result).equal(false); }); it('can go to and from string', () => { @@ -241,12 +242,12 @@ describe('WASM Objects', () => { const signatureFromString = Signature.from_string(signatureString); // Ensure the signature is a Signature instance - expect(signature).toBeInstanceOf(Signature); + expect(signature).instanceof(Signature); // Ensure from_string returns a Signature instance - expect(signatureFromString).toBeInstanceOf(Signature); + expect(signatureFromString).instanceof(Signature); // Ensure the signature to_string matches the expected values - expect(signature.to_string()).toBe(signatureString); - expect(signatureFromString.to_string()).toBe(signatureString); + expect(signature.to_string()).equal(signatureString); + expect(signatureFromString.to_string()).equal(signatureString); }); }); @@ -259,8 +260,8 @@ describe('WASM Objects', () => { const decryptedKey = ciphertext.decryptToPrivateKey(secret); // Ensure the decrypted key is a PrivateKey instance and is the same as the original - expect(decryptedKey).toBeInstanceOf(PrivateKey); - expect(decryptedKey.to_string()).toBe(privateKeyString); + expect(decryptedKey).instanceof(PrivateKey); + expect(decryptedKey.to_string()).equal(privateKeyString); }); it('should fail to decrypt with a bad secret', () => { @@ -269,10 +270,10 @@ describe('WASM Objects', () => { try { ciphertext.decryptToPrivateKey(badSecret); // Should not get here - expect(true).toBe(false); + expect(true).equal(false); } catch (e) { // Should error out - expect(true).toBe(true); + expect(true).equal(true); } }); @@ -282,12 +283,12 @@ describe('WASM Objects', () => { const decryptedKey2 = ciphertext2.decryptToPrivateKey(secret); // Ensure the ciphertexts are different - expect(ciphertext).not.toBe(ciphertext2); + expect(ciphertext).not.equal(ciphertext2); // Ensure the decrypted are both private key instances and have the same key - expect(decryptedKey).toBeInstanceOf(PrivateKey); - expect(decryptedKey2).toBeInstanceOf(PrivateKey); - expect(decryptedKey.to_string()).toBe(privateKeyString); - expect(decryptedKey2.to_string()).toBe(privateKeyString); + expect(decryptedKey).instanceof(PrivateKey); + expect(decryptedKey2).instanceof(PrivateKey); + expect(decryptedKey.to_string()).equal(privateKeyString); + expect(decryptedKey2.to_string()).equal(privateKeyString); }); it('round trip to and from string for PrivateKeyCiphertext', () => { @@ -297,7 +298,7 @@ describe('WASM Objects', () => { const privateKeyCipherText2 = PrivateKeyCiphertext.fromString(privateKeyCiphertext.toString()); // Assert the round trip to and from string journey results in the same key - expect(privateKeyCiphertext.toString()).toEqual(privateKeyCipherText2.toString()); + expect(privateKeyCiphertext.toString()).equal(privateKeyCipherText2.toString()); }); it('decryption of PrivateKeyCiphertext with edge cases', () => { @@ -309,15 +310,15 @@ describe('WASM Objects', () => { const decryptedPrivateKey = privateKeyCiphertext.decryptToPrivateKey("mypassword"); // Assert that the private key is the same as the original for a valid ciphertext and secret - expect(privateKey.to_string()).toEqual(decryptedPrivateKey.to_string()); + expect(privateKey.to_string()).equal(decryptedPrivateKey.to_string()); // Assert the incorrect secret fails expect(() => { privateKeyCiphertext.decryptToPrivateKey("badpassword"); - }).toThrow(); + }).throw(); // Ensure invalid ciphertexts fail expect(() => { PrivateKeyCiphertext.fromString(bad_ciphertext); - }).toThrow(); + }).throw(); }); }); @@ -329,7 +330,7 @@ describe('WASM Objects', () => { const ciphertext = RecordCiphertext.fromString(recordCiphertextString); // Ensure the string matches the string the record was created from - expect(ciphertext.toString()).toEqual(recordCiphertextString); + expect(ciphertext.toString()).equal(recordCiphertextString); }); it('can be decrypted and identified as owner with a valid view key', () => { @@ -337,18 +338,18 @@ describe('WASM Objects', () => { const isOwner = ciphertext.isOwner(viewKey); // Ensure the record ciphertext is decrypted correctly - expect(plaintext.toString()).toEqual(recordPlaintextString); + expect(plaintext.toString()).equal(recordPlaintextString); // Ensure the view key is identified as the owner of the record - expect(isOwner).toBe(true); + expect(isOwner).equal(true); }); it('cant be decrypted nor identified as owner with a foreign view key', () => { const foreignViewKey = ViewKey.from_string(foreignViewKeyString); // Ensure the record ciphertext cannot be decrypted with a foreign view key - expect(ciphertext.isOwner(foreignViewKey)).toBe(false); + expect(ciphertext.isOwner(foreignViewKey)).equal(false); // Ensure the record ciphertext cannot be decrypted with a foreign view key - expect(() => ciphertext.decrypt(foreignViewKey)).toThrow(); + expect(() => ciphertext.decrypt(foreignViewKey)).throw(); }); }); @@ -357,9 +358,9 @@ describe('WASM Objects', () => { const plaintext = RecordPlaintext.fromString(recordPlaintextString); // Ensure the string matches the string the record was created from - expect(plaintext.toString()).toEqual(recordPlaintextString); + expect(plaintext.toString()).equal(recordPlaintextString); // Ensure the record has the correct number of microcredits - expect(plaintext.microcredits()).toEqual(BigInt(1500000000000000)); + expect(plaintext.microcredits()).equal(BigInt(1500000000000000)); }); }); diff --git a/sdk/tsconfig.json b/sdk/tsconfig.json index de3592536..b933e4d3d 100644 --- a/sdk/tsconfig.json +++ b/sdk/tsconfig.json @@ -17,7 +17,7 @@ // stricter type-checking for stronger correctness. Recommended by TS "strict": true, // use Node's module resolution algorithm, instead of the legacy TS one - "moduleResolution": "node", + "moduleResolution": "bundler", // interop between ESM and CJS modules. Recommended by TS "esModuleInterop": true, // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS diff --git a/wasm/Cargo.lock b/wasm/Cargo.lock new file mode 100644 index 000000000..dbd94cc91 --- /dev/null +++ b/wasm/Cargo.lock @@ -0,0 +1,2993 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aleo-std" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ec648bb4d936c62d63cb85983059c7fecd92175912c145470da3b03010c7c6" +dependencies = [ + "aleo-std-cpu", + "aleo-std-profiler", + "aleo-std-storage", + "aleo-std-time", + "aleo-std-timed", + "aleo-std-timer", +] + +[[package]] +name = "aleo-std-cpu" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7527351aa675fdbe6a1902de3cf913ff7d50ccd6822f1562be374bdd85eaefb8" + +[[package]] +name = "aleo-std-profiler" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf055ddb2f54fa86394d19d87e7956df2f3cafff489fc14c0f48f2f80664c3d" + +[[package]] +name = "aleo-std-storage" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453100af40d56582265853ecb2ef660d1bc1ba6920bff020a77ceba1122c8eb5" +dependencies = [ + "dirs", +] + +[[package]] +name = "aleo-std-time" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f2a841f04c2eaeb5a95312e5201a9e4b7c95b64ca99870d6bd2e2376df540a" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 1.0.109", +] + +[[package]] +name = "aleo-std-timed" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6118baab6285accf088b31d5ea5029c37bbf9d98e62b4d8720a0a5a66bc2e427" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 1.0.109", +] + +[[package]] +name = "aleo-std-timer" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e4f181fc1a372e8ceff89612e5c9b13f72bff5b066da9f8d6827ae65af492c4" + +[[package]] +name = "aleo-wasm" +version = "0.6.16" +dependencies = [ + "anyhow", + "async-trait", + "console_error_panic_hook", + "futures", + "getrandom", + "gloo-timers", + "hex", + "indexmap", + "js-sys", + "once_cell", + "rand", + "rayon", + "reqwest", + "serde", + "serde_json", + "sha2", + "snarkvm-circuit-network", + "snarkvm-console", + "snarkvm-ledger-block", + "snarkvm-ledger-query", + "snarkvm-ledger-store", + "snarkvm-parameters", + "snarkvm-synthesizer", + "snarkvm-wasm", + "spmc", + "walkdir", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test", + "web-sys", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "async-trait" +version = "0.1.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" + +[[package]] +name = "cc" +version = "1.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curl" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "curl-sys" +version = "0.4.74+curl-8.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af10b986114528fcdc4b63b6f5f021b7057618411046a4de2ba0f0149a097bf" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.52.0", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "encoding" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +dependencies = [ + "encoding-index-japanese", + "encoding-index-korean", + "encoding-index-simpchinese", + "encoding-index-singlebyte", + "encoding-index-tradchinese", +] + +[[package]] +name = "encoding-index-japanese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-korean" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-simpchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-singlebyte" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-tradchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding_index_tests" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-iterator" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c280b9e6b3ae19e152d8e31cf47f18389781e119d4013a2a2bb0180e5facc635" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "enum_index" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5532bdea562e7be83060c36185eecccba82fe16729d2eaad2891d65417656dd" + +[[package]] +name = "enum_index_derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ab22c8085548bf06190113dca556e149ecdbb05ae5b972a2b9899f26b944ee4" +dependencies = [ + "quote 0.3.15", + "syn 0.11.11", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +dependencies = [ + "equivalent", + "hashbrown", + "rayon", + "serde", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "js-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "libz-sys" +version = "1.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minicov" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169" +dependencies = [ + "cc", + "walkdir", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.36.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "serde" +version = "1.0.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "serde_json" +version = "1.0.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +dependencies = [ + "indexmap", + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", +] + +[[package]] +name = "snarkvm-algorithms" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "blake2", + "cfg-if", + "fxhash", + "hashbrown", + "hex", + "indexmap", + "itertools", + "num-traits", + "parking_lot", + "rand", + "rand_chacha", + "rand_core", + "rayon", + "serde", + "sha2", + "smallvec", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-parameters", + "snarkvm-utilities", + "thiserror", + "wasm-bindgen-futures", +] + +[[package]] +name = "snarkvm-circuit" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-account", + "snarkvm-circuit-algorithms", + "snarkvm-circuit-collections", + "snarkvm-circuit-environment", + "snarkvm-circuit-network", + "snarkvm-circuit-program", + "snarkvm-circuit-types", +] + +[[package]] +name = "snarkvm-circuit-account" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-algorithms", + "snarkvm-circuit-network", + "snarkvm-circuit-types", + "snarkvm-console-account", +] + +[[package]] +name = "snarkvm-circuit-algorithms" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-types", + "snarkvm-console-algorithms", + "snarkvm-fields", +] + +[[package]] +name = "snarkvm-circuit-collections" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-algorithms", + "snarkvm-circuit-types", + "snarkvm-console-collections", +] + +[[package]] +name = "snarkvm-circuit-environment" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "itertools", + "nom", + "num-traits", + "once_cell", + "snarkvm-algorithms", + "snarkvm-circuit-environment-witness", + "snarkvm-console-network", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-utilities", +] + +[[package]] +name = "snarkvm-circuit-environment-witness" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" + +[[package]] +name = "snarkvm-circuit-network" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-algorithms", + "snarkvm-circuit-collections", + "snarkvm-circuit-types", + "snarkvm-console-network", +] + +[[package]] +name = "snarkvm-circuit-program" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "paste", + "snarkvm-circuit-account", + "snarkvm-circuit-algorithms", + "snarkvm-circuit-collections", + "snarkvm-circuit-network", + "snarkvm-circuit-types", + "snarkvm-console-program", + "snarkvm-utilities", +] + +[[package]] +name = "snarkvm-circuit-types" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-address", + "snarkvm-circuit-types-boolean", + "snarkvm-circuit-types-field", + "snarkvm-circuit-types-group", + "snarkvm-circuit-types-integers", + "snarkvm-circuit-types-scalar", + "snarkvm-circuit-types-string", +] + +[[package]] +name = "snarkvm-circuit-types-address" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-boolean", + "snarkvm-circuit-types-field", + "snarkvm-circuit-types-group", + "snarkvm-circuit-types-scalar", + "snarkvm-console-types-address", +] + +[[package]] +name = "snarkvm-circuit-types-boolean" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-console-types-boolean", +] + +[[package]] +name = "snarkvm-circuit-types-field" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-boolean", + "snarkvm-console-types-field", +] + +[[package]] +name = "snarkvm-circuit-types-group" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-boolean", + "snarkvm-circuit-types-field", + "snarkvm-circuit-types-scalar", + "snarkvm-console-types-group", +] + +[[package]] +name = "snarkvm-circuit-types-integers" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-boolean", + "snarkvm-circuit-types-field", + "snarkvm-circuit-types-scalar", + "snarkvm-console-types-integers", +] + +[[package]] +name = "snarkvm-circuit-types-scalar" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-boolean", + "snarkvm-circuit-types-field", + "snarkvm-console-types-scalar", +] + +[[package]] +name = "snarkvm-circuit-types-string" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-circuit-environment", + "snarkvm-circuit-types-boolean", + "snarkvm-circuit-types-field", + "snarkvm-circuit-types-integers", + "snarkvm-console-types-string", +] + +[[package]] +name = "snarkvm-console" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-account", + "snarkvm-console-algorithms", + "snarkvm-console-collections", + "snarkvm-console-network", + "snarkvm-console-program", + "snarkvm-console-types", +] + +[[package]] +name = "snarkvm-console-account" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "bs58", + "snarkvm-console-network", + "snarkvm-console-types", + "zeroize", +] + +[[package]] +name = "snarkvm-console-algorithms" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "blake2s_simd", + "smallvec", + "snarkvm-console-types", + "snarkvm-fields", + "snarkvm-utilities", + "tiny-keccak", +] + +[[package]] +name = "snarkvm-console-collections" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "rayon", + "snarkvm-console-algorithms", + "snarkvm-console-types", +] + +[[package]] +name = "snarkvm-console-network" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "anyhow", + "indexmap", + "itertools", + "lazy_static", + "once_cell", + "paste", + "serde", + "snarkvm-algorithms", + "snarkvm-console-algorithms", + "snarkvm-console-collections", + "snarkvm-console-network-environment", + "snarkvm-console-types", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-parameters", + "snarkvm-utilities", +] + +[[package]] +name = "snarkvm-console-network-environment" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "anyhow", + "bech32", + "itertools", + "nom", + "num-traits", + "rand", + "serde", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-utilities", + "zeroize", +] + +[[package]] +name = "snarkvm-console-program" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "enum-iterator", + "enum_index", + "enum_index_derive", + "indexmap", + "num-derive", + "num-traits", + "once_cell", + "paste", + "serde_json", + "snarkvm-console-account", + "snarkvm-console-algorithms", + "snarkvm-console-collections", + "snarkvm-console-network", + "snarkvm-console-types", + "snarkvm-utilities", +] + +[[package]] +name = "snarkvm-console-types" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-address", + "snarkvm-console-types-boolean", + "snarkvm-console-types-field", + "snarkvm-console-types-group", + "snarkvm-console-types-integers", + "snarkvm-console-types-scalar", + "snarkvm-console-types-string", +] + +[[package]] +name = "snarkvm-console-types-address" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-boolean", + "snarkvm-console-types-field", + "snarkvm-console-types-group", +] + +[[package]] +name = "snarkvm-console-types-boolean" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", +] + +[[package]] +name = "snarkvm-console-types-field" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-boolean", + "zeroize", +] + +[[package]] +name = "snarkvm-console-types-group" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-boolean", + "snarkvm-console-types-field", + "snarkvm-console-types-scalar", +] + +[[package]] +name = "snarkvm-console-types-integers" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-boolean", + "snarkvm-console-types-field", + "snarkvm-console-types-scalar", +] + +[[package]] +name = "snarkvm-console-types-scalar" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-boolean", + "snarkvm-console-types-field", + "zeroize", +] + +[[package]] +name = "snarkvm-console-types-string" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console-network-environment", + "snarkvm-console-types-boolean", + "snarkvm-console-types-field", + "snarkvm-console-types-integers", +] + +[[package]] +name = "snarkvm-curves" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "rand", + "rayon", + "rustc_version", + "serde", + "snarkvm-fields", + "snarkvm-utilities", + "thiserror", +] + +[[package]] +name = "snarkvm-fields" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "itertools", + "num-traits", + "rand", + "rayon", + "serde", + "snarkvm-utilities", + "thiserror", + "zeroize", +] + +[[package]] +name = "snarkvm-ledger-authority" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "anyhow", + "rand", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-narwhal-subdag", +] + +[[package]] +name = "snarkvm-ledger-block" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "rayon", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-authority", + "snarkvm-ledger-committee", + "snarkvm-ledger-narwhal-batch-header", + "snarkvm-ledger-narwhal-subdag", + "snarkvm-ledger-narwhal-transmission-id", + "snarkvm-ledger-puzzle", + "snarkvm-synthesizer-program", + "snarkvm-synthesizer-snark", +] + +[[package]] +name = "snarkvm-ledger-committee" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "rayon", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-narwhal-batch-header", +] + +[[package]] +name = "snarkvm-ledger-narwhal-batch-certificate" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "rayon", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-narwhal-batch-header", + "snarkvm-ledger-narwhal-transmission-id", +] + +[[package]] +name = "snarkvm-ledger-narwhal-batch-header" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "rayon", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-narwhal-transmission-id", +] + +[[package]] +name = "snarkvm-ledger-narwhal-subdag" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "rayon", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-committee", + "snarkvm-ledger-narwhal-batch-certificate", + "snarkvm-ledger-narwhal-batch-header", + "snarkvm-ledger-narwhal-transmission-id", +] + +[[package]] +name = "snarkvm-ledger-narwhal-transmission-id" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "snarkvm-console", + "snarkvm-ledger-puzzle", +] + +[[package]] +name = "snarkvm-ledger-puzzle" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "bincode", + "indexmap", + "lru", + "once_cell", + "parking_lot", + "rand", + "rand_chacha", + "rayon", + "serde_json", + "snarkvm-algorithms", + "snarkvm-console", +] + +[[package]] +name = "snarkvm-ledger-puzzle-epoch" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "colored", + "indexmap", + "lru", + "parking_lot", + "rand", + "rand_chacha", + "rayon", + "snarkvm-circuit", + "snarkvm-console", + "snarkvm-ledger-puzzle", + "snarkvm-synthesizer-process", + "snarkvm-synthesizer-program", +] + +[[package]] +name = "snarkvm-ledger-query" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "async-trait", + "reqwest", + "snarkvm-console", + "snarkvm-ledger-store", + "snarkvm-synthesizer-program", + "ureq", +] + +[[package]] +name = "snarkvm-ledger-store" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std-storage", + "anyhow", + "bincode", + "indexmap", + "parking_lot", + "rayon", + "serde", + "serde_json", + "snarkvm-console", + "snarkvm-ledger-authority", + "snarkvm-ledger-block", + "snarkvm-ledger-committee", + "snarkvm-ledger-narwhal-batch-certificate", + "snarkvm-ledger-puzzle", + "snarkvm-synthesizer-program", + "snarkvm-synthesizer-snark", +] + +[[package]] +name = "snarkvm-parameters" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "bincode", + "cfg-if", + "colored", + "curl", + "encoding", + "hex", + "indexmap", + "itertools", + "js-sys", + "lazy_static", + "parking_lot", + "paste", + "rand", + "serde_json", + "sha2", + "snarkvm-curves", + "snarkvm-utilities", + "thiserror", + "web-sys", +] + +[[package]] +name = "snarkvm-synthesizer" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "indexmap", + "itertools", + "lru", + "parking_lot", + "rand", + "rayon", + "serde_json", + "snarkvm-algorithms", + "snarkvm-circuit", + "snarkvm-console", + "snarkvm-ledger-block", + "snarkvm-ledger-committee", + "snarkvm-ledger-puzzle", + "snarkvm-ledger-puzzle-epoch", + "snarkvm-ledger-query", + "snarkvm-ledger-store", + "snarkvm-synthesizer-process", + "snarkvm-synthesizer-program", + "snarkvm-synthesizer-snark", + "snarkvm-utilities", + "tracing", +] + +[[package]] +name = "snarkvm-synthesizer-process" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "colored", + "indexmap", + "once_cell", + "parking_lot", + "rand", + "rayon", + "serde_json", + "snarkvm-circuit", + "snarkvm-console", + "snarkvm-ledger-block", + "snarkvm-ledger-query", + "snarkvm-ledger-store", + "snarkvm-synthesizer-program", + "snarkvm-synthesizer-snark", + "snarkvm-utilities", +] + +[[package]] +name = "snarkvm-synthesizer-program" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "indexmap", + "paste", + "rand", + "rand_chacha", + "serde_json", + "snarkvm-circuit", + "snarkvm-console", +] + +[[package]] +name = "snarkvm-synthesizer-snark" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "bincode", + "once_cell", + "serde_json", + "snarkvm-algorithms", + "snarkvm-circuit", + "snarkvm-console", +] + +[[package]] +name = "snarkvm-utilities" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "aleo-std", + "anyhow", + "bincode", + "num-bigint", + "num_cpus", + "rand", + "rand_xorshift", + "rayon", + "serde", + "serde_json", + "smol_str", + "snarkvm-utilities-derives", + "thiserror", + "zeroize", +] + +[[package]] +name = "snarkvm-utilities-derives" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "snarkvm-wasm" +version = "0.16.19" +source = "git+https://github.com/puzzlehq/snarkVM.git?branch=authorization-deserialization-fix#e2a3764bb3ce88bb0564e7f3f6b0ef7d5a56197e" +dependencies = [ + "getrandom", + "snarkvm-circuit-network", + "snarkvm-console", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-ledger-block", + "snarkvm-ledger-query", + "snarkvm-ledger-store", + "snarkvm-synthesizer", + "snarkvm-utilities", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spmc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" +dependencies = [ + "quote 0.3.15", + "synom", + "unicode-xid", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synom" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" + +[[package]] +name = "ureq" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" +dependencies = [ + "base64 0.22.1", + "log", + "once_cell", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +dependencies = [ + "cfg-if", + "once_cell", + "serde", + "serde_json", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +dependencies = [ + "quote 1.0.37", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "wasm-bindgen-test" +version = "0.3.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68497a05fb21143a08a7d24fc81763384a3072ee43c44e86aad1744d6adef9d9" +dependencies = [ + "console_error_panic_hook", + "js-sys", + "minicov", + "scoped-tls", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "web-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote 1.0.37", + "syn 2.0.77", +] diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index e6885c166..7870c02fd 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "aleo-wasm" -version = "0.6.9" -authors = [ "The Aleo Team " ] -description = "WebAssembly based toolkit for developing zero knowledge applications with Aleo" +authors = [ "The Provable Team" ] +version = "0.6.16" +description = "WebAssembly based toolkit for developing zero-knowledge applications with Aleo" homepage = "https://aleo.org" -repository = "https://github.com/AleoHQ/sdk" +repository = "https://github.com/ProvableHQ/sdk" keywords = [ "aleo", "cryptography", @@ -21,57 +21,50 @@ edition = "2021" crate-type = [ "cdylib", "rlib" ] doctest = false -[dependencies] -itertools = "0.11.0" - [dependencies.snarkvm-circuit-network] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" [dependencies.snarkvm-console] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" -features = [ "wasm" ] - -[dependencies.snarkvm-utilities] -version = "0.15.4" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" features = [ "wasm" ] [dependencies.snarkvm-ledger-block] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" features = [ "wasm" ] [dependencies.snarkvm-ledger-query] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" features = [ "async", "wasm" ] [dependencies.snarkvm-ledger-store] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" [dependencies.snarkvm-parameters] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" features = [ "wasm" ] [dependencies.snarkvm-synthesizer] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" features = [ "async", "wasm" ] [dependencies.snarkvm-wasm] -version = "0.16.19" -git = "https://github.com/AleoNet/snarkVM.git" -rev = "3ebe60c499285a140ec2171fe8dd06662c325531" +# version = "=0.16.19" +git = "https://github.com/puzzlehq/snarkVM.git" +branch = "authorization-deserialization-fix" features = [ "console", "fields", "utilities" ] [dependencies.anyhow] @@ -145,10 +138,18 @@ features = [ [dev-dependencies.wasm-bindgen-test] version = "0.3.37" +[dev-dependencies.gloo-timers] +version = "0.3.0" +features = [ + "futures", +] + [features] -default = ["serial", "browser"] -serial = ["snarkvm-console/serial", "snarkvm-synthesizer/serial", "snarkvm-ledger-query/serial", "snarkvm-ledger-block/serial", "snarkvm-ledger-store/serial"] -browser = [] +default = [ "serial", "browser" ] +serial = [ "snarkvm-console/serial", "snarkvm-synthesizer/serial", "snarkvm-ledger-query/serial", "snarkvm-ledger-block/serial", "snarkvm-ledger-store/serial" ] +browser = [ ] +testnet = [ ] +mainnet = [ ] ## Profiles [profile.release] diff --git a/wasm/PUBLISH.md b/wasm/PUBLISH.md index 54ca03d87..c585a1b5e 100644 --- a/wasm/PUBLISH.md +++ b/wasm/PUBLISH.md @@ -5,5 +5,6 @@ ```bash npm login npm run build +npm version patch npm publish --access=public ``` \ No newline at end of file diff --git a/wasm/README.md b/wasm/README.md index 18f25c33c..c40eabbe6 100644 --- a/wasm/README.md +++ b/wasm/README.md @@ -4,3 +4,61 @@ To build and publish WASM pacakges for nodejs and web: - Run `./build-puzzle.sh` - Push your changes so the package number stays up to date +[![github]](https://github.com/ProvableHQ/sdk) [![crates-io]](https://crates.io/crates/aleo-wasm) [![docs-rs]](https://docs.rs/aleo-wasm/latest/aleo-wasm/) + +[github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github +[crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust +[docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs + +# Aleo Wasm + +Aleo JavaScript and WebAssembly bindings for building zero-knowledge web applications. + +`Rust` compiles easily to `WebAssembly`, but creating the glue code necessary to use compiled WebAssembly binaries +from other languages such as JavaScript is a challenging task. `wasm-bindgen` is a tool that simplifies this process by +auto-generating JavaScript bindings to Rust code that has been compiled into WebAssembly. + +This crate uses `wasm-bindgen` to create JavaScript bindings to Aleo source code so that it can be used to create zero-knowledge proofs directly within web browsers and `Node.js`. + +Functionality exposed by this crate includes: +* Aleo account management objects +* Aleo primitives such as `Records`, `Programs`, and `Transactions` and their associated helper methods +* A `ProgramManager` object that contains methods for authoring, deploying, and interacting with Aleo programs + +More information on these concepts can be found at the [Aleo Developer Hub](https://developer.aleo.org/concepts). + +## Usage + +The [rollup-plugin-rust](https://github.com/wasm-tool/rollup-plugin-rust/) tool is used to compile the Rust code in this crate into JavaScript +modules which can be imported into other JavaScript projects. + +#### Installation + +Follow the [installation instructions](https://github.com/wasm-tool/rollup-plugin-rust/#installation) on the rollup-plugin-rust README. + +### Build Instructions + +```bash +yarn build +``` + +This will produce `.js` and `.wasm` files inside of the `dist` folder. + +## Testing + +Run tests in Node.js +```bash +wasm-pack test --node +``` + +Run tests in a browser +```bash +wasm-pack test --[firefox/chrome/safari] +``` + +## Building Web Apps + +Further documentation and tutorials as to how to use the modules built from this crate to build web apps will be built +in the future. However, in the meantime, the [provable.tools](https://provable.tools) website is a good +example of how to use these modules to build a web app. Its source code can be found in the +[Aleo SDK](https://github.com/ProvableHQ/sdk) repo in the `website` folder. diff --git a/wasm/build-puzzle.sh b/wasm/build-puzzle.sh index 43b8e96a1..8a020bf88 100755 --- a/wasm/build-puzzle.sh +++ b/wasm/build-puzzle.sh @@ -1,14 +1,14 @@ #!/bin/bash rm -rf pkg/ -wasm-pack build --release --target nodejs --scope puzzlehq --out-dir pkg/node-wasm -- --features "serial" --no-default-features -cd pkg/node-wasm -sed -i '' 's/aleo-wasm/aleo-wasm-nodejs/g' package.json -npm publish -cd ../.. +# wasm-pack build --release --target no-modules --scope puzzlehq --out-dir pkg/node-wasm -- --features "serial" --no-default-features +# cd pkg/node-wasm +# sed -i '' 's/aleo-wasm/aleo-wasm-nodejs/g' package.json +# npm publish --access public +# cd ../.. RUSTFLAGS='-C link-arg=--max-memory=4294967296' wasm-pack build --release --target web --scope puzzlehq --out-dir pkg/web-wasm cd pkg/web-wasm sed -i '' 's/aleo-wasm/aleo-wasm-web/g' package.json jq '.files += ["snippets/"]' package.json > temp.json && mv temp.json package.json -npm publish --access public -cd ../.. +# npm publish --access public +cd ../.. \ No newline at end of file diff --git a/wasm/build.js b/wasm/build.js new file mode 100644 index 000000000..85335b884 --- /dev/null +++ b/wasm/build.js @@ -0,0 +1,259 @@ +import * as $fs from "node:fs/promises"; +import { rollup } from "rollup"; +import virtual from "@rollup/plugin-virtual"; +import rust from "@wasm-tool/rollup-plugin-rust"; + + +async function buildRollup(input, output) { + const bundle = await rollup(input); + + try { + await bundle.write(output); + + } finally { + await bundle.close(); + } +} + + +async function buildWasm(network) { + await buildRollup({ + input: { + "aleo_wasm": "entry", + }, + plugins: [ + virtual({ + "entry": `export { default } from "./Cargo.toml";`, + }), + + rust({ + cargoArgs: [ + // This enables multi-threading + "--config", `build.rustflags=["-C", "target-feature=+atomics,+bulk-memory,+mutable-globals", "-C", "link-arg=--max-memory=4294967296"]`, + "--no-default-features", + "--features", `browser,${network}`, + "-Z", "build-std=panic_abort,std", + ], + + experimental: { + typescriptDeclarationDir: `dist/${network}`, + }, + }), + ], + }, { + dir: `dist/${network}`, + format: "es", + sourcemap: true, + assetFileNames: `[name][extname]`, + }); +} + + +async function buildJS(network) { + const js = `import wasm from "./dist/${network}/aleo_wasm.js"; + +const { + initThreadPool: wasmInitThreadPool, + Address, + Execution, + ExecutionResponse, + Field, + Metadata, + OfflineQuery, + Plaintext, + Private, + PrivateKey, + PrivateKeyCiphertext, + Program, + ProvingKey, + RecordCiphertext, + RecordPlaintext, + ProgramManager, + Signature, + Transaction, + ViewKey, + VerifyingKey, + verifyFunctionExecution, +} = await wasm({ + importHook: () => { + return new URL("aleo_wasm.wasm", import.meta.url); + }, +}); + +async function initThreadPool(threads) { + if (threads == null) { + threads = navigator.hardwareConcurrency; + } + + console.info(\`Spawning \${threads} threads\`); + + await wasmInitThreadPool(new URL("worker.js", import.meta.url), threads); +} + +export { + initThreadPool, + Address, + Execution, + ExecutionResponse, + Field, + Metadata, + OfflineQuery, + Plaintext, + PrivateKey, + PrivateKeyCiphertext, + Program, + ProvingKey, + RecordCiphertext, + RecordPlaintext, + ProgramManager, + Signature, + Transaction, + ViewKey, + VerifyingKey, + verifyFunctionExecution, +};`; + + await buildRollup({ + input: { + "index": "entry", + }, + plugins: [ + virtual({ + "entry": js, + }), + ], + }, { + dir: `dist/${network}`, + format: "es", + sourcemap: true, + }); +} + + +async function buildWorker(network) { + const worker = `import wasm from "./dist/${network}/aleo_wasm.js"; + +async function initializeWorker(wasm) { + // Wait for the main thread to send us the Module, Memory, and Rayon thread pointer. + function wait() { + return new Promise((resolve) => { + addEventListener("message", (event) => { + resolve(event.data); + }, { + capture: true, + once: true, + }); + }); + } + + const [initWasm, { module, memory, address }] = await Promise.all([ + wasm, + wait(), + ]); + + // Runs the Wasm inside of the Worker, but using the main thread's Module and Memory. + const exports = await initWasm({ + initializeHook: (init, path) => init(module, memory), + }); + + // Tells the main thread that we're finished initializing. + postMessage(null); + + // This will hang the Worker while running the Rayon thread. + exports.runRayonThread(address); + + // When the Rayon thread is finished, close the Worker. + close(); +} + +await initializeWorker(wasm);`; + + await buildRollup({ + input: { + "worker": "entry", + }, + plugins: [ + virtual({ + "entry": worker, + }), + ], + }, { + dir: `dist/${network}`, + format: "es", + sourcemap: true, + }); +} + + +async function buildTypes(network) { + const js = `/** + * Initializes a thread pool of Workers. This enables multi-threading, which significantly improves performance. + * + * @param {number | undefined} threads Number of threads to spawn. If not specified, uses the number of available cores. + */ +export function initThreadPool(threads?: number): Promise; + +export { + Address, + Execution, + ExecutionResponse, + Field, + Metadata, + OfflineQuery, + Plaintext, + PrivateKey, + PrivateKeyCiphertext, + Program, + ProvingKey, + RecordCiphertext, + RecordPlaintext, + ProgramManager, + Signature, + Transaction, + ViewKey, + VerifyingKey, + verifyFunctionExecution, +} from "./aleo_wasm";`; + + const worker = `export {};`; + + await $fs.mkdir(`dist/${network}`, { recursive: true }) + + await Promise.all([ + $fs.writeFile(`dist/${network}/index.d.ts`, js), + $fs.writeFile(`dist/${network}/worker.d.ts`, worker), + ]); +} + + +// This uses multiple Rollup builds, instead of 1 build. +// +// The reason is because the `worker.js` file needs to be +// fully self-contained, it cannot contain imports to other +// chunks. +// +// But Rollup doesn't support standalone entry points, so we +// hack around it by instead using multiple builds. +// +// But we want to share the Wasm build between the `index.js` +// and `worker.js` builds, so we build the Wasm, and then +// build the `index.js` and `worker.js` separately. +async function build(network) { + await Promise.all([ + buildTypes(network), + buildWasm(network), + ]); + + await Promise.all([ + buildJS(network), + buildWorker(network), + ]); +} + + +const networks = [ + "testnet", + "mainnet", +]; + +await Promise.all(networks.map(build)); diff --git a/wasm/js/index.js b/wasm/js/index.js deleted file mode 100644 index cc4d520c7..000000000 --- a/wasm/js/index.js +++ /dev/null @@ -1,58 +0,0 @@ -import wasm from "../dist/wasm.js"; - -const { - initThreadPool: wasmInitThreadPool, - Address, - Execution, - ExecutionResponse, - Field, - OfflineQuery, - Private, - PrivateKey, - PrivateKeyCiphertext, - Program, - ProvingKey, - RecordCiphertext, - RecordPlaintext, - ProgramManager, - Signature, - Transaction, - ViewKey, - VerifyingKey, - verifyFunctionExecution, -} = await wasm({ - importHook: () => { - return new URL("assets/aleo_wasm.wasm", import.meta.url); - }, -}); - -async function initThreadPool(threads) { - if (threads == null) { - threads = navigator.hardwareConcurrency; - } - - console.info(`Spawning ${threads} threads`); - - await wasmInitThreadPool(new URL("worker.js", import.meta.url), threads); -} - -export { - initThreadPool, - Address, - Execution, - ExecutionResponse, - Field, - OfflineQuery, - PrivateKey, - PrivateKeyCiphertext, - Program, - ProvingKey, - RecordCiphertext, - RecordPlaintext, - ProgramManager, - Signature, - Transaction, - ViewKey, - VerifyingKey, - verifyFunctionExecution, -}; diff --git a/wasm/js/types/index.d.ts b/wasm/js/types/index.d.ts deleted file mode 100644 index bb53d7f62..000000000 --- a/wasm/js/types/index.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Initializes a thread pool of Workers. This enables multi-threading, which significantly improves performance. - * - * @param {number | undefined} threads Number of threads to spawn. If not specified, uses the number of available cores. - */ -export function initThreadPool(threads?: number): Promise; - -export { - Address, - Execution, - ExecutionResponse, - Field, - OfflineQuery, - PrivateKey, - PrivateKeyCiphertext, - Program, - ProvingKey, - RecordCiphertext, - RecordPlaintext, - ProgramManager, - Signature, - Transaction, - ViewKey, - VerifyingKey, - verifyFunctionExecution, -} from "./crates/aleo_wasm"; diff --git a/wasm/js/types/worker.d.ts b/wasm/js/types/worker.d.ts deleted file mode 100644 index 8cec2e9ce..000000000 --- a/wasm/js/types/worker.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; \ No newline at end of file diff --git a/wasm/js/wasm.js b/wasm/js/wasm.js deleted file mode 100644 index aa6e8957d..000000000 --- a/wasm/js/wasm.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from "../Cargo.toml"; diff --git a/wasm/js/worker.js b/wasm/js/worker.js deleted file mode 100644 index 7542fbc23..000000000 --- a/wasm/js/worker.js +++ /dev/null @@ -1,36 +0,0 @@ -import wasm from "../dist/wasm.js"; - -async function initializeWorker(wasm) { - // Wait for the main thread to send us the Module, Memory, and Rayon thread pointer. - function wait() { - return new Promise((resolve) => { - addEventListener("message", (event) => { - resolve(event.data); - }, { - capture: true, - once: true, - }); - }); - } - - const [initWasm, { module, memory, address }] = await Promise.all([ - wasm, - wait(), - ]); - - // Runs the Wasm inside of the Worker, but using the main thread's Module and Memory. - const exports = await initWasm({ - initializeHook: (init, path) => init(module, memory), - }); - - // Tells the main thread that we're finished initializing. - postMessage(null); - - // This will hang the Worker while running the Rayon thread. - exports.runRayonThread(address); - - // When the Rayon thread is finished, close the Worker. - close(); -} - -await initializeWorker(wasm); diff --git a/wasm/package.json b/wasm/package.json index 381178609..6da23952d 100644 --- a/wasm/package.json +++ b/wasm/package.json @@ -1,47 +1,51 @@ { - "name": "@puzzlehq/wasm", - "version": "0.6.8", + "name": "@puzzlehq/aleo-wasm-web", + "version": "0.6.16-staging", "description": "Wasm build for the SDK", "collaborators": [ - "The Aleo Team ", - "The Puzzle Team " + "The Provable Team" ], "license": "GPL-3.0", "type": "module", - "main": "./dist/index.js", - "browser": "./dist/index.js", - "types": "./dist/index.d.ts", + "main": "./dist/testnet/index.js", + "browser": "./dist/testnet/index.js", + "types": "./dist/testnet/index.d.ts", "exports": { - ".": "./dist/index.js", - "./worker.js": "./dist/worker.js" + ".": "./dist/testnet/index.js", + "./worker.js": "./dist/testnet/worker.js", + "./testnet.js": "./dist/testnet/index.js", + "./testnet/worker.js": "./dist/testnet/worker.js", + "./mainnet.js": "./dist/mainnet/index.js", + "./mainnet/worker.js": "./dist/mainnet/worker.js" }, "files": [ "dist", "LICENSE.md", - "README.md" + "README.md", + "snippets/" ], "repository": { "type": "git", - "url": "git+https://github.com/puzzlehq/sdk.git" + "url": "git+https://github.com/ProvableHQ/sdk.git" }, "keywords": [ "Aleo", "Blockchain", - "Zero Knowledge", + "Zero-Knowledge", "ZK" ], "bugs": { - "url": "https://github.com/puzzlehq/sdk/issues" + "url": "https://github.com/ProvableHQ/sdk/issues" }, - "homepage": "https://github.com/puzzlehq/sdk#readme", + "homepage": "https://github.com/ProvableHQ/sdk#readme", "scripts": { - "build": "rimraf dist && rollup -c rollup.config.js && cpr js/types dist && rimraf dist/wasm*", + "build": "rimraf dist && node build.js", "prepublish": "yarn build", "test": "node test.js" }, "devDependencies": { + "@rollup/plugin-virtual": "^3.0.2", "@wasm-tool/rollup-plugin-rust": "^2.4.2", - "cpr": "^3.0.1", "rimraf": "^5.0.1", "rollup": "^3.27.2" } diff --git a/wasm/pnpm-lock.yaml b/wasm/pnpm-lock.yaml index 30ea5e0d8..1c24afdb9 100644 --- a/wasm/pnpm-lock.yaml +++ b/wasm/pnpm-lock.yaml @@ -5,12 +5,12 @@ settings: excludeLinksFromLockfile: false devDependencies: + '@rollup/plugin-virtual': + specifier: ^3.0.2 + version: 3.0.2(rollup@3.27.2) '@wasm-tool/rollup-plugin-rust': specifier: ^2.4.2 version: 2.4.2(rollup@3.27.2) - cpr: - specifier: ^3.0.1 - version: 3.0.1 rimraf: specifier: ^5.0.1 version: 5.0.1 @@ -39,6 +39,18 @@ packages: dev: true optional: true + /@rollup/plugin-virtual@3.0.2(rollup@3.27.2): + resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 3.27.2 + dev: true + /@rollup/pluginutils@5.0.5(rollup@3.27.2): resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} @@ -105,13 +117,6 @@ packages: hasBin: true dev: true - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: @@ -142,20 +147,6 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /cpr@3.0.1: - resolution: {integrity: sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA==} - hasBin: true - dependencies: - graceful-fs: 4.2.11 - minimist: 1.2.8 - mkdirp: 0.5.6 - rimraf: 2.7.1 - dev: true - /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -196,10 +187,6 @@ packages: minipass: 3.3.6 dev: true - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -220,37 +207,11 @@ packages: path-scurry: 1.10.1 dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: true - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -274,12 +235,6 @@ packages: engines: {node: 14 || >=16.14} dev: true - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -287,10 +242,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -316,13 +267,6 @@ packages: yallist: 4.0.0 dev: true - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -341,17 +285,6 @@ packages: whatwg-url: 5.0.0 dev: true - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: true - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -370,13 +303,6 @@ packages: engines: {node: '>=8.6'} dev: true - /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - /rimraf@5.0.1: resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} engines: {node: '>=14'} @@ -506,10 +432,6 @@ packages: strip-ansi: 7.1.0 dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true diff --git a/wasm/rollup.config.js b/wasm/rollup.config.js deleted file mode 100644 index b95abff4d..000000000 --- a/wasm/rollup.config.js +++ /dev/null @@ -1,64 +0,0 @@ -import rust from "@wasm-tool/rollup-plugin-rust"; - -// This uses 3 separate builds, instead of 1 build. -// -// The reason is because the `worker.js` file needs to be -// fully self-contained, it cannot contain imports to other -// chunks. -// -// But Rollup doesn't support standalone entry points, so we -// hack around it by instead using multiple builds. -// -// But we want to share the Wasm build between the `index.js` -// and `worker.js` builds, so we build the Wasm, and then -// build the `index.js` and `worker.js` separately. -export default [ - { - input: { - wasm: "./js/wasm.js", - }, - output: { - dir: `dist`, - format: "es", - sourcemap: true, - assetFileNames: "assets/[name][extname]", - }, - plugins: [ - rust({ - cargoArgs: [ - // This enables multi-threading - "--config", `build.rustflags=["-C", "target-feature=+atomics,+bulk-memory,+mutable-globals", "-C", "link-arg=--max-memory=4294967296"]`, - "--no-default-features", - "--features", "browser", - "-Z", "build-std=panic_abort,std", - ], - - experimental: { - typescriptDeclarationDir: "dist/crates", - }, - }), - ], - }, - - { - input: { - index: "./js/index.js", - }, - output: { - dir: `dist`, - format: "es", - sourcemap: true, - }, - }, - - { - input: { - worker: "./js/worker.js", - }, - output: { - dir: `dist`, - format: "es", - sourcemap: true, - }, - }, -]; diff --git a/wasm/src/account/field.rs b/wasm/src/account/field.rs deleted file mode 100644 index f03c044e5..000000000 --- a/wasm/src/account/field.rs +++ /dev/null @@ -1,177 +0,0 @@ -// Copyright (C) 2019-2023 Aleo Systems Inc. -// This file is part of the Aleo SDK library. - -// The Aleo SDK library is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// The Aleo SDK library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with the Aleo SDK library. If not, see . - -use crate::{ - account::PrivateKey, - types::native::{CurrentNetwork, ComputeKey, FieldNative, Field, FromBits, Literal, Network, Scalar, SizeInDataBits, ToFields, Value} -}; - -use anyhow::Error; -use rand::{rngs::StdRng, SeedableRng}; -use wasm_bindgen::prelude::*; -use std::collections::HashMap; -use snarkvm_wasm::utilities::{Uniform, ToBits}; -use itertools::Itertools; - - -#[wasm_bindgen] -pub struct JsField(FieldNative); - - -#[wasm_bindgen] -impl JsField { - - // gen_message(nonce, message_plaintext) β†’ msg_Leo_verify: { field_1: 123125field, field_2:123131field }, - // msg_client_signing: ["field_1: 123125field, field_2:123131".to_fields()] - pub fn generate_message_leo ( - private_key: &PrivateKey, - message: &[u8], - seed: &[u8], - ) -> String { - - // {record} -> encode(record) -> generate_message - // question what are we are we sending in? - // all we need is message verify to be the same as message sign - // Ensure the number of field elements does not exceed the maximum allowed size. - // Sample a random nonce from the scalar field. - - let seed_array = <[u8; 32]>::try_from(seed).expect("Invalid seed length"); - let mut rng = StdRng::from_seed(seed_array); - - let msg_bits: &[bool] = &message.to_bits_le(); - - let message_fields: Vec> = - msg_bits.chunks(Field::::size_in_data_bits()).map(Field::from_bits_le).collect::, Error>>().unwrap(); - - let vec_msg_first_field = vec![message_fields[0]]; - - let nonce = Scalar::rand(&mut rng); - - let g_r = Network::g_scalar_multiply(&nonce); - - let pk_sig = Network::g_scalar_multiply(&private_key.sk_sig()); - - let pr_sig = Network::g_scalar_multiply(&private_key.r_sig()); - - let compute_key = ComputeKey::try_from((pk_sig, pr_sig)).unwrap(); - - let address = compute_key.to_address(); - - let mut msg = Vec::with_capacity(4 + message_fields.len()); - msg.extend([g_r, pk_sig, pr_sig, *address].map(|point| point.to_x_coordinate())); - msg.extend(vec_msg_first_field); - - let mut my_dict: HashMap> = HashMap::new(); - - for (index, field) in msg.clone().into_iter().enumerate() { - let lit = Literal::Field(field); - let val = Value::from(&lit); // assuming the conversion takes a reference - let key = format!("field_{}", index + 1); // generate key in the format "field_i" - my_dict.insert(key, val); - } - - let string_representation: String = my_dict.iter() - .map(|(k, v)| (k, k.trim_start_matches("field_").parse::().unwrap_or(0), v)) // extract numeric part - .sorted_by(|(_, a_num, _), (_, b_num, _)| a_num.cmp(b_num)) // sort by the numeric part - .map(|(key, _, value)| format!("{}: {:?}", key, value)) // Use Debug trait for formatting - .collect::>() - .join(",\n"); - - let result = format!("{{\n{}\n}}", string_representation); - - return result; - - } - - - pub fn generate_message_clients ( - private_key: &PrivateKey, - message: &[u8], - seed: &[u8] - ) -> String { - - let seed_array = <[u8; 32]>::try_from(seed).expect("Invalid seed length"); - let mut rng = StdRng::from_seed(seed_array); - - let msg_bits: &[bool] = &message.to_bits_le(); - - let message_fields: Vec> = - msg_bits.chunks(Field::::size_in_data_bits()).map(Field::from_bits_le).collect::, Error>>().unwrap(); - - let vec_msg_first_field = vec![message_fields[0]]; - - let nonce = Scalar::rand(&mut rng); - - let g_r = Network::g_scalar_multiply(&nonce); - - let pk_sig = Network::g_scalar_multiply(&private_key.sk_sig()); - - let pr_sig = Network::g_scalar_multiply(&private_key.r_sig()); - - let compute_key = ComputeKey::try_from((pk_sig, pr_sig)).unwrap(); - - let address = compute_key.to_address(); - - let mut msg = Vec::with_capacity(4 + message_fields.len()); - msg.extend([g_r, pk_sig, pr_sig, *address].map(|point| point.to_x_coordinate())); - msg.extend(vec_msg_first_field); - - let mut my_dict: HashMap> = HashMap::new(); - - for (index, field) in msg.clone().into_iter().enumerate() { - let lit = Literal::Field(field); - let val = Value::from(&lit); // assuming the conversion takes a reference - let key = format!("field_{}", index + 1); // generate key in the format "field_i" - my_dict.insert(key, val); - } - - let string_representation: String = my_dict.iter() - .map(|(k, v)| (k, k.trim_start_matches("field_").parse::().unwrap_or(0), v)) // extract numeric part - .sorted_by(|(_, a_num, _), (_, b_num, _)| a_num.cmp(b_num)) // sort by the numeric part - .map(|(key, _, value)| format!("{}: {:?}", key, value)) // Use Debug trait for formatting - .collect::>() - .join(",\n"); - - let result = format!("{{\n{}\n}}", string_representation); - - let val_of_dict: Value = Value::try_from(&result).unwrap(); - - let val_unwrapped = val_of_dict; - - let msg_to_fields = val_unwrapped.to_fields().unwrap(); - - let mut dict_of_fields: HashMap> = HashMap::new(); - - for (index, field) in msg_to_fields.clone().into_iter().enumerate() { - let lit = Literal::Field(field); - let val = Value::from(&lit); // assuming the conversion takes a reference - let key = format!("field_{}", index + 1); // generate key in the format "field_i" - dict_of_fields.insert(key, val); - } - - let fields_string_representation: String = dict_of_fields.iter() - .map(|(k, v)| (k, k.trim_start_matches("field_").parse::().unwrap_or(0), v)) // extract numeric part - .sorted_by(|(_, a_num, _), (_, b_num, _)| a_num.cmp(b_num)) // sort by the numeric part - .map(|(key, _, value)| format!(" {}: {:?}", key, value)) // Use Debug trait for formatting - .collect::>() - .join(",\n"); - - let msg_to_fields_str = format!("{{\n{}\n}}", fields_string_representation); - - return msg_to_fields_str; - - } -} \ No newline at end of file diff --git a/wasm/src/account/mod.rs b/wasm/src/account/mod.rs index 3a684ff50..ca88a9df9 100644 --- a/wasm/src/account/mod.rs +++ b/wasm/src/account/mod.rs @@ -17,9 +17,6 @@ pub mod address; pub use address::*; -pub mod field; -pub use field::*; - pub mod encryptor; pub use encryptor::*; diff --git a/wasm/src/account/private_key.rs b/wasm/src/account/private_key.rs index 22388fc78..d81330931 100644 --- a/wasm/src/account/private_key.rs +++ b/wasm/src/account/private_key.rs @@ -14,11 +14,8 @@ // You should have received a copy of the GNU General Public License // along with the Aleo SDK library. If not, see . -use crate::{ - account::{Address, Encryptor, PrivateKeyCiphertext, Signature, ViewKey}, - types::native::{CurrentNetwork, Environment, FromBytes, PrimeField, PrivateKeyNative, ToBytes}, -}; - +use crate::account::{Address, Encryptor, PrivateKeyCiphertext, Signature, ViewKey}; +use crate::types::native::{CurrentNetwork, Environment, FromBytes, PrimeField, PrivateKeyNative, ToBytes}; use core::{convert::TryInto, fmt, ops::Deref, str::FromStr}; use rand::{rngs::StdRng, SeedableRng}; use wasm_bindgen::prelude::*; diff --git a/wasm/src/account/signature.rs b/wasm/src/account/signature.rs index 36f7e6d11..cf224e4b1 100644 --- a/wasm/src/account/signature.rs +++ b/wasm/src/account/signature.rs @@ -14,11 +14,8 @@ // You should have received a copy of the GNU General Public License // along with the Aleo SDK library. If not, see . -use crate::{ - account::{Address, PrivateKey}, - types::native::{CurrentNetwork, ComputeKey, Network, Scalar, SignatureNative, ToFields, Value} -}; -use snarkvm_wasm::utilities::Uniform; +use crate::account::{Address, PrivateKey}; +use crate::types::native::SignatureNative; use core::{fmt, ops::Deref, str::FromStr}; use rand::{rngs::StdRng, SeedableRng}; use wasm_bindgen::prelude::*; @@ -38,79 +35,6 @@ impl Signature { Self(SignatureNative::sign_bytes(private_key, message, &mut StdRng::from_entropy()).unwrap()) } - - pub fn sign_message(private_key: &PrivateKey, message: &[u8], seed: &[u8]) -> Self { - // seed used for generating rng - let seed_array = <[u8; 32]>::try_from(seed).expect("Invalid seed length"); - let mut rng = StdRng::from_seed(seed_array); - - let message_slice: &[u8] = &message; - let message_str = match std::str::from_utf8(message_slice) { - Ok(v) => v.to_string(), - Err(e) => panic!("Invalid UTF-8 sequence: {}", e), - }; - let message_value: Value = Value::from_str(&message_str).unwrap(); - let mut message_to_fields = message_value.to_fields().unwrap(); - if message_to_fields.len() > CurrentNetwork::MAX_DATA_SIZE_IN_FIELDS as usize { - panic!("Cannot sign the message: the message exceeds maximum allowed size"); - }; - - let nonce = Scalar::rand(&mut rng); - let g_r = Network::g_scalar_multiply(&nonce); - let pk_sig = Network::g_scalar_multiply(&private_key.sk_sig()); - let pr_sig = Network::g_scalar_multiply(&private_key.r_sig()); - let compute_key = ComputeKey::try_from((pk_sig, pr_sig)).unwrap(); - let address = compute_key.to_address(); - - // need to splice in g_r, pk_sig, pr_sig, address ... and sign against that - let prepend_items: Vec<_> = [g_r, pk_sig, pr_sig, *address] - .iter() // Convert the array to an iterator - .map(|&point| point.to_x_coordinate()) - .collect(); - message_to_fields.splice(0..0, prepend_items); - - // Compute the verifier challenge. - let challenge = Network::hash_to_scalar_psd8(&message_to_fields).unwrap(); - - // Compute the prover response. - let response = nonce - (challenge * private_key.sk_sig()); - - let sig = SignatureNative::from((challenge, response, compute_key)); - - // note: keeping result, dict, etc below here for debugging message that one is signing against. - // to see message one is signing against, change return to string and return result - - // let result = format!("{{\n{}\n}} + {}", string_representation, sig); - - // let mut my_dict: HashMap> = HashMap::new(); - - // for (index, field) in message.clone().into_iter().enumerate() { - // let lit = Literal::Field(field); - // let val = Value::from(&lit); // assuming the conversion takes a reference - // let key = format!("field_{}", index + 1); // generate key in the format "field_i" - // my_dict.insert(key, val); - // } - - // Output the signature. - // let string_representation: String = my_dict.iter() - // .map(|(k, v)| (k, k.trim_start_matches("field_").parse::().unwrap_or(0), v)) // extract numeric part - // .sorted_by(|(_, a_num, _), (_, b_num, _)| a_num.cmp(b_num)) // sort by the numeric part - // .map(|(key, _, value)| format!(" {}: {:?}", key, value)) // Use Debug trait for formatting - // .collect::>() - // .join(",\n"); - - // Verify the signature. - // let address = Address::try_from(&private_key).unwrap(); - // assert!(signature.verify(&address, &message)); - - // // Print the results. - // print!("{signature}"); - // print!(" {address}"); - // print!(" \"{value}\"") - - Self(sig) - } - /// Verify a signature of a message with an address /// /// @param {Address} address The address to verify the signature with diff --git a/wasm/src/account/view_key.rs b/wasm/src/account/view_key.rs index 85a205bfa..10a174b7e 100644 --- a/wasm/src/account/view_key.rs +++ b/wasm/src/account/view_key.rs @@ -15,18 +15,12 @@ // along with the Aleo SDK library. If not, see . use super::{Address, PrivateKey}; -use crate::record::RecordCiphertext; -use snarkvm_console::{ - account::ViewKey as RustViewKey, - network::{Testnet3, Network}, - types::{Group, U16, Field}, - program::{Ciphertext, Identifier} -}; -use snarkvm_utilities::ToBits; - -use crate::types::native::ViewKeyNative; -use core::{convert::TryFrom, fmt, ops::Deref, str::FromStr}; +use snarkvm_console::types::{Field, Group, U16}; +use crate::{record::RecordCiphertext, types::native::{CiphertextNative, IdentifierNative}}; +use crate::types::native::{CurrentNetwork, ViewKeyNative}; +use core::{fmt, ops::Deref, str::FromStr}; use wasm_bindgen::prelude::*; +use snarkvm_console::prelude::{Network, ToBits}; #[wasm_bindgen] #[derive(Clone, Debug, PartialEq, Eq)] @@ -77,34 +71,34 @@ impl ViewKey { } } - // // Decrypt ciphertext (non-record), usually program inputs and outputs, ex: "cipher1as1l2jj32392390fh2eif02h02f20f0h" - // pub fn decrypt_ciphertext( - // &self, - // ciphertext: &str, - // tpk: &str, - // program_name: &str, - // function_name: &str, - // index: u16, - // ) -> Result { - // let vk: RustViewKey = - // RustViewKey::::from_str(&self.to_string()).map_err(|error| error.to_string())?; - // let tpk = Group::::from_str(tpk).unwrap(); - // let tvk = (tpk * *vk).to_x_coordinate(); - // let bits = &( - // U16::::new(3).to_bits_le(), - // &Identifier::::from_str(program_name).unwrap().to_bits_le(), - // &Identifier::::from_str("aleo").unwrap().to_bits_le(), - // &Identifier::::from_str(function_name).unwrap().to_bits_le(), - // ).collect(); - - // let function_id = ::hash_bhp1024(bits).unwrap(); - // let ivk = ::hash_psd4(&[function_id, tvk, Field::from_u16(index)]).unwrap(); - // let ciphertext = Ciphertext::::from_str(ciphertext).unwrap(); - // match ciphertext.decrypt_symmetric(ivk) { - // Ok(plaintext) => Ok(plaintext.to_string()), - // Err(error) => Err(error.to_string()), - // } - // } + // Decrypt ciphertext (non-record), usually program inputs and outputs, ex: "cipher1as1l2jj32392390fh2eif02h02f20f0h" + pub fn decrypt_ciphertext( + &self, + ciphertext: &str, + tpk: &str, + program_name: &str, + function_name: &str, + index: u16, + ) -> Result { + let vk: ViewKeyNative = ViewKeyNative::from_str(&self.to_string()).map_err(|error| error.to_string())?; + let tpk = Group::::from_str(tpk).unwrap(); + let tvk = (tpk * *vk).to_x_coordinate(); + let bits = &( + U16::::new(3), + &IdentifierNative::from_str(program_name).unwrap(), + &IdentifierNative::from_str("aleo").unwrap(), + &IdentifierNative::from_str(function_name).unwrap(), + ) + .to_bits_le(); + + let function_id = ::hash_bhp1024(bits).unwrap(); + let ivk = ::hash_psd4(&[function_id, tvk, Field::from_u16(index)]).unwrap(); + let ciphertext = CiphertextNative::from_str(ciphertext).unwrap(); + match ciphertext.decrypt_symmetric(ivk) { + Ok(plaintext) => Ok(plaintext.to_string()), + Err(error) => Err(error.to_string()), + } + } } impl FromStr for ViewKey { diff --git a/wasm/src/lib.rs b/wasm/src/lib.rs index 4e75636ef..b0b183d2c 100644 --- a/wasm/src/lib.rs +++ b/wasm/src/lib.rs @@ -19,7 +19,7 @@ //! [![Authors](https://img.shields.io/badge/authors-Aleo-orange.svg)](https://aleo.org) //! [![License](https://img.shields.io/badge/License-GPLv3-blue.svg)](./LICENSE.md) //! -//! [![github]](https://github.com/AleoHQ/sdk) [![crates-io]](https://crates.io/crates/aleo-wasm) [![docs-rs]](https://docs.rs/aleo-wasm/latest/aleo-wasm/) +//! [![github]](https://github.com/ProvableHQ/sdk) [![crates-io]](https://crates.io/crates/aleo-wasm) [![docs-rs]](https://docs.rs/aleo-wasm/latest/aleo-wasm/) //! //! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github //! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust @@ -148,7 +148,7 @@ //! ## Building Web Apps //! //! Further documentation and tutorials as to how to use the modules built from this crate to build web apps will be built -//! in the future. However - in the meantime, the [aleo.tools](https://aleo.tools) website is a good +//! in the future. However - in the meantime, the [provable.tools](https://provable.tools) website is a good //! example of how to use these modules to build a web app. Its source code can be found in the //! @@ -165,6 +165,7 @@ pub use record::*; pub mod types; pub use types::Field; +pub use types::Plaintext; #[cfg(not(test))] mod thread_pool; @@ -173,6 +174,8 @@ mod thread_pool; mod thread_pool { use std::future::Future; + #[allow(dead_code)] + #[allow(clippy::manual_async_fn)] pub fn spawn(f: F) -> impl Future where A: Send + 'static, diff --git a/wasm/src/programs/execution.rs b/wasm/src/programs/execution.rs index 866c78e87..9548297a2 100644 --- a/wasm/src/programs/execution.rs +++ b/wasm/src/programs/execution.rs @@ -96,7 +96,7 @@ pub fn verify_function_execution( process.verify_execution(execution).map_or(Ok(false), |_| Ok(true)) } -#[cfg(test)] +/*#[cfg(test)] mod tests { use super::*; use wasm_bindgen_test::*; @@ -106,11 +106,11 @@ mod tests { #[wasm_bindgen_test] fn test_execution_verification() { let execution = Execution::from_string(EXECUTION).unwrap(); - let verifying_key_bytes = snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap(); + let verifying_key_bytes = crate::types::native::parameters::TransferPublicVerifier::load_bytes().unwrap(); let verifying_key = VerifyingKey::from_bytes(&verifying_key_bytes).unwrap(); assert!( verify_function_execution(&execution, &verifying_key, &Program::get_credits_program(), "transfer_public") .unwrap() ); } -} +}*/ diff --git a/wasm/src/programs/macros.rs b/wasm/src/programs/macros.rs index 343d2af59..0d52a1c8b 100644 --- a/wasm/src/programs/macros.rs +++ b/wasm/src/programs/macros.rs @@ -14,6 +14,18 @@ // You should have received a copy of the GNU General Public License // along with the Aleo SDK library. If not, see . +#[macro_export] +macro_rules! network_string_id { + ($network_id:expr) => { + match $network_id { + 2u16 => Ok("CanaryV0"), + 1u16 => Ok("TestnetV0"), + 0u16 => Ok("MainnetV0"), + _ => Err(format!("Unsupported network: {:?}", $network_id)), + } + }; +} + #[macro_export] macro_rules! process_inputs { ($inputs:expr) => {{ diff --git a/wasm/src/programs/manager/deploy.rs b/wasm/src/programs/manager/deploy.rs index 01719327e..86cd29450 100644 --- a/wasm/src/programs/manager/deploy.rs +++ b/wasm/src/programs/manager/deploy.rs @@ -15,7 +15,6 @@ // along with the Aleo SDK library. If not, see . use super::*; - use crate::{execute_fee, log, OfflineQuery, PrivateKey, RecordPlaintext, Transaction}; use crate::types::native::{ CurrentAleo, diff --git a/wasm/src/programs/manager/execute.rs b/wasm/src/programs/manager/execute.rs index 34b89587e..d218a8a0b 100644 --- a/wasm/src/programs/manager/execute.rs +++ b/wasm/src/programs/manager/execute.rs @@ -16,15 +16,17 @@ use super::*; use core::ops::Add; - use crate::{ execute_fee, execute_program, log, process_inputs, - ExecutionResponse, OfflineQuery, PrivateKey, RecordPlaintext, Transaction, + ExecutionResponse, + OfflineQuery, + PrivateKey, + RecordPlaintext, + Transaction, }; - use crate::types::native::{ CurrentAleo, IdentifierNative, @@ -35,10 +37,120 @@ use crate::types::native::{ }; use js_sys::{Array, Object}; use rand::{rngs::StdRng, SeedableRng}; +use serde::Serialize; use std::str::FromStr; +#[wasm_bindgen] +#[derive(Serialize)] +pub struct AuthorizationResponse { + authorization: String, + fee_authorization: String +} + +#[wasm_bindgen] +impl AuthorizationResponse { + #[wasm_bindgen(getter)] + pub fn authorization(&self) -> String { + self.authorization.clone() + } + + #[wasm_bindgen(getter)] + pub fn fee_authorization(&self) -> String { + self.fee_authorization.clone() + } +} + #[wasm_bindgen] impl ProgramManager { + #[wasm_bindgen(js_name = authExecute)] + pub async fn authorize( + program: &str, + function_id: &str, + inputs_str: Array, + private_key: &str, + imports: Option, + fee_microcredits: u64, + fee_record: Option + ) -> Result { + // parse inputs + let program = ProgramNative::from_str(&program).map_err(|e| e.to_string())?; + let function_name = IdentifierNative::from_str(&function_id) + .map_err(|e| e.to_string())?; + + // create process and load program and its imports into the process + log("adding program inputs to the process..."); + let mut process_native = ProcessNative::load().expect("😡 could not load process"); + let process = &mut process_native; + // resolve the program imports if they exist + ProgramManager::resolve_imports(process, &program, imports).map_err(|e| e.to_string())?; + let program_id = program.id().to_string(); + if program_id != "credits.aleo" { + if let Ok(stored_program) = process.get_program(program.id()) { + log("adding *stored* program to the process"); + if stored_program != &program { + return Err("😡 the program provided does not match the program stored in the cache, please clear the cache before proceeding".to_string()); + } + } else { + log(&format!("adding program {} to the process", program.id().to_string())); + process.add_program(&program).map_err(|e| e.to_string())?; + } + } + + let private_key = PrivateKey::from_str(private_key).map_err(|e| e.to_string())?; + + + // create the process authorization + let inputs_vec = inputs_str.to_vec(); + let mut inputs = Vec::::new(); + for input in inputs_vec.to_vec().iter() { + if let Some(input) = input.as_string() { + inputs.push(input); + } else { + // TODO -- Handle the case where input is None + // For now -- just continue to the next iteration of the loop + continue; + } + } + let rng = &mut StdRng::from_entropy(); + log("creating authorization..."); + let authorization = process + .authorize::( + &private_key, + program.id(), + function_name, + inputs.iter(), + rng, + ) + .map_err(|e| { + log(&format!("error creating authorization {}", e)); + e.to_string() + })?; + + let execution_id = authorization.to_execution_id().map_err(|e| e.to_string())?; + + let fee_authorization = match fee_record { + Some(fee_record) => { + let fee_record = RecordPlaintextNative::from_str(&fee_record).map_err(|e| e.to_string())?; + process.authorize_fee_private::( + &private_key, + fee_record, + fee_microcredits, + 0u64, + execution_id, + rng + ).map_err(|e| e.to_string())? + } + None => { + process.authorize_fee_public::(&private_key, fee_microcredits, 0u64, execution_id, &mut StdRng::from_entropy()).map_err(|e| e.to_string())? + } + }; + + Ok(AuthorizationResponse { + authorization: authorization.to_string(), + fee_authorization: fee_authorization.to_string() + }) + } + /// Execute an arbitrary function locally /// /// @param {PrivateKey} private_key The private key of the sender @@ -302,7 +414,7 @@ impl ProgramManager { let stack = process.get_stack(program_id).map_err(|e| e.to_string())?; // Calculate the finalize cost for the function identified in the transition - let cost = cost_in_microcredits(&stack, function_name).map_err(|e| e.to_string())?; + let cost = cost_in_microcredits(stack, function_name).map_err(|e| e.to_string())?; // Accumulate the finalize cost. finalize_cost = finalize_cost diff --git a/wasm/src/programs/manager/join.rs b/wasm/src/programs/manager/join.rs index 334944cdb..b96198b49 100644 --- a/wasm/src/programs/manager/join.rs +++ b/wasm/src/programs/manager/join.rs @@ -15,10 +15,15 @@ // along with the Aleo SDK library. If not, see . use super::*; - use crate::{ - execute_fee, execute_program, log, process_inputs, - OfflineQuery, PrivateKey, RecordPlaintext, Transaction, + execute_fee, + execute_program, + log, + process_inputs, + OfflineQuery, + PrivateKey, + RecordPlaintext, + Transaction, }; use crate::types::native::{ diff --git a/wasm/src/programs/manager/mod.rs b/wasm/src/programs/manager/mod.rs index ebbaea133..3c14f73e2 100644 --- a/wasm/src/programs/manager/mod.rs +++ b/wasm/src/programs/manager/mod.rs @@ -19,19 +19,8 @@ pub mod execute; pub mod join; pub mod split; pub mod transfer; - -use crate::{ - // types::{ - // cost_in_microcredits, deployment_cost, CurrentAleo, IdentifierNative, ProcessNative, ProgramIDNative, - // ProgramNative, ProvingKeyNative, QueryNative, VerifyingKeyNative, - // }, - KeyPair, PrivateKey, ProvingKey, RecordPlaintext, VerifyingKey, -}; - const DEFAULT_URL: &str = "https://api.explorer.aleo.org/v1"; - -// use crate::{KeyPair, PrivateKey, ProvingKey, RecordPlaintext, VerifyingKey}; - +use crate::{KeyPair, PrivateKey, ProvingKey, RecordPlaintext, VerifyingKey}; use crate::types::native::{ cost_in_microcredits, deployment_cost, diff --git a/wasm/src/programs/manager/split.rs b/wasm/src/programs/manager/split.rs index 47df500fe..91a25c3f7 100644 --- a/wasm/src/programs/manager/split.rs +++ b/wasm/src/programs/manager/split.rs @@ -15,14 +15,15 @@ // along with the Aleo SDK library. If not, see . use super::*; - use crate::{ execute_program, log, process_inputs, - OfflineQuery, PrivateKey, RecordPlaintext, Transaction + OfflineQuery, + PrivateKey, + RecordPlaintext, + Transaction }; - use crate::types::native::{CurrentAleo, IdentifierNative, ProcessNative, ProgramNative, TransactionNative}; use js_sys::Array; use rand::{rngs::StdRng, SeedableRng}; diff --git a/wasm/src/programs/manager/transfer.rs b/wasm/src/programs/manager/transfer.rs index 51358776e..52f77d100 100644 --- a/wasm/src/programs/manager/transfer.rs +++ b/wasm/src/programs/manager/transfer.rs @@ -15,15 +15,16 @@ // along with the Aleo SDK library. If not, see . use super::*; - use crate::{ execute_fee, execute_program, log, process_inputs, - OfflineQuery, PrivateKey, RecordPlaintext, Transaction, + OfflineQuery, + PrivateKey, + RecordPlaintext, + Transaction, }; - use crate::types::native::{ CurrentAleo, IdentifierNative, @@ -32,9 +33,9 @@ use crate::types::native::{ RecordPlaintextNative, TransactionNative, }; -use js_sys::Array; use rand::{rngs::StdRng, SeedableRng}; use std::{ops::Add, str::FromStr}; +use wasm_bindgen::JsValue; #[wasm_bindgen] impl ProgramManager { @@ -93,32 +94,44 @@ impl ProgramManager { if amount_record.is_none() { return Err("Amount record must be provided for private transfers".to_string()); } - let inputs = Array::new_with_length(3); - inputs.set(0u32, wasm_bindgen::JsValue::from_str(&amount_record.unwrap().to_string())); - inputs.set(1u32, wasm_bindgen::JsValue::from_str(recipient)); - inputs.set(2u32, wasm_bindgen::JsValue::from_str(&amount_microcredits.to_string().add("u64"))); + let inputs = [ + JsValue::from_str(&amount_record.unwrap().to_string()), + JsValue::from(recipient), + JsValue::from(&amount_microcredits.to_string().add("u64")), + ] + .into_iter() + .collect::(); ("transfer_private", inputs) } "private_to_public" | "privateToPublic" | "transfer_private_to_public" | "transferPrivateToPublic" => { if amount_record.is_none() { return Err("Amount record must be provided for private transfers".to_string()); } - let inputs = Array::new_with_length(3); - inputs.set(0u32, wasm_bindgen::JsValue::from_str(&amount_record.unwrap().to_string())); - inputs.set(1u32, wasm_bindgen::JsValue::from_str(recipient)); - inputs.set(2u32, wasm_bindgen::JsValue::from_str(&amount_microcredits.to_string().add("u64"))); + let inputs = [ + JsValue::from_str(&amount_record.unwrap().to_string()), + JsValue::from(recipient), + JsValue::from(&amount_microcredits.to_string().add("u64")), + ] + .into_iter() + .collect::(); ("transfer_private_to_public", inputs) } "public" | "transfer_public" | "transferPublic" => { - let inputs = Array::new_with_length(2); - inputs.set(0u32, wasm_bindgen::JsValue::from_str(recipient)); - inputs.set(1u32, wasm_bindgen::JsValue::from_str(&amount_microcredits.to_string().add("u64"))); + let inputs = [JsValue::from(recipient), JsValue::from(&amount_microcredits.to_string().add("u64"))] + .into_iter() + .collect::(); ("transfer_public", inputs) } + "public_as_signer" | "transfer_public_as_signer" | "transferPublicAsSigner" => { + let inputs = [JsValue::from(recipient), JsValue::from(&amount_microcredits.to_string().add("u64"))] + .into_iter() + .collect::(); + ("transfer_public_as_signer", inputs) + } "public_to_private" | "publicToPrivate" | "transfer_public_to_private" | "transferPublicToPrivate" => { - let inputs = Array::new_with_length(2); - inputs.set(0u32, wasm_bindgen::JsValue::from_str(recipient)); - inputs.set(1u32, wasm_bindgen::JsValue::from_str(&amount_microcredits.to_string().add("u64"))); + let inputs = [JsValue::from(recipient), JsValue::from(&amount_microcredits.to_string().add("u64"))] + .into_iter() + .collect::(); ("transfer_public_to_private", inputs) } _ => return Err("Invalid transfer type".to_string()), diff --git a/wasm/src/programs/offline_query.rs b/wasm/src/programs/offline_query.rs index a3387fc59..14f3e4cc9 100644 --- a/wasm/src/programs/offline_query.rs +++ b/wasm/src/programs/offline_query.rs @@ -99,14 +99,12 @@ impl QueryTrait for OfflineQuery { mod tests { use super::*; - use crate::RecordPlaintext; - use wasm_bindgen_test::*; const OFFLINE_QUERY: &str = r#"{"state_paths":{},"state_root":"sr1wjueje6hy86yw9j4lhl7jwvhjxwunw34paj4k3cn2wm5h5r2syfqd83yw4"}"#; - const RECORD: &str = "{ owner: aleo1rlwt9w0fl242h40w454m68vttd6vm4lmetu5r57unm5g354y9yzsyexf0y.private, microcredits: 1000000u64.private, _nonce: 2899260364216345893364017846447050369739821279831870104066405119445828210771group.public}"; - const RECORD_STATE_PATH: &str = "path1q96tnxt82uslg3ck2h7ll6fej7gemjd6x58k2k68zdfmwj7sd2q39u24qgqqqqqqqz8vhmupdu4wg3cv08ul4sjlz6je764cznh6ye9qkuc57272er7qzzy3nhhnyfxkvfs2m8zplzsxq2ctf2u5edwp0yavvyxsz54c99qrfs9aay3vhyecmc8f560glgmqv9c0awkg3upuj9rtm5u8t36dyyz7jsksttvfdkd75znvh6h83lqpq6q0eclym87t8ra2days24ew5racm54fffl3z4u2c29tzwykys7plxmct7khyuddgh6268ywgzyfzxe4uqm5svma27ptqccznezwmkj0vcpma3e9vu5lun96knvf5qus44sz5093p5wcdxwkjjr356knt65wjpnzpek2ad789req5e67rqqwrln54hlvhefl2xg36g6n2dn06k6l5jwn3y8xtlfg60wcr5huzvxluvc62x7sx74rpvjldq67v7fmtj0n3mvmczqg5dunz8aa7dumzpkehlddjk7gpjcn0fselmwx08ggf0vtfr4lvr6mpjycgtvfres5qwsgsu25xd27p23f4czqalhf3fhyvg4evwa2u4y27f2q59khvhjsfkqrr67gkw23s47vrmql5q0uk8cp63dpr4ttdehtq8rls0zmj2qvtns3uqeg2fann8e777nhmsddggxn3x67203309kngauujtuw0g8436902ggxze9cfprv8nh8n265phfls95ud9lfzwnvj80let33cpt2x5c5avy0czx3m5vv3ra8r0cw2f2e22dz72lzwkl3c5z8qfuupgs7xhpg42areg227kkflyhpn0cj260yhpeg567fkskljmv7zckqwz6rnk6l2yg7xpeyc3dy907wefjn5w35prnacapd4acn20qeldgwwmuev0d8t6tz02x2kv8qg9sxhakx6fmw5rd35fda735pchuct5gcg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyxqgy0ryzze4sllaq3hvhsk90h2qhx308xmfg63n740w6wjrk3qgl99r8gr9efj5yeddqdetk6n8cww9sawuhes4l5tan0zctne6n6px58ez93eujhk4qrreq9m0a9m54s93f4zvfa25k0a4w79gfl9grp5qsqqqqqqqqqqzr7mae3y6kkgqc3q3u2cte5vu328u7slgw9dnw9zu4x6uyvt5apykyzgq7g2pjq384shpxqvenrf2xzqpe6era69vcprljemjfu7rq98km83fkceft37tef3l5yd0u3d0vklnrre0xxus0x4cuy48dafs9q8a9z296cvk40q48sva0ndq7uhz4fk87xxrkku9x487afcaus0fpqqsqqqqqqqqqqzzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqgcnhf9dy704t3qcqwfz2zn23tyaax8uyfw9rflmz807edsq542qdss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfvfkqsgfjgwe874pq983afd72ptcv6hx664appmslfk2jptvjecdqqqqqqqqqqqqppq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqgqgqqzk3ftj0dmy8gphrl85l8cfgrf8vpzdflzw7zu4ppfnxsn3vv2wqvatgjpp5234t647yyh37w3jmz37yyur5c5cg4rxgpwjecnpm2xsrceze3ptsf2gw50t0zznhzx0an9ezz8zfa37kxkw8ucw7f3gwlvqsyqqqqqqqqqqq0ylf8je3k7c464x6fpcur8s7ju93yum7kyq0p6hjkqdg24smwsz9vllufwczy2t0v3elfsv5ymkh8rp34acu9cc0rhjut7d9x684cqvyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyqypq8m5dp6ejcmzg46vm4ng7xvxrya7dd4z5qam2afc8gclnkz50cgsgkwy6dt"; + //const RECORD: &str = "{ owner: aleo1rlwt9w0fl242h40w454m68vttd6vm4lmetu5r57unm5g354y9yzsyexf0y.private, microcredits: 1000000u64.private, _nonce: 2899260364216345893364017846447050369739821279831870104066405119445828210771group.public}"; + //const RECORD_STATE_PATH: &str = "path1q96tnxt82uslg3ck2h7ll6fej7gemjd6x58k2k68zdfmwj7sd2q39u24qgqqqqqqqz8vhmupdu4wg3cv08ul4sjlz6je764cznh6ye9qkuc57272er7qzzy3nhhnyfxkvfs2m8zplzsxq2ctf2u5edwp0yavvyxsz54c99qrfs9aay3vhyecmc8f560glgmqv9c0awkg3upuj9rtm5u8t36dyyz7jsksttvfdkd75znvh6h83lqpq6q0eclym87t8ra2days24ew5racm54fffl3z4u2c29tzwykys7plxmct7khyuddgh6268ywgzyfzxe4uqm5svma27ptqccznezwmkj0vcpma3e9vu5lun96knvf5qus44sz5093p5wcdxwkjjr356knt65wjpnzpek2ad789req5e67rqqwrln54hlvhefl2xg36g6n2dn06k6l5jwn3y8xtlfg60wcr5huzvxluvc62x7sx74rpvjldq67v7fmtj0n3mvmczqg5dunz8aa7dumzpkehlddjk7gpjcn0fselmwx08ggf0vtfr4lvr6mpjycgtvfres5qwsgsu25xd27p23f4czqalhf3fhyvg4evwa2u4y27f2q59khvhjsfkqrr67gkw23s47vrmql5q0uk8cp63dpr4ttdehtq8rls0zmj2qvtns3uqeg2fann8e777nhmsddggxn3x67203309kngauujtuw0g8436902ggxze9cfprv8nh8n265phfls95ud9lfzwnvj80let33cpt2x5c5avy0czx3m5vv3ra8r0cw2f2e22dz72lzwkl3c5z8qfuupgs7xhpg42areg227kkflyhpn0cj260yhpeg567fkskljmv7zckqwz6rnk6l2yg7xpeyc3dy907wefjn5w35prnacapd4acn20qeldgwwmuev0d8t6tz02x2kv8qg9sxhakx6fmw5rd35fda735pchuct5gcg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyxqgy0ryzze4sllaq3hvhsk90h2qhx308xmfg63n740w6wjrk3qgl99r8gr9efj5yeddqdetk6n8cww9sawuhes4l5tan0zctne6n6px58ez93eujhk4qrreq9m0a9m54s93f4zvfa25k0a4w79gfl9grp5qsqqqqqqqqqqzr7mae3y6kkgqc3q3u2cte5vu328u7slgw9dnw9zu4x6uyvt5apykyzgq7g2pjq384shpxqvenrf2xzqpe6era69vcprljemjfu7rq98km83fkceft37tef3l5yd0u3d0vklnrre0xxus0x4cuy48dafs9q8a9z296cvk40q48sva0ndq7uhz4fk87xxrkku9x487afcaus0fpqqsqqqqqqqqqqzzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqgcnhf9dy704t3qcqwfz2zn23tyaax8uyfw9rflmz807edsq542qdss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfvfkqsgfjgwe874pq983afd72ptcv6hx664appmslfk2jptvjecdqqqqqqqqqqqqppq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyss2eafg236dqunyghdd0p7pttvey0765ry52vccqmlp859j9tgzgg9v7559gaxswfjytkkhslq44kvj8ld2pj29xvvqdlsn6zez45pyyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqgqgqqzk3ftj0dmy8gphrl85l8cfgrf8vpzdflzw7zu4ppfnxsn3vv2wqvatgjpp5234t647yyh37w3jmz37yyur5c5cg4rxgpwjecnpm2xsrceze3ptsf2gw50t0zznhzx0an9ezz8zfa37kxkw8ucw7f3gwlvqsyqqqqqqqqqqq0ylf8je3k7c464x6fpcur8s7ju93yum7kyq0p6hjkqdg24smwsz9vllufwczy2t0v3elfsv5ymkh8rp34acu9cc0rhjut7d9x684cqvyzk022z5wng8yez9mttc0s26mxfrlk4qe9znxxqxlcfapv326qjzpt849p28f5rjv3za44u8c9ddny3lm2svj3fnrqr0uy7skg4dqfpq4n6js4r56pexg3w667ruzkkejgla4gxfg5e3sph7z0gty2ksyqypq8m5dp6ejcmzg46vm4ng7xvxrya7dd4z5qam2afc8gclnkz50cgsgkwy6dt"; const STATE_ROOT: &str = "sr1wjueje6hy86yw9j4lhl7jwvhjxwunw34paj4k3cn2wm5h5r2syfqd83yw4"; #[wasm_bindgen_test] @@ -118,7 +116,7 @@ mod tests { assert_eq!(offline_query_from_str, offline_query); } - #[wasm_bindgen_test] + /*#[wasm_bindgen_test] async fn test_state_path_construction() { // Create an offline query let mut offline_query = OfflineQuery::new(STATE_ROOT).unwrap(); @@ -152,5 +150,5 @@ mod tests { // Check that the state root can be retrieved from the query trait assert_eq!(offline_query.current_state_root().unwrap(), expected_state_root); assert_eq!(offline_query.current_state_root_async().await.unwrap(), expected_state_root); - } + }*/ } diff --git a/wasm/src/programs/program.rs b/wasm/src/programs/program.rs index 66cfdb593..f40b0465e 100644 --- a/wasm/src/programs/program.rs +++ b/wasm/src/programs/program.rs @@ -579,31 +579,31 @@ function add_and_double: "key_type": "address", "value_type": "committee_state", }, - + object! { + "name": "delegated", + "key_type": "address", + "value_type": "u64", + }, object! { "name": "metadata", "key_type": "address", "value_type": "u32", }, - object! { "name": "bonded", "key_type": "address", "value_type": "bond_state", }, - object! { "name": "unbonding", "key_type": "address", "value_type": "unbond_state", }, - object! { "name": "account", "key_type": "address", "value_type": "u64", }, - object! { "name": "withdraw", "key_type": "address", @@ -652,13 +652,11 @@ function add_and_double: ], "register": "r0", }, - object! { "type": "address", "visibility": "private", "register": "r1", }, - object! { "type": "u64", "visibility": "private", @@ -677,7 +675,6 @@ function add_and_double: "visibility": "private", "register": "r0", }, - object! { "type": "record", "record": "Token", @@ -716,7 +713,6 @@ function add_and_double: ], "register": "r1", }, - object! { "type": "struct", "struct_id": "token_metadata", @@ -811,7 +807,7 @@ function add_and_double: let program = Program::from_string(TOKEN_ISSUE).unwrap(); let members = program.get_struct_members("token_metadata".to_string()).unwrap(); - let expected = array! [ + let expected = array![ object! { "name": "token_id", "type": "u32", diff --git a/wasm/src/programs/proving_key/credits.rs b/wasm/src/programs/proving_key/credits.rs index 71ae665c2..f6c3057e5 100644 --- a/wasm/src/programs/proving_key/credits.rs +++ b/wasm/src/programs/proving_key/credits.rs @@ -33,7 +33,19 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the bond_public function, false if otherwise #[wasm_bindgen(js_name = "isBondPublicProver")] pub fn is_bond_public_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::BondPublicProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::BondPublicProver::METADATA) + } + + /// Verify if the proving key is for the bond_validator function + /// + /// @example + /// const provingKey = ProvingKey.fromBytes("bond_validator_proving_key.bin"); + /// provingKey.isBondPublicProver() ? console.log("Key verified") : throw new Error("Invalid key"); + /// + /// @returns {boolean} returns true if the proving key is for the bond_validator function, false if otherwise + #[wasm_bindgen(js_name = "isBondValidatorProver")] + pub fn is_bond_validator_prover(&self) -> bool { + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::BondValidatorProver::METADATA) } /// Verify if the proving key is for the claim_unbond function @@ -45,7 +57,8 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the claim_unbond function, false if otherwise #[wasm_bindgen(js_name = "isClaimUnbondPublicProver")] pub fn is_claim_unbond_public_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::ClaimUnbondPublicProver::METADATA) + self.checksum() + == ProvingKey::prover_checksum(crate::types::native::parameters::ClaimUnbondPublicProver::METADATA) } /// Verify if the proving key is for the fee_private function @@ -57,7 +70,7 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the fee_private function, false if otherwise #[wasm_bindgen(js_name = "isFeePrivateProver")] pub fn is_fee_private_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::FeePrivateProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::FeePrivateProver::METADATA) } /// Verify if the proving key is for the fee_public function @@ -69,7 +82,7 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the fee_public function, false if otherwise #[wasm_bindgen(js_name = "isFeePublicProver")] pub fn is_fee_public_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::FeePublicProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::FeePublicProver::METADATA) } /// Verify if the proving key is for the inclusion function @@ -81,7 +94,7 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the inclusion function, false if otherwise #[wasm_bindgen(js_name = "isInclusionProver")] pub fn is_inclusion_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::InclusionProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::InclusionProver::METADATA) } /// Verify if the proving key is for the join function @@ -93,7 +106,7 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the join function, false if otherwise #[wasm_bindgen(js_name = "isJoinProver")] pub fn is_join_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::JoinProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::JoinProver::METADATA) } /// Verify if the proving key is for the set_validator_state function @@ -105,7 +118,8 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the set_validator_state function, false if otherwise #[wasm_bindgen(js_name = "isSetValidatorStateProver")] pub fn is_set_validator_state_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::SetValidatorStateProver::METADATA) + self.checksum() + == ProvingKey::prover_checksum(crate::types::native::parameters::SetValidatorStateProver::METADATA) } /// Verify if the proving key is for the split function @@ -117,7 +131,7 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the split function, false if otherwise #[wasm_bindgen(js_name = "isSplitProver")] pub fn is_split_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::SplitProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::SplitProver::METADATA) } /// Verify if the proving key is for the transfer_private function @@ -129,7 +143,8 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the transfer_private function, false if otherwise #[wasm_bindgen(js_name = "isTransferPrivateProver")] pub fn is_transfer_private_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::TransferPrivateProver::METADATA) + self.checksum() + == ProvingKey::prover_checksum(crate::types::native::parameters::TransferPrivateProver::METADATA) } /// Verify if the proving key is for the transfer_private_to_public function @@ -142,7 +157,7 @@ impl ProvingKey { #[wasm_bindgen(js_name = "isTransferPrivateToPublicProver")] pub fn is_transfer_private_to_public_prover(&self) -> bool { self.checksum() - == ProvingKey::prover_checksum(snarkvm_parameters::testnet::TransferPrivateToPublicProver::METADATA) + == ProvingKey::prover_checksum(crate::types::native::parameters::TransferPrivateToPublicProver::METADATA) } /// Verify if the proving key is for the transfer_public function @@ -154,149 +169,148 @@ impl ProvingKey { /// @returns {boolean} returns true if the proving key is for the transfer_public function, false if otherwise #[wasm_bindgen(js_name = "isTransferPublicProver")] pub fn is_transfer_public_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::TransferPublicProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::TransferPublicProver::METADATA) } - /// Verify if the proving key is for the transfer_public_to_private function + /// Verify if the proving key is for the transfer_public_as_signer function /// /// @example - /// const provingKey = ProvingKey.fromBytes("transfer_public_to_private_proving_key.bin"); - /// provingKey.isTransferPublicToPrivateProver() ? console.log("Key verified") : throw new Error("Invalid key"); + /// const provingKey = ProvingKey.fromBytes("transfer_public_as_signer_proving_key.bin"); + /// provingKey.isTransferPublicAsSignerProver() ? console.log("Key verified") : throw new Error("Invalid key"); /// - /// @returns {boolean} returns true if the proving key is for the transfer_public_to_private function, false if otherwise - #[wasm_bindgen(js_name = "isTransferPublicToPrivateProver")] - pub fn is_transfer_public_to_private_prover(&self) -> bool { + /// @returns {boolean} returns true if the proving key is for the transfer_public function, false if otherwise + #[wasm_bindgen(js_name = "isTransferPublicAsSignerProver")] + pub fn is_transfer_public_as_signer_prover(&self) -> bool { self.checksum() - == ProvingKey::prover_checksum(snarkvm_parameters::testnet::TransferPublicToPrivateProver::METADATA) + == ProvingKey::prover_checksum(crate::types::native::parameters::TransferPublicAsSignerProver::METADATA) } - /// Verify if the proving key is for the unbond_delegator_as_validator function + /// Verify if the proving key is for the transfer_public_to_private function /// /// @example - /// const provingKey = ProvingKey.fromBytes("unbond_delegator_as_validator_proving_key.bin"); - /// provingKey.isUnbondDelegatorAsValidatorProver() ? console.log("Key verified") : throw new Error("Invalid key"); + /// const provingKey = ProvingKey.fromBytes("transfer_public_to_private_proving_key.bin"); + /// provingKey.isTransferPublicToPrivateProver() ? console.log("Key verified") : throw new Error("Invalid key"); /// - /// @returns {boolean} returns true if the proving key is for the unbond_delegator_as_validator function, false if otherwise - #[wasm_bindgen(js_name = "isUnbondDelegatorAsValidatorProver")] - pub fn is_unbond_delegator_as_validator_prover(&self) -> bool { + /// @returns {boolean} returns true if the proving key is for the transfer_public_to_private function, false if otherwise + #[wasm_bindgen(js_name = "isTransferPublicToPrivateProver")] + pub fn is_transfer_public_to_private_prover(&self) -> bool { self.checksum() - == ProvingKey::prover_checksum(snarkvm_parameters::testnet::UnbondDelegatorAsValidatorProver::METADATA) + == ProvingKey::prover_checksum(crate::types::native::parameters::TransferPublicToPrivateProver::METADATA) } - /// Verify if the proving key is for the unbond_delegator_as_delegator function + /// Verify if the proving key is for the unbond_public function /// /// @example - /// const provingKey = ProvingKey.fromBytes("unbond_delegator_as_delegator_proving_key.bin"); - /// provingKey.isUnbondDelegatorAsDelegatorProver() ? console.log("Key verified") : throw new Error("Invalid key"); + /// const provingKey = ProvingKey.fromBytes("unbond_public.bin"); + /// provingKey.isUnbondPublicProver() ? console.log("Key verified") : throw new Error("Invalid key"); /// - /// @returns {boolean} returns true if the proving key is for the unbond_delegator_as_delegator function, false if otherwise + /// @returns {boolean} returns true if the proving key is for the unbond_public_prover function, false if otherwise #[wasm_bindgen(js_name = "isUnbondPublicProver")] pub fn is_unbond_public_prover(&self) -> bool { - self.checksum() == ProvingKey::prover_checksum(snarkvm_parameters::testnet::UnbondPublicProver::METADATA) + self.checksum() == ProvingKey::prover_checksum(crate::types::native::parameters::UnbondPublicProver::METADATA) } } #[cfg(test)] mod tests { use super::*; + use crate::Metadata; use wasm_bindgen_test::*; - fn get_proving_key_uri(function_name: &str, proving_key_metadata: &'static str) -> String { - let metadata: serde_json::Value = - serde_json::from_str(proving_key_metadata).expect("Metadata was not well-formatted"); - let checksum = metadata["prover_checksum"].as_str().expect("Failed to parse checksum").to_string(); - format!("https://s3-us-west-1.amazonaws.com/testnet.parameters/{}.prover.{}", function_name, checksum.get(0..7).unwrap()) + // This is needed to fix throttling issues with AWS + async fn sleep(time: u32) { + gloo_timers::future::TimeoutFuture::new(time).await; } #[wasm_bindgen_test] async fn test_proving_key_checksum() { - let prover_uri = get_proving_key_uri("bond_public", snarkvm_parameters::testnet::BondPublicProver::METADATA); + const DELAY: u32 = 100; + + let prover_uri = Metadata::bond_public().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_bond_public_prover()); assert!(!prover.is_claim_unbond_public_prover()); - let prover_uri = - get_proving_key_uri("claim_unbond_public", snarkvm_parameters::testnet::ClaimUnbondPublicProver::METADATA); + sleep(DELAY).await; + + let prover_uri = Metadata::claim_unbond_public().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_claim_unbond_public_prover()); assert!(!prover.is_fee_private_prover()); - let prover_uri = get_proving_key_uri("fee_private", snarkvm_parameters::testnet::FeePrivateProver::METADATA); + sleep(DELAY).await; + + let prover_uri = Metadata::fee_private().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_fee_private_prover()); assert!(!prover.is_fee_public_prover()); - let prover_uri = get_proving_key_uri("fee_public", snarkvm_parameters::testnet::FeePublicProver::METADATA); + sleep(DELAY).await; + + let prover_uri = Metadata::fee_public().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_fee_public_prover()); assert!(!prover.is_join_prover()); - let prover_uri = get_proving_key_uri("join", snarkvm_parameters::testnet::JoinProver::METADATA); + sleep(DELAY).await; + + let prover_uri = Metadata::join().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_join_prover()); assert!(!prover.is_set_validator_state_prover()); - let prover_uri = - get_proving_key_uri("set_validator_state", snarkvm_parameters::testnet::SetValidatorStateProver::METADATA); + sleep(DELAY).await; + + let prover_uri = Metadata::set_validator_state().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_set_validator_state_prover()); assert!(!prover.is_split_prover()); + sleep(DELAY).await; - let prover_uri = get_proving_key_uri("split", snarkvm_parameters::testnet::SplitProver::METADATA); + let prover_uri = Metadata::split().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_split_prover()); assert!(!prover.is_transfer_private_prover()); + sleep(DELAY).await; - let prover_uri = - get_proving_key_uri("transfer_private", snarkvm_parameters::testnet::TransferPrivateProver::METADATA); + let prover_uri = Metadata::transfer_private().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_transfer_private_prover()); assert!(!prover.is_transfer_private_to_public_prover()); - let prover_uri = get_proving_key_uri( - "transfer_private_to_public", - snarkvm_parameters::testnet::TransferPrivateToPublicProver::METADATA, - ); + sleep(DELAY).await; + + let prover_uri = Metadata::transfer_private_to_public().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_transfer_private_to_public_prover()); assert!(!prover.is_transfer_public_prover()); - let prover_uri = - get_proving_key_uri("transfer_public", snarkvm_parameters::testnet::TransferPublicProver::METADATA); + sleep(DELAY).await; + + let prover_uri = Metadata::transfer_public().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_transfer_public_prover()); assert!(!prover.is_transfer_public_to_private_prover()); - let prover_uri = get_proving_key_uri( - "transfer_public_to_private", - snarkvm_parameters::testnet::TransferPublicToPrivateProver::METADATA, - ); - let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); - let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); - assert!(prover.is_transfer_public_to_private_prover()); - assert!(!prover.is_unbond_delegator_as_validator_prover()); + sleep(DELAY).await; - let prover_uri = get_proving_key_uri( - "unbond_delegator_as_validator", - snarkvm_parameters::testnet::UnbondDelegatorAsValidatorProver::METADATA, - ); + let prover_uri = Metadata::transfer_public_to_private().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); - assert!(prover.is_unbond_delegator_as_validator_prover()); - assert!(!prover.is_unbond_public_prover()); + assert!(prover.is_transfer_public_to_private_prover()); + sleep(DELAY).await; - let prover_uri = - get_proving_key_uri("unbond_public", snarkvm_parameters::testnet::UnbondPublicProver::METADATA); + let prover_uri = Metadata::unbond_public().prover; let proving_key_bytes = reqwest::get(prover_uri).await.unwrap().bytes().await.unwrap().to_vec(); let prover = ProvingKey::from_bytes(&proving_key_bytes).unwrap(); assert!(prover.is_unbond_public_prover()); diff --git a/wasm/src/programs/proving_key/mod.rs b/wasm/src/programs/proving_key/mod.rs index 9bd96cb37..290d0e87f 100644 --- a/wasm/src/programs/proving_key/mod.rs +++ b/wasm/src/programs/proving_key/mod.rs @@ -109,38 +109,31 @@ impl PartialEq for ProvingKey { #[cfg(test)] mod tests { use super::*; + use crate::Metadata; use wasm_bindgen_test::*; - const TRANSFER_PUBLIC_PROVER: &str = "https://testnet3.parameters.aleo.org/transfer_public.prover.a74565e"; - #[wasm_bindgen_test] - async fn test_proving_key_roundtrip() { - let fee_proving_key_bytes = reqwest::get(TRANSFER_PUBLIC_PROVER).await.unwrap().bytes().await.unwrap().to_vec(); - let fee_proving_key = ProvingKey::from_bytes(&fee_proving_key_bytes).unwrap(); - let bytes = fee_proving_key.to_bytes().unwrap(); - assert_eq!(bytes, fee_proving_key_bytes); - } + async fn test_proving_key() { + let transer_public_prover = Metadata::transfer_public().prover; - #[wasm_bindgen_test] - async fn test_from_string() { - let transfer_public_prover = - reqwest::get(TRANSFER_PUBLIC_PROVER).await.unwrap().bytes().await.unwrap().to_vec(); - let transfer_public_proving_key = ProvingKey::from_bytes(&transfer_public_prover).unwrap(); - let transfer_public_proving_key_string = transfer_public_proving_key.to_string(); + let bytes = reqwest::get(transer_public_prover).await.unwrap().bytes().await.unwrap().to_vec(); + let key = ProvingKey::from_bytes(&bytes).unwrap(); + + let to_bytes = key.to_bytes().unwrap(); + assert_eq!(bytes, to_bytes); + + let transfer_public_proving_key_string = key.to_string(); let transfer_public_proving_key_from_string = ProvingKey::from_string(&transfer_public_proving_key_string).unwrap(); - assert_eq!(transfer_public_proving_key, transfer_public_proving_key_from_string); - } + assert_eq!(key, transfer_public_proving_key_from_string); - #[wasm_bindgen_test] - async fn test_prover_checksum() { - let transfer_public_prover = - reqwest::get(TRANSFER_PUBLIC_PROVER).await.unwrap().bytes().await.unwrap().to_vec(); - let transfer_public_proving_key = ProvingKey::from_bytes(&transfer_public_prover).unwrap(); - let transfer_public_proving_key_checksum = transfer_public_proving_key.checksum(); - assert_eq!( - transfer_public_proving_key_checksum, - "a74565e4fd408a90b2d04b0e6c0dea6bf0ab6a27926ef28049da62d18727f6c6" - ); + #[cfg(feature = "testnet")] + let checksum = "846f86cabf9fa50e5abe347e559a8e9f3018459b5af9fdf52f1c44892b05f7e5"; + + #[cfg(feature = "mainnet")] + let checksum = "f8e5f6437b945174b62313ece8a1c9dcbeac5dfff5b0fef2e968c9b92f86da06"; + + let transfer_public_proving_key_checksum = key.checksum(); + assert_eq!(transfer_public_proving_key_checksum, checksum); } } diff --git a/wasm/src/programs/transaction.rs b/wasm/src/programs/transaction.rs index 029140419..42909d7cc 100644 --- a/wasm/src/programs/transaction.rs +++ b/wasm/src/programs/transaction.rs @@ -93,7 +93,7 @@ impl FromStr for Transaction { } } -#[cfg(test)] +/*#[cfg(test)] mod tests { use super::*; use wasm_bindgen_test::*; @@ -118,4 +118,4 @@ mod tests { let transaction_from_native = Transaction::from(transaction_native); assert_eq!(transaction, transaction_from_native); } -} +}*/ diff --git a/wasm/src/programs/verifying_key/credits.rs b/wasm/src/programs/verifying_key/credits.rs index e981b95d4..dde564fe6 100644 --- a/wasm/src/programs/verifying_key/credits.rs +++ b/wasm/src/programs/verifying_key/credits.rs @@ -18,12 +18,26 @@ use super::*; #[wasm_bindgen] impl VerifyingKey { + fn get_credits_verifying_key(name: &str) -> VerifyingKey { + let vk = CurrentNetwork::get_credits_verifying_key(name.to_string()).unwrap().clone(); + let num_variables = vk.circuit_info.num_public_and_private_variables as u64; + VerifyingKey::from(VerifyingKeyNative::new(vk, num_variables)) + } + /// Returns the verifying key for the bond_public function /// /// @returns {VerifyingKey} Verifying key for the bond_public function #[wasm_bindgen(js_name = "bondPublicVerifier")] pub fn bond_public_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::BondPublicVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("bond_public") + } + + /// Returns the verifying key for the bond_validator function + /// + /// @returns {VerifyingKey} Verifying key for the bond_validator function + #[wasm_bindgen(js_name = "bondValidatorVerifier")] + pub fn bond_validator_verifier() -> VerifyingKey { + VerifyingKey::get_credits_verifying_key("bond_validator") } /// Returns the verifying key for the claim_delegator function @@ -31,8 +45,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the claim_unbond_public function #[wasm_bindgen(js_name = "claimUnbondPublicVerifier")] pub fn claim_unbond_public_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::ClaimUnbondPublicVerifier::load_bytes().unwrap()) - .unwrap() + VerifyingKey::get_credits_verifying_key("claim_unbond_public") } /// Returns the verifying key for the fee_private function @@ -40,7 +53,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the fee_private function #[wasm_bindgen(js_name = "feePrivateVerifier")] pub fn fee_private_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::FeePrivateVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("fee_private") } /// Returns the verifying key for the fee_public function @@ -48,7 +61,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the fee_public function #[wasm_bindgen(js_name = "feePublicVerifier")] pub fn fee_public_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::FeePublicVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("fee_public") } /// Returns the verifying key for the inclusion function @@ -56,7 +69,9 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the inclusion function #[wasm_bindgen(js_name = "inclusionVerifier")] pub fn inclusion_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::InclusionVerifier::load_bytes().unwrap()).unwrap() + let vk = CurrentNetwork::inclusion_verifying_key().clone(); + let num_variables = vk.circuit_info.num_public_and_private_variables as u64; + VerifyingKey::from(VerifyingKeyNative::new(vk, num_variables)) } /// Returns the verifying key for the join function @@ -64,7 +79,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the join function #[wasm_bindgen(js_name = "joinVerifier")] pub fn join_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::JoinVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("join") } /// Returns the verifying key for the set_validator_state function @@ -72,8 +87,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the set_validator_state function #[wasm_bindgen(js_name = "setValidatorStateVerifier")] pub fn set_validator_state_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::SetValidatorStateVerifier::load_bytes().unwrap()) - .unwrap() + VerifyingKey::get_credits_verifying_key("set_validator_state") } /// Returns the verifying key for the split function @@ -81,7 +95,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the split function #[wasm_bindgen(js_name = "splitVerifier")] pub fn split_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::SplitVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("split") } /// Returns the verifying key for the transfer_private function @@ -89,7 +103,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the transfer_private function #[wasm_bindgen(js_name = "transferPrivateVerifier")] pub fn transfer_private_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPrivateVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("transfer_private") } /// Returns the verifying key for the transfer_private_to_public function @@ -97,8 +111,7 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the transfer_private_to_public function #[wasm_bindgen(js_name = "transferPrivateToPublicVerifier")] pub fn transfer_private_to_public_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPrivateToPublicVerifier::load_bytes().unwrap()) - .unwrap() + VerifyingKey::get_credits_verifying_key("transfer_private_to_public") } /// Returns the verifying key for the transfer_public function @@ -106,7 +119,15 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the transfer_public function #[wasm_bindgen(js_name = "transferPublicVerifier")] pub fn transfer_public_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("transfer_public") + } + + /// Returns the verifying key for the transfer_public_as_signer function + /// + /// @returns {VerifyingKey} Verifying key for the transfer_public_as_signer function + #[wasm_bindgen(js_name = "transferPublicAsSignerVerifier")] + pub fn transfer_public_as_signer_verifier() -> VerifyingKey { + VerifyingKey::get_credits_verifying_key("transfer_public_as_signer") } /// Returns the verifying key for the transfer_public_to_private function @@ -114,27 +135,15 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the transfer_public_to_private function #[wasm_bindgen(js_name = "transferPublicToPrivateVerifier")] pub fn transfer_public_to_private_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPublicToPrivateVerifier::load_bytes().unwrap()) - .unwrap() - } - - /// Returns the verifying key for the unbond_delegator_as_delegator function - /// - /// @returns {VerifyingKey} Verifying key for the unbond_delegator_as_delegator function - #[wasm_bindgen(js_name = "unbondDelegatorAsValidatorVerifier")] - pub fn unbond_delegator_as_validator_verifier() -> VerifyingKey { - VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::UnbondDelegatorAsValidatorVerifier::load_bytes().unwrap(), - ) - .unwrap() + VerifyingKey::get_credits_verifying_key("transfer_public_to_private") } - /// Returns the verifying key for the unbond_delegator_as_delegator function + /// Returns the verifying key for the unbond_public function /// - /// @returns {VerifyingKey} Verifying key for the unbond_delegator_as_delegator function + /// @returns {VerifyingKey} Verifying key for the unbond_public function #[wasm_bindgen(js_name = "unbondPublicVerifier")] pub fn unbond_public_verifier() -> VerifyingKey { - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::UnbondPublicVerifier::load_bytes().unwrap()).unwrap() + VerifyingKey::get_credits_verifying_key("unbond_public") } /// Returns the verifying key for the bond_public function @@ -142,8 +151,15 @@ impl VerifyingKey { /// @returns {VerifyingKey} Verifying key for the bond_public function #[wasm_bindgen(js_name = "isBondPublicVerifier")] pub fn is_bond_public_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::BondPublicVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::bond_public_verifier() + } + + /// Returns the verifying key for the bond_validator function + /// + /// @returns {VerifyingKey} Verifying key for the bond_validator function + #[wasm_bindgen(js_name = "isBondValidatorVerifier")] + pub fn is_bond_validator_verifier(&self) -> bool { + self == &Self::bond_validator_verifier() } /// Verifies the verifying key is for the claim_delegator function @@ -151,10 +167,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isClaimUnbondPublicVerifier")] pub fn is_claim_unbond_public_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::ClaimUnbondPublicVerifier::load_bytes().unwrap(), - ) - .unwrap() + self == &Self::claim_unbond_public_verifier() } /// Verifies the verifying key is for the fee_private function @@ -162,8 +175,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isFeePrivateVerifier")] pub fn is_fee_private_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::FeePrivateVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::fee_private_verifier() } /// Verifies the verifying key is for the fee_public function @@ -171,8 +183,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isFeePublicVerifier")] pub fn is_fee_public_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::FeePublicVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::fee_public_verifier() } /// Verifies the verifying key is for the inclusion function @@ -180,8 +191,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isInclusionVerifier")] pub fn is_inclusion_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::InclusionVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::inclusion_verifier() } /// Verifies the verifying key is for the join function @@ -189,7 +199,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isJoinVerifier")] pub fn is_join_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::JoinVerifier::load_bytes().unwrap()).unwrap() + self == &Self::join_verifier() } /// Verifies the verifying key is for the set_validator_state function @@ -197,10 +207,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isSetValidatorStateVerifier")] pub fn is_set_validator_state_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::SetValidatorStateVerifier::load_bytes().unwrap(), - ) - .unwrap() + self == &Self::set_validator_state_verifier() } /// Verifies the verifying key is for the split function @@ -208,7 +215,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isSplitVerifier")] pub fn is_split_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::SplitVerifier::load_bytes().unwrap()).unwrap() + self == &Self::split_verifier() } /// Verifies the verifying key is for the transfer_private function @@ -216,8 +223,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isTransferPrivateVerifier")] pub fn is_transfer_private_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPrivateVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::transfer_private_verifier() } /// Verifies the verifying key is for the transfer_private_to_public function @@ -225,10 +231,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isTransferPrivateToPublicVerifier")] pub fn is_transfer_private_to_public_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::TransferPrivateToPublicVerifier::load_bytes().unwrap(), - ) - .unwrap() + self == &Self::transfer_private_to_public_verifier() } /// Verifies the verifying key is for the transfer_public function @@ -236,30 +239,23 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isTransferPublicVerifier")] pub fn is_transfer_public_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::transfer_public_verifier() } - /// Verifies the verifying key is for the transfer_public_to_private function + /// Verifies the verifying key is for the transfer_public_as_signer function /// /// @returns {bool} - #[wasm_bindgen(js_name = "isTransferPublicToPrivateVerifier")] - pub fn is_transfer_public_to_private_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::TransferPublicToPrivateVerifier::load_bytes().unwrap(), - ) - .unwrap() + #[wasm_bindgen(js_name = "isTransferPublicAsSignerVerifier")] + pub fn is_transfer_public_as_signer_verifier(&self) -> bool { + self == &Self::transfer_public_as_signer_verifier() } - /// Verifies the verifying key is for the unbond_delegator_as_delegator function + /// Verifies the verifying key is for the transfer_public_to_private function /// /// @returns {bool} - #[wasm_bindgen(js_name = "isUnbondDelegatorAsValidatorVerifier")] - pub fn is_unbond_delegator_as_validator_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::UnbondDelegatorAsValidatorVerifier::load_bytes().unwrap(), - ) - .unwrap() + #[wasm_bindgen(js_name = "isTransferPublicToPrivateVerifier")] + pub fn is_transfer_public_to_private_verifier(&self) -> bool { + self == &Self::transfer_public_to_private_verifier() } /// Verifies the verifying key is for the unbond_public function @@ -267,8 +263,7 @@ impl VerifyingKey { /// @returns {bool} #[wasm_bindgen(js_name = "isUnbondPublicVerifier")] pub fn is_unbond_public_verifier(&self) -> bool { - self == &VerifyingKey::from_bytes(&snarkvm_parameters::testnet::UnbondPublicVerifier::load_bytes().unwrap()) - .unwrap() + self == &Self::unbond_public_verifier() } } @@ -281,6 +276,8 @@ mod tests { fn test_key_loading() { let bond_public = VerifyingKey::bond_public_verifier(); assert!(bond_public.is_bond_public_verifier()); + let bond_validator = VerifyingKey::bond_validator_verifier(); + assert!(bond_validator.is_bond_validator_verifier()); let claim_unbond_public = VerifyingKey::claim_unbond_public_verifier(); assert!(claim_unbond_public.is_claim_unbond_public_verifier()); let fee_private = VerifyingKey::fee_private_verifier(); @@ -301,10 +298,10 @@ mod tests { assert!(transfer_private_to_public.is_transfer_private_to_public_verifier()); let transfer_public = VerifyingKey::transfer_public_verifier(); assert!(transfer_public.is_transfer_public_verifier()); + let transfer_public_as_signer = VerifyingKey::transfer_public_as_signer_verifier(); + assert!(transfer_public_as_signer.is_transfer_public_as_signer_verifier()); let transfer_public_to_private = VerifyingKey::transfer_public_to_private_verifier(); assert!(transfer_public_to_private.is_transfer_public_to_private_verifier()); - let unbond_delegator_as_validator = VerifyingKey::unbond_delegator_as_validator_verifier(); - assert!(unbond_delegator_as_validator.is_unbond_delegator_as_validator_verifier()); let unbond_public = VerifyingKey::unbond_public_verifier(); assert!(unbond_public.is_unbond_public_verifier()); } diff --git a/wasm/src/programs/verifying_key/metadata.rs b/wasm/src/programs/verifying_key/metadata.rs new file mode 100644 index 000000000..c09342f56 --- /dev/null +++ b/wasm/src/programs/verifying_key/metadata.rs @@ -0,0 +1,230 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Aleo SDK library. + +// The Aleo SDK library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Aleo SDK library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Aleo SDK library. If not, see . + +use super::*; + +#[wasm_bindgen] +#[derive(Clone, Debug)] +pub struct Metadata { + #[wasm_bindgen(getter_with_clone)] + pub name: String, + + #[wasm_bindgen(getter_with_clone)] + pub locator: String, + + #[wasm_bindgen(getter_with_clone)] + pub prover: String, + + #[wasm_bindgen(getter_with_clone)] + pub verifier: String, + + #[wasm_bindgen(getter_with_clone, js_name = verifyingKey)] + pub verifying_key: String, +} + +impl Metadata { + const BASE_URL: &'static str = crate::types::native::BASE_URL; + + fn new(name: &str, verifying_key: &str, locator: &str, prover: &'static str, verifier: &'static str) -> Self { + fn url(function_name: &str, kind: &str, proving_key_metadata: &'static str) -> String { + let metadata: serde_json::Value = + serde_json::from_str(proving_key_metadata).expect("Metadata was not well-formatted"); + let checksum = metadata["prover_checksum"].as_str().expect("Failed to parse checksum").to_string(); + format!("{}.{}.{}", function_name, kind, checksum.get(0..7).unwrap()) + } + + Self { + name: name.to_string(), + locator: locator.to_string(), + prover: format!("{}{}", Self::BASE_URL, url(name, "prover", prover)), + verifier: url(name, "verifier", verifier), + verifying_key: verifying_key.to_string(), + } + } +} + +#[wasm_bindgen] +impl Metadata { + #[wasm_bindgen(js_name = baseUrl)] + pub fn base_url() -> String { + Self::BASE_URL.to_string() + } + + #[wasm_bindgen] + pub fn bond_public() -> Metadata { + Metadata::new( + "bond_public", + "bondPublicVerifier", + "credits.aleo/bond_public", + crate::types::native::parameters::BondPublicProver::METADATA, + crate::types::native::parameters::BondPublicVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn bond_validator() -> Metadata { + Metadata::new( + "bond_validator", + "bondValidatorVerifier", + "credits.aleo/bond_validator", + crate::types::native::parameters::BondValidatorProver::METADATA, + crate::types::native::parameters::BondValidatorVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn claim_unbond_public() -> Metadata { + Metadata::new( + "claim_unbond_public", + "claimUnbondPublicVerifier", + "credits.aleo/claim_unbond_public", + crate::types::native::parameters::ClaimUnbondPublicProver::METADATA, + crate::types::native::parameters::ClaimUnbondPublicVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn fee_private() -> Metadata { + Metadata::new( + "fee_private", + "feePrivateVerifier", + "credits.aleo/fee_private", + crate::types::native::parameters::FeePrivateProver::METADATA, + crate::types::native::parameters::FeePrivateVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn fee_public() -> Metadata { + Metadata::new( + "fee_public", + "feePublicVerifier", + "credits.aleo/fee_public", + crate::types::native::parameters::FeePublicProver::METADATA, + crate::types::native::parameters::FeePublicVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn inclusion() -> Metadata { + Metadata::new( + "inclusion", + "inclusionVerifier", + "inclusion", + crate::types::native::parameters::InclusionProver::METADATA, + crate::types::native::parameters::InclusionVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn join() -> Metadata { + Metadata::new( + "join", + "joinVerifier", + "credits.aleo/join", + crate::types::native::parameters::JoinProver::METADATA, + crate::types::native::parameters::JoinVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn set_validator_state() -> Metadata { + Metadata::new( + "set_validator_state", + "setValidatorStateVerifier", + "credits.aleo/set_validator_state", + crate::types::native::parameters::SetValidatorStateProver::METADATA, + crate::types::native::parameters::SetValidatorStateVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn split() -> Metadata { + Metadata::new( + "split", + "splitVerifier", + "credits.aleo/split", + crate::types::native::parameters::SplitProver::METADATA, + crate::types::native::parameters::SplitVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn transfer_private() -> Metadata { + Metadata::new( + "transfer_private", + "transferPrivateVerifier", + "credits.aleo/transfer_private", + crate::types::native::parameters::TransferPrivateProver::METADATA, + crate::types::native::parameters::TransferPrivateVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn transfer_private_to_public() -> Metadata { + Metadata::new( + "transfer_private_to_public", + "transferPrivateToPublicVerifier", + "credits.aleo/transfer_private_to_public", + crate::types::native::parameters::TransferPrivateToPublicProver::METADATA, + crate::types::native::parameters::TransferPrivateToPublicVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn transfer_public() -> Metadata { + Metadata::new( + "transfer_public", + "transferPublicVerifier", + "credits.aleo/transfer_public", + crate::types::native::parameters::TransferPublicProver::METADATA, + crate::types::native::parameters::TransferPublicVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn transfer_public_as_signer() -> Metadata { + Metadata::new( + "transfer_public_as_signer", + "transferPublicAsSignerVerifier", + "credits.aleo/transfer_public_as_signer", + crate::types::native::parameters::TransferPublicAsSignerProver::METADATA, + crate::types::native::parameters::TransferPublicAsSignerVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn transfer_public_to_private() -> Metadata { + Metadata::new( + "transfer_public_to_private", + "transferPublicToPrivateVerifier", + "credits.aleo/transfer_public_to_private", + crate::types::native::parameters::TransferPublicToPrivateProver::METADATA, + crate::types::native::parameters::TransferPublicToPrivateVerifier::METADATA, + ) + } + + #[wasm_bindgen] + pub fn unbond_public() -> Metadata { + Metadata::new( + "unbond_public", + "unbondPublicVerifier", + "credits.aleo/unbond_public", + crate::types::native::parameters::UnbondPublicProver::METADATA, + crate::types::native::parameters::UnbondPublicVerifier::METADATA, + ) + } +} diff --git a/wasm/src/programs/verifying_key/mod.rs b/wasm/src/programs/verifying_key/mod.rs index 30338c5a0..96eb871d7 100644 --- a/wasm/src/programs/verifying_key/mod.rs +++ b/wasm/src/programs/verifying_key/mod.rs @@ -15,14 +15,17 @@ // along with the Aleo SDK library. If not, see . mod credits; +mod metadata; -use crate::types::native::{FromBytes, ToBytes, VerifyingKeyNative}; +use crate::types::native::{CurrentNetwork, FromBytes, Network, ToBytes, VerifyingKeyNative}; use sha2::Digest; use wasm_bindgen::prelude::wasm_bindgen; use std::{ops::Deref, str::FromStr}; +pub use metadata::Metadata; + /// Verifying key for a function within an Aleo program #[wasm_bindgen] #[derive(Clone, Debug)] @@ -118,68 +121,69 @@ mod tests { use super::*; use wasm_bindgen_test::*; - const TRANSFER_PUBLIC_VERIFYING_KEY: &str = "verifier1qygqqqqqqqqqqqq79uqqqqqqqqqp2tcqqqqqqqqqwd4qqqqqqqqqp5ydqqqqqqqqqqvyqqqqqqqqqqqvqqqqqqqqqqqre7drur40rst43dq9at346py7hkmrhexarf59f2tjt4stlsdj5uwrgnrkjjej7jf3djk2w4njtxcq0mezac793craujm8mr7wutcqtu2aday5g03wl0cu2572fsrtpyjhdyqlh0447z7dshlkhksjsusgp4ezrvc0n64fwetfmml3kvfg7n03w2e602sl7et4cpw98hgpzxwzrmzu8r3x77v49njysy2lp55xsqh6t5qjvhyl5a7nzy3e73y7dzvvs9p450u0s8g84prqnrk6jeah89c6882uzqdvxgzcedfmsc43uq99n3ycrjh70ys8n02pyvdvzmu7z608desdd5yw9dc8v3ddrdddmrzz2pupe09yn9esy25cfzmd0wqcgjdxm4dvlt2t6k66lw8e9ccj49qj2ahpht62kh7p56xpvpekenq2arng2t55mwxe59mqpkp6a0yqlwt7tdf98rt3kqlr9tdtq6hua3wrka0mqzhva4nhucxn9u4w92mly69jy2c7cqm5ftnk3m0qxy9spaxwfz0xkqd947yvf2zh8h4y59fltxdpeu4utpv9zw0cr7ad9d462qxyc2f05lezw6dwhcmep942qqv38lp3x9efestt5pk8rplvmrk0zz9zel48l8h9ldfzyd8zyr7knze92cdyanez6k7q5fu6tnw9wqrywjnhevaujz20xn0h3n47g85zs6ejfh7z8jt9qjesqgmdymvcxlceudkdsl49t5r69c4mg7hfwyq88z7zn0efda8fdjmhz8aaq24q34g2ekdzr5w9em3cev2ktxtmupqwltu0nh3fjzm04cy3cgnqlnqq0chzq4rs2dmfjwryxrxxgjtdcsnn9fpwykkxwfuervtznu3lmvhhpdflgwgm0xklu6c0xsxt9dfcp29w2nz6zkjetz7cqremg68eqxq86rn082czp50ldw9qkq6w3p9xxg4hrg"; + #[cfg(feature = "testnet")] + const TRANSFER_PUBLIC_VERIFYING_KEY: &str = "verifier1qygqqqqqqqqqqqp3xqqqqqqqqqqzvvqqqqqqqqqq23hqqqqqqqqqqau5qqqqqqqqqq5yzqqqqqqqqqqvqqqqqqqqqqqz2rh4q6m4u0ycv2z5qx95echpdcsktezkr2j9cvff0dngp45jfqggm8q3578nkhjudslm2rdpsgcpks4ulquyqrtd978zvj65pxmhkudyjtj005h66jcnwg3f6mdqqaqjed3avcz599kth8a3nak0tftsrk4hczcdvlmrdnzsa6rfppy72flsrhdhn6npxfxt2rrudk8jrk5fefkawhhrf0psccp6l9akckaps898v5mk7vprkx90gg798d6j5tvvtma0r9phq3jndan5rkwv8wmkngeha3pzrjzslkt8ct9umm4wfq8dhnpdv8m4plq70c3d6wxs4l3cv4gyqhgjtwfuydc5fflulwgjvdtaxxlmpf0l5n800jn2lwnt5kqqtdsx2lvzl3kw3ns5hnsu4jzg9ejptg7n7r7d9dvqsrvldw9paeq86hjxeaac6typemynwzt8w3vq3e27l4swd9aqxaas7zsy5mw7ftnjct9jq6t9rdq0kx8vjag77nt0z894xqkrfp27hehk83nfcg7cpjcc7f8mznga33xp36seafxpn26rq4w5l9uawtx02mzpq9kuyyx7nvhtad0mxk5su659xx5wv3yhqqy3577kwc40spvp9dst59ap2ll5uuq7qaauy9vy5yvrjd77c443evxrwfsee8jg5hvt6f9xaupjzq2cmuuwdvjs0qtxmnwjmdepu5979qy4nhqs63zljatt7kkggddxctt74crayt4djvnh3u6tjzm8wyqpc7nf0r0k9mp34x9musgdqegkmscey50ckyehm67c5tcdlawkh6my2v3xzwaug7c4y9xyw0dfkqup24jdckk5wxkyfd8rsp6h220dj786t54fyj59ehtq0gyut6lcattumgdss4kkchrdp7f5sjgcu7ycpzq0d47m6xe3yh2q5q76fa20lm46pe8fcd9yqcrxduhkdqfe4c9pw3pqqqqqqqqqq0qvtsl"; + + #[cfg(feature = "mainnet")] + const TRANSFER_PUBLIC_VERIFYING_KEY: &str = "verifier1qygqqqqqqqqqqqp3xqqqqqqqqqqzvvqqqqqqqqqq23hqqqqqqqqqqau5qqqqqqqqqq5yzqqqqqqqqqqvqqqqqqqqqqqz2rh4q6m4u0ycv2z5qx95echpdcsktezkr2j9cvff0dngp45jfqggm8q3578nkhjudslm2rdpsgcpks4ulquyqrtd978zvj65pxmhkudyjtj005h66jcnwg3f6mdqqaqjed3avcz599kth8a3nak0tftsrk4hczcdvlmrdnzsa6rfppy72flsrhdhn6npxfxt2rrudk8jrk5fefkawhhrf0psccp6l9akckaps898v5mk7vprkx90gg798d6j5tvvtma0r9phq3jndan5rkwv8wmkngeha3pzrjzslkt8ct9umm4wfq8dhnpdv8m4plq70c3d6wxs4l3cv4gyqhgjtwfuydc5fflulwgjvdtaxxlmpf0l5n800jn2lwnt5kqqtdsx2lvzl3kw3ns5hnsu4jzg9ejptg7n7r7d9dvqsrvldw9paeq86hjxeaac6typemynwzt8w3vq3e27l4swd9aqxaas7zsy5mw7ftnjct9jq6t9rdq0kx8vjag77nt0z894xqkrfp27hehk83nfcg7cpjcc7f8mznga33xp36seafxpn26rq4w5l9uawtx02mzpq9kuyyx7nvhtad0mxk5su659xx5wv3yhqqy3577kwc40spvp9dst59ap2ll5uuq7qaauy9vy5yvrjd77c443evxrwfsee8jg5hvt6f9xaupjzqdd2jexnaselrezp7eptfjtpgs6ga5p3nkycwf26k6nkrf8j302e3a62rq7x5xpz9r8q9ttf36y3vqq6kvvmnuuzv6zkv0p8ds0g6z7stfhtxvzl4vjgj9vf35tnkxxvhmk4xgqcycz6g5aaejlmskvr8uq24jdckk5wxkyfd8rsp6h220dj786t54fyj59ehtq0gyut6lcattumgdss4kkchrdp7f5sjgcu7ycppt59jx985rpqa04krg2sh5je7dt6rntnvf2xd76vrgh3ldnp33lw3pqqqqqqqqqqjgex6x"; #[allow(dead_code)] #[test] fn verifying_key_strings() { let bond_public_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::BondPublicVerifier::load_bytes().unwrap()) - .unwrap() - .to_string(); - let claim_unbond_public_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::ClaimUnbondPublicVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::BondPublicVerifier::load_bytes().unwrap()) .unwrap() .to_string(); + let claim_unbond_public_verifier_string = VerifyingKey::from_bytes( + &crate::types::native::parameters::ClaimUnbondPublicVerifier::load_bytes().unwrap(), + ) + .unwrap() + .to_string(); let fee_private_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::FeePrivateVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::FeePrivateVerifier::load_bytes().unwrap()) .unwrap() .to_string(); let fee_public_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::FeePublicVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::FeePublicVerifier::load_bytes().unwrap()) .unwrap() .to_string(); let inclusion_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::InclusionVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::InclusionVerifier::load_bytes().unwrap()) .unwrap() .to_string(); let join_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::JoinVerifier::load_bytes().unwrap()) - .unwrap() - .to_string(); - let set_validator_state_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::SetValidatorStateVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::JoinVerifier::load_bytes().unwrap()) .unwrap() .to_string(); + let set_validator_state_verifier_string = VerifyingKey::from_bytes( + &crate::types::native::parameters::SetValidatorStateVerifier::load_bytes().unwrap(), + ) + .unwrap() + .to_string(); let split_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::SplitVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::SplitVerifier::load_bytes().unwrap()) .unwrap() .to_string(); let transfer_private_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPrivateVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::TransferPrivateVerifier::load_bytes().unwrap()) .unwrap() .to_string(); let transfer_private_to_public_verifier_string = VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::TransferPrivateToPublicVerifier::load_bytes().unwrap(), + &crate::types::native::parameters::TransferPrivateToPublicVerifier::load_bytes().unwrap(), ) .unwrap() .to_string(); let transfer_public_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::TransferPublicVerifier::load_bytes().unwrap()) .unwrap() .to_string(); let transfer_public_to_private_verifier_string = VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::TransferPublicToPrivateVerifier::load_bytes().unwrap(), - ) - .unwrap() - .to_string(); - let unbond_delegator_as_validator_verifier_string = VerifyingKey::from_bytes( - &snarkvm_parameters::testnet::UnbondDelegatorAsValidatorVerifier::load_bytes().unwrap(), + &crate::types::native::parameters::TransferPublicToPrivateVerifier::load_bytes().unwrap(), ) .unwrap() .to_string(); let unbond_public_verifier_string = - VerifyingKey::from_bytes(&snarkvm_parameters::testnet::UnbondPublicVerifier::load_bytes().unwrap()) + VerifyingKey::from_bytes(&crate::types::native::parameters::UnbondPublicVerifier::load_bytes().unwrap()) .unwrap() .to_string(); println!("bond_public_verifier:\nverifying_key: \"{}\"", bond_public_verifier_string); @@ -200,75 +204,13 @@ mod tests { "transfer_public_to_private_verifier:\nverifying_key: \"{}\"", transfer_public_to_private_verifier_string ); - println!( - "unbond_delegator_as_validator_verifier:\nverifying_key: \"{}\"", - unbond_delegator_as_validator_verifier_string - ); println!("unbond_public_verifier:\nverifying_key: \"{}\"", unbond_public_verifier_string); } - #[wasm_bindgen_test] - async fn test_verifying_key_parsing() { - use std::sync::Arc; - use snarkvm_console::prelude::IoResult; - use std::io::Read; - - fn read_le(mut reader: R) -> IoResult { - let version = u8::read_le(&mut reader)?; - let verifying_key = Arc::new(FromBytes::read_le(&mut reader)?); - - let verifying_key = VerifyingKeyNative::new(verifying_key, 0); - - Ok(reader.bytes().into_iter().collect::>().len() > 0) - } - - fn parse(name: &'static str, f: F) -> Option<&'static str> where F: FnOnce() -> Vec { - if read_le(f().as_slice()).unwrap() { - None - - } else { - Some(name) - } - } - - let results = vec! [ - parse("TransferPublicVerifier", || snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap()), - parse("BondPublicVerifier", || snarkvm_parameters::testnet::BondPublicVerifier::load_bytes().unwrap()), - parse("ClaimUnbondPublicVerifier", || snarkvm_parameters::testnet::ClaimUnbondPublicVerifier::load_bytes().unwrap()), - parse("FeePrivateVerifier", || snarkvm_parameters::testnet::FeePrivateVerifier::load_bytes().unwrap()), - parse("FeePublicVerifier", || snarkvm_parameters::testnet::FeePublicVerifier::load_bytes().unwrap()), - parse("InclusionVerifier", || snarkvm_parameters::testnet::InclusionVerifier::load_bytes().unwrap()), - parse("JoinVerifier", || snarkvm_parameters::testnet::JoinVerifier::load_bytes().unwrap()), - parse("SetValidatorStateVerifier", || snarkvm_parameters::testnet::SetValidatorStateVerifier::load_bytes().unwrap()), - parse("SplitVerifier", || snarkvm_parameters::testnet::SplitVerifier::load_bytes().unwrap()), - parse("TransferPrivateVerifier", || snarkvm_parameters::testnet::TransferPrivateVerifier::load_bytes().unwrap()), - parse("TransferPrivateToPublicVerifier", || snarkvm_parameters::testnet::TransferPrivateToPublicVerifier::load_bytes().unwrap()), - parse("TransferPublicToPrivateVerifier", || snarkvm_parameters::testnet::TransferPublicToPrivateVerifier::load_bytes().unwrap()), - parse("UnbondDelegatorAsValidatorVerifier", || snarkvm_parameters::testnet::UnbondDelegatorAsValidatorVerifier::load_bytes().unwrap()), - parse("UnbondPublicVerifier", || snarkvm_parameters::testnet::UnbondPublicVerifier::load_bytes().unwrap()), - ]; - - assert_eq!(results, vec![ - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - ]); - } - #[wasm_bindgen_test] async fn test_verifying_key_roundtrip() { - let transfer_public_verifier_bytes = snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap(); + let transfer_public_verifier_bytes = + crate::types::native::parameters::TransferPublicVerifier::load_bytes().unwrap(); let transfer_public_verifier = VerifyingKey::from_bytes(&transfer_public_verifier_bytes).unwrap(); let transfer_public_verifying_key_string = transfer_public_verifier.to_string(); assert_eq!(transfer_public_verifying_key_string, TRANSFER_PUBLIC_VERIFYING_KEY); @@ -276,12 +218,17 @@ mod tests { #[wasm_bindgen_test] async fn test_verifier_checksum() { - let transfer_public_verifier_bytes = snarkvm_parameters::testnet::TransferPublicVerifier::load_bytes().unwrap(); + let transfer_public_verifier_bytes = + crate::types::native::parameters::TransferPublicVerifier::load_bytes().unwrap(); let transfer_public_verifier = VerifyingKey::from_bytes(&transfer_public_verifier_bytes).unwrap(); let transfer_public_verifying_key_checksum = transfer_public_verifier.checksum(); - assert_eq!( - transfer_public_verifying_key_checksum, - "a4c2906a95b2f8bdcc6f192a0c71fb0a1c1aa3830feb54454627cf552674932a" - ); + + #[cfg(feature = "testnet")] + let checksum = "1b5109468e7992c39bbbc299dd1f94f18e49928e253e60ed68c7d9f02e73fe8d"; + + #[cfg(feature = "mainnet")] + let checksum = "ea77f42a35b3f891e7753c7333df365f356883550c4602df11f270237bef340d"; + + assert_eq!(transfer_public_verifying_key_checksum, checksum); } } diff --git a/wasm/src/thread_pool/mod.rs b/wasm/src/thread_pool/mod.rs index 98d45db45..d0df6f54b 100644 --- a/wasm/src/thread_pool/mod.rs +++ b/wasm/src/thread_pool/mod.rs @@ -88,6 +88,7 @@ extern "C" { /// /// This will keep the NodeJS process alive until the /// Future is resolved. +#[allow(dead_code)] pub fn spawn(f: F) -> impl Future where A: Send + 'static, diff --git a/wasm/src/types/mod.rs b/wasm/src/types/mod.rs index 5ea17e8d2..d42c02a6e 100644 --- a/wasm/src/types/mod.rs +++ b/wasm/src/types/mod.rs @@ -17,4 +17,9 @@ pub mod field; pub use field::*; +pub mod networks; + +pub mod plaintext; +pub use plaintext::*; + pub(crate) mod native; diff --git a/wasm/src/types/native.rs b/wasm/src/types/native.rs index 4f338c396..da8b0eb3a 100644 --- a/wasm/src/types/native.rs +++ b/wasm/src/types/native.rs @@ -14,22 +14,16 @@ // You should have received a copy of the GNU General Public License // along with the Aleo SDK library. If not, see . -pub use snarkvm_circuit_network::AleoTestnetV0; +pub use super::networks::*; + pub use snarkvm_console::{ -<<<<<<< HEAD - account::{Address, ComputeKey, PrivateKey, Signature, ViewKey}, - network::{Network, Testnet3}, -======= account::{Address, PrivateKey, Signature, ViewKey}, - network::{Network, TestnetV0}, ->>>>>>> 640a96dec9b96846c99cda085d86e47cb3eb93b7 + network::Network, program::{ Ciphertext, Entry, EntryType, - FromBits, FromBytes, - Group, Identifier, Literal, Plaintext, @@ -38,12 +32,7 @@ pub use snarkvm_console::{ ProgramOwner, Record, Response, - Scalar, - SizeInDataBits, - ToFields, - Value, ValueType, - U8, }, types::Field, }; @@ -58,9 +47,9 @@ pub use snarkvm_synthesizer::{ }; pub use snarkvm_wasm::{ - console::network::{Environment, ToField}, + console::network::Environment, fields::PrimeField, - utilities::{ToBits, ToBytes, Uniform}, + utilities::{ToBytes, Uniform}, }; // Account types @@ -72,10 +61,6 @@ pub type ViewKeyNative = ViewKey; // Algebraic types pub type FieldNative = Field; -// Network types -pub type CurrentNetwork = TestnetV0; -pub type CurrentAleo = AleoTestnetV0; - // Record types pub type CiphertextNative = Ciphertext; pub type PlaintextNative = Plaintext; diff --git a/wasm/src/types/networks/mainnet.rs b/wasm/src/types/networks/mainnet.rs new file mode 100644 index 000000000..ffd89a69b --- /dev/null +++ b/wasm/src/types/networks/mainnet.rs @@ -0,0 +1,23 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Aleo SDK library. + +// The Aleo SDK library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Aleo SDK library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Aleo SDK library. If not, see . + +pub use snarkvm_circuit_network::AleoV0 as CurrentAleo; + +pub use snarkvm_console::network::MainnetV0 as CurrentNetwork; + +pub use snarkvm_parameters::mainnet as parameters; + +pub const BASE_URL: &'static str = "https://parameters.aleo.org/mainnet/"; diff --git a/wasm/src/types/networks/mod.rs b/wasm/src/types/networks/mod.rs new file mode 100644 index 000000000..7cb8f0e43 --- /dev/null +++ b/wasm/src/types/networks/mod.rs @@ -0,0 +1,27 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Aleo SDK library. + +// The Aleo SDK library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Aleo SDK library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Aleo SDK library. If not, see . + +#[cfg(feature = "testnet")] +mod testnet; + +#[cfg(feature = "testnet")] +pub use testnet::*; + +#[cfg(feature = "mainnet")] +mod mainnet; + +#[cfg(feature = "mainnet")] +pub use mainnet::*; diff --git a/wasm/src/types/networks/testnet.rs b/wasm/src/types/networks/testnet.rs new file mode 100644 index 000000000..9085dc799 --- /dev/null +++ b/wasm/src/types/networks/testnet.rs @@ -0,0 +1,23 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Aleo SDK library. + +// The Aleo SDK library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Aleo SDK library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Aleo SDK library. If not, see . + +pub use snarkvm_circuit_network::AleoTestnetV0 as CurrentAleo; + +pub use snarkvm_console::network::TestnetV0 as CurrentNetwork; + +pub use snarkvm_parameters::testnet as parameters; + +pub const BASE_URL: &'static str = "https://parameters.aleo.org/testnet/"; diff --git a/wasm/src/types/plaintext.rs b/wasm/src/types/plaintext.rs new file mode 100644 index 000000000..b1f920475 --- /dev/null +++ b/wasm/src/types/plaintext.rs @@ -0,0 +1,99 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Aleo SDK library. + +// The Aleo SDK library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Aleo SDK library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Aleo SDK library. If not, see . + +use crate::types::native::PlaintextNative; +use crate::native::Network; +use crate::network_string_id; +use snarkvm_console::network::TestnetV0; +use snarkvm_console::prelude::ToBits; + +use wasm_bindgen::prelude::wasm_bindgen; + +use std::str::FromStr; + + +#[wasm_bindgen] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct Plaintext{ + network: String, + as_string: String +} + +#[wasm_bindgen] +impl Plaintext { + #[wasm_bindgen(js_name = "toString")] + #[allow(clippy::inherent_to_string)] + pub fn to_string(&self) -> String { + self.as_string.clone() + } + + #[wasm_bindgen(js_name = "fromString")] + pub fn from_string(plaintext: &str) -> Result { + match plaintext_from_string_impl(plaintext) { + Ok(result) => Ok(Self{ network: "TestnetV0".to_string(), as_string: result}), + Err(e) => return Err(e) + } + } + + #[wasm_bindgen(js_name = "hashBhp256")] + pub fn hash_bhp256(&self) -> Result { + match plaintext_hash_bhp256_impl::(&self.as_string) { + Ok(result) => Ok(result), + Err(e) => return Err(e) + } + } +} + +pub fn plaintext_from_string_impl(plaintext: &str) -> Result { + let plaintext_string = PlaintextNative::from_str(plaintext).map_err(|e| e.to_string())?.to_string(); + Ok(plaintext_string) +} + +pub fn plaintext_hash_bhp256_impl(plaintext_string: &str) -> Result { + let literal = PlaintextNative::from_str(&plaintext_string).unwrap(); + let bits = literal.to_bits_le(); + let field_string = N::hash_bhp256(&bits).map_err(|e| e.to_string())?.to_string(); + Ok(field_string) +} + +impl From for Plaintext { + fn from(native: PlaintextNative) -> Self { + let network = network_string_id!(TestnetV0::ID).unwrap().to_string(); + Self { network, as_string: native.to_string() } + } +} + +impl From for PlaintextNative { + fn from(plaintext: Plaintext) -> Self { + PlaintextNative::from_str(&plaintext.as_string).unwrap() + } +} + + +// Write tests +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_plaintext_to_bytes() { + let plaintext_string = "{ account: aleo15xd9tee983ts3urff8j22q64wvcyc8geakghyc3ew5u0v8jfuqgs958t6d, token_id: 4846247369341682005field }"; + let plaintext = Plaintext::from_string( &plaintext_string).unwrap(); + + let hash = plaintext.hash_bhp256().unwrap(); + assert_eq!(hash, "5516020691424619214358523651321345610671348418282339232497640613253889639415field"); + } +} \ No newline at end of file diff --git a/wasm/test.js b/wasm/test.js index 4ac12120f..ff1b1b4f5 100644 --- a/wasm/test.js +++ b/wasm/test.js @@ -6,8 +6,10 @@ const file = $fs.readFileSync("package.json", { encoding: "utf8" }); $fs.writeFileSync("package.json", file.replace(/"type": "module",/g, "")); try { - $child.execSync("wasm-pack test --node", { - stdio: "inherit", + ["testnet", "mainnet"].forEach((network) => { + $child.execSync(`wasm-pack test --node --features ${network}`, { + stdio: "inherit", + }); }); } finally { diff --git a/wasm/tests/offchain.rs b/wasm/tests/offchain.rs index d862ffca6..42842c59b 100644 --- a/wasm/tests/offchain.rs +++ b/wasm/tests/offchain.rs @@ -102,75 +102,6 @@ function add_and_double: const RECORD: &str = "{ owner: aleo184vuwr5u7u0ha5f5k44067dd2uaqewxx6pe5ltha5pv99wvhfqxqv339h4.private, microcredits: 2000000u64.private, _nonce: 4106205762862305308495708971985748592380064201230396559307556388725936304984group.public}"; -#[wasm_bindgen_test] -async fn test_cache_functionality() { - // Get the split proving and verifying keys from the official Aleo parameters server - let split_proving_key_bytes = reqwest::get(SPLIT_PROVER_URL).await.unwrap().bytes().await.unwrap().to_vec(); - let split_verifying_key_bytes = reqwest::get(SPLIT_VERIFIER_URL).await.unwrap().bytes().await.unwrap().to_vec(); - let split_proving_key = ProvingKey::from_bytes(&split_proving_key_bytes).unwrap(); - let split_proving_key_clone = split_proving_key.clone(); - let split_verifying_key = VerifyingKey::from_bytes(&split_verifying_key_bytes).unwrap(); - let split_verifying_key_clone = split_verifying_key.clone(); - let mut program_manager = ProgramManager::new(); - - // Ensure the keypair is not in wasm memory if it has not been cached - assert!(program_manager.get_cached_keypair("credits.aleo", "split").is_err()); - assert!(!program_manager.key_exists("credits.aleo", "split").unwrap()); - - // Cache the keypair in wasm memory - program_manager - .cache_keypair_in_wasm_memory( - &Program::get_credits_program().to_string(), - "split", - split_proving_key, - split_verifying_key, - ) - .unwrap(); - - // Ensure the keypair is in wasm memory and can be retrieved - let mut key_pair = program_manager.get_cached_keypair("credits.aleo", "split").unwrap(); - let retrieved_proving_key = key_pair.proving_key().unwrap(); - let retreived_verifying_key = key_pair.verifying_key().unwrap(); - assert_eq!(split_proving_key_clone, retrieved_proving_key); - assert_eq!(split_verifying_key_clone, retreived_verifying_key); - - let inputs = Array::new(); - inputs.set(0u32, JsValue::from_str("{ owner: aleo184vuwr5u7u0ha5f5k44067dd2uaqewxx6pe5ltha5pv99wvhfqxqv339h4.private, microcredits: 2000000u64.private, _nonce: 4106205762862305308495708971985748592380064201230396559307556388725936304984group.public}")); - inputs.set(1u32, JsValue::from_str("1000000u64")); - - // Ensure program can be executed using the cache after caching an externally provided keypair - let result = program_manager - .execute_function_offline( - PrivateKey::from_string("APrivateKey1zkp3dQx4WASWYQVWKkq14v3RoQDfY2kbLssUj7iifi1VUQ6").unwrap(), - Program::get_credits_program().to_string(), - "split".to_string(), - inputs, - false, - true, - None, - None, - None, - ) - .await - .unwrap(); - - let record = RecordPlaintext::from_string(&result.get_outputs().get(0u32).as_string().unwrap()).unwrap(); - assert_eq!(record.microcredits(), 1000000u64); - - // Ensure the 'key_exists' function can find the keys - assert!(program_manager.key_exists("credits.aleo", "split").unwrap()); - - // Ensure the keypair can't be overwritten - assert!(program_manager - .cache_keypair_in_wasm_memory("credits.aleo", "split", split_proving_key_clone, split_verifying_key_clone) - .is_err()); - - // Ensure the cache clears correctly - program_manager.clear_key_cache(); - assert!(program_manager.get_cached_keypair("credits.aleo", "split").is_err()); - assert!(!program_manager.key_exists("credits.aleo", "split").unwrap()); -} - #[wasm_bindgen_test] async fn test_key_synthesis() { // Synthesize a keypair for the split program diff --git a/website/README.md b/website/README.md index ef8dc123a..994ed2090 100644 --- a/website/README.md +++ b/website/README.md @@ -6,13 +6,13 @@ This project was bootstrapped with [Vite](https://vitejs.dev/). ### Prerequisites -- Follow [SDK Build Guide](https://github.com/AleoHQ/sdk#2-build-guide) to get Rust installed -- Nodejs `18` or `20`. Install through [official website](https://nodejs.org/) or via a node manager like [NVM](https://github.com/creationix/nvm) -- [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) +- Follow the [SDK Build Guide](https://github.com/ProvableHQ/sdk#2-build-guide) to get Rust installed +- Install Node.js `18` or `20` through the [official website](https://nodejs.org/) or via a node manager like [NVM](https://github.com/creationix/nvm) +- Install [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) ```bash -rustup toolchain install nightly-2023-05-24 -rustup component add rust-src --toolchain nightly-2023-05-24 +rustup toolchain install nightly-2024-07-21 +rustup component add rust-src --toolchain nightly-2024-07-21 yarn yarn dev ``` diff --git a/website/package.json b/website/package.json index a69696037..6f0877479 100644 --- a/website/package.json +++ b/website/package.json @@ -10,10 +10,11 @@ "dev:webpack": "webpack-dev-server", "lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0 && prettier . --check", "pretty": "prettier . --write", - "preview": "vite preview" + "preview": "vite preview", + "deploy": "gh-pages -d dist" }, "dependencies": { - "@aleohq/sdk": "^0.6.2", + "@provablehq/sdk": "^0.6.2", "@ant-design/icons": "^4.4.0", "@codemirror/language": "^6.8.0", "@codemirror/legacy-modes": "^6.3.3", @@ -53,5 +54,5 @@ "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1" }, - "homepage": "https://aleo.tools" + "homepage": "https://provable.tools" } diff --git a/website/public/AleofontSans-Regular.otf b/website/public/AleofontSans-Regular.otf new file mode 100644 index 000000000..af1038530 Binary files /dev/null and b/website/public/AleofontSans-Regular.otf differ diff --git a/website/public/github-mark-white.png b/website/public/github-mark-white.png new file mode 100644 index 000000000..50b817522 Binary files /dev/null and b/website/public/github-mark-white.png differ diff --git a/website/public/primary-wordmark-dark.png b/website/public/primary-wordmark-dark.png new file mode 100644 index 000000000..1ff59544f Binary files /dev/null and b/website/public/primary-wordmark-dark.png differ diff --git a/website/src/App.css b/website/src/App.css index eb1e03298..26a55253a 100644 --- a/website/src/App.css +++ b/website/src/App.css @@ -5,4 +5,31 @@ */ input[type="text"]:disabled { cursor: text; +} + +@font-face { + font-family: "AleoSans"; + src: url("../public/AleofontSans-Regular.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +.headerDark { + font-family: "AleoSans"; + color: white; + font-size:32px; + margin-left:2rem; + a { + color: white; + } +} + +.headerLight { + font-family: "AleoSans"; + color: black; + font-size:32px; + margin-left:2rem; + a{ + color: black; + } } \ No newline at end of file diff --git a/website/src/aleo-wasm-hook.js b/website/src/aleo-wasm-hook.js index bd46f9cc2..c8ba89545 100644 --- a/website/src/aleo-wasm-hook.js +++ b/website/src/aleo-wasm-hook.js @@ -15,7 +15,7 @@ export const useAleoWASM = () => { } if (!loadingPromise) { - loadingPromise = import("@aleohq/sdk") + loadingPromise = import("@provablehq/sdk") .then((sdk) => { loadedSDK = sdk; // Save the loaded SDK setAleoInstance(sdk); diff --git a/website/src/components/WasmLoadingMessage.jsx b/website/src/components/WasmLoadingMessage.jsx index cdbb68cb6..3e3f7f8a4 100644 --- a/website/src/components/WasmLoadingMessage.jsx +++ b/website/src/components/WasmLoadingMessage.jsx @@ -18,7 +18,7 @@ export function WasmLoadingMessage() { message.open({ key: "wasmLoading", type: 'success', - content: 'Aleo.tools Loaded!', + content: 'Provable.tools Loaded!', duration: 2, }); } diff --git a/website/src/main.jsx b/website/src/main.jsx index c49ebaecc..38cb8777d 100644 --- a/website/src/main.jsx +++ b/website/src/main.jsx @@ -58,9 +58,9 @@ function Main() { useEffect(() => { setMenuIndex(location.pathname); - if (location.pathname === "/") { - navigate("/account"); - } + // if (location.pathname === "/") { + // navigate("/account"); + // } }, [location, navigate]); const [darkMode, setDarkMode] = useState(true); @@ -80,20 +80,11 @@ function Main() { <WasmLoadingMessage /> <Layout style={{ minHeight: "100vh" }}> <Sider breakpoint="lg" collapsedWidth="0" theme="light"> - <img - src={ - darkMode - ? "../public/aleosdklight.svg" - : "../public/aleosdkdark.svg" - } - alt="Aleo SDK Logo" - style={{ - height: "32px", - margin: "16px", - fontWeight: "bold", - whiteSpace: "nowrap", - }} - /> + <h1 className={darkMode ? "headerDark": "headerLight"}> + <Link to="/"> + Aleo SDK + </Link> + </h1> <Menu theme="light" mode="inline" @@ -113,15 +104,18 @@ function Main() { /> </Sider> <Layout> - <Content style={{ padding: "50px 50px" }}> + <Content style={{ padding: "50px 50px", margin: "0 auto", minWidth: "850px" }}> <Outlet /> </Content> - <Footer style={{ textAlign: "center" }}> - Visit the{" "} - <a href="https://github.com/AleoHQ/sdk"> - Aleo SDK Github repo + <Footer style={{ textAlign: "center", display:"flex", flexDirection: "column" }}> + + <a href="https://github.com/ProvableHQ/sdk"> + <img src="../public/github-mark-white.png" style={{height:"24px"}}></img> </a> - . + <Link to="/terms_of_use" style={{color: "white"}}> <span>Terms of Use</span> </Link> + <Link to="/privacy_policy" style={{color:"white"}}><span>Privacy Policy</span></Link> + + Β© 2024 Provable Inc. </Footer> </Layout> </Layout> diff --git a/website/src/pages/Homepage.css b/website/src/pages/Homepage.css new file mode 100644 index 000000000..178c8971f --- /dev/null +++ b/website/src/pages/Homepage.css @@ -0,0 +1,187 @@ +/* Mobile Styles */ +.homepage { + padding: 10px; + font-size: 14px; +} + +.buttonRow { + display: flex; + flex-direction: column; + align-items: center; + gap: 20px; +} + + +.button { + background-color: #12e172; + padding: 16px 32px 16px 32px; + border-radius: 9px; + font-size: 18px; + color: white; + border: none; + + a { + text-decoration: none; + color: white; + } +} + +.button:hover { + background-color: #0bb359; +} + +.arrow { + font-family: "AleoSans"; +} + +.headerContainer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 100%; +} + +.header { + font-size: 3rem; + max-width: 1200px; + width: 100%; + margin: 10rem auto 0; + text-align: center; +} + +.subheader { + font-size: 1rem; + text-align: center; +} + +.secondSubheader { + font-size: 16px; + text-align: center; + margin-top: 6rem; +} + +.actionRow { + display: flex; + flex-direction: column; + height: 100%; + max-height: 100rem; + align-items: center; + justify-content: space-between; + margin: 5rem auto 0; + padding-left: 0; +} + +.actionRow a:nth-child(2), +a:nth-child(3) { + margin-top: 2rem; +} + +.actionItem { + width: 200px; + padding: 1rem 1rem 1rem 1rem; + border: 2px solid white; + border-radius: 20px; + list-style-type: none; + text-align: center; + color: white; + text-decoration: none; + font-size: 1rem; + align-content: center; +} + +.actionItem:hover { + background-color: #0bb359; +} + +/* Desktop Styles */ +@media (min-width: 1024px) { + .homepage { + padding: 20px; + font-size: 18px; + } + + .buttonRow { + display: flex; + flex-direction: row; + gap: 20px; + } + + .actionRow { + display: flex; + flex-direction: row; + width: 100%; + max-width: 800px; + justify-content: space-between; + margin: 10rem auto 0; + } + + .header { + font-size: 6rem; + max-width: 1200px; + width: 100%; + margin: 10rem auto 0; + text-align: center; + } + + .subheader { + font-size: 32px; + width: 35rem; + text-align: center; + } + + .secondSubheader { + font-size: 32px; + width: 35rem; + text-align: center; + margin-top: 10rem; + } + + .actionRow a:nth-child(2), + a:nth-child(3) { + margin-top: 0; + } + + .actionItem { + width: 175px; + padding: 2rem 2rem 2rem 2rem; + border: 2px solid white; + border-radius: 30px; + list-style-type: none; + text-align: center; + + a { + color: white; + text-decoration: none; + font-size: 24px; + align-content: center; + } + } + + .actionItem:hover { + background-color: #0bb359; + } +} + +@font-face { + font-family: "AleoSans"; + src: url("../../public/AleofontSans-Regular.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +body { + font-family: "AleoSans", sans-serif; + color: white; +} + +.logo { + height: 2rem; +} + +.footer { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 10rem; +} diff --git a/website/src/pages/Homepage.jsx b/website/src/pages/Homepage.jsx new file mode 100644 index 000000000..bee420ac3 --- /dev/null +++ b/website/src/pages/Homepage.jsx @@ -0,0 +1,91 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +import "./Homepage.css"; + +const Homepage = () => { + return ( + <div className="homepage"> + <Link to="https://provable.com/"> + <img + src="../public/primary-wordmark-dark.png" + className="logo" + ></img> + </Link> + <div className="headerContainer"> + <h1 className="header">Aleo SDK</h1> + <p className="subheader"> + The tooling for building zero-knowledge applications at your + fingertips + </p>{" "} + <div className="buttonRow"> + <Link + target="_blank" + rel="noopener noreferrer" + to="/account" + > + <button className="button"> + {" "} + Try now <span className="arrow">&rarr;</span>{" "} + </button> + </Link>{" "} + <Link + target="_blank" + rel="noopener noreferrer" + to="https://developer.aleo.org/sdk/" + > + <button className="button"> + {" "} + See Docs <span className="arrow">&rarr;</span>{" "} + </button> + </Link>{" "} + </div> + <ul className="actionRow"> + <Link to="/account" className="actionItem"> + {" "} + <li>Create and manage accounts </li> + </Link> + + <Link to="/develop" className="actionItem"> + {" "} + <li>Execute and deploy programs </li> + </Link> + + <Link to="/transfer" className="actionItem"> + <li>Manage program state and data</li> + </Link> + </ul> + <p className="secondSubheader"> + Build your first zero-knowledge app with create-leo-app + </p>{" "} + <Link + target="_blank" + rel="noopener noreferrer" + to="https://docs.leo-lang.org/sdk/create-leo-app/tutorial/" + > + <button className="button"> + Try now <span className="arrow">&rarr;</span> + </button> + </Link>{" "} + <div className="footer"> + <a href="https://github.com/ProvableHQ/sdk"> + <img + src="../public/github-mark-white.png" + style={{ height: "24px", marginBottom: "1rem" }} + ></img> + </a> + <Link to="/terms_of_use" style={{ color: "white", textDecoration: "none" }}> + {" "} + <span>Terms of Use</span>{" "} + </Link> + <Link to="/privacy_policy" style={{ color: "white", textDecoration: "none"}}> + <span>Privacy Policy</span> + </Link> + Β© 2024 Provable Inc. + </div> + </div> + </div> + ); +}; + +export default Homepage; diff --git a/website/src/pages/PrivacyPolicy.css b/website/src/pages/PrivacyPolicy.css new file mode 100644 index 000000000..d04741ce8 --- /dev/null +++ b/website/src/pages/PrivacyPolicy.css @@ -0,0 +1,21 @@ +body { + font-family:'AleoSans'; + line-height: 1.6; + margin: 20px; +} + +p { + margin: 10px 0; +} +table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; +} +table, th, td { + border: 1px solid #ddd; +} +th, td { + padding: 10px; + text-align: left; +} \ No newline at end of file diff --git a/website/src/pages/PrivacyPolicy.jsx b/website/src/pages/PrivacyPolicy.jsx new file mode 100644 index 000000000..f61980278 --- /dev/null +++ b/website/src/pages/PrivacyPolicy.jsx @@ -0,0 +1,1351 @@ +import React from "react"; +import "./PrivacyPolicy.css"; + +const PrivacyPolicy = () => { + return ( + <div className="privacy-policy"> + <h1> Provable Privacy Notice</h1> + <p> Last Updated: 8/19/2024</p> + <p> + This Privacy Notice explains how Provable Inc., its affiliates + and/or its subsidiaries (collectively referred to as β€œProvable”, + β€œwe”, β€œour”, or β€œus”) may collect, use, disclose, and otherwise + process personal data including, without limitation, in + connection with the websites provable.com, explorer.aleo.org, + provable.tools, leo-lang.org, any associated webpages and any + successor URL(s) or URLs to which they redirect, and any and all + related software, documentation, and online, mobile-enabled, + and/or digital services, including without limitation access to + and use of Provable’s Explorer, API, Leo Playground Tools + software (collectively, the β€œPlatform”). We may also choose or + be required by law to provide different or additional + disclosures relating to the processing of personal data about + residents of certain countries, regions, or states. Please refer + to the Region-Specific Disclosures section below for additional + disclosures that may be applicable to you. This Privacy Notice + does not address our privacy practices relating to Provable job + applicants, employees and other employment-related individuals, + nor data that is not subject to applicable data protection laws + (such as deidentified or publicly available information). This + Privacy Notice is also not a contract and does not create any + legal rights or obligations not otherwise provided by law.{" "} + </p> + <h2> Our Collection and Use of Personal Data </h2> + <p> + {" "} + The categories of personal data we collect depend on how you + interact with us and our services. For example, you may provide + us your personal data directly when you visit our site. We may + also collect personal data automatically when you interact with + our websites and other services and may also collect personal + data from other sources and third parties.{" "} + </p> + <h3> Personal Data Provided by Individuals </h3> + Generally, we do not require you to provide any personal data when + you access our websites or use our Platform, but we may collect the + following categories personal data. + <ul> + <li> + {" "} + Contact Information, including first and last name and email + address. We use this information primarily to respond to any + requests you have or to communicate with you directly.{" "} + </li> + <li> + {" "} + Customer Content, including any files, documents, audio, + videos, images, data, or communications you choose to input, + upload, embed, or transmit by using the Platform or any + other services we provide, this includes content submitted + to any layer-1 or layer-2 blockchain to execute smart + contracts and other related activities, or to our anonymized + search engines. + </li> + <li> + {" "} + Feedback and Support Information, including the contents of + custom messages sent to our Platform or email addresses. + </li> + </ul> + <p> + {" "} + We use this information primarily to respond to any inquiries + you have. to communicate with you, and to improve our Platform + and other services. If you choose to contact us, we may need + additional information to fulfill the request or respond to your + inquiry. We may provide additional privacy disclosures where the + scope of the request we receive or personal data we require fall + outside the scope of this Privacy Notice. In that case, the + additional privacy disclosures will govern how we may process + the information you provide at that time. + </p> + <h3> Personal Data Automatically Collected </h3> + <p> + {" "} + We, and our third-party partners, may automatically collect + information you provide to us and information about how you + access and use our products and services when you engage with + us. We typically collect this information through the use of a + variety of our own and our third-party partners’ automatic data + collection technologies, including (i) cookies or small data + files that are stored on an individual’s computer and (ii) + other, related technologies, such as web beacons, pixels, + embedded scripts, and logging technologies. While we may combine + information we collect automatically about you with 1 other + personal data we collect directly from you, we do not typically + collect personal data when you access our websites or use our + Platform. + <p> + We, and our third-party partners, may use automatic data + collection technologies to automatically collect the + following data when you use our services or otherwise engage + with us: + </p> + <ul> + <li> + Information About Your Device and Network, including the + device type, manufacturer, and model, operating system, + IP address, browser type, Internet service provider, and + unique identifiers associated with you, your device, or + your network (including, for example, a persistent + device identifier or advertising ID). We employ + third-party technologies designed to allow us to + recognize when two or more devices are likely being used + by the same individual and may leverage these + technologies (where permitted) to link information + collected from different devices.{" "} + </li> + + <li> + {" "} + Information About the Way Individuals Use Our Services + and Interact With Us, including the site from which you + came, the site to which you are going when you leave our + services, how frequently you access our services, + whether you open emails or click the links contained in + emails, whether you access our services from multiple + devices, and other browsing behavior and actions you + take on our services (such as the pages you visit, the + content you view, the communications you have through + our services, and the content, links and ads you + interact with). We employ third-party technologies + designed to allow us to collect detailed information + about browsing behavior and actions that you take on our + services, which may record your mouse movements, + scrolling, clicks, and keystroke activity on our + services and other browsing, search or purchasing + behavior. These third-party technologies may also record + information you enter when you interact with our + products or services, or engage in chat features or + other communication platforms we provide.{" "} + </li> + + <li> + {" "} + Information About Your Location, including general, + non-precise geographic location that we or our + third-party providers may derive from your IP address. + All of the information collected automatically through + these tools allows us to improve your customer + experience and our Platform and services. For example, + we may use this information to enhance and personalize + your user experience, to monitor and improve our + products and services, and to improve the effectiveness + of our products, services, offers, advertising, + communications and customer service. We may also use + this information to: (a) remember information so that + you will not have to re-enter it during your visit or + the next time you visit the site; (b) provide custom, + personalized content and information; (c) identify you + across multiple devices; (d) provide and monitor the + effectiveness of our services; (e) monitor aggregate + metrics such as total number of visitors, traffic, + usage, and demographic patterns on our website; (f) + diagnose or fix technology problems; and (g) otherwise + to plan for and enhance our products and services. For + information about the choices you may have in relation + to our use of automatic data collection technologies, + please refer to the Your Privacy Choices section below. + </li> + </ul> + <h2>Personal Data from Other Sources and Third Parties</h2> + <p> + We may receive the same categories of personal data as + described above from the following sources and other + parties: + </p> + <ul> + <li> + <strong>Our Affiliates:</strong> We may receive personal + data about you from other Provable entities for purposes + and uses that are consistent with this Privacy Notice. + </li> + <li> + <strong>Other Customers:</strong> We may receive your + personal data from our other customers. For example, a + customer may provide us with your contact information as + a part of a referral. + </li> + <li> + <strong>Social Media:</strong> When you interact with + our services through other social media networks, such + as when you follow us or share our content on other + social networks, we may receive some information that + you permit the social network to share with third + parties. The data we receive is dependent upon your + privacy settings with the social network, and may + include profile information, profile picture, username, + and any other information you permit the social network + to share with third parties. You should always review + and, if necessary, adjust your privacy settings on + third-party websites and social media networks and + services before sharing information and/or linking or + connecting them to other services. We use this + information primarily to operate, maintain, and provide + to you the features and functionality of our Platform + and the services, as well as to communicate directly + with you, such as to send you messages about products + and services that may be of interest to you. + </li> + <li> + <strong>Service Providers:</strong> Our service + providers that perform services on our behalf, such as + analytics and certain marketing providers, may collect + personal data and often share some or all of this + information with us. For example, we may receive + personal data from our analytics providers. + </li> + <li> + <strong>Other Sources:</strong> We may also collect + personal data about you from other sources, including + publicly available sources, third-party data providers, + brand partnerships, or through transactions such as + mergers and acquisitions. + </li> + <li> + <strong>Inferences:</strong> We may generate inferences + or predictions about you and your interests and + preferences based on the other personal data we collect + and the interactions we have with you. + </li> + </ul> + <div> + <h2>Additional Uses of Personal Data</h2> + <p> + In addition to the primary purposes for using personal + data described above, we may also use personal data we + collect to: + </p> + <ul> + <li> + Fulfill or meet the reason the information was + provided, such as to facilitate the provision of the + Platform or any other services requested; + </li> + <li> + Manage our organization and its day-to-day + operations; + </li> + <li> + Communicate with you, including via email or social + media; + </li> + <li> + Facilitate the relationship we have with you and, + where applicable, the company you represent; + </li> + <li> + Request you provide us feedback about our product + and service offerings; + </li> + <li> + Address inquiries or complaints made by or about an + individual in connection with our products or + services; + </li> + <li> + Administer, improve, and personalize our products + and services, including by recognizing you and + remembering your information when you return to our + products and services; + </li> + <li> + Develop, operate, improve, maintain, protect, and + provide the features and functionality of our + products and services; + </li> + <li> + Identify and analyze how you use our products and + services; + </li> + <li> + Infer additional information about you from your use + of our products and services, such as your + interests; + </li> + <li> + Create aggregated or de-identified information that + cannot reasonably be used to identify you, which + information we may use for purposes outside the + scope of this Privacy Notice; + </li> + <li> + Conduct research and analytics on our user base and + our products and services, including to better + understand the demographics of our users; + </li> + <li> + Improve and customize our products and services to + address the needs and interests of our user base and + other individuals we interact with; + </li> + <li> + Test, enhance, update, and monitor the products and + services, or diagnose or fix technology problems; + </li> + <li> + Help maintain and enhance the safety, security, and + integrity of our property, products, services, + technology, assets, and business; + </li> + <li> + Defend, protect, or enforce our rights or applicable + contracts and agreements (including our Terms of + Use), as well as to resolve disputes, to carry out + our obligations and enforce our rights, and to + protect our business interests and the interests and + rights of third parties; + </li> + <li> + Detect, prevent, investigate, or provide notice of + security incidents or other malicious, deceptive, + fraudulent, or illegal activity and protect the + rights and property of Provable and others; + </li> + <li> + Facilitate business transactions and reorganizations + impacting the structure of our business; + </li> + <li> + Comply with contractual and legal obligations and + requirements; + </li> + <li> + Fulfill any other purpose for which you provide your + personal data, or for which you have otherwise + consented; and + </li> + <li>Any other reason permitted by law.</li> + </ul> + </div> + <div> + <h2>Our Disclosure of Personal Data</h2> + <p> + We may disclose or otherwise make available personal + data in the following ways: + </p> + <ul> + <li> + <strong>To Our Affiliates:</strong> We are able to + offer you the products and services we make + available because of the hard work of our team + members across Provable entities. To provide our + products and facilitate our services, Provable + entities may disclose personal data to other + Provable entities for purposes and uses that are + consistent with this Privacy Notice. For example, + the Provable entity responsible for our website may + disclose your contact information to a Provable + entity in your region to facilitate communications + between you and a local Provable representative. + </li> + <li> + <strong>To Service Providers:</strong> We may engage + other third parties to perform certain services on + our behalf in connection with the uses of personal + data described in the sections above. Depending on + the applicable services, these service providers may + process personal data on our behalf or have access + to personal data while performing services on our + behalf. + </li> + <li> + <strong> + In Connection with a Business Transaction or + Reorganization: + </strong> + We may take part in or be involved with a business + transaction or reorganization, such as a merger, + acquisition, joint venture, or financing or sale of + company assets. We may disclose, transfer, or assign + personal data to a third-party during negotiation + of, in connection with, or as an asset in such a + business transaction or reorganization. Also, in the + unlikely event of our bankruptcy, receivership, or + insolvency, your personal data may be disclosed, + transferred, or assigned to third parties in + connection with the proceedings or disposition of + our assets. + </li> + <li> + <strong> + To Facilitate Legal Obligations and Rights: + </strong>{" "} + We may disclose personal data to third parties, such + as legal advisors and law enforcement: + <ul> + <li> + in connection with the establishment, + exercise, or defense of legal claims; + </li> + <li> + to comply with laws, regulations, regulatory + guidelines, or orders, or to respond to + lawful requests and legal process; + </li> + <li> + to protect our rights and property and the + rights and property of our agents, + customers, and others, including to enforce + our agreements, policies, and terms of use; + </li> + <li>to detect, suppress, or prevent fraud;</li> + <li> + to reduce credit risk and collect debts owed + to us; + </li> + <li> + to protect the health and safety of us, our + customers, or any person; + </li> + <li> + as otherwise required by applicable law. + </li> + </ul> + </li> + <li> + <strong>With Your Consent or Direction:</strong> We + may disclose your personal data to certain other + third parties or publicly with your consent or + direction. For example, with your permission and + subject to applicable laws and regulations and the + terms set forth in any applicable Terms of Use, we + may allow you to use our Platform to transmit or + embed information to applicable Blockchains to + facilitate the provision of smart contracts. + </li> + </ul> + + <h2>Your Privacy Choices</h2> + <p> + The following privacy choices are made available to all + individuals with whom we interact. You may also have + additional choices regarding your personal data + depending on your location or residency. Please refer to + our Region-Specific Disclosures below for information + about additional privacy choices that may be available + to you. + </p> + + <h3>Communication Preferences</h3> + <ul> + <li> + <strong>Email Communication Preferences:</strong> In + the future, we may allow you to subscribe to receive + newsletters and other information from our Platform. + You can stop receiving promotional email + communications from us by clicking on the + β€œunsubscribe” link provided in any of our email + communications. Please note you cannot opt-out of + service-related email communications (such as + service update emails). + </li> + </ul> + + <h3>Automatic Data Collection Preferences</h3> + <p> + You may be able to utilize third-party tools and + features to further restrict our use of automatic data + collection technologies. For example: + </p> + <ul> + <li> + (i) most browsers allow you to change browser + settings to limit automatic data collection + technologies on websites, + </li> + <li> + (ii) most email providers allow you to prevent the + automatic downloading of images in emails that may + contain automatic data collection technologies, + </li> + <li> + (iii) many devices allow you to change your device + settings to limit automatic data collection + technologies for device applications. + </li> + </ul> + <p> + Please note that blocking automatic data collection + technologies through third-party tools and features may + negatively impact your experience using our services, as + some features and offerings may not work properly or at + all. Depending on the third-party tool or feature you + use, you may not be able to block all automatic data + collection technologies or you may need to update your + preferences on multiple devices or browsers. We do not + have any control over these third-party tools and + features and are not responsible if they do not function + as intended. + </p> + + <h3>Partner-Specific Preferences</h3> + <p> + Certain of our third-party providers and partners offer + additional ways that you may exercise control over your + personal data, or automatically impose limitations on + the way we can use personal data in connection with the + services they provide: + </p> + <ul> + <li> + <strong> + Device-Specific / Platform-Specific Preferences: + </strong>{" "} + The device and/or platform you use to interact with + us (such as your mobile device or social media + provider), may provide you additional choices with + regard to the data you choose to share with us. For + example, many mobile devices allow you to change + your device permissions to prevent our products and + services from accessing certain types of information + from your device (such as your contact lists or + precise geolocation data), and many social media + platforms allow you to change your platform + permissions to prevent integrated products and + services from accessing certain types of information + connected with your profile. Please refer to your + device or platform provider’s user guides for + additional information about implementing any + available platform-specific targeted advertising + opt-outs. + </li> + </ul> + + <h2>Children’s Personal Data</h2> + <p> + Our services are not directed to, and we do not intend + to, or knowingly, collect or solicit personal data from + children under the age of 13. If an individual is under + the age of 13, they should not use our services or + otherwise provide us with any personal data either + directly or by other means. If a child under the age of + 13 has provided personal data to us, we encourage the + child’s parent or guardian to contact us to request that + we remove the personal data from our systems. If we + learn that any personal data we collect has been + provided by a child under the age of 13, we will + promptly delete that personal data. + </p> + + <h2>Security of Personal Data</h2> + <p> + We have implemented reasonable physical, technical, and + organizational safeguards that are designed to protect + your personal data. However, despite these controls, we + cannot completely ensure or warrant the security of your + personal data. + </p> + + <h2>Retention of Personal Data</h2> + <p> + We will usually retain the personal data we collect + about you for no longer than reasonably necessary to + fulfill the purposes for which it was collected, and in + accordance with our legitimate business interests and + applicable law. However, if necessary, we may retain + personal data for longer periods of time as required + under applicable law or as needed to resolve disputes or + protect our legal rights. + </p> + <p> + To determine the appropriate duration of the retention + of personal data, we consider the amount, nature, and + sensitivity of the personal data, the potential risk of + harm from unauthorized use or disclosure of personal + data and if we can attain our objectives by other means, + as well as our legal, regulatory, tax, accounting, and + other applicable obligations. + </p> + <p> + Once retention of the personal data is no longer + reasonably necessary for the purposes outlined above, we + will either delete or deidentify the personal data or, + if that is not possible (for example, because personal + data has been stored in backup archives), we will + securely store the personal data and isolate it from + further active processing until deletion or + deidentification is possible. + </p> + + <h2>Third-Party Websites and Services</h2> + <p> + Our services may include links to third-party websites, + plug-ins, applications, and other services. Except where + we post, link to or expressly adopt or refer to this + Privacy Notice, this Privacy Notice does not apply to + any personal data practices of third parties. To learn + about the personal data practices of third parties, + please visit their respective privacy notices. + </p> + + <h2>Region-Specific Disclosures</h2> + <p> + We may choose or be required by law to provide different + or additional disclosures relating to the processing of + personal data about residents of certain countries, + regions, or states. Please refer below for disclosures + that may be applicable to you: + </p> + <ul> + <li> + <strong> + European Economic Area, United Kingdom or + Switzerland: + </strong>{" "} + If you are located in the European Economic Area + (Member States of the European Union together with + Iceland, Norway, and Liechtenstein), the United + Kingdom, or Switzerland, please click here for + additional European-specific privacy disclosures, + including a description of the personal data rights + made available to individuals located in those + jurisdictions under applicable law. + </li> + <li> + <strong>United States:</strong> If you are a + resident of the United States, please click here for + additional U.S.-specific privacy disclosures, + including a description of the personal data rights + made available to residents of certain states under + applicable law. + </li> + </ul> + + <h2>Updates to This Privacy Notice</h2> + <p> + We may update this Privacy Notice from time to time. + When we make changes to this Privacy Notice, we will + change the date at the beginning of this Privacy Notice. + If we make material changes to this Privacy Notice, we + will notify individuals by email to their registered + email address, by prominent posting on this website or + our other platforms, or through other appropriate + communication channels. All changes shall be effective + from the date of publication unless otherwise provided. + </p> + + <h2>Contact Us</h2> + <p> + If you have any questions or requests in connection with + this Privacy Notice or other privacy-related matters, + please send an email to privacypolicy@provable.com. + </p> + </div> + <div> + <h2>ADDITIONAL UNITED STATES PRIVACY DISCLOSURES</h2> + <p> + These disclosures supplement the information contained + in our Privacy Notice by providing additional + information about our personal data processing practices + relating to individual residents of certain states in + the United States. For a detailed description of how we + collect, use, disclose, and otherwise process personal + data, please read our Privacy Notice. + </p> + + <h3>Nevada Residents</h3> + <p> + If you are a resident of the state of Nevada in the + United States, you have the right to opt out of the sale + of your personal data. Although we do not currently sell + personal data of Nevada residents (as defined under + Nevada law), you may submit a request to opt-out of the + sale of your personal data by sending an email to{" "} + <a href="mailto:privacypolicy@provable.com"> + privacypolicy@provable.com + </a> + . + </p> + + <h3> + California, Colorado, Connecticut, Utah, Texas, and + Virginia Residents + </h3> + <p> + If you are a resident of the state of California, + Colorado, Connecticut, Utah, Texas, or Virginia in the + United States, the following supplementary disclosures + apply to you. + </p> + + <h4> + Personal Data Disclosures, Sales and Targeted + Advertising + </h4> + <p> + We may disclose all of the categories of personal data + we collect to the categories of recipients set forth in + the "Our Disclosure of Personal Data" section of our + Privacy Notice. However, we do not sell personal data, + and we do not process or otherwise share personal data + for the purpose of displaying advertisements that are + selected based on personal data obtained or inferred + over time from an individual’s activities across + non-affiliated businesses or websites, applications, or + other services (otherwise known as β€œtargeted + advertising” or β€œcross-context behavioral advertising”). + </p> + <p> + We do not sell your personal data or share such + information for targeted advertising. However, you may + have additional rights (as described in the "Your + Additional U.S. Privacy Choices" section below). + </p> + + <h4>Sensitive Personal Data</h4> + <p> + We do not collect personal data elements that may be + classified as β€œsensitive” under certain privacy laws. + </p> + + <h4>Deidentified Information</h4> + <p> + We may at times receive, or process personal data to + create, deidentified information that can no longer + reasonably be used to infer information about, or + otherwise be linked to, a particular individual or + household. Where we maintain deidentified information, + we will maintain and use the information in deidentified + form and not attempt to reidentify the information + except as required or permitted by law. + </p> + + <h4>Automated Decision-Making and Profiling</h4> + <p> + We do not conduct automated processing of personal data + for the purposes of evaluating, analyzing, or predicting + an individual’s personal aspects in furtherance of + decisions that produce legal or similarly significant + effects. As a result, we do not provide a right to + exercise control over such forms of automated + decision-making and profiling. + </p> + </div> + <div> + <h3>Your Additional U.S. Privacy Choices</h3> + <p> + Depending on your state of residency and subject to + certain legal limitations and exceptions, you may be + able to exercise some or all of the following rights: + </p> + <ul> + <li> + <strong>Right to Know:</strong> The right to confirm + whether we are processing personal data about you + and, under California law only, to obtain certain + personalized details about the personal data we have + collected about you, including: + <ul> + <li> + The categories of personal data collected; + </li> + <li> + The categories of sources of the personal + data; + </li> + <li> + The purposes for which the personal data + were collected; + </li> + <li> + The categories of personal data disclosed to + third parties (if any), and the categories + of recipients to whom this personal data + were disclosed; + </li> + <li> + The categories of personal data shared for + targeted advertising purposes (if any), and + the categories of recipients to whom the + personal data were disclosed for these + purposes; and + </li> + <li> + The categories of personal data sold (if + any) and the categories of third parties to + whom the personal data were sold. + </li> + </ul> + </li> + <li> + <strong>Right to Access & Portability:</strong> The + right to obtain access to the personal data we have + collected about you and, where required by law, the + right to obtain a copy of the personal data in a + portable and, to the extent technically feasible, + readily usable format that allows you to transmit + the data to another entity without hindrance. + </li> + <li> + <strong>Right to Correction:</strong> The right to + correct inaccuracies in your personal data, taking + into account the nature of the personal data and the + purposes of the processing of the personal data. + </li> + <li> + <strong>Right to Deletion:</strong> The right to + have us delete personal data we maintain about you. + </li> + </ul> + </div> + <div> + <p> + Depending on your state of residency, you may also have + the right to not receive retaliatory or discriminatory + treatment in connection with a request to exercise the + above rights. However, the exercise of the rights + described above may result in a different price, rate, + or quality level of product or service where that + difference is reasonably related to the impact the right + has on our relationship or is otherwise permitted by + law. + </p> + + <h3>Submitting Privacy Rights Requests</h3> + <p> + Please submit a request specifying the right you wish to + exercise by emailing us at{" "} + <a href="mailto:privacypolicy@provable.com"> + privacypolicy@provable.com + </a> + . + </p> + <p> + Since we do not collect personal data that identifies + you when you access our websites or use our Platform, we + may not have any way to identify if we only collect + automatic data alone. Before processing your request to + exercise certain rights (including the Right to Know, + Access & Portability, Correction, and Deletion), we will + need to verify your identity and confirm you are a + resident of a state that offers the requested right(s). + In order to verify your identity, we will generally + either require the matching of sufficient information + you provide us to the information we maintain about you + in our systems. As a result, we require requests + submitted through our online form to include first and + last name, state of residency and/or the date of your + last transaction with us. + </p> + <p> + In certain circumstances, we may decline or limit your + request, particularly where we are unable to verify your + identity or locate your information in our systems, or + where you are not a resident of one of the eligible + states. + </p> + + <h3>Submitting Authorized Agent Requests</h3> + <p> + In certain circumstances, you are permitted to use an + authorized agent to submit requests on your behalf + through the designated methods set forth above where we + can verify the authorized agent’s authority to act on + your behalf. In order to verify the authorized agent’s + authority, we generally require evidence of either (i) a + valid power of attorney or (ii) a signed letter + containing your name and contact information, the name + and contact information of the authorized agent, and a + statement of authorization for the request. Depending on + the evidence provided and your state of residency, we + may still need to separately reach out to you to confirm + the authorized agent has permission to act on your + behalf and to verify your identity in connection with + the request. + </p> + + <h3>Submitting Parental Requests</h3> + <p> + If you wish to submit a privacy request on behalf of + your minor child in accordance with applicable law, you + must provide sufficient information to allow us to + reasonably verify your child is the person about whom we + collected personal data and you are authorized to submit + the request on your child’s behalf. + </p> + + <h3>Appealing Privacy Rights Decisions</h3> + <p> + Depending on your state of residency, you may be able to + appeal a decision we have made in connection with your + privacy rights request. All appeal requests should be + submitted by replying to the communication resolving + your original request. + </p> + </div> + </p> + <div> + <h2> + ADDITIONAL EUROPEAN ECONOMIC AREA, UNITED KINGDOM, AND + SWITZERLAND PRIVACY DISCLOSURES + </h2> + <p> + These disclosures supplement the information contained in + our Privacy Notice by providing additional information about + our personal data processing practices relating to + individuals who access our services or otherwise interact + with us from the European Economic Area (β€œEEA”), United + Kingdom ("UK"), and Switzerland. For a detailed description + of how we collect, use, disclose, and otherwise process + personal data, please read our Privacy Notice. + </p> + + <h3>Controller Details and Privacy Contacts</h3> + <p> + <strong>EEA, UK, and Swiss Controller</strong> + <br /> + Provable Inc., a company duly incorporated and organised + under the laws of the United States, having its address at + 5470 Kietzke Lane, STE 300, Reno, NV 89511, is the + β€œcontroller” responsible for the processing of personal data + in connection with our EEA, UK, and Swiss services and + operations. This means Provable Inc. determines and is + responsible for how your personal data is used. You may + contact us by emailing{" "} + <a href="mailto:privacypolicy@provable.com"> + privacypolicy@provable.com + </a> + . + </p> + + <h3>Additional Questions or Complaints</h3> + <p> + If you have a concern about our processing of personal data, + you have the right to lodge a complaint with the Data + Protection Authority where you reside, where you work, or + where an alleged violation of the law has occurred. Contact + details for applicable Data Protection Authorities can be + found using the links below: + </p> + <ul> + <li> + <a href="https://edpb.europa.eu/about-edpb/board/members_en"> + European Economic Area + </a> + </li> + <li> + <a href="https://ico.org.uk/global/contact-us/"> + United Kingdom + </a> + </li> + <li> + <a href="https://www.edoeb.admin.ch/edoeb/en/home/the-fdpic/contact.html"> + Switzerland + </a> + </li> + </ul> + <p> + We would, however, appreciate the chance to handle your + concerns directly prior to a complaint being filed, so + please contact us directly at{" "} + <a href="mailto:privacypolicy@provable.com"> + privacypolicy@provable.com + </a>{" "} + if you have any concerns. + </p> + + <h3>Purposes and Legal Bases of Processing</h3> + <p> + When we process your personal data, we will do so in + reliance on the following lawful bases: + </p> + <ul> + <li> + <strong>Contract:</strong> Where the processing is + necessary for the performance of a contract to which you + are a party, or to take steps at your request prior to + entering into a contract with you. This applies to any + processing where you sign a contract with us, for + example when you become our customer or deliver services + to us as a vendor or contractor. This may also include + processing necessary for the performance of our Terms of + Use. + </li> + <li> + <strong>Legitimate Interest:</strong> Where the + processing is necessary for the purposes of a legitimate + interest that are not overridden by your interests or + fundamental rights and freedoms (e.g., to provide, + maintain, and improve our products and services, conduct + data analytics, and communicate with you regarding our + services). + </li> + <li> + <strong>Vital Interest:</strong> Where the processing is + necessary to protect the vital interests of you or + another person (e.g., to protect your physical safety). + </li> + <li> + <strong>Public Interest:</strong> Where the processing + is necessary to perform tasks carried out in the public + interest or in the exercise of official authority vested + in us (e.g., to cooperate in an ongoing law enforcement + investigation). + </li> + <li> + <strong>Legal Obligation:</strong> Where the processing + is necessary to comply with our legal obligations (e.g., + to maintain a record of your personal data to comply + with laws and regulations related to bookkeeping, + accounting, taxation, and employment). + </li> + <li> + <strong>Consent:</strong> Where we have your consent for + the processing (e.g., when you opt in to receive + marketing communications from us). When consent is the + legal basis for our processing of your personal data, + you may withdraw your consent at any time. + </li> + </ul> + <p> + You are not required to provide personal data to us, but we + do rely on your personal data to provide certain of our + products and services. For example, we need your personal + data to facilitate and deliver an order that you request. If + you choose not to provide us with your personal data, we may + not be able to provide you with a service or product you + request. We will inform you at the point that we collect + personal data from you if the provision of certain personal + data is mandatory or optional for receipt of our products + and services. + </p> + </div> + <div> + <h3>Automated Decision-Making and Profiling</h3> + <p> + We do not conduct automated processing of personal data, + including profiling, for the purposes of making decisions + about you. + </p> + + <h3>Retention of Personal Data</h3> + <p> + We will usually retain the personal data we collect about + you for no longer than reasonably necessary to fulfill the + purposes for which it was collected, and in accordance with + our legitimate business interests and applicable law. + However, if necessary, we may retain personal data for + longer periods of time as required under applicable law or + as needed to resolve disputes or protect our legal rights. + </p> + + <p> + The criteria used to determine the period of time for which + personal data about you will be retained varies depending on + the legal basis under which we process your personal data: + </p> + + <ul> + <li> + <strong>Contract:</strong> Where we are processing + personal data based on contract, we generally will + retain the information for the duration of the contract + plus some additional limited period of time that is + necessary to comply with law or that represents the + statute of limitations for legal claims that could arise + from the contractual relationship. + </li> + <li> + <strong>Legitimate Interest:</strong> Where we are + processing personal data based on legitimate interests, + we generally will retain the information for a + reasonable period of time based on the particular + interest, taking into account the fundamental interests + and the rights and freedoms of data subjects. + </li> + <li> + <strong>Vital Interest:</strong> Where we are processing + personal data based on vital interests, we generally + will retain the information for the period of time + necessary to protect the vital interests of the relevant + person plus some additional limited period of time that + represents any applicable statute of limitations for + legal claims that could arise out of the related events. + </li> + <li> + <strong>Public Interest:</strong> Where we are + processing personal data to perform tasks carried out in + the public interest or in the exercise of official + authority vested in us, we generally will retain the + information for a reasonable period of time based on the + public interest / official authority, taking into + account any obligations we may have to retain the + information for a longer period of time. + </li> + <li> + <strong>Legal Obligation:</strong> Where we are + processing personal data based on a legal obligation, we + generally will retain the information for the period of + time necessary to fulfill the legal obligation plus some + additional limited period of time that represents the + statute of limitations for legal claims that could arise + from the legal obligation. + </li> + <li> + <strong>Consent:</strong> Where we are processing + personal data based on your consent, we generally will + retain the information for the period of time necessary + to fulfill the purposes for which you have provided your + consent. + </li> + </ul> + + <p> + In certain circumstances, we may need to apply a β€œlegal + hold” that retains information beyond our typical retention + period where we face threat of legal claim. In that case, we + will retain the information until the hold is removed, which + typically means the claim or threat of claim has been + resolved. In all cases, in addition to the purposes and + legal bases identified above, we consider the amount, nature + and sensitivity of personal data, as well as the potential + risk of harm from unauthorized use or disclosure of personal + data, in determining the relevant retention period. Once + retention of the personal data is no longer reasonably + necessary for the purposes outlined above, we will either + delete or deidentify the personal data or, if that is not + possible (for example, because personal data has been stored + in backup archives), we will securely store the personal + data and isolate it from further active processing until + deletion or deidentification is possible. + </p> + </div> + <div> + <h3>International Transfers of Personal Data</h3> + <p> + We may operate and engage third-party partners and providers + in various jurisdictions. Therefore, we and our third-party + providers may transfer personal data to, or store, access, + or process personal data in, a country other than the one in + which it was collected, including, but not limited to, the + United States. The country to which personal data is + transferred may not provide the same level of protection for + personal data as the country from which it was transferred. + </p> + <p> + We may transfer personal data about you outside of the EEA, + UK, and Switzerland, and when we do so we rely on + appropriate or suitable safeguards recognized under + applicable law, including adequacy decisions and standard + contractual clauses. If you would like more information on + the specific safeguards we use (and obtain a copy of such + safeguards, where applicable), please contact us at{" "} + <a href="mailto:privacypolicy@provable.com"> + privacypolicy@provable.com + </a> + . + </p> + + <h4>Adequacy Decisions</h4> + <p> + We may transfer personal data about you to countries that + the relevant regulatory authority has deemed to adequately + safeguard personal data, either automatically or in + connection with a specific safe harbor framework. + </p> + + <h4>Standard Contractual Clauses</h4> + <p> + Certain regulatory authorities have adopted standard + contractual clauses, which provide safeguards for personal + data transferred outside of the originating jurisdiction. We + may use these standard contractual clauses when transferring + personal data to a third country that has not been deemed to + adequately safeguard personal data. + </p> + + <h3>Your Additional EEA, UK, and Swiss Privacy Choices</h3> + <p> + Subject to certain limitations at law, you may be able to + exercise the following rights: + </p> + + <ul> + <li> + <strong>Right to Access:</strong> The right to obtain + confirmation of whether we are processing personal data + about you, access to and a copy of the personal data we + are processing about you, and information relating to + its processing, including: + <ul> + <li> + The categories of personal data being processed; + </li> + <li>The purposes of the processing;</li> + <li> + The categories of the sources of the personal + data; + </li> + <li> + The categories of recipients to whom the + personal data have been or will be disclosed; + </li> + <li> + The envisaged period for which the personal data + will be stored, or the criteria used to + determine that period; + </li> + <li> + Any automated decision-making or profiling + performed in connection with your personal data; + and + </li> + <li> + The safeguards relied upon for the transfer of + personal data to any third country. + </li> + </ul> + </li> + <li> + <strong>Right of Portability:</strong> The right to + obtain a copy of the personal data we have collected + about you in a structured, commonly used, and + machine-readable format, and the right to transmit that + personal data to another controller without hindrance. + </li> + <li> + <strong>Right to Rectification:</strong> The right to + correct or update any personal data about you that is + inaccurate or incomplete. + </li> + <li> + <strong>Right to Restriction of Processing:</strong> The + right to require us to limit the purposes for which we + process your personal data if the continued processing + of the personal data in this way is not justified, such + as where the accuracy of the personal data is contested + by you. + </li> + <li> + <strong>Right to Withdraw Consent:</strong> The right to + withdraw your previously provided consent to our + processing of your personal data. Please note + withdrawing your consent will not affect the lawfulness + of our use of your personal data before your consent was + withdrawn, nor our processing of personal data pursuant + to a different lawful basis for processing. + </li> + <li> + <strong>Right to Erasure:</strong> The right to have us + erase your personal data if the continued processing of + that personal data is not otherwise justified. + </li> + </ul> + + <p> + Please note that if the exercise of these rights limits our + ability to process personal data, we may not be able to + provide our services to you, or otherwise engage with you in + the same manner. + </p> + + <h3>Submitting Privacy Rights Requests</h3> + <p> + Please submit a request specifying the right you wish to + exercise by emailing us at{" "} + <a href="mailto:privacypolicy@provable.com"> + privacypolicy@provable.com + </a> + . + </p> + <p> + Before processing your request to exercise certain rights + (taking into account the confidential nature of any personal + data we maintain), we will need to verify your identity and + confirm you are accessing our services or otherwise + interacting with us from the EEA, UK, or Switzerland. In + order to verify your identity, we will generally either + require the matching of sufficient information you provide + us to the information we maintain about you in our systems. + As a result, we require requests submitted through our + online form to include first and last name, state of + residency, and/or the date of your last transaction with us. + </p> + <p> + In certain circumstances, we may decline or limit your + request, particularly where we are unable to verify your + identity as needed to protect your personal data or locate + your information in our systems, or where you are not + accessing our services or otherwise interacting with us from + the EEA, UK, or Switzerland. + </p> + </div> + <br/> + <h2> PROVABLE COOKIE NOTICE </h2> + <p> Last updated: 8/19/2024 </p> + <h2>Scope of Notice</h2> + <p>This Cookie Notice supplements the information contained in our Privacy Notice by providing information in the tables set forth below about the cookies which are most frequently used on our websites. The tables may be updated from time to time, so please check back on a regular basis for any changes. For details about the information collected through the use of cookies and the purposes for which such information is used, please read the <em>Our Collection and Use of Personal Data</em> section of our Privacy Notice.</p> + + <h2>Cookie Choices</h2> + <p>Please note there is a β€œCookie Preferences” manager linked in the footer of our websites that allows you to adjust your cookie preferences on the specific website you are visiting for the specific device and browser you are using at that time (which means you will need to change your preferences on each device and browser you use to interact with the specific website you are visiting). For information about other choices you may have in relation to our use of cookies and other automatic data collection technologies, please refer to the <em>Your Privacy Choices</em> section of our Privacy Notice.</p> + + <h2>Strictly Necessary Cookies</h2> + <p>These cookies are essential to making our websites work. They enable core functionality such as security, network management and accessibility. Without these cookies, services that are necessary for you to use our websites, such as accessing secure areas or remembering the information inputted into a webform, are not available. These cookies do not track browsing history on third-party websites. The legal basis for our use of strictly necessary cookies are our legitimate interests, namely being able to provide and maintain our websites.</p> + + <h2>Functional Cookies</h2> + <p>These cookies enable a website to remember information that changes the way the website behaves or looks, such as preferred language or the region that an individual is accessing our website from. If you are accessing our websites with an IP address from the European Economic Area, United Kingdom, or Switzerland, you have been asked to consent to the use of these cookies.</p> + + <table> + <tr> + <th>Cookie Name</th> + <th>Cookie Provider</th> + <th>When is the Cookie Set?</th> + <th>How Long Does the Cookie Last?</th> + <th>Purpose of the Cookie</th> + </tr> + <tr> + <td>None.</td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + </table> + + <h2>Analytical or Performance Cookies</h2> + <p>These cookies collect information about the number of visitors to our websites, and information about how visitors move around our websites when they are using them. This helps us to improve the way our websites work, for example, by ensuring that visitors are finding what they are looking for easily. If you are accessing our websites with an IP address from the European Economic Area, United Kingdom, or Switzerland, you have been asked to consent to the use of these cookies.</p> + + <table> + <tr> + <th>Cookie Name</th> + <th>Cookie Provider</th> + <th>When is the Cookie Set?</th> + <th>How Long Does the Cookie Last?</th> + <th>Purpose of the Cookie</th> + </tr> + <tr> + <td>None.</td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + </table> + + </div> + + ); +}; + +export default PrivacyPolicy; diff --git a/website/src/pages/TermsOfUse.jsx b/website/src/pages/TermsOfUse.jsx new file mode 100644 index 000000000..732532797 --- /dev/null +++ b/website/src/pages/TermsOfUse.jsx @@ -0,0 +1,1155 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +const TermsOfUse = () => { + return ( + <div> + <h1>PROVABLE </h1> + <h2> Terms of Use </h2> + <p> + <strong>Last Modified:</strong> 8/19/2024 + </p> + + <p> + These Terms of Use (these β€œTerms”) describe the terms and + conditions by which you may access and/or use the platform + provided by Provable Inc., a Delaware corporation (including its + successors and assigns, β€œProvable,” β€œwe,” β€œour,” or β€œus”), + including without limitation as made available on the websites + provable.com, explorer.aleo.org, provable.tools, leo-lang.org, + any associated webpages and any successor URL(s) or URLs to + which they redirect, and any and all related software, + documentation, and online, mobile-enabled, and/or digital + services, including without limitation access to and use of + Provable’s Explorer, API, Leo Playground and Tools software + (collectively, the β€œPlatform”). By accessing and/or using the + Platform, or by clicking a button or checking a box marked β€œI + Agree” (or something similar), you signify that you have read, + understood, and agree to be bound by these Terms, and you + acknowledge that you have read and understood our Privacy + Notice, as further described in Section 6.1 (Privacy). We + reserve the right to modify these Terms, and we will provide + notice of material changes as described below. These Terms apply + to all visitors and users of the Platform, and to all others who + access the Platform (collectively, β€œUsers,” and, as applicable + to you, β€œyou” or β€œyour”). + </p> + + <p> + <strong> + PLEASE READ THESE TERMS CAREFULLY TO ENSURE THAT YOU + UNDERSTAND EACH PROVISION. THESE TERMS CONTAIN A MANDATORY + INDIVIDUAL ARBITRATION PROVISION IN SECTION 13.2 (THE + β€œARBITRATION AGREEMENT”) AND A CLASS ACTION/JURY TRIAL + WAIVER PROVISION IN SECTION 13.3 (THE β€œCLASS ACTION/JURY + TRIAL WAIVER”) THAT REQUIRE, UNLESS YOU OPT OUT PURSUANT TO + THE INSTRUCTIONS IN THE ARBITRATION AGREEMENT, THE EXCLUSIVE + USE OF FINAL AND BINDING ARBITRATION ON AN INDIVIDUAL BASIS + TO RESOLVE DISPUTES BETWEEN YOU AND US, INCLUDING ANY CLAIMS + THAT AROSE OR WERE ASSERTED BEFORE YOU AGREED TO THESE + TERMS. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW (AS + DEFINED BELOW), YOU EXPRESSLY WAIVE YOUR RIGHT TO SEEK + RELIEF IN A COURT OF LAW AND TO HAVE A JURY TRIAL ON YOUR + CLAIMS, AS WELL AS YOUR RIGHT TO PARTICIPATE AS A PLAINTIFF + OR CLASS MEMBER IN ANY CLASS, COLLECTIVE, PRIVATE ATTORNEY + GENERAL, OR REPRESENTATIVE ACTION OR PROCEEDING. + </strong> + </p> + + <h2>1. How We Make the Platform Available</h2> + + <h3>1.1 Eligibility</h3> + <p> + This is a contract between you and Provable. You must read and + agree to these Terms before using the Platform. If you do not + agree, you may not use the Platform. You may use the Platform + only if you can form a legally binding contract with us, and + only in compliance with these Terms and all applicable local, + state, national, and international laws, rules, and regulations + (β€œApplicable Law”). Without limiting the generality of the + foregoing, any access to, or use of, the Platform by anyone who + is a minor (which is under the age of 18 in most jurisdictions) + in any applicable jurisdiction (a β€œMinor”) is strictly + prohibited and in violation of these Terms, unless such access + and/or use is supervised by a parent or legal guardian + (β€œParent”) who: (a) has read and understands these Terms; (b) + approves all rights granted, and all obligations undertaken, by + the Minor hereunder; and (c) agrees to be bound by these Terms. + If you are a Parent of a User who is a Minor, then, by allowing + such Minor to access and/or use the Platform, you are subject to + these Terms and responsible for such Minor’s activity on the + Platform. With respect to the Parent of a User who is a Minor, + β€œyou,” as used in these Terms in the context of a license grant, + assignment, restriction, obligation, acknowledgment, + representation, warranty, or covenant, or in any similar + context, means β€œthe Parent, on behalf of the Parent and the + Minor,” and β€œyour” has the corresponding meaning. The Platform + is not available to any Users we previously removed from the + Platform. + </p> + + <h3>1.2 Users; Accounts</h3> + <p> + <strong>(a) User Accounts.</strong> We may maintain accounts for + Users of the Platform that give you access to certain services + and functionalities that we may, in our sole discretion, + establish and maintain as part of the Platform from time to time + (β€œUser Accounts”). You acknowledge that, notwithstanding + anything to the contrary herein, you do not own your User + Account, nor do you possess any rights to data stored by or on + behalf of Provable on the servers running the Platform. We may + maintain different types of User Accounts for different types of + Users. + </p> + <p> + <strong>(b) Connecting Via Third-Party Services.</strong> By + connecting to the Platform via a third-party service, you give + us permission to access and use your information from that + service, as permitted by that service, and to store your log-in + or access credentials for that service. + </p> + <p> + <strong>(c) Account Security.</strong> You may never use another + User’s User Account without such User’s permission. When + creating your User Account, you must provide accurate and + complete information, and you must keep this information up to + date. You are solely responsible for the activity that occurs on + your User Account, you will keep your User Account password(s) + and/or any other authentication credentials secure, and you will + not share your password(s) and/or any other authentication + credentials with anyone else. We encourage you to use β€œstrong” + passwords (e.g., passwords that use a combination of upper- and + lower-case letters, numbers, and symbols) to protect your User + Account. We will not be liable for, and expressly disclaim + liability for, any losses caused by any unauthorized use of your + User Account and/or any changes to your User Account, including, + without limitation, changes made by another User that is granted + access to your User Account. You will notify us immediately of + any breach of security or unauthorized use of your User Account. + </p> + <p> + <strong>(d) Account Settings.</strong> You may control certain + aspects of your User Account and any associated User profile, + and of the way you interact with the Platform, by changing the + settings in your settings page. By providing us with your email + address, you consent to our using that email address to send you + Platform-related notices, including any notices required by + Applicable Law, in lieu of communication by postal mail. + </p> + + <h3>1.3 Changes, Suspension, and Termination</h3> + <p> + You may deactivate your User Account at any time. We may, with + or without prior notice, change the Platform, stop providing the + Platform or features of the Platform to you or to Users + generally, or create usage limits for the Platform. We may, with + or without prior notice, permanently terminate or temporarily + suspend your access to your User Account and/or the Platform + without liability, with or without cause, and for any or no + reason, including if, in our sole determination, you violate any + provision of these Terms. Upon their termination for any reason + or no reason, you continue to be bound by these Terms. + </p> + + <h3>1.4 Your Interactions with Other Users</h3> + <p> + YOU ARE SOLELY RESPONSIBLE FOR YOUR INTERACTIONS, INCLUDING + SHARING OF INFORMATION, WITH OTHER USERS. WE RESERVE THE RIGHT, + BUT HAVE NO OBLIGATION, TO MONITOR DISPUTES BETWEEN YOU AND + OTHER USERS. WE EXPRESSLY DISCLAIM ALL LIABILITY ARISING FROM + YOUR INTERACTIONS WITH OTHER USERS, AND FOR ANY USER’S ACTION OR + INACTION, INCLUDING RELATING TO USER CONTENT (AS DEFINED BELOW). + </p> + <h2>2. Access to the Platform; Platform Restrictions</h2> + + <h3>2.1 Access to the Platform</h3> + <p> + Subject to your compliance with these Terms and any + documentation we may make available to you, you are hereby + granted a non-exclusive, limited, non-transferable, and freely + revocable right to access and use the Platform, solely for your + personal use or internal business purposes, as applicable, + strictly as permitted by the features of the Platform. We may + terminate the license granted in this Section at any time, for + any reason or no reason. We reserve all rights not expressly + granted herein in and to the Platform. + </p> + + <h3>2.2 Restrictions and Acceptable Use</h3> + <p> + Except to the extent a restriction is prohibited by Applicable + Law, you will not do, and will not assist, permit, or enable any + third party to do, any of the following: + </p> + <ul> + <li> + (a) Disassemble, reverse engineer, decode, or decompile any + part of the Platform; + </li> + <li> + (b) Use any robot, spider, scraper, off-line reader, data + mining tool, data gathering or extraction tool, or any other + automated means to access the Platform in a manner that + sends more request messages to the servers running the + Platform than a human can reasonably produce in the same + period of time by using a conventional on-line web browser + (except that Provable grants the operators of public search + engines revocable permission to use spiders to copy publicly + available materials from the Platform for the sole purpose + of, and solely to the extent necessary for, creating + publicly available searchable indices of, but not caches or + archives of, such materials, and only as specified in the + applicable robots.txt file); + </li> + <li> + (c) Use any content available on or via the Platform + (including any caption information, keywords, or other + metadata) for any machine learning and/or artificial + intelligence training or development purposes, or for any + technologies designed or intended for the identification of + natural persons; + </li> + <li> + (d) Buy, sell or transfer API keys without our prior written + consent in each case; + </li> + <li> + (e) Copy, rent, lease, sell, loan, transfer, assign, license + or purport to sublicense, resell, distribute, modify, alter, + or create derivative works of any part of the Platform or + any of our Provable Intellectual Property, including, + without limitation by any automated or non-automated + β€œscraping”; + </li> + <li> + (f) Use the Platform in any manner that impacts (i) the + stability of the servers running the Platform, (ii) the + operation or performance of the Platform or any User’s use + of the Platform, or (iii) the behavior of other applications + that use the Platform; + </li> + <li> + (g) Take any action that imposes, or may impose (as + determined by us, in our sole discretion), an unreasonable + or disproportionately large load on our infrastructure; + </li> + <li> + (h) Use the Platform in any manner or for any purpose that + (i) violates, or promotes the violation of, any Applicable + Law, contractual obligation, or right of any person, + including, but not limited to, Intellectual Property Rights, + privacy rights, and/or rights of personality, (ii) is + fraudulent, false, deceptive, or defamatory, (iii) promotes + hatred, violence, or harm against any individual or group, + or (iv) otherwise may be harmful or objectionable (in our + sole discretion) to us or to our providers, our suppliers, + Users, or any other third party; + </li> + <li> + (i) Use or display the Platform, components thereof, or data + contained therein, in competition with us, to develop + competing products or services, for benchmarking or + competitive analysis of the Platform, or otherwise to our + detriment or disadvantage; + </li> + <li> + (j) Access any content available on or via the Platform + through any technology or means other than those provided by + the Platform or authorized by us; + </li> + <li> + (k) Bypass the measures we may use to prevent or restrict + access to the Platform, including, without limitation, + features that prevent or restrict use or copying of any + content or that enforce limitations on use of the Platform + or any portion thereof; + </li> + <li> + (l) Attempt to interfere with, compromise the system + integrity or security of, or decipher any transmissions to + or from, the servers running the Platform; + </li> + <li> + (m) Use the Platform to transmit spam, chain letters, or + other unsolicited email; + </li> + <li> + (n) Use the Platform for any commercial solicitation + purposes; + </li> + <li> + (o) Transmit invalid data, viruses, worms, or other software + agents through the Platform; + </li> + <li> + (p) Impersonate another person or entity, misrepresent your + affiliation with a person or entity, hide or attempt to hide + your identity, or otherwise use the Platform for any + invasive or fraudulent purpose; + </li> + <li> + (q) Collect or harvest any personal information, including + Users’ names, from the Platform; or + </li> + <li> + (r) Identify or refer to us or to the Platform in a manner + that could reasonably imply a relationship that involves + endorsement, affiliation, or sponsorship between you (or a + third party) and us without our prior express written + consent. + </li> + </ul> + + <h3>2.3 Additional Terms for Explorer</h3> + <p> + <strong>(a) Provable’s Explorer</strong> (currently available at + explorer.aleo.org) enables you to view and interact with data + and information relating to the Aleo blockchain. Explorer also + provides certain data and information about validator addresses + (β€œValidators”) to connect and view such Validators for purposes + of delegating Aleo Credits (as described at{" "} + <a href="https://aleo.org/aleo-credits/"> + https://aleo.org/aleo-credits/ + </a> + ) for staking on the Aleo blockchain. + </p> + + <p> + 2.4 All Validators are independently and separately operated and + controlled by third parties. Provable provides data and + information about Validators, and the provision of such + functionality does not imply Provable’s endorsement or + recommendation of such Validators. + </p> + + <h3>2.5 Disclaimer</h3> + <p> + EXPLORER AND ANY DATA, INFORMATION, AND SERVICES MADE AVAILABLE + IN CONNECTION THEREWITH ARE PROVIDED β€œAS IS” AND PROVABLE HEREBY + DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, + OR OTHERWISE. PROVABLE SPECIFICALLY DISCLAIMS ALL IMPLIED + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, + TITLE, AND NON-INFRINGEMENT, AND ALL WARRANTIES ARISING FROM + COURSE OF DEALING, USAGE, OR TRADE PRACTICE. PROVABLE MAKES NO + WARRANTY OF ANY KIND THAT EXPLORER, ANY DATA, INFORMATION, AND + SERVICES MADE AVAILABLE IN CONNECTION THEREWITH, OR ANY PRODUCTS + OR RESULTS OF ITS USE, WILL MEET YOUR OR ANY OTHER PERSON’S + REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, ACHIEVE ANY INTENDED + RESULT, BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM, OR + OTHER SERVICES, OR BE SECURE, ACCURATE, COMPLETE, FREE OF + HARMFUL CODE, OR ERROR FREE. + </p> + + <h2>3. User Grants, Covenants, Representations and Warranties</h2> + + <h3>3.1 Ownership of User Content</h3> + <p> + As between us and you, you (or your licensors) will own any and + all information, data, and other content, in any form or medium, + that is collected, downloaded, or otherwise received, directly + or indirectly, from you (or on your behalf) by or through the + Platform (β€œUser Content”). + </p> + + <h3>3.2 Rights to User Content</h3> + <p> + We have the right (but not the obligation) in our sole + discretion to remove any of your User Content that is shared via + the Platform. You further grant, and you represent and warrant + that you have all rights necessary to grant, to us, under all of + your Intellectual Property Rights, an irrevocable, perpetual, + transferable, sublicensable (through multiple tiers), fully + paid, royalty-free, and worldwide right and license to use, + copy, store, modify, distribute, reproduce, publish, list + information regarding, make derivative works of, and display + your User Content: (i) to maintain and provide the Platform; + (ii) to improve our products and the Platform and for our other + business purposes, such as data analysis, customer research, + developing new products or features, and identifying usage + trends; and (iii) to perform such other actions as described in + our Privacy Notice or as authorized by you in connection with + your use of the Platform. + </p> + + <h3>3.3 User Affirmations</h3> + <p>You affirm, represent, and warrant the following:</p> + <ul> + <li> + (a) You have the written consent of each and every + identifiable natural person referred to or mentioned in the + User Content, if any, to use such person’s name, voice, and + likeness in the manner contemplated by the Platform and + these Terms, and each such person has released you from any + liability that may arise in relation to such use; + </li> + <li> + (b) You have obtained, and are solely responsible for + obtaining, all consents required by Applicable Law to + provide User Content relating to third parties; + </li> + <li> + (c) Your User Content and our use thereof as contemplated by + these Terms and the Platform will not violate any Applicable + Law or infringe any rights of any third party, including, + but not limited to, any Intellectual Property Rights and + privacy rights; + </li> + <li> + (d) Your User Content does not include any information or + material that a governmental body deems to be sensitive or + classified information, and your provision of User Content + in connection with the Platform is not violative of any + confidentiality rights of any third party; + </li> + <li> + (e) We may exercise the rights to your User Content granted + to us under these Terms without liability for payment of any + guild or other fees, residuals, payments, or royalties + payable under any collective bargaining agreement or + otherwise; + </li> + <li> + (f) You will not upload or make available through the + Platform, either directly or by other means: any personal + information of children under 13 or the applicable age of + digital consent; + </li> + <li> + (g) Your User Content does not include nudity or other + sexually suggestive content; hate speech, threats, or direct + attacks on an individual or group; content that is abusive, + harassing, tortious, defamatory, vulgar, obscene, libelous, + or invasive of another’s privacy; sexist or racially, + ethnically, or otherwise discriminatory content; content + that contains self-harm or excessive violence; fake or + impostor profiles; illegal content or content in furtherance + of harmful or illegal activities; malicious programs or + code; any person’s personal information without such + person’s consent; spam, machine-generated content, or + unsolicited messages; and/or otherwise objectionable + content; and + </li> + <li> + (h) To the best of your knowledge, all User Content and + other information that you provide to us is truthful and + accurate. + </li> + </ul> + + <h3>3.4 User Content Liability</h3> + <p> + WE CLAIM NO OWNERSHIP RIGHTS OVER YOUR USER CONTENT. WE TAKE NO + RESPONSIBILITY AND ASSUME NO LIABILITY FOR ANY USER CONTENT. YOU + WILL BE SOLELY RESPONSIBLE FOR YOUR USER CONTENT AND THE + CONSEQUENCES OF SUBMITTING, POSTING, DISPLAYING, PROVIDING, + SHARING, OR OTHERWISE MAKING IT AVAILABLE ON OR THROUGH THE + PLATFORM, AND YOU UNDERSTAND AND ACKNOWLEDGE THAT WE ARE ACTING + ONLY AS A PASSIVE CONDUIT FOR YOUR ONLINE DISTRIBUTION AND + PUBLICATION OF YOUR USER CONTENT. + </p> + + <h2>4. Intellectual Property</h2> + + <h3>4.1 Intellectual Property Rights Definition</h3> + <p> + For the purposes of these Terms, β€œIntellectual Property Rights” + means all patent rights, copyright rights, mask work rights, + moral rights, rights of personality, trademark, trade dress and + service mark rights, goodwill, trade secret rights, and any and + all other intellectual property rights and proprietary rights as + may now exist or hereafter come into existence, and all + applications therefor and registrations, renewals, and + extensions thereof, under Applicable Law. + </p> + + <h3>4.2 Provable Intellectual Property</h3> + <p> + You understand and acknowledge that we (or our licensors + (including other Users), as applicable) own and will continue to + own all rights (including intellectual property rights), title, + and interest in and to the Platform, all materials and content + displayed or otherwise made available on and/or through the + Platform (including, without limitation, images, text, graphics, + illustrations, logos, photographs, audio, videos, music, and + User Content belonging to other Users; but, excluding your User + Content), and all software, algorithms, code, technology, and + intellectual property underlying and/or included in or with the + Platform (collectively and individually, β€œProvable Intellectual + Property”). Except as may be explicitly provided herein, nothing + in these Terms will be deemed to create a license in or under + any such Intellectual Property Rights, and you will not access, + sell, license, rent, modify, distribute, copy, reproduce, + transmit, display, perform, publish, adapt, edit, or create + derivative works of any Provable Intellectual Property. Use of + any Provable Intellectual Property for any purpose not expressly + permitted by these Terms is strictly prohibited. + </p> + + <h3>4.3 Usage Data</h3> + <p> + We may collect, or you may provide to us, diagnostic, technical, + usage, and/or related information, including information about + your computers, mobile devices, systems, and software + (collectively, β€œUsage Data”). All Usage Data is and will be + owned solely and exclusively by us, and, to the extent any + ownership rights in or to the Usage Data vest in you, you hereby + assign to us all rights (including Intellectual Property + Rights), title, and interest in and to same. Accordingly, we may + use, maintain, and/or process the Usage Data or any portion + thereof for any lawful purpose, including, without limitation: + (a) to provide and maintain the Platform; (b) to improve our + products and services (including the Platform), and to develop + new products, services, and/or features; (c) to monitor your + usage of the Platform; (d) for research and analytics, + including, without limitation, data analysis, identifying usage + trends, and/or customer research; and (e) to share analytics and + other derived Usage Data with third parties, solely in + de-identified or aggregated form. The Platform may contain + technological measures designed to prevent unauthorized or + illegal use of the Platform; you understand and acknowledge that + we may use these and other lawful measures to verify your + compliance with these Terms and to enforce our rights, including + Intellectual Property Rights, in and to the Platform. + </p> + + <h3>4.4 Feedback</h3> + <p> + To the extent you provide us any suggestions, recommendations, + or other feedback relating to the Platform or to any other + Provable products or services (collectively, β€œFeedback”), you + hereby assign to us all rights (including Intellectual Property + Rights), title, and interest in and to the Feedback. + Accordingly, we are free to use the Feedback and any ideas, + know-how, concepts, techniques, and/or other intellectual + property contained in the Feedback, without providing any + attribution or compensation to you or to any third party, for + any purpose whatsoever, although we are not required to use any + Feedback. Feedback is deemed our Confidential Information (as + defined below). You acknowledge that, by acceptance of your + submission of Feedback, we do not waive any rights to use + similar or related ideas previously known to us, or developed by + our employees, or obtained from sources other than you. + </p> + + <h2>5. Confidential Information</h2> + <p> + The Platform may include non-public, proprietary, or + confidential information of Provable and/or of other Users + (β€œConfidential Information”). Confidential Information includes + any information that should reasonably be understood to be + confidential given the nature of the information and the + circumstances of disclosure, including non-public business, + product, technology, and marketing information. You will: (a) + protect and safeguard the confidentiality of all Confidential + Information with at least the same degree of care as you would + use to protect your own highly sensitive confidential + information, but in no event with less than a reasonable degree + of care; (b) not use any Confidential Information for any + purpose other than to exercise your rights, or to perform your + obligations, under these Terms; and (c) not disclose any + Confidential Information to any person or entity, except your + service providers or financial or legal advisors who/that (i) + need to know the Confidential Information and (ii) are bound by + non-use and non-disclosure restrictions at least as restrictive + as those set forth in this Section. + </p> + + <h2>6. Privacy; Data Security</h2> + + <h3>6.1 Privacy</h3> + <p> + We care about your privacy. By using the Platform, you + acknowledge that we may collect, use, and disclose your personal + information and aggregated and/or anonymized data as set forth + in our Privacy Notice, and that your personal information may be + transferred to, and/or processed in, the United States and other + jurisdictions in accordance with our Privacy Notice. + </p> + + <h3>6.2 Security</h3> + <p> + We care about the integrity and security of your personal + information. However, we cannot guarantee that unauthorized + third parties will never be able to defeat our security measures + or to use your data for improper purposes. You acknowledge that + you provide your data at your own risk. + </p> + + <h2>7. Your Use of Third-Party Services</h2> + <p> + THE PLATFORM MAY CONTAIN LINKS TO THIRD-PARTY SITES, MATERIALS, + AND/OR SERVICES (COLLECTIVELY, β€œTHIRD-PARTY SERVICES”) THAT ARE + NOT OWNED OR CONTROLLED BY US, AND CERTAIN FUNCTIONALITIES OF + THE PLATFORM MAY REQUIRE YOUR USE OF THIRD-PARTY SERVICES. IF + YOU USE A THIRD-PARTY SERVICE IN CONNECTION WITH THE PLATFORM, + YOU ARE SUBJECT TO AND AGREE TO, AND MUST COMPLY WITH, THE THIRD + PARTY’S TERMS AND CONDITIONS MADE AVAILABLE VIA, OR AGREED IN + CONNECTION WITH, ITS SERVICES. WE DO NOT ENDORSE OR ASSUME ANY + RESPONSIBILITY FOR ANY THIRD-PARTY SERVICES. IF YOU ACCESS A + THIRD-PARTY SERVICE FROM THE PLATFORM OR SHARE YOUR USER CONTENT + ON OR THROUGH ANY THIRD-PARTY SERVICE, YOU DO SO AT YOUR OWN + RISK, AND YOU UNDERSTAND THAT THESE TERMS AND OUR PRIVACY NOTICE + DO NOT APPLY TO YOUR USE OF ANY THIRD-PARTY SERVICE. YOU + EXPRESSLY RELIEVE US FROM ANY AND ALL LIABILITY ARISING FROM + YOUR ACCESS TO AND/OR USE OF ANY THIRD-PARTY SERVICE. + ADDITIONALLY, YOUR DEALINGS WITH, OR PARTICIPATION IN PROMOTIONS + OF, ADVERTISERS FOUND ON THE PLATFORM, INCLUDING AS RELATES TO + PAYMENT AND DELIVERY OF GOODS, AND ANY OTHER TERMS (SUCH AS + WARRANTIES) ARE SOLELY BETWEEN YOU AND SUCH ADVERTISERS. YOU + UNDERSTAND AND ACKNOWLEDGE THAT WE WILL NOT BE RESPONSIBLE FOR + ANY LOSS OR DAMAGE OF ANY SORT RELATING TO YOUR DEALINGS WITH + SUCH ADVERTISERS. + </p> + + <h2>8. Release</h2> + <p> + You hereby release us from all claims, damages (whether direct, + indirect, incidental, consequential, or otherwise), obligations, + losses, liabilities, costs, debts, and expenses, in each case of + every kind and nature, known and unknown, arising out of a + dispute between you and a third party (including any other User) + in connection with the Platform. YOU ACKNOWLEDGE THAT YOU HAVE + BEEN MADE AWARE OF AND UNDERSTAND THE PROVISIONS OF CALIFORNIA + CIVIL CODE SECTION 1542 (β€œSECTION 1542”), WHICH PROVIDES: β€œA + GENERAL RELEASE DOES NOT EXTEND TO CLAIMS THAT THE CREDITOR OR + RELEASING PARTY DOES NOT KNOW OR SUSPECT TO EXIST IN HIS OR HER + FAVOR AT THE TIME OF EXECUTING THE RELEASE AND THAT, IF KNOWN BY + HIM OR HER, WOULD HAVE MATERIALLY AFFECTED HIS OR HER SETTLEMENT + WITH THE DEBTOR OR RELEASED PARTY.” THE RELEASORS EXPRESSLY, + KNOWINGLY, AND INTENTIONALLY WAIVE ANY AND ALL RIGHTS, BENEFITS, + AND PROTECTIONS OF SECTION 1542 AND OF ANY OTHER STATE OR + FEDERAL STATUTE OR COMMON LAW PRINCIPLE LIMITING THE SCOPE OF A + GENERAL RELEASE. + </p> + + <h2>9. Indemnity</h2> + <p> + You will defend, indemnify, and hold us and our subsidiaries and + affiliates, and our and their respective agents, suppliers, + licensors, employees, contractors, officers, and directors + (collectively, including Provable, the β€œProvable Indemnitees”) + harmless from and against any and all claims, damages (whether + direct, indirect, incidental, consequential, or otherwise), + obligations, losses, liabilities, costs, debts, and expenses + (including, but not limited to, legal fees) arising from: (a) + your access to and/or use of the Platform; (b) your violation of + any term of these Terms, including, without limitation, your + breach of any of your representations and warranties set forth + in these Terms; (c) your violation of any third-party right, + including, without limitation, any privacy right or Intellectual + Property Right; (d) your violation of any Applicable Law; (e) + User Content or any content that is submitted via your User + Account, including, without limitation, any misleading, false, + or inaccurate information; (f) your willful misconduct; or (g) + any third party’s access to and/or use of the Platform with your + username(s), password(s), or other authentication credential(s). + </p> + + <h2>10. No Professional Advice</h2> + <p> + THE CONTENT PROVIDED THROUGH OR IN CONNECTION WITH THE PLATFORM + IS DESIGNED TO PROVIDE PRACTICAL AND USEFUL INFORMATION ON THE + SUBJECT MATTER(S) COVERED. WHILE SUCH CONTENT MAY CONCERN ISSUES + RELATED TO PROFESSIONAL SERVICES, SUCH CONTENT IS NOT + PROFESSIONAL SERVICES ADVICE. YOU SHOULD NOT ACT OR REFRAIN FROM + ACTING ON THE BASIS OF ANY CONTENT THAT IS INCLUDED ON THE + SITE(S) AND/OR THE APP(S) OR THAT IS OTHERWISE OBTAINED IN + CONNECTION WITH THE PLATFORM WITHOUT SEEKING THE ADVICE OF A + PROFESSIONAL WHO IS LICENSED AND/OR QUALIFIED IN THE APPLICABLE + SUBJECT MATTER(S). WE EXPRESSLY DISCLAIM ALL LIABILITY IN + RESPECT OF ACTIONS TAKEN OR NOT TAKEN BASED ON ANY CONTENT + OBTAINED IN CONNECTION WITH THE PLATFORM. + </p> + + <h2>11. No Warranty; Disclaimers</h2> + <p> + THE PLATFORM IS PROVIDED ON AN β€œAS IS” AND β€œAS AVAILABLE” BASIS. + YOUR USE OF THE PLATFORM IS AT YOUR OWN RISK. TO THE MAXIMUM + EXTENT PERMITTED BY APPLICABLE LAW, THE PLATFORM, THE + INTELLECTUAL PROPERTY, AND ANY OTHER INFORMATION AVAILABLE ON OR + THROUGH THE PLATFORM ARE PROVIDED WITHOUT WARRANTIES OF ANY + KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, AND/OR NON-INFRINGEMENT. NO ADVICE OR INFORMATION, + WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM US OR THROUGH THE + PLATFORM WILL CREATE ANY WARRANTY NOT EXPRESSLY STATED HEREIN. + WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, NONE OF THE + PROVABLE INDEMNITEES WARRANTS THAT ANY CONTENT OR ANY OTHER + INFORMATION CONTAINED IN, OR AVAILABLE VIA, THE PLATFORM IS + ACCURATE, COMPREHENSIVE, RELIABLE, USEFUL, OR CORRECT; THAT THE + PLATFORM WILL MEET YOUR REQUIREMENTS; THAT THE PLATFORM WILL BE + AVAILABLE AT ANY PARTICULAR TIME OR LOCATION, UNINTERRUPTED, OR + SECURE; THAT ANY DEFECTS OR ERRORS IN THE PLATFORM WILL BE + CORRECTED; OR THAT THE PLATFORM IS FREE OF VIRUSES OR OTHER + HARMFUL COMPONENTS. ANY CONTENT DOWNLOADED OR OTHERWISE OBTAINED + THROUGH THE USE OF THE PLATFORM IS SO OBTAINED AT YOUR OWN RISK, + AND YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR + COMPUTER SYSTEM(S) OR MOBILE DEVICE(S) AND/OR FOR LOSS OF DATA + THAT RESULTS FROM SAME OR FROM YOUR ACCESS TO AND/OR USE OF THE + PLATFORM. YOU MAY HAVE OTHER STATUTORY RIGHTS, BUT THE DURATION + OF STATUTORILY REQUIRED WARRANTIES, IF ANY, WILL BE LIMITED TO + THE SHORTEST PERIOD PERMITTED BY APPLICABLE LAW. + </p> + <p> + FURTHER, PROVABLE DOES NOT WARRANT, ENDORSE, GUARANTEE, + RECOMMEND, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE + ADVERTISED OR OFFERED BY ANY THIRD PARTY THROUGH THE PLATFORM OR + ANY HYPERLINKED WEBSITE OR SERVICE, AND PROVABLE WILL NOT BE A + PARTY TO, OR IN ANY WAY MONITOR, ANY TRANSACTION BETWEEN YOU AND + THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. + </p> + + <p> + THE PLATFORM RELIES ON EMERGING TECHNOLOGIES. SOME ASPECTS OF + THE PLATFORM ARE SUBJECT TO INCREASED RISK THROUGH YOUR + POTENTIAL MISUSE OF THINGS SUCH AS PUBLIC/PRIVATE KEY + CRYPTOGRAPHY, OR FAILING TO PROPERLY UPDATE OR RUN SOFTWARE TO + ACCOMMODATE PROTOCOL UPGRADES. BY USING THE PLATFORM, YOU + EXPLICITLY ACKNOWLEDGE AND ACCEPT THESE HEIGHTENED RISKS. YOU + REPRESENT THAT YOU ARE FINANCIALLY AND TECHNICALLY SOPHISTICATED + ENOUGH TO UNDERSTAND THE INHERENT RISKS ASSOCIATED WITH USING + CRYPTOGRAPHIC AND BLOCKCHAIN-BASED SYSTEMS AND UPGRADING YOUR + SOFTWARE AND PROCESSES TO ACCOMMODATE PLATFORM AND 9 PROTOCOL + UPGRADES, AND THAT YOU HAVE A WORKING KNOWLEDGE OF THE USAGE AND + INTRICACIES OF DIGITAL ASSETS AND CRYPTOCURRENCIES. IN + PARTICULAR, YOU UNDERSTAND THAT WE DO NOT OPERATE ANY BLOCKCHAIN + PROTOCOL, OR COMMUNICATE OR EXECUTE PROTOCOL UPGRADES, AS WELL + AS THE DISTINCTION BETWEEN THE DEVELOPERS OF A BLOCKCHAIN + PROTOCOL AND MEMBERS OF A COMMUNITY. YOU FURTHER UNDERSTAND THAT + BLOCKCHAIN PROTOCOLS PRESENT THEIR OWN RISKS OF USE, THAT + SUPPORTING OR PARTICIPATING IN BLOCKCHAIN PROTOCOLS MAY RESULT + IN LOSSES IF YOUR PARTICIPATION VIOLATES CERTAIN PROTOCOL RULES, + THAT BLOCKCHAIN-BASED TRANSACTIONS ARE IRREVERSIBLE, THAT YOUR + PRIVATE KEY AND SECRET RECOVERY PHRASE MUST BE KEPT SECRET AT + ALL TIMES, THAT PROVABLE WILL NOT STORE A BACKUP OF, NOR WILL BE + ABLE TO DISCOVER OR RECOVER, YOUR PRIVATE KEY OR SECRET RECOVERY + PHRASE, THAT DIGITALLY COPYING AND STORING YOUR SECRET RECOVERY + PHRASE ON A CLOUD STORAGE SYSTEM OR OTHER THIRD PARTY SUPPORTED + DATA STORAGE, INCLUDING YOUR PERSONAL DEVICE, MAY INCREASE THE + RISK OF LOSS OR THEFT, AND THAT YOU ARE SOLELY RESPONSIBLE FOR + ANY APPROVALS OR PERMISSIONS YOU PROVIDE BY CRYPTOGRAPHICALLY + SIGNING BLOCKCHAIN MESSAGES OR TRANSACTIONS, ESPECIALLY THOSE + RESPONDING TO SOLICITATIONS AND OTHER PROMPTS FROM THIRD + PARTIES. WITH RESPECT TO THIRD PARTIES, YOU ARE AWARE THAT + SOCIAL ENGINEERING SCAMS PERPETRATED BY MALICIOUS THIRD PARTIES + ARE A RISK AND YOU AGREE THAT YOU AND YOU ALONE ARE RESPONSIBLE + FOR TRANSACTIONS OR AGREEMENTS WITH SUCH THIRD PARTIES THAT MAY + LEAD TO INJURY. YOU AGREE THAT WE ARE NOT RESPONSIBLE FOR + VERIFYING THE LEGITIMACY OR SAFETY OR SUITABILITY OF ANY THIRD + PARTY APPLICATIONS OR TOKENS THAT YOU MAY INTERACT WITH OR + RECEIVE USING OUR PLATFORM. YOU FURTHER UNDERSTAND AND ACCEPT + THAT DIGITAL ASSETS AND CRYPTOCURRENCIES PRESENT MARKET + VOLATILITY RISK, TECHNICAL SOFTWARE RISKS, REGULATORY RISKS, AND + CYBERSECURITY RISKS. YOU UNDERSTAND THAT THE COST AND SPEED OF A + BLOCKCHAIN-BASED SYSTEM IS VARIABLE, THAT COST MAY INCREASE + DRAMATICALLY AT ANY TIME, AND THAT COST AND SPEED IS NOT WITHIN + THE CAPABILITY OF PROVABLE TO CONTROL. YOU UNDERSTAND THAT + PROTOCOL UPGRADES MAY INADVERTENTLY CONTAIN BUGS OR SECURITY + VULNERABILITIES THAT MAY RESULT IN LOSS OF FUNCTIONALITY AND + ULTIMATELY FUNDS. YOU UNDERSTAND AND ACCEPT THAT PROVABLE DOES + NOT CONTROL ANY BLOCKCHAIN PROTOCOL, NOR DOES PROVABLE CONTROL + ANY PROGRAM THAT IS NOT OTHERWISE OFFERED BY PROVABLE AS PART OF + THE PLATFORM AND IS NOT ITSELF A THIRD PARTY SERVICE. YOU + UNDERSTAND AND ACCEPT THAT PROVABLE DOES NOT CONTROL AND IS NOT + RESPONSIBLE FOR THE TRANSITION OR THE FUNCTIONING OF ANY + BLOCKCHAIN PROTOCOL AFTER IT UNDERGOES A TECHNICAL UPGRADE. YOU + AGREE THAT YOU ALONE, AND NOT PROVABLE, IS RESPONSIBLE FOR ANY + TRANSACTIONS THAT YOU ENGAGE IN WITH REGARD TO SUPPORTING ANY + BLOCKCHAIN PROTOCOL, OR ANY TRANSACTIONS THAT YOU ENGAGE IN WITH + ANY PROGRAM OR TOKEN. YOU AGREE THAT PROVABLE IS NOT RESPONSIBLE + FOR THE REGULATORY STATUS OR TREATMENT IN ANY JURISDICTION OF + ANY DIGITAL ASSETS OR CRYPTOCURRENCIES THAT YOU MAY ACCESS OR + TRANSACT WITH USING THE PLATFORM. YOU EXPRESSLY ASSUME FULL + RESPONSIBILITY FOR ALL OF THE RISKS OF ACCESSING AND USING THE + PLATFORM TO INTERACT WITH BLOCKCHAIN PROTOCOLS. + </p> + <p> + UNITED STATES FEDERAL LAW AND SOME STATES, PROVINCES, AND OTHER + JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF AND/OR LIMITATIONS + ON CERTAIN IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS AND/OR + LIMITATIONS MAY NOT APPLY TO YOU. THESE TERMS GIVE YOU SPECIFIC + LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER RIGHTS, WHICH VARY + FROM JURISDICTION TO JURISDICTION. THE DISCLAIMERS, EXCLUSIONS, + AND LIMITATIONS UNDER THESE TERMS WILL NOT APPLY TO THE EXTENT + PROHIBITED BY APPLICABLE LAW. + </p> + <h2>12. Limitation of Liability </h2> + <p> + TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT + WILL ANY PROVABLE INDEMNITEE BE LIABLE FOR ANY INDIRECT, + PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR EXEMPLARY + DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF + PROFITS, GOODWILL, USE, OR DATA, OR OTHER INTANGIBLE LOSSES, + ARISING OUT OF OR RELATING TO THE USE OF, OR INABILITY TO USE, + THE PLATFORM OR ANY PORTION THEREOF. UNDER NO CIRCUMSTANCES WILL + WE BE RESPONSIBLE FOR ANY DAMAGE, LOSS, OR INJURY RESULTING FROM + HACKING, TAMPERING, OR OTHER UNAUTHORIZED ACCESS TO OR USE OF + THE PLATFORM OR YOUR USER ACCOUNT OR THE INFORMATION CONTAINED + THEREIN. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WE + ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (A) ERRORS, + MISTAKES, OR INACCURACIES OF CONTENT; (B) PERSONAL INJURY OR + PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR + ACCESS TO OR USE OF THE PLATFORM; (C) ANY UNAUTHORIZED ACCESS TO + OR USE OF THE SERVERS RUNNING THE PLATFORM AND/OR ANY AND ALL + PERSONAL INFORMATION STORED THEREIN; (D) ANY INTERRUPTION OR + CESSATION OF TRANSMISSION TO OR FROM THE PLATFORM; (E) ANY BUGS, + VIRUSES, TROJAN HORSES, OR THE LIKE THAT MAY BE TRANSMITTED TO + OR THROUGH THE PLATFORM BY ANY THIRD PARTY; (F) ANY ERRORS OR + OMISSIONS IN ANY CONTENT, OR ANY LOSS OR DAMAGE INCURRED AS A + RESULT OF THE USE OF ANY CONTENT POSTED, EMAILED, TRANSMITTED, + OR OTHERWISE MADE AVAILABLE THROUGH THE PLATFORM; AND/OR (G) + YOUR DATA, ANY USER CONTENT, OR THE DEFAMATORY, OFFENSIVE, OR + ILLEGAL CONDUCT OF ANY THIRD PARTY. IN NO EVENT WILL ANY + PROVABLE INDEMNITEE BE LIABLE TO YOU FOR ANY CLAIMS, + PROCEEDINGS, LIABILITIES, OBLIGATIONS, DAMAGES, LOSSES, OR COSTS + IN AN AMOUNT EXCEEDING THE AMOUNT YOU PAID TO US HEREUNDER OR + ONE HUNDRED U.S. DOLLARS ($100.00), WHICHEVER IS GREATER. THIS + LIMITATION OF LIABILITY SECTION APPLIES WHETHER THE ALLEGED + LIABILITY IS BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT + LIABILITY, OR ANY OTHER BASIS, EVEN IF WE HAVE BEEN ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. SOME JURISDICTIONS DO NOT ALLOW + THE EXCLUSION OF AND/OR LIMITATIONS ON INCIDENTAL OR + CONSEQUENTIAL DAMAGES, SO THE ABOVE EXCLUSIONS AND/OR + LIMITATIONS MAY NOT APPLY TO YOU. THESE TERMS GIVE YOU SPECIFIC + LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER RIGHTS, WHICH VARY + FROM JURISDICTION TO JURISDICTION. THE DISCLAIMERS, EXCLUSIONS, + AND LIMITATIONS OF LIABILITY UNDER THESE TERMS WILL NOT APPLY TO + THE EXTENT PROHIBITED BY APPLICABLE LAW. + </p> + <h2> + 13. Governing Law, Arbitration, and Class Action/Jury Trial + Waiver + </h2> + <p> + 13.1 Governing Law. You agree that: (a) the Platform will be + deemed solely based in the State of Delaware; and (b) the + Platform will be deemed a passive one that does not give rise to + personal jurisdiction over us, either specific or general, in + jurisdictions other than Delaware. These Terms will be governed + by the internal substantive laws of the State of Delaware, + without respect to its conflict of laws principles. The parties + acknowledge that these Terms evidence a transaction involving + interstate commerce. Notwithstanding the preceding sentences + with respect to the substantive law governing these Terms, the + Federal Arbitration Act (9 U.S.C. §§ 1-16) (as it may be + amended, β€œFAA”) governs the interpretation and enforcement of + the Arbitration Agreement below and preempts all state laws (and + laws of other jurisdictions) to the fullest extent permitted by + Applicable Law. If the FAA is found to not apply to any issue + that arises from or relates to the Arbitration Agreement, then + that issue will be resolved under 11 and governed by the law of + the U.S. state where you live (if applicable) or the + jurisdiction mutually agreed upon in writing by you and us. The + application of the United Nations Convention on Contracts for + the International Sale of Goods is expressly excluded. You agree + to submit to the exclusive personal jurisdiction of the federal + and state courts located in Delaware for any actions for which + we retain the right to seek injunctive or other equitable relief + in a court of competent jurisdiction to prevent the actual or + threatened infringement, misappropriation, or violation of our + data security, Confidential Information, or Intellectual + Property Rights, as set forth in the Arbitration Agreement + below, including any provisional relief required to prevent + irreparable harm. You agree that Delaware is the proper and + exclusive forum for any appeals of an arbitration award, or for + trial court proceedings in the event that the Arbitration + Agreement below is found to be unenforceable. These Terms were + drafted in the English language and this English language + version of the Terms is the original, governing instrument of + the understanding between you and us. In the event of any + conflict between the English version of these Terms and any + translation, the English version will prevail. + </p> + + <h2>13.2 Arbitration</h2> + <p> + Agreement (a) General. READ THIS SECTION CAREFULLY BECAUSE IT + REQUIRES THE PARTIES TO ARBITRATE THEIR DISPUTES AND LIMITS THE + MANNER IN WHICH YOU CAN SEEK RELIEF FROM US. This Arbitration + Agreement applies to and governs any dispute, controversy, or + claim between you and us that arises out of or relates to, + directly or indirectly: (i) these Terms, including the + formation, existence, breach, termination, enforcement, + interpretation, validity, and enforceability thereof; (ii) + access to or use of the Platform, including receipt of any + advertising or marketing communications; (iii) any transactions + through, by, or using the Platform; or (iv) any other aspect of + your relationship or transactions with us, directly or + indirectly, as a User or consumer (each, a β€œClaim,” and, + collectively, β€œClaims”). This Arbitration Agreement will apply, + without limitation, to all Claims that arose or were asserted + before or after your consent to these Terms. + </p> + <p> (b) Opting Out of + Arbitration Agreement. If you are a new User, you can reject and + opt out of this Arbitration Agreement within thirty (30) days of + accepting these Terms by emailing us at legal@provable.com with + your full, legal name and stating your intent to opt out of this + Arbitration Agreement. Opting out of this Arbitration Agreement + does not affect the binding nature of any other part of these + Terms, including the provisions regarding controlling law or the + courts in which any disputes must be brought. </p> + <p>(c) + Dispute-Resolution Process. For any Claim, you will first + contact us at legal@provable.com attempt to resolve the Claim + with us informally. In the unlikely event that we have not been + able to resolve a Claim after sixty (60) days, we each agree to + resolve such Claim exclusively through binding arbitration by + JAMS before a single arbitrator (the β€œArbitrator”), under the + Optional Expedited Arbitration Procedures then in effect for + JAMS (the β€œRules”), except as provided herein. JAMS may be + contacted at www.jamsadr.com, where the Rules are available. In + the event of any conflict between the Rules and this Arbitration + Agreement, this Arbitration Agreement will control. The + arbitration will be conducted in the U.S. county where you live + (if applicable) or Sussex County, Delaware, unless you and + Provable agree otherwise. If you are using the Platform for + commercial purposes, each party will be responsible for paying + any JAMS filing and administrative fees and Arbitrator fees in + accordance with the Rules, and the award rendered by the + Arbitrator will include costs of arbitration, reasonable + attorneys’ fees, and reasonable costs for expert and other + witnesses. If you are an individual using the Platform for + non-commercial purposes: (i) JAMS may require you to pay a fee + for the initiation of your case, unless 12 you apply for and + successfully obtain a fee waiver from JAMS; (ii) the award + rendered by the Arbitrator may include your costs of + arbitration, your reasonable attorneys’ fees, and your + reasonable costs for expert and other witnesses; and (iii) you + may sue in a small claims court of competent jurisdiction + without first engaging in arbitration, but this would not + absolve you of your commitment to engage in the informal dispute + resolution process. Any judgment on the award rendered by the + Arbitrator may be entered in any court of competent + jurisdiction. You and we agree that the Arbitrator, and not any + federal, state, or local court or agency, will have exclusive + authority to resolve any disputes relating to the scope, + interpretation, applicability, enforceability, or formation of + this Arbitration Agreement, including any claim that all or any + part of this Arbitration Agreement is void or voidable. The + Arbitrator will also be responsible for determining all + threshold arbitrability issues, including issues relating to + whether these Terms are, or whether any provision of these Terms + is, unconscionable or illusory, and any defense to arbitration, + including waiver, delay, laches, unconscionability, and/or + estoppel.</p> + <p> (d) Equitable Relief. NOTHING IN THIS ARBITRATION + AGREEMENT WILL BE DEEMED AS: PREVENTING US FROM SEEKING + INJUNCTIVE OR OTHER EQUITABLE RELIEF FROM THE COURTS AS + NECESSARY TO PREVENT THE ACTUAL OR THREATENED INFRINGEMENT, + MISAPPROPRIATION, OR VIOLATION OF OUR DATA SECURITY, + CONFIDENTIAL INFORMATION, OR INTELLECTUAL PROPERTY RIGHTS; OR + PREVENTING YOU FROM ASSERTING CLAIMS IN A SMALL CLAIMS COURT, + PROVIDED THAT YOUR CLAIMS QUALIFY AND SO LONG AS THE MATTER + REMAINS IN SUCH COURT AND ADVANCES ON ONLY AN INDIVIDUAL + (NON-CLASS, NON-COLLECTIVE, AND NON-REPRESENTATIVE) BASIS. + </p> + <p>(E) + Severability. If this Arbitration Agreement is found to be void, + unenforceable, or unlawful, in whole or in part, the void, + unenforceable, or unlawful provision, in whole or in part, will + be severed. Severance of the void, unenforceable, or unlawful + provision, in whole or in part, will have no impact on the + remaining provisions of this Arbitration Agreement, which will + remain in force, or on the parties’ ability to compel + arbitration of any remaining Claims on an individual basis + pursuant to this Arbitration Agreement. Notwithstanding the + foregoing, if the Class Action/Jury Trial Waiver below is found + to be void, unenforceable, or unlawful, in whole or in part, + because it would prevent you from seeking public injunctive + relief, then any dispute regarding the entitlement to such + relief (and only that relief) must be severed from arbitration + and may be litigated in a civil court of competent jurisdiction. + All other claims for relief subject to arbitration under this + Arbitration Agreement will be arbitrated under its terms, and + the parties agree that litigation of any dispute regarding the + entitlement to public injunctive relief will be stayed pending + the outcome of any individual claims in arbitration. </p> + + <p> 13.3 + <strong>Class Action/Jury Trial Waiver. </strong> + BY ENTERING INTO THESE TERMS, + YOU AND PROVABLE ARE EACH WAIVING THE RIGHT TO A TRIAL BY JURY + OR TO BRING, JOIN, OR PARTICIPATE IN ANY PURPORTED CLASS ACTION, + COLLECTIVE ACTION, PRIVATE ATTORNEY GENERAL ACTION, OR OTHER + REPRESENTATIVE PROCEEDING OF ANY KIND AS A PLAINTIFF OR CLASS + MEMBER. THE FOREGOING APPLIES TO ALL USERS (BOTH NATUAL PERSONS + AND ENTITIES), REGARDLESS OF WHETHER YOU HAVE OBTAINED OR USED + THE PLATFORM FOR PERSONAL, COMMERCIAL, OR OTHER PURPOSES. THIS + CLASS ACTION/JURY TRIAL WAIVER APPLIES TO CLASS ARBITRATION, + AND, UNLESS WE AGREE OTHERWISE, THE ARBITRATOR MAY NOT + CONSOLIDATE MORE THAN ONE PERSON’S OR ENTITY’S CLAIMS. YOU AND + PROVABLE AGREE THAT THE ARBITRATOR MAY AWARD RELIEF ONLY TO AN + INDIVIDUAL CLAIMANT AND ONLY TO THE EXTENT NECESSARY TO PROVIDE + RELIEF ON YOUR INDIVIDUAL CLAIM(S). ANY RELIEF AWARDED MAY NOT + AFFECT OTHER USERS. + + </p> + <h2> + 14. U.S. Government Restricted Rights + </h2> + <p>To the + extent the Platform is being used by or on behalf of the U.S. + Government, the Platform will be deemed commercial computer + software or commercial computer software documentation (as + applicable). Accordingly, if you are an agency of the U.S. + Government or any contractor therefor, you receive only those + rights with respect to the Platform as are granted to all other + Users hereunder, in accordance with 48 C.F.R. Β§227.7202 and 48 + C.F.R. Β§12.212, as applicable. + + </p> + <h2> 15. Export Controls, Sanctions + and Anti-Money Laundering + </h2> + <p> You understand and acknowledge that + the Platform may be subject to export control laws and + regulations. You will comply with all applicable import and + export and re-export control and trade and economic sanctions + laws and regulations, including the Export Administration + Regulations maintained by the U.S. Department of Commerce, trade + and economic sanctions maintained by the U.S. Treasury + Department’s Office of Foreign Assets Control (β€œOFAC”), and the + International Traffic in Arms Regulations maintained by the U.S. + State Department. You represent and warrant that: + + <p> (a) You will + not access the Platform from any country, region, territory or + jurisdiction that is the target of comprehensive territorial or + embargo-like sanctions administered by OFAC (each such country, + region, territory or jurisdiction a β€œSanctioned Country”), + which, as of the time of this Agreement, are Crimea, Cuba, Iran, + North Korea, Syria, the so-called Donetsk People’s Republic, and + the so-called Luhansk People’s Republic; + </p> + + <p>(b) You will not + provide access to the Platform to any person that is, or that is + owned or controlled by a person that is, the target of any + sanctions administered or enforced by OFAC or the U.S. + Department of State,(collectively, β€œSanctions”) or that is + located, organized or resident in any Sanctioned Country; + </p> + <p>(c) + None of you, your subsidiaries, directors, officers, employees, + agents or affiliates is a person that is, or is owned or + controlled by persons that are, the target of any Sanctions; + </p> + <p>(d) + None of you, your subsidiaries, directors, officers, employees, + agents or affiliates are located, organized, or resident in, or + owned or controlled by persons that are located, organized or + resident in a Sanctioned Country; 14 + </p> + <p>(e) You will not utilize + the Platform in any manner that, directly or directly, conducts, + facilitates, funds or otherwise engages in activities with any + person that is the target of Sanctions or is located, organized + or resident in a Sanctioned Country or in any other manner that + would result in a violation of Sanctions by any person, + including Provable; + </p> + <p>(f) You will not utilize the Platform in any + manner that, directly or indirectly, conducts, facilitates, + funds or otherwise engages in any money laundering or terrorist + financing activities or business or in any other manner that + would result in a violation by any person, including Provable, + of any applicable law, rule or regulation of any jurisdiction + concerning or relating to anti-money laundering, including the + USA PATRIOT Act of 2001, as amended (β€œAnti-Money Laundering + Laws”); and + </p><p>(g) You have conducted and will conduct all + activities generating funds, assets or other items of value + introduced to the Platform in compliance with applicable + Anti-Money Laundering Laws and Sanctions. + </p> + + <h2>16. General Provisions</h2> + <p>16.1 Assignment. These Terms, and any rights and licenses + granted hereunder, may not be transferred or assigned by you + without our prior express written consent, but may be assigned + by us without restriction. Any attempted transfer or assignment + in violation hereof will be null and void. + </p> + + <p>16.2 Notification + Procedures and Changes to these Terms. We may provide + notifications, whether such notifications are required by + Applicable Law or are for marketing or other business-related + purposes, to you via email notice or written or hard copy + notice, or through posting of such notice on the Platform, as we + determine, in our sole discretion. We reserve the right to + determine the form and means of providing notifications to + Users, provided that you may opt out of certain means of + notification, as required under Applicable Law or as described + in these Terms. We are not responsible for any automatic + filtering you or your network provider may apply to email + notifications we send to the email address you provide us. We + may, in our sole discretion, modify or update these Terms from + time to time, and so you should review this page periodically. + When we change these Terms in a material manner, we will update + the β€˜last modified’ date at the top of this page and notify you + that material changes have been made to these Terms. These Terms + apply to and govern your access to and use of the Platform + effective as of the start of your access to the Platform, even + if such access began before publication of these Terms. Your + continued use of the Platform after any change to these Terms + constitutes your acceptance of the new Terms of Use. If you do + not agree to any part of these Terms or to any future Terms of + Use, do not access or use (or continue to access or use) the + Platform. + </p> + <p>16.3 Entire Agreement; Severability. These Terms, + together with any amendments and any additional agreements you + may enter into with us in connection with the Platform, will + constitute the entire agreement between you and us concerning + the Platform. Any statements or comments made between you and + any of our employees or representatives are expressly excluded + from these Terms and will not apply to you or us, or to your + access to or use of the Platform. Except as otherwise stated in + the Arbitration Agreement, if any provision of these Terms is + deemed invalid by a court of competent jurisdiction, the + invalidity of such provision will not affect the validity of the + remaining provisions of these Terms, which will remain in full + force and effect. + </p> + <p>16.4 Interpretation. For purposes of these + Terms, (a) the words β€œinclude,” β€œincludes” and β€œincluding” are + deemed to be followed by the words β€œwithout limitation”; (b) the + word β€œor” is not exclusive; 15 and (c) the words β€œherein,” + β€œhereof,” β€œhereto” and β€œhereunder” refer to these Terms as a + whole. These Terms shall be construed without regard to any + presumption or rule requiring construction or interpretation + against the party drafting an instrument or causing any + instrument to be drafted. Whenever the masculine is used in this + Agreement, the same shall include the feminine and whenever the + feminine is used herein, the same shall include the masculine, + where appropriate. Whenever the singular is used in this + Agreement, the same shall include the plural, and whenever the + plural is used herein, the same shall include the singular, + where appropriate. + </p> + <p>16.5 No Waiver. No waiver of any term of + these Terms will be deemed a further or continuing waiver of + such term or of any other term, and our failure to assert any + right or provision under these Terms will not constitute a + waiver of such right or provision. + </p>16.6 California Residents. + The provider of the Platform is: Provable Inc., 5470 Kietzke + Lane, STE 300, Reno, NV 89511. If you are a California resident, + in accordance with Cal. Civ. Code Β§1789.3, you may report + complaints to the Complaint Assistance Unit of the Division of + Consumer Services of the California Department of Consumer + Affairs by contacting it in writing at 1625 North Market Blvd., + Suite N 112 Sacramento, CA 95834, or by telephone at (800) + 952-5210 or (916) 445-1254. + <p>16.7 Contact. If you have any + questions about these Terms and/or the Platform, please contact + us at termsofuse@provable.com. + </p> + </p> + </div> + ); +}; + +export default TermsOfUse; diff --git a/website/src/routing.jsx b/website/src/routing.jsx index f208d255a..1f4f4c840 100644 --- a/website/src/routing.jsx +++ b/website/src/routing.jsx @@ -1,4 +1,4 @@ -import { createBrowserRouter, Navigate } from "react-router-dom"; +import { createBrowserRouter } from "react-router-dom"; import Main from "./main.jsx"; import { NewAccount } from "./tabs/account/NewAccount.jsx"; import { AccountFromPrivateKey } from "./tabs/account/AccountFromPrivateKey.jsx"; @@ -22,15 +22,18 @@ import { Join } from "./tabs/develop/Join.jsx"; import { Execute } from "./tabs/develop/execute/"; import { GetMappingNames } from "./tabs/rest/GetMappingNames.jsx"; import { GetMappingValue } from "./tabs/rest/GetMappingValue.jsx"; +import Homepage from "./pages/Homepage"; +import TermsOfUse from "./pages/TermsOfUse"; +import PrivacyPolicy from "./pages/PrivacyPolicy" export const router = createBrowserRouter([ + { + path: "/", + element: <Homepage />, + }, { element: <Main />, children: [ - { - path: "/", - element: <Navigate to="/deploy" replace={false} />, - }, { path: "/account", element: ( @@ -117,6 +120,23 @@ export const router = createBrowserRouter([ </> ), }, + { + path: "/privacy_policy", + element: ( + <> + <PrivacyPolicy /> + </> + ), + }, + { + path: "/terms_of_use", + element: ( + <> + <TermsOfUse /> + </> + ), + }, + ], }, ]); diff --git a/website/src/setupTests.js b/website/src/setupTests.js deleted file mode 100644 index 1dd407a63..000000000 --- a/website/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import "@testing-library/jest-dom"; diff --git a/website/src/tabs/develop/ExecuteLegacy.jsx b/website/src/tabs/develop/ExecuteLegacy.jsx index 5e1d098fb..fceb6d36b 100644 --- a/website/src/tabs/develop/ExecuteLegacy.jsx +++ b/website/src/tabs/develop/ExecuteLegacy.jsx @@ -346,7 +346,7 @@ export const ExecuteLegacy = () => { try { if (id) { axios - .get(`${peerUrl()}/testnet3/program/${id}`) + .get(`${peerUrl()}/testnet/program/${id}`) .then((response) => { setStatus("success"); setProgram(response.data); @@ -392,7 +392,7 @@ export const ExecuteLegacy = () => { extra={ <Button type="primary" - + size="middle" onClick={demo} > @@ -557,7 +557,7 @@ export const ExecuteLegacy = () => { <Space> <Button type="primary" - + size="middle" onClick={execute} > @@ -567,7 +567,7 @@ export const ExecuteLegacy = () => { {executeOnline && ( <Button type="primary" - + size="middle" onClick={estimate} > diff --git a/website/src/tabs/develop/execute/LoadProgram.jsx b/website/src/tabs/develop/execute/LoadProgram.jsx index 346cd9caf..52abb4b1c 100644 --- a/website/src/tabs/develop/execute/LoadProgram.jsx +++ b/website/src/tabs/develop/execute/LoadProgram.jsx @@ -21,7 +21,7 @@ export const LoadProgram = ({ onResponse }) => { } setIsLoading(true); - const url = `https://api.explorer.aleo.org/v1/testnet3/program/${value}`; + const url = `https://api.explorer.aleo.org/v1/testnet/program/${value}`; axios .get(url) diff --git a/website/src/tabs/develop/execute/index.jsx b/website/src/tabs/develop/execute/index.jsx index bca83527b..79dc02fad 100644 --- a/website/src/tabs/develop/execute/index.jsx +++ b/website/src/tabs/develop/execute/index.jsx @@ -17,6 +17,7 @@ import { LoadProgram } from "./LoadProgram.jsx"; import { CodeEditor } from "./CodeEditor.jsx"; import { useAleoWASM } from "../../../aleo-wasm-hook"; import { useEffect, useState } from "react"; +import { NewAccount } from "../../account/NewAccount.jsx"; const layout = { labelCol: { span: 4 }, wrapperCol: { span: 18 } }; @@ -237,6 +238,12 @@ export const Execute = () => { }; return ( + <> + + <NewAccount /> + + <br/> + <Card title="Execute Program" extra={ @@ -473,6 +480,7 @@ export const Execute = () => { )} </Form.Provider> </Card> + </> ); }; diff --git a/website/src/tabs/record/DecryptRecord.css b/website/src/tabs/record/DecryptRecord.css new file mode 100644 index 000000000..0093be967 --- /dev/null +++ b/website/src/tabs/record/DecryptRecord.css @@ -0,0 +1,3 @@ +.container { + max-width: 750px; +} \ No newline at end of file diff --git a/website/src/tabs/record/DecryptRecord.jsx b/website/src/tabs/record/DecryptRecord.jsx index d2cc2710c..4b67b9903 100644 --- a/website/src/tabs/record/DecryptRecord.jsx +++ b/website/src/tabs/record/DecryptRecord.jsx @@ -2,6 +2,7 @@ import { useState } from "react"; import { Button, Card, Col, Divider, Form, Input, Row, Skeleton } from "antd"; import { CopyButton } from "../../components/CopyButton"; import { useAleoWASM } from "../../aleo-wasm-hook"; +import "./DecryptRecord.css"; export const DecryptRecord = () => { const [ciphertext, setCiphertext] = useState(null); @@ -81,81 +82,116 @@ export const DecryptRecord = () => { ciphertext !== null ? ciphertext.toString() : ""; return ( - <Card - title="Decrypt Record" - style={{ width: "100%" }} - extra={ - <Button - type="primary" - - size="middle" - onClick={populateForm} - > - Demo - </Button> - } - > - <Form {...layout}> - <Form.Item label="Record (Ciphertext)" colon={false}> - <Input - name="recordCiphertext" - size="large" - placeholder="Record (Ciphertext)" - allowClear - onChange={onCiphertextChange} - value={recordCipherTextString()} - /> - </Form.Item> - <Form.Item label="View Key" colon={false}> - <Input - name="viewKey" - size="large" - placeholder="View Key" - allowClear - onChange={onViewKeyChange} - value={viewKeyString()} - /> - </Form.Item> - </Form> - {ciphertext || viewKey ? ( - <Row justify="center"> - <Col> + <div className="container"> + <h1>Records</h1> + <h2>Overview</h2> + <ul> + <li> + {" "} + Records are created by Aleo programs and can be used as + inputs for functions within the same program. Once a + record is used, it’s consumed and can’t be reused. + </li> + <li> + Functions that consume records generate new records as + output. + </li> + <li> + Records are <strong>private</strong> by default, tied to + a single Aleo program and a user's private key. + </li> + <li> + The <strong> View Key </strong> is derived from the + private key and allows users to decrypt their encrypted + data and prove ownership of that data. + </li> + </ul> + + <br /> + <p> + Try the demo below! Enter a record and + decrypt it using your View Key to experience how the process + works. You can also click the "Show Demo" button on the + right to generate an example. + </p> + + <br /> + + <Card + title="Decrypt Record" + style={{ width: "100%" }} + extra={ + <> <Button - + type="primary" size="middle" - onClick={clearForm} + onClick={populateForm} > - Clear + Show Demo </Button> - </Col> - </Row> - ) : null} - { + </> + } + > <Form {...layout}> - <Divider /> - <Form.Item label="Record (Plaintext)" colon={false}> - {plaintext ? ( - <Row align="middle"> - <Col span={23}> - <Input.TextArea - size="large" - rows={10} - placeholder="Record (Plaintext)" - value={recordPlaintext()} - disabled - /> - </Col> - <Col span={1} align="middle"> - <CopyButton data={recordPlaintext()} /> - </Col> - </Row> - ) : ( - <Skeleton active /> - )} + <Form.Item label="Record (Ciphertext)" colon={false}> + <Input + name="recordCiphertext" + size="large" + placeholder="Record (Ciphertext)" + allowClear + onChange={onCiphertextChange} + value={recordCipherTextString()} + /> + </Form.Item> + <Form.Item label="View Key" colon={false}> + <Input + name="viewKey" + size="large" + placeholder="View Key" + allowClear + onChange={onViewKeyChange} + value={viewKeyString()} + /> </Form.Item> </Form> - } - </Card> + {ciphertext || viewKey ? ( + <Row justify="center"> + <Col> + <Button size="middle" onClick={clearForm}> + Clear + </Button> + </Col> + </Row> + ) : null} + { + <Form {...layout}> + <Divider /> + <Form.Item label="Record (Plaintext)" colon={false}> + {plaintext ? ( + <Row align="middle"> + <Col span={23}> + <Input.TextArea + size="large" + rows={10} + placeholder="Record (Plaintext)" + value={recordPlaintext()} + disabled + /> + </Col> + <Col span={1} align="middle"> + <CopyButton + data={recordPlaintext()} + /> + </Col> + </Row> + ) : ( + <Skeleton active /> + )} + </Form.Item> + </Form> + } + </Card> + </div> ); } else { return ( diff --git a/website/src/tabs/rest/GetBlockByHash.jsx b/website/src/tabs/rest/GetBlockByHash.jsx index a6249e93d..5095fe785 100644 --- a/website/src/tabs/rest/GetBlockByHash.jsx +++ b/website/src/tabs/rest/GetBlockByHash.jsx @@ -21,7 +21,7 @@ export const GetBlockByHash = () => { try { if (hash) { axios - .get(`https://api.explorer.aleo.org/v1/testnet3/block/${hash}`) + .get(`https://api.explorer.aleo.org/v1/testnet/block/${hash}`) .then((response) => { setBlockByHash(JSON.stringify(response.data, null, 2)); setStatus("success"); diff --git a/website/src/tabs/rest/GetBlockByHeight.jsx b/website/src/tabs/rest/GetBlockByHeight.jsx index 940cbd154..1d2cee3a0 100644 --- a/website/src/tabs/rest/GetBlockByHeight.jsx +++ b/website/src/tabs/rest/GetBlockByHeight.jsx @@ -21,7 +21,7 @@ export const GetBlockByHeight = () => { try { if (height) { axios - .get(`https://api.explorer.aleo.org/v1/testnet3/block/${height}`) + .get(`https://api.explorer.aleo.org/v1/testnet/block/${height}`) .then((response) => { setBlockByHeight( JSON.stringify(response.data, null, 2), diff --git a/website/src/tabs/rest/GetLatestBlock.jsx b/website/src/tabs/rest/GetLatestBlock.jsx index 88ef388e6..9ad71d95a 100644 --- a/website/src/tabs/rest/GetLatestBlock.jsx +++ b/website/src/tabs/rest/GetLatestBlock.jsx @@ -10,7 +10,7 @@ export const GetLatestBlock = () => { setLatestBlock(null); try { axios - .get(`https://api.explorer.aleo.org/v1/testnet3/latest/block`) + .get(`https://api.explorer.aleo.org/v1/testnet/latest/block`) .then((response) => setLatestBlock(JSON.stringify(response.data, null, 2)), ); diff --git a/website/src/tabs/rest/GetLatestBlockHeight.jsx b/website/src/tabs/rest/GetLatestBlockHeight.jsx index c03f64959..5e03f048a 100644 --- a/website/src/tabs/rest/GetLatestBlockHeight.jsx +++ b/website/src/tabs/rest/GetLatestBlockHeight.jsx @@ -10,7 +10,7 @@ export const GetLatestBlockHeight = () => { setLatestHeight(null); try { axios - .get(`https://api.explorer.aleo.org/v1/testnet3/latest/height`) + .get(`https://api.explorer.aleo.org/v1/testnet/latest/height`) .then((response) => setLatestHeight(JSON.stringify(response.data, null, 2)), ); diff --git a/website/src/tabs/rest/GetMappingNames.jsx b/website/src/tabs/rest/GetMappingNames.jsx index e1b579c71..42adadc2a 100644 --- a/website/src/tabs/rest/GetMappingNames.jsx +++ b/website/src/tabs/rest/GetMappingNames.jsx @@ -32,7 +32,7 @@ export const GetMappingNames = () => { if (id) { axios .get( - `https://api.explorer.aleo.org/v1/testnet3/program/${id}/mappings`, + `https://api.explorer.aleo.org/v1/testnet/program/${id}/mappings`, ) .then((response) => { setStatus("success"); diff --git a/website/src/tabs/rest/GetMappingValue.jsx b/website/src/tabs/rest/GetMappingValue.jsx index 3f3030d6f..881db718f 100644 --- a/website/src/tabs/rest/GetMappingValue.jsx +++ b/website/src/tabs/rest/GetMappingValue.jsx @@ -55,7 +55,7 @@ export const GetMappingValue = () => { if (programID && mappingName && mappingKey) { axios .get( - `https://api.explorer.aleo.org/v1/testnet3/program/${programID}/mapping/${mappingName}/${mappingKey}`, + `https://api.explorer.aleo.org/v1/testnet/program/${programID}/mapping/${mappingName}/${mappingKey}`, ) .then((response) => { if (response.data === null) { diff --git a/website/src/tabs/rest/GetProgram.jsx b/website/src/tabs/rest/GetProgram.jsx index d6e567f40..cb6ce7174 100644 --- a/website/src/tabs/rest/GetProgram.jsx +++ b/website/src/tabs/rest/GetProgram.jsx @@ -31,7 +31,7 @@ export const GetProgram = () => { try { if (id) { axios - .get(`https://api.explorer.aleo.org/v1/testnet3/program/${id}`) + .get(`https://api.explorer.aleo.org/v1/testnet/program/${id}`) .then((response) => { setStatus("success"); setProgram(response.data); diff --git a/website/src/tabs/rest/GetTransaction.jsx b/website/src/tabs/rest/GetTransaction.jsx index ce50a9e62..dcfdf2e0d 100644 --- a/website/src/tabs/rest/GetTransaction.jsx +++ b/website/src/tabs/rest/GetTransaction.jsx @@ -21,7 +21,7 @@ export const GetTransaction = () => { try { if (id) { axios - .get(`https://api.explorer.aleo.org/v1/testnet3/transaction/${id}`) + .get(`https://api.explorer.aleo.org/v1/testnet/transaction/${id}`) .then((response) => { setTransaction(JSON.stringify(response.data, null, 2)); setStatus("success"); diff --git a/website/src/workers/keys.js b/website/src/workers/keys.js deleted file mode 100644 index 136aeda87..000000000 --- a/website/src/workers/keys.js +++ /dev/null @@ -1,45 +0,0 @@ -const FEE_PROVER_URL = - "https://testnet3.parameters.aleo.org/fee.prover.36542ce"; -const FEE_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/fee.verifier.2de311b"; -const JOIN_PROVER_URL = - "https://testnet3.parameters.aleo.org/join.prover.da05baf"; -const JOIN_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/join.verifier.1489109"; -const SPLIT_PROVER_URL = - "https://testnet3.parameters.aleo.org/split.prover.8c585f2"; -const SPLIT_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/split.verifier.8281688"; -const TRANSFER_PRIVATE_PROVER_URL = - "https://testnet3.parameters.aleo.org/transfer_private.prover.2a9a6f2"; -const TRANSFER_PRIVATE_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/transfer_private.verifier.3a59762"; -const TRANSFER_PRIVATE_TO_PUBLIC_PROVER_URL = - "https://testnet3.parameters.aleo.org/transfer_private_to_public.prover.cf3b952"; -const TRANSFER_PRIVATE_TO_PUBLIC_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/transfer_private_to_public.verifier.5bd459b"; -const TRANSFER_PUBLIC_PROVER_URL = - "https://testnet3.parameters.aleo.org/transfer_public.prover.1117f0a"; -const TRANSFER_PUBLIC_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/transfer_public.verifier.d63af11"; -const TRANSFER_PUBLIC_TO_PRIVATE_PROVER_URL = - "https://testnet3.parameters.aleo.org/transfer_public_to_private.prover.7b763af"; -const TRANSFER_PUBLIC_TO_PRIVATE_VERIFIER_URL = - "https://testnet3.parameters.aleo.org/transfer_public_to_private.verifier.25f6542"; - -export { - FEE_PROVER_URL, - FEE_VERIFIER_URL, - JOIN_PROVER_URL, - JOIN_VERIFIER_URL, - SPLIT_PROVER_URL, - SPLIT_VERIFIER_URL, - TRANSFER_PRIVATE_PROVER_URL, - TRANSFER_PRIVATE_VERIFIER_URL, - TRANSFER_PUBLIC_PROVER_URL, - TRANSFER_PUBLIC_VERIFIER_URL, - TRANSFER_PRIVATE_TO_PUBLIC_PROVER_URL, - TRANSFER_PRIVATE_TO_PUBLIC_VERIFIER_URL, - TRANSFER_PUBLIC_TO_PRIVATE_PROVER_URL, - TRANSFER_PUBLIC_TO_PRIVATE_VERIFIER_URL, -}; diff --git a/website/src/workers/worker.js b/website/src/workers/worker.js index d7fe710ad..b60097bfd 100644 --- a/website/src/workers/worker.js +++ b/website/src/workers/worker.js @@ -1,11 +1,10 @@ -import * as aleo from "@aleohq/sdk"; +import * as aleo from "@provablehq/sdk"; await aleo.initThreadPool(); const defaultHost = "https://api.explorer.aleo.org/v1"; const keyProvider = new aleo.AleoKeyProvider(); const programManager = new aleo.ProgramManager(defaultHost, keyProvider, undefined); - keyProvider.useCache(true); self.postMessage({ diff --git a/website/vercel.json b/website/vercel.json new file mode 100644 index 000000000..c02783adf --- /dev/null +++ b/website/vercel.json @@ -0,0 +1,27 @@ +{ + "rewrites": [ + { + "source": "/(.*)", + "destination": "/index.html" + } + ], + "headers": [ + { + "source": "/(.*)", + "headers": [ + { + "key": "Cross-Origin-Opener-Policy", + "value": "same-origin" + }, + { + "key": "Cross-Origin-Resource-Policy", + "value": "same-site" + }, + { + "key": "Cross-Origin-Embedder-Policy", + "value": "require-corp" + } + ] + } + ] +} diff --git a/website/vite.config.js b/website/vite.config.js index e8614867f..cebc5c4b9 100644 --- a/website/vite.config.js +++ b/website/vite.config.js @@ -12,7 +12,7 @@ export default defineConfig({ sourcemap: true, }, optimizeDeps: { - exclude: ["@aleohq/wasm", "@aleohq/sdk"], + exclude: ["@provablehq/wasm", "@provablehq/sdk"], }, server: { fs: { diff --git a/website/webpack.config.js b/website/webpack.config.js index 1331b97dd..ad29f70d4 100644 --- a/website/webpack.config.js +++ b/website/webpack.config.js @@ -46,7 +46,8 @@ const appConfig = { patterns: [ { from: "public", to: "public" }, { from: "_headers", to: "." }, - { from: "_redirects", to: "." }], + { from: "_redirects", to: "." }, + { from: "vercel.json", to: "." }], }), new HtmlWebpackPlugin({ template: "./index.html", diff --git a/yarn.lock b/yarn.lock index 54518466b..167897b2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,55 +2,66 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" "@ant-design/colors@^6.0.0": version "6.0.0" - resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298" integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== dependencies: "@ctrl/tinycolor" "^3.4.0" -"@ant-design/colors@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz" - integrity sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg== +"@ant-design/colors@^7.0.0", "@ant-design/colors@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.1.0.tgz#60eadfa2e21871d8948dac5d50b9f056062f8af3" + integrity sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg== dependencies: - "@ctrl/tinycolor" "^3.4.0" + "@ctrl/tinycolor" "^3.6.1" + +"@ant-design/cssinjs-utils@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.0.3.tgz#d68e46be9680cf9f416374a03aff0dd11bd1728d" + integrity sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ== + dependencies: + "@ant-design/cssinjs" "^1.21.0" + "@babel/runtime" "^7.23.2" + rc-util "^5.38.0" -"@ant-design/cssinjs@^1.17.2": - version "1.17.2" - resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.17.2.tgz#08e939cbe60e9e0e0f3f03cd53a52e4a7623ed1f" - integrity sha512-vu7lnfEx4Mf8MPzZxn506Zen3Nt4fRr2uutwvdCuTCN5IiU0lDdQ0tiJ24/rmB8+pefwjluYsbyzbQSbgfJy+A== +"@ant-design/cssinjs@^1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.21.0.tgz#de7289bfd71c7a494a28b96569ad88f999619105" + integrity sha512-gIilraPl+9EoKdYxnupxjHB/Q6IHNRjEXszKbDxZdsgv4sAZ9pjkCq8yanDWNvyfjp4leir2OVAJm0vxwKK8YA== dependencies: "@babel/runtime" "^7.11.1" "@emotion/hash" "^0.8.0" "@emotion/unitless" "^0.7.5" classnames "^2.3.1" - csstype "^3.0.10" + csstype "^3.1.3" rc-util "^5.35.0" stylis "^4.0.13" -"@ant-design/icons-svg@^4.3.0": - version "4.3.1" - resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz" - integrity sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g== +"@ant-design/fast-color@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz#ab4d4455c1542c9017d367c2fa8ca3e4215d0ba2" + integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== + dependencies: + "@babel/runtime" "^7.24.7" + +"@ant-design/icons-svg@^4.3.0", "@ant-design/icons-svg@^4.4.0": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6" + integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== "@ant-design/icons@^4.4.0": - version "4.8.1" - resolved "https://registry.npmjs.org/@ant-design/icons/-/icons-4.8.1.tgz" - integrity sha512-JRAuiqllnMsiZIO8OvBOeFconprC3cnMpJ9MvXrHh+H5co9rlg8/aSHQfLf5jKKe18lUgRaIwC2pz8YxH9VuCA== + version "4.8.3" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.8.3.tgz#41555408ed5e9b0c3d53f3f24fe6a73abfcf4000" + integrity sha512-HGlIQZzrEbAhpJR6+IGdzfbPym94Owr6JZkJ2QCCnOkPVIWMO2xgIVcOKnl8YcpijIo39V7l2qQL5fmtw56cMw== dependencies: "@ant-design/colors" "^6.0.0" "@ant-design/icons-svg" "^4.3.0" @@ -59,21 +70,21 @@ lodash "^4.17.15" rc-util "^5.9.4" -"@ant-design/icons@^5.2.6": - version "5.2.6" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.2.6.tgz#2d4a9a37f531eb2a20cebec01d6fb69cf593900d" - integrity sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw== +"@ant-design/icons@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.4.0.tgz#4bd8f335c68207cc06fe9943d164a81cdfcfbeac" + integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA== dependencies: "@ant-design/colors" "^7.0.0" - "@ant-design/icons-svg" "^4.3.0" - "@babel/runtime" "^7.11.2" + "@ant-design/icons-svg" "^4.4.0" + "@babel/runtime" "^7.24.8" classnames "^2.2.6" rc-util "^5.31.1" -"@ant-design/react-slick@~1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz#241bb412aeacf7ff5d50c61fa5db66773fde6b56" - integrity sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ== +"@ant-design/react-slick@~1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-1.1.2.tgz#f84ce3e4d0dc941f02b16f1d1d6d7a371ffbb4f1" + integrity sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA== dependencies: "@babel/runtime" "^7.10.4" classnames "^2.2.5" @@ -81,103 +92,102 @@ resize-observer-polyfill "^1.5.1" throttle-debounce "^5.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.22.5": - version "7.22.13" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.22.5", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.2": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz" - integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5" + integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.17.2", "@babel/core@^7.22.20", "@babel/core@^7.22.9", "@babel/core@^7.7.5": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz" - integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== +"@babel/core@^7.17.2", "@babel/core@^7.23.7", "@babel/core@^7.24.5", "@babel/core@^7.7.5": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.0" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.12.11", "@babel/generator@^7.23.0", "@babel/generator@^7.7.2": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== +"@babel/generator@^7.12.11", "@babel/generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" + integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.25.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.24.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== dependencies: - "@babel/types" "^7.22.15" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" +"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" + integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.0" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.24.7" regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -185,782 +195,785 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": - 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== +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" + +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== + dependencies: + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/helpers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - 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== +"@babel/parser@^7.1.0", "@babel/parser@^7.2.3", "@babel/parser@^7.20.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.9.4": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" + "@babel/types" "^7.25.2" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f" + integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA== dependencies: - "@babel/types" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.3" -"@babel/helper-member-expression-to-functions@^7.22.15": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== dependencies: - "@babel/types" "^7.23.0" - -"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.8" -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz" - integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== - 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" - -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" - -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - 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== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - 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== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.22.20": - 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== - -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== - -"@babel/helper-wrap-function@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz" - integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.15" - "@babel/types" "^7.22.19" - -"@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" + "@babel/helper-plugin-utils" "^7.24.8" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.2.3", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.9.4": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz" - integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz" - integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== +"@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== +"@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" + integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== +"@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-async-generator-functions@^7.23.2": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz" - integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== +"@babel/plugin-transform-async-generator-functions@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" + integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.0" -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== +"@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-block-scoping@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz" - integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== +"@babel/plugin-transform-block-scoping@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-class-static-block@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz" - integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.11" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz" - integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== +"@babel/plugin-transform-classes@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" + integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.0" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== +"@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" -"@babel/plugin-transform-destructuring@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz" - integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== +"@babel/plugin-transform-destructuring@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-dynamic-import@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz" - integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-export-namespace-from@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz" - integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz" - integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== +"@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== +"@babel/plugin-transform-function-name@^7.25.1": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.1" -"@babel/plugin-transform-json-strings@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz" - integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== +"@babel/plugin-transform-literals@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-logical-assignment-operators@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz" - integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== +"@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-modules-amd@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz" - integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-modules-commonjs@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz" - integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== +"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" -"@babel/plugin-transform-modules-systemjs@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz" - integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== +"@babel/plugin-transform-modules-systemjs@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz" - integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz" - integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz" - integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.24.7" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== +"@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" -"@babel/plugin-transform-optional-catch-binding@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz" - integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.15", "@babel/plugin-transform-optional-chaining@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz" - integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== +"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz" - integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== +"@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-private-property-in-object@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz" - integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.11" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== +"@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-react-display-name@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== +"@babel/plugin-transform-react-display-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" + integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-react-jsx-development@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz" - integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== +"@babel/plugin-transform-react-jsx-development@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" + integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== dependencies: - "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.24.7" -"@babel/plugin-transform-react-jsx-self@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e" - integrity sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g== +"@babel/plugin-transform-react-jsx-self@^7.24.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz#66bff0248ea0b549972e733516ffad577477bdab" + integrity sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-react-jsx-source@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz#49af1615bfdf6ed9d3e9e43e425e0b2b65d15b6c" - integrity sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w== +"@babel/plugin-transform-react-jsx-source@^7.24.1": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3" + integrity sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz" - integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== +"@babel/plugin-transform-react-jsx@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a" + integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.15" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/types" "^7.25.2" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz" - integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== +"@babel/plugin-transform-react-pure-annotations@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" + integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-regenerator@^7.22.10": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz" - integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== +"@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== +"@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== +"@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== +"@babel/plugin-transform-typeof-symbol@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-typescript@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" - integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== +"@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" -"@babel/plugin-transform-unicode-escapes@^7.22.10": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz" - integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/preset-env@^7.16.11": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz" - integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== - dependencies: - "@babel/compat-data" "^7.23.2" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c" + integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -972,65 +985,65 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.23.2" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.23.0" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.15" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.23.0" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.11" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.15" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.11" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.23.0" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-modules-systemjs" "^7.23.0" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" - "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.15" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.23.0" - "@babel/plugin-transform-parameters" "^7.22.15" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.10" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.10" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.0" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.25.0" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.25.0" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.8" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.25.1" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.25.2" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@babel/plugin-transform-modules-systemjs" "^7.25.0" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.8" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.8" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.23.0" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" - core-js-compat "^3.31.0" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.37.1" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -1038,88 +1051,85 @@ esutils "^2.0.2" "@babel/preset-react@^7.16.7", "@babel/preset-react@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz" - integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" + integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.15" - "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-transform-react-display-name" "^7.24.7" + "@babel/plugin-transform-react-jsx" "^7.24.7" + "@babel/plugin-transform-react-jsx-development" "^7.24.7" + "@babel/plugin-transform-react-pure-annotations" "^7.24.7" "@babel/preset-typescript@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4" - integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA== + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-typescript" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" "@babel/regjsgen@^0.8.0": version "0.8.0" - resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.7", "@babel/runtime@^7.24.8", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== dependencies: regenerator-runtime "^0.14.0" -"@babel/standalone@^7.22.9": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.23.2.tgz#1c6348bab159d24623907eb5866393bc7ab5a380" - integrity sha512-VJNw7OS26JvB6rE9XpbT6uQeQIEBWU5eeHGS4VR/+/4ZoKdLBXLcy66ZVJ/9IBkK1RMp8B0cohvhzdKWtJAGmg== - -"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.1.6", "@babel/traverse@^7.23.2": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@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.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" +"@babel/standalone@^7.23.8": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.25.3.tgz#da5eaa9e0b0c2da360fe033eb580400739b03bb9" + integrity sha512-uR+EoBqIIIvKGCG7fOj7HKupu3zVObiMfdEwoPZfVCPpcWJaZ1PkshaP5/6cl6BKAm1Zcv25O1rf+uoQ7V8nqA== + +"@babel/template@^7.24.7", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.1.6", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" + integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.2" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.20.7", "@babel/types@^7.23.6", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.4.4": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@codemirror/autocomplete@^6.0.0": - version "6.10.2" - resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.10.2.tgz#d3a7e2a4ddd1e8a2992b1b17d4e7692542c71052" - integrity sha512-3dCL7b0j2GdtZzWN5j7HDpRAJ26ip07R4NGYz7QYthIYMiX8I4E4TNrYcdTayPJGeVQtd/xe7lWU4XL7THFb/w== + version "6.18.0" + resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz#5f39b05daca04c95e990b70024144df47b2aa635" + integrity sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA== dependencies: "@codemirror/language" "^6.0.0" "@codemirror/state" "^6.0.0" @@ -1127,18 +1137,18 @@ "@lezer/common" "^1.0.0" "@codemirror/commands@^6.0.0", "@codemirror/commands@^6.1.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.0.tgz" - integrity sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q== + version "6.6.0" + resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.6.0.tgz#d308f143fe1b8896ca25fdb855f66acdaf019dd4" + integrity sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg== dependencies: "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.2.0" - "@codemirror/view" "^6.0.0" + "@codemirror/state" "^6.4.0" + "@codemirror/view" "^6.27.0" "@lezer/common" "^1.1.0" "@codemirror/highlight@^0.19.0": version "0.19.8" - resolved "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.8.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/highlight/-/highlight-0.19.8.tgz#a95aee8ae4389b01f820aa79c48f7b4388087d92" integrity sha512-v/lzuHjrYR8MN2mEJcUD6fHSTXXli9C1XGYpr+ElV6fLBIUhMTNKR3qThp611xuWfXfwDxeL7ppcbkM/MzPV3A== dependencies: "@codemirror/language" "^0.19.0" @@ -1150,7 +1160,7 @@ "@codemirror/language@^0.19.0": version "0.19.10" - resolved "https://registry.npmjs.org/@codemirror/language/-/language-0.19.10.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-0.19.10.tgz#c3d1330fa5de778c6b6b5177af5572a3d9d596b5" integrity sha512-yA0DZ3RYn2CqAAGW62VrU8c4YxscMQn45y/I9sjBlqB1e2OTQLg4CCkMBuMSLXk4xaqjlsgazeOQWaJQOKfV8Q== dependencies: "@codemirror/state" "^0.19.0" @@ -1160,28 +1170,28 @@ "@lezer/lr" "^0.15.0" "@codemirror/language@^6.0.0", "@codemirror/language@^6.8.0": - version "6.9.1" - resolved "https://registry.npmjs.org/@codemirror/language/-/language-6.9.1.tgz" - integrity sha512-lWRP3Y9IUdOms6DXuBpoWwjkR7yRmnS0hKYCbSfPz9v6Em1A1UCRujAkDiCrdYfs1Z0Eu4dGtwovNPStIfkgNA== + version "6.10.2" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.2.tgz#4056dc219619627ffe995832eeb09cea6060be61" + integrity sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA== dependencies: "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" + "@codemirror/view" "^6.23.0" "@lezer/common" "^1.1.0" "@lezer/highlight" "^1.0.0" "@lezer/lr" "^1.0.0" style-mod "^4.0.0" "@codemirror/legacy-modes@^6.3.3": - version "6.3.3" - resolved "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.3.3.tgz" - integrity sha512-X0Z48odJ0KIoh/HY8Ltz75/4tDYc9msQf1E/2trlxFaFFhgjpVHjZ/BCXe1Lk7s4Gd67LL/CeEEHNI+xHOiESg== + version "6.4.0" + resolved "https://registry.yarnpkg.com/@codemirror/legacy-modes/-/legacy-modes-6.4.0.tgz#3cf7a863da5deebbd7bf9a90f12f89f06cca6d46" + integrity sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA== dependencies: "@codemirror/language" "^6.0.0" "@codemirror/lint@^6.0.0": - version "6.4.2" - resolved "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz" - integrity sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA== + version "6.8.1" + resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.1.tgz#6427848815baaf68c08e98c7673b804d3d8c0e7f" + integrity sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg== dependencies: "@codemirror/state" "^6.0.0" "@codemirror/view" "^6.0.0" @@ -1189,15 +1199,15 @@ "@codemirror/rangeset@^0.19.0", "@codemirror/rangeset@^0.19.5": version "0.19.9" - resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.9.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/rangeset/-/rangeset-0.19.9.tgz#e80895de93c39dc7899f5be31d368c9d88aa4efc" integrity sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ== dependencies: "@codemirror/state" "^0.19.0" "@codemirror/search@^6.0.0": - version "6.5.4" - resolved "https://registry.npmjs.org/@codemirror/search/-/search-6.5.4.tgz" - integrity sha512-YoTrvjv9e8EbPs58opjZKyJ3ewFrVSUzQ/4WXlULQLSDDr1nGPJ67mMXFNNVYwdFhybzhrzrtqgHmtpJwIF+8g== + version "6.5.6" + resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.5.6.tgz#8f858b9e678d675869112e475f082d1e8488db93" + integrity sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q== dependencies: "@codemirror/state" "^6.0.0" "@codemirror/view" "^6.0.0" @@ -1205,19 +1215,19 @@ "@codemirror/state@^0.19.0", "@codemirror/state@^0.19.3": version "0.19.9" - resolved "https://registry.npmjs.org/@codemirror/state/-/state-0.19.9.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-0.19.9.tgz#b797f9fbc204d6dc7975485e231693c09001b0dd" integrity sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw== dependencies: "@codemirror/text" "^0.19.0" -"@codemirror/state@^6.0.0", "@codemirror/state@^6.1.1", "@codemirror/state@^6.1.4", "@codemirror/state@^6.2.0": - version "6.2.1" - resolved "https://registry.npmjs.org/@codemirror/state/-/state-6.2.1.tgz" - integrity sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw== +"@codemirror/state@^6.0.0", "@codemirror/state@^6.1.1", "@codemirror/state@^6.4.0": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.4.1.tgz#da57143695c056d9a3c38705ed34136e2b68171b" + integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A== "@codemirror/stream-parser@^0.19.9": version "0.19.9" - resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.9.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/stream-parser/-/stream-parser-0.19.9.tgz#34955ea91a8047cf72abebd5ce28f0d332aeca48" integrity sha512-WTmkEFSRCetpk8xIOvV2yyXdZs3DgYckM0IP7eFi4ewlxWnJO/H4BeJZLs4wQaydWsAqTQoDyIwNH1BCzK5LUQ== dependencies: "@codemirror/highlight" "^0.19.0" @@ -1229,12 +1239,12 @@ "@codemirror/text@^0.19.0": version "0.19.6" - resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/text/-/text-0.19.6.tgz#9adcbd8137f69b75518eacd30ddb16fd67bbac45" integrity sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA== "@codemirror/theme-one-dark@^6.0.0": version "6.1.2" - resolved "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz#fcef9f9cfc17a07836cb7da17c9f6d7231064df8" integrity sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA== dependencies: "@codemirror/language" "^6.0.0" @@ -1244,7 +1254,7 @@ "@codemirror/view@^0.19.0", "@codemirror/view@^0.19.39": version "0.19.48" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.48.tgz" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-0.19.48.tgz#1c657e2b0f8ed896ac6448d6e2215ab115e2a0fc" integrity sha512-0eg7D2Nz4S8/caetCTz61rK0tkHI17V/d15Jy0kLOT8dTLGGNJUponDnW28h2B6bERmPlVHKh8MJIr5OCp1nGw== dependencies: "@codemirror/rangeset" "^0.19.5" @@ -1253,12 +1263,12 @@ style-mod "^4.0.0" w3c-keyname "^2.2.4" -"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0": - version "6.21.3" - resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.21.3.tgz#cf8e3ee6f08e06a6912f18bc90548b4b74badb7a" - integrity sha512-8l1aSQ6MygzL4Nx7GVYhucSXvW4jQd0F6Zm3v9Dg+6nZEfwzJVqi4C2zHfDljID+73gsQrWp9TgHc81xU15O4A== +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0": + version "6.30.0" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.30.0.tgz#4daceb2b3951477b99283b59b98ed0c01ce016b1" + integrity sha512-96Nmn8OeLh6aONQprIeYk8hGVnEuYpWuxKSkdsODOx9hWPxyuyZGvmvxV/JmLsp+CubMO1PsLaN5TNNgrl0UrQ== dependencies: - "@codemirror/state" "^6.1.4" + "@codemirror/state" "^6.4.0" style-mod "^4.1.0" w3c-keyname "^2.2.4" @@ -1269,26 +1279,31 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.6.0", "@ctrl/tinycolor@^3.6.1": +"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.6.1": version "3.6.1" - resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz" + resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== "@discoveryjs/json-ext@^0.5.0": version "0.5.7" - resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== "@emotion/hash@^0.8.0": version "0.8.0" - resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== "@emotion/unitless@^0.7.5": version "0.7.5" - resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@esbuild/aix-ppc64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" + integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== + "@esbuild/android-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" @@ -1299,6 +1314,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== +"@esbuild/android-arm64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" + integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== + "@esbuild/android-arm@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" @@ -1309,6 +1329,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== +"@esbuild/android-arm@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" + integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== + "@esbuild/android-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" @@ -1319,6 +1344,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== +"@esbuild/android-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" + integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== + "@esbuild/darwin-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" @@ -1326,9 +1356,14 @@ "@esbuild/darwin-arm64@0.18.20": version "0.18.20" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== +"@esbuild/darwin-arm64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" + integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== + "@esbuild/darwin-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" @@ -1339,6 +1374,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== +"@esbuild/darwin-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" + integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== + "@esbuild/freebsd-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" @@ -1349,6 +1389,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== +"@esbuild/freebsd-arm64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" + integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== + "@esbuild/freebsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" @@ -1359,6 +1404,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== +"@esbuild/freebsd-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" + integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== + "@esbuild/linux-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" @@ -1369,6 +1419,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== +"@esbuild/linux-arm64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" + integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== + "@esbuild/linux-arm@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" @@ -1379,6 +1434,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== +"@esbuild/linux-arm@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" + integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== + "@esbuild/linux-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" @@ -1389,6 +1449,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== +"@esbuild/linux-ia32@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" + integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== + "@esbuild/linux-loong64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" @@ -1399,6 +1464,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== +"@esbuild/linux-loong64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" + integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== + "@esbuild/linux-mips64el@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" @@ -1409,6 +1479,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== +"@esbuild/linux-mips64el@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" + integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== + "@esbuild/linux-ppc64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" @@ -1419,6 +1494,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== +"@esbuild/linux-ppc64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" + integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== + "@esbuild/linux-riscv64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" @@ -1429,6 +1509,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== +"@esbuild/linux-riscv64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" + integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== + "@esbuild/linux-s390x@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" @@ -1439,6 +1524,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== +"@esbuild/linux-s390x@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" + integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== + "@esbuild/linux-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" @@ -1449,6 +1539,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== +"@esbuild/linux-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" + integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== + "@esbuild/netbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" @@ -1459,6 +1554,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== +"@esbuild/netbsd-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" + integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== + +"@esbuild/openbsd-arm64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" + integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== + "@esbuild/openbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" @@ -1469,6 +1574,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== +"@esbuild/openbsd-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" + integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== + "@esbuild/sunos-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" @@ -1479,6 +1589,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== +"@esbuild/sunos-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" + integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== + "@esbuild/win32-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" @@ -1489,6 +1604,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== +"@esbuild/win32-arm64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" + integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== + "@esbuild/win32-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" @@ -1499,6 +1619,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== +"@esbuild/win32-ia32@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" + integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== + "@esbuild/win32-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" @@ -1509,22 +1634,27 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@esbuild/win32-x64@0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" + integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.9.1" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz" - integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1536,33 +1666,38 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.51.0": - version "8.51.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz" - integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -1572,245 +1707,42 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== - dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" @@ -1820,54 +1752,54 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" "@jsdoc/salty@^0.2.4": - version "0.2.5" - resolved "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz" - integrity sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw== + version "0.2.8" + resolved "https://registry.yarnpkg.com/@jsdoc/salty/-/salty-0.2.8.tgz#8d29923a9429694a437a50ab75004b576131d597" + integrity sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg== dependencies: lodash "^4.17.21" "@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== "@lezer/common@^0.15.0", "@lezer/common@^0.15.5": version "0.15.12" - resolved "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-0.15.12.tgz#2f21aec551dd5fd7d24eb069f90f54d5bc6ee5e9" integrity sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig== "@lezer/common@^1.0.0", "@lezer/common@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@lezer/common/-/common-1.1.0.tgz" - integrity sha512-XPIN3cYDXsoJI/oDWoR2tD++juVrhgIago9xyKhZ7IhGlzdDM9QgC8D8saKNCz5pindGcznFr2HBSsEQSWnSjw== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049" + integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ== "@lezer/highlight@^1.0.0": - version "1.1.6" - resolved "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.6.tgz" - integrity sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.0.tgz#e5898c3644208b4b589084089dceeea2966f7780" + integrity sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA== dependencies: "@lezer/common" "^1.0.0" "@lezer/lr@^0.15.0": version "0.15.8" - resolved "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-0.15.8.tgz#1564a911e62b0a0f75ca63794a6aa8c5dc63db21" integrity sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg== dependencies: "@lezer/common" "^0.15.0" "@lezer/lr@^1.0.0": - version "1.3.13" - resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.13.tgz" - integrity sha512-RLAbau/4uSzKgIKj96mI5WUtG1qtiR0Frn0Ei9zhPj8YOkHM+1Bb8SgdVvmR/aWJCFIzjo2KFnDiRZ75Xf5NdQ== + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727" + integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== dependencies: "@lezer/common" "^1.0.0" @@ -1923,7 +1855,7 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1931,12 +1863,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1944,22 +1876,29 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@rc-component/color-picker@~1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.4.1.tgz" - integrity sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw== +"@rc-component/async-validator@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz#5291ad92f00a14b6766fc81735c234277f83e948" + integrity sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg== dependencies: - "@babel/runtime" "^7.10.1" - "@ctrl/tinycolor" "^3.6.0" + "@babel/runtime" "^7.24.4" + +"@rc-component/color-picker@~2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-2.0.0.tgz#3bac931f53757bcc9ed3c57cfc8264c25e6e684a" + integrity sha512-52z3XqUwUr0+Br3B8RjN2GfuR1Pk3MZPAVd34WptWFEOyTz7OQmmn8nqgXUBOYwZem8jXp6G3iv+6Dm1+1epJA== + dependencies: + "@ant-design/fast-color" "^2.0.1" + "@babel/runtime" "^7.23.6" classnames "^2.2.6" - rc-util "^5.30.0" + rc-util "^5.38.1" "@rc-component/context@^1.4.0": version "1.4.0" - resolved "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/@rc-component/context/-/context-1.4.0.tgz#dc6fb021d6773546af8f016ae4ce9aea088395e8" integrity sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w== dependencies: "@babel/runtime" "^7.10.1" @@ -1967,14 +1906,14 @@ "@rc-component/mini-decimal@^1.0.1": version "1.1.0" - resolved "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz#7b7a362b14a0a54cb5bc6fd2b82731f29f11d9b0" integrity sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/mutate-observer@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz#ee53cc88b78aade3cd0653609215a44779386fd8" integrity sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw== dependencies: "@babel/runtime" "^7.18.0" @@ -1983,28 +1922,37 @@ "@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1": version "1.1.2" - resolved "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.2.tgz#55db1e51d784e034442e9700536faaa6ab63fc71" integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg== dependencies: "@babel/runtime" "^7.18.0" classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/tour@~1.10.0": - version "1.10.0" - resolved "https://registry.npmjs.org/@rc-component/tour/-/tour-1.10.0.tgz" - integrity sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A== +"@rc-component/qrcode@~1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rc-component/qrcode/-/qrcode-1.0.0.tgz#48a8de5eb11d0e65926f1377c4b1ef4c888997f5" + integrity sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg== + dependencies: + "@babel/runtime" "^7.24.7" + classnames "^2.3.2" + rc-util "^5.38.0" + +"@rc-component/tour@~1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.15.0.tgz#37a66ae5af8eefaf0ab0e22ddd8e6fecdbdc14a7" + integrity sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/portal" "^1.0.0-9" - "@rc-component/trigger" "^1.3.6" + "@rc-component/trigger" "^2.0.0" classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/trigger@^1.17.0": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.17.1.tgz#3de00f7a8997bb4d8e608502e095d6d4e713ddc9" - integrity sha512-ocD6GlyrPMtWfSdGmfURpudj6ZQqykG/+GH9QVhziG/0EtpPqK5FUbptwXDJGBJwvKhk4Z6jhxJE7utH464SgQ== +"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1", "@rc-component/trigger@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.2.0.tgz#503a48b0895a2cfddee0a5b7b11492c3df2a493d" + integrity sha512-QarBCji02YE9aRFhZgRZmOpXBj0IZutRippsVBv85sxvG4FGk/vRxwAlkn3MS9zK5mwbETd86mAVg2tKqTkdJA== dependencies: "@babel/runtime" "^7.23.2" "@rc-component/portal" "^1.1.0" @@ -2013,28 +1961,15 @@ rc-resize-observer "^1.3.1" rc-util "^5.38.0" -"@rc-component/trigger@^1.3.6", "@rc-component/trigger@^1.5.0", "@rc-component/trigger@^1.7.0": - version "1.17.0" - resolved "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.17.0.tgz" - integrity sha512-KN+lKHCi7L4kjuA9DU2PnwZxtIyes6R1wsexp0/Rnjr/ITELsPuC9kpzDK1+7AZMarDXUAHUdDGS2zUNEx2P0g== - dependencies: - "@babel/runtime" "^7.18.3" - "@rc-component/portal" "^1.1.0" - classnames "^2.3.2" - rc-align "^4.0.0" - rc-motion "^2.0.0" - rc-resize-observer "^1.3.1" - rc-util "^5.33.0" - -"@remix-run/router@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.9.0.tgz" - integrity sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA== +"@remix-run/router@1.19.0": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.0.tgz#745dbffbce67f05386d57ca22c51dfd85c979593" + integrity sha512-zDICCLKEwbVYTS6TjYaWtHXxkdoUvD/QXvyVZjGCsWz5vyH7aFeONlPffPdW+Y/t6KT0MgXb2Mfjun9YpWN1dA== "@rollup/plugin-alias@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.0.1.tgz#c84a43e021f5e0ebf1cc3c5af518c8371251bb77" - integrity sha512-JObvbWdOHoMy9W7SU0lvGhDtWq9PllP5mjpAy+TUslZG/WzOId9u80Hsqq1vCUn9pFJ0cxpdcnAv+QzU2zFH3Q== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz#99a94accc4ff9a3483be5baeedd5d7da3b597e93" + integrity sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ== dependencies: slash "^4.0.0" @@ -2050,10 +1985,10 @@ is-reference "1.2.1" magic-string "^0.27.0" -"@rollup/plugin-dynamic-import-vars@^2.0.5": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@rollup/plugin-dynamic-import-vars/-/plugin-dynamic-import-vars-2.0.7.tgz#bbacba2db680c5bb161be7c7d5a8b1110cf354e2" - integrity sha512-B1mpvNHaQRPZ8dqMQWZWeBU0O7uEE00QF3J1LADRfNN2oCYMm4rd4ejbYUwyk7sR4RAEZSVUBP+eZ6ljT65dSA== +"@rollup/plugin-dynamic-import-vars@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-dynamic-import-vars/-/plugin-dynamic-import-vars-2.1.2.tgz#cf87cec47b00ab86badecaf39d234052d3be389b" + integrity sha512-4lr2oXxs9hcxtGGaK8s0i9evfjzDrAs7ngw28TqruWKTEm0+U4Eljb+F6HXGYdFv8xRojQlrQwV7M/yxeh3yzQ== dependencies: "@rollup/pluginutils" "^5.0.1" astring "^1.8.5" @@ -2062,11 +1997,11 @@ magic-string "^0.30.3" "@rollup/plugin-json@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.0.1.tgz#7e2efcf5ed549963f1444e010611d22f463931c0" - integrity sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz#fbe784e29682e9bb6dee28ea75a1a83702e7b805" + integrity sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA== dependencies: - "@rollup/pluginutils" "^5.0.1" + "@rollup/pluginutils" "^5.1.0" "@rollup/plugin-node-resolve@^15.0.2": version "15.2.3" @@ -2080,191 +2015,224 @@ is-module "^1.0.0" resolve "^1.22.1" -"@rollup/plugin-replace@^5.0.2": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.4.tgz#fef548dc751d06747e8dca5b0e8e1fbf647ac7e1" - integrity sha512-E2hmRnlh09K8HGT0rOnnri9OTh+BILGr7NVJGB30S4E3cLRn3J0xjdiyOZ74adPs4NiAMgrjUMGAZNJDBgsdmQ== +"@rollup/plugin-replace@^5.0.2", "@rollup/plugin-replace@^5.0.5": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz#150c9ee9db8031d9e4580a61a0edeaaed3d37687" + integrity sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ== dependencies: "@rollup/pluginutils" "^5.0.1" magic-string "^0.30.3" -"@rollup/plugin-replace@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz#33d5653dce6d03cb24ef98bef7f6d25b57faefdf" - integrity sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ== - dependencies: - "@rollup/pluginutils" "^5.0.1" - magic-string "^0.30.3" +"@rollup/plugin-virtual@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz#17e17eeecb4c9fa1c0a6e72c9e5f66382fddbb82" + integrity sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A== "@rollup/pluginutils@^4.1.2": version "4.2.1" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== dependencies: estree-walker "^2.0.1" picomatch "^2.2.2" -"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2": - version "5.0.5" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz" - integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== +"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2", "@rollup/pluginutils@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.1.4.tgz#e9bc2540174972b559ded126e6f9bf12f36c1bb1" - integrity sha512-WlzkuFvpKl6CLFdc3V6ESPt7gq5Vrimd2Yv9IzKXdOpgbH4cdDSS1JLiACX8toygihtH5OlxyQzhXOph7Ovlpw== - -"@rollup/rollup-android-arm64@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.1.4.tgz#50c4e7668cb00a63d9a6810d0a607496ad4f0d09" - integrity sha512-D1e+ABe56T9Pq2fD+R3ybe1ylCDzu3tY4Qm2Mj24R9wXNCq35+JbFbOpc2yrroO2/tGhTobmEl2Bm5xfE/n8RA== - -"@rollup/rollup-darwin-arm64@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.1.4.tgz#96b8ad0c21582fe8223c66ed4b39b30ff592da1c" - integrity sha512-7vTYrgEiOrjxnjsgdPB+4i7EMxbVp7XXtS+50GJYj695xYTTEMn3HZVEvgtwjOUkAP/Q4HDejm4fIAjLeAfhtg== - -"@rollup/rollup-darwin-x64@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.1.4.tgz#5f0f6bd8f0a29e4b2b32ab831e953a6ca2d8f45b" - integrity sha512-eGJVZScKSLZkYjhTAESCtbyTBq9SXeW9+TX36ki5gVhDqJtnQ5k0f9F44jNK5RhAMgIj0Ht9+n6HAgH0gUUyWQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.1.4.tgz#52d706c87a05f91ff6f14f444685b662d3a6f96a" - integrity sha512-HnigYSEg2hOdX1meROecbk++z1nVJDpEofw9V2oWKqOWzTJlJf1UXVbDE6Hg30CapJxZu5ga4fdAQc/gODDkKg== - -"@rollup/rollup-linux-arm64-gnu@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.1.4.tgz#5afa269b26467a7929c23816e3e2cf417b973d3b" - integrity sha512-TzJ+N2EoTLWkaClV2CUhBlj6ljXofaYzF/R9HXqQ3JCMnCHQZmQnbnZllw7yTDp0OG5whP4gIPozR4QiX+00MQ== - -"@rollup/rollup-linux-arm64-musl@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.1.4.tgz#08d30969483a804769deb6e674fe963c21815ad9" - integrity sha512-aVPmNMdp6Dlo2tWkAduAD/5TL/NT5uor290YvjvFvCv0Q3L7tVdlD8MOGDL+oRSw5XKXKAsDzHhUOPUNPRHVTQ== - -"@rollup/rollup-linux-x64-gnu@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.1.4.tgz#e5000b4e6e2a81364083d64a608b915f4e92a9c1" - integrity sha512-77Fb79ayiDad0grvVsz4/OB55wJRyw9Ao+GdOBA9XywtHpuq5iRbVyHToGxWquYWlEf6WHFQQnFEttsAzboyKg== - -"@rollup/rollup-linux-x64-musl@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.1.4.tgz#6f356e16b275287f61c61ce8b9e1718fc5b24d4c" - integrity sha512-/t6C6niEQTqmQTVTD9TDwUzxG91Mlk69/v0qodIPUnjjB3wR4UA3klg+orR2SU3Ux2Cgf2pWPL9utK80/1ek8g== - -"@rollup/rollup-win32-arm64-msvc@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.1.4.tgz#acb619a959c7b03fad63017b328fa60641b75239" - integrity sha512-ZY5BHHrOPkMbCuGWFNpJH0t18D2LU6GMYKGaqaWTQ3CQOL57Fem4zE941/Ek5pIsVt70HyDXssVEFQXlITI5Gg== - -"@rollup/rollup-win32-ia32-msvc@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.1.4.tgz#6aab05c9a60f952cf5a263ebca244aa225fbde63" - integrity sha512-XG2mcRfFrJvYyYaQmvCIvgfkaGinfXrpkBuIbJrTl9SaIQ8HumheWTIwkNz2mktCKwZfXHQNpO7RgXLIGQ7HXA== - -"@rollup/rollup-win32-x64-msvc@4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.1.4.tgz#482022c71466e653aa6e1afc7a8323298743609b" - integrity sha512-ANFqWYPwkhIqPmXw8vm0GpBEHiPpqcm99jiiAp71DbCSqLDhrtr019C5vhD0Bw4My+LmMvciZq6IsWHqQpl2ZQ== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz" - integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== +"@rollup/rollup-android-arm-eabi@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz#c3f5660f67030c493a981ac1d34ee9dfe1d8ec0f" + integrity sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA== + +"@rollup/rollup-android-arm64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz#64161f0b67050023a3859e723570af54a82cff5c" + integrity sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ== + +"@rollup/rollup-darwin-arm64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz#25f3d57b1da433097cfebc89341b355901615763" + integrity sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q== + +"@rollup/rollup-darwin-x64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz#d8ddaffb636cc2f59222c50316e27771e48966df" + integrity sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz#41bd4fcffa20fb84f3dbac6c5071638f46151885" + integrity sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA== + +"@rollup/rollup-linux-arm-musleabihf@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz#842077c5113a747eb5686f19f2f18c33ecc0acc8" + integrity sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw== + +"@rollup/rollup-linux-arm64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz#65d1d5b6778848f55b7823958044bf3e8737e5b7" + integrity sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ== + +"@rollup/rollup-linux-arm64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz#50eef7d6e24d0fe3332200bb666cad2be8afcf86" + integrity sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q== + +"@rollup/rollup-linux-powerpc64le-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz#8837e858f53c84607f05ad0602943e96d104c6b4" + integrity sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw== + +"@rollup/rollup-linux-riscv64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz#c894ade2300caa447757ddf45787cca246e816a4" + integrity sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA== + +"@rollup/rollup-linux-s390x-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz#5841e5390d4c82dd5cdf7b2c95a830e3c2f47dd3" + integrity sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg== + +"@rollup/rollup-linux-x64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz#cc1f26398bf777807a99226dc13f47eb0f6c720d" + integrity sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew== + +"@rollup/rollup-linux-x64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz#1507465d9056e0502a590d4c1a00b4d7b1fda370" + integrity sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg== + +"@rollup/rollup-win32-arm64-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz#86a221f01a2c248104dd0defb4da119f2a73642e" + integrity sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA== + +"@rollup/rollup-win32-ia32-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz#8bc8f77e02760aa664694b4286d6fbea7f1331c5" + integrity sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A== + +"@rollup/rollup-win32-x64-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz#601fffee719a1e8447f908aca97864eec23b2784" + integrity sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg== + +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^3.0.0", "@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== +"@sinonjs/fake-timers@^11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699" + integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== dependencies: "@sinonjs/commons" "^3.0.0" -"@swc/core-darwin-arm64@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.93.tgz#aefd94625451988286bebccb1c072bae0a36bcdb" - integrity sha512-gEKgk7FVIgltnIfDO6GntyuQBBlAYg5imHpRgLxB1zSI27ijVVkksc6QwISzFZAhKYaBWIsFSVeL9AYSziAF7A== - -"@swc/core-darwin-x64@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.93.tgz#18409c6effdf508ddf1ebccfa77d35aaa6cd72f0" - integrity sha512-ZQPxm/fXdDQtn3yrYSL/gFfA8OfZ5jTi33yFQq6vcg/Y8talpZ+MgdSlYM0FkLrZdMTYYTNFiuBQuuvkA+av+Q== - -"@swc/core-linux-arm-gnueabihf@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.93.tgz#23a97bc94a8b2f23fb6cc4bc9d8936899e5eeff5" - integrity sha512-OYFMMI2yV+aNe3wMgYhODxHdqUB/jrK0SEMHHS44GZpk8MuBXEF+Mcz4qjkY5Q1EH7KVQqXb/gVWwdgTHpjM2A== - -"@swc/core-linux-arm64-gnu@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.93.tgz#7a17406a7cf76a959a617626d5ee2634ae9afa26" - integrity sha512-BT4dT78odKnJMNiq5HdjBsv29CiIdcCcImAPxeFqAeFw1LL6gh9nzI8E96oWc+0lVT5lfhoesCk4Qm7J6bty8w== - -"@swc/core-linux-arm64-musl@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.93.tgz#a30be7780090afefd3b8706398418cbe1d23db49" - integrity sha512-yH5fWEl1bktouC0mhh0Chuxp7HEO4uCtS/ly1Vmf18gs6wZ8DOOkgAEVv2dNKIryy+Na++ljx4Ym7C8tSJTrLw== - -"@swc/core-linux-x64-gnu@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.93.tgz#41e903fd82e059952d16051b442cbe65ee5b8cb3" - integrity sha512-OFUdx64qvrGJhXKEyxosHxgoUVgba2ztYh7BnMiU5hP8lbI8G13W40J0SN3CmFQwPP30+3oEbW7LWzhKEaYjlg== - -"@swc/core-linux-x64-musl@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.93.tgz#0866807545c44eac9b3254b374310ad5e1c573f9" - integrity sha512-4B8lSRwEq1XYm6xhxHhvHmKAS7pUp1Q7E33NQ2TlmFhfKvCOh86qvThcjAOo57x8DRwmpvEVrqvpXtYagMN6Ig== - -"@swc/core-win32-arm64-msvc@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.93.tgz#c72411dea2fd4f62a832f71a6e15424d849e7610" - integrity sha512-BHShlxtkven8ZjjvZ5QR6sC5fZCJ9bMujEkiha6W4cBUTY7ce7qGFyHmQd+iPC85d9kD/0cCiX/Xez8u0BhO7w== - -"@swc/core-win32-ia32-msvc@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.93.tgz#05c2b031b976af4ef81f5073ee114254678a5d5d" - integrity sha512-nEwNWnz4JzYAK6asVvb92yeylfxMYih7eMQOnT7ZVlZN5ba9WF29xJ6kcQKs9HRH6MvWhz9+wRgv3FcjlU6HYA== - -"@swc/core-win32-x64-msvc@1.3.93": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.93.tgz#f8748b3fd1879f13084b1b0814edf328c662935c" - integrity sha512-jibQ0zUr4kwJaQVwgmH+svS04bYTPnPw/ZkNInzxS+wFAtzINBYcU8s2PMWbDb2NGYiRSEeoSGyAvS9H+24JFA== - -"@swc/core@^1.3.85": - version "1.3.93" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.93.tgz#be4282aa44deffb0e5081a2613bac00335600630" - integrity sha512-690GRr1wUGmGYZHk7fUduX/JUwViMF2o74mnZYIWEcJaCcd9MQfkhsxPBtjeg6tF+h266/Cf3RPYhsFBzzxXcA== - dependencies: - "@swc/counter" "^0.1.1" - "@swc/types" "^0.1.5" +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== + dependencies: + "@sinonjs/commons" "^2.0.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== + +"@swc/core-darwin-arm64@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.6.tgz#16deedb286caf7b4519d3e39f121e276bc573e72" + integrity sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ== + +"@swc/core-darwin-x64@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.7.6.tgz#d54cfa083d5bef0eb2a852568bbc6f6c5e5bae97" + integrity sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw== + +"@swc/core-linux-arm-gnueabihf@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.6.tgz#d92b5022f872c9da6b246a16b01ec074288b94b0" + integrity sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ== + +"@swc/core-linux-arm64-gnu@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.6.tgz#3e14000de714cefe097ee244498758f993bb0c81" + integrity sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg== + +"@swc/core-linux-arm64-musl@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.6.tgz#69edbe4b1f62e7d35fde180bd714ad23a6749c25" + integrity sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg== + +"@swc/core-linux-x64-gnu@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.6.tgz#b766e32e5e3549f7c0b83d7a798886810290fa5a" + integrity sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg== + +"@swc/core-linux-x64-musl@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.6.tgz#833b77654b48bf04b27263a798cc306d7c378192" + integrity sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw== + +"@swc/core-win32-arm64-msvc@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.6.tgz#0cc81edb4478863d1b64942329fadbc90321ffdf" + integrity sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA== + +"@swc/core-win32-ia32-msvc@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.6.tgz#47965dbf55f06d87f0bcd3198fca0b3515a7daf9" + integrity sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg== + +"@swc/core-win32-x64-msvc@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.6.tgz#89f0b151d3e8a9539f7915631759a406ebc14ed2" + integrity sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA== + +"@swc/core@^1.5.7": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.7.6.tgz#04fbe99660ac83d341c6447ff52e04706bea6f36" + integrity sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.12" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.93" - "@swc/core-darwin-x64" "1.3.93" - "@swc/core-linux-arm-gnueabihf" "1.3.93" - "@swc/core-linux-arm64-gnu" "1.3.93" - "@swc/core-linux-arm64-musl" "1.3.93" - "@swc/core-linux-x64-gnu" "1.3.93" - "@swc/core-linux-x64-musl" "1.3.93" - "@swc/core-win32-arm64-msvc" "1.3.93" - "@swc/core-win32-ia32-msvc" "1.3.93" - "@swc/core-win32-x64-msvc" "1.3.93" - -"@swc/counter@^0.1.1": - version "0.1.2" - resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz" - integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw== + "@swc/core-darwin-arm64" "1.7.6" + "@swc/core-darwin-x64" "1.7.6" + "@swc/core-linux-arm-gnueabihf" "1.7.6" + "@swc/core-linux-arm64-gnu" "1.7.6" + "@swc/core-linux-arm64-musl" "1.7.6" + "@swc/core-linux-x64-gnu" "1.7.6" + "@swc/core-linux-x64-musl" "1.7.6" + "@swc/core-win32-arm64-msvc" "1.7.6" + "@swc/core-win32-ia32-msvc" "1.7.6" + "@swc/core-win32-x64-msvc" "1.7.6" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== "@swc/helpers@0.5.2": version "0.5.2" @@ -2273,15 +2241,22 @@ dependencies: tslib "^2.4.0" -"@swc/types@^0.1.5": - version "0.1.5" - resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz" - integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw== +"@swc/types@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.12.tgz#7f632c06ab4092ce0ebd046ed77ff7557442282f" + integrity sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA== + dependencies: + "@swc/counter" "^0.1.3" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== "@tsconfig/node12@^1.0.7": version "1.0.11" @@ -2299,14 +2274,14 @@ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@types/babel-types@*", "@types/babel-types@^7.0.0": - version "7.0.12" - resolved "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.12.tgz" - integrity sha512-HKFKGgwbKpfvjPuEKveybTYHUTSsbBRS72aLI7Gp1X/egZlgtXzmvCqBrmoFdbsh7U7CsLYFmULNIt7nmS89xw== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.15.tgz#11fb1ab5a4f984d00d1c80a768f6fb8d59f96966" + integrity sha512-JUgfZHUOMbtjopxiOQaaF+Uovk5wpDqpXR+XLWiOivCWSy1FccO30lvNNpCt8geFwq8VmGT2y9OMkOpA0g5O5g== -"@types/babel__core@^7.1.14", "@types/babel__core@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz" - integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -2314,104 +2289,102 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__generator@*": - version "7.6.5" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz" - integrity sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__generator@^7.6.6": - version "7.6.6" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.6.tgz#676f89f67dc8ddaae923f70ebc5f1fa800c031a8" - integrity sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w== +"@types/babel__generator@*", "@types/babel__generator@^7.6.6": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.2" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz" - integrity sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.2" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz" - integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== +"@types/babel__traverse@*": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== dependencies: "@babel/types" "^7.20.7" "@types/babylon@^6.16.2": - version "6.16.7" - resolved "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.7.tgz" - integrity sha512-8wz9tFZVI35Bnyq5qFQ/+yAVLRuU5xglYKmWSKT2KC+QL3QtbTnBK4LbnATb2J762w/tA2A/3XSQ3WsPlu+3bA== + version "6.16.9" + resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.9.tgz#7abf03f6591a921fe3171af91433077cd2666e36" + integrity sha512-sEKyxMVEowhcr8WLfN0jJYe4gS4Z9KC2DGz0vqfC7+MXFbmvOF7jSjALC77thvAO2TLgFUPa9vDeOak+AcUrZA== dependencies: "@types/babel-types" "*" "@types/body-parser@*": - version "1.19.3" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz" - integrity sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ== + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.11" - resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.11.tgz" - integrity sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg== + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" +"@types/chai@^4.3.16": + version "4.3.17" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.17.tgz#9195f9d242f2ac3b429908864b6b871a8f73f489" + integrity sha512-zmZ21EWzR71B4Sscphjief5djsLre50M6lI622OSySTmn9DB3j+C3kWroHfBQWXbOBwbgg/M8CG/hUxDLIloow== + "@types/concat-stream@^1.6.0": version "1.6.1" - resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.1" - resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz" - integrity sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.36" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz" - integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/eslint-scope@^3.7.3": - version "3.7.5" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.5.tgz" - integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.44.4" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.4.tgz" - integrity sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA== + version "9.6.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff" + integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz" - integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== +"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.37" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz" - integrity sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg== + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2419,9 +2392,9 @@ "@types/send" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.19" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.19.tgz" - integrity sha512-UtOfBtzN9OvpZPPbnnYunfjM7XCI4jyk1NvnFhTVz5krYAnW4o5DCoIekvms+8ApqhB4+9wSge1kBijdfTSmfg== + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -2430,182 +2403,148 @@ "@types/form-data@0.0.33": version "0.0.33" - resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== dependencies: "@types/node" "*" -"@types/graceful-fs@^4.1.3": - version "4.1.7" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz" - integrity sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw== - dependencies: - "@types/node" "*" - "@types/html-minifier-terser@^6.0.0": version "6.1.0" - resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-errors@*": - version "2.0.2" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz" - integrity sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== "@types/http-proxy@^1.17.8": - version "1.17.12" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.12.tgz" - integrity sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw== + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" - integrity sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz" - integrity sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.5": - version "29.5.5" - resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz" - integrity sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" +"@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.13" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz" - integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/linkify-it@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz" - integrity sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g== + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== "@types/markdown-it@^12.2.3": version "12.2.3" - resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== dependencies: "@types/linkify-it" "*" "@types/mdurl" "*" "@types/mdurl@*": - version "1.0.3" - resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.3.tgz" - integrity sha512-T5k6kTXak79gwmIOaDF2UUQXFbnBE0zBUzF20pz7wDYu0RQMzWg+Ml/Pz50214NsFHBITkoi5VtdjFZnJ2ijjA== - -"@types/mime@*", "@types/mime@^3.0.1": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.2.tgz" - integrity sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ== + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== "@types/mime@^1": - version "1.3.3" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz" - integrity sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/mime@^3.0.1": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== "@types/minimist@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.3.tgz#dd249cef80c6fff2ba6a0d4e5beca913e04e25f8" - integrity sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/mocha@^10.0.7": + version "10.0.7" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.7.tgz#4c620090f28ca7f905a94b706f74dc5b57b44f2f" + integrity sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" "@types/node@*": - version "20.8.5" - resolved "https://registry.npmjs.org/@types/node/-/node-20.8.5.tgz" - integrity sha512-SPlobFgbidfIeOYlzXiEjSYeIJiOCthv+9tSQVpvk4PAdIIc+2SmjNVzWXk9t0Y7dl73Zdf+OgXKHX9XtkqUpw== + version "22.1.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b" + integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw== dependencies: - undici-types "~5.25.1" + undici-types "~6.13.0" "@types/node@^10.0.3": version "10.17.60" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^20", "@types/node@^20.8.7": - version "20.8.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.10.tgz#a5448b895c753ae929c26ce85cab557c6d4a365e" - integrity sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w== + version "20.14.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.14.tgz#6b655d4a88623b0edb98300bb9dd2107225f885e" + integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ== dependencies: undici-types "~5.26.4" "@types/node@^8.0.0": version "8.10.66" - resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== "@types/prompts@^2.4.4": - version "2.4.6" - resolved "https://registry.yarnpkg.com/@types/prompts/-/prompts-2.4.6.tgz#5c14794e7c8850b1d633a17a052b724bd2b019a3" - integrity sha512-hIwnDhvsTV6XwAPo1zNy2MTelR0JmCxklIRsVxwROHLGaf6LfB+sGDkB9n+aqV4gXDz8z5MnlAz4CEC9wQDRsw== + version "2.4.9" + resolved "https://registry.yarnpkg.com/@types/prompts/-/prompts-2.4.9.tgz#8775a31e40ad227af511aa0d7f19a044ccbd371e" + integrity sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA== dependencies: "@types/node" "*" kleur "^3.0.3" "@types/prop-types@*": - version "15.7.8" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz" - integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ== + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== "@types/qs@*", "@types/qs@^6.2.31": - version "6.9.8" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz" - integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== "@types/range-parser@*": - version "1.2.5" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz" - integrity sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA== - -"@types/react-dom@^18": - version "18.2.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.14.tgz#c01ba40e5bb57fc1dc41569bb3ccdb19eab1c539" - integrity sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ== - dependencies: - "@types/react" "*" + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@^18.0.11", "@types/react-dom@^18.2.7": - version "18.2.13" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.13.tgz" - integrity sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw== +"@types/react-dom@^18", "@types/react-dom@^18.0.11", "@types/react-dom@^18.2.7": + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.0.37", "@types/react@^18.2.15": - version "18.2.28" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz" - integrity sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^18": - version "18.2.33" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.33.tgz#055356243dc4350a9ee6c6a2c07c5cae12e38877" - integrity sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg== +"@types/react@*", "@types/react@^18", "@types/react@^18.0.37", "@types/react@^18.2.15": + version "18.3.3" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" + integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" "@types/resolve@1.20.2": @@ -2615,77 +2554,67 @@ "@types/retry@0.12.0": version "0.12.0" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/scheduler@*": - version "0.16.4" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz" - integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ== - "@types/semver@^7.3.12": - version "7.5.3" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz" - integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@types/send@*": - version "0.17.2" - resolved "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz" - integrity sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw== + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.2" - resolved "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.2.tgz" - integrity sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig== + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.3" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz" - integrity sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg== + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== dependencies: "@types/http-errors" "*" - "@types/mime" "*" "@types/node" "*" + "@types/send" "*" -"@types/sockjs@^0.3.33": - version "0.3.34" - resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.34.tgz" - integrity sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g== +"@types/sinon@^17.0.3": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" + integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== dependencies: - "@types/node" "*" + "@types/sinonjs__fake-timers" "*" -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/sinonjs__fake-timers@*": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz#5fd3592ff10c1e9695d377020c033116cc2889f2" + integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== -"@types/ws@^8.5.5": - version "8.5.7" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.7.tgz" - integrity sha512-6UrLjiDUvn40CMrAubXuIVtj2PEfKDffJS7ychvnPU44j+KVeXmdHHTgqcM/dxLUTHxlXHiFM8Skmb8ozGdTnQ== +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" -"@types/yargs-parser@*": - version "21.0.1" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz" - integrity sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ== - -"@types/yargs@^17.0.8": - version "17.0.28" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.28.tgz#d106e4301fbacde3d1796ab27374dd16588ec851" - integrity sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw== +"@types/ws@^8.5.5": + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== dependencies: - "@types/yargs-parser" "*" + "@types/node" "*" "@typescript-eslint/eslint-plugin@^5.41.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== dependencies: "@eslint-community/regexpp" "^4.4.0" @@ -2701,7 +2630,7 @@ "@typescript-eslint/parser@^5.41.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: "@typescript-eslint/scope-manager" "5.62.0" @@ -2711,7 +2640,7 @@ "@typescript-eslint/scope-manager@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: "@typescript-eslint/types" "5.62.0" @@ -2719,7 +2648,7 @@ "@typescript-eslint/type-utils@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: "@typescript-eslint/typescript-estree" "5.62.0" @@ -2729,12 +2658,12 @@ "@typescript-eslint/types@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: "@typescript-eslint/types" "5.62.0" @@ -2747,7 +2676,7 @@ "@typescript-eslint/utils@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -2761,16 +2690,16 @@ "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@uiw/codemirror-extensions-basic-setup@4.21.20": - version "4.21.20" - resolved "https://registry.yarnpkg.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.21.20.tgz#9dbfab401a3168312c3f1d908b0f9b280410c206" - integrity sha512-Wyi9q4uw0xGYd/tJ6bULG7tkCLqcUsQT0AQBfCDtnkV3LdiLU0LceTrzJoHJyIKSHsKDJxFQxa1qg3QLt4gIUA== +"@uiw/codemirror-extensions-basic-setup@4.23.0": + version "4.23.0" + resolved "https://registry.yarnpkg.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.0.tgz#c3c181153335c208a25d59b8ecbc7fc87fe85356" + integrity sha512-+k5nkRpUWGaHr1JWT8jcKsVewlXw5qBgSopm9LW8fZ6KnSNZBycz8kHxh0+WSvckmXEESGptkIsb7dlkmJT/hQ== dependencies: "@codemirror/autocomplete" "^6.0.0" "@codemirror/commands" "^6.0.0" @@ -2781,63 +2710,69 @@ "@codemirror/view" "^6.0.0" "@uiw/codemirror-theme-noctis-lilac@^4.21.8": - version "4.21.20" - resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-noctis-lilac/-/codemirror-theme-noctis-lilac-4.21.20.tgz#2949015387ce18d51d37b13b1297a543b0d96102" - integrity sha512-R1hPkilSvcQcL4JS1BGGIBxCzexzXijDcSQg6Bq1o4ovsbDMoE8c+cpA4JTj0NE9yhcG4i3YEj9XFHzFqThrNA== + version "4.23.0" + resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-noctis-lilac/-/codemirror-theme-noctis-lilac-4.23.0.tgz#59e832129f7bb493019d6400c1de66a95a3764dd" + integrity sha512-oqPy5l4iXaOfF2FShmelfwG9DtyzcwZbNr1WjzHYWvtGxD2RAtoKE0qOBOekCBIW1EeaSPKU7ZfvjdG7RsfAEA== dependencies: - "@uiw/codemirror-themes" "4.21.20" + "@uiw/codemirror-themes" "4.23.0" "@uiw/codemirror-theme-okaidia@^4.21.7": - version "4.21.20" - resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-okaidia/-/codemirror-theme-okaidia-4.21.20.tgz#545ab08a24b3b338660c5817ae837f5636002143" - integrity sha512-Gqlu7RJVQBUl6zkgTdtHAt+ZVt3vCiutA834FNqrY/nk+g5TT45Jpwzcyy+nUW3FiecT8WG1y+nkTH6dXdFRlQ== + version "4.23.0" + resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-okaidia/-/codemirror-theme-okaidia-4.23.0.tgz#672c5a22ee6f708c2de1438a917b8ec9d2bd0451" + integrity sha512-J0FGui+ekMfws1ulMWfAohYXYlxOA1r6aHFAMPcZ9/0Gs+bWMm0Imx/m4pA0wYRHwEzaP6qzOl0IwfTGc04QPA== dependencies: - "@uiw/codemirror-themes" "4.21.20" + "@uiw/codemirror-themes" "4.23.0" -"@uiw/codemirror-themes@4.21.20": - version "4.21.20" - resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.21.20.tgz#d7770af97a9240fb49b50e2f10e31080eac73972" - integrity sha512-/Ncc88v5RroeDAOfhao5lmkobmH4aJZqlSAJJTxXE7AzM85BjuCnnUYXVT7VFeEslFtfTiIgriyLmJQoGOi2mA== +"@uiw/codemirror-themes@4.23.0": + version "4.23.0" + resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.23.0.tgz#cc5b5242d3e67caf49c2a9120e804b16ad79f86d" + integrity sha512-9fiji9xooZyBQozR1i6iTr56YP7j/Dr/VgsNWbqf5Szv+g+4WM1iZuiDGwNXmFMWX8gbkDzp6ASE21VCPSofWw== dependencies: "@codemirror/language" "^6.0.0" "@codemirror/state" "^6.0.0" "@codemirror/view" "^6.0.0" "@uiw/react-codemirror@^4.21.7": - version "4.21.20" - resolved "https://registry.yarnpkg.com/@uiw/react-codemirror/-/react-codemirror-4.21.20.tgz#bbfb57676c9939d880de6c7223c2ed7410271145" - integrity sha512-PdyewPvNXnvT3JHj888yjpbWsAGw5qlxW6w1sMdsqJ0R6vPV++ob1iZXCGrM1FVpbqPK0DNfpXvjzp2gIr3lYw== + version "4.23.0" + resolved "https://registry.yarnpkg.com/@uiw/react-codemirror/-/react-codemirror-4.23.0.tgz#5eeadcd5de61213ad76ac3c772fffb7e5b54b465" + integrity sha512-MnqTXfgeLA3fsUUQjqjJgemEuNyoGALgsExVm0NQAllAAi1wfj+IoKFeK+h3XXMlTFRCFYOUh4AHDv0YXJLsOg== dependencies: "@babel/runtime" "^7.18.6" "@codemirror/commands" "^6.1.0" "@codemirror/state" "^6.1.1" "@codemirror/theme-one-dark" "^6.0.0" - "@uiw/codemirror-extensions-basic-setup" "4.21.20" + "@uiw/codemirror-extensions-basic-setup" "4.23.0" codemirror "^6.0.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@vitejs/plugin-react-swc@^3.0.0": - version "3.4.0" - resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.4.0.tgz" - integrity sha512-m7UaA4Uvz82N/0EOVpZL4XsFIakRqrFKeSNxa1FBLSXGvWrWRBwmZb4qxk+ZIVAZcW3c3dn5YosomDgx62XWcQ== + version "3.7.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz#e456c0a6d7f562268e1d231af9ac46b86ef47d88" + integrity sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA== dependencies: - "@swc/core" "^1.3.85" + "@swc/core" "^1.5.7" "@vitejs/plugin-react@^4.0.4": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.1.0.tgz#e4f56f46fd737c5d386bb1f1ade86ba275fe09bd" - integrity sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ== + version "4.3.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz#d0be6594051ded8957df555ff07a991fb618b48e" + integrity sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg== dependencies: - "@babel/core" "^7.22.20" - "@babel/plugin-transform-react-jsx-self" "^7.22.5" - "@babel/plugin-transform-react-jsx-source" "^7.22.5" - "@types/babel__core" "^7.20.2" - react-refresh "^0.14.0" + "@babel/core" "^7.24.5" + "@babel/plugin-transform-react-jsx-self" "^7.24.5" + "@babel/plugin-transform-react-jsx-source" "^7.24.1" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.2" "@wasm-tool/rollup-plugin-rust@^2.4.2": - version "2.4.4" - resolved "https://registry.npmjs.org/@wasm-tool/rollup-plugin-rust/-/rollup-plugin-rust-2.4.4.tgz" - integrity sha512-gfc9fDwK6Hm+jKR2EXFBxQ7HHXJTwhAkEVdVeQG1GIsJboklc4cPycTqrPioD2HbVvWfMgWWdTWiG2iWh2R8qA== + version "2.4.5" + resolved "https://registry.yarnpkg.com/@wasm-tool/rollup-plugin-rust/-/rollup-plugin-rust-2.4.5.tgz#203e0be9196ad278533b0996bf29c6dae5b468ec" + integrity sha512-rrgaHm/TmiOCKkt9mz8LMQMzigyn2xLHNZDtJAAv8HDrQt9QbksUkf+mYmsnQDF7gFmWtOEEJE5/7lfYuL0fEQ== dependencies: + "@iarna/toml" "^2.2.5" "@rollup/pluginutils" "^5.0.2" binaryen "^111.0.0" chalk "^4.0.0" @@ -2845,45 +2780,44 @@ node-fetch "^2.0.0" rimraf "^5.0.0" tar "^6.1.11" - toml "^3.0.0" "@web/rollup-plugin-import-meta-assets@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@web/rollup-plugin-import-meta-assets/-/rollup-plugin-import-meta-assets-2.1.0.tgz#5f681884e44e5b112e0fd08f54ad10dbe063b1dd" - integrity sha512-tfjvL2RWe7NMp/87JVO+BkyA5RXYogtyO9iqe9cLJIFhu05C/PN5Yavd9ra5eye3wjFEguvAZ1jBY3mdqDrp/Q== + version "2.2.1" + resolved "https://registry.yarnpkg.com/@web/rollup-plugin-import-meta-assets/-/rollup-plugin-import-meta-assets-2.2.1.tgz#cdf804ad7aef5a22a00b2bbbca66024ac31e4ebc" + integrity sha512-nG7nUQqSJWdl63pBTmnIElJuFi2V1x9eVje19BJuFvfz266jSmZtX3m30ncb7fOJxQt3/ge+FVL8tuNI9+63dQ== dependencies: - "@rollup/plugin-dynamic-import-vars" "^2.0.5" + "@rollup/plugin-dynamic-import-vars" "^2.1.0" "@rollup/pluginutils" "^5.0.2" estree-walker "^2.0.2" globby "^13.2.2" magic-string "^0.30.0" -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== dependencies: "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/floating-point-hex-parser@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== "@webassemblyjs/helper-api-error@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: "@webassemblyjs/floating-point-hex-parser" "1.11.6" @@ -2892,195 +2826,192 @@ "@webassemblyjs/helper-wasm-bytecode@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/ieee754@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.11.6": version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-api-error" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^2.1.1": version "2.1.1" - resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== "@webpack-cli/info@^2.0.2": version "2.0.2" - resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== "@webpack-cli/serve@^2.0.5": version "2.0.5" - resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" negotiator "0.6.3" ace-builds@^1.4.13: - version "1.30.0" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.30.0.tgz#e2f8ba89d81f642138296491a061d3c709a949a8" - integrity sha512-ZC+G1ozrrVCVL/KPkeU9R7TEwYeNJUYRrjnEvNhF8r2+WR2tkcCjmduL8M6D3abIdf/16ccEXHtpoRBhAnTyCw== + version "1.35.4" + resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.35.4.tgz#f41d7ef57c3a7d424cd7e3300bef0cbef905c84f" + integrity sha512-r0KQclhZ/uk5a4zOqRYQkJuQuu4vFMiA6VTj54Tk4nI1TUR3iEMMppZkWbNoWEgWwv4ciDloObb9Rf4V55Qgjw== acorn-globals@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" integrity sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw== dependencies: acorn "^4.0.4" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" - integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" acorn@^3.1.0: version "3.3.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" integrity sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw== acorn@^4.0.4, acorn@~4.0.2: version "4.0.13" - resolved "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug== -acorn@^8.10.0, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== - -acorn@^8.4.1: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== ajv-formats@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv-keywords@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== dependencies: fast-deep-equal "^3.1.3" ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -3089,127 +3020,121 @@ ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.9.0: - version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" integrity sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg== dependencies: kind-of "^3.0.2" longest "^1.0.1" repeat-string "^1.5.2" -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-html-community@^0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== antd@^5.6.4: - version "5.10.1" - resolved "https://registry.yarnpkg.com/antd/-/antd-5.10.1.tgz#94df56c63b8d12e40b3056eb8b6ac82cce3be9e3" - integrity sha512-alcBmeH4oAdmEdBs6EORH3onRFRjGYRkWtVjPyJxlTIfLILb/+S5Y+ZqisV3AobC8mlj6T3RV8aKG9ic6PgtzQ== - dependencies: - "@ant-design/colors" "^7.0.0" - "@ant-design/cssinjs" "^1.17.2" - "@ant-design/icons" "^5.2.6" - "@ant-design/react-slick" "~1.0.2" - "@babel/runtime" "^7.18.3" + version "5.20.0" + resolved "https://registry.yarnpkg.com/antd/-/antd-5.20.0.tgz#32f4059f77ba3b5af6e5d21b26892bdccb8720f3" + integrity sha512-wWCFzbry3hov7k8gqhPR+FzD6EkWlhBbGD9mYOSIDoYRGMRqueTh2+2jfU1voHucmwcxDwzU7iwZDU2+PCXZdA== + dependencies: + "@ant-design/colors" "^7.1.0" + "@ant-design/cssinjs" "^1.21.0" + "@ant-design/cssinjs-utils" "^1.0.3" + "@ant-design/icons" "^5.4.0" + "@ant-design/react-slick" "~1.1.2" + "@babel/runtime" "^7.24.8" "@ctrl/tinycolor" "^3.6.1" - "@rc-component/color-picker" "~1.4.1" + "@rc-component/color-picker" "~2.0.0" "@rc-component/mutate-observer" "^1.1.0" - "@rc-component/tour" "~1.10.0" - "@rc-component/trigger" "^1.17.0" - classnames "^2.2.6" - copy-to-clipboard "^3.2.0" - dayjs "^1.11.1" - qrcode.react "^3.1.0" - rc-cascader "~3.18.1" - rc-checkbox "~3.1.0" - rc-collapse "~3.7.1" - rc-dialog "~9.3.3" - rc-drawer "~6.5.2" - rc-dropdown "~4.1.0" - rc-field-form "~1.39.0" - rc-image "~7.3.1" - rc-input "~1.2.1" - rc-input-number "~8.1.0" - rc-mentions "~2.8.0" - rc-menu "~9.12.2" - rc-motion "^2.9.0" - rc-notification "~5.2.0" - rc-pagination "~3.6.1" - rc-picker "~3.14.5" - rc-progress "~3.5.1" - rc-rate "~2.12.0" - rc-resize-observer "^1.3.1" - rc-segmented "~2.2.2" - rc-select "~14.9.1" - rc-slider "~10.3.0" + "@rc-component/qrcode" "~1.0.0" + "@rc-component/tour" "~1.15.0" + "@rc-component/trigger" "^2.2.0" + classnames "^2.5.1" + copy-to-clipboard "^3.3.3" + dayjs "^1.11.11" + rc-cascader "~3.27.0" + rc-checkbox "~3.3.0" + rc-collapse "~3.7.3" + rc-dialog "~9.5.2" + rc-drawer "~7.2.0" + rc-dropdown "~4.2.0" + rc-field-form "~2.2.1" + rc-image "~7.9.0" + rc-input "~1.6.2" + rc-input-number "~9.2.0" + rc-mentions "~2.15.0" + rc-menu "~9.14.1" + rc-motion "^2.9.2" + rc-notification "~5.6.0" + rc-pagination "~4.2.0" + rc-picker "~4.6.11" + rc-progress "~4.0.0" + rc-rate "~2.13.0" + rc-resize-observer "^1.4.0" + rc-segmented "~2.3.0" + rc-select "~14.15.1" + rc-slider "~11.1.3" rc-steps "~6.0.1" rc-switch "~4.1.0" - rc-table "~7.34.4" - rc-tabs "~12.12.1" - rc-textarea "~1.4.0" - rc-tooltip "~6.1.1" - rc-tree "~5.7.12" - rc-tree-select "~5.13.0" - rc-upload "~4.3.5" - rc-util "^5.38.0" - scroll-into-view-if-needed "^3.0.3" - throttle-debounce "^5.0.0" - -anymatch@^3.0.3, anymatch@~3.1.2: + rc-table "~7.45.7" + rc-tabs "~15.1.1" + rc-textarea "~1.8.1" + rc-tooltip "~6.2.0" + rc-tree "~5.8.8" + rc-tree-select "~5.22.1" + rc-upload "~4.6.0" + rc-util "^5.43.0" + scroll-into-view-if-needed "^3.1.0" + throttle-debounce "^5.0.2" + +anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -3220,83 +3145,85 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-includes@^3.1.6: - version "3.1.7" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== +array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" is-string "^1.0.7" array-tree-filter@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== -array.prototype.findlastindex@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + 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" + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + 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" -array.prototype.flat@^1.3.1: +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" @@ -3304,9 +3231,9 @@ array.prototype.flat@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" @@ -3314,43 +3241,49 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.tosorted@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz" - integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + 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" asap@~2.0.3, asap@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + ast-types@0.12.4, ast-types@^0.12.2: version "0.12.4" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.12.4.tgz" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.12.4.tgz#71ce6383800f24efc9a1a3308f3a6e420a0974d1" integrity sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw== ast-types@^0.14.2: version "0.14.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== dependencies: tslib "^2.0.1" @@ -3360,34 +3293,36 @@ astring@^1.8.5: resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== -async-validator@^4.1.0: - version "4.2.5" - resolved "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz" - integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== - async@^2.6.1: version "2.6.4" - resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -asynciterator.prototype@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz" - integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== - dependencies: - has-symbols "^1.0.3" - asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +autoprefixer@^10.4.19: + version "10.4.20" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + dependencies: + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.1" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" axios@^0.26.1: version "0.26.1" @@ -3397,30 +3332,17 @@ axios@^0.26.1: follow-redirects "^1.14.8" axios@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.0.tgz#f1e5292f26b2fd5c2e66876adc5b06cdbd7d2102" - integrity sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg== + version "1.7.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.3.tgz#a1125f2faf702bc8e8f2104ec3a76fab40257d85" + integrity sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-loader@^8.2.3: version "8.3.0" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== dependencies: find-cache-dir "^3.3.1" @@ -3428,80 +3350,33 @@ babel-loader@^8.2.3: make-dir "^3.1.0" schema-utils "^2.6.5" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.6.2" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.5" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz" - integrity sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.32.2" - -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" + "@babel/helper-define-polyfill-provider" "^0.6.2" babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" @@ -3509,7 +3384,7 @@ babel-runtime@^6.26.0: babel-types@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== dependencies: babel-runtime "^6.26.0" @@ -3519,23 +3394,23 @@ babel-types@^6.26.0: babylon@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== batch@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== better-docs@^2.7.2: - version "2.7.2" - resolved "https://registry.npmjs.org/better-docs/-/better-docs-2.7.2.tgz" - integrity sha512-aIOsGhhcTIDAJfBTABIPDs3q98dfNF85yUwmKShXb3ZG6e7s+ojBePiDqvFwy/MpnjYwuSbuzkbEv4iPWcSuTQ== + version "2.7.3" + resolved "https://registry.yarnpkg.com/better-docs/-/better-docs-2.7.3.tgz#bdeec1b24514bc22562af2a277c2cf527abbe726" + integrity sha512-OEk9e7RQUQbo1DmVo0mdsALZ+mT0SwIen7/DGnN4xKNktXKgz1j7+KQ2pObNHHVSFGu8YMQW/Ig1v6eiTkdnbw== dependencies: brace "^0.11.1" react-ace "^9.5.0" @@ -3548,13 +3423,13 @@ better-docs@^2.7.2: big.js@^5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== binary-install@^1.0.1: version "1.1.0" @@ -3567,21 +3442,21 @@ binary-install@^1.0.1: binaryen@^111.0.0: version "111.0.0" - resolved "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0.tgz" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-111.0.0.tgz#dd970a11d8fe61959f77d609dfee3c19ad80b80a" integrity sha512-PEXOSHFO85aj1aP4t+KGzvxQ00qXbjCysWlsDjlGkP1e9owNiYdpEkLej21Ax8LDD7xJ01rEmJDqZ/JPoW2GXw== bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -3589,28 +3464,26 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -3618,50 +3491,41 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" brace@^0.11.0, brace@^0.11.1: version "0.11.1" - resolved "https://registry.npmjs.org/brace/-/brace-0.11.1.tgz" + resolved "https://registry.yarnpkg.com/brace/-/brace-0.11.1.tgz#4896fcc9d544eef45f4bb7660db320d3b379fe58" integrity sha512-Fc8Ne62jJlKHiG/ajlonC4Sd66Pq68fFwK4ihJGNZpGqboc324SQk+lRvMzpPRuJOmfrJefdG8/7JdWX4bzJ2Q== -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.14.5, browserslist@^4.21.9, browserslist@^4.22.1: - version "4.22.1" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" - update-browserslist-db "^1.0.13" + fill-range "^7.1.1" -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" +browser-stdout@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== +browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== dependencies: - node-int64 "^0.4.0" + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== builtin-modules@^3.3.0: @@ -3678,17 +3542,17 @@ busboy@1.6.0: bytes@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== bytes@3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== c8@^7.6.0: version "7.14.0" - resolved "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.14.0.tgz#f368184c73b125a80565e9ab2396ff0be4d732f3" integrity sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw== dependencies: "@bcoe/v8-coverage" "^0.2.3" @@ -3704,22 +3568,25 @@ c8@^7.6.0: yargs "^16.2.0" yargs-parser "^20.2.9" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + 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" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: pascal-case "^3.1.2" @@ -3727,61 +3594,72 @@ camel-case@^4.1.2: camelcase@^1.0.2: version "1.2.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: +camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001406: - version "1.0.30001559" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz#95a982440d3d314c471db68d02664fb7536c5a30" - integrity sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA== +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" -caniuse-lite@^1.0.30001541: - version "1.0.30001547" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz" - integrity sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001646: + version "1.0.30001649" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001649.tgz#3ec700309ca0da2b0d3d5fb03c411b191761c992" + integrity sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== catharsis@^0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== dependencies: lodash "^4.17.15" center-align@^0.1.1: version "0.1.3" - resolved "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" integrity sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ== dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" +chai@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" + integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -3792,22 +3670,22 @@ chalk@^5.2.0: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - character-parser@^2.1.1: version "2.2.0" - resolved "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== dependencies: is-regex "^1.0.3" +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -3821,61 +3699,50 @@ chokidar@^3.5.3: chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== -citty@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.4.tgz#91091be06ae4951dffa42fd443de7fe72245f2e0" - integrity sha512-Q3bK1huLxzQrvj7hImJ7Z1vKYJRPQCDnd0EjXfHMidcjecGOMuLrmuQmtWmFkuKLcMThlGh1yCKG8IEc6VeNXQ== +citty@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== dependencies: consola "^3.2.3" -cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - -classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== +classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2, classnames@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== clean-css@^4.1.11: version "4.2.4" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" clean-css@^5.2.2, clean-css@~5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== dependencies: source-map "~0.6.0" clean-jsdoc-theme@^4.1.8: - version "4.2.13" - resolved "https://registry.npmjs.org/clean-jsdoc-theme/-/clean-jsdoc-theme-4.2.13.tgz" - integrity sha512-sVcRdpXPpSpQKJZiber1N5h74/j0BFyf6QermnIWQakXRd6piOOqYm8a6jiY06EyrpJh30mcHIx/AEhJ1xAMqQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/clean-jsdoc-theme/-/clean-jsdoc-theme-4.3.0.tgz#6cd55ff7b25ff6d1719ae0ff9f1cdb5ef07bf640" + integrity sha512-QMrBdZ2KdPt6V2Ytg7dIt0/q32U4COpxvR0UDhPjRRKRL0o0MvRCR5YpY37/4rPF1SI1AYEKAWyof7ndCb/dzA== dependencies: "@jsdoc/salty" "^0.2.4" fs-extra "^10.1.0" html-minifier-terser "^7.2.0" klaw-sync "^6.0.0" lodash "^4.17.21" - nanoid "^3.3.4" showdown "^2.1.0" client-only@0.0.1: @@ -3885,7 +3752,7 @@ client-only@0.0.1: cliui@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" integrity sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA== dependencies: center-align "^0.1.1" @@ -3894,39 +3761,25 @@ cliui@^2.1.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" kind-of "^6.0.2" shallow-clone "^3.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - codemirror@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29" integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== dependencies: "@codemirror/autocomplete" "^6.0.0" @@ -3937,87 +3790,92 @@ codemirror@^6.0.0: "@codemirror/state" "^6.0.0" "@codemirror/view" "^6.0.0" -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + colorette@^2.0.10, colorette@^2.0.14: version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combined-stream@^1.0.6, combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" comlink@^4.4.1: version "4.4.1" - resolved "https://registry.npmjs.org/comlink/-/comlink-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/comlink/-/comlink-4.4.1.tgz#e568b8e86410b809e8600eb2cf40c189371ef981" integrity sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q== commander@^10.0.0, commander@^10.0.1: version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^8.3.0: version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commander@^9.0.0: version "9.5.0" - resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compressible@~2.0.16: version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" @@ -4030,17 +3888,17 @@ compression@^1.7.4: compute-scroll-into-view@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87" integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -4048,9 +3906,14 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" +confbox@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" + integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== + connect-history-api-fallback@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== consola@^3.0.2, consola@^3.2.3: @@ -4060,7 +3923,7 @@ consola@^3.0.2, consola@^3.2.3: constantinople@^3.0.1, constantinople@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647" integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw== dependencies: "@types/babel-types" "^7.0.0" @@ -4070,41 +3933,41 @@ constantinople@^3.0.1, constantinople@^3.1.2: content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: +content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== -copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: +copy-to-clipboard@^3.3.1, copy-to-clipboard@^3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" copy-webpack-plugin@^11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== dependencies: fast-glob "^3.2.11" @@ -4114,26 +3977,26 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.31.0, core-js-compat@^3.32.2: - version "3.33.0" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz" - integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.0.tgz#d93393b1aa346b6ee683377b0c31172ccfe607aa" + integrity sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A== dependencies: - browserslist "^4.22.1" + browserslist "^4.23.3" core-js@^2.4.0: version "2.6.12" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cpr@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/cpr/-/cpr-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5" integrity sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA== dependencies: graceful-fs "^4.1.5" @@ -4141,19 +4004,6 @@ cpr@^3.0.1: mkdirp "~0.5.1" rimraf "^2.5.4" -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -4161,35 +4011,40 @@ create-require@^1.1.0: crelt@^1.0.5: version "1.0.6" - resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" +css-declaration-sorter@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" + integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + css-loader@^6.6.0: - version "6.8.1" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz" - integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== + version "6.11.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.21" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.3" - postcss-modules-scope "^3.0.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" - semver "^7.3.8" + semver "^7.5.4" css-select@^4.1.3: version "4.3.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" @@ -4198,235 +4053,360 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" -css-what@^6.0.1: +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.0.10, csstype@^3.0.2: - version "3.1.2" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +cssnano-preset-default@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.4.tgz#9cfcd25f85bfedc84367b881dad56b75a0f976b5" + integrity sha512-jQ6zY9GAomQX7/YNLibMEsRZguqMUGuupXcEk2zZ+p3GUxwCAsobqPYE62VrJ9qZ0l9ltrv2rgjwZPBIFIjYtw== + dependencies: + browserslist "^4.23.1" + css-declaration-sorter "^7.2.0" + cssnano-utils "^5.0.0" + postcss-calc "^10.0.0" + postcss-colormin "^7.0.1" + postcss-convert-values "^7.0.2" + postcss-discard-comments "^7.0.1" + postcss-discard-duplicates "^7.0.0" + postcss-discard-empty "^7.0.0" + postcss-discard-overridden "^7.0.0" + postcss-merge-longhand "^7.0.2" + postcss-merge-rules "^7.0.2" + postcss-minify-font-values "^7.0.0" + postcss-minify-gradients "^7.0.0" + postcss-minify-params "^7.0.1" + postcss-minify-selectors "^7.0.2" + postcss-normalize-charset "^7.0.0" + postcss-normalize-display-values "^7.0.0" + postcss-normalize-positions "^7.0.0" + postcss-normalize-repeat-style "^7.0.0" + postcss-normalize-string "^7.0.0" + postcss-normalize-timing-functions "^7.0.0" + postcss-normalize-unicode "^7.0.1" + postcss-normalize-url "^7.0.0" + postcss-normalize-whitespace "^7.0.0" + postcss-ordered-values "^7.0.1" + postcss-reduce-initial "^7.0.1" + postcss-reduce-transforms "^7.0.0" + postcss-svgo "^7.0.1" + postcss-unique-selectors "^7.0.1" + +cssnano-utils@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-5.0.0.tgz#b53a0343dd5d21012911882db6ae7d2eae0e3687" + integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== + +cssnano@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.4.tgz#13a4fb4dd14f3b1ee0cd51e6404ae4656f8ad9a0" + integrity sha512-rQgpZra72iFjiheNreXn77q1haS2GEy69zCMbu4cpXCFPMQF+D4Ik5V7ktMzUF/sA7xCIgcqHwGPnCD+0a1vHg== + dependencies: + cssnano-preset-default "^7.0.4" + lilconfig "^3.1.2" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" -dayjs@^1.11.1: - version "1.11.10" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" - integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== +dayjs@^1.11.11: + version "1.11.12" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" + integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== de-indent@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== debug@2.6.9: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.2.7: version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" decamelize@^1.0.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-gateway@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: execa "^5.0.0" -define-data-property@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz" - integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - get-intrinsic "^1.2.1" + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c" - integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== +defu@^6.1.2, defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== depd@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== destroy@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - detect-node@^2.0.4: version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== diff-match-patch@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - dns-packet@^5.2.2: version "5.6.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" doctypes@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== -dom-align@^1.7.0: - version "1.12.4" - resolved "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz" - integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== - dom-converter@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -domelementtype@^2.0.1, domelementtype@^2.2.0: +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -4434,173 +4414,187 @@ dot-case@^3.0.4: eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.535: - version "1.4.553" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.553.tgz" - integrity sha512-HiRdtyKS2+VhiXvjhMvvxiMC33FJJqTA5EB2YHgFZW6v7HkK4Q9Ahv2V7O2ZPgAjw+MyCJVMQvigj13H8t+wvA== +electron-to-chromium@^1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz#03bfdf422bdd2c05ee2657efedde21264a1a566b" + integrity sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA== email-addresses@^3.0.1: version "3.1.0" - resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb" integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg== -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -enhanced-resolve@^5.15.0: - version "5.15.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== +enhanced-resolve@^5.17.0: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.4.0: +entities@^4.2.0, entities@^4.4.0: version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== entities@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== envinfo@^7.7.3: - version "7.10.0" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1: - version "1.22.2" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" - integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" + version "7.13.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + 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.1" - get-symbol-description "^1.0.0" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" is-callable "^1.2.7" - is-negative-zero "^2.0.2" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" + is-shared-array-buffer "^1.0.3" is-string "^1.0.7" - is-typed-array "^1.1.12" + is-typed-array "^1.1.13" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" + 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.8" + 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.6" unbox-primitive "^1.0.2" - which-typed-array "^1.1.11" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-iterator-helpers@^1.0.12: - version "1.0.15" - resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz" - integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== +es-iterator-helpers@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== dependencies: - asynciterator.prototype "^1.0.0" - call-bind "^1.0.2" + call-bind "^1.0.7" define-properties "^1.2.1" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - function-bind "^1.1.1" - get-intrinsic "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" globalthis "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" has-symbols "^1.0.3" - internal-slot "^1.0.5" + internal-slot "^1.0.7" iterator.prototype "^1.1.2" - safe-array-concat "^1.0.1" + safe-array-concat "^1.1.2" es-module-lexer@^1.2.1: - version "1.3.1" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz" - integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" + es-errors "^1.3.0" -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== dependencies: - has "^1.0.3" + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -4635,9 +4629,9 @@ esbuild@^0.17.16: "@esbuild/win32-ia32" "0.17.19" "@esbuild/win32-x64" "0.17.19" -esbuild@^0.18.10, esbuild@^0.18.14: +esbuild@^0.18.10: version "0.18.20" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== optionalDependencies: "@esbuild/android-arm" "0.18.20" @@ -4663,39 +4657,69 @@ esbuild@^0.18.10, esbuild@^0.18.14: "@esbuild/win32-ia32" "0.18.20" "@esbuild/win32-x64" "0.18.20" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +esbuild@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" + integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.23.0" + "@esbuild/android-arm" "0.23.0" + "@esbuild/android-arm64" "0.23.0" + "@esbuild/android-x64" "0.23.0" + "@esbuild/darwin-arm64" "0.23.0" + "@esbuild/darwin-x64" "0.23.0" + "@esbuild/freebsd-arm64" "0.23.0" + "@esbuild/freebsd-x64" "0.23.0" + "@esbuild/linux-arm" "0.23.0" + "@esbuild/linux-arm64" "0.23.0" + "@esbuild/linux-ia32" "0.23.0" + "@esbuild/linux-loong64" "0.23.0" + "@esbuild/linux-mips64el" "0.23.0" + "@esbuild/linux-ppc64" "0.23.0" + "@esbuild/linux-riscv64" "0.23.0" + "@esbuild/linux-s390x" "0.23.0" + "@esbuild/linux-x64" "0.23.0" + "@esbuild/netbsd-x64" "0.23.0" + "@esbuild/openbsd-arm64" "0.23.0" + "@esbuild/openbsd-x64" "0.23.0" + "@esbuild/sunos-x64" "0.23.0" + "@esbuild/win32-arm64" "0.23.0" + "@esbuild/win32-ia32" "0.23.0" + "@esbuild/win32-x64" "0.23.0" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.5.0: version "8.10.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== -eslint-import-resolver-node@^0.3.7: +eslint-import-resolver-node@^0.3.9: version "0.3.9" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -4703,75 +4727,77 @@ eslint-import-resolver-node@^0.3.7: resolve "^1.22.4" eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== dependencies: debug "^3.2.7" eslint-plugin-import@^2.26.0: - version "2.28.1" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz" - integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== - dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + 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.7" + eslint-import-resolver-node "^0.3.9" eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.13.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" eslint-plugin-react-hooks@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + version "4.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== eslint-plugin-react-refresh@^0.3.4: version "0.3.5" - resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.5.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.5.tgz#0121e3f05f940250d3544bfaeff52e1c6adf4117" integrity sha512-61qNIsc7fo9Pp/mju0J83kzvLm0Bsayu7OQSLEoJxLDCBjIIyb87bkzufoOvdDxLkSlMfkF7UxomC4+eztUBSA== eslint-plugin-react-refresh@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz#59dae8c00a119f06ea16b1d3e6891df3775947c7" - integrity sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA== + version "0.4.9" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.9.tgz#bf870372b353b12e1e6fb7fc41b282d9cbc8d93d" + integrity sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA== eslint-plugin-react@^7.32.2: - version "7.33.2" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz" - integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" + version "7.35.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" + integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" - es-iterator-helpers "^1.0.12" + es-iterator-helpers "^1.0.19" estraverse "^5.3.0" + hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" prop-types "^15.8.1" - resolve "^2.0.0-next.4" + resolve "^2.0.0-next.5" semver "^6.3.1" - string.prototype.matchall "^4.0.8" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -4779,7 +4805,7 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -4787,21 +4813,22 @@ eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.26.0, eslint@^8.38.0, eslint@^8.45.0: - version "8.51.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz" - integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.51.0" - "@humanwhocodes/config-array" "^0.11.11" + "@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" @@ -4835,45 +4862,45 @@ eslint@^8.26.0, eslint@^8.38.0, eslint@^8.45.0: espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@~4.0.0: +esprima@~4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-to-babel@^3.1.0: version "3.2.1" - resolved "https://registry.npmjs.org/estree-to-babel/-/estree-to-babel-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== dependencies: "@babel/traverse" "^7.1.6" @@ -4882,32 +4909,32 @@ estree-to-babel@^3.1.0: estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.2.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -4920,33 +4947,17 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - express@^4.17.3: - version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -4975,13 +4986,13 @@ express@^4.17.3: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.1" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4989,45 +5000,43 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + fastest-levenshtein@^1.0.12: version "1.0.16" - resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" faye-websocket@^0.11.3: version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" @@ -5042,28 +5051,28 @@ file-loader@^6.2.0, file-loader@~6.2.0: filename-reserved-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== filenamify@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== dependencies: filename-reserved-regex "^2.0.0" strip-outer "^1.0.1" trim-repeated "^1.0.0" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" finalhandler@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" @@ -5076,16 +5085,16 @@ finalhandler@1.2.0: find-cache-dir@^3.3.1, find-cache-dir@^3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -5093,57 +5102,62 @@ find-up@^4.0.0, find-up@^4.1.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.1.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: flatted "^3.2.9" keyv "^4.5.3" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -follow-redirects@^1.0.0, follow-redirects@^1.14.8, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.0.0, follow-redirects@^1.14.8, follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" foreground-child@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== dependencies: cross-spawn "^7.0.0" signal-exit "^3.0.2" foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" form-data@^2.2.0: version "2.5.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" @@ -5152,7 +5166,7 @@ form-data@^2.2.0: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -5161,35 +5175,31 @@ form-data@^4.0.0: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + fresh@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^10.0.0, fs-extra@^10.1.0: version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -5198,34 +5208,34 @@ fs-extra@^8.1.0: fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-monkey@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz" - integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: +function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: +function.prototype.name@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" @@ -5235,55 +5245,57 @@ function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +get-func-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + hasown "^2.0.0" get-port@^3.1.0: version "3.2.0" - resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" gh-pages@^3.1.0: version "3.2.3" - resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-3.2.3.tgz#897e5f15e111f42af57d21d430b83e5cdf29472c" integrity sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg== dependencies: async "^2.6.1" @@ -5296,37 +5308,38 @@ gh-pages@^3.1.0: glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.1, glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^10.2.2, glob@^10.3.7: - version "10.3.10" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== +glob@^10.2.2, glob@^10.3.7, glob@^10.4.5: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -5336,7 +5349,7 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: +glob@^8.0.3, glob@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -5349,26 +5362,27 @@ glob@^8.0.3: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.23.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - define-properties "^1.1.3" + define-properties "^1.2.1" + gopd "^1.0.1" globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -5380,7 +5394,7 @@ globby@^11.1.0: globby@^13.1.1, globby@^13.1.4, globby@^13.2.2: version "13.2.2" - resolved "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== dependencies: dir-glob "^3.0.1" @@ -5391,7 +5405,7 @@ globby@^13.1.1, globby@^13.1.4, globby@^13.2.2: globby@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" @@ -5402,78 +5416,80 @@ globby@^6.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.1.1" + es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/has/-/has-1.0.4.tgz" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + has-symbols "^1.0.3" hash-sum@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + he@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hookable@^5.5.3: @@ -5483,7 +5499,7 @@ hookable@^5.5.3: hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" @@ -5492,18 +5508,18 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-entities@^2.3.2: - version "2.4.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz" - integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== html-minifier-terser@^6.0.2: version "6.1.0" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== dependencies: camel-case "^4.1.2" @@ -5516,7 +5532,7 @@ html-minifier-terser@^6.0.2: html-minifier-terser@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== dependencies: camel-case "^4.1.2" @@ -5528,9 +5544,9 @@ html-minifier-terser@^7.2.0: terser "^5.15.1" html-webpack-plugin@^5.5.0: - version "5.5.3" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz" - integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -5540,7 +5556,7 @@ html-webpack-plugin@^5.5.0: htmlparser2@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: domelementtype "^2.0.1" @@ -5550,7 +5566,7 @@ htmlparser2@^6.1.0: http-basic@^8.1.1: version "8.1.3" - resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" + resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== dependencies: caseless "^0.12.0" @@ -5560,12 +5576,12 @@ http-basic@^8.1.1: http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== http-errors@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -5576,7 +5592,7 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== dependencies: depd "~1.1.2" @@ -5586,12 +5602,12 @@ http-errors@~1.6.2: http-parser-js@>=0.5.1: version "0.5.8" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-middleware@^2.0.3: version "2.0.6" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== dependencies: "@types/http-proxy" "^1.17.8" @@ -5602,7 +5618,7 @@ http-proxy-middleware@^2.0.3: http-proxy@^1.18.1: version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -5611,57 +5627,57 @@ http-proxy@^1.18.1: http-response-object@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== dependencies: "@types/node" "^10.0.3" human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -5669,76 +5685,70 @@ inflight@^1.0.4: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + es-errors "^1.3.0" + hasown "^2.0.0" side-channel "^1.0.4" interpret@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + get-intrinsic "^1.2.1" is-async-function@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== dependencies: has-tostringtag "^1.0.0" is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -5746,7 +5756,7 @@ is-boolean-object@^1.1.0: is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-builtin-module@^3.2.1: @@ -5758,31 +5768,38 @@ is-builtin-module@^3.2.1: is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== dependencies: - has "^1.0.3" + hasown "^2.0.2" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-expression@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" integrity sha512-vyMeQMq+AiH5uUnoBfMTwf18tO3bM6k1QXBE9D6ueAAquEfCZe3AJPtud9g6qS0+4X8xA7ndpZiDyeb2l2qOBw== dependencies: acorn "~4.0.2" @@ -5790,87 +5807,87 @@ is-expression@^3.0.0: is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finalizationregistry@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== dependencies: call-bind "^1.0.2" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-generator-function@^1.0.10: version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-map@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-obj@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-promise@^2.0.0: version "2.2.2" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== is-reference@1.2.1: @@ -5882,153 +5899,127 @@ is-reference@1.2.1: is-regex@^1.0.3, is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.7" + get-intrinsic "^1.2.4" is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isarray@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" - integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-report@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" make-dir "^4.0.0" supports-color "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - 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== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: - version "3.1.6" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== +istanbul-reports@^3.1.4: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" iterator.prototype@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== dependencies: define-properties "^1.2.1" @@ -6037,422 +6028,56 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" + merge-stream "^2.0.0" + supports-color "^8.0.0" -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" +jiti@^1.18.2, jiti@^1.21.0, jiti@^1.21.6: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" +js-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.0.0, jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== - dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" - -jiti@^1.18.2, jiti@^1.19.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" - integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== - -js-stringify@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz" - integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" + argparse "^2.0.1" js2xmlparser@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== dependencies: xmlcreate "^2.0.4" jsdoc@^3.6.11: version "3.6.11" - resolved "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== dependencies: "@babel/parser" "^7.9.4" @@ -6473,73 +6098,68 @@ jsdoc@^3.6.11: jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json2mq@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== dependencies: string-convert "^0.2.0" json5@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" json5@^2.1.2, json5@^2.2.3: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== - jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -6548,7 +6168,7 @@ jsonfile@^6.0.1: jstransformer@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== dependencies: is-promise "^2.0.0" @@ -6556,7 +6176,7 @@ jstransformer@1.0.0: "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.3.5" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" @@ -6564,42 +6184,47 @@ jstransformer@1.0.0: object.assign "^4.1.4" object.values "^1.1.6" +just-extend@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" + integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== + keyv@^4.5.3: version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^3.0.2: version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw-sync@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== dependencies: graceful-fs "^4.1.11" klaw@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== dependencies: graceful-fs "^4.1.9" kleur@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== kolorist@^1.8.0: @@ -6608,51 +6233,46 @@ kolorist@^1.8.0: integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== launch-editor@^2.6.0: - version "2.6.1" - resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz" - integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + version "2.8.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.8.1.tgz#3bda72af213ec9b46b170e39661916ec66c2f463" + integrity sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA== dependencies: picocolors "^1.0.0" shell-quote "^1.8.1" lazy-cache@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" type-check "~0.4.0" -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lilconfig@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== linkify-it@^3.0.1: version "3.0.3" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== dependencies: uc.micro "^1.0.1" loader-runner@^4.2.0: version "4.3.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== loader-utils@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" @@ -6661,70 +6281,95 @@ loader-utils@^2.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== -lodash.memoize@4.x: +lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + longest@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" +loupe@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.1.tgz#71d038d59007d890e3247c5db97c1ec5a92edc54" + integrity sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw== + dependencies: + get-func-name "^2.0.1" + lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^4.1.5: version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" @@ -6732,23 +6377,11 @@ lru-cache@^4.1.5: lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - magic-string@^0.27.0: version "0.27.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" @@ -6757,46 +6390,39 @@ magic-string@^0.27.0: "@jridgewell/sourcemap-codec" "^1.4.13" magic-string@^0.30.0, magic-string@^0.30.2, magic-string@^0.30.3: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.0" make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" make-dir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: semver "^7.5.3" -make-error@1.x, make-error@^1.1.1: +make-error@^1.1.1: version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - markdown-it-anchor@^8.4.1: version "8.6.7" - resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== markdown-it@^12.3.2: version "12.3.2" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== dependencies: argparse "^2.0.1" @@ -6807,144 +6433,160 @@ markdown-it@^12.3.2: marked@^4.0.10: version "4.3.0" - resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdurl@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.4.3: - version "3.5.3" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz" - integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: fs-monkey "^1.0.4" merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== +"mime-db@>= 1.43.0 < 2": + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== min-indent@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.5.3: - version "2.7.6" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz" - integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== + version "2.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz#c73a1327ccf466f69026ac22a8e8fd707b78a235" + integrity sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA== dependencies: schema-utils "^4.0.0" + tapable "^2.2.1" minimalistic-assert@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: +minimatch@^5.0.1, minimatch@^5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^3.0.0: version "3.3.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -6952,40 +6594,70 @@ minizlib@^2.1.1: mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mkdirp@~0.5.1: version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdist@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/mkdist/-/mkdist-1.3.0.tgz#462d5cce665835baca77802f36d95ec4ba953952" - integrity sha512-ZQrUvcL7LkRdzMREpDyg9AT18N9Tl5jc2qeKAUeEw0KGsgykbHbuRvysGAzTuGtwuSg0WQyNit5jh/k+Er3JEg== - dependencies: - citty "^0.1.2" - defu "^6.1.2" - esbuild "^0.18.14" - fs-extra "^11.1.1" - globby "^13.2.2" - jiti "^1.19.1" - mlly "^1.4.0" - mri "^1.2.0" - pathe "^1.1.1" - -mlly@^1.2.0, mlly@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" - integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== - dependencies: - acorn "^8.10.0" - pathe "^1.1.1" - pkg-types "^1.0.3" - ufo "^1.3.0" + version "1.5.4" + resolved "https://registry.yarnpkg.com/mkdist/-/mkdist-1.5.4.tgz#c2343fab3297e49896013563fb3b0113a07b65da" + integrity sha512-GEmKYJG5K1YGFIq3t0K3iihZ8FTgXphLf/4UjbmpXIAtBFn4lEjXk3pXNTSfy7EtcEXhp2Nn1vzw5pIus6RY3g== + dependencies: + autoprefixer "^10.4.19" + citty "^0.1.6" + cssnano "^7.0.4" + defu "^6.1.4" + esbuild "^0.23.0" + fast-glob "^3.3.2" + jiti "^1.21.6" + mlly "^1.7.1" + pathe "^1.1.2" + pkg-types "^1.1.3" + postcss "^8.4.39" + postcss-nested "^6.0.1" + semver "^7.6.2" + +mlly@^1.2.0, mlly@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.1.tgz#e0336429bb0731b6a8e887b438cbdae522c8f32f" + integrity sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.1.1" + ufo "^1.5.3" + +mocha@^10.7.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.0.tgz#9e5cbed8fa9b37537a25bd1f7fb4f6fc45458b9a" + integrity sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" mri@^1.2.0: version "1.2.0" @@ -6994,50 +6666,50 @@ mri@^1.2.0: ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multicast-dns@^7.2.5: version "7.2.5" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: dns-packet "^5.2.2" thunky "^1.0.2" -nanoid@^3.3.4, nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.6, nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== next@13.5.4: @@ -7063,9 +6735,20 @@ next@13.5.4: "@next/swc-win32-ia32-msvc" "13.5.4" "@next/swc-win32-x64-msvc" "13.5.4" +nise@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-6.0.0.tgz#ae56fccb5d912037363c3b3f29ebbfa28bde8b48" + integrity sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^11.2.2" + "@sinonjs/text-encoding" "^0.7.2" + just-extend "^6.2.0" + path-to-regexp "^6.2.1" + no-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" @@ -7073,156 +6756,148 @@ no-case@^3.0.4: node-dir@^0.1.10: version "0.1.17" - resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== dependencies: minimatch "^3.0.2" node-fetch@^2.0.0: version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-forge@^1: version "1.3.1" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.6: - version "1.1.7" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.fromentries@^2.0.6: - version "2.0.7" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== +object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -object.groupby@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== +object.fromentries@^2.0.7, object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.hasown@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz" - integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" -object.values@^1.1.6: - version "1.1.7" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== +object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" open@^8.0.9: version "8.4.2" - resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" @@ -7230,48 +6905,48 @@ open@^8.0.9: is-wsl "^2.2.0" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== 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" + word-wrap "^1.2.5" p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-retry@^4.5.0: version "4.6.2" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: "@types/retry" "0.12.0" @@ -7279,12 +6954,17 @@ p-retry@^4.5.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + param-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: dot-case "^3.0.4" @@ -7292,34 +6972,24 @@ param-case@^3.0.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-cache-control@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: no-case "^3.0.4" @@ -7327,160 +6997,390 @@ pascal-case@^3.1.2: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== + path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0, pathe@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" - integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== +pathe@^1.1.0, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -pkg-types@^1.0.2, pkg-types@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" - integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== +pkg-types@^1.0.2, pkg-types@^1.1.1, pkg-types@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.3.tgz#161bb1242b21daf7795036803f28e30222e476e3" + integrity sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA== dependencies: - jsonc-parser "^3.2.0" - mlly "^1.2.0" - pathe "^1.1.0" + confbox "^0.1.7" + mlly "^1.7.1" + pathe "^1.1.2" -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -postcss-modules-local-by-default@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz" - integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== +postcss-calc@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-10.0.1.tgz#78dce1b90d04a7cb3a67ca7235c041a719762f50" + integrity sha512-pp1Z3FxtxA+xHAoWXcOXgnBN1WPu4ZiJ5LWGjKyf9MMreagAsaTUtnqFK1y1sHhyJddAkYTPu6XSuLgb3oYCjw== + dependencies: + postcss-selector-parser "^6.1.1" + postcss-value-parser "^4.2.0" + +postcss-colormin@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.1.tgz#6534c7d1175e30f788d4ced891436ad2fa3bd173" + integrity sha512-uszdT0dULt3FQs47G5UHCduYK+FnkLYlpu1HpWu061eGsKZ7setoG7kA+WC9NQLsOJf69D5TxGHgnAdRgylnFQ== + dependencies: + browserslist "^4.23.1" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.2.tgz#8a33265f5f1decfc93328e2a23e03e8491a3d9ae" + integrity sha512-MuZIF6HJ4izko07Q0TgW6pClalI4al6wHRNPkFzqQdwAwG7hPn0lA58VZdxyb2Vl5AYjJ1piO+jgF9EnTjQwQQ== + dependencies: + browserslist "^4.23.1" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.1.tgz#00b01c5a99e95f97927b0ba12a1c422ab90bf55f" + integrity sha512-GVrQxUOhmle1W6jX2SvNLt4kmN+JYhV7mzI6BMnkAWR9DtVvg8e67rrV0NfdWhn7x1zxvzdWkMBPdBDCls+uwQ== + dependencies: + postcss-selector-parser "^6.1.0" + +postcss-discard-duplicates@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.0.tgz#47ae1154cc89ad0a50099fbac1f74c942214c961" + integrity sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw== + +postcss-discard-empty@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz#218829d1ef0a5d5142dd62f0aa60e00e599d2033" + integrity sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA== + +postcss-discard-overridden@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz#b123ea51e3d4e1d0a254cf71eaff1201926d319c" + integrity sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w== + +postcss-merge-longhand@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.2.tgz#b9fddce88498ca7e45ff130163b69864b25c05dc" + integrity sha512-06vrW6ZWi9qeP7KMS9fsa9QW56+tIMW55KYqF7X3Ccn+NI2pIgPV6gFfvXTMQ05H90Y5DvnCDPZ2IuHa30PMUg== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^7.0.2" + +postcss-merge-rules@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.2.tgz#f7c991576cff4c7d0a8f16101c20bbfa9426695c" + integrity sha512-VAR47UNvRsdrTHLe7TV1CeEtF9SJYR5ukIB9U4GZyZOptgtsS20xSxy+k5wMrI3udST6O1XuIn7cjQkg7sDAAw== + dependencies: + browserslist "^4.23.1" + caniuse-api "^3.0.0" + cssnano-utils "^5.0.0" + postcss-selector-parser "^6.1.0" + +postcss-minify-font-values@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz#d16a75a2548e000779566b3568fc874ee5d0aa17" + integrity sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz#f6d84456e6d49164a55d0e45bb1b1809c6cf0959" + integrity sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg== + dependencies: + colord "^2.9.3" + cssnano-utils "^5.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.1.tgz#08d753bb09d3ebf1a6d6fb0968d60bb3b981e513" + integrity sha512-e+Xt8xErSRPgSRFxHeBCSxMiO8B8xng7lh8E0A5ep1VfwYhY8FXhu4Q3APMjgx9YDDbSp53IBGENrzygbUvgUQ== + dependencies: + browserslist "^4.23.1" + cssnano-utils "^5.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.2.tgz#869c8ef885a4f9c2550d0d5ec1a2876027d3965c" + integrity sha512-dCzm04wqW1uqLmDZ41XYNBJfjgps3ZugDpogAmJXoCb5oCiTzIX4oPXXKxDpTvWOnKxQKR4EbV4ZawJBLcdXXA== + dependencies: + cssesc "^3.0.0" + postcss-selector-parser "^6.1.0" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== +postcss-modules-scope@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== dependencies: postcss-selector-parser "^6.0.4" postcss-modules-values@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: icss-utils "^5.0.0" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.13" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== +postcss-nested@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-normalize-charset@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz#92244ae73c31bf8f8885d5f16ff69e857ac6c001" + integrity sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ== + +postcss-normalize-display-values@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz#01fb50e5e97ef8935363629bea5a6d3b3aac1342" + integrity sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz#4eebd7c9d3dde40c97b8047cad38124fc844c463" + integrity sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz#0cb784655d5714d29bd3bda6dee2fb628aa7227b" + integrity sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz#a119d3e63a9614570d8413d572fb9fc8c6a64e8c" + integrity sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz#99d0ee8c4b23b7f4355fafb91385833b9b07108b" + integrity sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.1.tgz#6545debfff2b4b154583cb24bb388b9681ffa119" + integrity sha512-PTPGdY9xAkTw+8ZZ71DUePb7M/Vtgkbbq+EoI33EuyQEzbKemEQMhe5QSr0VP5UfZlreANDPxSfcdSprENcbsg== + dependencies: + browserslist "^4.23.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz#c88cb7cf8952d3ff631e4eba924e7b060ca802f6" + integrity sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz#46b025f0bea72139ddee63015619b0c21cebd845" + integrity sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz#8b4b5b8070ca7756bd49f07d5edf274b8f6782e0" + integrity sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw== + dependencies: + cssnano-utils "^5.0.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.1.tgz#d5308153f757ff9dd5b041cd4954a7592ef0d43b" + integrity sha512-0JDUSV4bGB5FGM5g8MkS+rvqKukJZ7OTHw/lcKn7xPNqeaqJyQbUO8/dJpvyTpaVwPsd3Uc33+CfNzdVowp2WA== + dependencies: + browserslist "^4.23.1" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz#0386080a14e5faad9f8eda33375b79fe7c4f9677" + integrity sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.1.0, postcss-selector-parser@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-svgo@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.0.1.tgz#2b63571d8e9568384df334bac9917baff4d23f58" + integrity sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.3.2" + +postcss-unique-selectors@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.1.tgz#3e4e7c408ca5cd57e834d197e9c96111fc163237" + integrity sha512-MH7QE/eKUftTB5ta40xcHLl7hkZjgDFydpfTK+QWXeHxghVt3VoPqYL5/G+zYZPPIs+8GuqFXSTgxBSoB1RZtQ== + dependencies: + postcss-selector-parser "^6.1.0" + postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.31, postcss@^8.4.21, postcss@^8.4.27: +postcss@8.4.31: version "8.4.31" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.27, postcss@^8.4.33, postcss@^8.4.39: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -prettier@3.0.3, prettier@^3.0.0: +prettier@3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== +prettier@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== + pretty-bytes@^6.1.0: version "6.1.1" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" @@ -7488,48 +7388,39 @@ pretty-bytes@^6.1.0: pretty-error@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== dependencies: lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" + renderkid "^3.0.0" private@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== promise@^7.0.1: version "7.3.1" - resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" promise@^8.0.0: version "8.3.0" - resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" -prompts@^2.0.1, prompts@^2.4.2: +prompts@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" @@ -7537,7 +7428,7 @@ prompts@^2.0.1, prompts@^2.4.2: prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -7546,7 +7437,7 @@ prop-types@^15.7.2, prop-types@^15.8.1: proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -7554,17 +7445,17 @@ proxy-addr@~2.0.7: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== pug-attrs@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336" integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ== dependencies: constantinople "^3.0.1" @@ -7573,7 +7464,7 @@ pug-attrs@^2.0.4: pug-code-gen@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.3.tgz#122eb9ada9b5bf601705fe15aaa0a7d26bc134ab" integrity sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA== dependencies: constantinople "^3.1.2" @@ -7587,12 +7478,12 @@ pug-code-gen@^2.0.2: pug-error@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6" integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ== pug-filters@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7" integrity sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg== dependencies: clean-css "^4.1.11" @@ -7605,7 +7496,7 @@ pug-filters@^3.1.1: pug-lexer@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd" integrity sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA== dependencies: character-parser "^2.1.1" @@ -7614,7 +7505,7 @@ pug-lexer@^4.1.0: pug-linker@^3.0.6: version "3.0.6" - resolved "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb" integrity sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg== dependencies: pug-error "^1.3.3" @@ -7622,7 +7513,7 @@ pug-linker@^3.0.6: pug-load@^2.0.12: version "2.0.12" - resolved "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b" integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg== dependencies: object-assign "^4.1.0" @@ -7630,7 +7521,7 @@ pug-load@^2.0.12: pug-parser@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9" integrity sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA== dependencies: pug-error "^1.3.3" @@ -7638,24 +7529,24 @@ pug-parser@^5.0.1: pug-runtime@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a" integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw== pug-strip-comments@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8" integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw== dependencies: pug-error "^1.3.3" pug-walk@^1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a" integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA== pug@^2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d" integrity sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw== dependencies: pug-code-gen "^2.0.2" @@ -7668,55 +7559,45 @@ pug@^2.0.3: pug-strip-comments "^1.0.4" punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== - -qrcode.react@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz" - integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qs@6.11.0: version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" qs@^6.4.0: - version "6.11.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -7731,52 +7612,41 @@ raw-loader@^4.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" -rc-align@^4.0.0: - version "4.0.15" - resolved "https://registry.npmjs.org/rc-align/-/rc-align-4.0.15.tgz" - integrity sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - dom-align "^1.7.0" - rc-util "^5.26.0" - resize-observer-polyfill "^1.5.1" - -rc-cascader@~3.18.1: - version "3.18.1" - resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.18.1.tgz#e488e9cd9ace1617e06ee4c8eadf435a11de2d29" - integrity sha512-M7Xr5Fs/E87ZGustfObtBYQjsvBCET0UX2JYXB2GmOP+2fsZgjaRGXK+CJBmmWXQ6o4OFinpBQBXG4wJOQ5MEg== +rc-cascader@~3.27.0: + version "3.27.0" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.27.0.tgz#efb1a3c20e0d834b5b0b0b5dd3a9abf16ffa3860" + integrity sha512-z5uq8VvQadFUBiuZJ7YF5UAUGNkZtdEtcEYiIA94N/Kc2MIKr6lEbN5HyVddvYSgwWlKqnL6pH5bFXFuIK3MNg== dependencies: "@babel/runtime" "^7.12.5" array-tree-filter "^2.1.0" classnames "^2.3.1" - rc-select "~14.9.0" - rc-tree "~5.7.0" - rc-util "^5.35.0" + rc-select "~14.15.0" + rc-tree "~5.8.1" + rc-util "^5.37.0" -rc-checkbox@~3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.1.0.tgz" - integrity sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ== +rc-checkbox@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.3.0.tgz#0ffcb65ab78c7d2fcd1a0d6554af36786516bd02" + integrity sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.3.2" rc-util "^5.25.2" -rc-collapse@~3.7.1: - version "3.7.1" - resolved "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.1.tgz" - integrity sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg== +rc-collapse@~3.7.3: + version "3.7.3" + resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.7.3.tgz#68161683d8fd1004bef4eb281fc106f3c8dc16eb" + integrity sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" rc-motion "^2.3.4" rc-util "^5.27.0" -rc-dialog@~9.3.0, rc-dialog@~9.3.3: - version "9.3.3" - resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.3.3.tgz#d2da896ad62220befa9dccba7b16250496011ad2" - integrity sha512-OpgzE0wq55ebN8TL/ZPc+MLY6qXswEuZg2/3uX3+lqjxUnVaH78PyntpJwqY+3BJdQkDj28XeXYRVY6gXQ8fNg== +rc-dialog@~9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.5.2.tgz#4cf7cca23aedb6fd3d9344ea8ffd14daa94ee3a0" + integrity sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/portal" "^1.0.0-8" @@ -7784,115 +7654,115 @@ rc-dialog@~9.3.0, rc-dialog@~9.3.3: rc-motion "^2.3.0" rc-util "^5.21.0" -rc-drawer@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-6.5.2.tgz#49c1f279261992f6d4653d32a03b14acd436d610" - integrity sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ== +rc-drawer@~7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.2.0.tgz#8d7de2f1fd52f3ac5a25f54afbb8ac14c62e5663" + integrity sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg== dependencies: - "@babel/runtime" "^7.10.1" + "@babel/runtime" "^7.23.9" "@rc-component/portal" "^1.1.1" classnames "^2.2.6" rc-motion "^2.6.1" - rc-util "^5.36.0" + rc-util "^5.38.1" -rc-dropdown@~4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.1.0.tgz" - integrity sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw== +rc-dropdown@~4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-4.2.0.tgz#c6052fcfe9c701487b141e411cdc277dc7c6f061" + integrity sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng== dependencies: "@babel/runtime" "^7.18.3" - "@rc-component/trigger" "^1.7.0" + "@rc-component/trigger" "^2.0.0" classnames "^2.2.6" rc-util "^5.17.0" -rc-field-form@~1.39.0: - version "1.39.0" - resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.39.0.tgz#b5987124978eab223df2321b2e796e114ac6d65e" - integrity sha512-V7Wk7uji1jBsUGGgP788H9rpFy55HLiD4lywTlktUGjK7EgW5dt+mq1MPbtCpPRMzs83vZBW4SOChOmCACz4WA== +rc-field-form@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.2.1.tgz#0a8c76a0103535c229311dac7f91d32ea13cd3bc" + integrity sha512-uoNqDoR7A4tn4QTSqoWPAzrR7ZwOK5I+vuZ/qdcHtbKx+ZjEsTg7QXm2wk/jalDiSksAQmATxL0T5LJkRREdIA== dependencies: "@babel/runtime" "^7.18.0" - async-validator "^4.1.0" + "@rc-component/async-validator" "^5.0.3" rc-util "^5.32.2" -rc-image@~7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.3.1.tgz#57b61010f32ae6851d5417fcc40fbe3971f5d570" - integrity sha512-Tu3vcUyMHa6zxTiQRzHt1glbGwuNWzeQBG9O6qIdy/+1ue0Qb70it+jUct1YPVNkJa/QfaTfUhmsNsqrw7mgsg== +rc-image@~7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.9.0.tgz#2d700a5cf891bb3d0d800b7c38348927ebb9f49b" + integrity sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g== dependencies: "@babel/runtime" "^7.11.2" "@rc-component/portal" "^1.0.2" classnames "^2.2.6" - rc-dialog "~9.3.0" + rc-dialog "~9.5.2" rc-motion "^2.6.2" rc-util "^5.34.1" -rc-input-number@~8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/rc-input-number/-/rc-input-number-8.1.0.tgz" - integrity sha512-bdHgduOxuN0lrhzgPmoKbhRD4GLIzVcddVz972/JHPHr7oLwPX5xDb9w4bXhuMzyT2VzQy7nggRCfH3yAl09oA== +rc-input-number@~9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.2.0.tgz#7e9344ff054421d2bfff0eebd7c1b8ef22d12220" + integrity sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/mini-decimal" "^1.0.1" classnames "^2.2.5" - rc-input "~1.2.1" - rc-util "^5.28.0" + rc-input "~1.6.0" + rc-util "^5.40.1" -rc-input@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/rc-input/-/rc-input-1.2.1.tgz" - integrity sha512-nQRmBvEFoGi+SNRDavccZ8ueyhFgmxkWqIt4aDyuNJgUZF12HJKIwDhAafUM7N+g7PyuW9FH3pf3zPHzdiCWbA== +rc-input@~1.6.0, rc-input@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.6.2.tgz#bb356a3b8af421beb7ff26d54ebf054396dfe447" + integrity sha512-nJqsiIv8K88w8pvbUR5savKqBokdSR0zVGPntLApeOKFp8dp6s92l1CzD60yVActpCZAJwlCfRX5rno+QVYV7g== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-util "^5.18.1" -rc-mentions@~2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.8.0.tgz" - integrity sha512-LBMkO6bSGhEvS1CvMK978qGN82tI+mzk7l/uTiQJH+UDiwpvq+pxK4DxU5b6Q1T5LW6bn2pSua9RaZKZrDoBOw== +rc-mentions@~2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.15.0.tgz#ada022b32e68fa067a859ee0024c3f2aa7a9c871" + integrity sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw== dependencies: "@babel/runtime" "^7.22.5" - "@rc-component/trigger" "^1.5.0" + "@rc-component/trigger" "^2.0.0" classnames "^2.2.6" - rc-input "~1.2.1" - rc-menu "~9.12.0" - rc-textarea "~1.4.0" + rc-input "~1.6.0" + rc-menu "~9.14.0" + rc-textarea "~1.8.0" rc-util "^5.34.1" -rc-menu@~9.12.0, rc-menu@~9.12.2: - version "9.12.2" - resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.12.2.tgz#1bab34646421224eff5c5b7de993f8ea1238418e" - integrity sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg== +rc-menu@~9.14.0, rc-menu@~9.14.1: + version "9.14.1" + resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.14.1.tgz#5c2aea72bdce421e9d50bf721ad8b76c154ae66f" + integrity sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ== dependencies: "@babel/runtime" "^7.10.1" - "@rc-component/trigger" "^1.17.0" + "@rc-component/trigger" "^2.0.0" classnames "2.x" rc-motion "^2.4.3" rc-overflow "^1.3.1" rc-util "^5.27.0" -rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.0.tgz" - integrity sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ== +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0, rc-motion@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.2.tgz#f7c6d480250df8a512d0cfdce07ff3da906958cf" + integrity sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" - rc-util "^5.21.0" + rc-util "^5.43.0" -rc-notification@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.2.0.tgz#d63f4ec98fe297a15b495f62b800074636aabbf6" - integrity sha512-HwUSypEW4mfOpiakJ7dm6TAKf+3zuSR2xm0I0XMes493rtA3n4EVMvQyldrp23hUwCE3RFj8oncyU1E8iNC4ag== +rc-notification@~5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.6.0.tgz#1639aa30686d79ee4bb8ace05a698a5a104aaa74" + integrity sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" rc-motion "^2.9.0" rc-util "^5.20.1" -rc-overflow@^1.3.1: +rc-overflow@^1.3.1, rc-overflow@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.3.2.tgz#72ee49e85a1308d8d4e3bd53285dc1f3e0bcce2c" integrity sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw== dependencies: "@babel/runtime" "^7.11.1" @@ -7900,101 +7770,90 @@ rc-overflow@^1.3.1: rc-resize-observer "^1.0.0" rc-util "^5.37.0" -rc-pagination@~3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.6.1.tgz" - integrity sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug== +rc-pagination@~4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-4.2.0.tgz#b7222b429dec38f6c74e139a30ae7765e9a0b8a6" + integrity sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw== dependencies: "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - rc-util "^5.32.2" + classnames "^2.3.2" + rc-util "^5.38.0" -rc-picker@~3.14.5: - version "3.14.5" - resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-3.14.5.tgz#fa045a170b7908e3f6ea80dd39113fc84a0fac13" - integrity sha512-h0O8b5AYfWwHSRUUH/9F2oBXB5gZerHIyGG6z2r5rn/kfSQodyCXEO4GNqrG30iUC1qkvLFIOn/JqI4XaO0+2A== +rc-picker@~4.6.11: + version "4.6.11" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.6.11.tgz#2016e4e88958d19398f3ce78965262cc94671bc5" + integrity sha512-PEVH5MMTUrdvTTxCmPndsXiJL7TFLSu8q0cDdZrhdcjn8en3NbuhOFacWqKTvdnfG53RPPhiBssXCUHYyc3R/Q== dependencies: - "@babel/runtime" "^7.10.1" - "@rc-component/trigger" "^1.5.0" + "@babel/runtime" "^7.24.7" + "@rc-component/trigger" "^2.0.0" classnames "^2.2.1" - rc-util "^5.30.0" + rc-overflow "^1.3.2" + rc-resize-observer "^1.4.0" + rc-util "^5.43.0" -rc-progress@~3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz" - integrity sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw== +rc-progress@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-4.0.0.tgz#5382147d9add33d3a5fbd264001373df6440e126" + integrity sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.6" rc-util "^5.16.1" -rc-rate@~2.12.0: - version "2.12.0" - resolved "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz" - integrity sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg== +rc-rate@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.13.0.tgz#642f591ccf55c3a5d84d8d212caf1f7951d203a8" + integrity sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" rc-util "^5.0.1" -rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz" - integrity sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg== +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz#7bba61e6b3c604834980647cce6451914750d0cc" + integrity sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q== dependencies: "@babel/runtime" "^7.20.7" classnames "^2.2.1" - rc-util "^5.27.0" + rc-util "^5.38.0" resize-observer-polyfill "^1.5.1" -rc-segmented@~2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.2.2.tgz" - integrity sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA== +rc-segmented@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.3.0.tgz#b3fe080fb434a266c02e30bb62a47d2c6e094341" + integrity sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-motion "^2.4.4" rc-util "^5.17.0" -rc-select@~14.9.0: - version "14.9.0" - resolved "https://registry.npmjs.org/rc-select/-/rc-select-14.9.0.tgz" - integrity sha512-vbIhK1MBA12MRdxXbiylSCTPKsWV8WmeN7OyATk9I0LsuIVwe/kBAUNH02am1ryjoylbK+AH309a6X1AflGRSw== - dependencies: - "@babel/runtime" "^7.10.1" - "@rc-component/trigger" "^1.5.0" - classnames "2.x" - rc-motion "^2.0.1" - rc-overflow "^1.3.1" - rc-util "^5.16.1" - rc-virtual-list "^3.5.2" - -rc-select@~14.9.1: - version "14.9.1" - resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.9.1.tgz#43f1d2daa1f7d05ea12ed456261af4780f0d1641" - integrity sha512-vORdRgOXOIHLanzYi+vpDGydk6eyXT/XZS21PpRlhBTMaieK4JhkGQX2RO8QwFv/gFMjv0QInIgyM+0zmUeIjw== +rc-select@~14.15.0, rc-select@~14.15.1: + version "14.15.1" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.15.1.tgz#1c8ab356cfdf1b24e974d62aec752620845d95a7" + integrity sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ== dependencies: "@babel/runtime" "^7.10.1" - "@rc-component/trigger" "^1.5.0" + "@rc-component/trigger" "^2.1.1" classnames "2.x" rc-motion "^2.0.1" rc-overflow "^1.3.1" rc-util "^5.16.1" rc-virtual-list "^3.5.2" -rc-slider@~10.3.0: - version "10.3.1" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.3.1.tgz#345e818975f4bb61b66340799af8cfccad7c8ad7" - integrity sha512-XszsZLkbjcG9ogQy/zUC0n2kndoKUAnY/Vnk1Go5Gx+JJQBz0Tl15d5IfSiglwBUZPS9vsUJZkfCmkIZSqWbcA== +rc-slider@~11.1.3: + version "11.1.5" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-11.1.5.tgz#9a596464a36d78feb90589fee4eb0bf7cec40584" + integrity sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" - rc-util "^5.27.0" + rc-util "^5.36.0" rc-steps@~6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-6.0.1.tgz#c2136cd0087733f6d509209a84a5c80dc29a274d" integrity sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g== dependencies: "@babel/runtime" "^7.16.7" @@ -8003,73 +7862,73 @@ rc-steps@~6.0.1: rc-switch@~4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-4.1.0.tgz#f37d81b4e0c5afd1274fd85367b17306bf25e7d7" integrity sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg== dependencies: "@babel/runtime" "^7.21.0" classnames "^2.2.1" rc-util "^5.30.0" -rc-table@~7.34.4: - version "7.34.4" - resolved "https://registry.npmjs.org/rc-table/-/rc-table-7.34.4.tgz" - integrity sha512-os+i88Y2AO/6dNkOgJkKSHgXYaZZGnuOEEe+nyaq5IRgvAQNhLysUjXt2objtBeFDEZR8TqXrajwBNRUwunmdw== +rc-table@~7.45.7: + version "7.45.7" + resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.45.7.tgz#f7c509e05c677a30ad5b212750122da6f5318004" + integrity sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/context" "^1.4.0" classnames "^2.2.5" rc-resize-observer "^1.1.0" - rc-util "^5.36.0" - rc-virtual-list "^3.11.1" + rc-util "^5.37.0" + rc-virtual-list "^3.14.2" -rc-tabs@~12.12.1: - version "12.12.1" - resolved "https://registry.npmjs.org/rc-tabs/-/rc-tabs-12.12.1.tgz" - integrity sha512-e10VBjEkECdPl4XZSs9to81SE+mgclBTM7J8/LMsFqmJoi05Tci91bRnmeeDtrcOCx2PuZdJv57XUlC4d8PEIw== +rc-tabs@~15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-15.1.1.tgz#99f4c7647e01d3e22216d94222d717e928ed98d0" + integrity sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw== dependencies: "@babel/runtime" "^7.11.2" classnames "2.x" - rc-dropdown "~4.1.0" - rc-menu "~9.12.0" + rc-dropdown "~4.2.0" + rc-menu "~9.14.0" rc-motion "^2.6.2" rc-resize-observer "^1.0.0" rc-util "^5.34.1" -rc-textarea@~1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.4.0.tgz" - integrity sha512-CiqK+uyoJlnfufbC0kwfHJpfElhQacuDSNyNQ/xGnA/QMaJLDbgmqRT8QmX0T0KD/ws/hy6qqRaGJSsrRR5uiQ== +rc-textarea@~1.8.0, rc-textarea@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.8.1.tgz#0313ed2e7980269e1bd4f3c203a4e9a84cad8e2d" + integrity sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.1" - rc-input "~1.2.1" + rc-input "~1.6.0" rc-resize-observer "^1.0.0" rc-util "^5.27.0" -rc-tooltip@~6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.1.1.tgz#8f3bf2b7008f091977da19aa4617a48cefed3d10" - integrity sha512-YoxL0Ev4htsX37qgN23eKr0L5PIRpZaLVL9GX6aJ4x6UEnwgXZYUNCAEHfKlKT3eD1felDq3ob4+Cn9lprLDBw== +rc-tooltip@~6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.2.0.tgz#4dd7575674137a5b14f118a5c16435d3f5e4a9c9" + integrity sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw== dependencies: "@babel/runtime" "^7.11.2" - "@rc-component/trigger" "^1.17.0" + "@rc-component/trigger" "^2.0.0" classnames "^2.3.1" -rc-tree-select@~5.13.0: - version "5.13.0" - resolved "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.13.0.tgz" - integrity sha512-g01JU9EdE7j/9KfDKtmvFqJ7ZDNIYDzkpmAXllbTBFoRNhWJBjW1x/dCZLVG+IdZeIz8SKJkgZzCf1CUZrzV/Q== +rc-tree-select@~5.22.1: + version "5.22.1" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.22.1.tgz#02daa09624378107f4c13d4deadcf6327c669cd8" + integrity sha512-b8mAK52xEpRgS+b2PTapCt29GoIrO5cO8jB7AfHttFsIJfcnynY9FCtnYzURsKXJkGHbFY6UzSEB2I3TETtdWg== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" - rc-select "~14.9.0" - rc-tree "~5.7.0" + rc-select "~14.15.0" + rc-tree "~5.8.1" rc-util "^5.16.1" -rc-tree@~5.7.0, rc-tree@~5.7.12: - version "5.7.12" - resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-5.7.12.tgz" - integrity sha512-LXA5nY2hG5koIAlHW5sgXgLpOMz+bFRbnZZ+cCg0tQs4Wv1AmY7EDi1SK7iFXhslYockbqUerQan82jljoaItg== +rc-tree@~5.8.1, rc-tree@~5.8.8: + version "5.8.8" + resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.8.tgz#650a13ec825a5a4feec6bbaf6a380465986ee0db" + integrity sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" @@ -8077,35 +7936,27 @@ rc-tree@~5.7.0, rc-tree@~5.7.12: rc-util "^5.16.1" rc-virtual-list "^3.5.1" -rc-upload@~4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.5.tgz#12fc69b2af74d08646a104828831bcaf44076eda" - integrity sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA== +rc-upload@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.6.0.tgz#6f6d8ea4fe52ab4cd1d0d025da621e96d035c767" + integrity sha512-Zr0DT1NHw/ApxrP7UAoxOtGaVYuzarrrCVr0ld7RiEFsKX07uFhE1EpCBxwL11ruFn89GMcshOKWp+s6FLyAlA== dependencies: "@babel/runtime" "^7.18.3" classnames "^2.2.5" rc-util "^5.2.0" -rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.26.0, rc-util@^5.27.0, rc-util@^5.28.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.33.0, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.9.4: - version "5.37.0" - resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.37.0.tgz" - integrity sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ== - dependencies: - "@babel/runtime" "^7.18.3" - react-is "^16.12.0" - -rc-util@^5.38.0: - version "5.38.0" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.38.0.tgz#18a3d1c26ba3c43fabfbe6303e825dabd9e5f4f0" - integrity sha512-yV/YBNdFn+edyBpBdCqkPE29Su0jWcHNgwx2dJbRqMrMfrUcMJUjCRV+ZPhcvWyKFJ63GzEerPrz9JIVo0zXmA== +rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0, rc-util@^5.9.4: + version "5.43.0" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.43.0.tgz#bba91fbef2c3e30ea2c236893746f3e9b05ecc4c" + integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== dependencies: "@babel/runtime" "^7.18.3" react-is "^18.2.0" -rc-virtual-list@^3.11.1, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: - version "3.11.2" - resolved "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.2.tgz" - integrity sha512-MTFLL2LOHr3+/+r+WjTIs6j8XmJE6EqdOsJvCH8SWig7qyik3aljCEImUtw5tdWR0tQhXUfbv7P7nZaLY91XPg== +rc-virtual-list@^3.14.2, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: + version "3.14.5" + resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz#593cd13fe05eabf4ad098329704a30c77701869e" + integrity sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg== dependencies: "@babel/runtime" "^7.20.0" classnames "^2.2.6" @@ -8114,7 +7965,7 @@ rc-virtual-list@^3.11.1, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: react-ace@^9.5.0: version "9.5.0" - resolved "https://registry.npmjs.org/react-ace/-/react-ace-9.5.0.tgz" + resolved "https://registry.yarnpkg.com/react-ace/-/react-ace-9.5.0.tgz#b6c32b70d404dd821a7e01accc2d76da667ff1f7" integrity sha512-4l5FgwGh6K7A0yWVMQlPIXDItM4Q9zzXRqOae8KkCl6MkOob7sC1CzHxZdOGvV+QioKWbX2p5HcdOVUv6cAdSg== dependencies: ace-builds "^1.4.13" @@ -8125,7 +7976,7 @@ react-ace@^9.5.0: react-docgen@^5.4.0: version "5.4.3" - resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.4.3.tgz#7d297f73b977d0c7611402e5fc2a168acf332b26" integrity sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA== dependencies: "@babel/core" "^7.7.5" @@ -8140,58 +7991,58 @@ react-docgen@^5.4.0: strip-indent "^3.0.0" react-dom@^18, react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - scheduler "^0.23.0" + scheduler "^0.23.2" react-frame-component@^5.2.1: - version "5.2.6" - resolved "https://registry.npmjs.org/react-frame-component/-/react-frame-component-5.2.6.tgz" - integrity sha512-CwkEM5VSt6nFwZ1Op8hi3JB5rPseZlmnp5CGiismVTauE6S4Jsc4TNMlT0O7Cts4WgIC3ZBAQ2p1Mm9XgLbj+w== + version "5.2.7" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.2.7.tgz#e31c0943be95fdf667c59d6d7fcf18c1dda4d4b2" + integrity sha512-ROjHtSLoSVYUBfTieazj/nL8jIX9rZFmHC0yXEU+dx6Y82OcBEGgU9o7VyHMrBFUN9FuQ849MtIPNNLsb4krbg== -react-is@^16.12.0, react-is@^16.13.1: +react-is@^16.13.1: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^18.0.0, react-is@^18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -react-refresh@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" - integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== +react-refresh@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== react-router-dom@^6.14.1: - version "6.16.0" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.16.0.tgz" - integrity sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg== + version "6.26.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.26.0.tgz#8debe13295c58605c04f93018d659a763245e58c" + integrity sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ== dependencies: - "@remix-run/router" "1.9.0" - react-router "6.16.0" + "@remix-run/router" "1.19.0" + react-router "6.26.0" -react-router@6.16.0: - version "6.16.0" - resolved "https://registry.npmjs.org/react-router/-/react-router-6.16.0.tgz" - integrity sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA== +react-router@6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.26.0.tgz#d5af4c46835b202348ef2b7ddacd32a2db539fde" + integrity sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg== dependencies: - "@remix-run/router" "1.9.0" + "@remix-run/router" "1.19.0" react@^18, react@^18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" readable-stream@^2.0.1, readable-stream@^2.2.2: version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -8204,7 +8055,7 @@ readable-stream@^2.0.1, readable-stream@^2.2.2: readable-stream@^3.0.6: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -8213,14 +8064,14 @@ readable-stream@^3.0.6: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" recast@^0.17.3: version "0.17.6" - resolved "https://registry.npmjs.org/recast/-/recast-0.17.6.tgz" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.17.6.tgz#64ae98d0d2dfb10ff92ff5fb9ffb7371823b69fa" integrity sha512-yoQRMRrK1lszNtbkGyM4kN45AwylV5hMiuEveUBlxytUViWevjvX6w+tzJt1LH4cfUhWt4NZvy3ThIhu6+m5wQ== dependencies: ast-types "0.12.4" @@ -8230,64 +8081,66 @@ recast@^0.17.3: rechoir@^0.8.0: version "0.8.0" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: resolve "^1.20.0" reflect.getprototypeof@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz" - integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" globalthis "^1.0.3" which-builtin-type "^1.1.3" regenerate-unicode-properties@^10.1.0: version "10.1.1" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.11.0: version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" regexpu-core@^5.3.1: version "5.3.2" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: "@babel/regjsgen" "^0.8.0" @@ -8299,19 +8152,19 @@ regexpu-core@^5.3.1: regjsparser@^0.9.1: version "0.9.1" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" relateurl@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== renderkid@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== dependencies: css-select "^4.1.3" @@ -8322,70 +8175,65 @@ renderkid@^3.0.0: repeat-string@^1.5.2: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== requizzle@^0.2.3: version "0.2.4" - resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== dependencies: lodash "^4.17.21" resize-observer-polyfill@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== - resolve@^1.1.6, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.4: +resolve@^2.0.0-next.5: version "2.0.0-next.5" - resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: is-core-module "^2.13.0" @@ -8394,39 +8242,39 @@ resolve@^2.0.0-next.4: retry@^0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== right-align@^0.1.1: version "0.1.3" - resolved "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" integrity sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg== dependencies: align-text "^0.1.1" rimraf@^2.5.4: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rimraf@^5.0.0, rimraf@^5.0.1: - version "5.0.5" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + version "5.0.10" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" + integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== dependencies: glob "^10.3.7" @@ -8441,7 +8289,7 @@ rollup-plugin-dts@^5.3.0: rollup-plugin-typescript2@^0.36.0: version "0.36.0" - resolved "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz" + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz#309564eb70d710412f5901344ca92045e180ed53" integrity sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw== dependencies: "@rollup/pluginutils" "^4.1.2" @@ -8452,81 +8300,87 @@ rollup-plugin-typescript2@^0.36.0: rollup@^3.20.2, rollup@^3.27.1, rollup@^3.27.2: version "3.29.4" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== optionalDependencies: fsevents "~2.3.2" rollup@^4.0.0: - version "4.1.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.1.4.tgz#cf0ab00d9183a3d11fcc5d630270463b13831221" - integrity sha512-U8Yk1lQRKqCkDBip/pMYT+IKaN7b7UesK3fLSTuHBoBJacCE+oBqo/dfG/gkUdQNNB2OBmRP98cn2C2bkYZkyw== + version "4.20.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.20.0.tgz#f9d602161d29e178f0bf1d9f35f0a26f83939492" + integrity sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.1.4" - "@rollup/rollup-android-arm64" "4.1.4" - "@rollup/rollup-darwin-arm64" "4.1.4" - "@rollup/rollup-darwin-x64" "4.1.4" - "@rollup/rollup-linux-arm-gnueabihf" "4.1.4" - "@rollup/rollup-linux-arm64-gnu" "4.1.4" - "@rollup/rollup-linux-arm64-musl" "4.1.4" - "@rollup/rollup-linux-x64-gnu" "4.1.4" - "@rollup/rollup-linux-x64-musl" "4.1.4" - "@rollup/rollup-win32-arm64-msvc" "4.1.4" - "@rollup/rollup-win32-ia32-msvc" "4.1.4" - "@rollup/rollup-win32-x64-msvc" "4.1.4" + "@rollup/rollup-android-arm-eabi" "4.20.0" + "@rollup/rollup-android-arm64" "4.20.0" + "@rollup/rollup-darwin-arm64" "4.20.0" + "@rollup/rollup-darwin-x64" "4.20.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.20.0" + "@rollup/rollup-linux-arm-musleabihf" "4.20.0" + "@rollup/rollup-linux-arm64-gnu" "4.20.0" + "@rollup/rollup-linux-arm64-musl" "4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.20.0" + "@rollup/rollup-linux-riscv64-gnu" "4.20.0" + "@rollup/rollup-linux-s390x-gnu" "4.20.0" + "@rollup/rollup-linux-x64-gnu" "4.20.0" + "@rollup/rollup-linux-x64-musl" "4.20.0" + "@rollup/rollup-win32-arm64-msvc" "4.20.0" + "@rollup/rollup-win32-ia32-msvc" "4.20.0" + "@rollup/rollup-win32-x64-msvc" "4.20.0" fsevents "~2.3.2" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + get-intrinsic "^1.2.4" has-symbols "^1.0.3" isarray "^2.0.5" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" schema-utils@^2.6.5: version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" @@ -8535,7 +8389,7 @@ schema-utils@^2.6.5: schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" @@ -8544,7 +8398,7 @@ schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: schema-utils@^4.0.0: version "4.2.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== dependencies: "@types/json-schema" "^7.0.9" @@ -8552,45 +8406,44 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -scroll-into-view-if-needed@^3.0.3: +scroll-into-view-if-needed@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f" integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ== dependencies: compute-scroll-into-view "^3.0.2" -scule@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.0.0.tgz#895e6f4ba887e78d8b9b4111e23ae84fef82376d" - integrity sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ== +scule@^1.0.0, scule@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" + integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: + "@types/node-forge" "^1.3.0" node-forge "^1" -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.2: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== send@0.18.0: version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" @@ -8607,16 +8460,16 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" @@ -8629,7 +8482,7 @@ serve-index@^1.9.1: serve-static@1.15.0: version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" @@ -8637,133 +8490,151 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-function-name@^2.0.0, set-function-name@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - define-data-property "^1.0.1" + 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" + +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== showdown@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/showdown/-/showdown-2.1.0.tgz#1251f5ed8f773f0c0c7bfc8e6fd23581f9e545c5" integrity sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ== dependencies: commander "^9.0.0" -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +sinon@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.0.tgz#69ca293dbc3e82590a8b0d46c97f63ebc1e5fc01" + integrity sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA== + dependencies: + "@sinonjs/commons" "^3.0.1" + "@sinonjs/fake-timers" "^11.2.2" + "@sinonjs/samsam" "^8.0.0" + diff "^5.2.0" + nise "^6.0.0" + supports-color "^7" + sisteransi@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slash@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== sockjs@^0.3.24: version "0.3.24" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" uuid "^8.3.2" websocket-driver "^0.7.4" -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" +source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@~0.5.1: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -8775,7 +8646,7 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" @@ -8784,26 +8655,14 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - statuses@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== "statuses@>= 1.4.0 < 2": version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== streamsearch@^1.1.0: @@ -8813,29 +8672,21 @@ streamsearch@^1.1.0: string-convert@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -8844,126 +8695,140 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.matchall@^4.0.8: - version "4.0.10" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz" - integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== +string.prototype.matchall@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + 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" + get-intrinsic "^1.2.4" + gopd "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.5" - regexp.prototype.flags "^1.5.0" - set-function-name "^2.0.0" - side-channel "^1.0.4" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + define-properties "^1.1.3" + es-abstract "^1.17.5" -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string_decoder@^1.1.1, string_decoder@~1.1.1: +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-indent@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: min-indent "^1.0.0" strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-outer@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== dependencies: escape-string-regexp "^1.0.2" style-loader@^3.3.1: - version "3.3.3" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz" - integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + version "3.3.4" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== style-mod@^4.0.0, style-mod@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz" - integrity sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA== + version "4.1.2" + resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" + integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== styled-jsx@5.1.1: version "5.1.1" @@ -8972,35 +8837,43 @@ styled-jsx@5.1.1: dependencies: client-only "0.0.1" +stylehacks@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.2.tgz#cc0ec317e9d5b30fdbdfe7ed6b8d3b1a8c57fa06" + integrity sha512-HdkWZS9b4gbgYTdMg4gJLmm7biAUug1qTqXjS+u8X+/pUd+9Px1E+520GnOW3rST9MNsVOVpsJG+mPHNosxjOQ== + dependencies: + browserslist "^4.23.1" + postcss-selector-parser "^6.1.0" + stylis@^4.0.13: - version "4.3.0" - resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz" - integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444" + integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7, supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-url-loader@^8.0.0: @@ -9010,9 +8883,22 @@ svg-url-loader@^8.0.0: dependencies: file-loader "~6.2.0" +svgo@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + sync-request@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== dependencies: http-response-object "^3.0.1" @@ -9021,25 +8907,25 @@ sync-request@^6.1.0: sync-rpc@^1.2.1: version "1.3.6" - resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" + resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== dependencies: get-port "^3.1.0" taffydb@2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tar@^6.1.11: - version "6.2.0" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -9048,21 +8934,21 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -terser-webpack-plugin@^5.3.7, terser-webpack-plugin@^5.3.9: - version "5.3.9" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.10.0, terser@^5.15.1, terser@^5.16.8: - version "5.21.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.21.0.tgz" - integrity sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw== +terser@^5.10.0, terser@^5.15.1, terser@^5.26.0: + version "5.31.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.3.tgz#b24b7beb46062f4653f049eea4f0cd165d0f0c38" + integrity sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9071,7 +8957,7 @@ terser@^5.10.0, terser@^5.15.1, terser@^5.16.8: test-exclude@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -9080,12 +8966,12 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== then-request@^6.0.0: version "6.0.2" - resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== dependencies: "@types/concat-stream" "^1.6.0" @@ -9100,93 +8986,69 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -throttle-debounce@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz" - integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== +throttle-debounce@^5.0.0, throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== thunky@^1.0.2: version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - to-fast-properties@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toggle-selection@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== token-stream@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" integrity sha512-nfjOAu/zAWmX9tgwi5NRp7O7zTDUD1miHiB40klUnAh9qnL1iXdgzcz/i5dMaL5jahcBAaSfmNOBBJBLJW8TEg== -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - tr46@~0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trim-repeated@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== dependencies: escape-string-regexp "^1.0.2" -ts-jest@^29.1.1: - version "29.1.1" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz" - integrity sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^29.0.0" - json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" - ts-map@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/ts-map/-/ts-map-1.0.3.tgz#1c4d218dec813d2103b7e04e4bcf348e1471c1ff" integrity sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w== ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -9202,10 +9064,10 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -9214,123 +9076,128 @@ tsconfig-paths@^3.14.2: tslib@^1.8.1: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.1, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-detect@4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-detect@^4.0.8: + version "4.1.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== + type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - is-typed-array "^1.1.9" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript@^3.2.2: version "3.9.10" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== typescript@^4.5.4: version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typescript@^5, typescript@^5.0.4, typescript@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -ufo@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.1.tgz#e085842f4627c41d4c1b60ebea1f75cdab4ce86b" - integrity sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw== +ufo@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== uglify-js@^2.6.1: version "2.8.29" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" integrity sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w== dependencies: source-map "~0.5.1" @@ -9340,12 +9207,12 @@ uglify-js@^2.6.1: uglify-to-browserify@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" integrity sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -9385,28 +9252,28 @@ unbuild@^1.2.1: untyped "^1.3.2" underscore@^1.13.2, underscore@~1.13.2: - version "1.13.6" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - -undici-types@~5.25.1: - version "5.25.3" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz" - integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== + version "1.13.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10" + integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" + integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -9414,75 +9281,75 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== untyped@^1.3.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/untyped/-/untyped-1.4.0.tgz#c2e84bea78372ca7841f179504d5596af4e85a89" - integrity sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q== - dependencies: - "@babel/core" "^7.22.9" - "@babel/standalone" "^7.22.9" - "@babel/types" "^7.22.5" - defu "^6.1.2" - jiti "^1.19.1" + version "1.4.2" + resolved "https://registry.yarnpkg.com/untyped/-/untyped-1.4.2.tgz#7945ea53357635434284e6112fd1afe84dd5dcab" + integrity sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q== + dependencies: + "@babel/core" "^7.23.7" + "@babel/standalone" "^7.23.8" + "@babel/types" "^7.23.6" + defu "^6.1.4" + jiti "^1.21.0" mri "^1.2.0" - scule "^1.0.0" + scule "^1.2.0" -update-browserslist-db@^1.0.13: - 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== +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utila@~0.4: version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache-lib@^3.0.1: @@ -9490,10 +9357,10 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: - version "9.1.3" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b" - integrity sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg== +v8-to-istanbul@^9.0.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -9501,13 +9368,13 @@ v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: vary@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vite@^4.4.12: - version "4.4.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.12.tgz#e9c355d5a0d8a47afa46cb4bad10820da333da5c" - integrity sha512-KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ== + version "4.5.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.3.tgz#d88a4529ea58bae97294c7e2e6f0eab39a50fb1a" + integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg== dependencies: esbuild "^0.18.10" postcss "^8.4.27" @@ -9517,12 +9384,12 @@ vite@^4.4.12: void-elements@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== vue-docgen-api@^3.26.0: version "3.26.0" - resolved "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-3.26.0.tgz" + resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-3.26.0.tgz#2afc6a39e72862fbbc60ceb8510c681749f05460" integrity sha512-ujdg4i5ZI/wE46RZQMFzKnDGyhEuPCu+fMA86CAd9EIek/6+OqraSVBm5ZkLrbEd5f8xxdnqMU4yiSGHHeao/Q== dependencies: "@babel/parser" "^7.2.3" @@ -9537,32 +9404,25 @@ vue-docgen-api@^3.26.0: vue-template-compiler "^2.0.0" vue-template-compiler@^2.0.0: - version "2.7.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" - integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== + version "2.7.16" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" + integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== dependencies: de-indent "^1.0.2" he "^1.2.0" vue2-ace-editor@^0.0.15: version "0.0.15" - resolved "https://registry.npmjs.org/vue2-ace-editor/-/vue2-ace-editor-0.0.15.tgz" + resolved "https://registry.yarnpkg.com/vue2-ace-editor/-/vue2-ace-editor-0.0.15.tgz#569b208e54ae771ae1edd3b8902ac42f0edc74e3" integrity sha512-e3TR9OGXc71cGpvYcW068lNpRcFt3+OONCC81oxHL/0vwl/V3OgqnNMw2/RRolgQkO/CA5AjqVHWmANWKOtNnQ== dependencies: brace "^0.11.0" w3c-keyname@^2.2.4: version "2.2.8" - resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - wasm-pack@^0.12.1: version "0.12.1" resolved "https://registry.yarnpkg.com/wasm-pack/-/wasm-pack-0.12.1.tgz#974c1fbbf5b65c9e135e0d1fba3a97de1a21a489" @@ -9570,34 +9430,42 @@ wasm-pack@^0.12.1: dependencies: binary-install "^1.0.1" -watchpack@2.4.0, watchpack@^2.4.0: +watchpack@2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" web-vitals@^0.2.4: version "0.2.4" - resolved "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz#ec3df43c834a207fd7cdefd732b2987896e08511" integrity sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg== webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webpack-cli@^5.1.4: version "5.1.4" - resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" @@ -9614,10 +9482,10 @@ webpack-cli@^5.1.4: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" memfs "^3.4.3" @@ -9626,9 +9494,9 @@ webpack-dev-middleware@^5.3.1: schema-utils "^4.0.0" webpack-dev-server@^4.15.1: - version "4.15.1" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz" - integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -9658,55 +9526,56 @@ webpack-dev-server@^4.15.1: serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" + webpack-dev-middleware "^5.3.4" ws "^8.13.0" webpack-merge@^5.7.3: - version "5.9.0" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz" - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" + flat "^5.0.2" wildcard "^2.0.0" webpack-sources@^3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.76.0: - version "5.88.2" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== + version "5.93.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.93.0.tgz#2e89ec7035579bdfba9760d26c63ac5c3462a5e5" + integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" + acorn-import-attributes "^1.9.5" + browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" + enhanced-resolve "^5.17.0" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" + graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" @@ -9715,12 +9584,12 @@ websocket-driver@>=0.5.1, websocket-driver@^0.7.4: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -9728,7 +9597,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -9738,12 +9607,12 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-builtin-type@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz" - integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== dependencies: - function.prototype.name "^1.1.5" - has-tostringtag "^1.0.0" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" is-async-function "^2.0.0" is-date-object "^1.0.5" is-finalizationregistry "^1.0.2" @@ -9752,63 +9621,73 @@ which-builtin-type@^1.1.3: is-weakref "^1.0.2" isarray "^2.0.5" which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" + which-collection "^1.0.2" + which-typed-array "^1.1.15" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.9: - version "1.1.11" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.2" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wildcard@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== window-size@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== with@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/with/-/with-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" integrity sha512-uAnSsFGfSpF6DNhBXStvlZILfHJfJu4eUkfbRGk94kGO1Ta7bg6FwfvoOhhyHAJuFbCw+0xk4uJ3u57jLvlCJg== dependencies: acorn "^3.1.0" acorn-globals "^3.0.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + wordwrap@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -9817,7 +9696,7 @@ wordwrap@0.0.2: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -9826,7 +9705,7 @@ wrap-ansi@^7.0.0: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -9835,60 +9714,57 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - ws@^8.13.0: - version "8.14.2" - resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== xmlcreate@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.1, yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs-unparser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" yargs@^16.2.0: version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -9899,22 +9775,9 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.3.1: - version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@~3.10.0: version "3.10.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" integrity sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A== dependencies: camelcase "^1.0.2" @@ -9929,5 +9792,5 @@ yn@3.1.1: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
Mike Turner
Mike Turner

πŸ’» 🚧 πŸ’¬ πŸ‘€
Brent C
Brent C

πŸ’» 🚧 πŸ’¬ πŸ‘€
Collin Chin
Collin Chin

πŸ’» 🚧 πŸ’¬ πŸ‘€
Howard Wu
Howard Wu

πŸ’» πŸ€” πŸ”¬ πŸ‘€
Raymond Chu
Raymond Chu

πŸ’» πŸ€” πŸ”¬ πŸ‘€
d0cd
d0cd

πŸ’» πŸ€” πŸ”¬ πŸ‘€
Alessandro Coglio
Alessandro Coglio

πŸ“– πŸ”¬ πŸ‘€
Mike Turner
Mike Turner

πŸ’» 🚧 πŸ’¬ πŸ‘€
Brent C
Brent C

πŸ’» 🚧 πŸ’¬ πŸ‘€
Collin Chin
Collin Chin

πŸ’» 🚧 πŸ’¬ πŸ‘€
Howard Wu
Howard Wu

πŸ’» πŸ€” πŸ”¬ πŸ‘€
Raymond Chu
Raymond Chu

πŸ’» πŸ€” πŸ”¬ πŸ‘€
d0cd
d0cd

πŸ’» πŸ€” πŸ”¬ πŸ‘€
Alessandro Coglio
Alessandro Coglio

πŸ“– πŸ”¬ πŸ‘€
a h
a h

πŸ’» πŸ“–
Anthony DiPrinzio
Anthony DiPrinzio

πŸ’»
Ali Mousa
Ali Mousa

πŸ’»
Ivan Litteri
Ivan Litteri

πŸ’»
Nacho Avecilla
Nacho Avecilla

πŸ’»
ljedrz
ljedrz

πŸ’»
Facundo Olano
Facundo Olano

πŸ’»
a h
a h

πŸ’» πŸ“–
Anthony DiPrinzio
Anthony DiPrinzio

πŸ’»
Ali Mousa
Ali Mousa

πŸ’»
Ivan Litteri
Ivan Litteri

πŸ’»
Nacho Avecilla
Nacho Avecilla

πŸ’»
ljedrz
ljedrz

πŸ’»
Facundo Olano
Facundo Olano

πŸ’»
Nicolas Continanza
Nicolas Continanza

πŸ’»
Mike
Mike

πŸ’»
Javier RodrΓ­guez Chatruc
Javier RodrΓ­guez Chatruc

πŸ’»
Pablo Deymonnaz
Pablo Deymonnaz

πŸ’»
Bob Niu
Bob Niu

πŸ’»
sptg
sptg

πŸ’»
Hamza Khchichine
Hamza Khchichine

πŸ’»
Nicolas Continanza
Nicolas Continanza

πŸ’»
Mike
Mike

πŸ’»
Javier RodrΓ­guez Chatruc
Javier RodrΓ­guez Chatruc

πŸ’»
Pablo Deymonnaz
Pablo Deymonnaz

πŸ’»
Bob Niu
Bob Niu

πŸ’»
sptg
sptg

πŸ’»
Hamza Khchichine
Hamza Khchichine

πŸ’»
Kendrick
Kendrick

πŸ’»
Dependabot
Dependabot

πŸ’»
All Contributors
All Contributors

πŸ“–
Kendrick
Kendrick

πŸ’»
Dependabot
Dependabot

πŸ’»
All Contributors
All Contributors

πŸ“–