From 0db9ee744bf7facff2cf5a3e7773e87e91ccd798 Mon Sep 17 00:00:00 2001 From: Doris Benda Date: Wed, 29 Nov 2023 15:38:45 +0300 Subject: [PATCH] Initial sponsored transaction enabled auction --- .gitignore | 4 +- README.md | 4 +- sponsoredTransactionsAuction/Dockerfile | 35 + sponsoredTransactionsAuction/README.md | 55 + .../backend/CHANGELOG.md | 9 + .../backend/Cargo.lock | 3329 ++++++ .../backend/Cargo.toml | 28 + .../backend/README.md | 83 + .../backend/pic/pic1.png | Bin 0 -> 25521 bytes .../backend/pic/pic2.png | Bin 0 -> 30280 bytes .../backend/pic/pic3.png | Bin 0 -> 29567 bytes .../backend/src/handlers.rs | 350 + .../backend/src/main.rs | 161 + .../backend/src/types.rs | 126 + .../frontend/.eslintignore | 10 + .../frontend/.eslintrc.js | 57 + .../frontend/.yarnrc.yml | 1 + .../frontend/CHANGELOG.md | 21 + .../frontend/Jenkinsfile | 36 + .../frontend/README.md | 50 + .../frontend/esbuild.config.ts | 68 + .../frontend/package.json | 62 + .../frontend/src/Root.tsx | 19 + .../frontend/src/SponsoredTransactions.tsx | 773 ++ .../src/WalletConnectorTypeButton.tsx | 51 + .../src/assets/Concordium_background.svg | 9 + .../frontend/src/assets/favicon.ico | 5 + .../frontend/src/constants.ts | 41 + .../frontend/src/index.css | 88 + .../frontend/src/index.html | 19 + .../frontend/src/index.tsx | 15 + .../frontend/src/utils.ts | 217 + .../frontend/tsconfig.json | 26 + .../frontend/types/svg.d.ts | 1 + .../frontend/yarn.lock | 9389 +++++++++++++++++ 35 files changed, 15139 insertions(+), 3 deletions(-) create mode 100644 sponsoredTransactionsAuction/Dockerfile create mode 100644 sponsoredTransactionsAuction/README.md create mode 100644 sponsoredTransactionsAuction/backend/CHANGELOG.md create mode 100644 sponsoredTransactionsAuction/backend/Cargo.lock create mode 100644 sponsoredTransactionsAuction/backend/Cargo.toml create mode 100644 sponsoredTransactionsAuction/backend/README.md create mode 100644 sponsoredTransactionsAuction/backend/pic/pic1.png create mode 100644 sponsoredTransactionsAuction/backend/pic/pic2.png create mode 100644 sponsoredTransactionsAuction/backend/pic/pic3.png create mode 100644 sponsoredTransactionsAuction/backend/src/handlers.rs create mode 100644 sponsoredTransactionsAuction/backend/src/main.rs create mode 100644 sponsoredTransactionsAuction/backend/src/types.rs create mode 100644 sponsoredTransactionsAuction/frontend/.eslintignore create mode 100644 sponsoredTransactionsAuction/frontend/.eslintrc.js create mode 100644 sponsoredTransactionsAuction/frontend/.yarnrc.yml create mode 100644 sponsoredTransactionsAuction/frontend/CHANGELOG.md create mode 100644 sponsoredTransactionsAuction/frontend/Jenkinsfile create mode 100644 sponsoredTransactionsAuction/frontend/README.md create mode 100644 sponsoredTransactionsAuction/frontend/esbuild.config.ts create mode 100644 sponsoredTransactionsAuction/frontend/package.json create mode 100644 sponsoredTransactionsAuction/frontend/src/Root.tsx create mode 100644 sponsoredTransactionsAuction/frontend/src/SponsoredTransactions.tsx create mode 100644 sponsoredTransactionsAuction/frontend/src/WalletConnectorTypeButton.tsx create mode 100644 sponsoredTransactionsAuction/frontend/src/assets/Concordium_background.svg create mode 100644 sponsoredTransactionsAuction/frontend/src/assets/favicon.ico create mode 100644 sponsoredTransactionsAuction/frontend/src/constants.ts create mode 100644 sponsoredTransactionsAuction/frontend/src/index.css create mode 100644 sponsoredTransactionsAuction/frontend/src/index.html create mode 100644 sponsoredTransactionsAuction/frontend/src/index.tsx create mode 100644 sponsoredTransactionsAuction/frontend/src/utils.ts create mode 100644 sponsoredTransactionsAuction/frontend/tsconfig.json create mode 100644 sponsoredTransactionsAuction/frontend/types/svg.d.ts create mode 100644 sponsoredTransactionsAuction/frontend/yarn.lock diff --git a/.gitignore b/.gitignore index 35417fd7..e9e719c1 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,7 @@ node_modules .env.development.local .env.test.local .env.production.local -.yarn/* +/**/.yarn/* npm-debug.log* yarn-debug.log* @@ -27,4 +27,4 @@ yarn-error.log* target dist gallery/public -.eslintcache \ No newline at end of file +.eslintcache diff --git a/README.md b/README.md index 76723927..ed6a6da8 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,9 @@ The following examples are available. - [gallery](./gallery/) demonstrates a gallery which requires the user to authorize using ID proofs from the browser wallet. -- [sponsoredTransactions](./sponsoredTransactions/) demonstrates how a user (without holding CCD in the wallet) can sign a message with the browser wallet or mobile wallet through wallet connect and submit the signature to a backend. The backend pays for the transaction fee and submits the sponsored transaction on behalf of the user to the chain. +- [sponsoredTransactionsBasic](./sponsoredTransactionsBasic/) demonstrates how a user (without holding CCD in the wallet) can sign a message with the browser wallet or mobile wallet through wallet connect and submit the signature to a backend. The backend pays for the transaction fee and submits the sponsored transaction on behalf of the user to the chain. + +- [sponsoredTransactionsAuction](./sponsoredTransactionsAuction/) demonstrates how to use a sponsored-transaction-enabled token as a payment method in an auction contract so that the user does not have to hold CCD in their wallet. The user signs a bidding message with the browser wallet or mobile wallet through wallet connect and submit the signature to a backend. The backend pays for the transaction fee and submits the sponsored transaction on behalf of the user to the chain. - [simple age verification](./simpleAgeVerification/) demonstrates in a simple use case of verifiying the users age with the browser wallet. diff --git a/sponsoredTransactionsAuction/Dockerfile b/sponsoredTransactionsAuction/Dockerfile new file mode 100644 index 00000000..ce2599c8 --- /dev/null +++ b/sponsoredTransactionsAuction/Dockerfile @@ -0,0 +1,35 @@ +ARG node_base_image=node:16-slim +ARG rust_base_image=rust:1.65 + +FROM ${node_base_image} AS frontend + +WORKDIR /app +COPY ./sponsoredTransactions/frontend ./ + +RUN yarn && yarn cache clean +RUN yarn build + +FROM ${rust_base_image} AS backend + +WORKDIR /backend +COPY ./deps/concordium-rust-sdk /deps/concordium-rust-sdk +COPY ./sponsoredTransactions/backend ./ + +RUN cargo build --release + +FROM ubuntu:22.04 +WORKDIR /build + +ENV PORT=8080 +ENV NODE=http://node.testnet.concordium.com:20000 +ENV LOG_LEVEL=info +ENV SMART_CONTRACT_INDEX=6372 + +ENV ACCOUNT_KEY_FILE=/KEY_FILE + +COPY --from=backend ./backend/target/release/sponsored-transaction-backend ./main +COPY --from=frontend ./app/dist ./public + +RUN chmod +x ./main + +CMD ./main --node "${NODE}" --port "${PORT}" --account "${ACCOUNT_KEY_FILE}" --smart-contract-index "${SMART_CONTRACT_INDEX}" --log-level "${LOG_LEVEL}" --public-folder public diff --git a/sponsoredTransactionsAuction/README.md b/sponsoredTransactionsAuction/README.md new file mode 100644 index 00000000..8d776e28 --- /dev/null +++ b/sponsoredTransactionsAuction/README.md @@ -0,0 +1,55 @@ +# Sponsored Transactions Auction Web Application + +This repository includes a dApp example of an auction. Users can bid for the items in the auction contract by using a sponsored-transaction-enabled token as a payment method (no CCD required in the user's wallet). The project has a front end and a back end. + +Clone the root repo with the following command: + +```shell +git clone --recurse-submodules git@github.com:Concordium/concordium-dapp-examples.git +``` + +or +```shell +git clone --recurse-submodules https://github.com/Concordium/concordium-dapp-examples.git +``` + +To set up the project locally, complete the steps in the `README.md` file in the `sponsoredTransactions/frontend` folder and then complete the steps in the `README.md` file in the `sponsoredTransactions/backend` folder. + +Alternatively, follow the steps to deploy the docker container below. This docker container will set up the frontend as well as the backend. + +## Run as docker + +Add your `ACCOUNT_KEY_FILE` to the repository's root folder and run the dockerfile from the repository's root folder with the command: +```shell +docker build -t sponsored_transactions -f sponsoredTransactions/Dockerfile . +``` + + +The image can then be run with: +```shell +docker run -p 8080:8080 --mount type=bind,source="$(pwd)"/,target=/KEY_FILE,readonly sponsored_transactions +``` + +e.g. + +```shell +docker run -p 8080:8080 --mount type=bind,source="$(pwd)"/3PXwJYYPf6fyVb4GJquxSZU8puxrHfzc4XogdMVot8MUQK53tW.export,target=/KEY_FILE,readonly sponsored_transactions +``` + +Note: To get your `ACCOUNT_KEY_FILE` (the `3PXwJYYPf6fyVb4GJquxSZU8puxrHfzc4XogdMVot8MUQK53tW.export` file), export it from the Concordium Browser Wallet for Web. + + + + + +See the [docker file](./Dockerfile) to explore the environment variables that can set. + +Note: Use the same smart contract index for the frontend and backend. In other words, use the smart contract index from the `./frontend/package.json` file in the dockerfile. + + + +## Explore the tutorial + +You can find an associated tutorial on the [developer documentation](./https://developer.concordium.software/en/mainnet/smart-contracts/tutorials/index.html). + + diff --git a/sponsoredTransactionsAuction/backend/CHANGELOG.md b/sponsoredTransactionsAuction/backend/CHANGELOG.md new file mode 100644 index 00000000..c5ede65f --- /dev/null +++ b/sponsoredTransactionsAuction/backend/CHANGELOG.md @@ -0,0 +1,9 @@ +## Unreleased changes + +## 2.0.0 + +- Use `AccountSignatures` type for the input parameter to the `permit` function. The sponsored transaction smart contract uses the `check_account_signature` host function with the `AccountSignatures` type as input parameter to verify signatures in the smart contract now. + +## 1.0.0 + +- Initial sponsored transaction back end. diff --git a/sponsoredTransactionsAuction/backend/Cargo.lock b/sponsoredTransactionsAuction/backend/Cargo.lock new file mode 100644 index 00000000..b77db369 --- /dev/null +++ b/sponsoredTransactionsAuction/backend/Cargo.lock @@ -0,0 +1,3329 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.8", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "async-stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "async-trait" +version = "0.1.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08b108ad2665fa3f6e6a517c3d80ec3e77d224c47d605167aefaa5d7ef97fa48" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "borsh" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" +dependencies = [ + "borsh-derive", + "hashbrown 0.11.2", +] + +[[package]] +name = "borsh-derive" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.104", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "buf_redux" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" +dependencies = [ + "memchr", + "safemem", +] + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "bytecheck" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "time 0.1.45", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d" +dependencies = [ + "bitflags", + "clap_derive", + "clap_lex", + "is-terminal", + "once_cell", + "strsim", + "termcolor", +] + +[[package]] +name = "clap_derive" +version = "4.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "clap_lex" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "concordium-contracts-common" +version = "7.1.0" +dependencies = [ + "base64 0.21.2", + "bs58", + "chrono", + "concordium-contracts-common-derive", + "fnv", + "hashbrown 0.11.2", + "hex", + "num-bigint 0.4.3", + "num-integer", + "num-traits", + "rust_decimal", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "concordium-contracts-common-derive" +version = "3.0.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "concordium-rust-sdk" +version = "3.0.0" +dependencies = [ + "aes-gcm", + "anyhow", + "chrono", + "concordium-smart-contract-engine", + "concordium_base", + "derive_more", + "ed25519-dalek", + "futures", + "hex", + "http", + "num", + "num-bigint 0.4.3", + "num-traits", + "prost", + "rand 0.7.3", + "rust_decimal", + "semver", + "serde", + "serde_json", + "sha2 0.10.6", + "thiserror", + "tokio", + "tonic", +] + +[[package]] +name = "concordium-smart-contract-engine" +version = "2.0.0" +dependencies = [ + "anyhow", + "byteorder", + "concordium-contracts-common", + "concordium-wasm", + "derive_more", + "ed25519-zebra", + "futures", + "libc", + "num_enum", + "rand 0.8.5", + "secp256k1", + "serde", + "sha2 0.10.6", + "sha3", + "slab", + "thiserror", + "tinyvec", +] + +[[package]] +name = "concordium-wasm" +version = "2.0.0" +dependencies = [ + "anyhow", + "concordium-contracts-common", + "derive_more", + "leb128", + "num_enum", +] + +[[package]] +name = "concordium_base" +version = "2.0.0" +dependencies = [ + "aes", + "anyhow", + "base64 0.13.1", + "bs58", + "byteorder", + "cbc", + "chrono", + "concordium-contracts-common", + "concordium_base_derive", + "curve25519-dalek", + "derive_more", + "ed25519-dalek", + "either", + "ff", + "group", + "hex", + "hmac", + "itertools", + "leb128", + "libc", + "nom", + "num", + "num-bigint 0.4.3", + "num-traits", + "pairing", + "pbkdf2", + "rand 0.7.3", + "rand_core 0.5.1", + "rayon", + "rust_decimal", + "serde", + "serde_json", + "serde_with", + "sha2 0.10.6", + "sha3", + "subtle", + "thiserror", + "zeroize", +] + +[[package]] +name = "concordium_base_derive" +version = "1.0.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "cxx" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 1.0.104", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.27", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "deranged" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +dependencies = [ + "serde", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.104", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer 0.10.3", + "crypto-common", + "subtle", +] + +[[package]] +name = "ed25519" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +dependencies = [ + "curve25519-dalek", + "hashbrown 0.12.3", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + +[[package]] +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "ff" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4530da57967e140ee0b44e0143aa66b5cb42bd9c503dbe316a15d5b0be65713e" +dependencies = [ + "byteorder", + "ff_derive", + "rand_core 0.5.1", +] + +[[package]] +name = "ff_derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5796e7d62ca01a00ed3a649b0da1ffa1ac8f06bcad40339df09dbdd69a05ba9" +dependencies = [ + "num-bigint 0.2.6", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" + +[[package]] +name = "group" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cbdfc48f95bef47e3daf3b9d552a1dde6311e3a5fefa43e16c59f651d56fe5b" +dependencies = [ + "ff", + "rand 0.7.3", + "rand_xorshift", +] + +[[package]] +name = "h2" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "headers" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64 0.13.1", + "bitflags", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +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-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] + +[[package]] +name = "is-terminal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330" +dependencies = [ + "hermit-abi 0.2.6", + "io-lifetimes", + "rustix", + "windows-sys 0.42.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "multipart" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" +dependencies = [ + "buf_redux", + "httparse", + "log", + "mime", + "mime_guess", + "quick-error", + "rand 0.8.5", + "safemem", + "tempfile", + "twoway", +] + +[[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" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-bigint 0.4.3", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint 0.4.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +dependencies = [ + "hermit-abi 0.1.19", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.2.1", + "proc-macro2", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "object" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "os_str_bytes" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" + +[[package]] +name = "pairing" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94c40534479a28199cd5109da27fe2fc4a4728e4fc701d9e9c1bded78f3271e4" +dependencies = [ + "byteorder", + "ff", + "group", + "rand_core 0.5.1", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.42.0", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.6", + "hmac", + "password-hash", + "sha2 0.10.6", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pin-project" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "polyval" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.104", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b18e655c21ff5ac2084a5ad0611e827b3f92badf79f4910b5a5c58f4d87ff0" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "164ae68b6587001ca506d3bf7f1000bfa248d0e1217b618108fba4ec1d0cc306" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[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 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "rkyv" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +dependencies = [ + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "rust_decimal" +version = "1.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c321ee4e17d2b7abe12b5d20c1231db708dd36185c8a21e9de5fed6da4dbe9" +dependencies = [ + "arrayvec", + "borsh", + "bytecheck", + "byteorder", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.36.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb93e85278e08bb5788653183213d3a60fc242b10cb9be96586f5a73dcb67c23" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.42.0", +] + +[[package]] +name = "rustls" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +dependencies = [ + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.3", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.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.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "secp256k1" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "295642060261c80709ac034f52fca8e5a9fa2c7d341ded5cdb164b7c33768b2a" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "152e20a0fd0519390fc43ab404663af8a0b794273d2a91d60ad4a39f13ffe110" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c4437699b6d34972de58652c68b98cb5b53a4199ab126db8e20ec8ded29a721" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" + +[[package]] +name = "serde" +version = "1.0.179" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5bf42b8d227d4abf38a1ddb08602e229108a517cd4e5bb28f9c7eaafdce5c0" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.179" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "741e124f5485c7e60c03b043f79f320bff3527f4bbf12cf3831750dc46a0ec2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "serde_json" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +dependencies = [ + "itoa", + "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 = "serde_with" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e47d95bc83ed33b2ecf84f4187ad1ab9685d18ff28db000c99deac8ce180e3" +dependencies = [ + "base64 0.21.2", + "chrono", + "hex", + "indexmap", + "serde", + "serde_json", + "serde_with_macros", + "time 0.3.25", +] + +[[package]] +name = "serde_with_macros" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea3cee93715c2e266b9338b7544da68a9f24e227722ba482bd1c024367c77c65" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha3" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +dependencies = [ + "digest 0.10.6", + "keccak", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "sponsored-transaction-backend" +version = "2.0.0" +dependencies = [ + "anyhow", + "chrono", + "clap", + "concordium-rust-sdk", + "env_logger", + "hex", + "log", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "tokio", + "tonic", + "uuid", + "warp", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", + "unicode-xid", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "time" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +dependencies = [ + "deranged", + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +dependencies = [ + "autocfg", + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.27", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-stream" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tonic" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.13.1", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "rustls-native-certs", + "rustls-pemfile 1.0.3", + "tokio", + "tokio-rustls", + "tokio-stream", + "tokio-util", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "tungstenite" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +dependencies = [ + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twoway" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" +dependencies = [ + "memchr", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +dependencies = [ + "getrandom 0.2.8", + "serde", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "warp" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http", + "hyper", + "log", + "mime", + "mime_guess", + "multipart", + "percent-encoding", + "pin-project", + "rustls-pemfile 0.2.1", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tower-service", + "tracing", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[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.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 1.0.104", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[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.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.0", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm 0.42.0", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "zeroize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", + "synstructure", +] diff --git a/sponsoredTransactionsAuction/backend/Cargo.toml b/sponsoredTransactionsAuction/backend/Cargo.toml new file mode 100644 index 00000000..4901c12a --- /dev/null +++ b/sponsoredTransactionsAuction/backend/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "sponsored-transaction-backend" +version = "2.0.0" +authors = ["Concordium AG "] +edition = "2021" +license-file = "../../LICENSE" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +tokio = { version = "1", features = ["full"] } +tonic = {version = "0.8", features = ["tls", "tls-roots"]} # Use system trust roots. +warp = "0.3" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +log = "0.4.11" +env_logger = "0.9" +clap = { version = "4", features = ["derive"] } +anyhow = "1.0" +chrono = "0.4.19" +thiserror = "1" +rand = "0.8" +uuid = { version = "1.2.2", features = ["v4", "serde"] } +hex = "0.4.3" + +[dependencies.concordium-rust-sdk] +path = "../../deps/concordium-rust-sdk/" + diff --git a/sponsoredTransactionsAuction/backend/README.md b/sponsoredTransactionsAuction/backend/README.md new file mode 100644 index 00000000..5a40bca7 --- /dev/null +++ b/sponsoredTransactionsAuction/backend/README.md @@ -0,0 +1,83 @@ +# The Sponsored Transactions Backend + +This page describes the sponsored transactions backend for this dapp example. + +# Supported configuration options + +The following parameters are supported +- `node` the URL of the node's GRPC V2 interface, e.g., `http://node.testnet.concordium.com:20000` +- `port` the port on which the server will listen for incoming requests +- `log-level` maximum log level (defaults to `debug` if not given) +- `public-folder` the path to the folder, which should be served, defaults to the `public` folder in the current directory. +- `account` the path to a file which contains the key credentials. +- `smart-contract-index` the smart contract index which the sponsored transaction is submitted to. + +All of the above is available by using `--help` to get usage information. + +An example to run the backend with basic settings and testnet node would be: +```shell +cargo run -- --node http://node.testnet.concordium.com:20000 --account --smart-contract-index 4184 +``` + +An example to run the backend with some filled in example settings would be: + +```shell +cargo run -- --node http://node.testnet.concordium.com:20000 --port 8080 --account ./3PXwJYYPf6fyVb4GJquxSZU8puxrHfzc4XogdMVot8MUQK53tW.export --public-folder ../frontend/dist --smart-contract-index 4184 +``` + +To get your account file (the `3PXwJYYPf6fyVb4GJquxSZU8puxrHfzc4XogdMVot8MUQK53tW.export` file in the above example), export it from the Concordium Browser wallet for web. + + + + + +Note: Use the same smart contract index for the frontend and backend. In other words, use the SMART_CONTRACT_INDEX from the `../frontend/package.json` file when starting the backend server. + +# Using the tool + +The backend is a simple server that exposes two endpoints + - `POST /submitUpdateOperator` + - `POST /submitTransfer` + +The overall flow is that the user signs a sponsored updateOperator/transfer message in the browser wallet (or mobile wallet via walletConnect) and sends the signature together with some input parameters to this backend server via one of the above endpoints. The backend creates a sponsored transaction and submits it to the `permit` function in the smart contract {index: SMART_CONTRACT_INDEX, subindex: 0}. You can look up the SMART_CONTRACT_INDEX in the `../frontend/package.json` file. The backend returns the transaction hash to the frontend. This backend server has to have access to a blockchain node and an account (with its associated private key) that is funded with some CCD to submit the sponsored transaction to the chain. The backend wallet will pay for the transaction fees. + +Note: +The smart contract code {index: SMART_CONTRACT_INDEX, subindex: 0} can be found [here](https://github.com/Concordium/concordium-rust-smart-contracts/tree/main/examples/cis3-nft-sponsored-txs). + +See [src/main.rs](./src/main.rs) for the formats of requests and responses. Both +requests and responses are JSON encoded. The requests are handled by handlers in [src/handlers.rs](./src/handlers.rs). + +# Contributing + +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](https://github.com/Concordium/.github/blob/main/.github/CODE_OF_CONDUCT.md) + +This repository's CI automatically checks formatting and common problems in rust. +Changes to any of the packages must be such that +- `cargo clippy --all` produces no warnings +- `rust fmt` makes no changes. + +Everything in this repository should build with stable rust at the moment (at least version 1.62 and up), however the fmt tool must be from a nightly release since some of the configuration options are not stable. One way to run the `fmt` tool is + +```shell + cargo +nightly-2022-06-09 fmt +``` +(the exact version used by the CI can be found in [.github/workflows/ci.yaml](https://github.com/Concordium/concordium-misc-tools/blob/main/.github/workflows/ci.yaml) file). +You will need to have a recent enough nightly version installed, which can be done via + +```shell +rustup toolchain install nightly-2022-06-09 +``` +or similar, using the [rustup](https://rustup.rs/) tool. See the documentation of the tool for more details. + +In order to contribute you should make a pull request and ask a person familiar with the codebase for a review. + +## Building + +The project is a pure Rust project, and can be built by running + +```shell +cargo build --release +``` + +This produces a single binary `target/release/sponsored-transaction-backend`. + diff --git a/sponsoredTransactionsAuction/backend/pic/pic1.png b/sponsoredTransactionsAuction/backend/pic/pic1.png new file mode 100644 index 0000000000000000000000000000000000000000..85432dfb5fdc37ecf0e0482fdbb0c9fe61e39f45 GIT binary patch literal 25521 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 NqNJ%, + request: UpdateOperatorInputParams, + smart_contract_index: u64, + state: Server, +) -> Result { + log::debug!("Create payload."); + + let operator_update = match request.add_operator { + true => OperatorUpdate::Add, + false => OperatorUpdate::Remove, + }; + + let update_operator = UpdateOperator { + update: operator_update, + operator: Address::Account(request.operator), + }; + let payload = UpdateOperatorParams(vec![update_operator]); + + log::debug!("Create PermitMessage."); + + let message: PermitMessage = PermitMessage { + contract_address: ContractAddress { + index: smart_contract_index, + subindex: 0, + }, + nonce: request.nonce, + timestamp: request.timestamp, + entry_point: OwnedEntrypointName::new_unchecked("updateOperator".into()), + payload: concordium_rust_sdk::smart_contracts::common::to_bytes(&payload), + }; + + submit_transaction( + client, + key_update_operator, + state, + message, + request.signature, + request.signer, + smart_contract_index, + ) + .await +} + +pub async fn handle_signature_transfer( + client: concordium_rust_sdk::v2::Client, + key_update_operator: Arc, + request: TransferInputParams, + smart_contract_index: u64, + state: Server, +) -> Result { + log::debug!("Create payload."); + + let transfer = Transfer { + from: Address::Account(request.from), + to: Receiver::Account(request.to), + token_id: request.token_id, + amount: TokenAmount::from_str("1").map_err(|_| LogError::TokenAmountError)?, + data: AdditionalData::new(vec![]).map_err(|_| LogError::AdditionalDataError)?, + }; + + let payload = TransferParams(vec![transfer]); + + log::debug!("Create PermitMessage."); + + let message: PermitMessage = PermitMessage { + contract_address: ContractAddress { + index: smart_contract_index, + subindex: 0, + }, + nonce: request.nonce, + timestamp: request.timestamp, + entry_point: OwnedEntrypointName::new_unchecked("transfer".into()), + payload: concordium_rust_sdk::smart_contracts::common::to_bytes(&payload), + }; + + submit_transaction( + client, + key_update_operator, + state, + message, + request.signature, + request.signer, + smart_contract_index, + ) + .await +} + +pub async fn submit_transaction( + mut client: concordium_rust_sdk::v2::Client, + key: Arc, + state: Server, + message: PermitMessage, + request_signature: String, + signer: AccountAddress, + smart_contract_index: u64, +) -> Result { + log::debug!("Create signature map."); + + let mut signature = [0; 64]; + hex::decode_to_slice(request_signature, &mut signature) + .map_err(|_| LogError::SignatureError)?; + + let mut inner_signature_map = BTreeMap::new(); + inner_signature_map.insert(0, Signature::Ed25519(SignatureEd25519(signature))); + + let mut signature_map = BTreeMap::new(); + signature_map.insert( + 0, + CredentialSignatures { + sigs: inner_signature_map, + }, + ); + + log::debug!("Create Parameter."); + + let param: PermitParam = PermitParam { + message, + signature: AccountSignatures { + sigs: signature_map, + }, + signer, + }; + + let bytes = concordium_rust_sdk::smart_contracts::common::to_bytes(¶m); + + let parameter = + smart_contracts::OwnedParameter::try_from(bytes).map_err(|_| LogError::ParameterError)?; + + let receive_name = + smart_contracts::OwnedReceiveName::try_from(format!("{}.permit", CONTRACT_NAME)) + .map_err(|_| LogError::OwnedReceiveNameError)?; + + log::debug!("Simulate transaction to check its validity."); + + let context = ContractContext { + invoker: Some(concordium_rust_sdk::types::Address::Account(key.address)), + contract: ContractAddress { + index: smart_contract_index, + subindex: 0, + }, + amount: Amount::zero(), + method: receive_name.clone(), + parameter: parameter.clone(), + energy: Energy { energy: ENERGY }, + }; + + let info = client + .invoke_instance(&BlockIdentifier::Best, &context) + .await; + + if info.is_err() { + log::error!("SimulationInvokeError {:#?}.", info); + + return Err(warp::reject::custom(LogError::SimulationInvokeError)); + } + + match &info.as_ref().unwrap().response { + InvokeContractResult::Success { + return_value: _, + events: _, + used_energy: _, + } => log::debug!("TransactionSimulationSuccess"), + InvokeContractResult::Failure { + return_value: _, + reason, + used_energy: _, + } => { + log::error!("TransactionSimulationError {:#?}.", info); + + return Err(warp::reject::custom(LogError::TransactionSimulationError( + RevertReason { + reason: reason.clone(), + }, + ))); + } + } + + log::debug!("Create transaction."); + + let payload = transactions::Payload::Update { + payload: transactions::UpdateContractPayload { + amount: Amount::from_micro_ccd(0), + address: ContractAddress { + index: smart_contract_index, + subindex: 0, + }, + receive_name, + message: parameter, + }, + }; + + // Transaction should expiry after one hour. + let transaction_expiry_seconds = chrono::Utc::now().timestamp() as u64 + 3600; + + // Get the current nonce for the backend wallet and lock it. This is necessary since it is possible that API requests come in parallel. + // The nonce is increased by 1 and its lock is released after the transaction is submitted to the blockchain. + let mut nonce = state.nonce.lock().await; + + // There should be rate limiting in place to prevent the sponsor wallet from being drained. + // We only allow up to RATE_LIMIT_PER_ACCOUNT API calls to this backend. + // The rate_limits are transient and are reset on server restart. + + // We only check the rate_limits after acquiring the nonce lock. If we do it before we don't + // have guarantees due to possible parallel API requests. + + // On mainnet, a user can only create around 25 accounts per identity. + // In production, a user registration/authentication at the frontend can be added or a database that permanently + // keeps track of the rate_limits so that the server can be restarted and reload the rate_limit values from the database. + log::debug!("Check rate limit."); + + let mut rate_limits = state.rate_limits.lock().await; + + let limit = rate_limits.entry(signer).or_insert_with(|| 0u8); + + if *limit >= RATE_LIMIT_PER_ACCOUNT { + log::error!("Rate limit for account {:#?} reached.", signer); + + return Err(warp::reject::custom(LogError::RateLimitError)); + } + + *limit += 1; + + let tx = transactions::send::make_and_sign_transaction( + &key.keys, + key.address, + *nonce, + TransactionTime { + seconds: transaction_expiry_seconds, + }, + concordium_rust_sdk::types::transactions::send::GivenEnergy::Absolute(Energy { + energy: ENERGY, + }), + payload, + ); + + let bi = transactions::BlockItem::AccountTransaction(tx); + + log::debug!("Submit transaction."); + + match client.send_block_item(&bi).await { + Ok(hash) => { + *nonce = nonce.next(); + + Ok(warp::reply::json(&TxHash { tx_hash: hash })) + } + Err(e) => { + log::error!("SubmitSponsoredTransactionError {:#?}.", e); + + Err(warp::reject::custom( + LogError::SubmitSponsoredTransactionError, + )) + } + } +} + +pub async fn handle_rejection(err: Rejection) -> Result { + if err.is_not_found() { + let code = StatusCode::NOT_FOUND; + let message = "Not found."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::NodeAccess(e)) = err.find() { + let code = StatusCode::INTERNAL_SERVER_ERROR; + let message = format!("Cannot access the node: {}", e); + Ok(mk_reply(message, code)) + } else if let Some(LogError::SimulationInvokeError) = err.find() { + let code = StatusCode::INTERNAL_SERVER_ERROR; + let message = "Simulation invoke error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::TransactionSimulationError(e)) = err.find() { + let code = StatusCode::INTERNAL_SERVER_ERROR; + let message = format!("Transaction simulation error. Your transaction would revert with the given input parameters: {}", e); + Ok(mk_reply(message, code)) + } else if let Some(LogError::SubmitSponsoredTransactionError) = err.find() { + let code = StatusCode::INTERNAL_SERVER_ERROR; + let message = "Submit sponsored transaction error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::OwnedReceiveNameError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "Owned received name error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::TokenAmountError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "TokenAmount error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::SignatureError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "Signature error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::RateLimitError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "Rate limit reached for the account. Use a different account."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::ParameterError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "Parameter error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::AdditionalDataError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "AdditionalData error."; + Ok(mk_reply(message.into(), code)) + } else if let Some(LogError::NonceQueryError) = err.find() { + let code = StatusCode::BAD_REQUEST; + let message = "Account info query error."; + Ok(mk_reply(message.into(), code)) + } else if err + .find::() + .is_some() + { + let code = StatusCode::BAD_REQUEST; + let message = "Malformed body."; + Ok(mk_reply(message.into(), code)) + } else { + let code = StatusCode::INTERNAL_SERVER_ERROR; + let message = "Internal error."; + Ok(mk_reply(message.into(), code)) + } +} + +/// Helper function to make the reply. +fn mk_reply(message: String, code: StatusCode) -> impl warp::Reply { + let msg = ErrorResponse { + message, + code: code.as_u16(), + }; + warp::reply::with_status(warp::reply::json(&msg), code) +} diff --git a/sponsoredTransactionsAuction/backend/src/main.rs b/sponsoredTransactionsAuction/backend/src/main.rs new file mode 100644 index 00000000..f50acc86 --- /dev/null +++ b/sponsoredTransactionsAuction/backend/src/main.rs @@ -0,0 +1,161 @@ +mod handlers; +mod types; +use crate::handlers::*; +use crate::types::*; +use anyhow::Context; +use clap::Parser; +use concordium_rust_sdk::common::{self as crypto_common}; +use concordium_rust_sdk::types::WalletAccount; +use std::collections::HashMap; +use std::path::PathBuf; +use std::sync::Arc; +use tokio::sync::Mutex; +use tonic::transport::ClientTlsConfig; +use warp::http; +use warp::Filter; + +/// Structure used to receive the correct command line arguments. +#[derive(clap::Parser, Debug)] +#[clap(arg_required_else_help(true))] +#[clap(version, author)] +struct IdVerifierConfig { + #[clap( + long = "node", + help = "GRPC V2 interface of the node.", + default_value = "http://localhost:20000" + )] + endpoint: concordium_rust_sdk::v2::Endpoint, + #[clap( + long = "port", + default_value = "8100", + help = "Port on which the server will listen on." + )] + port: u16, + #[clap( + long = "smart-contract-index", + default_value = "4184", + help = "The smart contract index which the sponsored transaction is submitted to." + )] + smart_contract_index: u64, + #[structopt( + long = "log-level", + default_value = "debug", + help = "Maximum log level." + )] + log_level: log::LevelFilter, + #[structopt( + long = "public-folder", + default_value = "public", + help = "location of the folder to serve" + )] + public_folder: String, + #[structopt(long = "account", help = "Path to the account key file.")] + keys_path: PathBuf, +} + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + let app = IdVerifierConfig::parse(); + let mut log_builder = env_logger::Builder::new(); + // only log the current module (main). + log_builder.filter_level(app.log_level); // filter filter_module(module_path!(), app.log_level); + log_builder.init(); + + let endpoint = if app + .endpoint + .uri() + .scheme() + .map_or(false, |x| x == &http::uri::Scheme::HTTPS) + { + app.endpoint.tls_config(ClientTlsConfig::new())? + } else { + app.endpoint + }; + + let mut client_update_operator = concordium_rust_sdk::v2::Client::new(endpoint).await?; + + let client_transfer = client_update_operator.clone(); + + let cors = warp::cors() + .allow_any_origin() + .allow_header("Content-Type") + .allow_methods(vec!["POST", "GET"]); + + log::debug!("Acquire keys."); + + // load account keys and sender address from a file + let keys: WalletAccount = serde_json::from_str( + &std::fs::read_to_string(app.keys_path).context("Could not read the keys file.")?, + ) + .context("Could not parse the keys file.")?; + + let key_update_operator = Arc::new(keys); + + let key_transfer = key_update_operator.clone(); + + log::debug!("Acquire nonce of wallet account."); + + let nonce_response = client_update_operator + .get_next_account_sequence_number(&key_update_operator.address) + .await + .map_err(|e| { + log::warn!("NonceQueryError {:#?}.", e); + LogError::NonceQueryError + })?; + + let state_update_operator = Server { + nonce: Arc::new(Mutex::new(nonce_response.nonce)), + rate_limits: Arc::new(Mutex::new(HashMap::new())), + }; + + let state_transfer = state_update_operator.clone(); + + // 1. Provide submit update operator + let provide_submit_update_operator = warp::post() + .and(warp::filters::body::content_length_limit(50 * 1024)) + .and(warp::path!("api" / "submitUpdateOperator")) + .and(warp::body::json()) + .and_then(move |request: UpdateOperatorInputParams| { + log::debug!("Process update operator transaction."); + + handle_signature_update_operator( + client_update_operator.clone(), + key_update_operator.clone(), + request, + app.smart_contract_index, + state_update_operator.clone(), + ) + }); + + // 2. Provide submit transfer + let provide_submit_transfer = warp::post() + .and(warp::filters::body::content_length_limit(50 * 1024)) + .and(warp::path!("api" / "submitTransfer")) + .and(warp::body::json()) + .and_then(move |request: TransferInputParams| { + log::debug!("Process transfer transaction."); + + handle_signature_transfer( + client_transfer.clone(), + key_transfer.clone(), + request, + app.smart_contract_index, + state_transfer.clone(), + ) + }); + + log::debug!("Get public files to serve."); + + let serve_public_files = warp::get().and(warp::fs::dir(app.public_folder)); + + log::debug!("Serve response back to frontend."); + + let server = provide_submit_update_operator + .or(provide_submit_transfer) + .or(serve_public_files) + .recover(handle_rejection) + .with(cors) + .with(warp::trace::request()); + warp::serve(server).run(([0, 0, 0, 0], app.port)).await; + Ok(()) +} diff --git a/sponsoredTransactionsAuction/backend/src/types.rs b/sponsoredTransactionsAuction/backend/src/types.rs new file mode 100644 index 00000000..a44ea448 --- /dev/null +++ b/sponsoredTransactionsAuction/backend/src/types.rs @@ -0,0 +1,126 @@ +use concordium_rust_sdk::cis2::{TokenId, Transfer, UpdateOperator}; +use concordium_rust_sdk::smart_contracts::common as concordium_std; +use concordium_rust_sdk::types::RejectReason; +use concordium_rust_sdk::{ + endpoints::{QueryError, RPCError}, + smart_contracts::common::{ + AccountAddress, AccountSignatures, ContractAddress, OwnedEntrypointName, Serial, Timestamp, + }, + types::{ + hashes::{HashBytes, TransactionMarker}, + Nonce, + }, +}; +use std::collections::HashMap; +use std::fmt; +use std::sync::Arc; +use tokio::sync::Mutex; + +#[derive(Debug, thiserror::Error)] +pub enum LogError { + #[error("Nonce query error.")] + NonceQueryError, + #[error("Submit sponsored transaction error.")] + SubmitSponsoredTransactionError, + #[error("Simulation invoke error.")] + SimulationInvokeError, + #[error("Transaction simulation error.")] + TransactionSimulationError(RevertReason), + #[error("Owned received name error.")] + OwnedReceiveNameError, + #[error("TokenAmount error.")] + TokenAmountError, + #[error("Rate limit error.")] + RateLimitError, + #[error("Parameter error.")] + ParameterError, + #[error("Signature error.")] + SignatureError, + #[error("AdditionalData error.")] + AdditionalDataError, + #[error("Node access error: {0}")] + NodeAccess(#[from] QueryError), +} + +impl From for LogError { + fn from(err: RPCError) -> Self { + Self::NodeAccess(err.into()) + } +} + +#[derive(serde::Serialize, Debug)] +pub struct RevertReason { + pub reason: RejectReason, +} + +impl fmt::Display for RevertReason { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "reason: {:?}", self.reason) + } +} + +impl warp::reject::Reject for LogError {} + +#[derive(serde::Serialize)] +/// Response in case of an error. This is going to be encoded as a JSON body +/// with fields 'code' and 'message'. +pub struct ErrorResponse { + pub code: u16, + pub message: String, +} + +#[derive(serde::Deserialize, serde::Serialize, Debug, Clone)] +pub struct UpdateOperatorInputParams { + pub signer: AccountAddress, + pub nonce: u64, + pub signature: String, + pub operator: AccountAddress, + pub add_operator: bool, + pub timestamp: Timestamp, +} + +#[derive(serde::Deserialize, serde::Serialize, Debug, Clone)] +pub struct TransferInputParams { + pub signer: AccountAddress, + pub nonce: u64, + pub signature: String, + pub token_id: TokenId, + pub from: AccountAddress, + pub to: AccountAddress, + pub timestamp: Timestamp, +} + +#[derive(Debug, Serial, Clone)] +pub struct TransferParams(#[concordium(size_length = 2)] pub Vec); + +#[derive(Debug, Serial, Clone)] +pub struct UpdateOperatorParams(#[concordium(size_length = 2)] pub Vec); + +#[derive(Debug, Serial)] +pub struct PermitParam { + pub signature: AccountSignatures, + pub signer: AccountAddress, + pub message: PermitMessage, +} + +#[derive(serde::Deserialize, serde::Serialize, Debug, Clone)] +pub struct TxHash { + pub tx_hash: HashBytes, +} + +#[derive(Debug, Serial, Clone)] +pub struct PermitMessage { + pub contract_address: ContractAddress, + pub nonce: u64, + pub timestamp: Timestamp, + pub entry_point: OwnedEntrypointName, + #[concordium(size_length = 2)] + pub payload: Vec, +} + +#[derive(Clone)] +pub struct Server { + pub nonce: Arc>, + // The rate_limits are transient and are reset on server restart. + pub rate_limits: Arc>>, +} diff --git a/sponsoredTransactionsAuction/frontend/.eslintignore b/sponsoredTransactionsAuction/frontend/.eslintignore new file mode 100644 index 00000000..cb4a268f --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/.eslintignore @@ -0,0 +1,10 @@ +.eslintcache +.yarn +node_modules + +# OSX +.DS_Store + +dist +package.json + diff --git a/sponsoredTransactionsAuction/frontend/.eslintrc.js b/sponsoredTransactionsAuction/frontend/.eslintrc.js new file mode 100644 index 00000000..0da2dbe4 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/.eslintrc.js @@ -0,0 +1,57 @@ +module.exports = { + parser: '@typescript-eslint/parser', + extends: ['airbnb', 'airbnb-typescript', 'plugin:prettier/recommended', 'plugin:@typescript-eslint/recommended'], + parserOptions: { + ecmaVersion: 2020, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + project: 'tsconfig.json', + createDefaultProgram: true, + }, + env: { + browser: true, + jest: true, + node: true, + }, + rules: { + 'import/prefer-default-export': 0, + 'no-restricted-exports': 0, + 'no-restricted-syntax': ['error', 'ForInStatement', 'LabeledStatement', 'WithStatement'], + 'react/jsx-props-no-spreading': 0, + 'react/require-default-props': 0, + 'class-methods-use-this': 0, + 'jsx-a11y/no-autofocus': 0, + 'no-await-in-loop': 0, + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: [ + '**/*.stories.tsx', + '**/build/**/*', + '**/*.config.js', + '**/*.config.ts', + '**/test/**/*', + ], + }, + ], + 'jsx-a11y/label-has-associated-control': [ + 'error', + { + required: { + some: ['nesting', 'id'], + }, + }, + ], + 'prettier/prettier': [ + 'error', + { + trailingComma: 'es5', + singleQuote: true, + printWidth: 120, + tabWidth: 4, + }, + ], + }, +}; diff --git a/sponsoredTransactionsAuction/frontend/.yarnrc.yml b/sponsoredTransactionsAuction/frontend/.yarnrc.yml new file mode 100644 index 00000000..3186f3f0 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/sponsoredTransactionsAuction/frontend/CHANGELOG.md b/sponsoredTransactionsAuction/frontend/CHANGELOG.md new file mode 100644 index 00000000..2c38b206 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/CHANGELOG.md @@ -0,0 +1,21 @@ +## Unreleased changes + +## 2.0.2 + +- Change the dApp to use the testnet smart contract index. + +## 2.0.1 + +- Migrate dApp from using deprecated JSON-RPC client to new gRPC client. + +## 2.0.0 + +- Remove tab to register public key + +## 1.1.0 + +- Update link to sponsored transaction tutorial + +## 1.0.0 + +- Initial sponsored transaction front end diff --git a/sponsoredTransactionsAuction/frontend/Jenkinsfile b/sponsoredTransactionsAuction/frontend/Jenkinsfile new file mode 100644 index 00000000..852f8154 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/Jenkinsfile @@ -0,0 +1,36 @@ +// Expected parameters: +// - image_tag: Tag that will be used for the new image. +// - build_image: Base image that the image being built extends. +pipeline { + agent any + environment { + image_repo = "concordium/dapp-sponsored-txs" + image_name = "${image_repo}:${image_tag}" + } + stages { + stage('dockerhub-login') { + environment { + // Defines 'CRED_USR' and 'CRED_PSW' + // (see 'https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#handling-credentials'). + CRED = credentials('jenkins-dockerhub') + } + steps { + sh 'docker login --username "${CRED_USR}" --password "${CRED_PSW}"' + } + } + stage('build-push') { + steps { + sh '''\ + docker build \ + --build-arg build_image="${build_image}" \ + --label build_image="${build_image}" \ + --tag="${image_name}" \ + --pull \ + --file sponsoredTransactions/Dockerfile \ + . + docker push "${image_name}" + '''.stripIndent() + } + } + } +} diff --git a/sponsoredTransactionsAuction/frontend/README.md b/sponsoredTransactionsAuction/frontend/README.md new file mode 100644 index 00000000..57734455 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/README.md @@ -0,0 +1,50 @@ +# Sponsored Transactions Web Application + +The example project included in this repository serves as a working example of how to integrate sponsored transactions with smart contracts on the Concordium blockchain. This web app supports the following flows with the browser wallet: + +- Compute the message of a sponsored updateOperator transaction => Sign it with the wallet => Submit the signature and some input parameters to the `/submitUpdateOperator` backend endpoint. +- Mint an NFT to your wallet => Compute the message of a sponsored transfer transaction => Sign it with the wallet => Submit the signature and some input parameters to the `/submitTransfer` backend endpoint. + +The backend creates a sponsored transaction and submits it to the `permit` function in the smart contract {index: SMART_CONTRACT_INDEX, subindex: 0}. You can look up the SMART_CONTRACT_INDEX in the `package.json` file. The backend returns the transaction hash to the frontend. + +Note: Use the same smart contract index for the frontend and backend. In other words, use the SMART_CONTRACT_INDEX from the `package.json` file (frontend folder) when starting the backend server. + +Note: +The smart contract code at {index: SMART_CONTRACT_INDEX, subindex: 0} can be found [here](https://github.com/Concordium/concordium-rust-smart-contracts/tree/main/examples/cis3-nft-sponsored-txs). + +## Prerequisites + +- Browser wallet extension must be installed in Google Chrome and the Concordium testnet needs to be selected or a mobile wallet needs to be set up that supports wallet connect in order to view smart contract details or submit transactions. + +## Running the sponsored txs example (without backend -> submitting the sponsored transaction to chain will fail) + +- Run `yarn install` in this folder. +- Run `yarn build` in a terminal in this folder. +- Run `yarn start`. +- Open URL logged in console (typically http://127.0.0.1:8080). + +To have hot-reload (useful for development), do the following instead: + +- Run `yarn watch` in a terminal. +- Run `yarn start` in another terminal. +- Open URL logged in console (typically http://127.0.0.1:8080). + +## Running the sponsored txs example (with backend -> submitting the sponsored transaction to chain will work) + +- Run `yarn install` in this folder. +- Run `yarn build` in a terminal in this folder. + +This creates a `dist` folder which can be served via the backend. Start the backend server by following the [README.md](../backend/README.md) + +## Using yarn (on unix/macOS systems) +Some of the node modules we use have Windows-type line endings (\r\n), instead of unix line endings (\n), which causes problems when using the yarn package manager. + +If you see an error message similar to this when executing `yarn start`, then you've run into the problem: +```shell +env: node\r: No such file or directory +``` + +Use `npm install` instead of `yarn install` in the above command. `npm` will correct the line ending. + +Additional information can be found [here](https://techtalkbook.com/env-noder-no-such-file-or-directory/). + diff --git a/sponsoredTransactionsAuction/frontend/esbuild.config.ts b/sponsoredTransactionsAuction/frontend/esbuild.config.ts new file mode 100644 index 00000000..b5b080c9 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/esbuild.config.ts @@ -0,0 +1,68 @@ +/* eslint-disable no-console */ +/* eslint-disable import/no-extraneous-dependencies */ +import esbuild, { BuildOptions } from 'esbuild'; +import { htmlPlugin } from '@craftamap/esbuild-plugin-html'; +import svgrPlugin from 'esbuild-plugin-svgr'; +import fs from 'fs'; + +if (process.env.SMART_CONTRACT_INDEX === undefined || Number.isNaN(process.env.SMART_CONTRACT_INDEX)) { + throw Error('Environmental variable SMART_CONTRACT_INDEX needs to be defined and set to a number'); +} + +const watch = Boolean(process.env.WATCH); + +const main = 'src/index.tsx'; + +const htmlTemplate = fs.readFileSync('src/index.html').toString(); +const htmlOut = 'index.html'; + +const config: BuildOptions = { + entryPoints: [main], + entryNames: '[name]', + bundle: true, + minify: true, + metafile: true, + logLevel: 'info', + sourcemap: 'inline', + target: ['chrome67'], + outdir: 'dist', + plugins: [ + htmlPlugin({ + files: [ + { + entryPoints: [main], + filename: htmlOut, + htmlTemplate, + }, + ], + }), + svgrPlugin(), + ], + // https://github.com/evanw/esbuild/issues/73#issuecomment-1204706295 + define: { + global: 'window', + 'process.env.SMART_CONTRACT_INDEX': process.env.SMART_CONTRACT_INDEX, + }, +}; + +if (watch) { + config.watch = { + onRebuild(error) { + if (error) { + console.error('watch build failed:', error); + return; + } + + console.log('rebuild successful'); + }, + }; +} + +esbuild + .build(config) + .then(() => { + if (watch) { + console.log('watching for changes...'); + } + }) + .catch(() => process.exit(1)); diff --git a/sponsoredTransactionsAuction/frontend/package.json b/sponsoredTransactionsAuction/frontend/package.json new file mode 100644 index 00000000..0d49bcff --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/package.json @@ -0,0 +1,62 @@ +{ + "name": "sponsored-transactions", + "packageManager": "yarn@3.2.0", + "version": "2.0.2", + "license": "Apache-2.0", + "engines": { + "node": ">=16.x" + }, + "dependencies": { + "@concordium/browser-wallet-api-helpers": "2.4.0", + "@concordium/react-components": "^0.3.0", + "@concordium/web-sdk": "^3.4.0", + "@thi.ng/leb128": "^2.1.18", + "@types/sha256": "^0.2.0", + "@walletconnect/types": "^2.1.4", + "eslint": "^8.37.0", + "mathjs": "^11.4.0", + "moment": "^2.29.4", + "react": "^18.1.0", + "react-dom": "^18.1.0", + "react-switch": "^7.0.0", + "sha256": "^0.2.0" + }, + "devDependencies": { + "@craftamap/esbuild-plugin-html": "^0.4.0", + "@types/node": "^18.7.23", + "@types/react": "^18.0.9", + "@types/react-dom": "^18.0.5", + "@typescript-eslint/eslint-plugin": "^5.20.0", + "@typescript-eslint/parser": "^5.20.0", + "cross-env": "^7.0.3", + "esbuild": "^0.14.42", + "esbuild-plugin-svgr": "^1.0.1", + "eslint": "7", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react-hooks": "^4.4.0", + "fs": "^0.0.1-security", + "live-server": "^1.2.2", + "prettier": "^2.6.2", + "process": "^0.11.10", + "stylelint": "^14.7.1", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard-scss": "^3.0.0", + "stylelint-prettier": "^2.0.0", + "stylelint-scss": "^4.2.0", + "ts-node": "^10.8.0", + "typescript": "^4.7.2" + }, + "scripts": { + "lint": "eslint . --cache --max-warnings 0 --ext .ts,.tsx", + "type:check": "yarn run tsc --noEmit", + "build": "SMART_CONTRACT_INDEX=6372 node --loader ts-node/esm ./esbuild.config.ts; cp ./src/assets/* ./dist", + "watch": "cross-env WATCH=1 yarn build", + "start": "live-server ./dist" + } +} diff --git a/sponsoredTransactionsAuction/frontend/src/Root.tsx b/sponsoredTransactionsAuction/frontend/src/Root.tsx new file mode 100644 index 00000000..283333fb --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/Root.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +import { WithWalletConnector, TESTNET } from '@concordium/react-components'; +import SponsoredTransactions from './SponsoredTransactions'; + +/** + * Connect to wallet, setup application state context, and render children when the wallet API is ready for use. + */ +export default function Root() { + return ( +
+
+ + {(props) => } + +
+
+ ); +} diff --git a/sponsoredTransactionsAuction/frontend/src/SponsoredTransactions.tsx b/sponsoredTransactionsAuction/frontend/src/SponsoredTransactions.tsx new file mode 100644 index 00000000..016631a1 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/SponsoredTransactions.tsx @@ -0,0 +1,773 @@ +/* eslint-disable no-console */ +/* eslint-disable no-alert */ +/* eslint-disable consistent-return */ +import React, { useEffect, useState, ChangeEvent, useCallback } from 'react'; +import Switch from 'react-switch'; +import { + toBuffer, + serializeTypeValue, + deserializeTypeValue, + AccountAddress, + ConcordiumGRPCClient, +} from '@concordium/web-sdk'; +import { + useGrpcClient, + WalletConnectionProps, + useConnection, + useConnect, + typeSchemaFromBase64, + TESTNET, +} from '@concordium/react-components'; +import { version } from '../package.json'; + +import { submitUpdateOperator, submitTransfer, mint } from './utils'; +import { + SPONSORED_TX_CONTRACT_NAME, + NONCE_OF_PARAMETER_SCHEMA, + NONCE_OF_RETURN_VALUE_SCHEMA, + SERIALIZATION_HELPER_SCHEMA, + CONTRACT_SUB_INDEX, + BROWSER_WALLET, + WALLET_CONNECT, + UPDATE_OPERATOR_SCHEMA, + TRANSFER_SCHEMA, + REFRESH_INTERVAL, + VERIFIER_URL, +} from './constants'; + +import { WalletConnectionTypeButton } from './WalletConnectorTypeButton'; + +const blackCardStyle = { + backgroundColor: 'black', + color: 'white', + width: '500px', + borderRadius: 10, + margin: '10px 0px 10px 0px', + padding: '10px 18px', + border: '1px solid #308274', +}; + +const ButtonStyle = { + color: 'white', + borderRadius: 10, + margin: '7px 0px 7px 0px', + padding: '10px', + width: '100%', + border: '1px solid #26685D', + backgroundColor: '#308274', + cursor: 'pointer', + fontWeight: 300, + fontSize: '14px', +}; + +const ButtonStyleDisabled = { + color: 'white', + borderRadius: 10, + margin: '7px 0px 7px 0px', + padding: '10px', + width: '100%', + border: '1px solid #4B4A4A', + backgroundColor: '#979797', + cursor: 'pointer', + fontWeight: 300, + fontSize: '14px', +}; + +const InputFieldStyle = { + backgroundColor: '#181817', + color: 'white', + borderRadius: 10, + width: '100%', + border: '1px solid #308274', + margin: '7px 0px 7px 0px', + padding: '10px 20px', +}; + +async function generateTransferMessage( + expiryTimeSignature: string, + nonce: string, + tokenID: string, + from: string, + to: string +) { + if (nonce === '') { + alert('Insert a nonce.'); + return ''; + } + + // eslint-disable-next-line no-restricted-globals + if (isNaN(Number(nonce))) { + alert('Your nonce needs to be a number.'); + return ''; + } + + if (tokenID === '') { + alert('Insert a tokenID.'); + return ''; + } + + if (tokenID.length !== 8) { + alert('TokenID needs to have 8 digits.'); + return ''; + } + + if (from === '') { + alert('Insert an `from` address.'); + return ''; + } + + if (from.length !== 50) { + alert('`From` address needs to have 50 digits.'); + return ''; + } + + if (to === '') { + alert('Insert an `to` address.'); + return ''; + } + + if (to.length !== 50) { + alert('`To` address needs to have 50 digits.'); + return ''; + } + + const transfer = [ + { + amount: '1', + data: [], + from: { + Account: [from], + }, + to: { + Account: [to], + }, + token_id: tokenID, + }, + ]; + + const payload = serializeTypeValue(transfer, toBuffer(TRANSFER_SCHEMA, 'base64')); + + const message = { + contract_address: { + index: Number(process.env.SMART_CONTRACT_INDEX), + subindex: 0, + }, + nonce: Number(nonce), + timestamp: expiryTimeSignature, + entry_point: 'transfer', + payload: Array.from(payload), + }; + + const serializedMessage = serializeTypeValue(message, toBuffer(SERIALIZATION_HELPER_SCHEMA, 'base64')); + + return serializedMessage; +} + +async function generateUpdateOperatorMessage( + expiryTimeSignature: string, + nonce: string, + operator: string, + addOperator: boolean +) { + if (nonce === '') { + alert('Insert a nonce.'); + return ''; + } + + // eslint-disable-next-line no-restricted-globals + if (isNaN(Number(nonce))) { + alert('Your nonce needs to be a number.'); + return ''; + } + + if (operator === '') { + alert('Insert an operator address.'); + return ''; + } + + if (operator.length !== 50) { + alert('Operator address needs to have 50 digits.'); + return ''; + } + + const operatorAction = addOperator + ? { + Add: [], + } + : { + Remove: [], + }; + + const updateOperator = [ + { + operator: { + Account: [operator], + }, + update: operatorAction, + }, + ]; + + const payload = serializeTypeValue(updateOperator, toBuffer(UPDATE_OPERATOR_SCHEMA, 'base64')); + + const message = { + contract_address: { + index: Number(process.env.SMART_CONTRACT_INDEX), + subindex: 0, + }, + nonce: Number(nonce), + timestamp: expiryTimeSignature, + entry_point: 'updateOperator', + payload: Array.from(payload), + }; + + const serializedMessage = serializeTypeValue(message, toBuffer(SERIALIZATION_HELPER_SCHEMA, 'base64')); + + return serializedMessage; +} + +async function getPublicKey(rpcClient: ConcordiumGRPCClient, account: string) { + const res = await rpcClient.getAccountInfo(new AccountAddress(account)); + const publicKey = res?.accountCredentials[0].value.contents.credentialPublicKeys.keys[0].verifyKey; + return publicKey; +} + +async function getNonceOf(rpcClient: ConcordiumGRPCClient, account: string) { + const param = serializeTypeValue( + { + queries: [ + { + account, + }, + ], + }, + toBuffer(NONCE_OF_PARAMETER_SCHEMA, 'base64') + ); + + const res = await rpcClient.invokeContract({ + method: `${SPONSORED_TX_CONTRACT_NAME}.nonceOf`, + contract: { index: BigInt(Number(process.env.SMART_CONTRACT_INDEX)), subindex: CONTRACT_SUB_INDEX }, + parameter: param, + }); + + if (!res || res.tag === 'failure' || !res.returnValue) { + throw new Error( + `RPC call 'invokeContract' on method '${SPONSORED_TX_CONTRACT_NAME}.nonceOf' of contract SMART_CONTRACT_INDEX failed` + ); + } + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const returnValues: any[][] = deserializeTypeValue( + toBuffer(res.returnValue, 'hex'), + toBuffer(NONCE_OF_RETURN_VALUE_SCHEMA, 'base64') + ); + + if (returnValues === undefined) { + throw new Error( + `Deserializing the returnValue from the '${SPONSORED_TX_CONTRACT_NAME}.nonceOf' method of contract SMART_CONTRACT_INDEX failed` + ); + } else { + // Return next nonce of a user + return returnValues[0][0]; + } +} + +function clearInputFields() { + const operator = document.getElementById('operator') as HTMLTextAreaElement; + if (operator !== null) { + operator.value = ''; + } + + const from = document.getElementById('from') as HTMLTextAreaElement; + if (from !== null) { + from.value = ''; + } + + const to = document.getElementById('to') as HTMLTextAreaElement; + if (to !== null) { + to.value = ''; + } + + const tokenID = document.getElementById('tokenID') as HTMLTextAreaElement; + if (tokenID !== null) { + tokenID.value = ''; + } + + const nonce = document.getElementById('nonce') as HTMLTextAreaElement; + if (nonce !== null) { + nonce.value = ''; + } + + const signer = document.getElementById('signer') as HTMLTextAreaElement; + if (signer !== null) { + signer.value = ''; + } +} + +export default function SponsoredTransactions(props: WalletConnectionProps) { + const { network, activeConnectorType, activeConnector, activeConnectorError, connectedAccounts, genesisHashes } = + props; + + const { connection, setConnection, account, genesisHash } = useConnection(connectedAccounts, genesisHashes); + const { connect, isConnecting, connectError } = useConnect(activeConnector, setConnection); + const grpcClient = useGrpcClient(TESTNET); + + const [publicKeyError, setPublicKeyError] = useState(''); + const [nextNonceError, setNextNonceError] = useState(''); + + const [isUpdateOperatorTab, setUpdateOperatorTab] = useState(true); + + const [nextNonce, setNextNonce] = useState(0); + const [accountInfoPublicKey, setAccountInfoPublicKey] = useState(''); + + const [expiryTime, setExpiryTime] = useState(''); + const [operator, setOperator] = useState(''); + const [addOperator, setAddOperator] = useState(true); + const [tokenID, setTokenID] = useState(''); + const [to, setTo] = useState(''); + const [nonce, setNonce] = useState(''); + const [from, setFrom] = useState(''); + const [signer, setSigner] = useState(''); + + const [signature, setSignature] = useState(''); + const [signingError, setSigningError] = useState(''); + + const changeOperatorHandler = useCallback((event: ChangeEvent) => { + const target = event.target as HTMLTextAreaElement; + setOperator(target.value); + }, []); + + const changeTokenIDHandler = useCallback((event: ChangeEvent) => { + const target = event.target as HTMLTextAreaElement; + setTokenID(target.value); + }, []); + + const changeToHandler = useCallback((event: ChangeEvent) => { + const target = event.target as HTMLTextAreaElement; + setTo(target.value); + }, []); + + const changeFromHandler = useCallback((event: ChangeEvent) => { + const target = event.target as HTMLTextAreaElement; + setFrom(target.value); + }, []); + + const changeNonceHandler = useCallback((event: ChangeEvent) => { + const target = event.target as HTMLTextAreaElement; + setNonce(target.value); + }, []); + + const changeSignerHandler = useCallback((event: ChangeEvent) => { + const target = event.target as HTMLTextAreaElement; + setSigner(target.value); + }, []); + + useEffect(() => { + // Refresh next nonce periodically. + if (grpcClient && account) { + const interval = setInterval(() => { + console.log('refreshing'); + + getNonceOf(grpcClient, account) + .then((nonceValue) => { + if (nonceValue !== undefined) { + setNextNonce(nonceValue); + } + setNextNonceError(''); + }) + .catch((e) => { + setNextNonceError((e as Error).message); + setNextNonce(0); + }); + }, REFRESH_INTERVAL.asMilliseconds()); + return () => clearInterval(interval); + } + }, [grpcClient, account]); + + useEffect(() => { + // Get next nonce record from smart contract. + if (grpcClient && account) { + getNonceOf(grpcClient, account) + .then((nonceValue) => { + if (nonceValue !== undefined) { + setNextNonce(nonceValue); + } + setNextNonceError(''); + }) + .catch((e) => { + setNextNonceError((e as Error).message); + setNextNonce(0); + }); + } + }, [grpcClient, account]); + + useEffect(() => { + // Get publicKey record from chain. + if (grpcClient && account) { + getPublicKey(grpcClient, account) + .then((publicKey) => { + if (publicKey !== undefined) { + setAccountInfoPublicKey(publicKey); + } + setPublicKeyError(''); + }) + .catch((e) => { + setPublicKeyError((e as Error).message); + setAccountInfoPublicKey(''); + }); + } + }, [grpcClient, account]); + + const [txHash, setTxHash] = useState(''); + const [transactionError, setTransactionError] = useState(''); + + const [isWaitingForTransaction, setWaitingForUser] = useState(false); + return ( +
+

Explore Sponsored Transactions

+
+ + {/* TODO: Enable walletConnect again once mobile wallets are updated to sign Objects/Bytes + with a schema with the `signMessage` function without the hex encoding. + */} +
+
+ {activeConnectorError &&

Connector Error: {activeConnectorError}.

} + {!activeConnectorError && !isWaitingForTransaction && activeConnectorType && !activeConnector && ( +

+ Loading connector... +

+ )} + {connectError &&

Connect Error: {connectError}.

} + {!connection && !isWaitingForTransaction && activeConnectorType && activeConnector && ( +

+ +

+ )} + {account && ( + <> +
Connected to
+ +
+
+
Your public key is:
+
{accountInfoPublicKey}
+ {publicKeyError &&
Error: {publicKeyError}.
} +
+
Your next nonce is:
+
{nextNonce}
+ {nextNonceError &&
Error: {nextNonceError}.
} + + )} + {genesisHash && genesisHash !== network.genesisHash && ( +

+ Unexpected genesis hash: Please ensure that your wallet is connected to network{' '} + {network.name}. +

+ )} +
+ {connection && account !== undefined && ( + <> +
+

Update operator via a sponsored transaction

+ { + setUpdateOperatorTab(!isUpdateOperatorTab); + setSignature(''); + setSigningError(''); + setTxHash(''); + setTransactionError(''); + setNonce(''); + setSigner(''); + setTokenID(''); + setFrom(''); + setTo(''); + setOperator(''); + clearInputFields(); + }} + onColor="#308274" + offColor="#308274" + onHandleColor="#174039" + offHandleColor="#174039" + checked={!isUpdateOperatorTab} + checkedIcon={false} + uncheckedIcon={false} + /> +

Transfer via a sponsored transaction

+
+ {isUpdateOperatorTab && ( + <> + +
+

Add operator

+ { + setAddOperator(!addOperator); + }} + onColor="#308274" + offColor="#308274" + onHandleColor="#174039" + offHandleColor="#174039" + checked={!addOperator} + checkedIcon={false} + uncheckedIcon={false} + /> +

Remove operator

+
+ + )} + {!isUpdateOperatorTab && ( + <> +
Mint a token to your account first:
+ + + + + + )} + + +
+ {signingError &&
Error: {signingError}.
} + {signature !== '' && ( + <> +
Your generated signature is:
+
{signature}
+ + )} +
+ + + + )} + {!connection && ( + + )} + {connection && account && accountInfoPublicKey && ( + <> +
Transaction status{txHash === '' ? '' : ' (May take a moment to finalize)'}
+ {!txHash && transactionError &&
Error: {transactionError}.
} + {!txHash && !transactionError &&
None
} + {txHash && ( + <> + +
+ + )} + + )} +
+
+ Version: {version} |{' '} + + Learn more about sponsored tx here + +
+
+
+ ); +} diff --git a/sponsoredTransactionsAuction/frontend/src/WalletConnectorTypeButton.tsx b/sponsoredTransactionsAuction/frontend/src/WalletConnectorTypeButton.tsx new file mode 100644 index 00000000..508cc925 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/WalletConnectorTypeButton.tsx @@ -0,0 +1,51 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +import React, { useCallback } from 'react'; +import { + ConnectorType, + useWalletConnectorSelector, + WalletConnection, + WalletConnectionProps, +} from '@concordium/react-components'; + +function connectorTypeStyle(baseStyle: any, isSelected: boolean, isConnected: boolean) { + if (isConnected) { + return { ...baseStyle, backgroundColor: '#823030', border: '1px solid #520C0C' }; + } + if (isSelected) { + return { ...baseStyle, backgroundColor: '#174039', border: '1px solid #0c221f' }; + } + return { ...baseStyle }; +} + +interface Props extends WalletConnectionProps { + buttonStyle: any; + disabledButtonStyle: any; + connectorType: ConnectorType; + connectorName: string; + setWaitingForUser: (v: boolean) => void; + connection: WalletConnection | undefined; +} + +export function WalletConnectionTypeButton(props: Props) { + const { buttonStyle, disabledButtonStyle, connectorType, connectorName, setWaitingForUser, connection } = props; + const { isSelected, isConnected, isDisabled, select } = useWalletConnectorSelector( + connectorType, + connection, + props + ); + const onClick = useCallback(() => { + setWaitingForUser(false); + select(); + }, [select]); + return ( + + ); +} diff --git a/sponsoredTransactionsAuction/frontend/src/assets/Concordium_background.svg b/sponsoredTransactionsAuction/frontend/src/assets/Concordium_background.svg new file mode 100644 index 00000000..a13a7f1c --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/assets/Concordium_background.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sponsoredTransactionsAuction/frontend/src/assets/favicon.ico b/sponsoredTransactionsAuction/frontend/src/assets/favicon.ico new file mode 100644 index 00000000..64b7e6a7 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/assets/favicon.ico @@ -0,0 +1,5 @@ + + + + + diff --git a/sponsoredTransactionsAuction/frontend/src/constants.ts b/sponsoredTransactionsAuction/frontend/src/constants.ts new file mode 100644 index 00000000..c2ceefc5 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/constants.ts @@ -0,0 +1,41 @@ +import { BrowserWalletConnector, ephemeralConnectorType, WalletConnectConnector } from '@concordium/react-components'; +import { SignClientTypes } from '@walletconnect/types'; +import moment from 'moment'; + +export const VERIFIER_URL = '/api'; + +export const REFRESH_INTERVAL = moment.duration(5, 'seconds'); + +export const SPONSORED_TX_CONTRACT_NAME = 'cis3_nft'; + +export const CONTRACT_SUB_INDEX = 0n; + +export const UPDATE_OPERATOR_SCHEMA = + 'EAEUAAIAAAAGAAAAdXBkYXRlFQIAAAAGAAAAUmVtb3ZlAgMAAABBZGQCCAAAAG9wZXJhdG9yFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADA'; +export const TRANSFER_SCHEMA = + 'EAEUAAUAAAAIAAAAdG9rZW5faWQdAAYAAABhbW91bnQbJQAAAAQAAABmcm9tFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADAIAAAB0bxUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAgAAAAwWAQQAAABkYXRhEAEC'; + +export const SERIALIZATION_HELPER_SCHEMA = + 'FAAFAAAAEAAAAGNvbnRyYWN0X2FkZHJlc3MMBQAAAG5vbmNlBQkAAAB0aW1lc3RhbXANCwAAAGVudHJ5X3BvaW50FgEHAAAAcGF5bG9hZBABAg=='; + +export const NONCE_OF_PARAMETER_SCHEMA = 'FAABAAAABwAAAHF1ZXJpZXMQARQAAQAAAAcAAABhY2NvdW50Cw=='; + +export const NONCE_OF_RETURN_VALUE_SCHEMA = 'FAEBAAAAEAEF'; + +export const MINT_PARAMETER_SCHEMA = 'FAABAAAABQAAAG93bmVyFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADA=='; + +const WALLET_CONNECT_PROJECT_ID = '76324905a70fe5c388bab46d3e0564dc'; +const WALLET_CONNECT_OPTS: SignClientTypes.Options = { + projectId: WALLET_CONNECT_PROJECT_ID, + metadata: { + name: 'sponsoredTxs', + description: 'Example dApp for sponsored txs.', + url: '#', + icons: ['https://walletconnect.com/walletconnect-logo.png'], + }, +}; + +export const BROWSER_WALLET = ephemeralConnectorType(BrowserWalletConnector.create); +export const WALLET_CONNECT = ephemeralConnectorType( + WalletConnectConnector.create.bind(undefined, WALLET_CONNECT_OPTS) +); diff --git a/sponsoredTransactionsAuction/frontend/src/index.css b/sponsoredTransactionsAuction/frontend/src/index.css new file mode 100644 index 00000000..19a93984 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/index.css @@ -0,0 +1,88 @@ +body { + font-family: Roboto, Helvetica, sans-serif; + font-style: sans-serif; + color: white; + font-weight: 300; + font-size: 14px; + line-height: 20px; + letter-spacing: 0; + text-align: left; +} + +.sponsoredTransactions { + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.largeText { + font-size: 26px; + font-weight: 300; + line-height: 21px; + letter-spacing: 0; +} + +.centerLargeText { + font-size: 26px; + font-weight: 300; + line-height: 21px; + letter-spacing: 0; + text-align: center; +} + +.loadingText { + color: #979797; + overflow-wrap: anywhere; +} + +.text { + margin: 6px 0; +} + +button.buttonInvisible { + background: transparent; + border: none; + font-size: 0; + cursor: pointer; +} + +.header { + color: white; +} + +.input.input { + width: 100%; + box-sizing: border-box; +} + +.switch { + background: #308274; + cursor: pointer; + border-radius: 5px; +} + +.link { + background: none !important; + border: none; + padding: 0 !important; + color: #308274; + text-decoration: underline; + cursor: pointer; + overflow-wrap: anywhere; +} + +.containerSpaceBetween { + display: flex; + column-gap: 20px; + align-items: center; + justify-content: space-between; +} + +.containerSwitch { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/sponsoredTransactionsAuction/frontend/src/index.html b/sponsoredTransactionsAuction/frontend/src/index.html new file mode 100644 index 00000000..0a1d3b81 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/index.html @@ -0,0 +1,19 @@ + + + + + + + + + +
+ + diff --git a/sponsoredTransactionsAuction/frontend/src/index.tsx b/sponsoredTransactionsAuction/frontend/src/index.tsx new file mode 100644 index 00000000..be6fb630 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/index.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; + +import Root from './Root'; + +import './index.css'; + +const container = document.getElementById('root'); + +if (!container) { + throw new Error('Expected container DOM node to be defined'); +} + +const root = createRoot(container); +root.render(); diff --git a/sponsoredTransactionsAuction/frontend/src/utils.ts b/sponsoredTransactionsAuction/frontend/src/utils.ts new file mode 100644 index 00000000..dd8e2f9c --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/src/utils.ts @@ -0,0 +1,217 @@ +/* eslint-disable consistent-return */ +/* eslint-disable no-alert */ +import { createContext } from 'react'; +import { AccountTransactionType, CcdAmount, UpdateContractPayload } from '@concordium/web-sdk'; +import { WalletConnection, typeSchemaFromBase64 } from '@concordium/react-components'; +import { SPONSORED_TX_CONTRACT_NAME, CONTRACT_SUB_INDEX, MINT_PARAMETER_SCHEMA } from './constants'; + +/** + * Send update operator signature to backend. + */ +export async function submitUpdateOperator( + backend: string, + signer: string, + nonce: string, + signature: string, + expiryTimeSignature: string, + operator: string, + addOperator: boolean +) { + if (signer === '') { + alert('Insert an signer address.'); + return ''; + } + + if (signer.length !== 50) { + alert('Signer address needs to have 50 digits.'); + return ''; + } + + if (nonce === '') { + alert('Insert a nonce.'); + return ''; + } + + // eslint-disable-next-line no-restricted-globals + if (isNaN(Number(nonce))) { + alert('Your nonce needs to be a number.'); + return ''; + } + + if (signature === '') { + alert('Insert a signature.'); + return ''; + } + + if (signature.length !== 128) { + alert('Signature needs to have 128 digits.'); + return ''; + } + + if (operator === '') { + alert('Insert an operator address.'); + return ''; + } + + if (operator.length !== 50) { + alert('Operator address needs to have 50 digits.'); + return ''; + } + + const response = await fetch(`${backend}/submitUpdateOperator`, { + method: 'POST', + headers: new Headers({ 'content-type': 'application/json' }), + + body: JSON.stringify({ + signer, + nonce: Number(nonce), + signature, + operator, + add_operator: addOperator, + timestamp: expiryTimeSignature, + }), + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`Unable to submit update operator: ${JSON.stringify(error)}`); + } + const body = await response.json(); + if (body) { + return body; + } + throw new Error('Unable to submit update operator'); +} + +/** + * Send transfer signature to backend. + */ +export async function submitTransfer( + backend: string, + signer: string, + nonce: string, + signature: string, + expiryTimeSignature: string, + tokenID: string, + from: string, + to: string +) { + if (signer === '') { + alert('Insert an signer address.'); + return ''; + } + + if (signer.length !== 50) { + alert('Signer address needs to have 50 digits.'); + return ''; + } + + if (nonce === '') { + alert('Insert a nonce.'); + return ''; + } + + // eslint-disable-next-line no-restricted-globals + if (isNaN(Number(nonce))) { + alert('Your nonce needs to be a number.'); + return ''; + } + + if (signature === '') { + alert('Insert a signature.'); + return ''; + } + + if (signature.length !== 128) { + alert('Signature needs to have 128 digits.'); + return ''; + } + + if (tokenID === '') { + alert('Insert a tokenID.'); + return ''; + } + + if (tokenID.length !== 8) { + alert('TokenID needs to have 8 digits.'); + return ''; + } + + if (from === '') { + alert('Insert an `from` address.'); + return ''; + } + + if (from.length !== 50) { + alert('`From` address needs to have 50 digits.'); + return ''; + } + + if (to === '') { + alert('Insert an `to` address.'); + return ''; + } + + if (to.length !== 50) { + alert('`To` address needs to have 50 digits.'); + return ''; + } + + const response = await fetch(`${backend}/submitTransfer`, { + method: 'POST', + headers: new Headers({ 'content-type': 'application/json' }), + body: JSON.stringify({ + signer, + nonce: Number(nonce), + signature, + token_id: tokenID, + from, + to, + timestamp: expiryTimeSignature, + }), + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`Unable to submit transfer: ${JSON.stringify(error)}`); + } + const body = await response.json(); + if (body) { + return body; + } + throw new Error('Unable to submit transfer'); +} + +/** + * Action for minting a token to the user's account. + */ +export async function mint(connection: WalletConnection, account: string) { + return connection.signAndSendTransaction( + account, + AccountTransactionType.Update, + { + amount: new CcdAmount(BigInt(0n)), + address: { + index: BigInt(Number(process.env.SMART_CONTRACT_INDEX)), + subindex: CONTRACT_SUB_INDEX, + }, + receiveName: `${SPONSORED_TX_CONTRACT_NAME}.mint`, + maxContractExecutionEnergy: 30000n, + } as unknown as UpdateContractPayload, + + { + parameters: { + owner: { Account: [account] }, + }, + schema: typeSchemaFromBase64(MINT_PARAMETER_SCHEMA), + } + ); +} + +/** + * Global application state. + */ +export type State = { + isConnected: boolean; + account: string | undefined; +}; + +export const state = createContext({ isConnected: false, account: undefined }); diff --git a/sponsoredTransactionsAuction/frontend/tsconfig.json b/sponsoredTransactionsAuction/frontend/tsconfig.json new file mode 100644 index 00000000..0222f306 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "downlevelIteration": true, + "baseUrl": ".", + "noEmit": true, + "jsx": "react" + }, + "ts-node": { + "compilerOptions": { + "module": "CommonJS" + } + }, + "include": ["./**/*"] +} diff --git a/sponsoredTransactionsAuction/frontend/types/svg.d.ts b/sponsoredTransactionsAuction/frontend/types/svg.d.ts new file mode 100644 index 00000000..bff94710 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/types/svg.d.ts @@ -0,0 +1 @@ +declare module '*.svg'; diff --git a/sponsoredTransactionsAuction/frontend/yarn.lock b/sponsoredTransactionsAuction/frontend/yarn.lock new file mode 100644 index 00000000..def4a693 --- /dev/null +++ b/sponsoredTransactionsAuction/frontend/yarn.lock @@ -0,0 +1,9389 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.0 + resolution: "@ampproject/remapping@npm:2.2.0" + dependencies: + "@jridgewell/gen-mapping": ^0.1.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + languageName: node + linkType: hard + +"@babel/code-frame@npm:7.12.11": + version: 7.12.11 + resolution: "@babel/code-frame@npm:7.12.11" + dependencies: + "@babel/highlight": ^7.10.4 + checksum: 3963eff3ebfb0e091c7e6f99596ef4b258683e4ba8a134e4e95f77afe85be5c931e184fff6435fb4885d12eba04a5e25532f7fbc292ca13b48e7da943474e2f3 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/code-frame@npm:7.21.4" + dependencies: + "@babel/highlight": ^7.18.6 + checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/compat-data@npm:7.21.4" + checksum: 5f8b98c66f2ffba9f3c3a82c0cf354c52a0ec5ad4797b370dc32bdcd6e136ac4febe5e93d76ce76e175632e2dbf6ce9f46319aa689fcfafa41b6e49834fa4b66 + languageName: node + linkType: hard + +"@babel/core@npm:^7.19.6": + version: 7.21.4 + resolution: "@babel/core@npm:7.21.4" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.4 + "@babel/helper-compilation-targets": ^7.21.4 + "@babel/helper-module-transforms": ^7.21.2 + "@babel/helpers": ^7.21.0 + "@babel/parser": ^7.21.4 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.4 + "@babel/types": ^7.21.4 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.2 + semver: ^6.3.0 + checksum: a3beebb2cc79908a02f27a07dc381bcb34e8ecc58fa99f568ad0934c49e12111fc977ee9c5b51eb7ea2da66f63155d37c4dd96b6472eaeecfc35843ccb56bf3d + languageName: node + linkType: hard + +"@babel/generator@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/generator@npm:7.21.4" + dependencies: + "@babel/types": ^7.21.4 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 9ffbb526a53bb8469b5402f7b5feac93809b09b2a9f82fcbfcdc5916268a65dae746a1f2479e03ba4fb0776facd7c892191f63baa61ab69b2cfdb24f7b92424d + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/helper-compilation-targets@npm:7.21.4" + dependencies: + "@babel/compat-data": ^7.21.4 + "@babel/helper-validator-option": ^7.21.0 + browserslist: ^4.21.3 + lru-cache: ^5.1.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: bf9c7d3e7e6adff9222c05d898724cd4ee91d7eb9d52222c7ad2a22955620c2872cc2d9bdf0e047df8efdb79f4e3af2a06b53f509286145feccc4d10ddc318be + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-environment-visitor@npm:7.18.9" + checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helper-function-name@npm:7.21.0" + dependencies: + "@babel/template": ^7.20.7 + "@babel/types": ^7.21.0 + checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-hoist-variables@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.18.6": + version: 7.21.4 + resolution: "@babel/helper-module-imports@npm:7.21.4" + dependencies: + "@babel/types": ^7.21.4 + checksum: bd330a2edaafeb281fbcd9357652f8d2666502567c0aad71db926e8499c773c9ea9c10dfaae30122452940326d90c8caff5c649ed8e1bf15b23f858758d3abc6 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.21.2": + version: 7.21.2 + resolution: "@babel/helper-module-transforms@npm:7.21.2" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.19.1 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.2 + "@babel/types": ^7.21.2 + checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.20.2": + version: 7.20.2 + resolution: "@babel/helper-simple-access@npm:7.20.2" + dependencies: + "@babel/types": ^7.20.2 + checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-split-export-declaration@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.19.4": + version: 7.19.4 + resolution: "@babel/helper-string-parser@npm:7.19.4" + checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/helper-validator-identifier@npm:7.19.1" + checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-validator-identifier@npm:7.22.5" + checksum: 7f0f30113474a28298c12161763b49de5018732290ca4de13cdaefd4fd0d635a6fe3f6686c37a02905fb1e64f21a5ee2b55140cf7b070e729f1bd66866506aea + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helper-validator-option@npm:7.21.0" + checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helpers@npm:7.21.0" + dependencies: + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.0 + "@babel/types": ^7.21.0 + checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.10.4": + version: 7.22.5 + resolution: "@babel/highlight@npm:7.22.5" + dependencies: + "@babel/helper-validator-identifier": ^7.22.5 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/highlight@npm:7.18.6" + dependencies: + "@babel/helper-validator-identifier": ^7.18.6 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/parser@npm:7.21.4" + bin: + parser: ./bin/babel-parser.js + checksum: de610ecd1bff331766d0c058023ca11a4f242bfafefc42caf926becccfb6756637d167c001987ca830dd4b34b93c629a4cef63f8c8c864a8564cdfde1989ac77 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.20.7": + version: 7.22.6 + resolution: "@babel/runtime@npm:7.22.6" + dependencies: + regenerator-runtime: ^0.13.11 + checksum: e585338287c4514a713babf4fdb8fc2a67adcebab3e7723a739fc62c79cfda875b314c90fd25f827afb150d781af97bc16c85bfdbfa2889f06053879a1ddb597 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/runtime@npm:7.21.0" + dependencies: + regenerator-runtime: ^0.13.11 + checksum: 7b33e25bfa9e0e1b9e8828bb61b2d32bdd46b41b07ba7cb43319ad08efc6fda8eb89445193e67d6541814627df0ca59122c0ea795e412b99c5183a0540d338ab + languageName: node + linkType: hard + +"@babel/template@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/template@npm:7.20.7" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/traverse@npm:7.21.4" + dependencies: + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.4 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.21.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.21.4 + "@babel/types": ^7.21.4 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: f22f067c2d9b6497abf3d4e53ea71f3aa82a21f2ed434dd69b8c5767f11f2a4c24c8d2f517d2312c9e5248e5c69395fdca1c95a2b3286122c75f5783ddb6f53c + languageName: node + linkType: hard + +"@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.4, @babel/types@npm:^7.8.3": + version: 7.21.4 + resolution: "@babel/types@npm:7.21.4" + dependencies: + "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: 587bc55a91ce003b0f8aa10d70070f8006560d7dc0360dc0406d306a2cb2a10154e2f9080b9c37abec76907a90b330a536406cb75e6bdc905484f37b75c73219 + languageName: node + linkType: hard + +"@concordium/browser-wallet-api-helpers@npm:2.4.0": + version: 2.4.0 + resolution: "@concordium/browser-wallet-api-helpers@npm:2.4.0" + dependencies: + "@concordium/web-sdk": ^3.4.0 + checksum: 3c518068034e7e0ddd9b2932339bb198a64f77c1bc79989323514edb687be37a2505bb792b2b59775fee819bb7f995a8f57a183b9e09a129a04589cd511f7cc4 + languageName: node + linkType: hard + +"@concordium/browser-wallet-api-helpers@npm:^2.5.0": + version: 2.5.0 + resolution: "@concordium/browser-wallet-api-helpers@npm:2.5.0" + dependencies: + "@concordium/web-sdk": ^3.4.2 + checksum: 9ec96012fa9f81b1cc5e611485bf4a474c98def713c406a5d621e7047f503511aebb9d9890b2874b857a185a49d22d37c0eb748e881691cd24624d1a1f087fb1 + languageName: node + linkType: hard + +"@concordium/common-sdk@npm:6.4.1": + version: 6.4.1 + resolution: "@concordium/common-sdk@npm:6.4.1" + dependencies: + "@concordium/rust-bindings": 0.11.0 + "@grpc/grpc-js": ^1.3.4 + "@noble/ed25519": ^1.7.1 + "@protobuf-ts/runtime-rpc": ^2.8.2 + "@scure/bip39": ^1.1.0 + bs58check: ^2.1.2 + buffer: ^6.0.3 + cross-fetch: 3.1.5 + hash.js: ^1.1.7 + iso-3166-1: ^2.1.1 + json-bigint: ^1.0.0 + uuid: ^8.3.2 + checksum: 26cce68b496f9799359666d7ddf430c659c0250e16a96c8bfe1956162f737517896a9ab9e0c9a7a3a17117ee6d763a91cbcde20891c76d87444f67299a37c8c6 + languageName: node + linkType: hard + +"@concordium/common-sdk@npm:6.5.0": + version: 6.5.0 + resolution: "@concordium/common-sdk@npm:6.5.0" + dependencies: + "@concordium/rust-bindings": 0.11.1 + "@grpc/grpc-js": ^1.3.4 + "@noble/ed25519": ^1.7.1 + "@protobuf-ts/runtime-rpc": ^2.8.2 + "@scure/bip39": ^1.1.0 + bs58check: ^2.1.2 + buffer: ^6.0.3 + cross-fetch: 3.1.5 + hash.js: ^1.1.7 + iso-3166-1: ^2.1.1 + json-bigint: ^1.0.0 + uuid: ^8.3.2 + checksum: daf7e586b5fd89a4f2e84c602b9ffdbe5215a176b6673aa42abf7c54d722f5380f716672100f6a68c321ba97b87c381476bce768ff1e5299b5d07c6ded96e716 + languageName: node + linkType: hard + +"@concordium/react-components@npm:^0.3.0": + version: 0.3.0 + resolution: "@concordium/react-components@npm:0.3.0" + dependencies: + "@concordium/wallet-connectors": ^0.3.1 + peerDependencies: + react: ^18 + checksum: 08cc8077f77bc8faaf977e0dbc9270f386575f928d886c4efb3d888fe017edbd36653381e17a20b272409037e648f3eb023501d166e9df0ecd0b4a0c9537c110 + languageName: node + linkType: hard + +"@concordium/rust-bindings@npm:0.11.0": + version: 0.11.0 + resolution: "@concordium/rust-bindings@npm:0.11.0" + checksum: a6c437cb782b7b2e9f217215dd4dbed9ffb8b3ef46fa307952aca3ae8f166cb96687de64efd18490aec7e86d58712dccb7d1a8bf63c151e3ed2a0170f066cd6d + languageName: node + linkType: hard + +"@concordium/rust-bindings@npm:0.11.1": + version: 0.11.1 + resolution: "@concordium/rust-bindings@npm:0.11.1" + checksum: fe1bbcd0a98a7e148cfe9fa5ec69a693b19608b64b01723aedd9a7616958d5069cef006f8dfa610f7fad3cd3e8d356c99c76ff2606ea44d90138a43897118277 + languageName: node + linkType: hard + +"@concordium/wallet-connectors@npm:^0.3.1": + version: 0.3.1 + resolution: "@concordium/wallet-connectors@npm:0.3.1" + dependencies: + "@concordium/browser-wallet-api-helpers": ^2.5.0 + "@walletconnect/qrcode-modal": ^1.8.0 + "@walletconnect/sign-client": ^2.1.4 + checksum: 7ef4287d05977fe741d47d53ea9424f603c8acfe0a0c0af1bfea2c5752b0bc5750be942badaa414a6694e7be4032e8d1a91f8ab69327cdcff016f28da0cf6a23 + languageName: node + linkType: hard + +"@concordium/web-sdk@npm:^3.4.0": + version: 3.4.1 + resolution: "@concordium/web-sdk@npm:3.4.1" + dependencies: + "@concordium/common-sdk": 6.4.1 + "@concordium/rust-bindings": 0.11.0 + "@grpc/grpc-js": ^1.3.4 + "@protobuf-ts/grpcweb-transport": ^2.8.2 + buffer: ^6.0.3 + process: ^0.11.10 + checksum: 816f565c5eed12ec7f5aad07f2bd5be342ca53ff1f0e5412eab897eccd77562bfefc18906223c59916915686925d89d725bd2dc7520175ea51cb74471b11087c + languageName: node + linkType: hard + +"@concordium/web-sdk@npm:^3.4.2": + version: 3.5.0 + resolution: "@concordium/web-sdk@npm:3.5.0" + dependencies: + "@concordium/common-sdk": 6.5.0 + "@concordium/rust-bindings": 0.11.1 + "@grpc/grpc-js": ^1.3.4 + "@protobuf-ts/grpcweb-transport": ^2.8.2 + buffer: ^6.0.3 + process: ^0.11.10 + checksum: 681cfdb2533bba93ac62f44b0fcf5596a0fd89a5895085e3e6a416fa162bc1d22ac3bc1a6f8b89a196c46e89e9fd6401c25c493079f406bf8dfa9c6a7eb0aaa7 + languageName: node + linkType: hard + +"@craftamap/esbuild-plugin-html@npm:^0.4.0": + version: 0.4.0 + resolution: "@craftamap/esbuild-plugin-html@npm:0.4.0" + dependencies: + jsdom: ^17.0.0 + lodash.template: ^4.5.0 + peerDependencies: + esbuild: ">=0.12.28" + checksum: ab7c6f549031ce50851d2a6cd26450c60d2e8436eb0e0feaecf65eb9a0475a7423fb8286e5b4d8fb675f3d898738ec07a56c917a0e6e161734008ac7444b01fb + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + languageName: node + linkType: hard + +"@csstools/selector-specificity@npm:^2.0.2": + version: 2.2.0 + resolution: "@csstools/selector-specificity@npm:2.2.0" + peerDependencies: + postcss-selector-parser: ^6.0.10 + checksum: 97c89f23b3b527d7bd51ed299969ed2b9fbb219a367948b44aefec228b8eda6ae0ad74fe8a82f9aac8ff32cfd00bb6d0c98d1daeab2e8fc6d5c4af25e5be5673 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.14.54": + version: 0.14.54 + resolution: "@esbuild/linux-loong64@npm:0.14.54" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0": + version: 4.5.0 + resolution: "@eslint-community/regexpp@npm:4.5.0" + checksum: 99c01335947dbd7f2129e954413067e217ccaa4e219fe0917b7d2bd96135789384b8fedbfb8eb09584d5130b27a7b876a7150ab7376f51b3a0c377d5ce026a10 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^0.4.3": + version: 0.4.3 + resolution: "@eslint/eslintrc@npm:0.4.3" + dependencies: + ajv: ^6.12.4 + debug: ^4.1.1 + espree: ^7.3.0 + globals: ^13.9.0 + ignore: ^4.0.6 + import-fresh: ^3.2.1 + js-yaml: ^3.13.1 + minimatch: ^3.0.4 + strip-json-comments: ^3.1.1 + checksum: 03a7704150b868c318aab6a94d87a33d30dc2ec579d27374575014f06237ba1370ae11178db772f985ef680d469dc237e7b16a1c5d8edaaeb8c3733e7a95a6d3 + languageName: node + linkType: hard + +"@gar/promisify@npm:^1.1.3": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 + languageName: node + linkType: hard + +"@grpc/grpc-js@npm:^1.3.4": + version: 1.8.13 + resolution: "@grpc/grpc-js@npm:1.8.13" + dependencies: + "@grpc/proto-loader": ^0.7.0 + "@types/node": ">=12.12.47" + checksum: bc74a6aa4c677ec7824c26f94b9270cab2489b2ebe9731d8acc2a15e882b6d2a9d20e1205938862fc20296e9784a33b0818427e426718ebdd123e621041fd26c + languageName: node + linkType: hard + +"@grpc/proto-loader@npm:^0.7.0": + version: 0.7.6 + resolution: "@grpc/proto-loader@npm:0.7.6" + dependencies: + "@types/long": ^4.0.1 + lodash.camelcase: ^4.3.0 + long: ^4.0.0 + protobufjs: ^7.0.0 + yargs: ^16.2.0 + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: cc42649cf65c74f627ac80b1f3ed275c4cf96dbc27728cc887e91e217c69a3bd6b94dfa7571725a94538d84735af53d35e9583cc77eb65f3c035106216cc4a1b + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.5.0": + version: 0.5.0 + resolution: "@humanwhocodes/config-array@npm:0.5.0" + dependencies: + "@humanwhocodes/object-schema": ^1.2.0 + debug: ^4.1.1 + minimatch: ^3.0.4 + checksum: 44ee6a9f05d93dd9d5935a006b17572328ba9caff8002442f601736cbda79c580cc0f5a49ce9eb88fbacc5c3a6b62098357c2e95326cd17bb9f1a6c61d6e95e7 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^1.2.0": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.1.0": + version: 0.1.1 + resolution: "@jridgewell/gen-mapping@npm:0.1.1" + dependencies: + "@jridgewell/set-array": ^1.0.0 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.2 + resolution: "@jridgewell/gen-mapping@npm:0.3.2" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:3.1.0, @jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.0 + resolution: "@jridgewell/resolve-uri@npm:3.1.0" + checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": + version: 1.4.14 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" + checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.17 + resolution: "@jridgewell/trace-mapping@npm:0.3.17" + dependencies: + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.14 + checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 + languageName: node + linkType: hard + +"@noble/ed25519@npm:^1.7.1": + version: 1.7.3 + resolution: "@noble/ed25519@npm:1.7.3" + checksum: 45169927d51de513e47bbeebff3a603433c4ac7579e1b8c5034c380a0afedbe85e6959be3d69584a7a5ed6828d638f8f28879003b9bb2fb5f22d8aa2d88fd5fe + languageName: node + linkType: hard + +"@noble/hashes@npm:~1.3.0": + version: 1.3.0 + resolution: "@noble/hashes@npm:1.3.0" + checksum: d7ddb6d7c60f1ce1f87facbbef5b724cdea536fc9e7f59ae96e0fc9de96c8f1a2ae2bdedbce10f7dcc621338dfef8533daa73c873f2b5c87fa1a4e05a95c2e2e + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^2.1.0": + version: 2.1.2 + resolution: "@npmcli/fs@npm:2.1.2" + dependencies: + "@gar/promisify": ^1.1.3 + semver: ^7.3.5 + checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 + languageName: node + linkType: hard + +"@npmcli/move-file@npm:^2.0.0": + version: 2.0.1 + resolution: "@npmcli/move-file@npm:2.0.1" + dependencies: + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 + languageName: node + linkType: hard + +"@protobuf-ts/grpcweb-transport@npm:^2.8.2": + version: 2.8.3 + resolution: "@protobuf-ts/grpcweb-transport@npm:2.8.3" + dependencies: + "@protobuf-ts/runtime": ^2.8.3 + "@protobuf-ts/runtime-rpc": ^2.8.3 + checksum: 22b748e6e4f218bc86023bd9a180279ed7fbccc1169c93ab382a94b22868cbfc823eecb84e38213930206f2e78eb2913d4b7e2fabc479388496db7f00112c602 + languageName: node + linkType: hard + +"@protobuf-ts/runtime-rpc@npm:^2.8.2, @protobuf-ts/runtime-rpc@npm:^2.8.3": + version: 2.8.3 + resolution: "@protobuf-ts/runtime-rpc@npm:2.8.3" + dependencies: + "@protobuf-ts/runtime": ^2.8.3 + checksum: 9b6124abde33669ba87f15f921d6fcc60d09cfd2ffcbdda257e791edbd5be0c66f682ac207843f5841ba829354ec86664c627a4c2cdce3525f4cf9e3db8fdbdf + languageName: node + linkType: hard + +"@protobuf-ts/runtime@npm:^2.8.3": + version: 2.8.3 + resolution: "@protobuf-ts/runtime@npm:2.8.3" + checksum: b5237c5ec4b05f407a8afb51e066a5e27d03da55763e9c83a0d0d32433d95d0b8be0cdf5bcafb5616250c382299dc7c9f9b8a4334813e2cb4615e27a971daada + languageName: node + linkType: hard + +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 011fe7ef0826b0fd1a95935a033a3c0fd08483903e1aa8f8b4e0704e3233406abb9ee25350ec0c20bbecb2aad8da0dcea58b392bbd77d6690736f02c143865d2 + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 67173ac34de1e242c55da52c2f5bdc65505d82453893f9b51dc74af9fe4c065cf4a657a4538e91b0d4a1a1e0a0642215e31894c31650ff6e3831471061e1ee9e + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 59240c850b1d3d0b56d8f8098dd04787dcaec5c5bd8de186fa548de86b86076e1c50e80144b90335e705a044edf5bc8b0998548474c2a10a98c7e004a1547e4b + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 0369163a3d226851682f855f81413cbf166cd98f131edb94a0f67f79e75342d86e89df9d7a1df08ac28be2bc77e0a7f0200526bb6c2a407abbfee1f0262d5fd7 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": ^1.1.1 + "@protobufjs/inquire": ^1.1.0 + checksum: 3fce7e09eb3f1171dd55a192066450f65324fd5f7cc01a431df01bb00d0a895e6bfb5b0c5561ce157ee1d886349c90703d10a4e11a1a256418ff591b969b3477 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 5781e1241270b8bd1591d324ca9e3a3128d2f768077a446187a049e36505e91bc4156ed5ac3159c3ce3d2ba3743dbc757b051b2d723eea9cd367bfd54ab29b2f + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: ca06f02eaf65ca36fb7498fc3492b7fc087bfcc85c702bac5b86fad34b692bdce4990e0ef444c1e2aea8c034227bd1f0484be02810d5d7e931c55445555646f4 + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 856eeb532b16a7aac071cacde5c5620df800db4c80cee6dbc56380524736205aae21e5ae47739114bf669ab5e8ba0e767a282ad894f3b5e124197cb9224445ee + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: d6a34fbbd24f729e2a10ee915b74e1d77d52214de626b921b2d77288bd8f2386808da2315080f2905761527cceffe7ec34c7647bd21a5ae41a25e8212ff79451 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: f9bf3163d13aaa3b6f5e6fbf37a116e094ea021c0e1f2a7ccd0e12a29e2ce08dafba4e8b36e13f8ed7397e1591610ce880ed1289af4d66cf4ace8a36a9557278 + languageName: node + linkType: hard + +"@scure/base@npm:~1.1.0": + version: 1.1.1 + resolution: "@scure/base@npm:1.1.1" + checksum: b4fc810b492693e7e8d0107313ac74c3646970c198bbe26d7332820886fa4f09441991023ec9aa3a2a51246b74409ab5ebae2e8ef148bbc253da79ac49130309 + languageName: node + linkType: hard + +"@scure/bip39@npm:^1.1.0": + version: 1.2.0 + resolution: "@scure/bip39@npm:1.2.0" + dependencies: + "@noble/hashes": ~1.3.0 + "@scure/base": ~1.1.0 + checksum: 980d761f53e63de04a9e4db840eb13bfb1bd1b664ecb04a71824c12c190f4972fd84146f3ed89b2a8e4c6bd2c17c15f8b592b7ac029e903323b0f9e2dae6916b + languageName: node + linkType: hard + +"@stablelib/aead@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/aead@npm:1.0.1" + checksum: 1a6f68d138f105d17dd65349751515bd252ab0498c77255b8555478d28415600dde493f909eb718245047a993f838dfae546071e1687566ffb7b8c3e10c918d9 + languageName: node + linkType: hard + +"@stablelib/binary@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/binary@npm:1.0.1" + dependencies: + "@stablelib/int": ^1.0.1 + checksum: dca9b98eb1f56a4002b5b9e7351fbc49f3d8616af87007c01e833bd763ac89214eb5f3b7e18673c91ce59d4a0e4856a2eb661ace33d39f17fb1ad267271fccd8 + languageName: node + linkType: hard + +"@stablelib/bytes@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/bytes@npm:1.0.1" + checksum: 456267e08c3384abcb71d3ad3e97a6f99185ad754bac016f501ebea4e4886f37900589143b57e33bdbbf513a92fc89368c15dd4517e0540d0bdc79ecdf9dd087 + languageName: node + linkType: hard + +"@stablelib/chacha20poly1305@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/chacha20poly1305@npm:1.0.1" + dependencies: + "@stablelib/aead": ^1.0.1 + "@stablelib/binary": ^1.0.1 + "@stablelib/chacha": ^1.0.1 + "@stablelib/constant-time": ^1.0.1 + "@stablelib/poly1305": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: 81f1a32330838d31e4dc3144d76eba7244b56d9ea38c1f604f2c34d93ed8e67e9a6167d2cfd72254c13cc46dfc1f5ce5157b37939a575295d69d9144abb4e4fb + languageName: node + linkType: hard + +"@stablelib/chacha@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/chacha@npm:1.0.1" + dependencies: + "@stablelib/binary": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: f061f36c4ca4bf177dd7cac11e7c65ced164f141b6065885141ae5a55f32e16ba0209aefcdcc966aef013f1da616ce901a3a80653b4b6f833cf7e3397ae2d6bd + languageName: node + linkType: hard + +"@stablelib/constant-time@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/constant-time@npm:1.0.1" + checksum: dba4f4bf508de2ff15f7f0cbd875e70391aa3ba3698290fe1ed2feb151c243ba08a90fc6fb390ec2230e30fcc622318c591a7c0e35dcb8150afb50c797eac3d7 + languageName: node + linkType: hard + +"@stablelib/ed25519@npm:^1.0.2": + version: 1.0.3 + resolution: "@stablelib/ed25519@npm:1.0.3" + dependencies: + "@stablelib/random": ^1.0.2 + "@stablelib/sha512": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: e18279de078edac67396ba07dbb862dce0fe89efa8141c21a5b04108a29914bd51636019522323ca5097ec596a90b3028ed64e88ee009b0ac7de7c1ab6499ccb + languageName: node + linkType: hard + +"@stablelib/hash@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/hash@npm:1.0.1" + checksum: 3ff1f12d1a4082aaf4b6cdf40c2010aabe5c4209d3b40b97b5bbb0d9abc0ee94abdc545e57de0614afaea807ca0212ac870e247ec8f66cdce91ec39ce82948cf + languageName: node + linkType: hard + +"@stablelib/hkdf@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/hkdf@npm:1.0.1" + dependencies: + "@stablelib/hash": ^1.0.1 + "@stablelib/hmac": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: 9d45e303715a1835c8612b78e6c1b9d2b7463699b484241d8681fb5c17e0f2bbde5ce211c882134b64616a402e09177baeba80426995ff227b3654a155ab225d + languageName: node + linkType: hard + +"@stablelib/hmac@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/hmac@npm:1.0.1" + dependencies: + "@stablelib/constant-time": ^1.0.1 + "@stablelib/hash": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: e3b93f7144a5846a6e30213278f7570de6d3f9d09131b95ce76d5c5c8bf37bf5d1830f2ee8d847555707271dbfd6e2461221719fd4d8b27ff06b9dd689c0ec21 + languageName: node + linkType: hard + +"@stablelib/int@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/int@npm:1.0.1" + checksum: 65bfbf50a382eea70c68e05366bf379cfceff8fbc076f1c267ef2f2411d7aed64fd140c415cb6c29f19a3910d3b8b7805d4b32ad5721a5007a8e744a808c7ae3 + languageName: node + linkType: hard + +"@stablelib/keyagreement@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/keyagreement@npm:1.0.1" + dependencies: + "@stablelib/bytes": ^1.0.1 + checksum: 3c8ec904dd50f72f3162f5447a0fa8f1d9ca6e24cd272d3dbe84971267f3b47f9bd5dc4e4eeedf3fbac2fe01f2d9277053e57c8e60db8c5544bfb35c62d290dd + languageName: node + linkType: hard + +"@stablelib/poly1305@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/poly1305@npm:1.0.1" + dependencies: + "@stablelib/constant-time": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: 70b845bb0481c66b7ba3f3865d01e4c67a4dffc9616fc6de1d23efc5e828ec09de25f8e3be4e1f15a23b8e87e3036ee3d949c2fd4785047e6f7028bbec0ead18 + languageName: node + linkType: hard + +"@stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": + version: 1.0.2 + resolution: "@stablelib/random@npm:1.0.2" + dependencies: + "@stablelib/binary": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: f5ace0a588dc4c21f01cb85837892d4c872e994ae77a58a8eb7dd61aa0b26fb1e9b46b0445e71af57d963ef7d9f5965c64258fc0d04df7b2947bc48f2d3560c5 + languageName: node + linkType: hard + +"@stablelib/sha256@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/sha256@npm:1.0.1" + dependencies: + "@stablelib/binary": ^1.0.1 + "@stablelib/hash": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: 38669871e1bda72eb537629ebceac1c72da8890273a9fbe088f81f6d14c1ec04e78be8c5b455380a06c67f8e62b2508e11e9063fcc257dbaa1b5c27ac756ba77 + languageName: node + linkType: hard + +"@stablelib/sha512@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/sha512@npm:1.0.1" + dependencies: + "@stablelib/binary": ^1.0.1 + "@stablelib/hash": ^1.0.1 + "@stablelib/wipe": ^1.0.1 + checksum: b7c82f7608a35948a2147a534c0c9afc80deab3fd5f72a2e27b2454e7c0c6944d39381be3abcb1b7fac5b824ba030ae3e98209d517a579c143d8ed63930b042f + languageName: node + linkType: hard + +"@stablelib/wipe@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/wipe@npm:1.0.1" + checksum: 287802eb146810a46ba72af70b82022caf83a8aeebde23605f5ee0decf64fe2b97a60c856e43b6617b5801287c30cfa863cfb0469e7fcde6f02d143cf0c6cbf4 + languageName: node + linkType: hard + +"@stablelib/x25519@npm:^1.0.3": + version: 1.0.3 + resolution: "@stablelib/x25519@npm:1.0.3" + dependencies: + "@stablelib/keyagreement": ^1.0.1 + "@stablelib/random": ^1.0.2 + "@stablelib/wipe": ^1.0.1 + checksum: f8537066b542b6770c1b5b2ae5ad0688d1b986e4bf818067c152c123a5471531987bbf024224f75f387f481ccc5b628e391e49e92102b8b1a3e2d449d6105402 + languageName: node + linkType: hard + +"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cab83832830a57735329ed68f67c03b57ca21fa037b0134847b0c5c0ef4beca89956d7dacfbf7b2a10fd901e7009e877512086db2ee918b8c69aee7742ae32c0 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-attribute@npm:*": + version: 7.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:7.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 808ba216eea6904b2c0b664957b1ad4d3e0d9e36635ad2fca7fb2667031730cbbe067421ac0d50209f7c83dc3b6c2eff8f377780268cd1606c85603bc47b18d7 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": + version: 7.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:7.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: da0cae989cc99b5437c877412da6251eef57edfff8514b879c1245b6519edfda101ebc4ba2be3cce3aa9a6014050ea4413e004084d839afd8ac8ffc587a921bf + languageName: node + linkType: hard + +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b7d2125758e766e1ebd14b92216b800bdc976959bc696dbfa1e28682919147c1df4bb8b1b5fd037d7a83026e27e681fea3b8d3741af8d3cf4c9dfa3d412125df + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fd42ebf127ae9163ef341e84972daa99bdcb9e6ed3f83aabd95ee173fddc43e40e02fa847fbc0a1058cf5549f72b7960a2c5e22c3e4ac18f7e3ac81277852ae + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c1550ee9f548526fa66fd171e3ffb5696bfc4e4cd108a631d39db492c7410dc10bba4eb5a190e9df824bf806130ccc586ae7d2e43c547e6a4f93bbb29a18f344 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4c924af22b948b812629e80efb90ad1ec8faae26a232d8ca8a06b46b53e966a2c415a57806a3ff0ea806a622612e546422719b69ec6839717a7755dac19171d9 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e496bb5ee871feb6bcab250b6e067322da7dd5c9c2b530b41e5586fe090f86611339b49d0a909c334d9b24cbca0fa755c949a2526c6ad03c6b5885666874cf5f + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-preset@npm:6.5.1" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": ^6.5.1 + "@svgr/babel-plugin-remove-jsx-attribute": "*" + "@svgr/babel-plugin-remove-jsx-empty-expression": "*" + "@svgr/babel-plugin-replace-jsx-attribute-value": ^6.5.1 + "@svgr/babel-plugin-svg-dynamic-title": ^6.5.1 + "@svgr/babel-plugin-svg-em-dimensions": ^6.5.1 + "@svgr/babel-plugin-transform-react-native-svg": ^6.5.1 + "@svgr/babel-plugin-transform-svg-component": ^6.5.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f124be39a8e64f909162f925b3a63ddaa5a342a5e24fc0b7f7d9d4d7f7e3b916596c754fb557dc259928399cad5366a27cb231627a0d2dcc4b13ac521cf05af + languageName: node + linkType: hard + +"@svgr/core@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/core@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@svgr/babel-preset": ^6.5.1 + "@svgr/plugin-jsx": ^6.5.1 + camelcase: ^6.2.0 + cosmiconfig: ^7.0.1 + checksum: fd6d6d5da5aeb956703310480b626c1fb3e3973ad9fe8025efc1dcf3d895f857b70d100c63cf32cebb20eb83c9607bafa464c9436e18fe6fe4fafdc73ed6b1a5 + languageName: node + linkType: hard + +"@svgr/hast-util-to-babel-ast@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1" + dependencies: + "@babel/types": ^7.20.0 + entities: ^4.4.0 + checksum: 37923cce1b3f4e2039077b0c570b6edbabe37d1cf1a6ee35e71e0fe00f9cffac450eec45e9720b1010418131a999cb0047331ba1b6d1d2c69af1b92ac785aacf + languageName: node + linkType: hard + +"@svgr/plugin-jsx@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-jsx@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@svgr/babel-preset": ^6.5.1 + "@svgr/hast-util-to-babel-ast": ^6.5.1 + svg-parser: ^2.0.4 + peerDependencies: + "@svgr/core": ^6.0.0 + checksum: 42f22847a6bdf930514d7bedd3c5e1fd8d53eb3594779f9db16cb94c762425907c375cd8ec789114e100a4d38068aca6c7ab5efea4c612fba63f0630c44cc859 + languageName: node + linkType: hard + +"@thi.ng/api@npm:^8.7.5": + version: 8.7.5 + resolution: "@thi.ng/api@npm:8.7.5" + checksum: 18df466cf969e848d4c4afbabb8f094e8a446212227547a49535eba86f481d42c3b0959ab4e70c86fd919dbb958478fa5a92e88d972fa668502b417a50d0785e + languageName: node + linkType: hard + +"@thi.ng/arrays@npm:^2.5.9": + version: 2.5.9 + resolution: "@thi.ng/arrays@npm:2.5.9" + dependencies: + "@thi.ng/api": ^8.7.5 + "@thi.ng/checks": ^3.3.11 + "@thi.ng/compare": ^2.1.28 + "@thi.ng/equiv": ^2.1.21 + "@thi.ng/errors": ^2.2.14 + "@thi.ng/random": ^3.3.28 + checksum: ebda25085079839d659601fb4fd17a04274d66dcba362ff0dcc095b10ccb7a55367c6a0e45f7874835a68b73429afd092e559f3109d927bba891275f25fde4d6 + languageName: node + linkType: hard + +"@thi.ng/binary@npm:^3.3.22": + version: 3.3.22 + resolution: "@thi.ng/binary@npm:3.3.22" + dependencies: + "@thi.ng/api": ^8.7.5 + checksum: 30a5ce508c05e6222cec7f30e5d8f3ebd97b3dbb4698de596f6d27ada12f361d88f400deb5ed65ba2d353dbb5bdc4f38d7a4ff1182ca4a6b13ad63b8759024c0 + languageName: node + linkType: hard + +"@thi.ng/checks@npm:^3.3.11, @thi.ng/checks@npm:^3.3.4": + version: 3.3.11 + resolution: "@thi.ng/checks@npm:3.3.11" + dependencies: + tslib: ^2.5.0 + checksum: ea914e4eb7d59a66b342ee31a6a8f97e6e1f65130a6c07c927698e293b29928f5f9caccc13f6ec1058d9becb30f09d107edf33a82161b6e06c079a78c41213d6 + languageName: node + linkType: hard + +"@thi.ng/compare@npm:^2.1.28": + version: 2.1.28 + resolution: "@thi.ng/compare@npm:2.1.28" + dependencies: + "@thi.ng/api": ^8.7.5 + checksum: 7c9fbec18a8ddcf7794714646052a8bbb0b8d37dcb8bf0528003d2a010e5d7198552931b0d443df7196c61901d95201646107ee27b49a9785e7ce87f85b2de64 + languageName: node + linkType: hard + +"@thi.ng/compose@npm:^2.1.30": + version: 2.1.30 + resolution: "@thi.ng/compose@npm:2.1.30" + dependencies: + "@thi.ng/api": ^8.7.5 + "@thi.ng/errors": ^2.2.14 + checksum: f0e3f2460be514ee1a32b9ad5969ccd289167a6352215b20a8baccd2b147a814b03b40e315f7d74d1d345f6549161131d0fc7f1354ba8980bbd7a6da408eb9fb + languageName: node + linkType: hard + +"@thi.ng/equiv@npm:^2.1.21": + version: 2.1.21 + resolution: "@thi.ng/equiv@npm:2.1.21" + checksum: ec86fe9ed787008e0217b0433bf608798b45f5d7e75aa47545bab5f545e2ead81e752071a36d6fe98c655a6993dafd6e621902db366d9a5f61096079f63c7b89 + languageName: node + linkType: hard + +"@thi.ng/errors@npm:^2.2.14, @thi.ng/errors@npm:^2.2.5": + version: 2.2.14 + resolution: "@thi.ng/errors@npm:2.2.14" + checksum: 3c7b18e20f08d41e6603b887ba66b81b492c1c1ed01a4a8e40cfc22f905917e6df0d3d3806e245560db8ca0bca10d898b81d164a60df8356cdb669805266c827 + languageName: node + linkType: hard + +"@thi.ng/hex@npm:^2.3.8": + version: 2.3.8 + resolution: "@thi.ng/hex@npm:2.3.8" + checksum: 82bffc098f9ab9e80048177a33860f9a234df689cd7654a3407d15ccb2e0c53f8d92346bea3f716c2a9743b5c802b9d93568f2be0b5c8a0326dd6555113198c7 + languageName: node + linkType: hard + +"@thi.ng/leb128@npm:^2.1.18": + version: 2.1.30 + resolution: "@thi.ng/leb128@npm:2.1.30" + dependencies: + "@thi.ng/checks": ^3.3.4 + "@thi.ng/errors": ^2.2.5 + "@thi.ng/transducers-binary": ^2.1.30 + checksum: 0517d50f4fefcfa7822e07c1a82a51b118c77f12ff0bff74124bd0a4773b089c20772dec7f17a965198cc2ff10e6bce4fc61f69e3a8287d45cbc9b999b7370d5 + languageName: node + linkType: hard + +"@thi.ng/math@npm:^5.4.6": + version: 5.4.6 + resolution: "@thi.ng/math@npm:5.4.6" + dependencies: + "@thi.ng/api": ^8.7.5 + checksum: c6bfa340221db2172d0d94e751e05e62242d0e7c9d09e5076224af87a588733cc1312c604fe76e60be05fb57bc42bce4dc270154d481951e243ccf8d8ecf1767 + languageName: node + linkType: hard + +"@thi.ng/random@npm:^3.3.28": + version: 3.3.28 + resolution: "@thi.ng/random@npm:3.3.28" + dependencies: + "@thi.ng/api": ^8.7.5 + "@thi.ng/checks": ^3.3.11 + "@thi.ng/errors": ^2.2.14 + "@thi.ng/hex": ^2.3.8 + checksum: cd58c4557cda4f561688eb869e98357d67ec1263714e5155e851f90b29035426ca20c13c595e82f606b724ee861ec5ef4173e91917fe7a9bf6b846d186feff38 + languageName: node + linkType: hard + +"@thi.ng/transducers-binary@npm:^2.1.30": + version: 2.1.45 + resolution: "@thi.ng/transducers-binary@npm:2.1.45" + dependencies: + "@thi.ng/binary": ^3.3.22 + "@thi.ng/compose": ^2.1.30 + "@thi.ng/errors": ^2.2.14 + "@thi.ng/hex": ^2.3.8 + "@thi.ng/random": ^3.3.28 + "@thi.ng/transducers": ^8.4.1 + checksum: e63729145811ab0844a6a2b43145a519adbf5cba35aadc63d426b8f72ab17f2b25428bb27ce2b9d41255dd52f57dd61f3d4716b5cf38413ebf9a490e8b366b45 + languageName: node + linkType: hard + +"@thi.ng/transducers@npm:^8.4.1": + version: 8.4.1 + resolution: "@thi.ng/transducers@npm:8.4.1" + dependencies: + "@thi.ng/api": ^8.7.5 + "@thi.ng/arrays": ^2.5.9 + "@thi.ng/checks": ^3.3.11 + "@thi.ng/compare": ^2.1.28 + "@thi.ng/compose": ^2.1.30 + "@thi.ng/errors": ^2.2.14 + "@thi.ng/math": ^5.4.6 + "@thi.ng/random": ^3.3.28 + checksum: 33a4cfde20d1fd452b8b1897492312aa873790c0b83d12d88cde5a7c2aecc449f3f3e1752df263ac73577c4a387fc3d24e8bd7b49b04018794d908440158601f + languageName: node + linkType: hard + +"@tootallnate/once@npm:1": + version: 1.1.2 + resolution: "@tootallnate/once@npm:1.1.2" + checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.9 + resolution: "@tsconfig/node10@npm:1.0.9" + checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.3 + resolution: "@tsconfig/node16@npm:1.0.3" + checksum: 3a8b657dd047495b7ad23437d6afd20297ce90380ff0bdee93fc7d39a900dbd8d9e26e53ff6b465e7967ce2adf0b218782590ce9013285121e6a5928fbd6819f + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.9": + version: 7.0.12 + resolution: "@types/json-schema@npm:7.0.12" + checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac + languageName: node + linkType: hard + +"@types/long@npm:^4.0.1": + version: 4.0.2 + resolution: "@types/long@npm:4.0.2" + checksum: d16cde7240d834cf44ba1eaec49e78ae3180e724cd667052b194a372f350d024cba8dd3f37b0864931683dab09ca935d52f0c4c1687178af5ada9fc85b0635f4 + languageName: node + linkType: hard + +"@types/minimist@npm:^1.2.0": + version: 1.2.2 + resolution: "@types/minimist@npm:1.2.2" + checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^18.7.23": + version: 18.15.11 + resolution: "@types/node@npm:18.15.11" + checksum: 977b4ad04708897ff0eb049ecf82246d210939c82461922d20f7d2dcfd81bbc661582ba3af28869210f7e8b1934529dcd46bff7d448551400f9d48b9d3bddec3 + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.0": + version: 2.4.1 + resolution: "@types/normalize-package-data@npm:2.4.1" + checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + languageName: node + linkType: hard + +"@types/parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "@types/parse-json@npm:4.0.0" + checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.5 + resolution: "@types/prop-types@npm:15.7.5" + checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.0.5": + version: 18.0.11 + resolution: "@types/react-dom@npm:18.0.11" + dependencies: + "@types/react": "*" + checksum: 579691e4d5ec09688087568037c35edf8cfb1ab3e07f6c60029280733ee7b5c06d66df6fcc90786702c93ac8cb13bc7ff16c79ddfc75d082938fbaa36e1cdbf4 + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^18.0.9": + version: 18.0.33 + resolution: "@types/react@npm:18.0.33" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 4fbd2b2b6a26378bdfde121081a6406ec2d39e4ba87ea5f6897ab7bb2198713165e6fd703ad4ed7ba1d4f23ef54a4c9f108f3105c7ed8e136411ee6bdebc5669 + languageName: node + linkType: hard + +"@types/scheduler@npm:*": + version: 0.16.3 + resolution: "@types/scheduler@npm:0.16.3" + checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 + languageName: node + linkType: hard + +"@types/semver@npm:^7.3.12": + version: 7.5.0 + resolution: "@types/semver@npm:7.5.0" + checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 + languageName: node + linkType: hard + +"@types/sha256@npm:^0.2.0": + version: 0.2.0 + resolution: "@types/sha256@npm:0.2.0" + dependencies: + "@types/node": "*" + checksum: f3c8e0dcaf11d833292b7dd19db567ef41b23036b2fb9ea7335cba100aac8c56e1346171fae6c63885f6c0e1048550506fd165628bc0001902fea010a16d3842 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^5.20.0": + version: 5.62.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" + dependencies: + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/type-utils": 5.62.0 + "@typescript-eslint/utils": 5.62.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^5.20.0": + version: 5.62.0 + resolution: "@typescript-eslint/parser@npm:5.62.0" + dependencies: + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/type-utils@npm:5.62.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.62.0 + "@typescript-eslint/utils": 5.62.0 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + eslint-visitor-keys: ^3.3.0 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 + languageName: node + linkType: hard + +"@walletconnect/browser-utils@npm:^1.8.0": + version: 1.8.0 + resolution: "@walletconnect/browser-utils@npm:1.8.0" + dependencies: + "@walletconnect/safe-json": 1.0.0 + "@walletconnect/types": ^1.8.0 + "@walletconnect/window-getters": 1.0.0 + "@walletconnect/window-metadata": 1.0.0 + detect-browser: 5.2.0 + checksum: cf4b55c9e8d53b1ffa99322ebcdfce7ad8df8e3ee90f57252da0b3882d3bfb592414cad09900c20619216c6a42d1184ad03728e6514e95a34467a8821aa5aef8 + languageName: node + linkType: hard + +"@walletconnect/core@npm:2.6.0": + version: 2.6.0 + resolution: "@walletconnect/core@npm:2.6.0" + dependencies: + "@walletconnect/heartbeat": 1.2.0 + "@walletconnect/jsonrpc-provider": 1.0.10 + "@walletconnect/jsonrpc-utils": ^1.0.4 + "@walletconnect/jsonrpc-ws-connection": 1.0.10 + "@walletconnect/keyvaluestorage": ^1.0.2 + "@walletconnect/logger": ^2.0.1 + "@walletconnect/relay-api": ^1.0.9 + "@walletconnect/relay-auth": ^1.0.4 + "@walletconnect/safe-json": ^1.0.1 + "@walletconnect/time": ^1.0.2 + "@walletconnect/types": 2.6.0 + "@walletconnect/utils": 2.6.0 + events: ^3.3.0 + lodash.isequal: 4.5.0 + pino: 7.11.0 + uint8arrays: ^3.1.0 + checksum: 91abd069b1cd149e8f0c82d3de5df5f71827ff6b57583219df89c6649975d6b7d103df0b872b092cb3fac49d8bdff1322a3d06712ae5a62bb2bff714c3a052c4 + languageName: node + linkType: hard + +"@walletconnect/environment@npm:^1.0.1": + version: 1.0.1 + resolution: "@walletconnect/environment@npm:1.0.1" + dependencies: + tslib: 1.14.1 + checksum: a18731d857bdca73910147e59992cef3c6e292c37ab3d3013307bd706f06cb216aa804f0f48b25a78df6493ad8127e633629f4b50acb4f69d3765d6ac0524f68 + languageName: node + linkType: hard + +"@walletconnect/events@npm:^1.0.1": + version: 1.0.1 + resolution: "@walletconnect/events@npm:1.0.1" + dependencies: + keyvaluestorage-interface: ^1.0.0 + tslib: 1.14.1 + checksum: d28aa4dcc981bdaf38f0aeed979731ca793cead7e7a4ee730a9146d99d89db09a86c8e3192ed860638283276961c0723ba00cf3b8776f0692b36ec7df6c01be4 + languageName: node + linkType: hard + +"@walletconnect/heartbeat@npm:1.2.0": + version: 1.2.0 + resolution: "@walletconnect/heartbeat@npm:1.2.0" + dependencies: + "@walletconnect/events": ^1.0.1 + "@walletconnect/time": ^1.0.2 + chai: ^4.3.7 + mocha: ^10.2.0 + ts-node: ^10.9.1 + tslib: 1.14.1 + checksum: 27a0efa0a9e3e073ae824dff4480b13ee878e09f949c0c18cb1cc344163ea501b3ef2602901e50062d5e7dba348632405de7f07a83313d2acce203a11a8b1a40 + languageName: node + linkType: hard + +"@walletconnect/jsonrpc-provider@npm:1.0.10": + version: 1.0.10 + resolution: "@walletconnect/jsonrpc-provider@npm:1.0.10" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.6 + "@walletconnect/safe-json": ^1.0.1 + tslib: 1.14.1 + checksum: 4bf0c4a3c2e2d36c9a11811682bd9727ee5696137a1be6b08870a1c1132236741ddb0f31b27619a63038adb76a2b733c4889777fc9c988f11e06839502d65d31 + languageName: node + linkType: hard + +"@walletconnect/jsonrpc-types@npm:^1.0.2": + version: 1.0.2 + resolution: "@walletconnect/jsonrpc-types@npm:1.0.2" + dependencies: + keyvaluestorage-interface: ^1.0.0 + tslib: 1.14.1 + checksum: 6878d184bfc49e5c8190586c451895eb48a576015f0556527df81b94f52977f61d456b237c662ffbff28e972f8f18b9cc4e06f0e94eddfb9fdeed6fdb4a98c5f + languageName: node + linkType: hard + +"@walletconnect/jsonrpc-utils@npm:^1.0.4, @walletconnect/jsonrpc-utils@npm:^1.0.6": + version: 1.0.6 + resolution: "@walletconnect/jsonrpc-utils@npm:1.0.6" + dependencies: + "@walletconnect/environment": ^1.0.1 + "@walletconnect/jsonrpc-types": ^1.0.2 + tslib: 1.14.1 + checksum: 5e36d0713a690f1666e254c8de6c9a80e744669a588f04e56907c5dfeca0d2457ab71218ce9c43512afe12aab5bfd2fa390f376bf90f4ef671abd340d7abf052 + languageName: node + linkType: hard + +"@walletconnect/jsonrpc-ws-connection@npm:1.0.10": + version: 1.0.10 + resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.10" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.6 + "@walletconnect/safe-json": ^1.0.1 + events: ^3.3.0 + tslib: 1.14.1 + ws: ^7.5.1 + checksum: 15d8d513596fcdb5a93445f1dd80937edc7f44634baf77a7d60e06fae0ea22cda1a65350f5f3e25bf18826b0d8c8cd821ac83ac545913436e577e6c2c61e1e22 + languageName: node + linkType: hard + +"@walletconnect/keyvaluestorage@npm:^1.0.2": + version: 1.0.2 + resolution: "@walletconnect/keyvaluestorage@npm:1.0.2" + dependencies: + safe-json-utils: ^1.1.1 + tslib: 1.14.1 + peerDependencies: + "@react-native-async-storage/async-storage": 1.x + lokijs: 1.x + peerDependenciesMeta: + "@react-native-async-storage/async-storage": + optional: true + lokijs: + optional: true + checksum: d695c2efcfa013a43cfaa20c85281df7d364a4452d11a4312a695298bd0e50d04b0e21c828f33f46fb020ea9796e60a6b23041a85f29bd10beeba7d0da24539f + languageName: node + linkType: hard + +"@walletconnect/logger@npm:^2.0.1": + version: 2.0.1 + resolution: "@walletconnect/logger@npm:2.0.1" + dependencies: + pino: 7.11.0 + tslib: 1.14.1 + checksum: b686679d176d5d22a3441d93e71be2652e6c447682a6d6f014baf7c2d9dcd23b93e2f434d4410e33cc532d068333f6b3c1d899aeb0d6f60cc296ed17f57b0c2c + languageName: node + linkType: hard + +"@walletconnect/mobile-registry@npm:^1.4.0": + version: 1.4.0 + resolution: "@walletconnect/mobile-registry@npm:1.4.0" + checksum: 06f18842e68f88e71e87f36daea143684afc49551974cf359fb55cc731e9b4fc0bce762d87b79b268e529def889e82fc2fbc2bc12d6a28a04ed0d6a060188020 + languageName: node + linkType: hard + +"@walletconnect/qrcode-modal@npm:^1.8.0": + version: 1.8.0 + resolution: "@walletconnect/qrcode-modal@npm:1.8.0" + dependencies: + "@walletconnect/browser-utils": ^1.8.0 + "@walletconnect/mobile-registry": ^1.4.0 + "@walletconnect/types": ^1.8.0 + copy-to-clipboard: ^3.3.1 + preact: 10.4.1 + qrcode: 1.4.4 + checksum: 0abae2268579f55da87ed766fee32d428f951f18ab0a4addbfe8cbcbad1ce3a5642cc26ceb80654b158e537000ee5006b14eff43515619bc17af8c5da51adc55 + languageName: node + linkType: hard + +"@walletconnect/relay-api@npm:^1.0.9": + version: 1.0.9 + resolution: "@walletconnect/relay-api@npm:1.0.9" + dependencies: + "@walletconnect/jsonrpc-types": ^1.0.2 + tslib: 1.14.1 + checksum: 5870579b6552f1ce7351878f1acb8386b0c11288c64d39133c7cee5040feeb7ccf9114228d97a59749d60366ad107b097d656407d534567c24f5d3878ea6e246 + languageName: node + linkType: hard + +"@walletconnect/relay-auth@npm:^1.0.4": + version: 1.0.4 + resolution: "@walletconnect/relay-auth@npm:1.0.4" + dependencies: + "@stablelib/ed25519": ^1.0.2 + "@stablelib/random": ^1.0.1 + "@walletconnect/safe-json": ^1.0.1 + "@walletconnect/time": ^1.0.2 + tslib: 1.14.1 + uint8arrays: ^3.0.0 + checksum: 35b3229d7b57e74fdb8fe6827d8dd8291dc60bacda880a57b2acb47a34d38f12be46c971c9eff361eb4073e896648b550de7a7a3852ef3752f9619c08dfba891 + languageName: node + linkType: hard + +"@walletconnect/safe-json@npm:1.0.0": + version: 1.0.0 + resolution: "@walletconnect/safe-json@npm:1.0.0" + checksum: a8ee161cad37242983522d19ace57c2d2725b5b1cf5fd4d61e3e5f4190a2b369acc4cd0fa40774b50cf4aa322f477e31b7841a6b8f0d84a3af12da8c4344e9b7 + languageName: node + linkType: hard + +"@walletconnect/safe-json@npm:^1.0.1": + version: 1.0.2 + resolution: "@walletconnect/safe-json@npm:1.0.2" + dependencies: + tslib: 1.14.1 + checksum: fee03fcc70adb5635ab9419ea6ec6555aa2467bef650ad3b9526451c3a5cf247836db0f3ae3bb435d2e585d99e50c2ebe7dc9c429cfa3df900cf3fe4bd06d37f + languageName: node + linkType: hard + +"@walletconnect/sign-client@npm:^2.1.4": + version: 2.6.0 + resolution: "@walletconnect/sign-client@npm:2.6.0" + dependencies: + "@walletconnect/core": 2.6.0 + "@walletconnect/events": ^1.0.1 + "@walletconnect/heartbeat": 1.2.0 + "@walletconnect/jsonrpc-utils": ^1.0.4 + "@walletconnect/logger": ^2.0.1 + "@walletconnect/time": ^1.0.2 + "@walletconnect/types": 2.6.0 + "@walletconnect/utils": 2.6.0 + events: ^3.3.0 + pino: 7.11.0 + checksum: cead95c17bfed63531091bdfa281ac8c9a9c67a5103ae27d38d211cfb71d8e803dc2095e9d00f1e850ea07b03af756af66957ed6a4b9ed5376e2c26a77edc14c + languageName: node + linkType: hard + +"@walletconnect/time@npm:^1.0.2": + version: 1.0.2 + resolution: "@walletconnect/time@npm:1.0.2" + dependencies: + tslib: 1.14.1 + checksum: e3fc0113ca9e7ecedfc65f9e1517196682d5ffcda60750f51073b8d704719a17fea75da8b242c804bfa5b994707723043892a2db3cc86988b190b7b8711fe3c0 + languageName: node + linkType: hard + +"@walletconnect/types@npm:2.6.0, @walletconnect/types@npm:^2.1.4": + version: 2.6.0 + resolution: "@walletconnect/types@npm:2.6.0" + dependencies: + "@walletconnect/events": ^1.0.1 + "@walletconnect/heartbeat": 1.2.0 + "@walletconnect/jsonrpc-types": ^1.0.2 + "@walletconnect/keyvaluestorage": ^1.0.2 + "@walletconnect/logger": ^2.0.1 + events: ^3.3.0 + checksum: 248249aaadd9c64a2d9fa4ac0ab60e38eb82302b71e94d88a5b472344ef64597135edd16fa80d2802d22924a3204333c7eb9ffb345dcc1d0dce4f62ec0e2c790 + languageName: node + linkType: hard + +"@walletconnect/types@npm:^1.8.0": + version: 1.8.0 + resolution: "@walletconnect/types@npm:1.8.0" + checksum: 194d615888068030183489222641332987846aa5c6bcf0a62fa60ca7a282b9f94932c49fcd2b293a859e98624fe3e7a2d3c5fb66545fe30d3391e7ac91a99e34 + languageName: node + linkType: hard + +"@walletconnect/utils@npm:2.6.0": + version: 2.6.0 + resolution: "@walletconnect/utils@npm:2.6.0" + dependencies: + "@stablelib/chacha20poly1305": 1.0.1 + "@stablelib/hkdf": 1.0.1 + "@stablelib/random": ^1.0.2 + "@stablelib/sha256": 1.0.1 + "@stablelib/x25519": ^1.0.3 + "@walletconnect/jsonrpc-utils": ^1.0.4 + "@walletconnect/relay-api": ^1.0.9 + "@walletconnect/safe-json": ^1.0.1 + "@walletconnect/time": ^1.0.2 + "@walletconnect/types": 2.6.0 + "@walletconnect/window-getters": ^1.0.1 + "@walletconnect/window-metadata": ^1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.1 + uint8arrays: ^3.1.0 + checksum: 9565e8c5b5b6ebd29b197ef3b1adc13ff121bb3e801a56a756cb6921228805a752a5a63556dca913c504441ceec7c9860c55b98962e1b74c1ba93b0eee3dc21c + languageName: node + linkType: hard + +"@walletconnect/window-getters@npm:1.0.0": + version: 1.0.0 + resolution: "@walletconnect/window-getters@npm:1.0.0" + checksum: 192af7acb2051d304addb2e5a3f121fedd8c83ba6750018e3b0da5757bad525336bc5d9cb571f63b09828658764151da181337ec0e898811ad7f506910bd3b5f + languageName: node + linkType: hard + +"@walletconnect/window-getters@npm:^1.0.0, @walletconnect/window-getters@npm:^1.0.1": + version: 1.0.1 + resolution: "@walletconnect/window-getters@npm:1.0.1" + dependencies: + tslib: 1.14.1 + checksum: fae312c4e1be5574d97f071de58e6aa0d0296869761499caf9d4a9a5fd2643458af32233a2120521b00873a599ff88457d405bd82ced5fb5bd6dc3191c07a3e5 + languageName: node + linkType: hard + +"@walletconnect/window-metadata@npm:1.0.0": + version: 1.0.0 + resolution: "@walletconnect/window-metadata@npm:1.0.0" + dependencies: + "@walletconnect/window-getters": ^1.0.0 + checksum: eec506ff6d35ae6e88db1e38b6f514f6cbf1a45b979878e5e50819d229b616fc645a2b0816145b61acda2701042160a4e0685f080927b87461853a62a887a9e9 + languageName: node + linkType: hard + +"@walletconnect/window-metadata@npm:^1.0.1": + version: 1.0.1 + resolution: "@walletconnect/window-metadata@npm:1.0.1" + dependencies: + "@walletconnect/window-getters": ^1.0.1 + tslib: 1.14.1 + checksum: e82aea7195c6fe95c00e87bb38051c5549838c2e8302da94f1afa48206f79f0b620166c9820f847494505d282d1568e2086a1561b0493d2d0a1fa115f9106aef + languageName: node + linkType: hard + +"abab@npm:^2.0.5, abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + +"abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"accepts@npm:~1.3.4": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: ~2.1.34 + negotiator: 0.6.3 + checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 + languageName: node + linkType: hard + +"acorn-globals@npm:^6.0.0": + version: 6.0.0 + resolution: "acorn-globals@npm:6.0.0" + dependencies: + acorn: ^7.1.1 + acorn-walk: ^7.1.1 + checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.1": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn-walk@npm:^7.1.1": + version: 7.2.0 + resolution: "acorn-walk@npm:7.2.0" + checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f + languageName: node + linkType: hard + +"acorn-walk@npm:^8.1.1": + version: 8.2.0 + resolution: "acorn-walk@npm:8.2.0" + checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + languageName: node + linkType: hard + +"acorn@npm:^7.1.1, acorn@npm:^7.4.0": + version: 7.4.1 + resolution: "acorn@npm:7.4.1" + bin: + acorn: bin/acorn + checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407 + languageName: node + linkType: hard + +"acorn@npm:^8.4.1": + version: 8.8.2 + resolution: "acorn@npm:8.8.2" + bin: + acorn: bin/acorn + checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.2.1": + version: 4.3.0 + resolution: "agentkeepalive@npm:4.3.0" + dependencies: + debug: ^4.1.0 + depd: ^2.0.0 + humanize-ms: ^1.2.1 + checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^6.10.0, ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ajv@npm:^8.0.1": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + +"ansi-colors@npm:4.1.1": + version: 4.1.1 + resolution: "ansi-colors@npm:4.1.1" + checksum: 138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + languageName: node + linkType: hard + +"ansi-regex@npm:^4.1.0": + version: 4.1.1 + resolution: "ansi-regex@npm:4.1.1" + checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"anymatch@npm:^2.0.0": + version: 2.0.0 + resolution: "anymatch@npm:2.0.0" + dependencies: + micromatch: ^3.1.4 + normalize-path: ^2.1.1 + checksum: f7bb1929842b4585cdc28edbb385767d499ce7d673f96a8f11348d2b2904592ffffc594fe9229b9a1e9e4dccb9329b7692f9f45e6a11dcefbb76ecdc9ab740f6 + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"apache-crypt@npm:^1.1.2": + version: 1.2.6 + resolution: "apache-crypt@npm:1.2.6" + dependencies: + unix-crypt-td-js: ^1.1.4 + checksum: 525d137bfac716f0b99861ed6915420789c3b265816071d9fcb942a28ceaf99728f3890d62a09316d746f3ace5548f40a6d169af727b8f62e4c237f327b3bdfc + languageName: node + linkType: hard + +"apache-md5@npm:^1.0.6": + version: 1.1.8 + resolution: "apache-md5@npm:1.1.8" + checksum: 5f93fe00a4c75c947a8ba88054cfa9c141ea13d1581515a59637d580747581345f8cee41204af354f7280439ab19120f4bec4a1ee5cf1ac7033a7a89dbb05ada + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: ~1.0.2 + checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"aria-query@npm:^5.1.3": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 + languageName: node + linkType: hard + +"arr-diff@npm:^4.0.0": + version: 4.0.0 + resolution: "arr-diff@npm:4.0.0" + checksum: ea7c8834842ad3869297f7915689bef3494fd5b102ac678c13ffccab672d3d1f35802b79e90c4cfec2f424af3392e44112d1ccf65da34562ed75e049597276a0 + languageName: node + linkType: hard + +"arr-flatten@npm:^1.1.0": + version: 1.1.0 + resolution: "arr-flatten@npm:1.1.0" + checksum: 963fe12564fca2f72c055f3f6c206b9e031f7c433a0c66ca9858b484821f248c5b1e5d53c8e4989d80d764cd776cf6d9b160ad05f47bdc63022bfd63b5455e22 + languageName: node + linkType: hard + +"arr-union@npm:^3.1.0": + version: 3.1.0 + resolution: "arr-union@npm:3.1.0" + checksum: b5b0408c6eb7591143c394f3be082fee690ddd21f0fdde0a0a01106799e847f67fcae1b7e56b0a0c173290e29c6aca9562e82b300708a268bc8f88f3d6613cb9 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + +"array-includes@npm:^3.1.6": + version: 3.1.6 + resolution: "array-includes@npm:3.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.3 + is-string: ^1.0.7 + checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5 + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array-unique@npm:^0.3.2": + version: 0.3.2 + resolution: "array-unique@npm:0.3.2" + checksum: da344b89cfa6b0a5c221f965c21638bfb76b57b45184a01135382186924f55973cd9b171d4dad6bf606c6d9d36b0d721d091afdc9791535ead97ccbe78f8a888 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.1": + version: 1.3.1 + resolution: "array.prototype.flat@npm:1.3.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 5a8415949df79bf6e01afd7e8839bbde5a3581300e8ad5d8449dea52639e9e59b26a467665622783697917b43bf39940a6e621877c7dd9b3d1c1f97484b9b88b + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.1": + version: 1.3.1 + resolution: "array.prototype.flatmap@npm:1.3.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.1": + version: 1.1.1 + resolution: "array.prototype.tosorted@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.1.3 + checksum: 7923324a67e70a2fc0a6e40237405d92395e45ebd76f5cb89c2a5cf1e66b47aca6baacd0cd628ffd88830b90d47fff268071493d09c9ae123645613dac2c2ca3 + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.1": + version: 1.0.1 + resolution: "arraybuffer.prototype.slice@npm:1.0.1" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.2 + define-properties: ^1.2.0 + get-intrinsic: ^1.2.1 + is-array-buffer: ^3.0.2 + is-shared-array-buffer: ^1.0.2 + checksum: e3e9b2a3e988ebfeddce4c7e8f69df730c9e48cb04b0d40ff0874ce3d86b3d1339dd520ffde5e39c02610bc172ecfbd4bc93324b1cabd9554c44a56b131ce0ce + languageName: node + linkType: hard + +"arrify@npm:^1.0.1": + version: 1.0.1 + resolution: "arrify@npm:1.0.1" + checksum: 745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7 + languageName: node + linkType: hard + +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: fd9429d3a3d4fd61782eb3962ae76b6d08aa7383123fca0596020013b3ebd6647891a85b05ce821c47d1471ed1271f00b0545cf6a4326cf2fc91efcc3b0fbecf + languageName: node + linkType: hard + +"assign-symbols@npm:^1.0.0": + version: 1.0.0 + resolution: "assign-symbols@npm:1.0.0" + checksum: c0eb895911d05b6b2d245154f70461c5e42c107457972e5ebba38d48967870dee53bcdf6c7047990586daa80fab8dab3cc6300800fbd47b454247fdedd859a2c + languageName: node + linkType: hard + +"ast-types-flow@npm:^0.0.7": + version: 0.0.7 + resolution: "ast-types-flow@npm:0.0.7" + checksum: a26dcc2182ffee111cad7c471759b0bda22d3b7ebacf27c348b22c55f16896b18ab0a4d03b85b4020dce7f3e634b8f00b593888f622915096ea1927fa51866c4 + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"async-each@npm:^1.0.1": + version: 1.0.6 + resolution: "async-each@npm:1.0.6" + checksum: d237e8c39348d5f1441edbd3893692912afbacaf83a2ccce8978ebeea804529a8838654b12208fbbc08c8b0411a1248948ee9bf9291ebe1921aabd5b613bc5db + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"atob@npm:^2.1.2": + version: 2.1.2 + resolution: "atob@npm:2.1.2" + bin: + atob: bin/atob.js + checksum: dfeeeb70090c5ebea7be4b9f787f866686c645d9f39a0d184c817252d0cf08455ed25267d79c03254d3be1f03ac399992a792edcd5ffb9c91e097ab5ef42833a + languageName: node + linkType: hard + +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: b95275afb2f80732f22f43a60178430c468906a415a7ff18bcd0feeebc8eec3930b51250aeda91a476062a90e07132b43a1794e8d8ffcf9b650e8139be75fa36 + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + +"axe-core@npm:^4.6.2": + version: 4.7.2 + resolution: "axe-core@npm:4.7.2" + checksum: 5d86fa0f45213b0e54cbb5d713ce885c4a8fe3a72b92dd915a47aa396d6fd149c4a87fec53aa978511f6d941402256cfeb26f2db35129e370f25a453c688655a + languageName: node + linkType: hard + +"axobject-query@npm:^3.1.1": + version: 3.2.1 + resolution: "axobject-query@npm:3.2.1" + dependencies: + dequal: ^2.0.3 + checksum: a94047e702b57c91680e6a952ec4a1aaa2cfd0d80ead76bc8c954202980d8c51968a6ea18b4d8010e8e2cf95676533d8022a8ebba9abc1dfe25686721df26fd2 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"balanced-match@npm:^2.0.0": + version: 2.0.0 + resolution: "balanced-match@npm:2.0.0" + checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 + languageName: node + linkType: hard + +"base-x@npm:^3.0.2": + version: 3.0.9 + resolution: "base-x@npm:3.0.9" + dependencies: + safe-buffer: ^5.0.1 + checksum: 957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"base@npm:^0.11.1": + version: 0.11.2 + resolution: "base@npm:0.11.2" + dependencies: + cache-base: ^1.0.1 + class-utils: ^0.3.5 + component-emitter: ^1.2.1 + define-property: ^1.0.0 + isobject: ^3.0.1 + mixin-deep: ^1.2.0 + pascalcase: ^0.1.1 + checksum: a4a146b912e27eea8f66d09cb0c9eab666f32ce27859a7dfd50f38cd069a2557b39f16dba1bc2aecb3b44bf096738dd207b7970d99b0318423285ab1b1994edd + languageName: node + linkType: hard + +"basic-auth@npm:~2.0.1": + version: 2.0.1 + resolution: "basic-auth@npm:2.0.1" + dependencies: + safe-buffer: 5.1.2 + checksum: 3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48 + languageName: node + linkType: hard + +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + +"bcryptjs@npm:^2.3.0": + version: 2.4.3 + resolution: "bcryptjs@npm:2.4.3" + checksum: 0e80ed852a41f5dfb1853f53ee14a7390b0ef263ce05dba6e2ef3cd919dfad025a7c21ebcfe5bc7fa04b100990edf90c7a877ff7fe623d3e479753253131b629 + languageName: node + linkType: hard + +"bignumber.js@npm:^9.0.0": + version: 9.1.1 + resolution: "bignumber.js@npm:9.1.1" + checksum: ad243b7e2f9120b112d670bb3d674128f0bd2ca1745b0a6c9df0433bd2c0252c43e6315d944c2ac07b4c639e7496b425e46842773cf89c6a2dcd4f31e5c4b11e + languageName: node + linkType: hard + +"binary-extensions@npm:^1.0.0": + version: 1.13.1 + resolution: "binary-extensions@npm:1.13.1" + checksum: ad7747f33c07e94ba443055de130b50c8b8b130a358bca064c580d91769ca6a69c7ac65ca008ff044ed4541d2c6ad45496e1fadbef5218a68770996b6a2194d7 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.2.0 + resolution: "binary-extensions@npm:2.2.0" + checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 + languageName: node + linkType: hard + +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: 1.0.0 + checksum: 65b6b48095717c2e6105a021a7da4ea435aa8d3d3cd085cb9e85bcb6e5773cf318c4745c3f7c504412855940b585bdf9b918236612a1c7a7942491de176f1ae7 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^2.3.1, braces@npm:^2.3.2": + version: 2.3.2 + resolution: "braces@npm:2.3.2" + dependencies: + arr-flatten: ^1.1.0 + array-unique: ^0.3.2 + extend-shallow: ^2.0.1 + fill-range: ^4.0.0 + isobject: ^3.0.1 + repeat-element: ^1.1.2 + snapdragon: ^0.8.1 + snapdragon-node: ^2.0.1 + split-string: ^3.0.2 + to-regex: ^3.0.1 + checksum: e30dcb6aaf4a31c8df17d848aa283a65699782f75ad61ae93ec25c9729c66cf58e66f0000a9fec84e4add1135bb7da40f7cb9601b36bebcfa9ca58e8d5c07de0 + languageName: node + linkType: hard + +"braces@npm:^3.0.2, braces@npm:~3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + +"browser-process-hrtime@npm:^1.0.0": + version: 1.0.0 + resolution: "browser-process-hrtime@npm:1.0.0" + checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f + languageName: node + linkType: hard + +"browser-stdout@npm:1.3.1": + version: 1.3.1 + resolution: "browser-stdout@npm:1.3.1" + checksum: b717b19b25952dd6af483e368f9bcd6b14b87740c3d226c2977a65e84666ffd67000bddea7d911f111a9b6ddc822b234de42d52ab6507bce4119a4cc003ef7b3 + languageName: node + linkType: hard + +"browserslist@npm:^4.21.3": + version: 4.21.5 + resolution: "browserslist@npm:4.21.5" + dependencies: + caniuse-lite: ^1.0.30001449 + electron-to-chromium: ^1.4.284 + node-releases: ^2.0.8 + update-browserslist-db: ^1.0.10 + bin: + browserslist: cli.js + checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 + languageName: node + linkType: hard + +"bs58@npm:^4.0.0": + version: 4.0.1 + resolution: "bs58@npm:4.0.1" + dependencies: + base-x: ^3.0.2 + checksum: b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2 + languageName: node + linkType: hard + +"bs58check@npm:^2.1.2": + version: 2.1.2 + resolution: "bs58check@npm:2.1.2" + dependencies: + bs58: ^4.0.0 + create-hash: ^1.1.0 + safe-buffer: ^5.1.2 + checksum: 43bdf08a5dd04581b78f040bc4169480e17008da482ffe2a6507327bbc4fc5c28de0501f7faf22901cfe57fbca79cbb202ca529003fedb4cb8dccd265b38e54d + languageName: node + linkType: hard + +"buffer-alloc-unsafe@npm:^1.1.0": + version: 1.1.0 + resolution: "buffer-alloc-unsafe@npm:1.1.0" + checksum: c5e18bf51f67754ec843c9af3d4c005051aac5008a3992938dda1344e5cfec77c4b02b4ca303644d1e9a6e281765155ce6356d85c6f5ccc5cd21afc868def396 + languageName: node + linkType: hard + +"buffer-alloc@npm:^1.2.0": + version: 1.2.0 + resolution: "buffer-alloc@npm:1.2.0" + dependencies: + buffer-alloc-unsafe: ^1.1.0 + buffer-fill: ^1.0.0 + checksum: 560cd27f3cbe73c614867da373407d4506309c62fe18de45a1ce191f3785ec6ca2488d802ff82065798542422980ca25f903db078c57822218182c37c3576df5 + languageName: node + linkType: hard + +"buffer-fill@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-fill@npm:1.0.0" + checksum: c29b4723ddeab01e74b5d3b982a0c6828f2ded49cef049ddca3dac661c874ecdbcecb5dd8380cf0f4adbeb8cff90a7de724126750a1f1e5ebd4eb6c59a1315b1 + languageName: node + linkType: hard + +"buffer-from@npm:^1.1.1": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"buffer@npm:^5.4.3": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.2.1 + checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 + languageName: node + linkType: hard + +"cacache@npm:^16.1.0": + version: 16.1.3 + resolution: "cacache@npm:16.1.3" + dependencies: + "@npmcli/fs": ^2.1.0 + "@npmcli/move-file": ^2.0.0 + chownr: ^2.0.0 + fs-minipass: ^2.1.0 + glob: ^8.0.1 + infer-owner: ^1.0.4 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + mkdirp: ^1.0.4 + p-map: ^4.0.0 + promise-inflight: ^1.0.1 + rimraf: ^3.0.2 + ssri: ^9.0.0 + tar: ^6.1.11 + unique-filename: ^2.0.0 + checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 + languageName: node + linkType: hard + +"cache-base@npm:^1.0.1": + version: 1.0.1 + resolution: "cache-base@npm:1.0.1" + dependencies: + collection-visit: ^1.0.0 + component-emitter: ^1.2.1 + get-value: ^2.0.6 + has-value: ^1.0.0 + isobject: ^3.0.1 + set-value: ^2.0.0 + to-object-path: ^0.3.0 + union-value: ^1.0.0 + unset-value: ^1.0.0 + checksum: 9114b8654fe2366eedc390bad0bcf534e2f01b239a888894e2928cb58cdc1e6ea23a73c6f3450dcfd2058aa73a8a981e723cd1e7c670c047bf11afdc65880107 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: ^1.1.1 + get-intrinsic: ^1.0.2 + checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camelcase-keys@npm:^6.2.2": + version: 6.2.2 + resolution: "camelcase-keys@npm:6.2.2" + dependencies: + camelcase: ^5.3.1 + map-obj: ^4.0.0 + quick-lru: ^4.0.1 + checksum: 43c9af1adf840471e54c68ab3e5fe8a62719a6b7dbf4e2e86886b7b0ff96112c945736342b837bd2529ec9d1c7d1934e5653318478d98e0cf22c475c04658e2a + languageName: node + linkType: hard + +"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001449": + version: 1.0.30001474 + resolution: "caniuse-lite@npm:1.0.30001474" + checksum: c05faab958fae1bbf3c595203c96d3a2f6b4c7a0d122069addc6c386f208b4db66eed3f5e3d606b80e3b384603d353b27a306f6dcb6145642b5b97a330dba86a + languageName: node + linkType: hard + +"chai@npm:^4.3.7": + version: 4.3.7 + resolution: "chai@npm:4.3.7" + dependencies: + assertion-error: ^1.1.0 + check-error: ^1.0.2 + deep-eql: ^4.1.2 + get-func-name: ^2.0.0 + loupe: ^2.3.1 + pathval: ^1.1.1 + type-detect: ^4.0.5 + checksum: 0bba7d267848015246a66995f044ce3f0ebc35e530da3cbdf171db744e14cbe301ab913a8d07caf7952b430257ccbb1a4a983c570a7c5748dc537897e5131f7c + languageName: node + linkType: hard + +"chalk@npm:^2.0.0": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"check-error@npm:^1.0.2": + version: 1.0.2 + resolution: "check-error@npm:1.0.2" + checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e + languageName: node + linkType: hard + +"chokidar@npm:3.5.3": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + languageName: node + linkType: hard + +"chokidar@npm:^2.0.4": + version: 2.1.8 + resolution: "chokidar@npm:2.1.8" + dependencies: + anymatch: ^2.0.0 + async-each: ^1.0.1 + braces: ^2.3.2 + fsevents: ^1.2.7 + glob-parent: ^3.1.0 + inherits: ^2.0.3 + is-binary-path: ^1.0.0 + is-glob: ^4.0.0 + normalize-path: ^3.0.0 + path-is-absolute: ^1.0.0 + readdirp: ^2.2.1 + upath: ^1.1.1 + dependenciesMeta: + fsevents: + optional: true + checksum: 0c43e89cbf0268ef1e1f41ce8ec5233c7ba022c6f3282c2ef6530e351d42396d389a1148c5a040f291cf1f4083a4c6b2f51dad3f31c726442ea9a337de316bcf + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"cipher-base@npm:^1.0.1": + version: 1.0.4 + resolution: "cipher-base@npm:1.0.4" + dependencies: + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + checksum: 47d3568dbc17431a339bad1fe7dff83ac0891be8206911ace3d3b818fc695f376df809bea406e759cdea07fff4b454fa25f1013e648851bec790c1d75763032e + languageName: node + linkType: hard + +"class-utils@npm:^0.3.5": + version: 0.3.6 + resolution: "class-utils@npm:0.3.6" + dependencies: + arr-union: ^3.1.0 + define-property: ^0.2.5 + isobject: ^3.0.0 + static-extend: ^0.1.1 + checksum: be108900801e639e50f96a7e4bfa8867c753a7750a7603879f3981f8b0a89cba657497a2d5f40cd4ea557ff15d535a100818bb486baf6e26fe5d7872e75f1078 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cliui@npm:^5.0.0": + version: 5.0.0 + resolution: "cliui@npm:5.0.0" + dependencies: + string-width: ^3.1.0 + strip-ansi: ^5.2.0 + wrap-ansi: ^5.1.0 + checksum: 0bb8779efe299b8f3002a73619eaa8add4081eb8d1c17bc4fedc6240557fb4eacdc08fe87c39b002eacb6cfc117ce736b362dbfd8bf28d90da800e010ee97df4 + languageName: node + linkType: hard + +"cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^7.0.0 + checksum: ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f + languageName: node + linkType: hard + +"collection-visit@npm:^1.0.0": + version: 1.0.0 + resolution: "collection-visit@npm:1.0.0" + dependencies: + map-visit: ^1.0.0 + object-visit: ^1.0.0 + checksum: 15d9658fe6eb23594728346adad5433b86bb7a04fd51bbab337755158722f9313a5376ef479de5b35fbc54140764d0d39de89c339f5d25b959ed221466981da9 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"colord@npm:^2.9.3": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + languageName: node + linkType: hard + +"colors@npm:1.4.0": + version: 1.4.0 + resolution: "colors@npm:1.4.0" + checksum: 98aa2c2418ad87dedf25d781be69dc5fc5908e279d9d30c34d8b702e586a0474605b3a189511482b9d5ed0d20c867515d22749537f7bc546256c6014f3ebdcec + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"complex.js@npm:^2.1.1": + version: 2.1.1 + resolution: "complex.js@npm:2.1.1" + checksum: a0802cc3f0eb7703088edfc3fe209ae7be5ce93c0e710a0f288be2e29ee31b3530a8c0d3330d7c2a668410dfe4293a4038554d66c7f1f1165997941bdc1092aa + languageName: node + linkType: hard + +"component-emitter@npm:^1.2.1": + version: 1.3.0 + resolution: "component-emitter@npm:1.3.0" + checksum: b3c46de38ffd35c57d1c02488355be9f218e582aec72d72d1b8bbec95a3ac1b38c96cd6e03ff015577e68f550fbb361a3bfdbd9bb248be9390b7b3745691be6b + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"confusing-browser-globals@npm:^1.0.10": + version: 1.0.11 + resolution: "confusing-browser-globals@npm:1.0.11" + checksum: 3afc635abd37e566477f610e7978b15753f0e84025c25d49236f1f14d480117185516bdd40d2a2167e6bed8048641a9854964b9c067e3dcdfa6b5d0ad3c3a5ef + languageName: node + linkType: hard + +"connect@npm:^3.6.6": + version: 3.7.0 + resolution: "connect@npm:3.7.0" + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: ~1.3.3 + utils-merge: 1.0.1 + checksum: 96e1c4effcf219b065c7823e57351c94366d2e2a6952fa95e8212bffb35c86f1d5a3f9f6c5796d4cd3a5fdda628368b1c3cc44bf19c66cfd68fe9f9cab9177e2 + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"convert-hex@npm:~0.1.0": + version: 0.1.0 + resolution: "convert-hex@npm:0.1.0" + checksum: eacb880dbc45a36a0e6b5f5674f7e57bdce59bbf5a3ebfba980f694e2be81f1b2c81c9c89834f8054f23cc9c21d1fd210265e2000287a1cd0426657797b2f462 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.7.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"convert-string@npm:~0.1.0": + version: 0.1.0 + resolution: "convert-string@npm:0.1.0" + checksum: a1775cb186d2fbf175486f02e3f7cc68c75e7a0c7609bf434d2a933e801b3a0499ab57de4230919ec824351dc344055bf639a1db5e44a976787145817106d9aa + languageName: node + linkType: hard + +"copy-descriptor@npm:^0.1.0": + version: 0.1.1 + resolution: "copy-descriptor@npm:0.1.1" + checksum: d4b7b57b14f1d256bb9aa0b479241048afd7f5bcf22035fc7b94e8af757adeae247ea23c1a774fe44869fd5694efba4a969b88d966766c5245fdee59837fe45b + languageName: node + linkType: hard + +"copy-to-clipboard@npm:^3.3.1": + version: 3.3.3 + resolution: "copy-to-clipboard@npm:3.3.3" + dependencies: + toggle-selection: ^1.0.6 + checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + +cors@latest: + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: ^4 + vary: ^1 + checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006 + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.1, cosmiconfig@npm:^7.1.0": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.2.1 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.10.0 + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + languageName: node + linkType: hard + +"create-hash@npm:^1.1.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: ^1.0.1 + inherits: ^2.0.1 + md5.js: ^1.3.4 + ripemd160: ^2.0.1 + sha.js: ^2.4.0 + checksum: 02a6ae3bb9cd4afee3fabd846c1d8426a0e6b495560a977ba46120c473cb283be6aa1cace76b5f927cf4e499c6146fb798253e48e83d522feba807d6b722eaa9 + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + +"cross-env@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-env@npm:7.0.3" + dependencies: + cross-spawn: ^7.0.1 + bin: + cross-env: src/bin/cross-env.js + cross-env-shell: src/bin/cross-env-shell.js + checksum: 26f2f3ea2ab32617f57effb70d329c2070d2f5630adc800985d8b30b56e8bf7f5f439dd3a0358b79cee6f930afc23cf8e23515f17ccfb30092c6b62c6b630a79 + languageName: node + linkType: hard + +"cross-fetch@npm:3.1.5": + version: 3.1.5 + resolution: "cross-fetch@npm:3.1.5" + dependencies: + node-fetch: 2.6.7 + checksum: f6b8c6ee3ef993ace6277fd789c71b6acf1b504fd5f5c7128df4ef2f125a429e29cd62dc8c127523f04a5f2fa4771ed80e3f3d9695617f441425045f505cf3bb + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"css-functions-list@npm:^3.1.0": + version: 3.2.0 + resolution: "css-functions-list@npm:3.2.0" + checksum: fe912ea852fad500aef9a4f04db9a0371c7b0eb1ac1a45fbd8df0156ae0538cee7492ebd620b9bb502fe5bf2b5ed3bf3c16b6659cf67c7144eff0b597bcc3891 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + +"damerau-levenshtein@npm:^1.0.8": + version: 1.0.8 + resolution: "damerau-levenshtein@npm:1.0.8" + checksum: d240b7757544460ae0586a341a53110ab0a61126570ef2d8c731e3eab3f0cb6e488e2609e6a69b46727635de49be20b071688698744417ff1b6c1d7ccd03e0de + languageName: node + linkType: hard + +"data-urls@npm:^3.0.0": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: 2.0.0 + checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + +"decamelize-keys@npm:^1.1.0": + version: 1.1.1 + resolution: "decamelize-keys@npm:1.1.1" + dependencies: + decamelize: ^1.1.0 + map-obj: ^1.0.0 + checksum: fc645fe20b7bda2680bbf9481a3477257a7f9304b1691036092b97ab04c0ab53e3bf9fcc2d2ae382536568e402ec41fb11e1d4c3836a9abe2d813dd9ef4311e0 + languageName: node + linkType: hard + +"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": + version: 1.2.0 + resolution: "decamelize@npm:1.2.0" + checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa + languageName: node + linkType: hard + +"decamelize@npm:^4.0.0": + version: 4.0.0 + resolution: "decamelize@npm:4.0.0" + checksum: b7d09b82652c39eead4d6678bb578e3bebd848add894b76d0f6b395bc45b2d692fb88d977e7cfb93c4ed6c119b05a1347cef261174916c2e75c0a8ca57da1809 + languageName: node + linkType: hard + +"decimal.js@npm:^10.3.1, decimal.js@npm:^10.4.3": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae + languageName: node + linkType: hard + +"decode-uri-component@npm:^0.2.0": + version: 0.2.2 + resolution: "decode-uri-component@npm:0.2.2" + checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139 + languageName: node + linkType: hard + +"deep-eql@npm:^4.1.2": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: ^4.0.0 + checksum: 7f6d30cb41c713973dc07eaadded848b2ab0b835e518a88b91bea72f34e08c4c71d167a722a6f302d3a6108f05afd8e6d7650689a84d5d29ec7fe6220420397f + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + +"define-property@npm:^0.2.5": + version: 0.2.5 + resolution: "define-property@npm:0.2.5" + dependencies: + is-descriptor: ^0.1.0 + checksum: 85af107072b04973b13f9e4128ab74ddfda48ec7ad2e54b193c0ffb57067c4ce5b7786a7b4ae1f24bd03e87c5d18766b094571810b314d7540f86d4354dbd394 + languageName: node + linkType: hard + +"define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "define-property@npm:1.0.0" + dependencies: + is-descriptor: ^1.0.0 + checksum: 5fbed11dace44dd22914035ba9ae83ad06008532ca814d7936a53a09e897838acdad5b108dd0688cc8d2a7cf0681acbe00ee4136cf36743f680d10517379350a + languageName: node + linkType: hard + +"define-property@npm:^2.0.2": + version: 2.0.2 + resolution: "define-property@npm:2.0.2" + dependencies: + is-descriptor: ^1.0.2 + isobject: ^3.0.1 + checksum: 3217ed53fc9eed06ba8da6f4d33e28c68a82e2f2a8ab4d562c4920d8169a166fe7271453675e6c69301466f36a65d7f47edf0cf7f474b9aa52a5ead9c1b13c99 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + languageName: node + linkType: hard + +"depd@npm:~1.1.2": + version: 1.1.2 + resolution: "depd@npm:1.1.2" + checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 + languageName: node + linkType: hard + +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + +"destroy@npm:1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + +"detect-browser@npm:5.2.0": + version: 5.2.0 + resolution: "detect-browser@npm:5.2.0" + checksum: 63b5c38fecc657ff12de01a41e6c8c97b3d610dffa37aef1983ec5bfb4314687d588c0c44c5ee03bd45ef15b7fe465bce9349c373369e6a7405f318e0aae56f9 + languageName: node + linkType: hard + +"detect-browser@npm:5.3.0": + version: 5.3.0 + resolution: "detect-browser@npm:5.3.0" + checksum: dd6e08d55da1d9e0f22510ac79872078ae03d9dfa13c5e66c96baedc1c86567345a88f96949161f6be8f3e0fafa93bf179bdb1cd311b14f5f163112fcc70ab49 + languageName: node + linkType: hard + +"diff@npm:5.0.0": + version: 5.0.0 + resolution: "diff@npm:5.0.0" + checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46 + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + languageName: node + linkType: hard + +"dijkstrajs@npm:^1.0.1": + version: 1.0.2 + resolution: "dijkstrajs@npm:1.0.2" + checksum: 8cd822441a26f190da24d69bfab7b433d080b09e069e41e046ac84e152f182a1ed9478d531b34126e000adaa7b73114a0f85fcac117a7d25b3edf302d57c0d09 + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: ^2.0.2 + checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"domexception@npm:^2.0.1": + version: 2.0.1 + resolution: "domexception@npm:2.0.1" + dependencies: + webidl-conversions: ^5.0.0 + checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 + languageName: node + linkType: hard + +"duplexer@npm:~0.1.1": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + +"duplexify@npm:^4.1.2": + version: 4.1.2 + resolution: "duplexify@npm:4.1.2" + dependencies: + end-of-stream: ^1.4.1 + inherits: ^2.0.3 + readable-stream: ^3.1.1 + stream-shift: ^1.0.0 + checksum: 964376c61c0e92f6ed0694b3ba97c84f199413dc40ab8dfdaef80b7a7f4982fcabf796214e28ed614a5bc1ec45488a29b81e7d46fa3f5ddf65bcb118c20145ad + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.284": + version: 1.4.350 + resolution: "electron-to-chromium@npm:1.4.350" + checksum: ed39f6e351aa1d9fd09b059a4294f87b93c0c88903656ad84d2ee93520c0f4eeddfc89a86e66326b6bdf0535432f06ed153758167f9b04a92628b7171412b317 + languageName: node + linkType: hard + +"emoji-regex@npm:^7.0.1": + version: 7.0.3 + resolution: "emoji-regex@npm:7.0.3" + checksum: 9159b2228b1511f2870ac5920f394c7e041715429a68459ebe531601555f11ea782a8e1718f969df2711d38c66268174407cbca57ce36485544f695c2dfdc96e + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: ^1.4.0 + checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"enquirer@npm:^2.3.5": + version: 2.3.6 + resolution: "enquirer@npm:2.3.6" + dependencies: + ansi-colors: ^4.1.1 + checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 + languageName: node + linkType: hard + +"entities@npm:^4.4.0": + version: 4.4.0 + resolution: "entities@npm:4.4.0" + checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": + version: 1.22.1 + resolution: "es-abstract@npm:1.22.1" + dependencies: + array-buffer-byte-length: ^1.0.0 + arraybuffer.prototype.slice: ^1.0.1 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.2.1 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.10 + is-weakref: ^1.0.2 + object-inspect: ^1.12.3 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.0 + safe-array-concat: ^1.0.0 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.7 + string.prototype.trimend: ^1.0.6 + string.prototype.trimstart: ^1.0.6 + 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 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.10 + checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0": + version: 1.0.0 + resolution: "es-shim-unscopables@npm:1.0.0" + dependencies: + has: ^1.0.3 + checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.2.1": + version: 1.2.1 + resolution: "es-to-primitive@npm:1.2.1" + dependencies: + is-callable: ^1.1.4 + is-date-object: ^1.0.1 + is-symbol: ^1.0.2 + checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + languageName: node + linkType: hard + +"esbuild-android-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-android-64@npm:0.14.54" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"esbuild-android-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-android-arm64@npm:0.14.54" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-darwin-64@npm:0.14.54" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-darwin-arm64@npm:0.14.54" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-freebsd-64@npm:0.14.54" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-freebsd-arm64@npm:0.14.54" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-32@npm:0.14.54" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-64@npm:0.14.54" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-arm64@npm:0.14.54" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-arm@npm:0.14.54" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-mips64le@npm:0.14.54" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-ppc64le@npm:0.14.54" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"esbuild-linux-riscv64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-riscv64@npm:0.14.54" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"esbuild-linux-s390x@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-s390x@npm:0.14.54" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-netbsd-64@npm:0.14.54" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-openbsd-64@npm:0.14.54" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-plugin-svgr@npm:^1.0.1": + version: 1.1.0 + resolution: "esbuild-plugin-svgr@npm:1.1.0" + dependencies: + "@svgr/core": ^6.5.1 + checksum: f5212ed2792f922def06c7e571f89164e87f54c03111e3eb9d1226f9b0e49311f124227b7e9d2fd024c7fd1016abe7e7f929e047497d869c8a0057c5aae76dc4 + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-sunos-64@npm:0.14.54" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-windows-32@npm:0.14.54" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-windows-64@npm:0.14.54" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-windows-arm64@npm:0.14.54" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:^0.14.42": + version: 0.14.54 + resolution: "esbuild@npm:0.14.54" + dependencies: + "@esbuild/linux-loong64": 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + dependenciesMeta: + "@esbuild/linux-loong64": + optional: true + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: 49e360b1185c797f5ca3a7f5f0a75121494d97ddf691f65ed1796e6257d318f928342a97f559bb8eced6a90cf604dd22db4a30e0dbbf15edd9dbf22459b639af + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-latex@npm:^1.2.0": + version: 1.2.0 + resolution: "escape-latex@npm:1.2.0" + checksum: 73a787319f0965ecb8244bb38bf3a3cba872f0b9a5d3da8821140e9f39fe977045dc953a62b1a2bed4d12bfccbe75a7d8ec786412bf00739eaa2f627d0a8e0d6 + languageName: node + linkType: hard + +"escape-string-regexp@npm:4.0.0, escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0": + version: 2.0.0 + resolution: "escodegen@npm:2.0.0" + dependencies: + esprima: ^4.0.1 + estraverse: ^5.2.0 + esutils: ^2.0.2 + optionator: ^0.8.1 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef + languageName: node + linkType: hard + +"eslint-config-airbnb-base@npm:^15.0.0": + version: 15.0.0 + resolution: "eslint-config-airbnb-base@npm:15.0.0" + dependencies: + confusing-browser-globals: ^1.0.10 + object.assign: ^4.1.2 + object.entries: ^1.1.5 + semver: ^6.3.0 + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + checksum: 38626bad2ce2859fccac86b30cd2b86c9b7d8d71d458331860861dc05290a5b198bded2f4fb89efcb9046ec48f8ab4c4fb00365ba8916f27b172671da28b93ea + languageName: node + linkType: hard + +"eslint-config-airbnb-typescript@npm:^17.0.0": + version: 17.1.0 + resolution: "eslint-config-airbnb-typescript@npm:17.1.0" + dependencies: + eslint-config-airbnb-base: ^15.0.0 + peerDependencies: + "@typescript-eslint/eslint-plugin": ^5.13.0 || ^6.0.0 + "@typescript-eslint/parser": ^5.0.0 || ^6.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + checksum: cfd26a2782e322ebfdfbf9a64262332c7653f297c4a32d7b951079eb18bb9502a83d67b3f7ef2cc1c5374ae06098eb454ed010784b3416e7274839083022a08c + languageName: node + linkType: hard + +"eslint-config-airbnb@npm:^19.0.4": + version: 19.0.4 + resolution: "eslint-config-airbnb@npm:19.0.4" + dependencies: + eslint-config-airbnb-base: ^15.0.0 + object.assign: ^4.1.2 + object.entries: ^1.1.5 + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + eslint-plugin-jsx-a11y: ^6.5.1 + eslint-plugin-react: ^7.28.0 + eslint-plugin-react-hooks: ^4.3.0 + checksum: 253178689c3c80eef2567e3aaf0612e18973bc9cf51d9be36074b5dd58210e8b6942200a424bcccbb81ac884e41303479ab09f251a2a97addc2de61efdc9576c + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^8.5.0": + version: 8.8.0 + resolution: "eslint-config-prettier@npm:8.8.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 1e94c3882c4d5e41e1dcfa2c368dbccbfe3134f6ac7d40101644d3bfbe3eb2f2ffac757f3145910b5eacf20c0e85e02b91293d3126d770cbf3dc390b3564681c + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.7": + version: 0.3.7 + resolution: "eslint-import-resolver-node@npm:0.3.7" + dependencies: + debug: ^3.2.7 + is-core-module: ^2.11.0 + resolve: ^1.22.1 + checksum: 3379aacf1d2c6952c1b9666c6fa5982c3023df695430b0d391c0029f6403a7775414873d90f397e98ba6245372b6c8960e16e74d9e4a3b0c0a4582f3bdbe3d6e + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.7.4": + version: 2.8.0 + resolution: "eslint-module-utils@npm:2.8.0" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.26.0": + version: 2.27.5 + resolution: "eslint-plugin-import@npm:2.27.5" + dependencies: + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + array.prototype.flatmap: ^1.3.1 + debug: ^3.2.7 + doctrine: ^2.1.0 + eslint-import-resolver-node: ^0.3.7 + eslint-module-utils: ^2.7.4 + has: ^1.0.3 + is-core-module: ^2.11.0 + is-glob: ^4.0.3 + minimatch: ^3.1.2 + object.values: ^1.1.6 + resolve: ^1.22.1 + semver: ^6.3.0 + tsconfig-paths: ^3.14.1 + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: f500571a380167e25d72a4d925ef9a7aae8899eada57653e5f3051ec3d3c16d08271fcefe41a30a9a2f4fefc232f066253673ee4ea77b30dba65ae173dade85d + languageName: node + linkType: hard + +"eslint-plugin-jsx-a11y@npm:^6.5.1": + version: 6.7.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" + dependencies: + "@babel/runtime": ^7.20.7 + aria-query: ^5.1.3 + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + ast-types-flow: ^0.0.7 + axe-core: ^4.6.2 + axobject-query: ^3.1.1 + damerau-levenshtein: ^1.0.8 + emoji-regex: ^9.2.2 + has: ^1.0.3 + jsx-ast-utils: ^3.3.3 + language-tags: =1.0.5 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + semver: ^6.3.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: f166dd5fe7257c7b891c6692e6a3ede6f237a14043ae3d97581daf318fc5833ddc6b4871aa34ab7656187430170500f6d806895747ea17ecdf8231a666c3c2fd + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^4.0.0": + version: 4.2.1 + resolution: "eslint-plugin-prettier@npm:4.2.1" + dependencies: + prettier-linter-helpers: ^1.0.0 + peerDependencies: + eslint: ">=7.28.0" + prettier: ">=2.0.0" + peerDependenciesMeta: + eslint-config-prettier: + optional: true + checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^4.4.0": + version: 4.6.0 + resolution: "eslint-plugin-react-hooks@npm:4.6.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.29.4": + version: 7.32.2 + resolution: "eslint-plugin-react@npm:7.32.2" + dependencies: + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + array.prototype.tosorted: ^1.1.1 + doctrine: ^2.1.0 + estraverse: ^5.3.0 + 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 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.4 + semver: ^6.3.0 + string.prototype.matchall: ^4.0.8 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 2232b3b8945aa50b7773919c15cd96892acf35d2f82503667a79e2f55def90f728ed4f0e496f0f157acbe1bd4397c5615b676ae7428fe84488a544ca53feb944 + languageName: node + linkType: hard + +"eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"eslint-utils@npm:^2.1.0": + version: 2.1.0 + resolution: "eslint-utils@npm:2.1.0" + dependencies: + eslint-visitor-keys: ^1.1.0 + checksum: 27500938f348da42100d9e6ad03ae29b3de19ba757ae1a7f4a087bdcf83ac60949bbb54286492ca61fac1f5f3ac8692dd21537ce6214240bf95ad0122f24d71d + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0": + version: 1.3.0 + resolution: "eslint-visitor-keys@npm:1.3.0" + checksum: 37a19b712f42f4c9027e8ba98c2b06031c17e0c0a4c696cd429bd9ee04eb43889c446f2cd545e1ff51bef9593fcec94ecd2c2ef89129fcbbf3adadbef520376a + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^2.0.0": + version: 2.1.0 + resolution: "eslint-visitor-keys@npm:2.1.0" + checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0": + version: 3.4.0 + resolution: "eslint-visitor-keys@npm:3.4.0" + checksum: 33159169462d3989321a1ec1e9aaaf6a24cc403d5d347e9886d1b5bfe18ffa1be73bdc6203143a28a606b142b1af49787f33cff0d6d0813eb5f2e8d2e1a6043c + languageName: node + linkType: hard + +"eslint@npm:7": + version: 7.32.0 + resolution: "eslint@npm:7.32.0" + dependencies: + "@babel/code-frame": 7.12.11 + "@eslint/eslintrc": ^0.4.3 + "@humanwhocodes/config-array": ^0.5.0 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.0.1 + doctrine: ^3.0.0 + enquirer: ^2.3.5 + escape-string-regexp: ^4.0.0 + eslint-scope: ^5.1.1 + eslint-utils: ^2.1.0 + eslint-visitor-keys: ^2.0.0 + espree: ^7.3.1 + esquery: ^1.4.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + functional-red-black-tree: ^1.0.1 + glob-parent: ^5.1.2 + globals: ^13.6.0 + ignore: ^4.0.6 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + js-yaml: ^3.13.1 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.0.4 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + progress: ^2.0.0 + regexpp: ^3.1.0 + semver: ^7.2.1 + strip-ansi: ^6.0.0 + strip-json-comments: ^3.1.0 + table: ^6.0.9 + text-table: ^0.2.0 + v8-compile-cache: ^2.0.3 + bin: + eslint: bin/eslint.js + checksum: cc85af9985a3a11085c011f3d27abe8111006d34cc274291b3c4d7bea51a4e2ff6135780249becd919ba7f6d6d1ecc38a6b73dacb6a7be08d38453b344dc8d37 + languageName: node + linkType: hard + +"espree@npm:^7.3.0, espree@npm:^7.3.1": + version: 7.3.1 + resolution: "espree@npm:7.3.1" + dependencies: + acorn: ^7.4.0 + acorn-jsx: ^5.3.1 + eslint-visitor-keys: ^1.3.0 + checksum: aa9b50dcce883449af2e23bc2b8d9abb77118f96f4cb313935d6b220f77137eaef7724a83c3f6243b96bc0e4ab14766198e60818caad99f9519ae5a336a39b45 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + languageName: node + linkType: hard + +"esquery@npm:^1.4.0": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + +"event-stream@npm:3.3.4": + version: 3.3.4 + resolution: "event-stream@npm:3.3.4" + dependencies: + duplexer: ~0.1.1 + from: ~0 + map-stream: ~0.1.0 + pause-stream: 0.0.11 + split: 0.3 + stream-combiner: ~0.0.4 + through: ~2.3.1 + checksum: 80b467820b6daf824d9fb4345d2daf115a056e5c104463f2e98534e92d196a27f2df5ea2aa085624db26f4c45698905499e881d13bc7c01f7a13eac85be72a22 + languageName: node + linkType: hard + +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + +"expand-brackets@npm:^2.1.4": + version: 2.1.4 + resolution: "expand-brackets@npm:2.1.4" + dependencies: + debug: ^2.3.3 + define-property: ^0.2.5 + extend-shallow: ^2.0.1 + posix-character-classes: ^0.1.0 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.1 + checksum: 1781d422e7edfa20009e2abda673cadb040a6037f0bd30fcd7357304f4f0c284afd420d7622722ca4a016f39b6d091841ab57b401c1f7e2e5131ac65b9f14fa1 + languageName: node + linkType: hard + +"extend-shallow@npm:^2.0.1": + version: 2.0.1 + resolution: "extend-shallow@npm:2.0.1" + dependencies: + is-extendable: ^0.1.0 + checksum: 8fb58d9d7a511f4baf78d383e637bd7d2e80843bd9cd0853649108ea835208fb614da502a553acc30208e1325240bb7cc4a68473021612496bb89725483656d8 + languageName: node + linkType: hard + +"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2": + version: 3.0.2 + resolution: "extend-shallow@npm:3.0.2" + dependencies: + assign-symbols: ^1.0.0 + is-extendable: ^1.0.1 + checksum: a920b0cd5838a9995ace31dfd11ab5e79bf6e295aa566910ce53dff19f4b1c0fda2ef21f26b28586c7a2450ca2b42d97bd8c0f5cec9351a819222bf861e02461 + languageName: node + linkType: hard + +"extglob@npm:^2.0.4": + version: 2.0.4 + resolution: "extglob@npm:2.0.4" + dependencies: + array-unique: ^0.3.2 + define-property: ^1.0.0 + expand-brackets: ^2.1.4 + extend-shallow: ^2.0.1 + fragment-cache: ^0.2.1 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.1 + checksum: a41531b8934735b684cef5e8c5a01d0f298d7d384500ceca38793a9ce098125aab04ee73e2d75d5b2901bc5dddd2b64e1b5e3bf19139ea48bac52af4a92f1d00 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9": + version: 3.3.0 + resolution: "fast-glob@npm:3.3.0" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 20df62be28eb5426fe8e40e0d05601a63b1daceb7c3d87534afcad91bdcf1e4b1743cf2d5247d6e225b120b46df0b9053a032b2691ba34ee121e033acd81f547 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fast-redact@npm:^3.0.0": + version: 3.1.2 + resolution: "fast-redact@npm:3.1.2" + checksum: a30eb6b6830333ab213e0def55f46453ca777544dbd3a883016cb590a0eeb95e6fdf546553c1a13d509896bfba889b789991160a6d0996ceb19fce0a02e8b753 + languageName: node + linkType: hard + +"fastest-levenshtein@npm:^1.0.16": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.15.0 + resolution: "fastq@npm:1.15.0" + dependencies: + reusify: ^1.0.4 + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + languageName: node + linkType: hard + +"faye-websocket@npm:0.11.x": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: ">=0.5.1" + checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 + languageName: node + linkType: hard + +"fill-range@npm:^4.0.0": + version: 4.0.0 + resolution: "fill-range@npm:4.0.0" + dependencies: + extend-shallow: ^2.0.1 + is-number: ^3.0.0 + repeat-string: ^1.6.1 + to-regex-range: ^2.1.0 + checksum: dbb5102467786ab42bc7a3ec7380ae5d6bfd1b5177b2216de89e4a541193f8ba599a6db84651bd2c58c8921db41b8cc3d699ea83b477342d3ce404020f73c298 + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + +"filter-obj@npm:^1.1.0": + version: 1.1.0 + resolution: "filter-obj@npm:1.1.0" + checksum: cf2104a7c45ff48e7f505b78a3991c8f7f30f28bd8106ef582721f321f1c6277f7751aacd5d83026cb079d9d5091082f588d14a72e7c5d720ece79118fa61e10 + languageName: node + linkType: hard + +"finalhandler@npm:1.1.2": + version: 1.1.2 + resolution: "finalhandler@npm:1.1.2" + dependencies: + debug: 2.6.9 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + on-finished: ~2.3.0 + parseurl: ~1.3.3 + statuses: ~1.5.0 + unpipe: ~1.0.0 + checksum: 617880460c5138dd7ccfd555cb5dde4d8f170f4b31b8bd51e4b646bb2946c30f7db716428a1f2882d730d2b72afb47d1f67cc487b874cb15426f95753a88965e + languageName: node + linkType: hard + +"find-up@npm:5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: ^3.0.0 + checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + +"find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: ^5.0.0 + path-exists: ^4.0.0 + checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.0.4 + resolution: "flat-cache@npm:3.0.4" + dependencies: + flatted: ^3.1.0 + rimraf: ^3.0.2 + checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + languageName: node + linkType: hard + +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d + languageName: node + linkType: hard + +"flatted@npm:^3.1.0": + version: 3.2.7 + resolution: "flatted@npm:3.2.7" + checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + +"for-in@npm:^1.0.2": + version: 1.0.2 + resolution: "for-in@npm:1.0.2" + checksum: 09f4ae93ce785d253ac963d94c7f3432d89398bf25ac7a24ed034ca393bf74380bdeccc40e0f2d721a895e54211b07c8fad7132e8157827f6f7f059b70b4043d + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + languageName: node + linkType: hard + +"fraction.js@npm:^4.2.0": + version: 4.2.0 + resolution: "fraction.js@npm:4.2.0" + checksum: 8c76a6e21dedea87109d6171a0ac77afa14205794a565d71cb10d2925f629a3922da61bf45ea52dbc30bce4d8636dc0a27213a88cbd600eab047d82f9a3a94c5 + languageName: node + linkType: hard + +"fragment-cache@npm:^0.2.1": + version: 0.2.1 + resolution: "fragment-cache@npm:0.2.1" + dependencies: + map-cache: ^0.2.2 + checksum: 1cbbd0b0116b67d5790175de0038a11df23c1cd2e8dcdbade58ebba5594c2d641dade6b4f126d82a7b4a6ffc2ea12e3d387dbb64ea2ae97cf02847d436f60fdc + languageName: node + linkType: hard + +"fresh@npm:0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 + languageName: node + linkType: hard + +"from@npm:~0": + version: 0.1.7 + resolution: "from@npm:0.1.7" + checksum: b85125b7890489656eb2e4f208f7654a93ec26e3aefaf3bbbcc0d496fc1941e4405834fcc9fe7333192aa2187905510ace70417bbf9ac6f6f4784a731d986939 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fs@npm:^0.0.1-security": + version: 0.0.1-security + resolution: "fs@npm:0.0.1-security" + checksum: 53c6230e1faae9fa32c1df82c16a84b51b1243d20f3da2b64bd110bb472b73b9185169b703e008356e3cdc92d155088b617d9d39a63b5227a30b3621baad7f5d + languageName: node + linkType: hard + +"fsevents@npm:^1.2.7": + version: 1.2.13 + resolution: "fsevents@npm:1.2.13" + dependencies: + bindings: ^1.5.0 + nan: ^2.12.1 + checksum: ae855aa737aaa2f9167e9f70417cf6e45a5cd11918e1fee9923709a0149be52416d765433b4aeff56c789b1152e718cd1b13ddec6043b78cdda68260d86383c1 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: latest + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@^1.2.7#~builtin": + version: 1.2.13 + resolution: "fsevents@patch:fsevents@npm%3A1.2.13#~builtin::version=1.2.13&hash=18f3a7" + dependencies: + bindings: ^1.5.0 + nan: ^2.12.1 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.5": + version: 1.1.5 + resolution: "function.prototype.name@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + functions-have-names: ^1.2.2 + checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + languageName: node + linkType: hard + +"functional-red-black-tree@npm:^1.0.1": + version: 1.0.1 + resolution: "functional-red-black-tree@npm:1.0.1" + checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-func-name@npm:^2.0.0": + version: 2.0.0 + resolution: "get-func-name@npm:2.0.0" + checksum: 8d82e69f3e7fab9e27c547945dfe5cc0c57fc0adf08ce135dddb01081d75684a03e7a0487466f478872b341d52ac763ae49e660d01ab83741f74932085f693c3 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.0": + version: 1.0.0 + resolution: "get-symbol-description@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + languageName: node + linkType: hard + +"get-value@npm:^2.0.3, get-value@npm:^2.0.6": + version: 2.0.6 + resolution: "get-value@npm:2.0.6" + checksum: 5c3b99cb5398ea8016bf46ff17afc5d1d286874d2ad38ca5edb6e87d75c0965b0094cb9a9dddef2c59c23d250702323539a7fbdd870620db38c7e7d7ec87c1eb + languageName: node + linkType: hard + +"glob-parent@npm:^3.1.0": + version: 3.1.0 + resolution: "glob-parent@npm:3.1.0" + dependencies: + is-glob: ^3.1.0 + path-dirname: ^1.0.0 + checksum: 653d559237e89a11b9934bef3f392ec42335602034c928590544d383ff5ef449f7b12f3cfa539708e74bc0a6c28ab1fe51d663cc07463cdf899ba92afd85a855 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob@npm:7.2.0": + version: 7.2.0 + resolution: "glob@npm:7.2.0" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.0.4 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"glob@npm:^8.0.1": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^5.0.1 + once: ^1.3.0 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + languageName: node + linkType: hard + +"global-modules@npm:^2.0.0": + version: 2.0.0 + resolution: "global-modules@npm:2.0.0" + dependencies: + global-prefix: ^3.0.0 + checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 + languageName: node + linkType: hard + +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" + dependencies: + ini: ^1.3.5 + kind-of: ^6.0.2 + which: ^1.3.1 + checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + languageName: node + linkType: hard + +"globals@npm:^13.6.0, globals@npm:^13.9.0": + version: 13.20.0 + resolution: "globals@npm:13.20.0" + dependencies: + type-fest: ^0.20.2 + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + languageName: node + linkType: hard + +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"globjoin@npm:^0.1.4": + version: 0.1.4 + resolution: "globjoin@npm:0.1.4" + checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + +"hard-rejection@npm:^2.1.0": + version: 2.1.0 + resolution: "hard-rejection@npm:2.1.0" + checksum: 7baaf80a0c7fff4ca79687b4060113f1529589852152fa935e6787a2bc96211e784ad4588fb3048136ff8ffc9dfcf3ae385314a5b24db32de20bea0d1597f9dc + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" + dependencies: + get-intrinsic: ^1.1.1 + checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0": + version: 1.0.0 + resolution: "has-tostringtag@npm:1.0.0" + dependencies: + has-symbols: ^1.0.2 + checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"has-value@npm:^0.3.1": + version: 0.3.1 + resolution: "has-value@npm:0.3.1" + dependencies: + get-value: ^2.0.3 + has-values: ^0.1.4 + isobject: ^2.0.0 + checksum: 29e2a1e6571dad83451b769c7ce032fce6009f65bccace07c2962d3ad4d5530b6743d8f3229e4ecf3ea8e905d23a752c5f7089100c1f3162039fa6dc3976558f + languageName: node + linkType: hard + +"has-value@npm:^1.0.0": + version: 1.0.0 + resolution: "has-value@npm:1.0.0" + dependencies: + get-value: ^2.0.6 + has-values: ^1.0.0 + isobject: ^3.0.0 + checksum: b9421d354e44f03d3272ac39fd49f804f19bc1e4fa3ceef7745df43d6b402053f828445c03226b21d7d934a21ac9cf4bc569396dc312f496ddff873197bbd847 + languageName: node + linkType: hard + +"has-values@npm:^0.1.4": + version: 0.1.4 + resolution: "has-values@npm:0.1.4" + checksum: ab1c4bcaf811ccd1856c11cfe90e62fca9e2b026ebe474233a3d282d8d67e3b59ed85b622c7673bac3db198cb98bd1da2b39300a2f98e453729b115350af49bc + languageName: node + linkType: hard + +"has-values@npm:^1.0.0": + version: 1.0.0 + resolution: "has-values@npm:1.0.0" + dependencies: + is-number: ^3.0.0 + kind-of: ^4.0.0 + checksum: 77e6693f732b5e4cf6c38dfe85fdcefad0fab011af74995c3e83863fabf5e3a836f406d83565816baa0bc0a523c9410db8b990fe977074d61aeb6d8f4fcffa11 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"hash-base@npm:^3.0.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: ^2.0.4 + readable-stream: ^3.6.0 + safe-buffer: ^5.2.0 + checksum: 26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc + languageName: node + linkType: hard + +"hash.js@npm:^1.1.7": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: ^2.0.3 + minimalistic-assert: ^1.0.1 + checksum: e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f + languageName: node + linkType: hard + +"he@npm:1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 + languageName: node + linkType: hard + +"hosted-git-info@npm:^2.1.4": + version: 2.8.9 + resolution: "hosted-git-info@npm:2.8.9" + checksum: c955394bdab888a1e9bb10eb33029e0f7ce5a2ac7b3f158099dc8c486c99e73809dca609f5694b223920ca2174db33d32b12f9a2a47141dc59607c29da5a62dd + languageName: node + linkType: hard + +"hosted-git-info@npm:^4.0.1": + version: 4.1.0 + resolution: "hosted-git-info@npm:4.1.0" + dependencies: + lru-cache: ^6.0.0 + checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^2.0.1": + version: 2.0.1 + resolution: "html-encoding-sniffer@npm:2.0.1" + dependencies: + whatwg-encoding: ^1.0.5 + checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba + languageName: node + linkType: hard + +"html-tags@npm:^3.2.0": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce + languageName: node + linkType: hard + +"http-auth@npm:3.1.x": + version: 3.1.3 + resolution: "http-auth@npm:3.1.3" + dependencies: + apache-crypt: ^1.1.2 + apache-md5: ^1.0.6 + bcryptjs: ^2.3.0 + uuid: ^3.0.0 + checksum: 8d7bf987dea5ff50979e89a52deaf27fffefe5e7a36206ea3d3e17bd002c4b12a49d1c66b7ef105ee8d5daa8fc6e09470728b45419685cb71fde34a51e888ff5 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.0": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 + languageName: node + linkType: hard + +"http-errors@npm:~1.6.2": + version: 1.6.3 + resolution: "http-errors@npm:1.6.3" + dependencies: + depd: ~1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: ">= 1.4.0 < 2" + checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c + languageName: node + linkType: hard + +"http-parser-js@npm:>=0.5.1": + version: 0.5.8 + resolution: "http-parser-js@npm:0.5.8" + checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d + languageName: node + linkType: hard + +"http-proxy-agent@npm:^4.0.1": + version: 4.0.1 + resolution: "http-proxy-agent@npm:4.0.1" + dependencies: + "@tootallnate/once": 1 + agent-base: 6 + debug: 4 + checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"iconv-lite@npm:0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"ignore@npm:^4.0.6": + version: 4.0.6 + resolution: "ignore@npm:4.0.6" + checksum: 248f82e50a430906f9ee7f35e1158e3ec4c3971451dd9f99c9bc1548261b4db2b99709f60ac6c6cac9333494384176cc4cc9b07acbe42d52ac6a09cad734d800 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.1": + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + languageName: node + linkType: hard + +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-lazy@npm:^4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"infer-owner@npm:^1.0.4": + version: 1.0.4 + resolution: "infer-owner@npm:1.0.4" + checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 + languageName: node + linkType: hard + +"ini@npm:^1.3.5": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" + dependencies: + get-intrinsic: ^1.2.0 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-accessor-descriptor@npm:^0.1.6": + version: 0.1.6 + resolution: "is-accessor-descriptor@npm:0.1.6" + dependencies: + kind-of: ^3.0.2 + checksum: 3d629a086a9585bc16a83a8e8a3416f400023301855cafb7ccc9a1d63145b7480f0ad28877dcc2cce09492c4ec1c39ef4c071996f24ee6ac626be4217b8ffc8a + languageName: node + linkType: hard + +"is-accessor-descriptor@npm:^1.0.0": + version: 1.0.0 + resolution: "is-accessor-descriptor@npm:1.0.0" + dependencies: + kind-of: ^6.0.0 + checksum: 8e475968e9b22f9849343c25854fa24492dbe8ba0dea1a818978f9f1b887339190b022c9300d08c47fe36f1b913d70ce8cbaca00369c55a56705fdb7caed37fe + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: ^1.0.1 + checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + languageName: node + linkType: hard + +"is-binary-path@npm:^1.0.0": + version: 1.0.1 + resolution: "is-binary-path@npm:1.0.1" + dependencies: + binary-extensions: ^1.0.0 + checksum: a803c99e9d898170c3b44a86fbdc0736d3d7fcbe737345433fb78e810b9fe30c982657782ad0e676644ba4693ddf05601a7423b5611423218663d6b533341ac9 + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: ^2.0.0 + checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + languageName: node + linkType: hard + +"is-buffer@npm:^1.1.5": + version: 1.1.6 + resolution: "is-buffer@npm:1.1.6" + checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": + version: 2.12.1 + resolution: "is-core-module@npm:2.12.1" + dependencies: + has: ^1.0.3 + checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 + languageName: node + linkType: hard + +"is-data-descriptor@npm:^0.1.4": + version: 0.1.4 + resolution: "is-data-descriptor@npm:0.1.4" + dependencies: + kind-of: ^3.0.2 + checksum: 5c622e078ba933a78338ae398a3d1fc5c23332b395312daf4f74bab4afb10d061cea74821add726cb4db8b946ba36217ee71a24fe71dd5bca4632edb7f6aad87 + languageName: node + linkType: hard + +"is-data-descriptor@npm:^1.0.0": + version: 1.0.0 + resolution: "is-data-descriptor@npm:1.0.0" + dependencies: + kind-of: ^6.0.0 + checksum: e705e6816241c013b05a65dc452244ee378d1c3e3842bd140beabe6e12c0d700ef23c91803f971aa7b091fb0573c5da8963af34a2b573337d87bc3e1f53a4e6d + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.1": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + +"is-descriptor@npm:^0.1.0": + version: 0.1.6 + resolution: "is-descriptor@npm:0.1.6" + dependencies: + is-accessor-descriptor: ^0.1.6 + is-data-descriptor: ^0.1.4 + kind-of: ^5.0.0 + checksum: 0f780c1b46b465f71d970fd7754096ffdb7b69fd8797ca1f5069c163eaedcd6a20ec4a50af669075c9ebcfb5266d2e53c8b227e485eefdb0d1fee09aa1dd8ab6 + languageName: node + linkType: hard + +"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": + version: 1.0.2 + resolution: "is-descriptor@npm:1.0.2" + dependencies: + is-accessor-descriptor: ^1.0.0 + is-data-descriptor: ^1.0.0 + kind-of: ^6.0.2 + checksum: 2ed623560bee035fb67b23e32ce885700bef8abe3fbf8c909907d86507b91a2c89a9d3a4d835a4d7334dd5db0237a0aeae9ca109c1e4ef1c0e7b577c0846ab5a + languageName: node + linkType: hard + +"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1": + version: 0.1.1 + resolution: "is-extendable@npm:0.1.1" + checksum: 3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672 + languageName: node + linkType: hard + +"is-extendable@npm:^1.0.1": + version: 1.0.1 + resolution: "is-extendable@npm:1.0.1" + dependencies: + is-plain-object: ^2.0.4 + checksum: db07bc1e9de6170de70eff7001943691f05b9d1547730b11be01c0ebfe67362912ba743cf4be6fd20a5e03b4180c685dad80b7c509fe717037e3eee30ad8e84f + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^2.0.0": + version: 2.0.0 + resolution: "is-fullwidth-code-point@npm:2.0.0" + checksum: eef9c6e15f68085fec19ff6a978a6f1b8f48018fd1265035552078ee945573594933b09bbd6f562553e2a241561439f1ef5339276eba68d272001343084cfab8 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-glob@npm:^3.1.0": + version: 3.1.0 + resolution: "is-glob@npm:3.1.0" + dependencies: + is-extglob: ^2.1.0 + checksum: 9d483bca84f16f01230f7c7c8c63735248fe1064346f292e0f6f8c76475fd20c6f50fc19941af5bec35f85d6bf26f4b7768f39a48a5f5fdc72b408dc74e07afc + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.2": + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a + languageName: node + linkType: hard + +"is-number-object@npm:^1.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + languageName: node + linkType: hard + +"is-number@npm:^3.0.0": + version: 3.0.0 + resolution: "is-number@npm:3.0.0" + dependencies: + kind-of: ^3.0.2 + checksum: 0c62bf8e9d72c4dd203a74d8cfc751c746e75513380fef420cda8237e619a988ee43e678ddb23c87ac24d91ac0fe9f22e4ffb1301a50310c697e9d73ca3994e9 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + +"is-plain-obj@npm:^1.1.0": + version: 1.1.0 + resolution: "is-plain-obj@npm:1.1.0" + checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 + languageName: node + linkType: hard + +"is-plain-obj@npm:^2.1.0": + version: 2.1.0 + resolution: "is-plain-obj@npm:2.1.0" + checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: ^3.0.1 + checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "is-shared-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + languageName: node + linkType: hard + +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: ^1.0.2 + checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" + dependencies: + which-typed-array: ^1.1.11 + checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2": + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + languageName: node + linkType: hard + +"is-windows@npm:^1.0.2": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + languageName: node + linkType: hard + +"is-wsl@npm:^1.1.0": + version: 1.1.0 + resolution: "is-wsl@npm:1.1.0" + checksum: ea157d232351e68c92bd62fc541771096942fe72f69dff452dd26dcc31466258c570a3b04b8cda2e01cd2968255b02951b8670d08ea4ed76d6b1a646061ac4fe + languageName: node + linkType: hard + +"isarray@npm:1.0.0, isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + +"isarray@npm:^2.0.1, isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"iso-3166-1@npm:^2.1.1": + version: 2.1.1 + resolution: "iso-3166-1@npm:2.1.1" + checksum: 01c7027381baabd82e24d869a46f57cb8d4deb7ca3686d5aaca4f8c0b20c5287be84e8bc142cbbad461a0ac7b9aaaabfb2d8fe132ccc39cdf82f542d71e791d8 + languageName: node + linkType: hard + +"isobject@npm:^2.0.0": + version: 2.1.0 + resolution: "isobject@npm:2.1.0" + dependencies: + isarray: 1.0.0 + checksum: 811c6f5a866877d31f0606a88af4a45f282544de886bf29f6a34c46616a1ae2ed17076cc6bf34c0128f33eecf7e1fcaa2c82cf3770560d3e26810894e96ae79f + languageName: node + linkType: hard + +"isobject@npm:^3.0.0, isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"javascript-natural-sort@npm:^0.7.1": + version: 0.7.1 + resolution: "javascript-natural-sort@npm:0.7.1" + checksum: 161e2c512cc7884bc055a582c6645d9032cab88497a76123d73cb23bfb03d97a04cf7772ecdb8bd3366fc07192c2f996366f479f725c23ef073fffe03d6a586a + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"js-yaml@npm:4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: ^1.0.7 + esprima: ^4.0.0 + bin: + js-yaml: bin/js-yaml.js + checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c + languageName: node + linkType: hard + +"jsdom@npm:^17.0.0": + version: 17.0.0 + resolution: "jsdom@npm:17.0.0" + dependencies: + abab: ^2.0.5 + acorn: ^8.4.1 + acorn-globals: ^6.0.0 + cssom: ^0.5.0 + cssstyle: ^2.3.0 + data-urls: ^3.0.0 + decimal.js: ^10.3.1 + domexception: ^2.0.1 + escodegen: ^2.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^2.0.1 + http-proxy-agent: ^4.0.1 + https-proxy-agent: ^5.0.0 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.0 + parse5: 6.0.1 + saxes: ^5.0.1 + symbol-tree: ^3.2.4 + tough-cookie: ^4.0.0 + w3c-hr-time: ^1.0.2 + w3c-xmlserializer: ^2.0.0 + webidl-conversions: ^6.1.0 + whatwg-encoding: ^1.0.5 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^9.0.0 + ws: ^8.0.0 + xml-name-validator: ^3.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 4b156517267662b63e43616a03afbbb10c50383e8552d22e695f322ea94b0b33ee61e6401113dd4bacf5b61ac26d94a263296d87cdd8f1a7ab69cf8785f72b88 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + +"json-bigint@npm:^1.0.0": + version: 1.0.0 + resolution: "json-bigint@npm:1.0.0" + dependencies: + bignumber.js: ^9.0.0 + checksum: c67bb93ccb3c291e60eb4b62931403e378906aab113ec1c2a8dd0f9a7f065ad6fd9713d627b732abefae2e244ac9ce1721c7a3142b2979532f12b258634ce6f6 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: ^1.2.0 + bin: + json5: lib/cli.js + checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 + languageName: node + linkType: hard + +"json5@npm:^2.2.2": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.3": + version: 3.3.4 + resolution: "jsx-ast-utils@npm:3.3.4" + dependencies: + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + object.assign: ^4.1.4 + object.values: ^1.1.6 + checksum: a6a00d324e38f0d47e04f973d79670248a663422a4dccdc02efd6f1caf1c00042fb0aafcff1023707c85dea6f013d435b90db67c1c6841bf345628f0a720d8b3 + languageName: node + linkType: hard + +"keyvaluestorage-interface@npm:^1.0.0": + version: 1.0.0 + resolution: "keyvaluestorage-interface@npm:1.0.0" + checksum: e20530e71b738dc094ad170a91a98d4b9bdc772dd9044b23cdaaa102aafa8997b1ac867550a1e66ba1d64fcaa949214df31aed18413b4bac31e5fe1f2c76c9de + languageName: node + linkType: hard + +"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": + version: 3.2.2 + resolution: "kind-of@npm:3.2.2" + dependencies: + is-buffer: ^1.1.5 + checksum: e898df8ca2f31038f27d24f0b8080da7be274f986bc6ed176f37c77c454d76627619e1681f6f9d2e8d2fd7557a18ecc419a6bb54e422abcbb8da8f1a75e4b386 + languageName: node + linkType: hard + +"kind-of@npm:^4.0.0": + version: 4.0.0 + resolution: "kind-of@npm:4.0.0" + dependencies: + is-buffer: ^1.1.5 + checksum: 1b9e7624a8771b5a2489026e820f3bbbcc67893e1345804a56b23a91e9069965854d2a223a7c6ee563c45be9d8c6ff1ef87f28ed5f0d1a8d00d9dcbb067c529f + languageName: node + linkType: hard + +"kind-of@npm:^5.0.0": + version: 5.1.0 + resolution: "kind-of@npm:5.1.0" + checksum: f2a0102ae0cf19c4a953397e552571bad2b588b53282874f25fca7236396e650e2db50d41f9f516bd402536e4df968dbb51b8e69e4d5d4a7173def78448f7bab + languageName: node + linkType: hard + +"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b + languageName: node + linkType: hard + +"known-css-properties@npm:^0.26.0": + version: 0.26.0 + resolution: "known-css-properties@npm:0.26.0" + checksum: e706f4af9d2683202df9f717e7d713f0f8c3330f155842c40d8f3b2a5837956c34aeb7ba08760977ccde1afce8b5377e29b40eb3e5c0b42bef28ddd108543cfb + languageName: node + linkType: hard + +"language-subtag-registry@npm:~0.3.2": + version: 0.3.22 + resolution: "language-subtag-registry@npm:0.3.22" + checksum: 8ab70a7e0e055fe977ac16ea4c261faec7205ac43db5e806f72e5b59606939a3b972c4bd1e10e323b35d6ffa97c3e1c4c99f6553069dad2dfdd22020fa3eb56a + languageName: node + linkType: hard + +"language-tags@npm:=1.0.5": + version: 1.0.5 + resolution: "language-tags@npm:1.0.5" + dependencies: + language-subtag-registry: ~0.3.2 + checksum: c81b5d8b9f5f9cfd06ee71ada6ddfe1cf83044dd5eeefcd1e420ad491944da8957688db4a0a9bc562df4afdc2783425cbbdfd152c01d93179cf86888903123cf + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + +"levn@npm:~0.3.0": + version: 0.3.0 + resolution: "levn@npm:0.3.0" + dependencies: + prelude-ls: ~1.1.2 + type-check: ~0.3.2 + checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"live-server@npm:^1.2.2": + version: 1.2.2 + resolution: "live-server@npm:1.2.2" + dependencies: + chokidar: ^2.0.4 + colors: 1.4.0 + connect: ^3.6.6 + cors: latest + event-stream: 3.3.4 + faye-websocket: 0.11.x + http-auth: 3.1.x + morgan: ^1.9.1 + object-assign: latest + opn: latest + proxy-middleware: latest + send: latest + serve-index: ^1.9.1 + bin: + live-server: live-server.js + checksum: 6758421223a97a602d427fe048bb867ed4743e8ed2299c37ab67e72dd98a24abe6756157795e4f6fa11d164dc97ba3c9a7e9be8c9aff786bf4ec84c807ec2d7b + languageName: node + linkType: hard + +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: ^3.0.0 + path-exists: ^3.0.0 + checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: ^4.1.0 + checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash._reinterpolate@npm:^3.0.0": + version: 3.0.0 + resolution: "lodash._reinterpolate@npm:3.0.0" + checksum: 06d2d5f33169604fa5e9f27b6067ed9fb85d51a84202a656901e5ffb63b426781a601508466f039c720af111b0c685d12f1a5c14ff8df5d5f27e491e562784b2 + languageName: node + linkType: hard + +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 + languageName: node + linkType: hard + +"lodash.isequal@npm:4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + +"lodash.template@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.template@npm:4.5.0" + dependencies: + lodash._reinterpolate: ^3.0.0 + lodash.templatesettings: ^4.0.0 + checksum: ca64e5f07b6646c9d3dbc0fe3aaa995cb227c4918abd1cef7a9024cd9c924f2fa389a0ec4296aa6634667e029bc81d4bbdb8efbfde11df76d66085e6c529b450 + languageName: node + linkType: hard + +"lodash.templatesettings@npm:^4.0.0": + version: 4.2.0 + resolution: "lodash.templatesettings@npm:4.2.0" + dependencies: + lodash._reinterpolate: ^3.0.0 + checksum: 863e025478b092997e11a04e9d9e735875eeff1ffcd6c61742aa8272e3c2cddc89ce795eb9726c4e74cef5991f722897ff37df7738a125895f23fc7d12a7bb59 + languageName: node + linkType: hard + +"lodash.truncate@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.truncate@npm:4.4.2" + checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 + languageName: node + linkType: hard + +"log-symbols@npm:4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"long@npm:^4.0.0": + version: 4.0.0 + resolution: "long@npm:4.0.0" + checksum: 16afbe8f749c7c849db1f4de4e2e6a31ac6e617cead3bdc4f9605cb703cd20e1e9fc1a7baba674ffcca57d660a6e5b53a9e236d7b25a295d3855cca79cc06744 + languageName: node + linkType: hard + +"long@npm:^5.0.0": + version: 5.2.1 + resolution: "long@npm:5.2.1" + checksum: 9264da12d1b7df67e5aa6da4498144293caf1ad12e7f092efe4e9a2d32c53f0bbf7334f7cef997080a2a3af061142558ab366efa71698d98b1cdb883477445a7 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"loupe@npm:^2.3.1": + version: 2.3.6 + resolution: "loupe@npm:2.3.6" + dependencies: + get-func-name: ^2.0.0 + checksum: cc83f1b124a1df7384601d72d8d1f5fe95fd7a8185469fec48bb2e4027e45243949e7a013e8d91051a138451ff0552310c32aa9786e60b6a30d1e801bdc2163f + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^10.0.3": + version: 10.2.1 + resolution: "make-fetch-happen@npm:10.2.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^16.1.0 + http-cache-semantics: ^4.1.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-fetch: ^2.0.3 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^9.0.0 + checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c + languageName: node + linkType: hard + +"map-cache@npm:^0.2.2": + version: 0.2.2 + resolution: "map-cache@npm:0.2.2" + checksum: 3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969 + languageName: node + linkType: hard + +"map-obj@npm:^1.0.0": + version: 1.0.1 + resolution: "map-obj@npm:1.0.1" + checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed + languageName: node + linkType: hard + +"map-obj@npm:^4.0.0": + version: 4.3.0 + resolution: "map-obj@npm:4.3.0" + checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e + languageName: node + linkType: hard + +"map-stream@npm:~0.1.0": + version: 0.1.0 + resolution: "map-stream@npm:0.1.0" + checksum: 38abbe4eb883888031e6b2fc0630bc583c99396be16b8ace5794b937b682a8a081f03e8b15bfd4914d1bc88318f0e9ac73ba3512ae65955cd449f63256ddb31d + languageName: node + linkType: hard + +"map-visit@npm:^1.0.0": + version: 1.0.0 + resolution: "map-visit@npm:1.0.0" + dependencies: + object-visit: ^1.0.0 + checksum: c27045a5021c344fc19b9132eb30313e441863b2951029f8f8b66f79d3d8c1e7e5091578075a996f74e417479506fe9ede28c44ca7bc351a61c9d8073daec36a + languageName: node + linkType: hard + +"mathjs@npm:^11.4.0": + version: 11.8.0 + resolution: "mathjs@npm:11.8.0" + dependencies: + "@babel/runtime": ^7.21.0 + complex.js: ^2.1.1 + decimal.js: ^10.4.3 + escape-latex: ^1.2.0 + fraction.js: ^4.2.0 + javascript-natural-sort: ^0.7.1 + seedrandom: ^3.0.5 + tiny-emitter: ^2.1.0 + typed-function: ^4.1.0 + bin: + mathjs: bin/cli.js + checksum: 09716946b03b57c1f05db4f719bd479349154d51e94a8781ab356bde8517771bb35e7ebcc91732c7ca33782b824422ee23e4cae8af14fda69ef4adc5f46a26ec + languageName: node + linkType: hard + +"mathml-tag-names@npm:^2.1.3": + version: 2.1.3 + resolution: "mathml-tag-names@npm:2.1.3" + checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 + languageName: node + linkType: hard + +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: ^3.0.0 + inherits: ^2.0.1 + safe-buffer: ^5.1.2 + checksum: 098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c + languageName: node + linkType: hard + +"meow@npm:^9.0.0": + version: 9.0.0 + resolution: "meow@npm:9.0.0" + dependencies: + "@types/minimist": ^1.2.0 + camelcase-keys: ^6.2.2 + decamelize: ^1.2.0 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^3.0.0 + read-pkg-up: ^7.0.1 + redent: ^3.0.0 + trim-newlines: ^3.0.0 + type-fest: ^0.18.0 + yargs-parser: ^20.2.3 + checksum: 99799c47247f4daeee178e3124f6ef6f84bde2ba3f37652865d5d8f8b8adcf9eedfc551dd043e2455cd8206545fd848e269c0c5ab6b594680a0ad4d3617c9639 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4": + version: 3.1.10 + resolution: "micromatch@npm:3.1.10" + dependencies: + arr-diff: ^4.0.0 + array-unique: ^0.3.2 + braces: ^2.3.1 + define-property: ^2.0.2 + extend-shallow: ^3.0.2 + extglob: ^2.0.4 + fragment-cache: ^0.2.1 + kind-of: ^6.0.2 + nanomatch: ^1.2.9 + object.pick: ^1.3.0 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.2 + checksum: ad226cba4daa95b4eaf47b2ca331c8d2e038d7b41ae7ed0697cde27f3f1d6142881ab03d4da51b65d9d315eceb5e4cdddb3fbb55f5f72cfa19cf3ea469d054dc + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.17, mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557 + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + +"minimalistic-assert@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + languageName: node + linkType: hard + +"minimatch@npm:5.0.1": + version: 5.0.1 + resolution: "minimatch@npm:5.0.1" + dependencies: + brace-expansion: ^2.0.1 + checksum: b34b98463da4754bc526b244d680c69d4d6089451ebe512edaf6dd9eeed0279399cfa3edb19233513b8f830bf4bfcad911dddcdf125e75074100d52f724774f0 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + +"minimist-options@npm:4.1.0": + version: 4.1.0 + resolution: "minimist-options@npm:4.1.0" + dependencies: + arrify: ^1.0.1 + is-plain-obj: ^1.1.0 + kind-of: ^6.0.3 + checksum: 8c040b3068811e79de1140ca2b708d3e203c8003eb9a414c1ab3cd467fc5f17c9ca02a5aef23bedc51a7f8bfbe77f87e9a7e31ec81fba304cda675b019496f4e + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^2.0.3": + version: 2.1.2 + resolution: "minipass-fetch@npm:2.1.2" + dependencies: + encoding: ^0.1.13 + minipass: ^3.1.6 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^4.0.0": + version: 4.2.8 + resolution: "minipass@npm:4.2.8" + checksum: 7f4914d5295a9a30807cae5227a37a926e6d910c03f315930fde52332cf0575dfbc20295318f91f0baf0e6bb11a6f668e30cde8027dea7a11b9d159867a3c830 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mixin-deep@npm:^1.2.0": + version: 1.3.2 + resolution: "mixin-deep@npm:1.3.2" + dependencies: + for-in: ^1.0.2 + is-extendable: ^1.0.1 + checksum: 820d5a51fcb7479f2926b97f2c3bb223546bc915e6b3a3eb5d906dda871bba569863595424a76682f2b15718252954644f3891437cb7e3f220949bed54b1750d + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"mocha@npm:^10.2.0": + version: 10.2.0 + resolution: "mocha@npm:10.2.0" + dependencies: + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.4 + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.0.1 + ms: 2.1.3 + nanoid: 3.3.3 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.2.1 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + bin: + _mocha: bin/_mocha + mocha: bin/mocha.js + checksum: 406c45eab122ffd6ea2003c2f108b2bc35ba036225eee78e0c784b6fa2c7f34e2b13f1dbacef55a4fdf523255d76e4f22d1b5aacda2394bd11666febec17c719 + languageName: node + linkType: hard + +"moment@npm:^2.29.4": + version: 2.29.4 + resolution: "moment@npm:2.29.4" + checksum: 0ec3f9c2bcba38dc2451b1daed5daded747f17610b92427bebe1d08d48d8b7bdd8d9197500b072d14e326dd0ccf3e326b9e3d07c5895d3d49e39b6803b76e80e + languageName: node + linkType: hard + +"morgan@npm:^1.9.1": + version: 1.10.0 + resolution: "morgan@npm:1.10.0" + dependencies: + basic-auth: ~2.0.1 + debug: 2.6.9 + depd: ~2.0.0 + on-finished: ~2.3.0 + on-headers: ~1.0.2 + checksum: fb41e226ab5a1abf7e8909e486b387076534716d60207e361acfb5df78b84d703a7b7ea58f3046a9fd0b83d3c94bfabde32323341a1f1b26ce50680abd2ea5dd + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"multiformats@npm:^9.4.2": + version: 9.9.0 + resolution: "multiformats@npm:9.9.0" + checksum: d3e8c1be400c09a014f557ea02251a2710dbc9fca5aa32cc702ff29f636c5471e17979f30bdcb0a9cbb556f162a8591dc2e1219c24fc21394a56115b820bb84e + languageName: node + linkType: hard + +"nan@npm:^2.12.1": + version: 2.17.0 + resolution: "nan@npm:2.17.0" + dependencies: + node-gyp: latest + checksum: ec609aeaf7e68b76592a3ba96b372aa7f5df5b056c1e37410b0f1deefbab5a57a922061e2c5b369bae9c7c6b5e6eecf4ad2dac8833a1a7d3a751e0a7c7f849ed + languageName: node + linkType: hard + +"nanoid@npm:3.3.3": + version: 3.3.3 + resolution: "nanoid@npm:3.3.3" + bin: + nanoid: bin/nanoid.cjs + checksum: ada019402a07464a694553c61d2dca8a4353645a7d92f2830f0d487fedff403678a0bee5323a46522752b2eab95a0bc3da98b6cccaa7c0c55cd9975130e6d6f0 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" + bin: + nanoid: bin/nanoid.cjs + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + languageName: node + linkType: hard + +"nanomatch@npm:^1.2.9": + version: 1.2.13 + resolution: "nanomatch@npm:1.2.13" + dependencies: + arr-diff: ^4.0.0 + array-unique: ^0.3.2 + define-property: ^2.0.2 + extend-shallow: ^3.0.2 + fragment-cache: ^0.2.1 + is-windows: ^1.0.2 + kind-of: ^6.0.2 + object.pick: ^1.3.0 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.1 + checksum: 54d4166d6ef08db41252eb4e96d4109ebcb8029f0374f9db873bd91a1f896c32ec780d2a2ea65c0b2d7caf1f28d5e1ea33746a470f32146ac8bba821d80d38d8 + languageName: node + linkType: hard + +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"node-fetch@npm:2.6.7": + version: 2.6.7 + resolution: "node-fetch@npm:2.6.7" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.3.1 + resolution: "node-gyp@npm:9.3.1" + dependencies: + env-paths: ^2.2.0 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^10.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.8": + version: 2.0.10 + resolution: "node-releases@npm:2.0.10" + checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"normalize-package-data@npm:^2.5.0": + version: 2.5.0 + resolution: "normalize-package-data@npm:2.5.0" + dependencies: + hosted-git-info: ^2.1.4 + resolve: ^1.10.0 + semver: 2 || 3 || 4 || 5 + validate-npm-package-license: ^3.0.1 + checksum: 7999112efc35a6259bc22db460540cae06564aa65d0271e3bdfa86876d08b0e578b7b5b0028ee61b23f1cae9fc0e7847e4edc0948d3068a39a2a82853efc8499 + languageName: node + linkType: hard + +"normalize-package-data@npm:^3.0.0": + version: 3.0.3 + resolution: "normalize-package-data@npm:3.0.3" + dependencies: + hosted-git-info: ^4.0.1 + is-core-module: ^2.5.0 + semver: ^7.3.4 + validate-npm-package-license: ^3.0.1 + checksum: bbcee00339e7c26fdbc760f9b66d429258e2ceca41a5df41f5df06cc7652de8d82e8679ff188ca095cad8eff2b6118d7d866af2b68400f74602fbcbce39c160a + languageName: node + linkType: hard + +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: ^1.0.1 + checksum: 7e9cbdcf7f5b8da7aa191fbfe33daf290cdcd8c038f422faf1b8a83c972bf7a6d94c5be34c4326cb00fb63bc0fd97d9fbcfaf2e5d6142332c2cd36d2e1b86cea + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.0": + version: 2.2.2 + resolution: "nwsapi@npm:2.2.2" + checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205 + languageName: node + linkType: hard + +"object-assign@latest, object-assign@npm:^4, object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-copy@npm:^0.1.0": + version: 0.1.0 + resolution: "object-copy@npm:0.1.0" + dependencies: + copy-descriptor: ^0.1.0 + define-property: ^0.2.5 + kind-of: ^3.0.3 + checksum: a9e35f07e3a2c882a7e979090360d1a20ab51d1fa19dfdac3aa8873b328a7c4c7683946ee97c824ae40079d848d6740a3788fa14f2185155dab7ed970a72c783 + languageName: node + linkType: hard + +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object-visit@npm:^1.0.0": + version: 1.0.1 + resolution: "object-visit@npm:1.0.1" + dependencies: + isobject: ^3.0.0 + checksum: b0ee07f5bf3bb881b881ff53b467ebbde2b37ebb38649d6944a6cd7681b32eedd99da9bd1e01c55facf81f54ed06b13af61aba6ad87f0052982995e09333f790 + languageName: node + linkType: hard + +"object.assign@npm:^4.1.2, object.assign@npm:^4.1.4": + version: 4.1.4 + resolution: "object.assign@npm:4.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + languageName: node + linkType: hard + +"object.entries@npm:^1.1.5, object.entries@npm:^1.1.6": + version: 1.1.6 + resolution: "object.entries@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0f8c47517e6a9a980241eafe3b73de11e59511883173c2b93d67424a008e47e11b77c80e431ad1d8a806f6108b225a1cab9223e53e555776c612a24297117d28 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.6": + version: 2.0.6 + resolution: "object.fromentries@npm:2.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + languageName: node + linkType: hard + +"object.hasown@npm:^1.1.2": + version: 1.1.2 + resolution: "object.hasown@npm:1.1.2" + dependencies: + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: b936572536db0cdf38eb30afd2f1026a8b6f2cc5d2c4497c9d9bbb01eaf3e980dead4fd07580cfdd098e6383e5a9db8212d3ea0c6bdd2b5e68c60aa7e3b45566 + languageName: node + linkType: hard + +"object.pick@npm:^1.3.0": + version: 1.3.0 + resolution: "object.pick@npm:1.3.0" + dependencies: + isobject: ^3.0.1 + checksum: 77fb6eed57c67adf75e9901187e37af39f052ef601cb4480386436561357eb9e459e820762f01fd02c5c1b42ece839ad393717a6d1850d848ee11fbabb3e580a + languageName: node + linkType: hard + +"object.values@npm:^1.1.6": + version: 1.1.6 + resolution: "object.values@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e + languageName: node + linkType: hard + +"on-exit-leak-free@npm:^0.2.0": + version: 0.2.0 + resolution: "on-exit-leak-free@npm:0.2.0" + checksum: d22b0f0538069110626b578db6e68b6ee0e85b1ee9cc5ef9b4de1bba431431d6a8da91a61e09d2ad46f22a96f968e5237833cb9d0b69bc4d294f7ec82f609b05 + languageName: node + linkType: hard + +"on-finished@npm:2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: 1.1.1 + checksum: d20929a25e7f0bb62f937a425b5edeb4e4cde0540d77ba146ec9357f00b0d497cdb3b9b05b9c8e46222407d1548d08166bff69cc56dfa55ba0e4469228920ff0 + languageName: node + linkType: hard + +"on-finished@npm:~2.3.0": + version: 2.3.0 + resolution: "on-finished@npm:2.3.0" + dependencies: + ee-first: 1.1.1 + checksum: 1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b + languageName: node + linkType: hard + +"on-headers@npm:~1.0.2": + version: 1.0.2 + resolution: "on-headers@npm:1.0.2" + checksum: 2bf13467215d1e540a62a75021e8b318a6cfc5d4fc53af8e8f84ad98dbcea02d506c6d24180cd62e1d769c44721ba542f3154effc1f7579a8288c9f7873ed8e5 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +opn@latest: + version: 6.0.0 + resolution: "opn@npm:6.0.0" + dependencies: + is-wsl: ^1.1.0 + checksum: aa49c7ffb13d886611d3d74ddca42e132b0437ecde2e86c626fe52eaf223d9cf63c35f01da46b1a91187f275306375c914525c7b98685396d60019861f05b032 + languageName: node + linkType: hard + +"optionator@npm:^0.8.1": + version: 0.8.3 + resolution: "optionator@npm:0.8.3" + dependencies: + deep-is: ~0.1.3 + fast-levenshtein: ~2.0.6 + levn: ~0.3.0 + prelude-ls: ~1.1.2 + type-check: ~0.3.2 + word-wrap: ~1.2.3 + checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 + languageName: node + linkType: hard + +"optionator@npm:^0.9.1": + version: 0.9.1 + resolution: "optionator@npm:0.9.1" + dependencies: + 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.3 + checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + languageName: node + linkType: hard + +"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: ^2.0.0 + checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-locate@npm:^3.0.0": + version: 3.0.0 + resolution: "p-locate@npm:3.0.0" + dependencies: + p-limit: ^2.0.0 + checksum: 83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: ^2.2.0 + checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + 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 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse5@npm:6.0.1": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd + languageName: node + linkType: hard + +"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + +"pascalcase@npm:^0.1.1": + version: 0.1.1 + resolution: "pascalcase@npm:0.1.1" + checksum: f83681c3c8ff75fa473a2bb2b113289952f802ff895d435edd717e7cb898b0408cbdb247117a938edcbc5d141020909846cc2b92c47213d764e2a94d2ad2b925 + languageName: node + linkType: hard + +"path-dirname@npm:^1.0.0": + version: 1.0.2 + resolution: "path-dirname@npm:1.0.2" + checksum: 0d2f6604ae05a252a0025318685f290e2764ecf9c5436f203cdacfc8c0b17c24cdedaa449d766beb94ab88cc7fc70a09ec21e7933f31abc2b719180883e5e33f + languageName: node + linkType: hard + +"path-exists@npm:^3.0.0": + version: 3.0.0 + resolution: "path-exists@npm:3.0.0" + checksum: 96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: 090e3147716647fb7fb5b4b8c8e5b55e5d0a6086d085b6cd23f3d3c01fcf0ff56fd3cc22f2f4a033bd2e46ed55d61ed8379e123b42afe7d531a2a5fc8bb556d6 + languageName: node + linkType: hard + +"pause-stream@npm:0.0.11": + version: 0.0.11 + resolution: "pause-stream@npm:0.0.11" + dependencies: + through: ~2.3 + checksum: 3c4a14052a638b92e0c96eb00c0d7977df7f79ea28395250c525d197f1fc02d34ce1165d5362e2e6ebbb251524b94a76f3f0d4abc39ab8b016d97449fe15583c + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"pino-abstract-transport@npm:v0.5.0": + version: 0.5.0 + resolution: "pino-abstract-transport@npm:0.5.0" + dependencies: + duplexify: ^4.1.2 + split2: ^4.0.0 + checksum: c503f867de3189f8217ab9cf794e8a631dddd0029a829f0f985f5511308152ebd53e363764fbc5570b3d1c715b341e3923456ce16ad84cd41be2b9a074ada234 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^4.0.0": + version: 4.0.0 + resolution: "pino-std-serializers@npm:4.0.0" + checksum: 89d487729b58c9d3273a0ee851ead068d6d2e2ccc1af8e1c1d28f1b3442423679bec7ec04d9a2aba36f94f335e82be9f4de19dc4fbc161e71c136aaa15b85ad3 + languageName: node + linkType: hard + +"pino@npm:7.11.0": + version: 7.11.0 + resolution: "pino@npm:7.11.0" + dependencies: + atomic-sleep: ^1.0.0 + fast-redact: ^3.0.0 + on-exit-leak-free: ^0.2.0 + pino-abstract-transport: v0.5.0 + pino-std-serializers: ^4.0.0 + process-warning: ^1.0.0 + quick-format-unescaped: ^4.0.3 + real-require: ^0.1.0 + safe-stable-stringify: ^2.1.0 + sonic-boom: ^2.2.1 + thread-stream: ^0.15.1 + bin: + pino: bin.js + checksum: b919e7dbe41de978bb050dcef94fd687c012eb78d344a18f75f04ce180d5810fc162be1f136722d70cd005ed05832c4023a38b9acbc1076ae63c9f5ec5ca515c + languageName: node + linkType: hard + +"pngjs@npm:^3.3.0": + version: 3.4.0 + resolution: "pngjs@npm:3.4.0" + checksum: 8bd40bd698abd16b72c97b85cb858c80894fbedc76277ce72a784aa441e14795d45d9856e97333ca469b34b67528860ffc8a7317ca6beea349b645366df00bcd + languageName: node + linkType: hard + +"posix-character-classes@npm:^0.1.0": + version: 0.1.1 + resolution: "posix-character-classes@npm:0.1.1" + checksum: dedb99913c60625a16050cfed2fb5c017648fc075be41ac18474e1c6c3549ef4ada201c8bd9bd006d36827e289c571b6092e1ef6e756cdbab2fd7046b25c6442 + languageName: node + linkType: hard + +"postcss-media-query-parser@npm:^0.2.3": + version: 0.2.3 + resolution: "postcss-media-query-parser@npm:0.2.3" + checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 + languageName: node + linkType: hard + +"postcss-resolve-nested-selector@npm:^0.1.1": + version: 0.1.1 + resolution: "postcss-resolve-nested-selector@npm:0.1.1" + checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 + languageName: node + linkType: hard + +"postcss-safe-parser@npm:^6.0.0": + version: 6.0.0 + resolution: "postcss-safe-parser@npm:6.0.0" + peerDependencies: + postcss: ^8.3.3 + checksum: 06c733eaad83a3954367e7ee02ddfe3796e7a44d4299ccf9239f40964a4daac153c7d77613f32964b5a86c0c6c2f6167738f31d578b73b17cb69d0c4446f0ebe + languageName: node + linkType: hard + +"postcss-scss@npm:^4.0.2": + version: 4.0.6 + resolution: "postcss-scss@npm:4.0.6" + peerDependencies: + postcss: ^8.4.19 + checksum: 133a1cba31e2e167f4e841e66ec6a798eaf44c7911f9182ade0b5b1e71a8198814aa390b8c9d5db6b01358115232e5b15b1a4f8c5198acfccfb1f3fdbd328cdf + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.11": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + languageName: node + linkType: hard + +"postcss@npm:^8.4.19": + version: 8.4.26 + resolution: "postcss@npm:8.4.26" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 1cf08ee10d58cbe98f94bf12ac49a5e5ed1588507d333d2642aacc24369ca987274e1f60ff4cbf0081f70d2ab18a5cd3a4a273f188d835b8e7f3ba381b184e57 + languageName: node + linkType: hard + +"preact@npm:10.4.1": + version: 10.4.1 + resolution: "preact@npm:10.4.1" + checksum: e8c5eae6dca469226177394cf49994d6beab5b9b10d31e000d8b16d9b00bfa52cdd10b41331759d68646e7b8f601430d78eb025f9026263adc90150699800ed3 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + +"prelude-ls@npm:~1.1.2": + version: 1.1.2 + resolution: "prelude-ls@npm:1.1.2" + checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 + languageName: node + linkType: hard + +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + +"prettier@npm:^2.6.2": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + +"process-warning@npm:^1.0.0": + version: 1.0.0 + resolution: "process-warning@npm:1.0.0" + checksum: c708a03241deec3cabaeee39c4f9ee8c4d71f1c5ef9b746c8252cdb952a6059068cfcdaf348399775244cbc441b6ae5e26a9c87ed371f88335d84f26d19180f9 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + languageName: node + linkType: hard + +"progress@npm:^2.0.0": + version: 2.0.3 + resolution: "progress@npm:2.0.3" + checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + +"protobufjs@npm:^7.0.0": + version: 7.2.3 + resolution: "protobufjs@npm:7.2.3" + dependencies: + "@protobufjs/aspromise": ^1.1.2 + "@protobufjs/base64": ^1.1.2 + "@protobufjs/codegen": ^2.0.4 + "@protobufjs/eventemitter": ^1.1.0 + "@protobufjs/fetch": ^1.1.0 + "@protobufjs/float": ^1.0.2 + "@protobufjs/inquire": ^1.1.0 + "@protobufjs/path": ^1.1.2 + "@protobufjs/pool": ^1.1.0 + "@protobufjs/utf8": ^1.1.0 + "@types/node": ">=13.7.0" + long: ^5.0.0 + checksum: 9afa6de5fced0139a5180c063718508fac3ea734a9f1aceb99712367b15473a83327f91193f16b63540f9112b09a40912f5f0441a9b0d3f3c6a1c7f707d78249 + languageName: node + linkType: hard + +proxy-middleware@latest: + version: 0.15.0 + resolution: "proxy-middleware@npm:0.15.0" + checksum: 6f537739fb99dc4118daa353795ed2244d11bd24fe89d1ca4570f70e7447f6355296411d965d818d7eacb6737e599d5d875bade8b40fdfe44581fff0fcaf4900 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1": + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + languageName: node + linkType: hard + +"qrcode@npm:1.4.4": + version: 1.4.4 + resolution: "qrcode@npm:1.4.4" + dependencies: + buffer: ^5.4.3 + buffer-alloc: ^1.2.0 + buffer-from: ^1.1.1 + dijkstrajs: ^1.0.1 + isarray: ^2.0.1 + pngjs: ^3.3.0 + yargs: ^13.2.4 + bin: + qrcode: ./bin/qrcode + checksum: 8c1a7ee3092c0ed60f0413594af879ac6dffb897d4921144a8e7ae3dce40c04ba6457ab21664ca43934ba3fe19cced85abaf0b87b07916239d7254d4bb4fcf13 + languageName: node + linkType: hard + +"query-string@npm:7.1.1": + version: 7.1.1 + resolution: "query-string@npm:7.1.1" + dependencies: + decode-uri-component: ^0.2.0 + filter-obj: ^1.1.0 + split-on-first: ^1.0.0 + strict-uri-encode: ^2.0.0 + checksum: b227d1f588ae93f9f0ad078c6b811295fa151dc5a160a03bb2bac5fa0e6919cb1daa570aad1d288e77c8e89fde5362ba505b1014e6e793da9b1e885b59a690a6 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"quick-format-unescaped@npm:^4.0.3": + version: 4.0.4 + resolution: "quick-format-unescaped@npm:4.0.4" + checksum: 7bc32b99354a1aa46c089d2a82b63489961002bb1d654cee3e6d2d8778197b68c2d854fd23d8422436ee1fdfd0abaddc4d4da120afe700ade68bd357815b26fd + languageName: node + linkType: hard + +"quick-lru@npm:^4.0.1": + version: 4.0.1 + resolution: "quick-lru@npm:4.0.1" + checksum: bea46e1abfaa07023e047d3cf1716a06172c4947886c053ede5c50321893711577cb6119360f810cc3ffcd70c4d7db4069c3cee876b358ceff8596e062bd1154 + languageName: node + linkType: hard + +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: ^5.1.0 + checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 + languageName: node + linkType: hard + +"range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 + languageName: node + linkType: hard + +"react-dom@npm:^18.1.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-switch@npm:^7.0.0": + version: 7.0.0 + resolution: "react-switch@npm:7.0.0" + dependencies: + prop-types: ^15.7.2 + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: 1a3caa9a0271dad3acad9fb4c613583e738a8abf8ef67372fc829dfe3e837a23a7a1c1cd29c327ace526039c068a97538ea5659c25bd5bd6d94cc5f804ea843d + languageName: node + linkType: hard + +"react@npm:^18.1.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"read-pkg-up@npm:^7.0.1": + version: 7.0.1 + resolution: "read-pkg-up@npm:7.0.1" + dependencies: + find-up: ^4.1.0 + read-pkg: ^5.2.0 + type-fest: ^0.8.1 + checksum: e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44 + languageName: node + linkType: hard + +"read-pkg@npm:^5.2.0": + version: 5.2.0 + resolution: "read-pkg@npm:5.2.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^2.5.0 + parse-json: ^5.0.0 + type-fest: ^0.6.0 + checksum: eb696e60528b29aebe10e499ba93f44991908c57d70f2d26f369e46b8b9afc208ef11b4ba64f67630f31df8b6872129e0a8933c8c53b7b4daf0eace536901222 + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.2": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: ~1.0.0 + inherits: ~2.0.3 + isarray: ~1.0.0 + process-nextick-args: ~2.0.0 + safe-buffer: ~5.1.1 + string_decoder: ~1.1.1 + util-deprecate: ~1.0.1 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 + languageName: node + linkType: hard + +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"readdirp@npm:^2.2.1": + version: 2.2.1 + resolution: "readdirp@npm:2.2.1" + dependencies: + graceful-fs: ^4.1.11 + micromatch: ^3.1.10 + readable-stream: ^2.0.2 + checksum: 3879b20f1a871e0e004a14fbf1776e65ee0b746a62f5a416010808b37c272ac49b023c47042c7b1e281cba75a449696635bc64c397ed221ea81d853a8f2ed79a + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: ^2.2.1 + checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + languageName: node + linkType: hard + +"real-require@npm:^0.1.0": + version: 0.1.0 + resolution: "real-require@npm:0.1.0" + checksum: 96745583ed4f82cd5c6a6af012fd1d3c6fc2f13ae1bcff1a3c4f8094696013a1a07c82c5aa66a403d7d4f84949fc2203bc927c7ad120caad125941ca2d7e5e8e + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: ^4.0.0 + strip-indent: ^3.0.0 + checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.13.11": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 + languageName: node + linkType: hard + +"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": + version: 1.0.2 + resolution: "regex-not@npm:1.0.2" + dependencies: + extend-shallow: ^3.0.2 + safe-regex: ^1.1.0 + checksum: 3081403de79559387a35ef9d033740e41818a559512668cef3d12da4e8a29ef34ee13c8ed1256b07e27ae392790172e8a15c8a06b72962fd4550476cde3d8f77 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + languageName: node + linkType: hard + +"regexpp@npm:^3.1.0": + version: 3.2.0 + resolution: "regexpp@npm:3.2.0" + checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419 + languageName: node + linkType: hard + +"repeat-element@npm:^1.1.2": + version: 1.1.4 + resolution: "repeat-element@npm:1.1.4" + checksum: 1edd0301b7edad71808baad226f0890ba709443f03a698224c9ee4f2494c317892dc5211b2ba8cbea7194a9ddbcac01e283bd66de0467ab24ee1fc1a3711d8a9 + languageName: node + linkType: hard + +"repeat-string@npm:^1.6.1": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"require-main-filename@npm:^2.0.0": + version: 2.0.0 + resolution: "require-main-filename@npm:2.0.0" + checksum: e9e294695fea08b076457e9ddff854e81bffbe248ed34c1eec348b7abbd22a0d02e8d75506559e2265e96978f3c4720bd77a6dad84755de8162b357eb6c778c7 + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + +"resolve-url@npm:^0.2.1": + version: 0.2.1 + resolution: "resolve-url@npm:0.2.1" + checksum: 7b7035b9ed6e7bc7d289e90aef1eab5a43834539695dac6416ca6e91f1a94132ae4796bbd173cdacfdc2ade90b5f38a3fb6186bebc1b221cd157777a23b9ad14 + languageName: node + linkType: hard + +"resolve@npm:^1.10.0, resolve@npm:^1.22.1": + version: 1.22.3 + resolution: "resolve@npm:1.22.3" + dependencies: + is-core-module: ^2.12.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.4": + version: 2.0.0-next.4 + resolution: "resolve@npm:2.0.0-next.4" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3 + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": + version: 1.22.3 + resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=07638b" + dependencies: + is-core-module: ^2.12.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 + languageName: node + linkType: hard + +"resolve@patch:resolve@^2.0.0-next.4#~builtin": + version: 2.0.0-next.4 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=07638b" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011 + languageName: node + linkType: hard + +"ret@npm:~0.1.10": + version: 0.1.15 + resolution: "ret@npm:0.1.15" + checksum: d76a9159eb8c946586567bd934358dfc08a36367b3257f7a3d7255fdd7b56597235af23c6afa0d7f0254159e8051f93c918809962ebd6df24ca2a83dbe4d4151 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"ripemd160@npm:^2.0.1": + version: 2.0.2 + resolution: "ripemd160@npm:2.0.2" + dependencies: + hash-base: ^3.0.0 + inherits: ^2.0.1 + checksum: 006accc40578ee2beae382757c4ce2908a826b27e2b079efdcd2959ee544ddf210b7b5d7d5e80467807604244e7388427330f5c6d4cd61e6edaddc5773ccc393 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-array-concat@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: f43cb98fe3b566327d0c09284de2b15fb85ae964a89495c1b1a5d50c7c8ed484190f4e5e71aacc167e16231940079b326f2c0807aea633d47cc7322f40a6b57f + languageName: node + linkType: hard + +"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + languageName: node + linkType: hard + +"safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safe-json-utils@npm:^1.1.1": + version: 1.1.1 + resolution: "safe-json-utils@npm:1.1.1" + checksum: f82a5833b7f6f25583c46520b3e158da3864d4f6f85b7cd68ec956ae7023395872e834d75f7f6216c109c546d10b6ee15c066d849f75ac2a7b86b8a041b4f01f + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-regex-test@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-regex: ^1.1.4 + checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + languageName: node + linkType: hard + +"safe-regex@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex@npm:1.1.0" + dependencies: + ret: ~0.1.10 + checksum: 9a8bba57c87a841f7997b3b951e8e403b1128c1a4fd1182f40cc1a20e2d490593d7c2a21030fadfea320c8e859219019e136f678c6689ed5960b391b822f01d5 + languageName: node + linkType: hard + +"safe-stable-stringify@npm:^2.1.0": + version: 2.4.3 + resolution: "safe-stable-stringify@npm:2.4.3" + checksum: 3aeb64449706ee1f5ad2459fc99648b131d48e7a1fbb608d7c628020177512dc9d94108a5cb61bbc953985d313d0afea6566d243237743e02870490afef04b43 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"saxes@npm:^5.0.1": + version: 5.0.1 + resolution: "saxes@npm:5.0.1" + dependencies: + xmlchars: ^2.2.0 + checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + +"seedrandom@npm:^3.0.5": + version: 3.0.5 + resolution: "seedrandom@npm:3.0.5" + checksum: 728b56bc3bc1b9ddeabd381e449b51cb31bdc0aa86e27fcd0190cea8c44613d5bcb2f6bb63ed79f78180cbe791c20b8ec31a9627f7b7fc7f476fd2bdb7e2da9f + languageName: node + linkType: hard + +"semver@npm:2 || 3 || 4 || 5": + version: 5.7.2 + resolution: "semver@npm:5.7.2" + bin: + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 + languageName: node + linkType: hard + +"semver@npm:^6.3.0": + version: 6.3.0 + resolution: "semver@npm:6.3.0" + bin: + semver: ./bin/semver.js + checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 + languageName: node + linkType: hard + +"semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.7": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.5.0 + resolution: "semver@npm:7.5.0" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 2d266937756689a76f124ffb4c1ea3e1bbb2b263219f90ada8a11aebebe1280b13bb76cca2ca96bdee3dbc554cbc0b24752eb895b2a51577aa644427e9229f2b + languageName: node + linkType: hard + +send@latest: + version: 0.18.0 + resolution: "send@npm:0.18.0" + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + etag: ~1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: ~1.2.1 + statuses: 2.0.1 + checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 + languageName: node + linkType: hard + +"serialize-javascript@npm:6.0.0": + version: 6.0.0 + resolution: "serialize-javascript@npm:6.0.0" + dependencies: + randombytes: ^2.1.0 + checksum: 56f90b562a1bdc92e55afb3e657c6397c01a902c588c0fe3d4c490efdcc97dcd2a3074ba12df9e94630f33a5ce5b76a74784a7041294628a6f4306e0ec84bf93 + languageName: node + linkType: hard + +"serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "serve-index@npm:1.9.1" + dependencies: + accepts: ~1.3.4 + batch: 0.6.1 + debug: 2.6.9 + escape-html: ~1.0.3 + http-errors: ~1.6.2 + mime-types: ~2.1.17 + parseurl: ~1.3.2 + checksum: e2647ce13379485b98a53ba2ea3fbad4d44b57540d00663b02b976e426e6194d62ac465c0d862cb7057f65e0de8ab8a684aa095427a4b8612412eca0d300d22f + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"set-value@npm:^2.0.0, set-value@npm:^2.0.1": + version: 2.0.1 + resolution: "set-value@npm:2.0.1" + dependencies: + extend-shallow: ^2.0.1 + is-extendable: ^0.1.1 + is-plain-object: ^2.0.3 + split-string: ^3.0.1 + checksum: 09a4bc72c94641aeae950eb60dc2755943b863780fcc32e441eda964b64df5e3f50603d5ebdd33394ede722528bd55ed43aae26e9df469b4d32e2292b427b601 + languageName: node + linkType: hard + +"setprototypeof@npm:1.1.0": + version: 1.1.0 + resolution: "setprototypeof@npm:1.1.0" + checksum: 27cb44304d6c9e1a23bc6c706af4acaae1a7aa1054d4ec13c05f01a99fd4887109a83a8042b67ad90dbfcd100d43efc171ee036eb080667172079213242ca36e + languageName: node + linkType: hard + +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 + languageName: node + linkType: hard + +"sha.js@npm:^2.4.0": + version: 2.4.11 + resolution: "sha.js@npm:2.4.11" + dependencies: + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + bin: + sha.js: ./bin.js + checksum: ebd3f59d4b799000699097dadb831c8e3da3eb579144fd7eb7a19484cbcbb7aca3c68ba2bb362242eb09e33217de3b4ea56e4678184c334323eca24a58e3ad07 + languageName: node + linkType: hard + +"sha256@npm:^0.2.0": + version: 0.2.0 + resolution: "sha256@npm:0.2.0" + dependencies: + convert-hex: ~0.1.0 + convert-string: ~0.1.0 + checksum: bed2d6507279e34ad2c517d18fbe871900244aca425a298d6ba10115e9beb49a8028296aeff5441b6db4902503a47198138e23ba1be440761a84288c93101ca1 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.4 + resolution: "side-channel@npm:1.0.4" + dependencies: + call-bind: ^1.0.0 + get-intrinsic: ^1.0.2 + object-inspect: ^1.9.0 + checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"snapdragon-node@npm:^2.0.1": + version: 2.1.1 + resolution: "snapdragon-node@npm:2.1.1" + dependencies: + define-property: ^1.0.0 + isobject: ^3.0.0 + snapdragon-util: ^3.0.1 + checksum: 9bb57d759f9e2a27935dbab0e4a790137adebace832b393e350a8bf5db461ee9206bb642d4fe47568ee0b44080479c8b4a9ad0ebe3712422d77edf9992a672fd + languageName: node + linkType: hard + +"snapdragon-util@npm:^3.0.1": + version: 3.0.1 + resolution: "snapdragon-util@npm:3.0.1" + dependencies: + kind-of: ^3.2.0 + checksum: 684997dbe37ec995c03fd3f412fba2b711fc34cb4010452b7eb668be72e8811a86a12938b511e8b19baf853b325178c56d8b78d655305e5cfb0bb8b21677e7b7 + languageName: node + linkType: hard + +"snapdragon@npm:^0.8.1": + version: 0.8.2 + resolution: "snapdragon@npm:0.8.2" + dependencies: + base: ^0.11.1 + debug: ^2.2.0 + define-property: ^0.2.5 + extend-shallow: ^2.0.1 + map-cache: ^0.2.2 + source-map: ^0.5.6 + source-map-resolve: ^0.5.0 + use: ^3.1.0 + checksum: a197f242a8f48b11036563065b2487e9b7068f50a20dd81d9161eca6af422174fc158b8beeadbe59ce5ef172aa5718143312b3aebaae551c124b7824387c8312 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"sonic-boom@npm:^2.2.1": + version: 2.8.0 + resolution: "sonic-boom@npm:2.8.0" + dependencies: + atomic-sleep: ^1.0.0 + checksum: c7f9c89f931d7f60f8e0741551a729f0d81e6dc407a99420fc847a9a4c25af048a615b1188ab3c4f1fb3708fe4904973ddab6ebcc8ed5b78b50ab81a99045910 + languageName: node + linkType: hard + +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"source-map-resolve@npm:^0.5.0": + version: 0.5.3 + resolution: "source-map-resolve@npm:0.5.3" + dependencies: + atob: ^2.1.2 + decode-uri-component: ^0.2.0 + resolve-url: ^0.2.1 + source-map-url: ^0.4.0 + urix: ^0.1.0 + checksum: c73fa44ac00783f025f6ad9e038ab1a2e007cd6a6b86f47fe717c3d0765b4a08d264f6966f3bd7cd9dbcd69e4832783d5472e43247775b2a550d6f2155d24bae + languageName: node + linkType: hard + +"source-map-url@npm:^0.4.0": + version: 0.4.1 + resolution: "source-map-url@npm:0.4.1" + checksum: 64c5c2c77aff815a6e61a4120c309ae4cac01298d9bcbb3deb1b46a4dd4c46d4a1eaeda79ec9f684766ae80e8dc86367b89326ce9dd2b89947bd9291fc1ac08c + languageName: node + linkType: hard + +"source-map@npm:^0.5.6": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + +"source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: ^3.0.0 + spdx-license-ids: ^3.0.0 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.3.0 + resolution: "spdx-exceptions@npm:2.3.0" + checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: ^2.1.0 + spdx-license-ids: ^3.0.0 + checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.13 + resolution: "spdx-license-ids@npm:3.0.13" + checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + languageName: node + linkType: hard + +"split-on-first@npm:^1.0.0": + version: 1.1.0 + resolution: "split-on-first@npm:1.1.0" + checksum: 16ff85b54ddcf17f9147210a4022529b343edbcbea4ce977c8f30e38408b8d6e0f25f92cd35b86a524d4797f455e29ab89eb8db787f3c10708e0b47ebf528d30 + languageName: node + linkType: hard + +"split-string@npm:^3.0.1, split-string@npm:^3.0.2": + version: 3.1.0 + resolution: "split-string@npm:3.1.0" + dependencies: + extend-shallow: ^3.0.0 + checksum: ae5af5c91bdc3633628821bde92fdf9492fa0e8a63cf6a0376ed6afde93c701422a1610916f59be61972717070119e848d10dfbbd5024b7729d6a71972d2a84c + languageName: node + linkType: hard + +"split2@npm:^4.0.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d + languageName: node + linkType: hard + +"split@npm:0.3": + version: 0.3.3 + resolution: "split@npm:0.3.3" + dependencies: + through: 2 + checksum: 2e076634c9637cfdc54ab4387b6a243b8c33b360874a25adf6f327a5647f07cb3bf1c755d515248eb3afee4e382278d01f62c62d87263c118f28065b86f74f02 + languageName: node + linkType: hard + +"sponsored-transactions@workspace:.": + version: 0.0.0-use.local + resolution: "sponsored-transactions@workspace:." + dependencies: + "@concordium/browser-wallet-api-helpers": 2.4.0 + "@concordium/react-components": ^0.3.0 + "@concordium/web-sdk": ^3.4.0 + "@craftamap/esbuild-plugin-html": ^0.4.0 + "@thi.ng/leb128": ^2.1.18 + "@types/node": ^18.7.23 + "@types/react": ^18.0.9 + "@types/react-dom": ^18.0.5 + "@types/sha256": ^0.2.0 + "@typescript-eslint/eslint-plugin": ^5.20.0 + "@typescript-eslint/parser": ^5.20.0 + "@walletconnect/types": ^2.1.4 + cross-env: ^7.0.3 + esbuild: ^0.14.42 + esbuild-plugin-svgr: ^1.0.1 + eslint: 7 + eslint-config-airbnb: ^19.0.4 + eslint-config-airbnb-typescript: ^17.0.0 + eslint-config-prettier: ^8.5.0 + eslint-plugin-import: ^2.26.0 + eslint-plugin-jsx-a11y: ^6.5.1 + eslint-plugin-prettier: ^4.0.0 + eslint-plugin-react: ^7.29.4 + eslint-plugin-react-hooks: ^4.4.0 + fs: ^0.0.1-security + live-server: ^1.2.2 + mathjs: ^11.4.0 + moment: ^2.29.4 + prettier: ^2.6.2 + process: ^0.11.10 + react: ^18.1.0 + react-dom: ^18.1.0 + react-switch: ^7.0.0 + sha256: ^0.2.0 + stylelint: ^14.7.1 + stylelint-config-prettier: ^9.0.3 + stylelint-config-standard-scss: ^3.0.0 + stylelint-prettier: ^2.0.0 + stylelint-scss: ^4.2.0 + ts-node: ^10.8.0 + typescript: ^4.7.2 + languageName: unknown + linkType: soft + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 + languageName: node + linkType: hard + +"ssri@npm:^9.0.0": + version: 9.0.1 + resolution: "ssri@npm:9.0.1" + dependencies: + minipass: ^3.1.1 + checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb + languageName: node + linkType: hard + +"static-extend@npm:^0.1.1": + version: 0.1.2 + resolution: "static-extend@npm:0.1.2" + dependencies: + define-property: ^0.2.5 + object-copy: ^0.1.0 + checksum: 8657485b831f79e388a437260baf22784540417a9b29e11572c87735df24c22b84eda42107403a64b30861b2faf13df9f7fc5525d51f9d1d2303aba5cbf4e12c + languageName: node + linkType: hard + +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + +"statuses@npm:>= 1.4.0 < 2, statuses@npm:~1.5.0": + version: 1.5.0 + resolution: "statuses@npm:1.5.0" + checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c + languageName: node + linkType: hard + +"stream-combiner@npm:~0.0.4": + version: 0.0.4 + resolution: "stream-combiner@npm:0.0.4" + dependencies: + duplexer: ~0.1.1 + checksum: 844b622cfe8b9de45a6007404f613b60aaf85200ab9862299066204242f89a7c8033b1c356c998aa6cfc630f6cd9eba119ec1c6dc1f93e245982be4a847aee7d + languageName: node + linkType: hard + +"stream-shift@npm:^1.0.0": + version: 1.0.1 + resolution: "stream-shift@npm:1.0.1" + checksum: 59b82b44b29ec3699b5519a49b3cedcc6db58c72fb40c04e005525dfdcab1c75c4e0c180b923c380f204bed78211b9bad8faecc7b93dece4d004c3f6ec75737b + languageName: node + linkType: hard + +"strict-uri-encode@npm:^2.0.0": + version: 2.0.0 + resolution: "strict-uri-encode@npm:2.0.0" + checksum: eaac4cf978b6fbd480f1092cab8b233c9b949bcabfc9b598dd79a758f7243c28765ef7639c876fa72940dac687181b35486ea01ff7df3e65ce3848c64822c581 + languageName: node + linkType: hard + +"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^3.0.0, string-width@npm:^3.1.0": + version: 3.1.0 + resolution: "string-width@npm:3.1.0" + dependencies: + emoji-regex: ^7.0.1 + is-fullwidth-code-point: ^2.0.0 + strip-ansi: ^5.1.0 + checksum: 57f7ca73d201682816d573dc68bd4bb8e1dff8dc9fcf10470fdfc3474135c97175fec12ea6a159e67339b41e86963112355b64529489af6e7e70f94a7caf08b2 + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.8": + version: 4.0.8 + resolution: "string.prototype.matchall@npm:4.0.8" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + internal-slot: ^1.0.3 + regexp.prototype.flags: ^1.4.3 + side-channel: ^1.0.4 + checksum: 952da3a818de42ad1c10b576140a5e05b4de7b34b8d9dbf00c3ac8c1293e9c0f533613a39c5cda53e0a8221f2e710bc2150e730b1c2278d60004a8a35726efb6 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: ~5.1.0 + checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b + languageName: node + linkType: hard + +"strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.1.0, strip-ansi@npm:^5.2.0": + version: 5.2.0 + resolution: "strip-ansi@npm:5.2.0" + dependencies: + ansi-regex: ^4.1.0 + checksum: bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 + languageName: node + linkType: hard + +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: ^1.0.0 + checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"style-search@npm:^0.1.0": + version: 0.1.0 + resolution: "style-search@npm:0.1.0" + checksum: 3cfefe335033aad6d47da0725cb48f5db91a73935954c77eab77d9e415e6668cdb406da4a4f7ef9f1aca77853cf5ba7952c45e869caa5bd6439691d88098d468 + languageName: node + linkType: hard + +"stylelint-config-prettier@npm:^9.0.3": + version: 9.0.5 + resolution: "stylelint-config-prettier@npm:9.0.5" + peerDependencies: + stylelint: ">= 11.x < 15" + bin: + stylelint-config-prettier: bin/check.js + stylelint-config-prettier-check: bin/check.js + checksum: 3d04e463e0bb7e42a5ddec49eea6ef4ea07705d887e8a3ff1fcb82278a5e2bec1a36b8498ea7ed2d24878de29d7c94ac75b1d3ac4f8b19c3a84970595b29261f + languageName: node + linkType: hard + +"stylelint-config-recommended-scss@npm:^5.0.2": + version: 5.0.2 + resolution: "stylelint-config-recommended-scss@npm:5.0.2" + dependencies: + postcss-scss: ^4.0.2 + stylelint-config-recommended: ^6.0.0 + stylelint-scss: ^4.0.0 + peerDependencies: + stylelint: ^14.0.0 + checksum: e882bde8a0846c421e2662f9e7a9c2646120c492528f7ad715d927db6954b8a2499476de0792b15f0044217f72c81edc97afc640c5b4d7618a9f96dc7045e4c1 + languageName: node + linkType: hard + +"stylelint-config-recommended@npm:^6.0.0": + version: 6.0.0 + resolution: "stylelint-config-recommended@npm:6.0.0" + peerDependencies: + stylelint: ^14.0.0 + checksum: 103b3c122253a908f91f5728d39eff6fed3866157e29a6e550da051cfc207b0d159b7434e0806126e3c3939e6528a0a1cd5a1cf00b835dd49b3a18ba4a007fa1 + languageName: node + linkType: hard + +"stylelint-config-standard-scss@npm:^3.0.0": + version: 3.0.0 + resolution: "stylelint-config-standard-scss@npm:3.0.0" + dependencies: + stylelint-config-recommended-scss: ^5.0.2 + stylelint-config-standard: ^24.0.0 + peerDependencies: + stylelint: ^14.0.0 + checksum: b9be47e256e28e8f3e31ca51de53fc48d688b264f74d870b97c553cb3f799f3003a458d521644efc4feda0a1345da4e82d0595cfcba540dbb253f12c645234a0 + languageName: node + linkType: hard + +"stylelint-config-standard@npm:^24.0.0": + version: 24.0.0 + resolution: "stylelint-config-standard@npm:24.0.0" + dependencies: + stylelint-config-recommended: ^6.0.0 + peerDependencies: + stylelint: ^14.0.0 + checksum: 5993ede913d81410830639db054a7a3f5c87e56254368be45ce876321106fad1c11ee4cb77247049aaf22e283a393dd90d93dec8f796f8f139ed21eb86a9a168 + languageName: node + linkType: hard + +"stylelint-prettier@npm:^2.0.0": + version: 2.0.0 + resolution: "stylelint-prettier@npm:2.0.0" + dependencies: + prettier-linter-helpers: ^1.0.0 + peerDependencies: + prettier: ">=2.0.0" + stylelint: ">=14.0.0" + checksum: 6ce7628517a492e0c2e6104f654c9bc710f1aaf035c8b5274e187b68e8d510e70bae5ded2cb65df76aa01096460b9dfe02f844fea13bfba7e3dcca13baec2ff4 + languageName: node + linkType: hard + +"stylelint-scss@npm:^4.0.0, stylelint-scss@npm:^4.2.0": + version: 4.7.0 + resolution: "stylelint-scss@npm:4.7.0" + dependencies: + postcss-media-query-parser: ^0.2.3 + postcss-resolve-nested-selector: ^0.1.1 + postcss-selector-parser: ^6.0.11 + postcss-value-parser: ^4.2.0 + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + checksum: 7818e7dd402864ae27dda9ea28213e0b25454f3dbe1524abf894050e677686614f7ca26437d45db1af9a352cc78466320741e91cc8694f9271a672db609319d9 + languageName: node + linkType: hard + +"stylelint@npm:^14.7.1": + version: 14.16.1 + resolution: "stylelint@npm:14.16.1" + dependencies: + "@csstools/selector-specificity": ^2.0.2 + balanced-match: ^2.0.0 + colord: ^2.9.3 + cosmiconfig: ^7.1.0 + css-functions-list: ^3.1.0 + debug: ^4.3.4 + fast-glob: ^3.2.12 + fastest-levenshtein: ^1.0.16 + file-entry-cache: ^6.0.1 + global-modules: ^2.0.0 + globby: ^11.1.0 + globjoin: ^0.1.4 + html-tags: ^3.2.0 + ignore: ^5.2.1 + import-lazy: ^4.0.0 + imurmurhash: ^0.1.4 + is-plain-object: ^5.0.0 + known-css-properties: ^0.26.0 + mathml-tag-names: ^2.1.3 + meow: ^9.0.0 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.4.19 + postcss-media-query-parser: ^0.2.3 + postcss-resolve-nested-selector: ^0.1.1 + postcss-safe-parser: ^6.0.0 + postcss-selector-parser: ^6.0.11 + postcss-value-parser: ^4.2.0 + resolve-from: ^5.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + style-search: ^0.1.0 + supports-hyperlinks: ^2.3.0 + svg-tags: ^1.0.0 + table: ^6.8.1 + v8-compile-cache: ^2.3.0 + write-file-atomic: ^4.0.2 + bin: + stylelint: bin/stylelint.js + checksum: bc24050415e3c357a76d8ca2799e74ce31f33c9158b4086462512b0191db5d6a161b81ef35b064039c6eacf98a5553e45fca4c5f21eb4d45e7f1d44b2d226e9b + languageName: node + linkType: hard + +"supports-color@npm:8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-hyperlinks@npm:^2.3.0": + version: 2.3.0 + resolution: "supports-hyperlinks@npm:2.3.0" + dependencies: + has-flag: ^4.0.0 + supports-color: ^7.0.0 + checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"svg-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "svg-parser@npm:2.0.4" + checksum: b3de6653048212f2ae7afe4a423e04a76ec6d2d06e1bf7eacc618a7c5f7df7faa5105561c57b94579ec831fbbdbf5f190ba56a9205ff39ed13eabdf8ab086ddf + languageName: node + linkType: hard + +"svg-tags@npm:^1.0.0": + version: 1.0.0 + resolution: "svg-tags@npm:1.0.0" + checksum: 407e5ef87cfa2fb81c61d738081c2decd022ce13b922d035b214b49810630bf5d1409255a4beb3a940b77b32f6957806deff16f1bf0ce1ab11c7a184115a0b7f + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d + languageName: node + linkType: hard + +"table@npm:^6.0.9, table@npm:^6.8.1": + version: 6.8.1 + resolution: "table@npm:6.8.1" + dependencies: + ajv: ^8.0.1 + lodash.truncate: ^4.4.2 + slice-ansi: ^4.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.1.13 + resolution: "tar@npm:6.1.13" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^4.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"thread-stream@npm:^0.15.1": + version: 0.15.2 + resolution: "thread-stream@npm:0.15.2" + dependencies: + real-require: ^0.1.0 + checksum: 0547795a8f357ba1ac0dba29c71f965182e29e21752951a04a7167515ee37524bfba6c410f31e65a01a8d3e5b93400b812889aa09523e38ce4d744c894ffa6c0 + languageName: node + linkType: hard + +"through@npm:2, through@npm:~2.3, through@npm:~2.3.1": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"tiny-emitter@npm:^2.1.0": + version: 2.1.0 + resolution: "tiny-emitter@npm:2.1.0" + checksum: fbcfb5145751a0e3b109507a828eb6d6d4501352ab7bb33eccef46e22e9d9ad3953158870a6966a59e57ab7c3f9cfac7cab8521db4de6a5e757012f4677df2dd + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-object-path@npm:^0.3.0": + version: 0.3.0 + resolution: "to-object-path@npm:0.3.0" + dependencies: + kind-of: ^3.0.2 + checksum: 9425effee5b43e61d720940fa2b889623f77473d459c2ce3d4a580a4405df4403eec7be6b857455908070566352f9e2417304641ed158dda6f6a365fe3e66d70 + languageName: node + linkType: hard + +"to-regex-range@npm:^2.1.0": + version: 2.1.1 + resolution: "to-regex-range@npm:2.1.1" + dependencies: + is-number: ^3.0.0 + repeat-string: ^1.6.1 + checksum: 46093cc14be2da905cc931e442d280b2e544e2bfdb9a24b3cf821be8d342f804785e5736c108d5be026021a05d7b38144980a61917eee3c88de0a5e710e10320 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + +"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2": + version: 3.0.2 + resolution: "to-regex@npm:3.0.2" + dependencies: + define-property: ^2.0.2 + extend-shallow: ^3.0.2 + regex-not: ^1.0.2 + safe-regex: ^1.1.0 + checksum: 4ed4a619059b64e204aad84e4e5f3ea82d97410988bcece7cf6cbfdbf193d11bff48cf53842d88b8bb00b1bfc0d048f61f20f0709e6f393fd8fe0122662d9db4 + languageName: node + linkType: hard + +"toggle-selection@npm:^1.0.6": + version: 1.0.6 + resolution: "toggle-selection@npm:1.0.6" + checksum: a90dc80ed1e7b18db8f4e16e86a5574f87632dc729cfc07d9ea3ced50021ad42bb4e08f22c0913e0b98e3837b0b717e0a51613c65f30418e21eb99da6556a74c + languageName: node + linkType: hard + +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.0.0": + version: 4.1.2 + resolution: "tough-cookie@npm:4.1.2" + dependencies: + psl: ^1.1.33 + punycode: ^2.1.1 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: a7359e9a3e875121a84d6ba40cc184dec5784af84f67f3a56d1d2ae39b87c0e004e6ba7c7331f9622a7d2c88609032473488b28fe9f59a1fec115674589de39a + languageName: node + linkType: hard + +"tr46@npm:^2.1.0": + version: 2.1.0 + resolution: "tr46@npm:2.1.0" + dependencies: + punycode: ^2.1.1 + checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: ^2.1.1 + checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + +"trim-newlines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-newlines@npm:3.0.1" + checksum: b530f3fadf78e570cf3c761fb74fef655beff6b0f84b29209bac6c9622db75ad1417f4a7b5d54c96605dcd72734ad44526fef9f396807b90839449eb543c6206 + languageName: node + linkType: hard + +"ts-node@npm:^10.8.0, ts-node@npm:^10.9.1": + version: 10.9.1 + resolution: "ts-node@npm:10.9.1" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.14.1": + version: 3.14.2 + resolution: "tsconfig-paths@npm:3.14.2" + dependencies: + "@types/json5": ^0.0.29 + json5: ^1.0.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447 + languageName: node + linkType: hard + +"tslib@npm:1.14.1, tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tslib@npm:^2.5.0": + version: 2.5.0 + resolution: "tslib@npm:2.5.0" + checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + +"type-check@npm:~0.3.2": + version: 0.3.2 + resolution: "type-check@npm:0.3.2" + dependencies: + prelude-ls: ~1.1.2 + checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 + languageName: node + linkType: hard + +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 + languageName: node + linkType: hard + +"type-fest@npm:^0.18.0": + version: 0.18.1 + resolution: "type-fest@npm:0.18.1" + checksum: e96dcee18abe50ec82dab6cbc4751b3a82046da54c52e3b2d035b3c519732c0b3dd7a2fa9df24efd1a38d953d8d4813c50985f215f1957ee5e4f26b0fe0da395 + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + +"type-fest@npm:^0.6.0": + version: 0.6.0 + resolution: "type-fest@npm:0.6.0" + checksum: b2188e6e4b21557f6e92960ec496d28a51d68658018cba8b597bd3ef757721d1db309f120ae987abeeda874511d14b776157ff809f23c6d1ce8f83b9b2b7d60f + languageName: node + linkType: hard + +"type-fest@npm:^0.8.1": + version: 0.8.1 + resolution: "type-fest@npm:0.8.1" + checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 + languageName: node + linkType: hard + +"typed-array-buffer@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-buffer@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + is-typed-array: ^1.1.10 + checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-offset@npm:1.0.0" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + +"typed-function@npm:^4.1.0": + version: 4.1.0 + resolution: "typed-function@npm:4.1.0" + checksum: 5d512a13501028abbf8676299b4f92209cb4a90fb9b002330494bfd2451b1f9ecde866dbd51b2e599f9ff3521349489b173df050528521d28a38cc071b8d5b8f + languageName: node + linkType: hard + +"typescript@npm:^4.7.2": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + languageName: node + linkType: hard + +"typescript@patch:typescript@^4.7.2#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=bda367" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 2eee5c37cad4390385db5db5a8e81470e42e8f1401b0358d7390095d6f681b410f2c4a0c496c6ff9ebd775423c7785cdace7bcdad76c7bee283df3d9718c0f20 + languageName: node + linkType: hard + +"uint8arrays@npm:^3.0.0, uint8arrays@npm:^3.1.0": + version: 3.1.1 + resolution: "uint8arrays@npm:3.1.1" + dependencies: + multiformats: ^9.4.2 + checksum: b93b6c3f0a526b116799f3a3409bd4b5d5553eb3e73e485998ece7974742254fbc0d2f7988dd21ac86c4b974552f45d9ae9cf9cba9647e529f8eb1fdd2ed84d0 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "unbox-primitive@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + has-bigints: ^1.0.2 + has-symbols: ^1.0.3 + which-boxed-primitive: ^1.0.2 + checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + languageName: node + linkType: hard + +"union-value@npm:^1.0.0": + version: 1.0.1 + resolution: "union-value@npm:1.0.1" + dependencies: + arr-union: ^3.1.0 + get-value: ^2.0.6 + is-extendable: ^0.1.1 + set-value: ^2.0.1 + checksum: a3464097d3f27f6aa90cf103ed9387541bccfc006517559381a10e0dffa62f465a9d9a09c9b9c3d26d0f4cbe61d4d010e2fbd710fd4bf1267a768ba8a774b0ba + languageName: node + linkType: hard + +"unique-filename@npm:^2.0.0": + version: 2.0.1 + resolution: "unique-filename@npm:2.0.1" + dependencies: + unique-slug: ^3.0.0 + checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f + languageName: node + linkType: hard + +"unique-slug@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-slug@npm:3.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"unix-crypt-td-js@npm:^1.1.4": + version: 1.1.4 + resolution: "unix-crypt-td-js@npm:1.1.4" + checksum: c1bfcd699fa0fa15eac087760e34fdf7e2e686de1c40dde7f550c2429389fd7ef68bf83ce804ce7882551573330832aae32e80be3ce991f7080aabd98f8bd554 + languageName: node + linkType: hard + +"unpipe@npm:~1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + languageName: node + linkType: hard + +"unset-value@npm:^1.0.0": + version: 1.0.0 + resolution: "unset-value@npm:1.0.0" + dependencies: + has-value: ^0.3.1 + isobject: ^3.0.0 + checksum: 5990ecf660672be2781fc9fb322543c4aa592b68ed9a3312fa4df0e9ba709d42e823af090fc8f95775b4cd2c9a5169f7388f0cec39238b6d0d55a69fc2ab6b29 + languageName: node + linkType: hard + +"upath@npm:^1.1.1": + version: 1.2.0 + resolution: "upath@npm:1.2.0" + checksum: 4c05c094797cb733193a0784774dbea5b1889d502fc9f0572164177e185e4a59ba7099bf0b0adf945b232e2ac60363f9bf18aac9b2206fb99cbef971a8455445 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.10": + version: 1.0.10 + resolution: "update-browserslist-db@npm:1.0.10" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + browserslist-lint: cli.js + checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"urix@npm:^0.1.0": + version: 0.1.0 + resolution: "urix@npm:0.1.0" + checksum: 4c076ecfbf3411e888547fe844e52378ab5ada2d2f27625139011eada79925e77f7fbf0e4016d45e6a9e9adb6b7e64981bd49b22700c7c401c5fc15f423303b3 + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + +"use@npm:^3.1.0": + version: 3.1.1 + resolution: "use@npm:3.1.1" + checksum: 08a130289f5238fcbf8f59a18951286a6e660d17acccc9d58d9b69dfa0ee19aa038e8f95721b00b432c36d1629a9e32a464bf2e7e0ae6a244c42ddb30bdd8b33 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 + languageName: node + linkType: hard + +"uuid@npm:^3.0.0": + version: 3.4.0 + resolution: "uuid@npm:3.4.0" + bin: + uuid: ./bin/uuid + checksum: 58de2feed61c59060b40f8203c0e4ed7fd6f99d42534a499f1741218a1dd0c129f4aa1de797bcf822c8ea5da7e4137aa3673431a96dae729047f7aca7b27866f + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + languageName: node + linkType: hard + +"v8-compile-cache@npm:^2.0.3, v8-compile-cache@npm:^2.3.0": + version: 2.3.0 + resolution: "v8-compile-cache@npm:2.3.0" + checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.1": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: ^3.0.0 + spdx-expression-parse: ^3.0.0 + checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad + languageName: node + linkType: hard + +"vary@npm:^1": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b + languageName: node + linkType: hard + +"w3c-hr-time@npm:^1.0.2": + version: 1.0.2 + resolution: "w3c-hr-time@npm:1.0.2" + dependencies: + browser-process-hrtime: ^1.0.0 + checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^2.0.0": + version: 2.0.0 + resolution: "w3c-xmlserializer@npm:2.0.0" + dependencies: + xml-name-validator: ^3.0.0 + checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 + languageName: node + linkType: hard + +"webidl-conversions@npm:^6.1.0": + version: 6.1.0 + resolution: "webidl-conversions@npm:6.1.0" + checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + +"websocket-driver@npm:>=0.5.1": + version: 0.7.4 + resolution: "websocket-driver@npm:0.7.4" + dependencies: + http-parser-js: ">=0.5.1" + safe-buffer: ">=5.1.0" + websocket-extensions: ">=0.1.1" + checksum: fffe5a33fe8eceafd21d2a065661d09e38b93877eae1de6ab5d7d2734c6ed243973beae10ae48c6613cfd675f200e5a058d1e3531bc9e6c5d4f1396ff1f0bfb9 + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 5976835e68a86afcd64c7a9762ed85f2f27d48c488c707e67ba85e717b90fa066b98ab33c744d64255c9622d349eedecf728e65a5f921da71b58d0e9591b9038 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^1.0.5": + version: 1.0.5 + resolution: "whatwg-encoding@npm:1.0.5" + dependencies: + iconv-lite: 0.4.24 + checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^2.3.0": + version: 2.3.0 + resolution: "whatwg-mimetype@npm:2.3.0" + checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: ^3.0.0 + webidl-conversions: ^7.0.0 + checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + +"whatwg-url@npm:^9.0.0": + version: 9.1.0 + resolution: "whatwg-url@npm:9.1.0" + dependencies: + tr46: ^2.1.0 + webidl-conversions: ^6.1.0 + checksum: cfee81bb7f87036e1151da15cefd3076fa97a4a4a658c4b58f6e74891acf25f180aa955e761cda77995f6e260b8dc3c4326ebc83d539ed978a50062c6b3bd0d1 + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + dependencies: + is-bigint: ^1.0.1 + is-boolean-object: ^1.1.0 + is-number-object: ^1.0.4 + is-string: ^1.0.5 + is-symbol: ^1.0.3 + checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + languageName: node + linkType: hard + +"which-module@npm:^2.0.0": + version: 2.0.0 + resolution: "which-module@npm:2.0.0" + checksum: 809f7fd3dfcb2cdbe0180b60d68100c88785084f8f9492b0998c051d7a8efe56784492609d3f09ac161635b78ea29219eb1418a98c15ce87d085bce905705c9c + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11": + version: 1.1.11 + resolution: "which-typed-array@npm:1.1.11" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + checksum: 711ffc8ef891ca6597b19539075ec3e08bb9b4c2ca1f78887e3c07a977ab91ac1421940505a197758fb5939aa9524976d0a5bbcac34d07ed6faa75cedbb17206 + languageName: node + linkType: hard + +"which@npm:^1.3.1": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": + version: 1.2.3 + resolution: "word-wrap@npm:1.2.3" + checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f + languageName: node + linkType: hard + +"workerpool@npm:6.2.1": + version: 6.2.1 + resolution: "workerpool@npm:6.2.1" + checksum: c2c6eebbc5225f10f758d599a5c016fa04798bcc44e4c1dffb34050cd361d7be2e97891aa44419e7afe647b1f767b1dc0b85a5e046c409d890163f655028b09d + languageName: node + linkType: hard + +"wrap-ansi@npm:^5.1.0": + version: 5.1.0 + resolution: "wrap-ansi@npm:5.1.0" + dependencies: + ansi-styles: ^3.2.0 + string-width: ^3.0.0 + strip-ansi: ^5.0.0 + checksum: 9b48c862220e541eb0daa22661b38b947973fc57054e91be5b0f2dcc77741a6875ccab4ebe970a394b4682c8dfc17e888266a105fb8b0a9b23c19245e781ceae + languageName: node + linkType: hard + +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^3.0.7 + checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c + languageName: node + linkType: hard + +"ws@npm:^7.5.1": + version: 7.5.9 + resolution: "ws@npm:7.5.9" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 + languageName: node + linkType: hard + +"ws@npm:^8.0.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + languageName: node + linkType: hard + +"xml-name-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "xml-name-validator@npm:3.0.0" + checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 + languageName: node + linkType: hard + +"y18n@npm:^4.0.0": + version: 4.0.3 + resolution: "y18n@npm:4.0.3" + checksum: 014dfcd9b5f4105c3bb397c1c8c6429a9df004aa560964fb36732bfb999bfe83d45ae40aeda5b55d21b1ee53d8291580a32a756a443e064317953f08025b1aa4 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + +"yargs-parser@npm:20.2.4": + version: 20.2.4 + resolution: "yargs-parser@npm:20.2.4" + checksum: d251998a374b2743a20271c2fd752b9fbef24eb881d53a3b99a7caa5e8227fcafd9abf1f345ac5de46435821be25ec12189a11030c12ee6481fef6863ed8b924 + languageName: node + linkType: hard + +"yargs-parser@npm:^13.1.2": + version: 13.1.2 + resolution: "yargs-parser@npm:13.1.2" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: c8bb6f44d39a4acd94462e96d4e85469df865de6f4326e0ab1ac23ae4a835e5dd2ddfe588317ebf80c3a7e37e741bd5cb0dc8d92bcc5812baefb7df7c885e86b + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 + languageName: node + linkType: hard + +"yargs-unparser@npm:2.0.0": + version: 2.0.0 + resolution: "yargs-unparser@npm:2.0.0" + dependencies: + camelcase: ^6.0.0 + decamelize: ^4.0.0 + flat: ^5.0.2 + is-plain-obj: ^2.1.0 + checksum: 68f9a542c6927c3768c2f16c28f71b19008710abd6b8f8efbac6dcce26bbb68ab6503bed1d5994bdbc2df9a5c87c161110c1dfe04c6a3fe5c6ad1b0e15d9a8a3 + languageName: node + linkType: hard + +"yargs@npm:16.2.0, yargs@npm:^16.2.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: ^7.0.2 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.0 + y18n: ^5.0.5 + yargs-parser: ^20.2.2 + checksum: b14afbb51e3251a204d81937c86a7e9d4bdbf9a2bcee38226c900d00f522969ab675703bee2a6f99f8e20103f608382936034e64d921b74df82b63c07c5e8f59 + languageName: node + linkType: hard + +"yargs@npm:^13.2.4": + version: 13.3.2 + resolution: "yargs@npm:13.3.2" + dependencies: + cliui: ^5.0.0 + find-up: ^3.0.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^3.0.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^13.1.2 + checksum: 75c13e837eb2bb25717957ba58d277e864efc0cca7f945c98bdf6477e6ec2f9be6afa9ed8a876b251a21423500c148d7b91e88dee7adea6029bdec97af1ef3e8 + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard