diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1ab87a2a..5defcfe5 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -2,7 +2,7 @@ FROM --platform=linux/amd64 node:lts-bookworm-slim SHELL ["/bin/bash", "-c"] ENV NVM_DIR=/root/.nvm -ENV NODE_VERSION=18.19.0 +ENV NODE_VERSION=22.15.0 RUN apt update && apt install -y curl bash git tar gzip libc++-dev jq python3 build-essential diff --git a/.env b/.env new file mode 100644 index 00000000..f87cbb54 --- /dev/null +++ b/.env @@ -0,0 +1,4 @@ +L1_URL=https://ethereum-sepolia-rpc.publicnode.com +NODE_URL="https://aztec-alpha-testnet-fullnode.zkv.xyz" # testnet + +L1_CHAIN_ID="11155111" # Sepolia diff --git a/.env-example b/.env-example new file mode 100644 index 00000000..98571a58 --- /dev/null +++ b/.env-example @@ -0,0 +1,5 @@ +L1_URL=https://ethereum-sepolia-rpc.publicnode.com +BOOTNODE="http://34.107.66.170/" # testnet + +# L1_CHAIN_ID="1337" # Devent +L1_CHAIN_ID="11155111" # Sepolia \ No newline at end of file diff --git a/.github/scripts/update_contract.sh b/.github/scripts/update_contract.sh index 2a2c67cd..c6d5d147 100755 --- a/.github/scripts/update_contract.sh +++ b/.github/scripts/update_contract.sh @@ -7,7 +7,7 @@ echo "version tag: $version_tag" nargo_file_path="$copy_to_file_path/Nargo.toml" repo_url="https://github.com/AztecProtocol/aztec-packages.git" -contracts_path="noir-projects/noir-contracts/contracts" +contracts_path="noir-projects/noir-contracts/contracts/app" # Check if the file exists if [ ! -f "$nargo_file_path" ]; then diff --git a/.github/workflows/testnet_scripts.yaml b/.github/workflows/testnet_scripts.yaml new file mode 100644 index 00000000..4c9a92b2 --- /dev/null +++ b/.github/workflows/testnet_scripts.yaml @@ -0,0 +1,49 @@ +on: + push: + branches: + - testnet + pull_request: + branches: + - testnet + +jobs: + setup-and-run: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '22' + cache: 'yarn' # Optional: cache dependencies for faster builds + + - name: Set up Docker + uses: docker/setup-buildx-action@v2 + + - name: Install Aztec CLI + run: | + curl -s https://install.aztec.network > tmp.sh + bash tmp.sh <<< yes "yes" + + - name: Update path + run: echo "/home/runner/.aztec/bin" >> $GITHUB_PATH + + - name: Set Aztec version and start sandbox + run: | + VERSION=0.87.4 aztec-up + aztec start --sandbox & + + - name: Install project dependencies + run: yarn + + - name: Compile, generate code, and run tests + run: script -e -c "${AZTEC_NARGO:-aztec-nargo} compile" + + - name: Codegen + run: script -e -c "aztec codegen target --outdir src/artifacts" + + - name: Run scripts + run: script -e -c "yarn deploy && yarn deploy-account && yarn fees && yarn multiple-pxe" diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index b3a47238..1dab91e5 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -28,13 +28,13 @@ jobs: - name: Set Aztec version and start sandbox run: | - VERSION=0.84.0 aztec-up - aztec start --sandbox & + VERSION=0.84.0-alpha-testnet.1 aztec-up + aztec start --sandbox --no-pxe & - name: Install project dependencies run: yarn - - name: Compile, generate code, and run tests + - name: Compile run: script -e -c "${AZTEC_NARGO:-aztec-nargo} compile" - name: Codegen @@ -43,8 +43,9 @@ jobs: - name: Change ownership # to get around Docker issues run: sudo chown -R $(whoami) ~/nargo && sudo chown -R $(whoami) ~/nargo/github.com - - name: Run tests - run: script -e -c "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --runInBand --config jest.integration.config.json && aztec test" + - name: Start PXE + run: | + aztec start --port 8081 --pxe --pxe.nodeUrl=http://localhost:8080/ --pxe.proverEnabled false & - name: Run scripts run: script -e -c "yarn deploy && yarn deploy-account && yarn fees" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 4a824c1c..608072f8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ log/ .vscode .DS_Store codegenCache.json +store/* diff --git a/Nargo.toml b/Nargo.toml index 0e5e5d55..42b5707e 100644 --- a/Nargo.toml +++ b/Nargo.toml @@ -5,4 +5,4 @@ authors = [ "" ] compiler_version = ">=0.18.0" [dependencies] -aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v0.84.0", directory = "noir-projects/aztec-nr/aztec" } +aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v0.87.4", directory = "noir-projects/aztec-nr/aztec" } diff --git a/README.md b/README.md index 31aeb380..7cee3b90 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ # Aztec Starter -This repo is meant to be a starting point for writing Aztec contracts and tests. +This repo is meant to be a starting point for writing Aztec contracts and tests, specifically on the Aztec testnet. You can find the **Easy Private Voting contract** in `./src/main.nr`. A simple integration test is in `./src/test/index.test.ts`. @@ -28,7 +28,7 @@ The corresponding tutorial can be found in the [Aztec docs here](https://docs.az ## ๐Ÿš€ **Getting Started** -Use **Node.js version 18.19.0**. +Use **Node.js version 22.15.0**. [Start your codespace from the codespace dropdown](https://docs.github.com/en/codespaces/getting-started/quickstart). @@ -41,24 +41,13 @@ bash -i <(curl -s https://install.aztec.network) Install the correct version of the toolkit with: ```bash -aztec-up 0.84.0 -``` - -Start the sandbox with: - -```bash -aztec start --sandbox +aztec-up 0.87.4 ``` --- ## ๐Ÿ“ฆ **Install Packages** -We need to ignore node version warnings (a temporary fix): - -```bash -YARN_IGNORE_ENGINES=true yarn install -``` --- @@ -86,23 +75,22 @@ yarn codegen --- -## ๐Ÿงช **Test** +:warning: Tests and scripts set up and run the Private Execution Environment (PXE) and store PXE data in the `./store` directory. If you restart the sandbox, you will need to delete the `./store` directory to avoid errors. -**Make sure the sandbox is running before running tests.** +## ๐Ÿงช **Test** -```bash -aztec start --sandbox -``` +You don't want to run tests against testnet. This will take a long time. Run tests against the sandbox, as described on the [main branch](https://github.com/AztecProtocol/aztec-starter). -Then test with: +--- -```bash -yarn test -``` +## Scripts -Testing will run the **TypeScript tests** defined in `index.test.ts` inside `./src/test`, as well as the [Aztec Testing eXecution Environment (TXE)](https://docs.aztec.network/developers/guides/smart_contracts/testing) tests defined in [`first.nr`](./src/test/first.nr) (imported in the contract file with `mod test;`). +You can find a handful of scripts in the `./scripts` folder. -Note: The Typescript tests spawn an instance of the sandbox to test against, and close it once the TS tests are complete. +- `./scripts/deploy-accounts.ts` is an example of how to deploy a schnorr account. +- `./scripts/deploy.ts` is an example of how to deploy a contract. +- `./scripts/fees.ts` is an example of how to pay for a contract deployment using various fee payment methods. +- `./scripts/multiple_pxe.ts` is an example of how to deploy a contract from one PXE instance and interact with it from another. --- diff --git a/package.json b/package.json index 5b0b465e..6c21c695 100644 --- a/package.json +++ b/package.json @@ -10,23 +10,29 @@ "scripts": { "fees": "node --loader ts-node/esm scripts/fees.ts", "clean": "rm -rf ./src/artifacts ./target", + "clear-store": "rm -rf ./store", "codegen": "aztec codegen target --outdir src/artifacts", "compile": "${AZTEC_NARGO:-aztec-nargo} compile", - "deploy": "node --loader ts-node/esm scripts/deploy-contract.ts", - "deploy-account": "node --loader ts-node/esm scripts/deploy-account.ts", - "get-block": "node --loader ts-node/esm scripts/getBlock.ts", + "deploy": "node --loader ts-node/esm scripts/deploy_contract.ts", + "deploy-account": "node --loader ts-node/esm scripts/deploy_account.ts", + "get-block": "node --loader ts-node/esm scripts/get_block.ts", + "multiple-pxe": "node --loader ts-node/esm scripts/multiple_pxe.ts", "test": "yarn test:js && yarn test:nr", - "test:js": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --runInBand --config jest.integration.config.json", + "test:js": " rm -rf store/pxe && NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --runInBand --config jest.integration.config.json", "test:nr": "aztec test", - "update": "aztec update --contract . && ./.github/scripts/update_contract.sh $(grep -oP 'tag\\s*=\\s*\"\\K[^\"]+' \"Nargo.toml\" | head -1) && yarn && yarn update-readme-version", + "update": "./.github/scripts/update_contract.sh $(grep -oP 'tag\\s*=\\s*\"\\K[^\"]+' \"Nargo.toml\" | head -1) && yarn && yarn update-readme-version", "update-readme-version": "node ./.github/scripts/update-readme-version.js" }, "dependencies": { - "@aztec/accounts": "0.84.0", - "@aztec/aztec.js": "0.84.0", - "@aztec/noir-contracts.js": "0.84.0", - "@aztec/stdlib": "0.84.0", - "@types/node": "^22.5.1" + "@aztec/accounts": "0.87.4", + "@aztec/aztec.js": "0.87.4", + "@aztec/noir-contracts.js": "0.87.4", + "@aztec/protocol-contracts": "0.87.4", + "@aztec/pxe": "0.87.4", + "@aztec/stdlib": "0.87.4", + "@types/dotenv": "^8.2.3", + "@types/node": "^22.5.1", + "dotenv": "^16.4.7" }, "devDependencies": { "@types/jest": "^29.5.11", diff --git a/scripts/deploy-account.ts b/scripts/deploy-account.ts deleted file mode 100644 index e5bed120..00000000 --- a/scripts/deploy-account.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { AccountWallet, CompleteAddress, createLogger, Fr, PXE, waitForPXE, createPXEClient, Logger } from "@aztec/aztec.js"; -import { getSchnorrAccount } from '@aztec/accounts/schnorr'; -import { deriveSigningKey } from '@aztec/stdlib/keys'; -import { getInitialTestAccountsWallets } from "@aztec/accounts/testing"; -import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee/testing"; -import { getDeployedSponsoredFPCAddress } from "../src/utils/sponsored_fpc.js"; - -const setupSandbox = async () => { - const { PXE_URL = 'http://localhost:8080' } = process.env; - const pxe = await createPXEClient(PXE_URL); - await waitForPXE(pxe); - return pxe; -}; - -async function main() { - - let pxe: PXE; - let wallets: AccountWallet[] = []; - let accounts: CompleteAddress[] = []; - let logger: Logger; - - logger = createLogger('aztec:aztec-starter'); - - pxe = await setupSandbox(); - wallets = await getInitialTestAccountsWallets(pxe); - const deployedSponseredFPC = await getDeployedSponsoredFPCAddress(pxe); - const sponsoredPaymentMethod = new SponsoredFeePaymentMethod(deployedSponseredFPC); - - let secretKey = Fr.random(); - let salt = Fr.random(); - - let schnorrAccount = await getSchnorrAccount(pxe, secretKey, deriveSigningKey(secretKey), salt); - let tx = await schnorrAccount.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait(); - let wallet = await schnorrAccount.getWallet(); - - logger.info(`Schnorr account deployed at: ${wallet.getAddress()}`); -} - -main(); diff --git a/scripts/deploy-contract.ts b/scripts/deploy-contract.ts deleted file mode 100644 index e51004bc..00000000 --- a/scripts/deploy-contract.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { EasyPrivateVotingContract } from "../src/artifacts/EasyPrivateVoting.js" -import { AccountWallet, createLogger, PXE, waitForPXE, createPXEClient, Logger } from "@aztec/aztec.js"; -import { getInitialTestAccountsWallets } from "@aztec/accounts/testing"; -import { TokenContract } from "@aztec/noir-contracts.js/Token" - -const setupSandbox = async () => { - const { PXE_URL = 'http://localhost:8080' } = process.env; - const pxe = await createPXEClient(PXE_URL); - await waitForPXE(pxe); - return pxe; -}; - -async function main() { - - let pxe: PXE; - let wallets: AccountWallet[] = []; - let logger: Logger; - - logger = createLogger('aztec:aztec-starter'); - - pxe = await setupSandbox(); - wallets = await getInitialTestAccountsWallets(pxe); - - const votingContract = await EasyPrivateVotingContract.deploy(wallets[0], wallets[0].getAddress()).send().deployed(); - logger.info(`Voting Contract deployed at: ${votingContract.address}`); -} - -main(); diff --git a/scripts/deploy_account.ts b/scripts/deploy_account.ts new file mode 100644 index 00000000..b944dc01 --- /dev/null +++ b/scripts/deploy_account.ts @@ -0,0 +1,12 @@ +import { createLogger, Logger } from "@aztec/aztec.js"; +import { setupPXE } from "../src/utils/setup_pxe.js"; +import { deploySchnorrAccount } from "../src/utils/deploy_account.js"; + +export async function deployAccount() { + let logger: Logger; + logger = createLogger('aztec:aztec-starter'); + const pxe = await setupPXE() + await deploySchnorrAccount(pxe); +} + +deployAccount(); \ No newline at end of file diff --git a/scripts/deploy_contract.ts b/scripts/deploy_contract.ts new file mode 100644 index 00000000..dbc384bd --- /dev/null +++ b/scripts/deploy_contract.ts @@ -0,0 +1,30 @@ +import { EasyPrivateVotingContract } from "../src/artifacts/EasyPrivateVoting.js" +import { createLogger, PXE, Logger, SponsoredFeePaymentMethod, Fr } from "@aztec/aztec.js"; +import { TokenContract } from "@aztec/noir-contracts.js/Token" +import { setupPXE } from "../src/utils/setup_pxe.js"; +import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; +import { deploySchnorrAccount } from "../src/utils/deploy_account.js"; + +async function main() { + + let pxe: PXE; + let logger: Logger; + + logger = createLogger('aztec:aztec-starter'); + + pxe = await setupPXE(); + + const sponsoredFPC = await getSponsoredFPCInstance(); + await pxe.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + const sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); + + let accountManager = await deploySchnorrAccount(pxe); + const wallet = await accountManager.getWallet(); + const address = await accountManager.getAddress(); + + const votingContract = await EasyPrivateVotingContract.deploy(wallet, address).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).deployed({timeout: 120000}); + logger.info(`Voting Contract deployed at: ${votingContract.address}`); +} + +main(); \ No newline at end of file diff --git a/scripts/fees.ts b/scripts/fees.ts index cb89999b..d6e36658 100644 --- a/scripts/fees.ts +++ b/scripts/fees.ts @@ -1,6 +1,6 @@ -import { AccountWallet, CompleteAddress, createLogger, FeeJuicePaymentMethodWithClaim, Fr, L1FeeJuicePortalManager, PXE, waitForPXE , createPXEClient, Logger, FeeJuicePaymentMethod, PrivateFeePaymentMethod, PublicFeePaymentMethod } from "@aztec/aztec.js"; -import { getInitialTestAccountsWallets } from "@aztec/accounts/testing"; +import { createLogger, FeeJuicePaymentMethodWithClaim, Fr, L1FeeJuicePortalManager, PXE, waitForPXE , createPXEClient, Logger, FeeJuicePaymentMethod, PrivateFeePaymentMethod, PublicFeePaymentMethod } from "@aztec/aztec.js"; import { + Chain, createPublicClient, createWalletClient, http, @@ -13,38 +13,35 @@ import { FeeJuiceContract } from "@aztec/noir-contracts.js/FeeJuice"; import { FPCContract } from "@aztec/noir-contracts.js/FPC"; import { EasyPrivateVotingContract } from "../src/artifacts/EasyPrivateVoting.js" import { TokenContract } from "@aztec/noir-contracts.js/Token"; -// TODO: replace with import from aztec.js when published import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee/testing' import { getDeployedSponsoredFPCAddress } from "../src/utils/sponsored_fpc.js"; +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; +import { deploySchnorrAccount } from "../src/utils/deploy_account.js"; +import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; +import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice'; +import * as dotenv from 'dotenv'; +dotenv.config(); -const setupSandbox = async () => { - const { PXE_URL = 'http://localhost:8080' } = process.env; - const pxe = await createPXEClient(PXE_URL); - await waitForPXE(pxe); - return pxe; -}; +import { setupPXE } from "../src/utils/setup_pxe.js"; const MNEMONIC = 'test test test test test test test test test test test junk'; const FEE_FUNDING_FOR_TESTER_ACCOUNT = 1000000000000000000n; -let walletClient = getL1WalletClient(foundry.rpcUrls.default.http[0], 0); -const ownerEthAddress = walletClient.account.address; +let walletClient = getL1WalletClient(process.env.L1_URL!, 0); const publicClient = createPublicClient({ chain: foundry, - transport: http("http://127.0.0.1:8545"), + transport: http(process.env.L1_URL), }); async function main() { let pxe: PXE; - let wallets: AccountWallet[] = []; let logger: Logger; logger = createLogger('aztec:aztec-starter'); - pxe = await setupSandbox(); - wallets = await getInitialTestAccountsWallets(pxe); + pxe = await setupPXE(); const nodeInfo = (await pxe.getNodeInfo()) // Setup Schnorr AccountManager @@ -53,6 +50,7 @@ async function main() { let salt = Fr.random(); let schnorrAccount = await getSchnorrAccount(pxe, secretKey, deriveSigningKey(secretKey), salt); + const wallet1 = await (await deploySchnorrAccount(pxe)).getWallet() const newWallet = await schnorrAccount.getWallet() const feeJuiceReceipient = schnorrAccount.getAddress() @@ -68,24 +66,27 @@ async function main() { const claim = await feeJuicePortalManager.bridgeTokensPublic(feeJuiceReceipient, FEE_FUNDING_FOR_TESTER_ACCOUNT, true); - const feeJuice = await FeeJuiceContract.at(nodeInfo.protocolContractAddresses.feeJuice, wallets[0]) logger.info(`Fee Juice minted to ${feeJuiceReceipient} on L2.`) + // set up sponsored fee payments + const sponseredFPC = await getSponsoredFPCInstance(); + await pxe.registerContract({instance: sponseredFPC, artifact: SponsoredFPCContract.artifact}); + const paymentMethod = new SponsoredFeePaymentMethod(sponseredFPC.address); // Two arbitraty txs to make the L1 message available on L2 - const votingContract = await EasyPrivateVotingContract.deploy(wallets[0], wallets[0].getAddress()).send().deployed(); - const bananaCoin = await TokenContract.deploy(wallets[0], wallets[0].getAddress(), "bananaCoin", "BNC", 18).send().deployed() + const votingContract = await EasyPrivateVotingContract.deploy(wallet1, wallet1.getAddress()).send({fee: {paymentMethod}}).deployed({timeout: 120000}); + const bananaCoin = await TokenContract.deploy(wallet1, wallet1.getAddress(), "bananaCoin", "BNC", 18).send({fee: {paymentMethod}}).deployed({timeout: 120000}) // Claim Fee Juice & Pay Fees yourself const claimAndPay = new FeeJuicePaymentMethodWithClaim(newWallet, claim) - await schnorrAccount.deploy({ fee: { paymentMethod: claimAndPay } }).wait() + await schnorrAccount.deploy({ fee: { paymentMethod: claimAndPay } }).wait({timeout: 120000}) logger.info(`New account at ${newWallet.getAddress()} deployed using claimed funds for fees.`) // Pay fees yourself // Create a new voting contract instance, interacting from the newWallet const useFeeJuice = new FeeJuicePaymentMethod(newWallet.getAddress()) - await votingContract.withWallet(newWallet).methods.cast_vote(wallets[0].getAddress()).send({ fee: { paymentMethod: useFeeJuice }}).wait() + await votingContract.withWallet(newWallet).methods.cast_vote(wallet1.getAddress()).send({ fee: { paymentMethod: useFeeJuice }}).wait({timeout: 120000}) logger.info(`Vote cast from new account, paying fees via newWallet.`) // Private Fee Payments via FPC @@ -94,30 +95,33 @@ async function main() { // Need to deploy an FPC to use Private Fee payment methods // This uses bananaCoin as the fee paying asset that will be exchanged for fee juice - const fpc = await FPCContract.deploy(wallets[0], bananaCoin.address, wallets[0].getAddress()).send().deployed() + const fpc = await FPCContract.deploy(wallet1, bananaCoin.address, wallet1.getAddress()).send({fee: {paymentMethod}}).deployed({timeout: 120000}) const fpcClaim = await feeJuicePortalManager.bridgeTokensPublic(fpc.address, FEE_FUNDING_FOR_TESTER_ACCOUNT, true); // 2 public txs to make the bridged fee juice available // Mint some bananaCoin and send to the newWallet to pay fees privately - await bananaCoin.methods.mint_to_private(wallets[0].getAddress(), newWallet.getAddress(), FEE_FUNDING_FOR_TESTER_ACCOUNT).send().wait() + await bananaCoin.methods.mint_to_private(wallet1.getAddress(), newWallet.getAddress(), FEE_FUNDING_FOR_TESTER_ACCOUNT).send({fee: {paymentMethod}}).wait({timeout: 120000}) // mint some public bananaCoin to the newWallet to pay fees publicly - await bananaCoin.methods.mint_to_public(newWallet.getAddress(), FEE_FUNDING_FOR_TESTER_ACCOUNT).send().wait() + await bananaCoin.methods.mint_to_public(newWallet.getAddress(), FEE_FUNDING_FOR_TESTER_ACCOUNT).send({fee: {paymentMethod}}).wait({timeout: 120000}) const bananaBalance = await bananaCoin.withWallet(newWallet).methods.balance_of_private(newWallet.getAddress()).simulate() logger.info(`BananaCoin balance of newWallet is ${bananaBalance}`) - await feeJuice.methods.claim(fpc.address, fpcClaim.claimAmount, fpcClaim.claimSecret, fpcClaim.messageLeafIndex).send().wait() + const feeJuiceInstance = await getCanonicalFeeJuice(); + // await pxe.registerContract({instance: feeJuiceInstance.instance, artifact: }) + const feeJuice = await FeeJuiceContract.at(feeJuiceInstance.address, newWallet) + await feeJuice.methods.claim(fpc.address, fpcClaim.claimAmount, fpcClaim.claimSecret, fpcClaim.messageLeafIndex).send().wait({timeout: 120000}) logger.info(`Fpc fee juice balance ${await feeJuice.methods.balance_of_public(fpc.address).simulate()}`) const privateFee = new PrivateFeePaymentMethod(fpc.address, newWallet) - await bananaCoin.withWallet(newWallet).methods.transfer_in_private(newWallet.getAddress(), wallets[0].getAddress(), 10, 0).send({ fee: { paymentMethod: privateFee }}).wait() + await bananaCoin.withWallet(newWallet).methods.transfer_in_private(newWallet.getAddress(), wallet1.getAddress(), 10, 0).send({ fee: { paymentMethod: privateFee }}).wait({timeout: 120000}) logger.info(`Transfer paid with fees via the FPC, privately.`) // Public Fee Payments via FPC const publicFee = new PublicFeePaymentMethod(fpc.address, newWallet) - await bananaCoin.withWallet(newWallet).methods.transfer_in_private(newWallet.getAddress(), wallets[0].getAddress(), 10, 0).send({ fee: { paymentMethod: publicFee }}).wait() + await bananaCoin.withWallet(newWallet).methods.transfer_in_private(newWallet.getAddress(), wallet1.getAddress(), 10, 0).send({ fee: { paymentMethod: publicFee }}).wait({timeout: 120000}) logger.info(`Transfer paid with fees via the FPC, publicly.`) // Sponsored Fee Payment @@ -125,7 +129,7 @@ async function main() { // This method will only work in environments where there is a sponsored fee contract deployed const deployedSponseredFPC = await getDeployedSponsoredFPCAddress(pxe); const sponsoredPaymentMethod = new SponsoredFeePaymentMethod(deployedSponseredFPC); - await bananaCoin.withWallet(newWallet).methods.transfer_in_private(newWallet.getAddress(), wallets[0].getAddress(), 10, 0).send({ fee: { paymentMethod: sponsoredPaymentMethod }}).wait() + await bananaCoin.withWallet(newWallet).methods.transfer_in_private(newWallet.getAddress(), wallet1.getAddress(), 10, 0).send({ fee: { paymentMethod: sponsoredPaymentMethod }}).wait({timeout: 120000}) logger.info(`Transfer paid with fees from Sponsored FPC.`) } @@ -134,9 +138,19 @@ main(); // from here: https://github.com/AztecProtocol/aztec-packages/blob/ecbd59e58006533c8885a8b2fadbd9507489300c/yarn-project/end-to-end/src/fixtures/utils.ts#L534 function getL1WalletClient(rpcUrl: string, index: number) { const hdAccount = mnemonicToAccount(MNEMONIC, { addressIndex: index }); + const chain: Chain = { + id: Number(process.env.L1_CHAIN_ID!), + name: "test", + nativeCurrency: { + name: "ETH", + symbol: "ETH", + decimals: 18 + }, + rpcUrls: {default: {http: [process.env.L1_URL!]}} + } return createWalletClient({ account: hdAccount, - chain: foundry, + chain, transport: http(rpcUrl), }); } \ No newline at end of file diff --git a/scripts/getBlock.ts b/scripts/getBlock.ts deleted file mode 100644 index bde174ce..00000000 --- a/scripts/getBlock.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { PXE, waitForPXE, createPXEClient } from "@aztec/aztec.js"; - -const setupSandbox = async () => { - const { PXE_URL = 'http://localhost:8080' } = process.env; - const pxe = await createPXEClient(PXE_URL); - await waitForPXE(pxe); - return pxe; -}; - -async function main() { - - let pxe: PXE; - pxe = await setupSandbox(); - - let block = await pxe.getBlock(1); - console.log(block) - console.log(await block?.hash()) -} - -main(); diff --git a/scripts/get_block.ts b/scripts/get_block.ts new file mode 100644 index 00000000..d7e6aa62 --- /dev/null +++ b/scripts/get_block.ts @@ -0,0 +1,14 @@ +import { PXE, waitForPXE, createPXEClient } from "@aztec/aztec.js"; +import { setupPXE } from "../src/utils/setup_pxe.js"; + +async function main() { + + let pxe: PXE; + pxe = await setupPXE(); + + let block = await pxe.getBlock(1); + console.log(block) + console.log(await block?.hash()) +} + +main(); diff --git a/scripts/multiple_pxe.ts b/scripts/multiple_pxe.ts new file mode 100644 index 00000000..27bc045a --- /dev/null +++ b/scripts/multiple_pxe.ts @@ -0,0 +1,121 @@ +import { waitForPXE, getContractInstanceFromDeployParams, Fr, ContractInstanceWithAddress, AztecAddress, SponsoredFeePaymentMethod, createAztecNodeClient } from "@aztec/aztec.js"; +import { TokenContract } from "@aztec/noir-contracts.js/Token" +import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; +import { deriveSigningKey } from "@aztec/stdlib/keys"; +import { getSchnorrAccount } from "@aztec/accounts/schnorr"; +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; +import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server'; +import { createStore } from "@aztec/kv-store/lmdb" + +const { NODE_URL = "https://aztec-alpha-testnet-fullnode.zkv.xyz" } = process.env; +const node = createAztecNodeClient(NODE_URL) +const l1Contracts = await node.getL1ContractAddresses(); +const config = getPXEServiceConfig() +const fullConfig = { ...config, l1Contracts } +fullConfig.proverEnabled = true; + +const store1 = await createStore('pxe1', { + dataDirectory: 'store', + dataStoreMapSizeKB: 1e6, +}); + +const store2 = await createStore('pxe2', { + dataDirectory: 'store', + dataStoreMapSizeKB: 1e6, +}); + +const setupPxe1 = async () => { + const pxe = await createPXEService(node, fullConfig, {store: store1}); + await waitForPXE(pxe); + return pxe; +}; + +const setupPxe2 = async () => { + const pxe = await createPXEService(node, fullConfig, {store: store2}); + await waitForPXE(pxe); + return pxe; +}; + +const L2_TOKEN_CONTRACT_SALT = Fr.random(); + +export async function getL2TokenContractInstance(deployerAddress: any, ownerAztecAddress: AztecAddress): Promise { + return await getContractInstanceFromDeployParams( + TokenContract.artifact, + { + salt: L2_TOKEN_CONTRACT_SALT, + deployer: deployerAddress, + constructorArgs: [ + ownerAztecAddress, + 'Clean USDC', + 'USDC', + 6 + ] + } + ) +} + +async function main() { + + const pxe1 = await setupPxe1(); + const pxe2 = await setupPxe2(); + const sponseredFPC = await getSponsoredFPCInstance(); + await pxe1.registerContract({ instance: sponseredFPC, artifact: SponsoredFPCContract.artifact }); + await pxe2.registerContract({ instance: sponseredFPC, artifact: SponsoredFPCContract.artifact }); + const paymentMethod = new SponsoredFeePaymentMethod(sponseredFPC.address); + // deploy token contract + + let secretKey = Fr.random(); + let salt = Fr.random(); + let schnorrAccount = await getSchnorrAccount(pxe1, secretKey, deriveSigningKey(secretKey), salt); + let tx = await schnorrAccount.deploy({ fee: { paymentMethod } }).wait({timeout: 120000}); + let ownerWallet = await schnorrAccount.getWallet(); + let ownerAddress = await ownerWallet.getAddress(); + const token = await TokenContract.deploy(ownerWallet, ownerAddress, 'Clean USDC', 'USDC', 6).send({ contractAddressSalt: L2_TOKEN_CONTRACT_SALT, fee: { paymentMethod } }).wait({timeout: 120000}) + + // setup account on 2nd pxe + + pxe2.registerSender(ownerAddress) + + let secretKey2 = Fr.random(); + let salt2 = Fr.random(); + let schnorrAccount2 = await getSchnorrAccount(pxe2, secretKey2, deriveSigningKey(secretKey2), salt2); + + // deploy account on 2nd pxe + let tx2 = await schnorrAccount2.deploy({ fee: { paymentMethod } }).wait({timeout: 120000}); + let wallet2 = await schnorrAccount2.getWallet(); + wallet2.registerSender(ownerAddress) + + // mint to account on 2nd pxe + + const private_mint_tx = await token.contract.methods.mint_to_private(ownerAddress, schnorrAccount2.getAddress(), 100).send({ fee: { paymentMethod } }).wait({timeout: 120000}) + console.log(await pxe1.getTxEffect(private_mint_tx.txHash)) + await token.contract.methods.mint_to_public(schnorrAccount2.getAddress(), 100).send({ fee: { paymentMethod } }).wait({timeout: 120000}) + + + // setup token on 2nd pxe + + const l2TokenContractInstance = await getL2TokenContractInstance(ownerAddress, ownerAddress) + await wallet2.registerContract({ + instance: l2TokenContractInstance, + artifact: TokenContract.artifact + }) + + const l2TokenContract = await TokenContract.at( + l2TokenContractInstance.address, + wallet2 + ) + + await l2TokenContract.methods.sync_private_state().simulate() + + const notes = await pxe2.getNotes({ txHash: private_mint_tx.txHash }); + console.log(notes) + + // returns 0n + const balance = await l2TokenContract.methods.balance_of_private(wallet2.getAddress()).simulate() + console.log("private balance should be 100", balance) + // errors + const public_balance = await l2TokenContract.methods.balance_of_public(wallet2.getAddress()).simulate() + +} + +main(); \ No newline at end of file diff --git a/src/test/e2e/accounts.test.ts b/src/test/e2e/accounts.test.ts index 0792715c..ccc9f7f3 100644 --- a/src/test/e2e/accounts.test.ts +++ b/src/test/e2e/accounts.test.ts @@ -1,28 +1,25 @@ import { EasyPrivateVotingContractArtifact, EasyPrivateVotingContract } from "../../artifacts/EasyPrivateVoting.js" -import { AccountManager, AccountWallet, CompleteAddress, ContractDeployer, createLogger, Fr, PXE, waitForPXE, TxStatus, createPXEClient, getContractInstanceFromDeployParams, Logger } from "@aztec/aztec.js"; -import { getInitialTestAccountsWallets, generateSchnorrAccounts } from "@aztec/accounts/testing" +import { AccountManager, AccountWallet, ContractDeployer, createLogger, Fr, PXE, TxStatus, getContractInstanceFromDeployParams, Logger } from "@aztec/aztec.js"; +import { generateSchnorrAccounts } from "@aztec/accounts/testing" import { getSchnorrAccount } from '@aztec/accounts/schnorr'; import { spawn } from 'child_process'; +import { deriveSigningKey } from '@aztec/stdlib/keys'; + import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee/testing"; import { getFeeJuiceBalance, type L2AmountClaim, L1FeeJuicePortalManager, FeeJuicePaymentMethodWithClaim, AztecAddress } from "@aztec/aztec.js"; import { createEthereumChain, createL1Clients } from '@aztec/ethereum'; -import { getDeployedSponsoredFPCAddress } from "../../utils/sponsored_fpc.js"; - -const setupSandbox = async () => { - const { PXE_URL = 'http://localhost:8080' } = process.env; - const pxe = createPXEClient(PXE_URL); - await waitForPXE(pxe); - return pxe; -}; +import { getSponsoredFPCInstance } from "../../utils/sponsored_fpc.js"; +import { setupPXE } from "../../utils/setup_pxe.js"; +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; + const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); describe("Accounts", () => { let pxe: PXE; - let wallets: AccountWallet[] = []; - let accounts: CompleteAddress[] = []; let logger: Logger; let sandboxInstance; let sponsoredPaymentMethod: SponsoredFeePaymentMethod; + let ownerWallet: AccountWallet; let randomAccountManagers: AccountManager[] = []; let randomWallets: AccountWallet[] = []; @@ -45,23 +42,11 @@ describe("Accounts", () => { logger = createLogger('aztec:aztec-starter:accounts'); logger.info("Aztec-Starter tests running.") - pxe = await setupSandbox(); + pxe = await setupPXE(); - wallets = await getInitialTestAccountsWallets(pxe); - accounts = wallets.map(w => w.getCompleteAddress()); - const deployedSponseredFPC = await getDeployedSponsoredFPCAddress(pxe); - sponsoredPaymentMethod = new SponsoredFeePaymentMethod(deployedSponseredFPC); - - // generate random accounts - randomAccountManagers = await Promise.all( - (await generateSchnorrAccounts(5)).map( - a => getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt) - ) - ); - // get corresponding wallets - randomWallets = await Promise.all(randomAccountManagers.map(am => am.getWallet())); - // get corresponding addresses - randomAddresses = await Promise.all(randomWallets.map(async w => (await w.getCompleteAddress()).address)); + const sponsoredFPC = await getSponsoredFPCInstance(); + await pxe.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // create default ethereum clients const nodeInfo = await pxe.getNodeInfo(); @@ -79,6 +64,24 @@ describe("Accounts", () => { logger ); + let secretKey = Fr.random(); + let salt = Fr.random(); + let schnorrAccount = await getSchnorrAccount(pxe, secretKey, deriveSigningKey(secretKey), salt) + await schnorrAccount.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait(); + ownerWallet = await schnorrAccount.getWallet(); + }) + + beforeEach(async () => { + // generate random accounts + randomAccountManagers = await Promise.all( + (await generateSchnorrAccounts(2)).map( + a => getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt) + ) + ); + // get corresponding wallets + randomWallets = await Promise.all(randomAccountManagers.map(am => am.getWallet())); + // get corresponding addresses + randomAddresses = await Promise.all(randomWallets.map(async w => (await w.getCompleteAddress()).address)); }) afterAll(async () => { @@ -103,42 +106,38 @@ describe("Accounts", () => { } // arbitrary transactions to progress 2 blocks, and have fee juice on Aztec ready to claim - await EasyPrivateVotingContract.deploy(wallets[0], accounts[0]).send().deployed(); // deploy contract with first funded wallet - await EasyPrivateVotingContract.deploy(wallets[0], accounts[0]).send().deployed(); // deploy contract with first funded wallet + await EasyPrivateVotingContract.deploy(ownerWallet, ownerWallet.getAddress()).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).deployed(); // deploy contract with first funded wallet + await EasyPrivateVotingContract.deploy(ownerWallet, ownerWallet.getAddress()).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).deployed(); // deploy contract with first funded wallet // claim and pay to deploy random accounts let sentTxs = []; for (let i = 0; i < randomWallets.length; i++) { const paymentMethod = new FeeJuicePaymentMethodWithClaim(randomWallets[i], claims[i]); - sentTxs.push(randomAccountManagers[i].deploy({ fee: { paymentMethod } })); + await randomAccountManagers[i].deploy({ fee: { paymentMethod } }).wait(); } - await Promise.all(sentTxs.map(stx => stx.wait())); - // balance after deploy with claimed fee juice - balances = await Promise.all(randomAddresses.map(async a => getFeeJuiceBalance(a, pxe))); + balances = await Promise.all(randomAddresses.map(async a => await getFeeJuiceBalance(a, pxe))); const amountAfterDeploy = claimAmount - approxMaxDeployCost; balances.forEach(b => expect(b).toBeGreaterThanOrEqual(amountAfterDeploy)); }); it("Deploys first unfunded account from first funded account", async () => { - const tx_acc = await randomAccountManagers[0].deploy({ deployWallet: wallets[0] }); + const tx_acc = await randomAccountManagers[0].deploy({ fee: { paymentMethod: sponsoredPaymentMethod }, deployWallet: ownerWallet }).wait(); }); it("Sponsored contract deployment", async () => { const salt = Fr.random(); const VotingContractArtifact = EasyPrivateVotingContractArtifact - // const [deployerWallet, adminWallet] = wallets; // using first account as deployer and second as contract admin const accounts = await Promise.all( (await generateSchnorrAccounts(2)).map( async a => await getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt) ) ); - await Promise.all(accounts.map(a => a.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }))); + await Promise.all(accounts.map(a => a.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait())); const daWallets = await Promise.all(accounts.map(a => a.getWallet())); const [deployerWallet, adminWallet] = daWallets; const [deployerAddress, adminAddress] = daWallets.map(w => w.getAddress()); - // const adminAddress = adminWallet.getCompleteAddress().address; const deploymentData = await getContractInstanceFromDeployParams(VotingContractArtifact, { @@ -151,12 +150,12 @@ describe("Accounts", () => { contractAddressSalt: salt, fee: { paymentMethod: sponsoredPaymentMethod } // without the sponsoredFPC the deployment fails, thus confirming it works }) + const receipt = await tx.getReceipt(); expect(receipt).toEqual( expect.objectContaining({ status: TxStatus.PENDING, - error: '' }), ); diff --git a/src/test/e2e/index.test.ts b/src/test/e2e/index.test.ts index 55e4aa12..bcf2efc1 100644 --- a/src/test/e2e/index.test.ts +++ b/src/test/e2e/index.test.ts @@ -1,27 +1,25 @@ import { EasyPrivateVotingContractArtifact, EasyPrivateVotingContract } from "../../artifacts/EasyPrivateVoting.js" -import { AccountManager, AccountWallet, CompleteAddress, ContractDeployer, createLogger, Fr, PXE, waitForPXE, TxStatus, createPXEClient, getContractInstanceFromDeployParams, Logger } from "@aztec/aztec.js"; -import { getInitialTestAccountsWallets, generateSchnorrAccounts } from "@aztec/accounts/testing" +import { AccountManager, AccountWallet, CompleteAddress, ContractDeployer, createLogger, Fr, PXE, TxStatus, getContractInstanceFromDeployParams, Logger, ContractInstanceWithAddress } from "@aztec/aztec.js"; +import { generateSchnorrAccounts } from "@aztec/accounts/testing" import { getSchnorrAccount } from '@aztec/accounts/schnorr'; import { spawn } from 'child_process'; import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee/testing' import { L1FeeJuicePortalManager, AztecAddress } from "@aztec/aztec.js"; import { createEthereumChain, createL1Clients } from '@aztec/ethereum'; -import { getDeployedSponsoredFPCAddress } from "../../utils/sponsored_fpc.js"; - -const setupSandbox = async () => { - const { PXE_URL = 'http://localhost:8080' } = process.env; - const pxe = createPXEClient(PXE_URL); - await waitForPXE(pxe); - return pxe; -}; +import { getSponsoredFPCInstance } from "../../utils/sponsored_fpc.js"; +import { setupPXE } from "../../utils/setup_pxe.js"; +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; +import { deriveSigningKey } from "@aztec/stdlib/keys"; + const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); describe("Voting", () => { let pxe: PXE; - let wallets: AccountWallet[] = []; + let firstWallet: AccountWallet; let accounts: CompleteAddress[] = []; let logger: Logger; let sandboxInstance; + let sponsoredFPC: ContractInstanceWithAddress; let sponsoredPaymentMethod: SponsoredFeePaymentMethod; let randomAccountManagers: AccountManager[] = []; @@ -44,12 +42,11 @@ describe("Voting", () => { logger = createLogger('aztec:aztec-starter:voting'); logger.info("Aztec-Starter tests running.") - pxe = await setupSandbox(); + pxe = await setupPXE(); - wallets = await getInitialTestAccountsWallets(pxe); - accounts = wallets.map(w => w.getCompleteAddress()); - const deployedSponseredFPC = await getDeployedSponsoredFPCAddress(pxe); - sponsoredPaymentMethod = new SponsoredFeePaymentMethod(deployedSponseredFPC); + sponsoredFPC = await getSponsoredFPCInstance(); + await pxe.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // generate random accounts randomAccountManagers = await Promise.all( @@ -76,6 +73,13 @@ describe("Voting", () => { logger ); + + // Set up a wallet + let secretKey = Fr.random(); + let salt = Fr.random(); + let schnorrAccount = await getSchnorrAccount(pxe, secretKey, deriveSigningKey(secretKey), salt) + await schnorrAccount.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait(); + firstWallet = await schnorrAccount.getWallet(); }) afterAll(async () => { @@ -87,17 +91,15 @@ describe("Voting", () => { it("Deploys the contract", async () => { const salt = Fr.random(); const VotingContractArtifact = EasyPrivateVotingContractArtifact - // const [deployerWallet, adminWallet] = wallets; // using first account as deployer and second as contract admin const accounts = await Promise.all( (await generateSchnorrAccounts(2)).map( async a => await getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt) ) ); - await Promise.all(accounts.map(a => a.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }))); + await Promise.all(accounts.map(a => a.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait())); const daWallets = await Promise.all(accounts.map(a => a.getWallet())); const [deployerWallet, adminWallet] = daWallets; const [deployerAddress, adminAddress] = daWallets.map(w => w.getAddress()); - // const adminAddress = adminWallet.getCompleteAddress().address; const deploymentData = await getContractInstanceFromDeployParams(VotingContractArtifact, { @@ -134,8 +136,8 @@ describe("Voting", () => { it("It casts a vote", async () => { const candidate = new Fr(1) - const contract = await EasyPrivateVotingContract.deploy(wallets[0], accounts[0].address).send().deployed(); - const tx = await contract.methods.cast_vote(candidate).send().wait(); + const contract = await EasyPrivateVotingContract.deploy(firstWallet, firstWallet.getAddress()).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).deployed(); + const tx = await contract.methods.cast_vote(candidate).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait(); let count = await contract.methods.get_vote(candidate).simulate(); expect(count).toBe(1n); }) @@ -143,18 +145,18 @@ describe("Voting", () => { it("It should fail when trying to vote twice", async () => { const candidate = new Fr(1) - const votingContract = await EasyPrivateVotingContract.deploy(wallets[0], accounts[0].address).send().deployed(); - await votingContract.methods.cast_vote(candidate).send().wait(); + const votingContract = await EasyPrivateVotingContract.deploy(firstWallet, firstWallet.getAddress()).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).deployed(); + await votingContract.methods.cast_vote(candidate).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait(); expect(await votingContract.methods.get_vote(candidate).simulate()).toBe(1n); // We try voting again, but our TX is dropped due to trying to emit duplicate nullifiers // first confirm that it fails simulation - await expect(votingContract.methods.cast_vote(candidate).send().wait()).rejects.toThrow(/Nullifier collision/); + await expect(votingContract.methods.cast_vote(candidate).send({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait()).rejects.toThrow(/Nullifier collision/); // if we skip simulation before submitting the tx, // tx will be included in a block but with app logic reverted await expect( - votingContract.methods.cast_vote(candidate).send({ skipPublicSimulation: true }).wait(), - ).rejects.toThrow('Reason: Tx dropped by P2P node.'); + votingContract.methods.cast_vote(candidate).send({ fee: { paymentMethod: sponsoredPaymentMethod }, skipPublicSimulation: true }).wait(), + ).rejects.toThrow(/Existing nullifier/); }) diff --git a/src/test/utils.nr b/src/test/utils.nr index 7ab49261..2d41a0f4 100644 --- a/src/test/utils.nr +++ b/src/test/utils.nr @@ -9,6 +9,7 @@ pub unconstrained fn setup() -> (&mut TestEnvironment, AztecAddress, AztecAddres let initializer_call_interface = EasyPrivateVoting::interface().constructor(admin); let voting_contract = env.deploy_self("EasyPrivateVoting").with_public_void_initializer( + admin, initializer_call_interface, ); diff --git a/src/utils/deploy_account.ts b/src/utils/deploy_account.ts new file mode 100644 index 00000000..70aaa11d --- /dev/null +++ b/src/utils/deploy_account.ts @@ -0,0 +1,28 @@ +import { createLogger, Fr, PXE, Logger, AccountManager } from "@aztec/aztec.js"; +import { getSchnorrAccount } from '@aztec/accounts/schnorr'; +import { deriveSigningKey } from '@aztec/stdlib/keys'; +import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee/testing"; +import { getSponsoredFPCInstance } from "./sponsored_fpc.js"; +import { setupPXE } from "./setup_pxe.js"; +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; + +export async function deploySchnorrAccount(pxe: PXE): Promise { + + let logger: Logger; + logger = createLogger('aztec:aztec-starter'); + + const sponsoredFPC = await getSponsoredFPCInstance(); + await pxe.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + const sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); + + let secretKey = Fr.random(); + let salt = Fr.random(); + + let schnorrAccount = await getSchnorrAccount(pxe, secretKey, deriveSigningKey(secretKey), salt); + let tx = await schnorrAccount.deploy({ fee: { paymentMethod: sponsoredPaymentMethod } }).wait({timeout: 120000}); + let wallet = await schnorrAccount.getWallet(); + + logger.info(`Schnorr account deployed at: ${wallet.getAddress()}`); + + return schnorrAccount; +} \ No newline at end of file diff --git a/src/utils/setup_pxe.ts b/src/utils/setup_pxe.ts new file mode 100644 index 00000000..e9670372 --- /dev/null +++ b/src/utils/setup_pxe.ts @@ -0,0 +1,35 @@ + +import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server'; +import { createStore } from "@aztec/kv-store/lmdb" +import { createAztecNodeClient, createLogger, waitForPXE } from '@aztec/aztec.js'; + +const { NODE_URL = 'https://aztec-alpha-testnet-fullnode.zkv.xyz' } = process.env; +const node = createAztecNodeClient(NODE_URL) +const l1Contracts = await node.getL1ContractAddresses(); +const config = getPXEServiceConfig() +const fullConfig = { ...config, l1Contracts } +fullConfig.proverEnabled = true; + +const store = await createStore('pxe', { + dataDirectory: 'store', + dataStoreMapSizeKB: 1e6, +}); + +export const setupPXE = async () => { + const pxeLogger = createLogger('aztec:pxe'); + const proverLogger = createLogger('aztec:prover'); + const storeLogger = createLogger('aztec:store'); + + const creationOptions = { + loggers: { + store: storeLogger, + pxe: pxeLogger, + prover: proverLogger + }, + store + } + + const pxe = await createPXEService(node, fullConfig, creationOptions); + await waitForPXE(pxe); + return pxe; +}; \ No newline at end of file diff --git a/src/utils/sponsored_fpc.ts b/src/utils/sponsored_fpc.ts index 4c7d698d..b9f3a77a 100644 --- a/src/utils/sponsored_fpc.ts +++ b/src/utils/sponsored_fpc.ts @@ -2,15 +2,13 @@ import { type ContractInstanceWithAddress, Fr, type PXE, - type Wallet, getContractInstanceFromDeployParams, } from '@aztec/aztec.js'; -import type { LogFn } from '@aztec/foundation/log'; import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC'; const SPONSORED_FPC_SALT = new Fr(0); -async function getSponsoredFPCInstance(): Promise { +export async function getSponsoredFPCInstance(): Promise { return await getContractInstanceFromDeployParams(SponsoredFPCContract.artifact, { salt: SPONSORED_FPC_SALT, }); @@ -20,14 +18,6 @@ export async function getSponsoredFPCAddress() { return (await getSponsoredFPCInstance()).address; } -export async function setupSponsoredFPC(deployer: Wallet, log: LogFn) { - const deployed = await SponsoredFPCContract.deploy(deployer) - .send({ contractAddressSalt: SPONSORED_FPC_SALT, universalDeploy: true }) - .deployed(); - - log(`SponsoredFPC: ${deployed.address}`); -} - export async function getDeployedSponsoredFPCAddress(pxe: PXE) { const fpc = await getSponsoredFPCAddress(); const contracts = await pxe.getContracts(); diff --git a/yarn.lock b/yarn.lock index 7289a2fb..9a1050ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,112 +15,138 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@aztec/accounts@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-0.84.0.tgz#2fe9cc18c0c19d36e7b2242ef121601939d21b26" - integrity sha512-4+AYV/D7hUROHWQLWa9W47ay/CJKJnkjZSWjsWBeWRZ18xXE8TI+44m6hWLazuoqgWGCTLOi9kfBgpxImBoPAQ== - dependencies: - "@aztec/aztec.js" "0.84.0" - "@aztec/entrypoints" "0.84.0" - "@aztec/ethereum" "0.84.0" - "@aztec/foundation" "0.84.0" - "@aztec/stdlib" "0.84.0" +"@aztec/accounts@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-0.87.4.tgz#6d7f89b9e780fe4ece0c43aefa04bc0ba78314fc" + integrity sha512-TyNvw/0pKNy7MRNqMwlDQEihdiNZE7AbQk2eKZJgVw7JACJ4a/t/tgo4PIgBJEO7Mo2Ia+QguNt5BRiMV4Y7mA== + dependencies: + "@aztec/aztec.js" "0.87.4" + "@aztec/entrypoints" "0.87.4" + "@aztec/ethereum" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/stdlib" "0.87.4" tslib "^2.4.0" -"@aztec/aztec.js@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-0.84.0.tgz#b64d4ed322b16be6f39abfdc8ccf0d34025d3b9a" - integrity sha512-91HkDeChm8s8Gg73NsNvGgvj9RSpN2mF+20DbT7Fe0ZAEpGc9A2yyXMBS+iXzjrxYu8vfGGFhXCj4+tN/pQzVw== - dependencies: - "@aztec/constants" "0.84.0" - "@aztec/entrypoints" "0.84.0" - "@aztec/ethereum" "0.84.0" - "@aztec/foundation" "0.84.0" - "@aztec/l1-artifacts" "0.84.0" - "@aztec/protocol-contracts" "0.84.0" - "@aztec/stdlib" "0.84.0" - axios "^1.7.2" +"@aztec/aztec.js@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-0.87.4.tgz#ea391874559c090d109801b9883ee8f259422f08" + integrity sha512-fggZAB0kh2sl/zUj0noSstwqGstF/WZPoI2ScF5KfIozujc9+CrsqyhBxp0LDtiXpQWn9RTfW1OMvd7SjWKrXg== + dependencies: + "@aztec/constants" "0.87.4" + "@aztec/entrypoints" "0.87.4" + "@aztec/ethereum" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/l1-artifacts" "0.87.4" + "@aztec/protocol-contracts" "0.87.4" + "@aztec/stdlib" "0.87.4" + axios "^1.8.2" tslib "^2.4.0" viem "2.23.7" -"@aztec/bb.js@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-0.84.0.tgz#58ef86587160ff559d39bbc3068b1cd25ef91917" - integrity sha512-jNx35PCtevQnIBAyld90JjI+fGTrhcbXH6FkcZoRRpBPvnlZVTmIAU3j16q136m+mFgIBlCuzjOE6ND4cOgnQQ== +"@aztec/bb-prover@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/bb-prover/-/bb-prover-0.87.4.tgz#dcb1eb3a4f456fad00e948bbc5f09281d4202af5" + integrity sha512-jvJnv/rR6jelkDwq6MLQFsZcXFwh6gSHrDBJBMekVyBtzBsr3P9gsvi3ndFXy8KX/oFrKf4EDikW682CnEqHDg== + dependencies: + "@aztec/bb.js" "0.87.4" + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/noir-noirc_abi" "0.87.4" + "@aztec/noir-protocol-circuits-types" "0.87.4" + "@aztec/noir-types" "0.87.4" + "@aztec/simulator" "0.87.4" + "@aztec/stdlib" "0.87.4" + "@aztec/telemetry-client" "0.87.4" + "@aztec/world-state" "0.87.4" + commander "^12.1.0" + pako "^2.1.0" + pidusage "^4.0.1" + source-map-support "^0.5.21" + tslib "^2.4.0" + +"@aztec/bb.js@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-0.87.4.tgz#17ea730f2d0d040938630da8ce71c5edc78a1456" + integrity sha512-PFZmgIJFSExzQZkNBa1DLuUx96BlC+Am6bo940ooMnqX9BpHeFoZsC7x+qmJOSc1rlbc56OUkLzf75wFgO+JeA== dependencies: comlink "^4.4.1" commander "^12.1.0" - debug "^4.3.4" - fflate "^0.8.0" + idb-keyval "^6.2.1" + msgpackr "^1.11.2" pako "^2.1.0" + pino "^9.5.0" tslib "^2.4.0" -"@aztec/blob-lib@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-0.84.0.tgz#259efa7ae3ad2a20fb686f3885f6074bef457d2a" - integrity sha512-jAol1pTGvzSDCMOMq4IG4Fgce/bE6U3FNWWB8cn8+mpZuSLhp2d8rQSAjHzkEmB7EaNbD9poXPZqNVYygRBz3w== +"@aztec/blob-lib@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-0.87.4.tgz#cbe521f454f30df9d103b779bae25e9749b624b6" + integrity sha512-yLuuLFYdWS8DaOHhT0NzkeGNgeLGjeyaGUqCv9vVtJrOX18CHcXcJiyyeNJrxBazVfAzga0VxdH+qvEMkaUKDw== dependencies: - "@aztec/constants" "0.84.0" - "@aztec/foundation" "0.84.0" + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" c-kzg "4.0.0-alpha.1" tslib "^2.4.0" -"@aztec/constants@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-0.84.0.tgz#6578ef6dd0884d72d9f4191382f46e9a6d0e0f1b" - integrity sha512-BGlUkqz3r+0IZJD9w3tLe9Qmj5iFLmj9TW9BtXTlSg3nmAg53Mz9jOnvX8f8HXCIDJb0RnBWVfbSIj380FLSuQ== +"@aztec/builder@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/builder/-/builder-0.87.4.tgz#f9376b122d4148276af0365395df12664bfafa9a" + integrity sha512-jDU5cbO1uB4sTQhLfq6ZtqGaYbWmQMB/EFRB1XdSpzt1iOIdAheafa+7AXkDiSUP4NEMtbWaeMxkX0ur93mb7Q== + dependencies: + "@aztec/foundation" "0.87.4" + "@aztec/stdlib" "0.87.4" + commander "^12.1.0" + +"@aztec/constants@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-0.87.4.tgz#d227f61cae67f4d60d81906586b6b102ed7dc91e" + integrity sha512-1XTtFHEBLVqqykk787wjTOitejv+dM3DSKPnvC5t4OrwFng1h/tr/HFcUo3iMNitju54WwZLRTwYqfLLbH3sVA== dependencies: tslib "^2.4.0" -"@aztec/entrypoints@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-0.84.0.tgz#4d59f3da119dbc36a2173e275f2d9256b522f512" - integrity sha512-hb3+TpSjs9X9R21CBtNlC2jHrJNgP84lUaY5YfOzargmtCX/KTLoTZf3amhSyR5NR1uoQH4TD1q0GvuxnGgk3g== +"@aztec/entrypoints@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-0.87.4.tgz#7b038e92b7fa22edb6275e4cdaf6e93f56276833" + integrity sha512-M5hbOJfbPBa7N+DgCNuKG4plgkiSRwytbDNFjQvTbVqEIgywVPdTZXAlDzWkd/ru3cV9cjoWuhXzI3X7IHOB1g== dependencies: - "@aztec/constants" "0.84.0" - "@aztec/foundation" "0.84.0" - "@aztec/protocol-contracts" "0.84.0" - "@aztec/stdlib" "0.84.0" + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/protocol-contracts" "0.87.4" + "@aztec/stdlib" "0.87.4" tslib "^2.4.0" -"@aztec/ethereum@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-0.84.0.tgz#e199d51a2679ec90286a7114a02ec8cf6ed6d3d6" - integrity sha512-eDJuC8MASEIgdgicJkLL5Y+E4/HNikB4FRF4CRoiy/i+BO2fDOTW5j7Qowq9MmZOJwQkyK+ogNWr0vTHjbHyEQ== +"@aztec/ethereum@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-0.87.4.tgz#827c80a196b1aaea7719e8df7e4d225986cc3db8" + integrity sha512-rPiOH9ziHMC06jzhknGglpMZkCcZE4GHTCJp+w/LqvnrfjysbB9ERb5/AWKWwscW5Vm7c9+L1qpS1iZlDkqB3g== dependencies: - "@aztec/blob-lib" "0.84.0" - "@aztec/foundation" "0.84.0" - "@aztec/l1-artifacts" "0.84.0" + "@aztec/blob-lib" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/l1-artifacts" "0.87.4" "@viem/anvil" "^0.0.10" dotenv "^16.0.3" tslib "^2.4.0" viem "2.23.7" zod "^3.23.8" -"@aztec/foundation@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-0.84.0.tgz#93a24b590211036d27b2fef662b2ead8779216c6" - integrity sha512-5hxVYNucyvZ+YCtluhpd3aNLCtsYSWQ85YdID4ZwihLkFNs2A0/klB2EmYZGLVCxXJa1o8I8QIbaRg+idBG2EA== +"@aztec/foundation@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-0.87.4.tgz#157a24026f4d1457d5c17bd913482643f59736ff" + integrity sha512-+a1wPQ8wG+o94LrD4RoukyV0vUegk6DCuGqOrIQhXdQCv/Iheoq2a259JlmP2Co3atymGlO5Ggk3dT/bD/fmYQ== dependencies: - "@aztec/bb.js" "0.84.0" + "@aztec/bb.js" "0.87.4" "@koa/cors" "^5.0.0" "@noble/curves" "^1.2.0" - bn.js "^5.2.1" c-kzg "4.0.0-alpha.1" colorette "^2.0.20" - debug "^4.3.4" detect-node "^2.1.0" - elliptic "^6.5.4" hash.js "^1.1.7" - koa "^2.14.2" + koa "^2.16.1" koa-bodyparser "^4.4.0" koa-compress "^5.1.0" koa-router "^12.0.0" leveldown "^6.1.1" - levelup "^5.1.1" lodash.chunk "^4.2.0" lodash.clonedeepwith "^4.5.0" - memdown "^6.1.1" pako "^2.1.0" pino "^9.5.0" pino-pretty "^13.0.0" @@ -128,44 +154,179 @@ undici "^5.28.5" zod "^3.23.8" -"@aztec/l1-artifacts@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-0.84.0.tgz#acae5f4b1dfdf453d50d3b39252180a5309401ed" - integrity sha512-OKoZ50C2M4oD64GYoooV6QBwDaEcyGqnE/k3URiEQloK+h0ybgPRurzrqwKIRaS2qSkQsHoDzEjxUkCtnYX28Q== +"@aztec/key-store@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/key-store/-/key-store-0.87.4.tgz#e6d26dd7e43af8cf8a131210d86e7daa5c6092d1" + integrity sha512-fFU7bp8yvTrZKIQZQ5sIZMu8UyA/M5D9vkQ19+Vg9TNN9UMN6Wp7QX5w2oEDKOUswoav5H7gaoTVvM6UT+7nwg== + dependencies: + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/kv-store" "0.87.4" + "@aztec/stdlib" "0.87.4" + tslib "^2.4.0" + +"@aztec/kv-store@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/kv-store/-/kv-store-0.87.4.tgz#ddd3fb9e0f3fea4c5c3ca9d574246de7cb1dfe15" + integrity sha512-sO3HxD5WWhGSIf8YRGtAOAvqfjkX5oPBvCmXC1qFztKqB/ubZiYCUIfcZJ29EyNLfnF1zUESG0rB6blWZFTHjA== + dependencies: + "@aztec/ethereum" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/native" "0.87.4" + "@aztec/stdlib" "0.87.4" + idb "^8.0.0" + lmdb "^3.2.0" + msgpackr "^1.11.2" + ohash "^2.0.11" + ordered-binary "^1.5.3" + +"@aztec/l1-artifacts@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-0.87.4.tgz#70045218df79cf3c3162547f757ac3774c7c3a6a" + integrity sha512-2L4VL+gk4Wa6Qm4UuJ+zskiKTiyKMiHSvc088HmmF8MYsHvJr38Xu8DxgD4DCv/jjT74doS7ALpGBGQ+bg/icw== dependencies: tslib "^2.4.0" -"@aztec/noir-contracts.js@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-0.84.0.tgz#60d8a4834f838d89a276137accc27e7028d76287" - integrity sha512-b4vUnNZrJpDzjA3aCnMnhlYIc1dPjrFmeLy7EPeL7QeTDj5tSzdu18/owHV2sSzGB/PYlmFEELoTGbPJ4Npqrg== +"@aztec/merkle-tree@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/merkle-tree/-/merkle-tree-0.87.4.tgz#62bed2e290434e02f1a684ea8a30f44650bfff63" + integrity sha512-Fl7R7OXIVPps1sSAeYXuibVsJyZWaeYuTUtO2tjraQrbjus8vFIbAjzvAE5/ClDnQs/I6AK3KuFH+jqnhgldHg== dependencies: - "@aztec/aztec.js" "0.84.0" + "@aztec/foundation" "0.87.4" + "@aztec/kv-store" "0.87.4" + "@aztec/stdlib" "0.87.4" + sha256 "^0.2.0" tslib "^2.4.0" -"@aztec/protocol-contracts@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-0.84.0.tgz#6086ce45108f8ef6caf07b21fcccf44d0e1b6c82" - integrity sha512-U7+MMDnmcyhvhgTeHM4ZoACJtaE9geJXpKWvK1VOzKnEIvIcM7vG/0Z14AkXsZ93RsCyqq/gG2mf5WvNQbBG2w== +"@aztec/native@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/native/-/native-0.87.4.tgz#798e1e16a14064030fc75ea65eb19fedf78a2376" + integrity sha512-Y1vrRZj5SCpNU2lkoHNhN/PO+M7juSN4RoCfZ0NPpYRf5eibI2K6nkjCrC9wlj/brb3NdCFLNXX4WsE20lJBQA== dependencies: - "@aztec/constants" "0.84.0" - "@aztec/foundation" "0.84.0" - "@aztec/stdlib" "0.84.0" + "@aztec/foundation" "0.87.4" + bindings "^1.5.0" + msgpackr "^1.11.2" + +"@aztec/noir-acvm_js@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/noir-acvm_js/-/noir-acvm_js-0.87.4.tgz#e3d7a4ae22bf193a7ffba7eb9483c77938f8c3eb" + integrity sha512-3I0JwyqHBNbkONgrz/RIkIr0ies+uf8Z2gcSRHynOzp3uNn9nvH7Qq1xuG22xmuSyLSOtQCsBu8BOJsd4dgJzg== + +"@aztec/noir-contracts.js@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-0.87.4.tgz#ae83b377bc268c887ec8b1f363669797474cf4fd" + integrity sha512-qT579J8qydcakWTeEBsrCjRR/qrUa20ZLD5C8TOI60yUtXY9b/sSLxb9TeClzZ3jjO/v/RNi10S3YElJpvyXoA== + dependencies: + "@aztec/aztec.js" "0.87.4" + tslib "^2.4.0" + +"@aztec/noir-noir_codegen@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/noir-noir_codegen/-/noir-noir_codegen-0.87.4.tgz#2538a8fe40e9ff488181739af18485689d5b216b" + integrity sha512-8IzW58DaDQtenZWQAipf81+0nRVz2RSK01DbWPd+PtmKQiZtyyvT0h5YpVgSvhgO2LrUJt3HJq31GbZZ4lhY2g== + dependencies: + "@aztec/noir-types" "0.87.4" + glob "^11.0.1" + ts-command-line-args "^2.5.1" + +"@aztec/noir-noirc_abi@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/noir-noirc_abi/-/noir-noirc_abi-0.87.4.tgz#ca1cd881a8e310fb2c4aad615f572ee19346225c" + integrity sha512-AflhWqi7aGpPegDnQLpA5Oiqm2+6570y5YySFj7ugz00Bn3zPWUA9o9iMoV3q7EJ88Qwr3KvhE0AU2vgTK1n5w== + dependencies: + "@aztec/noir-types" "0.87.4" + +"@aztec/noir-protocol-circuits-types@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/noir-protocol-circuits-types/-/noir-protocol-circuits-types-0.87.4.tgz#360a9d591cdb1f8d031fe4368a559a569ab72030" + integrity sha512-t/LxvDs5nxwHYZOcl23qDRFExe/IAl/c1zdC7O2piGiSXe7KA7Q2DL+O8yJKSC5QlPSuK37Qivj0bQf0ktyiuA== + dependencies: + "@aztec/blob-lib" "0.87.4" + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/noir-acvm_js" "0.87.4" + "@aztec/noir-noir_codegen" "0.87.4" + "@aztec/noir-noirc_abi" "0.87.4" + "@aztec/noir-types" "0.87.4" + "@aztec/stdlib" "0.87.4" + change-case "^5.4.4" + tslib "^2.4.0" + +"@aztec/noir-types@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/noir-types/-/noir-types-0.87.4.tgz#b7519bf53b53f900bdafda405a7cab8384dcd950" + integrity sha512-w8A71YYxZUZAB06mgmPaj09WSKYt3QSodgRqoGDyFsknnATNWbEHJxcTlwD6oyfdGyTfPfK79HoO4aQQBus23A== + +"@aztec/protocol-contracts@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-0.87.4.tgz#24c503ef63ed60a60b5ea58cb71b3da2ef9c0635" + integrity sha512-WLqCQFKwxOAbGnFUUc7F2Ayw8Y+m4Xnt0TLX8UDwuKnyxQT+zGXtLQiZQxAN9MRPBHVLC0TMfHtpe6fAIiZo2Q== + dependencies: + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/stdlib" "0.87.4" lodash.chunk "^4.2.0" lodash.omit "^4.5.0" tslib "^2.4.0" -"@aztec/stdlib@0.84.0": - version "0.84.0" - resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-0.84.0.tgz#bd540ad41e23e239667274c55de9b037217235be" - integrity sha512-D2GECWBf0jembRamDF1eRYGMtGIyvYnhEcEkbJwk3OEmFRLiIjCMUh3ZJoLYDFCNlnSjO2WGghaJDm6UrflyGA== - dependencies: - "@aztec/bb.js" "0.84.0" - "@aztec/blob-lib" "0.84.0" - "@aztec/constants" "0.84.0" - "@aztec/ethereum" "0.84.0" - "@aztec/foundation" "0.84.0" +"@aztec/pxe@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/pxe/-/pxe-0.87.4.tgz#70c107693636b51a8366a12816b41fc354a7e2aa" + integrity sha512-zQoB4Bcpd1N2Ae+Jkt+5X0+OpErpRAgZA+6685OjzrCs9Dn3wnQdMJPuAIaCDjT4LRS0izl+qRfFLWnhzKnGRg== + dependencies: + "@aztec/bb-prover" "0.87.4" + "@aztec/bb.js" "0.87.4" + "@aztec/builder" "0.87.4" + "@aztec/constants" "0.87.4" + "@aztec/ethereum" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/key-store" "0.87.4" + "@aztec/kv-store" "0.87.4" + "@aztec/noir-protocol-circuits-types" "0.87.4" + "@aztec/noir-types" "0.87.4" + "@aztec/protocol-contracts" "0.87.4" + "@aztec/simulator" "0.87.4" + "@aztec/stdlib" "0.87.4" + koa "^2.16.1" + koa-router "^12.0.0" + lodash.omit "^4.5.0" + sha3 "^2.1.4" + tslib "^2.4.0" + viem "2.23.7" + +"@aztec/simulator@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/simulator/-/simulator-0.87.4.tgz#5ef72b7472fbf28d94e4a1502fd3a8daf9d80a0b" + integrity sha512-ufTRjFFX/3UvPQVhPxsfmMFXvUHHf2lyJgq9Grck/Es+0zzQzQl03bUi+w+6+pOgyCqaViiY2UG8dOjW5vEFlg== + dependencies: + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/noir-acvm_js" "0.87.4" + "@aztec/noir-noirc_abi" "0.87.4" + "@aztec/noir-protocol-circuits-types" "0.87.4" + "@aztec/noir-types" "0.87.4" + "@aztec/protocol-contracts" "0.87.4" + "@aztec/stdlib" "0.87.4" + "@aztec/telemetry-client" "0.87.4" + "@aztec/world-state" "0.87.4" + lodash.clonedeep "^4.5.0" + lodash.merge "^4.6.2" + tslib "^2.4.0" + +"@aztec/stdlib@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-0.87.4.tgz#05b99855580a75e697cbc8fd416f4561952ab721" + integrity sha512-QYBQ61Sx1QloTVF5klnMBdSBaaCwsHqAq4Zhxa9zfPSYx2ML/196GuH2coi+Zwn3+KPbXfAnhJzAlSR01yA4Pg== + dependencies: + "@aztec/bb.js" "0.87.4" + "@aztec/blob-lib" "0.87.4" + "@aztec/constants" "0.87.4" + "@aztec/ethereum" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/noir-noirc_abi" "0.87.4" "@google-cloud/storage" "^7.15.0" + axios "^1.9.0" + json-stringify-deterministic "1.0.12" lodash.chunk "^4.2.0" lodash.isequal "^4.5.0" lodash.omit "^4.5.0" @@ -176,6 +337,46 @@ viem "2.23.7" zod "^3.23.8" +"@aztec/telemetry-client@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/telemetry-client/-/telemetry-client-0.87.4.tgz#82df91da7b3e7dc31af0a1c2f10411ebee0746fc" + integrity sha512-bSaZJbp7vjsHj4LjmMWinXXvlqrVrQloTrcET9QZnf10IqroC5XEUbKSuoNmxzRqKHhnuv+AbJSyIL1HccRuLQ== + dependencies: + "@aztec/foundation" "0.87.4" + "@aztec/stdlib" "0.87.4" + "@opentelemetry/api" "^1.9.0" + "@opentelemetry/api-logs" "^0.55.0" + "@opentelemetry/core" "^1.28.0" + "@opentelemetry/exporter-logs-otlp-http" "^0.55.0" + "@opentelemetry/exporter-metrics-otlp-http" "^0.55.0" + "@opentelemetry/exporter-trace-otlp-http" "^0.55.0" + "@opentelemetry/host-metrics" "^0.35.4" + "@opentelemetry/otlp-exporter-base" "^0.55.0" + "@opentelemetry/resource-detector-gcp" "^0.32.0" + "@opentelemetry/resources" "^1.28.0" + "@opentelemetry/sdk-logs" "^0.55.0" + "@opentelemetry/sdk-metrics" "^1.28.0" + "@opentelemetry/sdk-trace-node" "^1.28.0" + "@opentelemetry/semantic-conventions" "^1.28.0" + prom-client "^15.1.3" + viem "2.23.7" + +"@aztec/world-state@0.87.4": + version "0.87.4" + resolved "https://registry.yarnpkg.com/@aztec/world-state/-/world-state-0.87.4.tgz#ce2b8b2586727b821638c7dab0701eb98e89fffa" + integrity sha512-/9gxoxhKSCRle2jQNAyyWucX1Jmlz/DAnhZ5oZl3RiA9w+IcVTuZeMy2vR8WiEuSucWo9moV2I8kZBqWhykMLQ== + dependencies: + "@aztec/constants" "0.87.4" + "@aztec/foundation" "0.87.4" + "@aztec/kv-store" "0.87.4" + "@aztec/merkle-tree" "0.87.4" + "@aztec/native" "0.87.4" + "@aztec/protocol-contracts" "0.87.4" + "@aztec/stdlib" "0.87.4" + "@aztec/telemetry-client" "0.87.4" + tslib "^2.4.0" + zod "^3.23.8" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" @@ -513,6 +714,18 @@ resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-3.0.0.tgz#f11fdf7dda62fe8e336fa7c6642d9041f30356d7" integrity sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -768,6 +981,41 @@ dependencies: vary "^1.1.2" +"@lmdb/lmdb-darwin-arm64@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.3.0.tgz#8120e59facefd54c79b86761ef308db2833a494d" + integrity sha512-LipbQobyEfQtu8WixasaFUZZ+JCGlho4OWwWIQ5ol0rB1RKkcZvypu7sS1CBvofBGVAa3vbOh8IOGQMrbmL5dg== + +"@lmdb/lmdb-darwin-x64@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.3.0.tgz#3e5c7a1ea0e1d5c9c38ad89c9d1dce91e883924c" + integrity sha512-yA+9P+ZeA3vg76BLXWeUomIAjxfmSmR2eg8fueHXDg5Xe1Xmkl9JCKuHXUhtJ+mMVcH12d5k4kJBLbyXTadfGQ== + +"@lmdb/lmdb-linux-arm64@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.3.0.tgz#cc04c17a35710a46432306c7c12a941aa1590722" + integrity sha512-OeWvSgjXXZ/zmtLqqL78I3910F6UYpUubmsUU+iBHo6nTtjkpXms95rJtGrjkWQqwswKBD7xSMplbYC4LEsiPA== + +"@lmdb/lmdb-linux-arm@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.3.0.tgz#f36a07eb8f1656cc989ffa4e5a014b18d133079f" + integrity sha512-EDYrW9kle+8wI19JCj/PhRnGoCN9bked5cdOPdo1wdgH/HzjgoLPFTn9DHlZccgTEVhp3O+bpWXdN/rWySVvjw== + +"@lmdb/lmdb-linux-x64@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.3.0.tgz#0b4b0a73ee69d1d98695905065ff1de415f5ac72" + integrity sha512-wDd02mt5ScX4+xd6g78zKBr6ojpgCJCTrllCAabjgap5FzuETqOqaQfKhO+tJuGWv/J5q+GIds6uY7rNFueOxg== + +"@lmdb/lmdb-win32-arm64@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.3.0.tgz#e631dbe9bee71d00fb49b158b460a2306429ce46" + integrity sha512-COotWhHJgzXULLiEjOgWQwqig6PoA+6ji6W+sDl6M1HhMXWIymEVHGs0edsVSNtsNSCAWMxJgR3asv6FNX/2EA== + +"@lmdb/lmdb-win32-x64@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.3.0.tgz#02f81fa98bcd527a493de6009ba65e3758a322c4" + integrity sha512-kqUgQH+l8HDbkAapx+aoko7Ez4X4DqkIraOqY/k0QY5EN/iialVlFpBUXh4wFXzirdmEVjbIUMrceUh0Kh8LeA== + "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11" @@ -822,6 +1070,261 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.1.tgz#5738f6d765710921e7a751e00c20ae091ed8db0f" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== +"@opentelemetry/api-logs@0.55.0", "@opentelemetry/api-logs@^0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz#5cd7461820d864600250deb3803c32367a6bb2d2" + integrity sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg== + dependencies: + "@opentelemetry/api" "^1.3.0" + +"@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.4.0", "@opentelemetry/api@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== + +"@opentelemetry/context-async-hooks@1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz#4f76280691a742597fd0bf682982126857622948" + integrity sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA== + +"@opentelemetry/core@1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.28.0.tgz#e97290a3e36c59480ffb2287fe2713c66749274c" + integrity sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw== + dependencies: + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/core@1.30.1", "@opentelemetry/core@^1.0.0", "@opentelemetry/core@^1.28.0": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.30.1.tgz#a0b468bb396358df801881709ea38299fc30ab27" + integrity sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ== + dependencies: + "@opentelemetry/semantic-conventions" "1.28.0" + +"@opentelemetry/exporter-logs-otlp-http@^0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.55.0.tgz#d9879d36cdf5a114fae662a7f83ef832bdee4cf0" + integrity sha512-fpFObWWq+DoLVrBU2dyMEaVkibByEkmKQZIUIjW/4j7lwIsTgW7aJCoD9RYFVB/tButcqov5Es2C0J2wTjM2tg== + dependencies: + "@opentelemetry/api-logs" "0.55.0" + "@opentelemetry/core" "1.28.0" + "@opentelemetry/otlp-exporter-base" "0.55.0" + "@opentelemetry/otlp-transformer" "0.55.0" + "@opentelemetry/sdk-logs" "0.55.0" + +"@opentelemetry/exporter-metrics-otlp-http@^0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.55.0.tgz#461aa311899df3f6221b3d9bc231040a378ec6d8" + integrity sha512-3MqDNZzgXmLaiVo9gs9kCw/zPEaZYKIT0+jeMWscWHL/jrA9BNArTOYWUHEPabAQmWQ2BbvgNC7yzlqjoynQwA== + dependencies: + "@opentelemetry/core" "1.28.0" + "@opentelemetry/otlp-exporter-base" "0.55.0" + "@opentelemetry/otlp-transformer" "0.55.0" + "@opentelemetry/resources" "1.28.0" + "@opentelemetry/sdk-metrics" "1.28.0" + +"@opentelemetry/exporter-trace-otlp-http@^0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.55.0.tgz#275e458aa3bd33c52d77f4357706bcfa53d27f28" + integrity sha512-lMiNic63EVHpW+eChmLD2CieDmwQBFi72+LFbh8+5hY0ShrDGrsGP/zuT5MRh7M/vM/UZYO/2A/FYd7CMQGR7A== + dependencies: + "@opentelemetry/core" "1.28.0" + "@opentelemetry/otlp-exporter-base" "0.55.0" + "@opentelemetry/otlp-transformer" "0.55.0" + "@opentelemetry/resources" "1.28.0" + "@opentelemetry/sdk-trace-base" "1.28.0" + +"@opentelemetry/host-metrics@^0.35.4": + version "0.35.5" + resolved "https://registry.yarnpkg.com/@opentelemetry/host-metrics/-/host-metrics-0.35.5.tgz#1bb7453558b2623c8331d0fea5b7766c995a68f1" + integrity sha512-Zf9Cjl7H6JalspnK5KD1+LLKSVecSinouVctNmUxRy+WP+20KwHq+qg4hADllkEmJ99MZByLLmEmzrr7s92V6g== + dependencies: + systeminformation "5.23.8" + +"@opentelemetry/otlp-exporter-base@0.55.0", "@opentelemetry/otlp-exporter-base@^0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.55.0.tgz#db17332497e4a97e4ca85d394fb91cbbcfd76d84" + integrity sha512-iHQI0Zzq3h1T6xUJTVFwmFl5Dt5y1es+fl4kM+k5T/3YvmVyeYkSiF+wHCg6oKrlUAJfk+t55kaAu3sYmt7ZYA== + dependencies: + "@opentelemetry/core" "1.28.0" + "@opentelemetry/otlp-transformer" "0.55.0" + +"@opentelemetry/otlp-transformer@0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.55.0.tgz#316b9325983e660cb4f18cb76fa84ce1c0cdad42" + integrity sha512-kVqEfxtp6mSN2Dhpy0REo1ghP4PYhC1kMHQJ2qVlO99Pc+aigELjZDfg7/YKmL71gR6wVGIeJfiql/eXL7sQPA== + dependencies: + "@opentelemetry/api-logs" "0.55.0" + "@opentelemetry/core" "1.28.0" + "@opentelemetry/resources" "1.28.0" + "@opentelemetry/sdk-logs" "0.55.0" + "@opentelemetry/sdk-metrics" "1.28.0" + "@opentelemetry/sdk-trace-base" "1.28.0" + protobufjs "^7.3.0" + +"@opentelemetry/propagator-b3@1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.30.1.tgz#b73321e5f30f062a9229887a4aa80c771107fdd2" + integrity sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ== + dependencies: + "@opentelemetry/core" "1.30.1" + +"@opentelemetry/propagator-jaeger@1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.30.1.tgz#c06c9dacbe818b80cfb13c4dbf0b57df1ad26b71" + integrity sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg== + dependencies: + "@opentelemetry/core" "1.30.1" + +"@opentelemetry/resource-detector-gcp@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.32.0.tgz#4b0fcf8dd09891945250a3f8b0e87fc7c3e6bd49" + integrity sha512-+WdWSG4sZAfsk5DvRj/OUmatsHc+7Rdz8xdmxQdr1jpfUWjcKwOkGA4rondIf2ou/qPLOeYCs6hLLexsRdZaUw== + dependencies: + "@opentelemetry/core" "^1.0.0" + "@opentelemetry/resources" "^1.10.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + gcp-metadata "^6.0.0" + +"@opentelemetry/resources@1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.28.0.tgz#c8c27ae7559c817f9d117f1bf96d76f893fb29f5" + integrity sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw== + dependencies: + "@opentelemetry/core" "1.28.0" + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/resources@1.30.1", "@opentelemetry/resources@^1.10.0", "@opentelemetry/resources@^1.28.0": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.30.1.tgz#a4eae17ebd96947fdc7a64f931ca4b71e18ce964" + integrity sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA== + dependencies: + "@opentelemetry/core" "1.30.1" + "@opentelemetry/semantic-conventions" "1.28.0" + +"@opentelemetry/sdk-logs@0.55.0", "@opentelemetry/sdk-logs@^0.55.0": + version "0.55.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.55.0.tgz#78844e502167723a258c75a6b4f3de3900c13ea3" + integrity sha512-TSx+Yg/d48uWW6HtjS1AD5x6WPfLhDWLl/WxC7I2fMevaiBuKCuraxTB8MDXieCNnBI24bw9ytyXrDCswFfWgA== + dependencies: + "@opentelemetry/api-logs" "0.55.0" + "@opentelemetry/core" "1.28.0" + "@opentelemetry/resources" "1.28.0" + +"@opentelemetry/sdk-metrics@1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.28.0.tgz#257b5295bbe9de1ad31c5e8cb43a660c25911d20" + integrity sha512-43tqMK/0BcKTyOvm15/WQ3HLr0Vu/ucAl/D84NO7iSlv6O4eOprxSHa3sUtmYkaZWHqdDJV0AHVz/R6u4JALVQ== + dependencies: + "@opentelemetry/core" "1.28.0" + "@opentelemetry/resources" "1.28.0" + +"@opentelemetry/sdk-metrics@^1.28.0": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz#70e2bcd275b9df6e7e925e3fe53cfe71329b5fc8" + integrity sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog== + dependencies: + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" + +"@opentelemetry/sdk-trace-base@1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.28.0.tgz#6195dc8cd78bd74394cf54c67c5cbd8d1528516c" + integrity sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA== + dependencies: + "@opentelemetry/core" "1.28.0" + "@opentelemetry/resources" "1.28.0" + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/sdk-trace-base@1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz#41a42234096dc98e8f454d24551fc80b816feb34" + integrity sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg== + dependencies: + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" + "@opentelemetry/semantic-conventions" "1.28.0" + +"@opentelemetry/sdk-trace-node@^1.28.0": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.1.tgz#bd7d68fcfb4d4ae76ea09810df9668b7dd09a2e5" + integrity sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ== + dependencies: + "@opentelemetry/context-async-hooks" "1.30.1" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/propagator-b3" "1.30.1" + "@opentelemetry/propagator-jaeger" "1.30.1" + "@opentelemetry/sdk-trace-base" "1.30.1" + semver "^7.5.2" + +"@opentelemetry/semantic-conventions@1.27.0": + version "1.27.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz#1a857dcc95a5ab30122e04417148211e6f945e6c" + integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg== + +"@opentelemetry/semantic-conventions@1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz#337fb2bca0453d0726696e745f50064411f646d6" + integrity sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA== + +"@opentelemetry/semantic-conventions@^1.27.0", "@opentelemetry/semantic-conventions@^1.28.0": + version "1.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.33.0.tgz#ec8ebd2ac768ab366aff94e0e7f27e8ae24fa49f" + integrity sha512-TIpZvE8fiEILFfTlfPnltpBaD3d9/+uQHVCyC3vfdh6WfCXKhNFzoP5RyDDIndfvZC5GrA4pyEDNyjPloJud+w== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + "@scure/base@~1.2.2", "@scure/base@~1.2.4": version "1.2.4" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.4.tgz#002eb571a35d69bdb4c214d0995dff76a8dcd2a9" @@ -926,6 +1429,13 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== +"@types/dotenv@^8.2.3": + version "8.2.3" + resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-8.2.3.tgz#c97b3c5b2e97ff3873793a000999e86cd66ff354" + integrity sha512-g2FXjlDX/cYuc5CiQvyU/6kkbP1JtmGzh0obW50zD7OKeILVL0NSpPWLXVfqoAGQjom2/SLLx9zHq0KXvD6mbw== + dependencies: + dotenv "*" + "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -972,6 +1482,13 @@ dependencies: undici-types "~6.19.2" +"@types/node@>=13.7.0": + version "22.15.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.18.tgz#2f8240f7e932f571c2d45f555ba0b6c3f7a75963" + integrity sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg== + dependencies: + undici-types "~6.21.0" + "@types/request@^2.48.8": version "2.48.12" resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" @@ -1082,6 +1599,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1101,6 +1623,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@^3.0.3: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -1121,6 +1648,16 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.1, array-back@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + arrify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" @@ -1148,10 +1685,10 @@ atomic-sleep@^1.0.0: resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -axios@^1.7.2: - version "1.7.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" - integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== +axios@^1.8.2, axios@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.9.0.tgz#25534e3b72b54540077d33046f77e3b8d7081901" + integrity sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -1242,15 +1779,10 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +bintrees@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" + integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== brace-expansion@^1.1.7: version "1.1.11" @@ -1274,11 +1806,6 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - browserslist@^4.23.1: version "4.23.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" @@ -1395,7 +1922,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1403,6 +1930,11 @@ chalk@^4.0.0, chalk@^4.0.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^5.4.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.4.4.tgz#0d52b507d8fb8f204343432381d1a6d7bff97a02" + integrity sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -1489,6 +2021,26 @@ comlink@^4.4.1: resolved "https://registry.yarnpkg.com/comlink/-/comlink-4.4.1.tgz#e568b8e86410b809e8600eb2cf40c189371ef981" integrity sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q== +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== + dependencies: + array-back "^4.0.2" + chalk "^2.4.2" + table-layout "^1.0.2" + typical "^5.2.0" + commander@^12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" @@ -1518,11 +2070,21 @@ content-type@^1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +convert-hex@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" + integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== + convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +convert-string@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-string/-/convert-string-0.1.0.tgz#79ce41a9bb0d03bcf72cdc6a8f3c56fbbc64410a" + integrity sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA== + cookies@~0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.9.1.tgz#3ffed6f60bb4fb5f146feeedba50acc418af67e3" @@ -1563,6 +2125,15 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + dateformat@^4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" @@ -1592,19 +2163,16 @@ deep-equal@~1.0.1: resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw== +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deepmerge@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -deferred-leveldown@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz#39802715fda6ec06d0159a8b28bd1c7e2b1cf0bf" - integrity sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg== - dependencies: - abstract-leveldown "^7.2.0" - inherits "^2.0.3" - define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" @@ -1664,6 +2232,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +dotenv@*, dotenv@^16.4.7: + version "16.4.7" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26" + integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== + dotenv@^16.0.3: version "16.4.5" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" @@ -1688,6 +2261,11 @@ duplexify@^4.1.3: readable-stream "^3.1.1" stream-shift "^1.0.2" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -1712,19 +2290,6 @@ electron-to-chromium@^1.5.4: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== -elliptic@^6.5.4: - version "6.5.7" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b" - integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" @@ -1735,6 +2300,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encodeurl@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -1913,11 +2483,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fflate@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" - integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -1937,6 +2502,13 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1955,6 +2527,14 @@ follow-redirects@^1.15.6: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.8.tgz#ae67b97ae32e0a7b36066a5448938374ec18d13d" integrity sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + form-data@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.3.tgz#f9bcf87418ce748513c0c3494bb48ec270c97acc" @@ -1995,11 +2575,6 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: version "6.7.1" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.7.1.tgz#ebd9f7093ede3ba502685e73390248bb5b7f71fb" @@ -2011,7 +2586,7 @@ gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: node-fetch "^2.6.9" uuid "^9.0.1" -gcp-metadata@^6.1.0: +gcp-metadata@^6.0.0, gcp-metadata@^6.1.0: version "6.1.1" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.1.tgz#f65aa69f546bc56e116061d137d3f5f90bdec494" integrity sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A== @@ -2080,6 +2655,18 @@ get-stream@^6.0.0, get-stream@^6.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +glob@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.2.tgz#3261e3897bbc603030b041fd77ba636022d51ce0" + integrity sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ== + dependencies: + foreground-child "^3.1.0" + jackspeak "^4.0.1" + minimatch "^10.0.0" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -2178,7 +2765,7 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -2198,15 +2785,6 @@ help-me@^5.0.0: resolved "https://registry.yarnpkg.com/help-me/-/help-me-5.0.0.tgz#b1ebe63b967b74060027c2ac61f9be12d354a6f6" integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg== -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - html-entities@^2.5.2: version "2.5.3" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.3.tgz#d8a0680bd24ee35af8c74d6d4b695627dde61c00" @@ -2298,6 +2876,16 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +idb-keyval@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.2.tgz#b0171b5f73944854a3291a5cdba8e12768c4854a" + integrity sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg== + +idb@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/idb/-/idb-8.0.3.tgz#c91e558f15a8d53f1d7f53a094d226fc3ad71fd9" + integrity sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg== + ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -2329,7 +2917,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2446,6 +3034,13 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.1.tgz#96876030f450502047fc7e8c7fcf8ce8124e43ae" + integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + jake@^10.8.5: version "10.9.2" resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" @@ -2849,6 +3444,11 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-stringify-deterministic@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/json-stringify-deterministic/-/json-stringify-deterministic-1.0.12.tgz#aaa3f907466ed01e3afd77b898d0a2b3b132820a" + integrity sha512-q3PN0lbUdv0pmurkBNdJH3pfFvOTL/Zp0lquqpvcjfKzt6Y0j49EPHAmVHCAS4Ceq/Y+PejWTzyiVpoY71+D6g== + json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" @@ -2931,10 +3531,10 @@ koa-router@^12.0.0: methods "^1.1.2" path-to-regexp "^6.2.1" -koa@^2.14.2: - version "2.15.3" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.15.3.tgz#062809266ee75ce0c75f6510a005b0e38f8c519a" - integrity sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg== +koa@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.16.1.tgz#ba1aae04d8319d7dac4a17a0d289d7482501e194" + integrity sha512-umfX9d3iuSxTQP4pnzLOz0HKnPg0FaUUIKcye2lOiz3KPu1Y3M3xlz76dISdFPQs37P9eJz1wUpcTS6KDPn9fA== dependencies: accepts "^1.3.5" cache-content-type "^1.0.0" @@ -2967,19 +3567,6 @@ level-concat-iterator@^3.0.0: dependencies: catering "^2.1.0" -level-errors@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-3.0.1.tgz#4bed48a33108cd83b0e39fdf9bbd84e96fbbef9f" - integrity sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ== - -level-iterator-stream@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-5.0.0.tgz#85b3438e1b4c54ce5aa8c0eb973cfb628117df9e" - integrity sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.4.0" - level-supports@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f" @@ -2994,18 +3581,6 @@ leveldown@^6.1.1: napi-macros "~2.0.0" node-gyp-build "^4.3.0" -levelup@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-5.1.1.tgz#9f99699f414ac084a3f8a28fc262a1f49cd7a52c" - integrity sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg== - dependencies: - catering "^2.0.0" - deferred-leveldown "^7.0.0" - level-errors "^3.0.1" - level-iterator-stream "^5.0.0" - level-supports "^2.0.1" - queue-microtask "^1.2.3" - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -3016,6 +3591,25 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lmdb@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-3.3.0.tgz#85149c8178a3fa57a9230bd1adf9fd96ceb9125f" + integrity sha512-MgJocUI6QEiSXQBFWLeyo1R7eQj8Rke5dlPxX0KFwli8/bsCxpM/KbXO5y0qmV/5llQ3wpneDWcTYxa+4vn8iQ== + dependencies: + msgpackr "^1.11.2" + node-addon-api "^6.1.0" + node-gyp-build-optional-packages "5.2.2" + ordered-binary "^1.5.3" + weak-lru-cache "^1.2.2" + optionalDependencies: + "@lmdb/lmdb-darwin-arm64" "3.3.0" + "@lmdb/lmdb-darwin-x64" "3.3.0" + "@lmdb/lmdb-linux-arm" "3.3.0" + "@lmdb/lmdb-linux-arm64" "3.3.0" + "@lmdb/lmdb-linux-x64" "3.3.0" + "@lmdb/lmdb-win32-arm64" "3.3.0" + "@lmdb/lmdb-win32-x64" "3.3.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3023,11 +3617,21 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.chunk@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" integrity sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w== +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + lodash.clonedeepwith@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4" @@ -3043,6 +3647,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.omit@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" @@ -3053,6 +3662,16 @@ lodash.times@^4.3.2: resolved "https://registry.yarnpkg.com/lodash.times/-/lodash.times-4.3.2.tgz#3e1f2565c431754d54ab57f2ed1741939285ca1d" integrity sha512-FfaJzl0SA35CRPDh5SWe2BTght6y5KSK7yJv166qIp/8q7qOwBDCvuDZE2RUSMRpBkLF6rZKbLEUoTmaP3qg6A== +long@^5.0.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/long/-/long-5.3.2.tgz#1d84463095999262d7d7b7f8bfd4a8cc55167f83" + integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== + +lru-cache@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" + integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3060,11 +3679,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -ltgt@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== - make-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" @@ -3094,17 +3708,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memdown@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-6.1.1.tgz#ab52fae1a029affb40af60fda9d247a5733e4dc3" - integrity sha512-vh2RiuVrn6Vv73088C1KzLwy9+hhRwoZsgddYqIoVuFFrcoc2Rt+lq/KrmkFn6ulko7AtQ0AvqtYid35exb38A== - dependencies: - abstract-leveldown "^7.2.0" - buffer "^6.0.3" - functional-red-black-tree "^1.0.1" - inherits "^2.0.1" - ltgt "^2.2.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3155,15 +3758,17 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" + integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== + dependencies: + brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -3184,6 +3789,11 @@ minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -3235,6 +3845,11 @@ node-addon-api@^5.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-fetch@^2.6.9: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -3288,6 +3903,11 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== +ohash@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-2.0.11.tgz#60b11e8cff62ca9dee88d13747a5baa145f5900b" + integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== + on-exit-leak-free@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" @@ -3326,6 +3946,11 @@ only@~0.0.2: resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ== +ordered-binary@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.3.tgz#8bee2aa7a82c3439caeb1e80c272fd4cf51170fb" + integrity sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA== + ox@0.6.7: version "0.6.7" resolved "https://registry.yarnpkg.com/ox/-/ox-0.6.7.tgz#afd53f2ecef68b8526660e9d29dee6e6b599a832" @@ -3365,6 +3990,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + pako@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" @@ -3410,6 +4040,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" + integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + path-to-regexp@^6.2.1: version "6.2.2" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" @@ -3425,6 +4063,13 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidusage@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-4.0.1.tgz#4e03e0e54330d3cefb3f733902ca2d8755f0ed6f" + integrity sha512-yCH2dtLHfEBnzlHUJymR/Z1nN2ePG3m392Mv8TFlTP1B0xkpMQNHAnfkY0n2tAi6ceKO6YWhxYfZ96V4vVkh/g== + dependencies: + safe-buffer "^5.2.1" + pino-abstract-transport@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz#de241578406ac7b8a33ce0d77ae6e8a0b3b68a60" @@ -3499,6 +4144,14 @@ process-warning@^4.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-4.0.0.tgz#581e3a7a1fb456c5f4fd239f76bce75897682d5a" integrity sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw== +prom-client@^15.1.3: + version "15.1.3" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-15.1.3.tgz#69fa8de93a88bc9783173db5f758dc1c69fa8fc2" + integrity sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g== + dependencies: + "@opentelemetry/api" "^1.4.0" + tdigest "^0.1.1" + prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -3507,6 +4160,24 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +protobufjs@^7.3.0: + version "7.5.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.5.2.tgz#030568499b1ef400a780b2d78488ca549ebcb169" + integrity sha512-f2ls6rpO6G153Cy+o2XQ+Y0sARLOZ17+OGVLHrc3VUKcLHYKEKWbkSujdBWQXM7gKn5NTfp0XnRPZn1MIu8n9w== + 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" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -3557,7 +4228,7 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.1.1: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -3571,6 +4242,11 @@ real-require@^0.2.0: resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3646,6 +4322,11 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.5.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" @@ -3668,6 +4349,14 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +sha256@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sha256/-/sha256-0.2.0.tgz#73a0b418daab7035bff86e8491e363412fc2ab05" + integrity sha512-kTWMJUaez5iiT9CcMv8jSq6kMhw3ST0uRdcIWl3D77s6AsLXNXRp3heeqqfu5+Dyfu4hwpQnMzhqHh8iNQxw0w== + dependencies: + convert-hex "~0.1.0" + convert-string "~0.1.0" + sha3@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" @@ -3702,6 +4391,11 @@ signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -3727,6 +4421,14 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.21: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -3771,6 +4473,11 @@ stream-shift@^1.0.2: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== +string-format@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -3779,6 +4486,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -3788,6 +4504,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -3795,6 +4520,13 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -3802,6 +4534,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -3858,6 +4597,28 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +systeminformation@5.23.8: + version "5.23.8" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.23.8.tgz#b8efa73b36221cbcb432e3fe83dc1878a43f986a" + integrity sha512-Osd24mNKe6jr/YoXLLK3k8TMdzaxDffhpCxgkfgBHcapykIkd50HXThM3TCEuHO2pPuCsSx2ms/SunqhU5MmsQ== + +table-layout@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + +tdigest@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" + integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== + dependencies: + bintrees "1.0.2" + teeny-request@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" @@ -3912,6 +4673,16 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +ts-command-line-args@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== + dependencies: + chalk "^4.1.0" + command-line-args "^5.1.1" + command-line-usage "^6.1.0" + string-format "^2.0.0" + ts-jest@^29.1.1: version "29.2.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" @@ -3979,11 +4750,26 @@ typescript@^5.4.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + undici-types@~6.19.2: version "6.19.8" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + undici@^5.28.5: version "5.28.5" resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.5.tgz#b2b94b6bf8f1d919bc5a6f31f2c01deb02e54d4b" @@ -4059,6 +4845,11 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" +weak-lru-cache@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" + integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -4079,6 +4870,23 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wordwrapjs@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.2.0" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -4088,6 +4896,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"