From 65bb3aed8ceda047b71f4e578b1aa90e48369079 Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Fri, 5 Dec 2025 15:36:28 -0600 Subject: [PATCH 01/11] feat: Stacks executor route --- .github/workflows/publish.yml | 1 + Dockerfile.cli | 1 + cli/package.json | 6 + evm/ts/README.md | 6 +- evm/ts/src/ntt.ts | 8 +- foo.sh | 21 + package-lock.json | 27 + package.json | 2 + sdk/definitions/src/ntt.ts | 7 +- sdk/route/src/executor/consts.ts | 2 + sdk/route/src/executor/executor.ts | 187 +++++-- sdk/route/src/executor/utils.ts | 1 + sdk/route/src/types.ts | 57 ++ solana/ts/README.md | 4 + solana/ts/sdk/ntt.ts | 6 +- stacks/ts/.gitignore | 2 + stacks/ts/README.md | 4 + stacks/ts/jest.config.ts | 18 + stacks/ts/package.json | 69 +++ stacks/ts/src/constants.ts | 15 + stacks/ts/src/index.ts | 12 + stacks/ts/src/ntt.ts | 861 +++++++++++++++++++++++++++++ stacks/ts/src/nttWithExecutor.ts | 160 ++++++ stacks/ts/tsconfig.cjs.json | 9 + stacks/ts/tsconfig.esm.json | 9 + stacks/ts/tsconfig.test.json | 11 + sui/ts/README.md | 4 + sui/ts/src/ntt.ts | 5 +- 28 files changed, 1463 insertions(+), 52 deletions(-) create mode 100755 foo.sh create mode 100644 solana/ts/README.md create mode 100644 stacks/ts/.gitignore create mode 100644 stacks/ts/README.md create mode 100644 stacks/ts/jest.config.ts create mode 100644 stacks/ts/package.json create mode 100644 stacks/ts/src/constants.ts create mode 100644 stacks/ts/src/index.ts create mode 100644 stacks/ts/src/ntt.ts create mode 100644 stacks/ts/src/nttWithExecutor.ts create mode 100644 stacks/ts/tsconfig.cjs.json create mode 100644 stacks/ts/tsconfig.esm.json create mode 100644 stacks/ts/tsconfig.test.json create mode 100644 sui/ts/README.md diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 50214b0bb..e9ac31b86 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -40,6 +40,7 @@ jobs: --workspace sdk/definitions \ --workspace evm/ts \ --workspace solana \ + --workspace stacks \ --workspace sui \ --workspace sdk/route # OIDC authentication is used automatically by npm CLI 11.5.1+ diff --git a/Dockerfile.cli b/Dockerfile.cli index adf8b65c4..b457e08c0 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -48,6 +48,7 @@ COPY solana/package.json solana/package.json COPY solana/ts solana/ts COPY evm/ts evm/ts COPY solana/tsconfig.*.json solana/ +COPY stacks/ts stacks/ts COPY sui/ts sui/ts COPY cli/package.json cli/package.json COPY cli/package-lock.json cli/package-lock.json diff --git a/cli/package.json b/cli/package.json index 2da840da5..2775e87ad 100644 --- a/cli/package.json +++ b/cli/package.json @@ -40,6 +40,12 @@ "@wormhole-foundation/sdk-solana": "^4.7.0", "@wormhole-foundation/sdk-solana-core": "^4.7.0" }, + "@wormhole-foundation/sdk-stacks-ntt": { + "@wormhole-foundation/sdk-base": "^4.4.0", + "@wormhole-foundation/sdk-definitions": "^4.4.0", + "@wormhole-foundation/sdk-stacks": "^4.4.0", + "@wormhole-foundation/sdk-stacks-core": "^4.4.0" + }, "@wormhole-foundation/sdk-sui-ntt": { "@wormhole-foundation/sdk-base": "^4.7.0", "@wormhole-foundation/sdk-definitions": "^4.7.0", diff --git a/evm/ts/README.md b/evm/ts/README.md index bce99d064..2faa282b4 100644 --- a/evm/ts/README.md +++ b/evm/ts/README.md @@ -1,4 +1,8 @@ -## Evm Ntt Implementation +Evm Ntt Implementation +---------------------- + +> **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. + # Building diff --git a/evm/ts/src/ntt.ts b/evm/ts/src/ntt.ts index 6540b3f60..25086c39c 100644 --- a/evm/ts/src/ntt.ts +++ b/evm/ts/src/ntt.ts @@ -563,7 +563,11 @@ export class EvmNtt } // TODO: should this be some map of idx to transceiver? - async *redeem(attestations: Ntt.Attestation[]) { + async *redeem( + attestations: Ntt.Attestation[], + payer: AccountAddress, + recipient?: AccountAddress + ) { if (attestations.length !== this.xcvrs.length) throw new Error( "Not enough attestations for the registered Transceivers" @@ -648,7 +652,7 @@ export class EvmNtt async *completeInboundQueuedTransfer( fromChain: Chain, transceiverMessage: Ntt.Message, - payer?: AccountAddress + payer: AccountAddress ) { const tx = await this.manager.completeInboundQueuedTransfer.populateTransaction( diff --git a/foo.sh b/foo.sh new file mode 100755 index 000000000..57d8c6763 --- /dev/null +++ b/foo.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +npm ci + +npm i @wormhole-foundation/sdk@latest + +npm r -w evm/ts @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-evm @wormhole-foundation/sdk-evm-core +npm r -w sdk/definitions @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions +npm r -w sdk/examples @wormhole-foundation/sdk +npm r -w sdk/route @wormhole-foundation/sdk-connect +npm r -w solana @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-solana @wormhole-foundation/sdk-solana-core +npm r -w sui/ts @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-sui @wormhole-foundation/sdk-sui-core +npm r -w stacks/ts @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-stacks @wormhole-foundation/sdk-stacks-core + +npm i -w evm/ts --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-evm@latest @wormhole-foundation/sdk-evm-core@latest +npm i -w sdk/definitions --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest +npm i -w sdk/examples @wormhole-foundation/sdk@latest +npm i -w sdk/route --save-peer @wormhole-foundation/sdk-connect@latest +npm i -w solana --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-solana@latest @wormhole-foundation/sdk-solana-core@latest +npm i -w sui/ts --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-sui@latest @wormhole-foundation/sdk-sui-core@latest +npm i -w stacks/ts --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-stacks@latest @wormhole-foundation/sdk-stacks-core@latest diff --git a/package-lock.json b/package-lock.json index fa26cf2d9..d84b4ce50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "sdk/definitions", "evm/ts", "solana", + "stacks/ts", "sui/ts", "sdk/route", "sdk/examples", @@ -5370,6 +5371,10 @@ "node": ">=16" } }, + "node_modules/@wormhole-foundation/sdk-stacks-ntt": { + "resolved": "stacks/ts", + "link": true + }, "node_modules/@wormhole-foundation/sdk-sui": { "version": "4.7.1", "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui/-/sdk-sui-4.7.1.tgz", @@ -15666,6 +15671,28 @@ "version": "5.2.1", "license": "MIT" }, + "stacks/ts": { + "name": "@wormhole-foundation/sdk-stacks-ntt", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "@stacks/network": "^7.2.0", + "@stacks/transactions": "^7.2.0", + "@wormhole-foundation/sdk-definitions-ntt": "1.0.0" + }, + "devDependencies": { + "tsx": "^4.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@wormhole-foundation/sdk-base": "^4.6.0", + "@wormhole-foundation/sdk-definitions": "^4.6.0", + "@wormhole-foundation/sdk-stacks": "^4.6.0", + "@wormhole-foundation/sdk-stacks-core": "^4.6.0" + } + }, "sui/ts": { "name": "@wormhole-foundation/sdk-sui-ntt", "version": "0.5.0", diff --git a/package.json b/package.json index 802cb49e7..d34096302 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build:solana": "npm run build --workspace=sdk/definitions --workspace=solana", "build:evm": "npm run build --workspace=sdk/definitions --workspace=sdk/evm", "build:sui": "npm run build --workspace=sdk/definitions --workspace=sui/ts", + "build:stacks": "npm run build --workspace=sdk/definitions --workspace=stacks/ts", "typecheck:cli": "npm run typecheck --workspace=cli", "generate": "npm run generate --workspaces --if-present", "test": "npm run test --workspaces --if-present", @@ -39,6 +40,7 @@ "sdk/definitions", "evm/ts", "solana", + "stacks/ts", "sui/ts", "sdk/route", "sdk/examples", diff --git a/sdk/definitions/src/ntt.ts b/sdk/definitions/src/ntt.ts index 13111d15b..1aa9d63b8 100644 --- a/sdk/definitions/src/ntt.ts +++ b/sdk/definitions/src/ntt.ts @@ -263,12 +263,15 @@ export interface Ntt { /** * redeem redeems a set of Attestations to the corresponding transceivers on the destination chain * @param attestations The attestations to redeem, the length should be equal to the number of transceivers + * @param payer The account that will pay for the transaction + * @param recipient The recipient address (only used for Stacks, can be undefined for other platforms) * * TODO: replace with Map */ redeem( attestations: Ntt.Attestation[], - payer?: AccountAddress + payer: AccountAddress, + recipient?: AccountAddress ): AsyncGenerator>; /** Get the address for the account that custodies locked tokens */ @@ -370,7 +373,7 @@ export interface Ntt { completeInboundQueuedTransfer( fromChain: Chain, transceiverMessage: Ntt.Message, - payer?: AccountAddress + payer: AccountAddress ): AsyncGenerator>; /** diff --git a/sdk/route/src/executor/consts.ts b/sdk/route/src/executor/consts.ts index 23ad6fabe..1e9152302 100644 --- a/sdk/route/src/executor/consts.ts +++ b/sdk/route/src/executor/consts.ts @@ -21,6 +21,8 @@ export const getDefaultReferrerAddress = (chain: Chain): ChainAddress => { } else if (chainToPlatform(chain) === "Sui") { address = "0xbfa1240e48c622d97881473953be730091161b7931d89bd6afe667841cf69ef4"; + } else if (chainToPlatform(chain) === "Stacks") { + address = "ST117FG1AKZ7724AXYMMABVPE4G2MNQ453SNS0S3"; // TODO: update to actual referrer address } else { throw new Error(`No referrer address for chain ${chain}`); } diff --git a/sdk/route/src/executor/executor.ts b/sdk/route/src/executor/executor.ts index c6becc543..a5d303bc1 100644 --- a/sdk/route/src/executor/executor.ts +++ b/sdk/route/src/executor/executor.ts @@ -46,6 +46,7 @@ import { } from "./utils.js"; import { Ntt, NttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt"; import { + AccountAddress, isNative, relayInstructionsLayout, signedQuoteLayout, @@ -278,8 +279,10 @@ export class NttExecutorRoute toChain.config.nativeTokenDecimals ), eta: - finality.estimateFinalityTime(request.fromChain.chain) + - guardians.guardianAttestationEta * 1000, + request.fromChain.chain === "Stacks" + ? 10000 + : finality.estimateFinalityTime(request.fromChain.chain) + + guardians.guardianAttestationEta * 1000, expires, details: executorQuote, }; @@ -388,34 +391,56 @@ export class NttExecutorRoute } } - const relayRequests = []; + let relayInstructions: Uint8Array; - // Add the gas instruction - relayRequests.push({ - request: { - type: "GasInstruction" as const, - gasLimit, - msgValue, - }, - }); + const relayRequests = []; - // Add the gas drop-off instruction if applicable - if (dropOff > 0n) { + if (toChain.chain === "Stacks") { + // When transferring to Stacks, we use the StacksNttReceiveInstruction, which includes + // the pre-hashed recipient address (Stacks "universal" addresses are keccak256 hashes). + // The pre-hashed recipient address is used by executor to register the recipient + // with the Stacks addr32 contract if it is not already registered. relayRequests.push({ request: { - type: "GasDropOffInstruction" as const, - dropOff, - // If the recipient is undefined (e.g. the user hasn’t connected their wallet yet), - // we temporarily use a dummy address to fetch a quote. - // The recipient address is validated later in the `initiate` method, which will throw if it's still missing. + type: "StacksNttReceiveInstruction" as const, + nttManager: Buffer.from( + // TODO: is using Buffer correct? + params.normalizedParams.destinationContracts.manager + ), recipient: recipient - ? recipient.address.toUniversalAddress() - : new UniversalAddress(new Uint8Array(32)), + ? recipient.address.toUint8Array() + : new Uint8Array(new Uint8Array(32)), + gasDropOff: dropOff, }, }); + } else { + // Add the gas instruction + relayRequests.push({ + request: { + type: "GasInstruction" as const, + gasLimit, + msgValue, + }, + }); + + // Add the gas drop-off instruction if applicable + if (dropOff > 0n) { + relayRequests.push({ + request: { + type: "GasDropOffInstruction" as const, + dropOff, + // If the recipient is undefined (e.g. the user hasn't connected their wallet yet), + // we temporarily use a dummy address to fetch a quote. + // The recipient address is validated later in the `initiate` method, which will throw if it's still missing. + recipient: recipient + ? recipient.address.toUniversalAddress() + : new UniversalAddress(new Uint8Array(32)), + }, + }); + } } - const relayInstructions = serializeLayout(relayInstructionsLayout, { + relayInstructions = serializeLayout(relayInstructionsLayout, { requests: relayRequests, }); @@ -473,6 +498,12 @@ export class NttExecutorRoute ) { throw new Error("Gas drop-off recipient does not match"); } + if ( + request.type === "StacksNttReceiveInstruction" && + !encoding.bytes.equals(request.recipient, to.address.toUint8Array()) + ) { + throw new Error("Stacks recipient does not match"); + } }); const { fromChain } = request; @@ -548,11 +579,59 @@ export class NttExecutorRoute } const toChain = this.wh.getChain(receipt.to); + let recipient: AccountAddress | undefined; + + // When redeeming on Stacks, we need to get the pre-hashed recipient address + // from the StacksNttReceiveInstruction in case it needs to be registered. + if (receipt.to === "Stacks") { + const [txStatus] = await fetchStatus( + this.wh.network, + receipt.originTxs.at(-1)!.txid, + receipt.from + ); + + if (!txStatus) { + throw new Error("Failed to fetch transaction status"); + } + + const { relayInstructionsBytes } = txStatus.requestForExecution; + + const relayInstructionsDecoded = encoding.hex.decode( + relayInstructionsBytes + ); + + const relayInstructions = deserializeLayout( + relayInstructionsLayout, + relayInstructionsDecoded + ); + + const stacksInstruction = relayInstructions.requests.find( + ({ request }) => request.type === "StacksNttReceiveInstruction" + ); + + if ( + !stacksInstruction || + stacksInstruction.request.type !== "StacksNttReceiveInstruction" + ) { + throw new Error( + "No StacksNttReceiveInstruction found in relay instructions" + ); + } + + const recipientBytes = stacksInstruction.request.recipient; + const recipientAddress = encoding.bytes.decode(recipientBytes); + recipient = Wormhole.parseAddress(receipt.to, recipientAddress); + } + const ntt = await toChain.getProtocol("Ntt", { ntt: receipt.params.normalizedParams.destinationContracts, }); const sender = Wormhole.parseAddress(signer.chain(), signer.address()); - const completeXfer = ntt.redeem([receipt.attestation.attestation], sender); + const completeXfer = ntt.redeem( + [receipt.attestation.attestation], + sender, + recipient + ); const txids = await signSendWait(toChain, completeXfer, signer); return { @@ -576,30 +655,50 @@ export class NttExecutorRoute const { recipientChain, trimmedAmount } = vaa.payload["nttManagerPayload"].payload; - const token = canonicalAddress({ - chain: vaa.emitterChain, - address: vaa.payload["nttManagerPayload"].payload.sourceToken, - }); - const manager = canonicalAddress({ - chain: vaa.emitterChain, - address: vaa.payload["sourceNttManager"], - }); - const whTransceiver = - chainToPlatform(vaa.emitterChain) === "Solana" - ? manager - : canonicalAddress({ - chain: vaa.emitterChain, - address: vaa.emitterAddress, - }); - - const dstInfo = NttRoute.resolveDestinationNttContracts( - this.staticConfig.ntt, - { + let token: string, manager: string, whTransceiver: string; + let dstInfo: Ntt.Contracts; + + if (chainToPlatform(vaa.emitterChain) === "Stacks") { + const { stacksConfig, dstInfo: stacksDstInfo } = + NttRoute.resolveDestinationNttContractsStacksEmitter( + this.staticConfig.ntt, + vaa.emitterAddress, + recipientChain + ); + + token = stacksConfig.token; + manager = stacksConfig.manager; + whTransceiver = stacksConfig.transceiver.find( + (t) => t.type === "wormhole" + )!.address; + + dstInfo = stacksDstInfo; + } else { + token = canonicalAddress({ + chain: vaa.emitterChain, + address: vaa.payload["nttManagerPayload"].payload.sourceToken, + }); + manager = canonicalAddress({ chain: vaa.emitterChain, address: vaa.payload["sourceNttManager"], - }, - recipientChain - ); + }); + whTransceiver = + chainToPlatform(vaa.emitterChain) === "Solana" + ? manager + : canonicalAddress({ + chain: vaa.emitterChain, + address: vaa.emitterAddress, + }); + + dstInfo = NttRoute.resolveDestinationNttContracts( + this.staticConfig.ntt, + { + chain: vaa.emitterChain, + address: vaa.payload["sourceNttManager"], + }, + recipientChain + ); + } const amt = amount.fromBaseUnits( trimmedAmount.amount, diff --git a/sdk/route/src/executor/utils.ts b/sdk/route/src/executor/utils.ts index ad70b0e32..07900c345 100644 --- a/sdk/route/src/executor/utils.ts +++ b/sdk/route/src/executor/utils.ts @@ -110,6 +110,7 @@ export async function fetchSignedQuote( export interface StatusResponse extends RelayData { signedQuote: SignedQuote; estimatedCost: string; + requestForExecution: RequestForExecution; } // Fetch Status diff --git a/sdk/route/src/types.ts b/sdk/route/src/types.ts index b6dcd1caa..67bf24474 100644 --- a/sdk/route/src/types.ts +++ b/sdk/route/src/types.ts @@ -15,6 +15,7 @@ import { TransferReceipt as _TransferReceipt, amount, canonicalAddress, + encoding, isAttested, isCompleted, isDestinationQueued, @@ -30,6 +31,10 @@ import { toUniversal, } from "@wormhole-foundation/sdk-connect"; import { MultiTokenNtt, Ntt } from "@wormhole-foundation/sdk-definitions-ntt"; +import { + keccak256, + UniversalAddress, +} from "@wormhole-foundation/sdk-definitions"; import { trackAxelar, trackExecutor } from "./tracking.js"; export namespace NttRoute { @@ -270,6 +275,58 @@ export namespace NttRoute { throw new Error("Cannot find Ntt contracts in config for: " + address); } + export function resolveDestinationNttContractsStacksEmitter( + config: Config, + emitterAddress: UniversalAddress, + dstChain: Chain + ): { stacksConfig: TokenConfig; dstInfo: Ntt.Contracts } { + const emitterLower = emitterAddress.toString().toLowerCase(); + + for (const tokens of Object.values(config.tokens)) { + for (const tokenConfig of tokens) { + if (tokenConfig.chain === "Stacks") { + const whTransceiver = tokenConfig.transceiver.find( + (t) => t.type === "wormhole" + ); + if (whTransceiver) { + // The emitter address on the VAA is the keccak256 hash of the transceiver address + const hash = keccak256(whTransceiver.address); + const hashHex = encoding.hex + .encode(hash, true) + .toString() + .toLowerCase(); + if (hashHex === emitterLower) { + // Find the destination config in the same token group + const remote = tokens.find((tc) => tc.chain === dstChain); + if (!remote) { + throw new Error( + `Cannot find destination Ntt contracts in config for chain: ${dstChain}` + ); + } + + const dstInfo: Ntt.Contracts = { + token: remote.unwrapsOnRedeem ? "native" : remote.token, + manager: remote.manager, + transceiver: { + wormhole: remote.transceiver.find( + (v) => v.type === "wormhole" + )!.address, + }, + quoter: remote.quoter, + svmShims: remote.svmShims, + }; + + return { stacksConfig: tokenConfig, dstInfo }; + } + } + } + } + } + throw new Error( + `Cannot find Stacks NTT config for emitter: ${emitterAddress}` + ); + } + // returns true if the amount is greater than 95% of the capacity // useful for warning about the possibility of a transfer being queued export function isCapacityThresholdExceeded( diff --git a/solana/ts/README.md b/solana/ts/README.md new file mode 100644 index 000000000..dcbc368f3 --- /dev/null +++ b/solana/ts/README.md @@ -0,0 +1,4 @@ +Solana Ntt Implementation +------------------------- + +> **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. diff --git a/solana/ts/sdk/ntt.ts b/solana/ts/sdk/ntt.ts index 99fcc04b0..b8894c887 100644 --- a/solana/ts/sdk/ntt.ts +++ b/solana/ts/sdk/ntt.ts @@ -1249,7 +1249,11 @@ export class SolanaNtt } } - async *redeem(attestations: Ntt.Attestation[], payer: AccountAddress) { + async *redeem( + attestations: Ntt.Attestation[], + payer: AccountAddress, + recipient?: AccountAddress + ) { const config = await this.getConfig(); if (config.paused) throw new Error("Contract is paused"); diff --git a/stacks/ts/.gitignore b/stacks/ts/.gitignore new file mode 100644 index 000000000..34112f8f2 --- /dev/null +++ b/stacks/ts/.gitignore @@ -0,0 +1,2 @@ +dist/* +node_modules/ diff --git a/stacks/ts/README.md b/stacks/ts/README.md new file mode 100644 index 000000000..421fdcd98 --- /dev/null +++ b/stacks/ts/README.md @@ -0,0 +1,4 @@ +Stacks Ntt Implementation +------------------------- + +> **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. diff --git a/stacks/ts/jest.config.ts b/stacks/ts/jest.config.ts new file mode 100644 index 000000000..23159500c --- /dev/null +++ b/stacks/ts/jest.config.ts @@ -0,0 +1,18 @@ +import type { JestConfigWithTsJest } from "ts-jest"; + +const jestConfig: JestConfigWithTsJest = { + verbose: true, + testTimeout: 10000000, + roots: ["./__tests__"], + testMatch: ["**/*.test.ts"], + modulePathIgnorePatterns: ["mocks"], + preset: "ts-jest", + moduleNameMapper: { + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + "^.+\\.tsx?$": ["ts-jest", { tsconfig: "tsconfig.test.json" }], + }, +}; + +export default jestConfig; diff --git a/stacks/ts/package.json b/stacks/ts/package.json new file mode 100644 index 000000000..3dddd9812 --- /dev/null +++ b/stacks/ts/package.json @@ -0,0 +1,69 @@ +{ + "name": "@wormhole-foundation/sdk-stacks-ntt", + "version": "1.0.0", + "repository": { + "type": "git", + "url": "git+https://github.com/wormhole-foundation/native-token-transfers.git" + }, + "bugs": { + "url": "https://github.com/wormhole-foundation/native-token-transfers" + }, + "directories": { + "test": "__tests__" + }, + "license": "Apache-2.0", + "main": "./dist/cjs/index.js", + "types": "./dist/cjs/index.d.ts", + "module": "./dist/esm/index.js", + "description": "NTT SDK for Stacks chain", + "files": [ + "dist/esm", + "dist/cjs" + ], + "keywords": [ + "wormhole", + "sdk", + "typescript", + "ntt", + "stacks" + ], + "engines": { + "node": ">=16" + }, + "sideEffects": true, + "scripts": { + "build:cjs": "tsc -p ./tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json", + "build:esm": "tsc -p ./tsconfig.esm.json", + "build": "npm run build:esm && npm run build:cjs", + "rebuild": "npm run clean && npm run build", + "clean": "rm -rf ./dist", + "build:contracts": "cd ../.. && make build" + }, + "dependencies": { + "@stacks/network": "^7.2.0", + "@stacks/transactions": "^7.2.0", + "@wormhole-foundation/sdk-definitions-ntt": "1.0.0" + }, + "devDependencies": { + "tsx": "^4.7.2" + }, + "type": "module", + "exports": { + ".": { + "import": { + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.ts", + "default": "./dist/cjs/index.js" + } + } + }, + "peerDependencies": { + "@wormhole-foundation/sdk-base": "^4.6.0", + "@wormhole-foundation/sdk-definitions": "^4.6.0", + "@wormhole-foundation/sdk-stacks": "^4.6.0", + "@wormhole-foundation/sdk-stacks-core": "^4.6.0" + } +} diff --git a/stacks/ts/src/constants.ts b/stacks/ts/src/constants.ts new file mode 100644 index 000000000..8a29965aa --- /dev/null +++ b/stacks/ts/src/constants.ts @@ -0,0 +1,15 @@ +import { Network } from "@wormhole-foundation/sdk-base"; + +export const NTT_MANAGER_STATE_CONTRACT_NAME = "ntt-manager-state"; +export const NTT_MANAGER_CONTRACT_NAME = "ntt-manager-v1"; +export const NTT_TOKEN_OWNER_CONTRACT_NAME = "token-manager"; +export const WORMHOLE_TRANSCEIVER_STATE_CONTRACT_NAME = + "wormhole-transceiver-state"; + +export const WORMHOLE_PROTOCOL_ID = 1; + +export const DEFAULT_NTT_VERSION = "1.0.0"; + +export const ADDR32_CONTRACT: Partial> = { + Testnet: "ST2W4SFFKXMGFJW7K7NZFK3AH52ZTXDB74HKV9MRA.addr32", +}; diff --git a/stacks/ts/src/index.ts b/stacks/ts/src/index.ts new file mode 100644 index 000000000..ea2de956a --- /dev/null +++ b/stacks/ts/src/index.ts @@ -0,0 +1,12 @@ +import { registerProtocol } from "@wormhole-foundation/sdk-definitions"; +import { _platform } from "@wormhole-foundation/sdk-stacks"; +import { StacksNtt } from "./ntt.js"; +import { StacksNttWithExecutor } from "./nttWithExecutor.js"; +import "@wormhole-foundation/sdk-definitions-ntt"; +import "@wormhole-foundation/sdk-stacks-core"; + +registerProtocol(_platform, "Ntt", StacksNtt); +registerProtocol(_platform, "NttWithExecutor", StacksNttWithExecutor); + +export * from "./ntt.js"; +export * from "./nttWithExecutor.js"; diff --git a/stacks/ts/src/ntt.ts b/stacks/ts/src/ntt.ts new file mode 100644 index 000000000..7fdd30bb7 --- /dev/null +++ b/stacks/ts/src/ntt.ts @@ -0,0 +1,861 @@ +import { + Chain, + encoding, + Network, + toChainId, +} from "@wormhole-foundation/sdk-base"; +import { + AccountAddress, + ChainAddress, + ChainsConfig, + Contracts, + serialize, + toNative, + UniversalAddress, +} from "@wormhole-foundation/sdk-definitions"; +import { Ntt, NttTransceiver } from "@wormhole-foundation/sdk-definitions-ntt"; +import { + StacksChains, + StacksPlatform, + StacksPlatformType, + StacksUnsignedTransaction, + StacksZeroAddress, +} from "@wormhole-foundation/sdk-stacks"; +import { StacksNetwork } from "@stacks/network"; +import { + BufferCV, + Cl, + cvToValue, + fetchCallReadOnlyFunction, + PostConditionMode, +} from "@stacks/transactions"; +import { + ADDR32_CONTRACT, + DEFAULT_NTT_VERSION, + NTT_MANAGER_CONTRACT_NAME, + NTT_MANAGER_STATE_CONTRACT_NAME, + NTT_TOKEN_OWNER_CONTRACT_NAME, + WORMHOLE_PROTOCOL_ID, + WORMHOLE_TRANSCEIVER_STATE_CONTRACT_NAME, +} from "./constants.js"; + +export class StacksNttWormholeTransceiver< + N extends Network, + C extends StacksChains, +> implements NttTransceiver +{ + private readonly contractName: string; + private readonly deployer: string; + + constructor( + readonly manager: StacksNtt, + readonly tokenAddress: string, + readonly address: string + ) { + const addressSplit = address.split("."); + this.contractName = addressSplit[1]!; + this.deployer = addressSplit[0]!; + } + + async getTransceiverType(): Promise { + return "wormhole"; + } + + async getAddress(): Promise> { + return { + chain: this.manager.chain, + address: toNative(this.manager.chain, this.address), + }; + } + + async *setPeer( + peer: ChainAddress, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const tx = { + contractName: this.contractName, + contractAddress: this.deployer, + functionName: "add-peer", + functionArgs: [ + StacksNtt.chainToClBuffer(peer.chain), + Cl.buffer(new UniversalAddress(peer.address.toString()).toUint8Array()), + ], + postConditionMode: PostConditionMode.Allow, + }; + + yield { + transaction: tx, + network: this.manager.network, + chain: this.manager.chain, + description: "Ntt.setTransceiverPeer", + parallelizable: false, + }; + } + + async getPeer(chain: C): Promise | null> { + const res = await this.readonly( + "peers-get", + [StacksNtt.chainToClBuffer(chain)], + WORMHOLE_TRANSCEIVER_STATE_CONTRACT_NAME, + this.deployer + ); + const resValue = cvToValue(res); + if (!resValue) { + return null; + } + const address = new UniversalAddress(resValue.value); + return { + address, + chain, + }; + } + + async *setPauser( + newPauser: AccountAddress, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const tx = { + contractName: this.contractName, + contractAddress: this.deployer, + functionName: "transfer-pause-capability", + functionArgs: [Cl.address(newPauser.toString())], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.manager.network, + chain: this.manager.chain, + description: "Ntt.setTransceiverPauser", + parallelizable: false, + }; + } + + async getPauser(): Promise | null> { + const res = await this.transceiverReadOnly("get-pauser", []); + return cvToValue(res); + } + + async *receive( + attestation: Ntt.Attestation, + sender?: AccountAddress | undefined + ): AsyncGenerator> { + const tx = { + contractName: this.contractName, + contractAddress: this.deployer, + functionName: "receive-token-transfer", + functionArgs: [ + Cl.address(await this.manager.getFullAddress()), + Cl.address(this.tokenAddress), + Cl.buffer(serialize(attestation)), + ], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.manager.network, + chain: this.manager.chain, + description: "NttWormholeTransceiver.receive", + parallelizable: false, + }; + } + + private async transceiverReadOnly( + functionName: string, + functionArgs: any[] + ): Promise { + return this.readonly( + functionName, + functionArgs, + this.contractName, + this.deployer + ); + } + + private readonly( + functionName: string, + functionArgs: any[], + contractName: string, + contractAddress: string + ): Promise { + return fetchCallReadOnlyFunction({ + contractName: contractName, + contractAddress: contractAddress, + functionName, + functionArgs, + client: { + baseUrl: this.manager.connection.client.baseUrl, + }, + senderAddress: StacksZeroAddress, + }); + } +} + +export type StacksNttContracts = Ntt.Contracts & { + state: string; + tokenOwner: string; + transceiverState: { + [type: string]: string; + }; +}; + +export class StacksNtt + implements Ntt +{ + private readonly nttManagerDeployer: string; + private readonly nttStateContractName: string; + private readonly tokenOwnerContractName: string; + private readonly tokenAddress: string; + + constructor( + readonly network: N, + readonly chain: C, + readonly connection: StacksNetwork, + readonly contracts: Contracts & { ntt?: StacksNttContracts }, + readonly version: string = DEFAULT_NTT_VERSION + ) { + if (!contracts.ntt) { + throw new Error("NTT Contracts not found"); + } + + const manager = contracts.ntt.manager; + this.nttStateContractName = contracts?.ntt?.state; + this.tokenOwnerContractName = contracts?.ntt?.tokenOwner; + this.tokenAddress = contracts.ntt.token; + + if (manager?.startsWith("0x")) { + const utf8Manager = Buffer.from(manager.slice(2), "hex").toString( + "utf-8" + ); + const [deployer, managerName] = utf8Manager.split("."); + if (!deployer || !managerName) { + throw new Error("Invalid manager address format"); + } + this.nttManagerDeployer = deployer; + } else if (contracts.ntt.manager) { + const [deployer] = contracts.ntt.manager.split("."); + this.nttManagerDeployer = deployer || ""; + } else if (contracts.ntt.state) { + const [deployer] = contracts.ntt.state.split("."); + this.nttManagerDeployer = deployer || ""; + } else { + this.nttManagerDeployer = ""; + } + } + + async getMode(): Promise { + const res = await this.managerReadOnly("get-mode", []); + const modeValue = cvToValue(res); + return modeValue.value === "0x00" ? "locking" : "burning"; + } + + async getFullAddress(): Promise { + return (await this.getActiveNttManager()).full; + } + + async isPaused(): Promise { + const res = await this.managerReadOnly("is-paused", []); + return cvToValue(res); + } + + async *pause( + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const activeNttManager = await this.getActiveNttManager(); + const tx = { + contractName: activeNttManager.contractName, + contractAddress: activeNttManager.address, + functionName: "pause", + functionArgs: [], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Ntt.pause", + parallelizable: false, + }; + } + + async *unpause( + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const activeNttManager = await this.getActiveNttManager(); + const tx = { + contractName: activeNttManager.contractName, + contractAddress: activeNttManager.address, + functionName: "unpause", + functionArgs: [], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Ntt.unpause", + parallelizable: false, + }; + } + + /** + * We do noy have a `get-admin` or `get-owner` function. + * We'll optimistically assume that the deployer is the owner + * or throw an error if it's not. + */ + async getOwner(): Promise> { + const deployerNative = toNative(this.chain, this.nttManagerDeployer); + const isDeployerOwner = await this.isOwner(deployerNative); + if (isDeployerOwner) { + return deployerNative; + } + throw new Error("Method not implemented. Use isOwner instead"); + } + + async isOwner(account: AccountAddress): Promise { + const res = await this.managerReadOnly("is-admin", [ + Cl.address(account.toString()), + ]); + return cvToValue(res); + } + + async getPauser(): Promise | null> { + const res = await this.managerReadOnly("get-pauser", []); + return cvToValue(res); + } + + async *setOwner( + newOwner: AccountAddress, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const activeNttManager = await this.getActiveNttManager(); + const tx = { + contractName: activeNttManager.contractName, + contractAddress: activeNttManager.address, + functionName: "add-admin", + functionArgs: [Cl.address(newOwner.toString())], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Ntt.setOwner", + parallelizable: false, + }; + } + + async *removeOwner( + owner: AccountAddress, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const activeNttManager = await this.getActiveNttManager(); + const tx = { + contractName: activeNttManager.contractName, + contractAddress: activeNttManager.address, + functionName: "remove-admin", + functionArgs: [Cl.address(owner.toString())], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Ntt.removeOwner", + parallelizable: false, + }; + } + + setPauser( + newOwner: AccountAddress, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + throw new Error("Method not implemented."); + } + + async getThreshold(): Promise { + return 1; + } + + async *setThreshold( + threshold: number, + payer?: AccountAddress + ): AsyncGenerator> { + throw new Error("Method not implemented."); + } + + async *setPeer( + peer: ChainAddress, + tokenDecimals: number, + inboundLimit: bigint, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const activeNttManager = await this.getActiveNttManager(); + const tx = { + contractName: activeNttManager.contractName, + contractAddress: activeNttManager.address, + functionName: "add-peer", + functionArgs: [ + StacksNtt.chainToClBuffer(peer.chain), + Cl.buffer(new UniversalAddress(peer.address.toString()).toUint8Array()), + ], + postConditionMode: PostConditionMode.Allow, + }; + + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Ntt.setPeer", + parallelizable: false, + }; + } + + async *setTransceiverPeer( + ix: number, + peer: ChainAddress, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + const transceiver = await this.getTransceiver(0); + if (!transceiver) { + throw new Error("Transceiver for protocol 1 (Wormhole) not found"); + } + yield* transceiver.setPeer(peer); + } + + isRelayingAvailable(destination: Chain): Promise { + throw new Error("Method not implemented."); + } + + quoteDeliveryPrice( + destination: Chain, + options: Ntt.TransferOptions + ): Promise { + throw new Error("Method not implemented."); + } + + async *transfer( + sender: AccountAddress, + amount: bigint, + destination: ChainAddress, + options: Ntt.TransferOptions + ): AsyncGenerator> { + const transceiver = await this.getTransceiver(0); + if (!transceiver) { + throw new Error("Transceiver for protocol 1 (Wormhole) not found"); + } + const transceiverAddress = ( + await transceiver.getAddress() + ).address.toString(); + const activeNttManager = await this.getActiveNttManager(); + const tx = { + contractName: activeNttManager.contractName, + contractAddress: activeNttManager.address, + functionName: "send-token-transfer", + functionArgs: [ + Cl.address(this.tokenAddress), + Cl.address(transceiverAddress), + Cl.uint(amount), + StacksNtt.chainToClBuffer(destination.chain), + Cl.buffer( + new UniversalAddress(destination.address.toString()).toUint8Array() + ), + ], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Ntt.transfer", + parallelizable: false, + }; + } + + async *addr32RegisterPrincipal( + principal: string + ): AsyncGenerator> | boolean { + const addr32Address = ADDR32_CONTRACT[this.network]; + if (!addr32Address) { + throw new Error( + `Stacks NTT registerPrincipal for network ${this.network} not found` + ); + } + const [contractAddress, contractName] = addr32Address.split("."); + if (!contractAddress || !contractName) { + throw new Error( + `Stacks NTT registerPrincipal for network ${this.network} not found` + ); + } + const res = await this.readonly( + "reverse-lookup", + [Cl.principal(principal)], + contractName, + contractAddress + ); + + const resValue = cvToValue(res); + if (resValue.registered) { + return true; + } + + const tx = { + contractName, + contractAddress, + functionName: "register", + functionArgs: [Cl.principal(principal)], + postConditionMode: PostConditionMode.Allow, + }; + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "Addr32.registerPrincipal", + parallelizable: false, + }; + } + + async addr32Lookup(hash: Uint8Array): Promise { + const addr32Address = ADDR32_CONTRACT[this.network]; + if (!addr32Address) { + throw new Error( + `Stacks NTT registerPrincipal for network ${this.network} not found` + ); + } + const [contractAddress, contractName] = addr32Address.split("."); + if (!contractAddress || !contractName) { + throw new Error( + `Stacks NTT registerPrincipal for network ${this.network} not found` + ); + } + + const res = await this.readonly( + "lookup", + [Cl.buffer(hash)], + contractName, + contractAddress + ); + + const resValue = cvToValue(res); + return resValue.value; + } + + async *redeem( + attestations: Ntt.Attestation[], + payer: AccountAddress, + recipient?: AccountAddress | undefined + ): AsyncGenerator> { + if (!recipient) { + throw new Error("Recipient address is required for Stacks redeem"); + } + + const transceiver = await this.getTransceiver(0); + if (!transceiver) { + throw new Error("Transceiver for protocol Wormhole not found"); + } + + // Register the recipient with the addr32 contract if not already registered + const recipientPrincipal = recipient.toString(); + const registrationResult = + await this.addr32RegisterPrincipal(recipientPrincipal); + + if (typeof registrationResult !== "boolean") { + yield* registrationResult; + } + + return yield* transceiver.receive(attestations[0]!); + } + + async getCustodyAddress(): Promise { + return this.getTokenOwnerContractAddress(); + } + + async getTokenDecimals(): Promise { + let tokenToQuery: string; + if (!this.tokenAddress) { + const token = await this.managerReadOnly("get-token-contract", []); + const tokenValue = cvToValue(token); + tokenToQuery = tokenValue.value; + } else { + tokenToQuery = this.tokenAddress; + } + const decimals = await StacksPlatform.getDecimals( + this.network, + this.chain, + this.connection, + toNative(this.chain, tokenToQuery) + ); + return decimals; + } + + async getPeer(chain: C): Promise | null> { + const res = await this.readonly( + "peers-get", + [StacksNtt.chainToClBuffer(chain)], + this.getStateContractName(), + this.nttManagerDeployer + ); + + const resValue = cvToValue(res); + if (!resValue) { + return null; + } + const address = new UniversalAddress(resValue.value); + return { + address: { + chain, + address, + }, + tokenDecimals: 0, + inboundLimit: 0n, + }; + } + + /** + * The current Stacks implementation has a single transceiver. + * Queried by protocol ID. Wormhole protocol ID is u1. Index is ignored. + */ + async getTransceiver( + index: number + ): Promise | null> { + const activeNttManager = await this.getActiveNttManager(); + const whProtocol = WORMHOLE_PROTOCOL_ID; + const res = await this.readonly( + "protocols-get", + [Cl.uint(whProtocol)], + this.getStateContractName(), + activeNttManager.address + ); + const resValue = cvToValue(res); + return new StacksNttWormholeTransceiver( + this, + this.tokenAddress, + resValue.value + ); + } + + async getActiveNttManager(): Promise<{ + full: string; + address: string; + contractName: string; + }> { + const res = await this.readonly( + "get-active-ntt-manager", + [], + this.getStateContractName(), + this.nttManagerDeployer + ); + const resValue = cvToValue(res); + const address = resValue.split(".")[0]!; + const contractName = resValue.split(".")[1]!; + return { + full: resValue, + address, + contractName, + }; + } + + getStateContractName(): string { + return ( + this.nttStateContractName?.split(".")[1] ?? + NTT_MANAGER_STATE_CONTRACT_NAME + ); + } + + getTokenOwnerContractAddress(): string { + return ( + this.tokenOwnerContractName ?? + `${this.nttManagerDeployer}.${NTT_TOKEN_OWNER_CONTRACT_NAME}` + ); + } + + // NOTE: v1 contract does not implement rate limiting + + getCurrentOutboundCapacity(): Promise { + throw new Error("Method not implemented."); + } + async getOutboundLimit(): Promise { + return 0n; + } + setOutboundLimit( + limit: bigint, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + throw new Error("Method not implemented."); + } + getCurrentInboundCapacity(fromChain: Chain): Promise { + throw new Error("Method not implemented."); + } + async getRateLimitDuration(): Promise { + return 0n; + } + getInboundLimit(fromChain: Chain): Promise { + throw new Error("Method not implemented."); + } + setInboundLimit( + fromChain: Chain, + limit: bigint, + payer?: AccountAddress | undefined + ): AsyncGenerator> { + throw new Error("Method not implemented."); + } + getIsApproved(attestation: Ntt.Attestation): Promise { + return this.getIsExecuted(attestation); + } + + async getIsExecuted(attestation: Ntt.Attestation): Promise { + const payload = + attestation.payloadName === "WormholeTransfer" + ? attestation.payload + : attestation.payload["payload"]; + + const hash = Ntt.messageDigest( + attestation.emitterChain, + payload["nttManagerPayload"] + ); + const res = await this.readonly( + "consumed-messages-get", + [Cl.buffer(hash)], + this.getStateContractName(), + this.nttManagerDeployer + ); + const resValue = cvToValue(res); + return !!resValue; + } + + getIsTransferInboundQueued(attestation: Ntt.Attestation): Promise { + throw new Error("Method not implemented."); + } + async getInboundQueuedTransfer( + fromChain: Chain, + transceiverMessage: Ntt.Message + ): Promise | null> { + return null; + } + completeInboundQueuedTransfer( + fromChain: Chain, + transceiverMessage: Ntt.Message, + payer: AccountAddress + ): AsyncGenerator> { + throw new Error("Method not implemented."); + } + async verifyAddresses(): Promise | null> { + try { + const local: Partial = { + manager: this.contracts.ntt!.manager, + token: this.contracts.ntt!.token, + transceiver: this.contracts.ntt!.transceiver || {}, + }; + + const deployerAddress = this.nttManagerDeployer; + + const remoteStateAddress = `${deployerAddress}.${NTT_MANAGER_STATE_CONTRACT_NAME}`; + const remote: Partial = { + manager: this.contracts.ntt!.manager, + token: cvToValue( + await this.managerReadOnly( + "get-token-contract", + [], + `${deployerAddress}.${NTT_MANAGER_CONTRACT_NAME}` + ) + ).value, + transceiver: { + wormhole: cvToValue( + await this.readonly( + "protocols-get", + [Cl.uint(WORMHOLE_PROTOCOL_ID)], + NTT_MANAGER_STATE_CONTRACT_NAME, + deployerAddress + ) + ).value, + }, + state: remoteStateAddress, + }; + + const deleteMatching = (a: any, b: any): void => { + for (const k in a) { + if ( + typeof a[k] === "object" && + a[k] !== null && + typeof b[k] === "object" && + b[k] !== null + ) { + deleteMatching(a[k], b[k]); + if (Object.keys(a[k]).length === 0) delete a[k]; + } else if (a[k] === b[k]) { + delete a[k]; + } + } + }; + + deleteMatching(remote, local); + + return Object.keys(remote).length > 0 ? remote : null; + } catch (e) { + return null; + } + } + + static async getVersion(): Promise { + return DEFAULT_NTT_VERSION; + } + + static async fromRpc( + connection: StacksNetwork, + config: ChainsConfig + ): Promise> { + const [network, chain] = await StacksPlatform.chainFromRpc(connection); + const version = await StacksNtt.getVersion(); + const chainConfig = config[chain]; + if (!chainConfig) { + throw new Error(`Missing ChainsConfig for chain ${chain} on Stacks`); + } + return new StacksNtt( + network as N, + chain, + connection, + chainConfig.contracts, + version + ); + } + + static chainToClBuffer(chain: Chain): BufferCV { + return Cl.buffer(encoding.bignum.toBytes(toChainId(chain), 2)); + } + + private async managerReadOnly( + functionName: string, + functionArgs: any[], + manager?: string + ): Promise { + const activeNttManager = !!manager + ? { + contractName: manager.split(".")[1]!, + address: manager.split(".")[0]!, + } + : await this.getActiveNttManager(); + return this.readonly( + functionName, + functionArgs, + activeNttManager.contractName, + activeNttManager.address + ); + } + + private readonly( + functionName: string, + functionArgs: any[], + contractName: string, + contractAddress: string + ): Promise { + return fetchCallReadOnlyFunction({ + contractName: contractName, + contractAddress: contractAddress, + functionName, + functionArgs, + client: { + baseUrl: this.connection.client.baseUrl, + }, + senderAddress: StacksZeroAddress, + }); + } +} diff --git a/stacks/ts/src/nttWithExecutor.ts b/stacks/ts/src/nttWithExecutor.ts new file mode 100644 index 000000000..2e1b82834 --- /dev/null +++ b/stacks/ts/src/nttWithExecutor.ts @@ -0,0 +1,160 @@ +import type { Network } from "@wormhole-foundation/sdk-base"; +import { chainToChainId } from "@wormhole-foundation/sdk-base"; +import { + Contracts, + UniversalAddress, + type AccountAddress, + type ChainAddress, + type ChainsConfig, +} from "@wormhole-foundation/sdk-definitions"; +import { NttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt"; +import { + StacksChains, + StacksPlatform, + StacksUnsignedTransaction, + type StacksPlatformType, +} from "@wormhole-foundation/sdk-stacks"; +import { StacksNetwork } from "@stacks/network"; +import { + bufferCV, + ContractCallOptions, + contractPrincipalCV, + PostConditionMode, + standardPrincipalCV, + uintCV, +} from "@stacks/transactions"; +import { StacksNtt, StacksNttContracts } from "./ntt.js"; + +const nttManagerWithExecutorAddresses: Partial< + Record>> +> = { + Mainnet: { + // TODO: Add mainnet executor address + }, + Testnet: { + Stacks: + "ST36CY4MQNM6KM52EV9KN56KJXQCPXT5B8RH6B0J5.ntt-manager-with-executor-v7", + }, +}; + +export class StacksNttWithExecutor + implements NttWithExecutor +{ + readonly executorAddress: string; + + constructor( + readonly network: N, + readonly chain: C, + readonly connection: StacksNetwork, + readonly contracts: Contracts & { ntt?: StacksNttContracts } + ) { + const executorAddress = + nttManagerWithExecutorAddresses[this.network]?.[this.chain]; + if (!executorAddress) { + throw new Error(`Executor address not found for chain ${this.chain}`); + } + this.executorAddress = executorAddress; + } + + static async fromRpc( + connection: StacksNetwork, + config: ChainsConfig + ): Promise> { + const [network, chain] = await StacksPlatform.chainFromRpc(connection); + const conf = config[chain]!; + if (conf.network !== network) { + throw new Error(`Network mismatch: ${conf.network} != ${network}`); + } + + return new StacksNttWithExecutor( + network as N, + chain, + connection, + conf.contracts + ); + } + + async *transfer( + sender: AccountAddress, + destination: ChainAddress, + amount: bigint, + quote: NttWithExecutor.Quote, + ntt: StacksNtt, + _wrapNative: boolean = false + ): AsyncGenerator> { + const destinationChainId = chainToChainId(destination.chain); + + const executorAddressSplit = this.executorAddress.split("."); + const executorDeployer = executorAddressSplit[0]!; + const executorContractName = executorAddressSplit[1]!; + + const managerFullAddress = await ntt.getFullAddress(); + const managerSplit = managerFullAddress.split("."); + const managerDeployer = managerSplit[0]!; + const managerContractName = managerSplit[1]!; + + const tokenAddress = this.contracts.ntt!.token; + const tokenSplit = tokenAddress.split("."); + const tokenDeployer = tokenSplit[0]!; + const tokenContractName = tokenSplit[1]!; + + const transceiver = await ntt.getTransceiver(0); + if (!transceiver) { + throw new Error("Transceiver not found"); + } + const transceiverAddress = ( + await transceiver.getAddress() + ).address.toString(); + const transceiverSplit = transceiverAddress.split("."); + const transceiverDeployer = transceiverSplit[0]!; + const transceiverContractName = transceiverSplit[1]!; + + const recipientBytes32 = new UniversalAddress( + destination.address.toString() + ).toUint8Array(); + + const referrerAddress = quote.referrer.address.toString(); + + // TODO: ContractCallOptions should be the UnisgnedTransactionType + const tx: ContractCallOptions = { + contractName: executorContractName, + contractAddress: executorDeployer, + functionName: "transfer", + functionArgs: [ + contractPrincipalCV(managerDeployer, managerContractName), + contractPrincipalCV(tokenDeployer, tokenContractName), + contractPrincipalCV(transceiverDeployer, transceiverContractName), + uintCV(amount.toString()), + uintCV(destinationChainId), + bufferCV(recipientBytes32), + uintCV(quote.estimatedCost.toString()), + standardPrincipalCV(sender.toString()), // executor-refund-address + bufferCV(Buffer.from(quote.signedQuote)), + bufferCV(Buffer.from(quote.relayInstructions)), + uintCV(quote.referrerFeeDbps.toString()), + standardPrincipalCV(referrerAddress), + ], + postConditionMode: PostConditionMode.Allow, + }; + + yield { + transaction: tx, + network: this.network, + chain: this.chain, + description: "NttWithExecutor.transfer", + parallelizable: false, + }; + } + + async estimateMsgValueAndGasLimit( + _recipient: ChainAddress | undefined + ): Promise<{ msgValue: bigint; gasLimit: bigint }> { + // TODO: Implement actual estimation logic for Stacks + // For now, return default values + const msgValue = 0n; + // const gasLimit = 500_000n; + const gasLimit = 0n; + + return { msgValue, gasLimit }; + } +} diff --git a/stacks/ts/tsconfig.cjs.json b/stacks/ts/tsconfig.cjs.json new file mode 100644 index 000000000..411c4c5b7 --- /dev/null +++ b/stacks/ts/tsconfig.cjs.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.cjs.json", + "include": ["src"], + "exclude": ["src/transferTest.ts"], + "compilerOptions": { + "outDir": "dist/cjs", + "rootDir": "src" + } +} diff --git a/stacks/ts/tsconfig.esm.json b/stacks/ts/tsconfig.esm.json new file mode 100644 index 000000000..d877364d7 --- /dev/null +++ b/stacks/ts/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.esm.json", + "include": ["src"], + "exclude": ["src/transferTest.ts"], + "compilerOptions": { + "outDir": "dist/esm", + "rootDir": "src" + } +} diff --git a/stacks/ts/tsconfig.test.json b/stacks/ts/tsconfig.test.json new file mode 100644 index 000000000..55b1793db --- /dev/null +++ b/stacks/ts/tsconfig.test.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowUnreachableCode": true, + "allowUnusedLabels": true, + "noUnusedLocals": false + } +} diff --git a/sui/ts/README.md b/sui/ts/README.md new file mode 100644 index 000000000..ebeace415 --- /dev/null +++ b/sui/ts/README.md @@ -0,0 +1,4 @@ +Sui Ntt Implementation +---------------------- + +> **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. diff --git a/sui/ts/src/ntt.ts b/sui/ts/src/ntt.ts index cd6fd87c5..bb59c66ef 100644 --- a/sui/ts/src/ntt.ts +++ b/sui/ts/src/ntt.ts @@ -889,7 +889,8 @@ export class SuiNtt async *redeem( attestations: Ntt.Attestation[], - payer?: AccountAddress + payer: AccountAddress, + recipient?: AccountAddress ): AsyncGenerator> { // Check if paused const isPaused = await this.isPaused(); @@ -1300,7 +1301,7 @@ export class SuiNtt async *completeInboundQueuedTransfer( fromChain: PC, transceiverMessage: Ntt.Message, - payer?: AccountAddress + payer: AccountAddress ): AsyncGenerator> { // Check if paused const isPaused = await this.isPaused(); From 7ff7a81927b4cd5511213bbe494f5762e4eaea91 Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Mon, 15 Dec 2025 15:20:24 -0600 Subject: [PATCH 02/11] chore: refactor --- cli/package.json | 8 ++-- sdk/route/src/executor/executor.ts | 50 +++------------------ sdk/route/src/executor/utils.ts | 70 +++++++++++++++++++++++++++++- 3 files changed, 79 insertions(+), 49 deletions(-) diff --git a/cli/package.json b/cli/package.json index 2775e87ad..79af17ff7 100644 --- a/cli/package.json +++ b/cli/package.json @@ -41,10 +41,10 @@ "@wormhole-foundation/sdk-solana-core": "^4.7.0" }, "@wormhole-foundation/sdk-stacks-ntt": { - "@wormhole-foundation/sdk-base": "^4.4.0", - "@wormhole-foundation/sdk-definitions": "^4.4.0", - "@wormhole-foundation/sdk-stacks": "^4.4.0", - "@wormhole-foundation/sdk-stacks-core": "^4.4.0" + "@wormhole-foundation/sdk-base": "^4.7.0", + "@wormhole-foundation/sdk-definitions": "^4.7.0", + "@wormhole-foundation/sdk-stacks": "^4.7.0", + "@wormhole-foundation/sdk-stacks-core": "^4.7.0" }, "@wormhole-foundation/sdk-sui-ntt": { "@wormhole-foundation/sdk-base": "^4.7.0", diff --git a/sdk/route/src/executor/executor.ts b/sdk/route/src/executor/executor.ts index a5d303bc1..87371e424 100644 --- a/sdk/route/src/executor/executor.ts +++ b/sdk/route/src/executor/executor.ts @@ -43,10 +43,10 @@ import { fetchSignedQuote, fetchStatus, isRelayStatusFailed, + getNativeRecipientAddress, } from "./utils.js"; import { Ntt, NttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt"; import { - AccountAddress, isNative, relayInstructionsLayout, signedQuoteLayout, @@ -579,49 +579,11 @@ export class NttExecutorRoute } const toChain = this.wh.getChain(receipt.to); - let recipient: AccountAddress | undefined; - // When redeeming on Stacks, we need to get the pre-hashed recipient address - // from the StacksNttReceiveInstruction in case it needs to be registered. - if (receipt.to === "Stacks") { - const [txStatus] = await fetchStatus( - this.wh.network, - receipt.originTxs.at(-1)!.txid, - receipt.from - ); - - if (!txStatus) { - throw new Error("Failed to fetch transaction status"); - } - - const { relayInstructionsBytes } = txStatus.requestForExecution; - - const relayInstructionsDecoded = encoding.hex.decode( - relayInstructionsBytes - ); - - const relayInstructions = deserializeLayout( - relayInstructionsLayout, - relayInstructionsDecoded - ); - - const stacksInstruction = relayInstructions.requests.find( - ({ request }) => request.type === "StacksNttReceiveInstruction" - ); - - if ( - !stacksInstruction || - stacksInstruction.request.type !== "StacksNttReceiveInstruction" - ) { - throw new Error( - "No StacksNttReceiveInstruction found in relay instructions" - ); - } - - const recipientBytes = stacksInstruction.request.recipient; - const recipientAddress = encoding.bytes.decode(recipientBytes); - recipient = Wormhole.parseAddress(receipt.to, recipientAddress); - } + const recipientAddress = await getNativeRecipientAddress( + this.wh.network, + receipt + ); const ntt = await toChain.getProtocol("Ntt", { ntt: receipt.params.normalizedParams.destinationContracts, @@ -630,7 +592,7 @@ export class NttExecutorRoute const completeXfer = ntt.redeem( [receipt.attestation.attestation], sender, - recipient + recipientAddress ); const txids = await signSendWait(toChain, completeXfer, signer); diff --git a/sdk/route/src/executor/utils.ts b/sdk/route/src/executor/utils.ts index 07900c345..53d444afb 100644 --- a/sdk/route/src/executor/utils.ts +++ b/sdk/route/src/executor/utils.ts @@ -3,11 +3,19 @@ import { Network, toChainId, amount as sdkAmount, + encoding, + deserializeLayout, } from "@wormhole-foundation/sdk-base"; -import { SignedQuote } from "@wormhole-foundation/sdk-definitions"; +import { + NativeAddress, + SignedQuote, + relayInstructionsLayout, +} from "@wormhole-foundation/sdk-definitions"; +import { isAttested, Wormhole } from "@wormhole-foundation/sdk-connect"; import axios from "axios"; import { apiBaseUrl } from "./consts.js"; import { NttRoute } from "../types.js"; +import { NttExecutorRoute } from "./executor.js"; export enum RelayStatus { Pending = "pending", @@ -164,3 +172,63 @@ export function calculateReferrerFee( } return { referrerFee, remainingAmount, referrerFeeDbps: dBps }; } + +export async function getNativeRecipientAddress( + network: Network, + receipt: NttExecutorRoute.TransferReceipt +): Promise> { + if (!isAttested(receipt)) { + throw new Error( + "Cannot extract recipient address from unattested transfer" + ); + } + + // For Stacks, we need to extract from the transaction's relay instructions + // which will contain the pre-hashed recipient address + if (receipt.to === "Stacks") { + const [txStatus] = await fetchStatus( + network, + receipt.originTxs.at(-1)!.txid, + receipt.to + ); + + if (!txStatus) { + throw new Error("Failed to fetch transaction status"); + } + + const { relayInstructionsBytes } = txStatus.requestForExecution; + + const relayInstructionsDecoded = encoding.hex.decode( + relayInstructionsBytes + ); + + const relayInstructions = deserializeLayout( + relayInstructionsLayout, + relayInstructionsDecoded + ); + + const stacksInstruction = relayInstructions.requests.find( + ({ request }) => request.type === "StacksNttReceiveInstruction" + ); + + if ( + !stacksInstruction || + stacksInstruction.request.type !== "StacksNttReceiveInstruction" + ) { + throw new Error( + "No StacksNttReceiveInstruction found in relay instructions" + ); + } + + const recipientBytes = stacksInstruction.request.recipient; + const recipientAddressString = encoding.bytes.decode(recipientBytes); + return Wormhole.parseAddress("Stacks", recipientAddressString); + } + + // For other chains, we can extract directly from the VAA payload + const vaa = receipt.attestation.attestation; + return Wormhole.parseAddress( + receipt.to, + vaa.payload.nttManagerPayload.payload.recipientAddress.toString() + ); +} From 9d11a951741738655708202719cadba5a7636a25 Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Tue, 16 Dec 2025 09:41:23 -0600 Subject: [PATCH 03/11] chore: refactor more --- foo.sh | 21 --------- sdk/definitions/src/ntt.ts | 2 +- sdk/route/src/automatic.ts | 2 +- sdk/route/src/executor/executor.ts | 74 ++++++++--------------------- sdk/route/src/manual.ts | 2 +- sdk/route/src/types.ts | 75 +++++++----------------------- stacks/ts/src/nttWithExecutor.ts | 31 +++++++++++- 7 files changed, 68 insertions(+), 139 deletions(-) delete mode 100755 foo.sh diff --git a/foo.sh b/foo.sh deleted file mode 100755 index 57d8c6763..000000000 --- a/foo.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -npm ci - -npm i @wormhole-foundation/sdk@latest - -npm r -w evm/ts @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-evm @wormhole-foundation/sdk-evm-core -npm r -w sdk/definitions @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions -npm r -w sdk/examples @wormhole-foundation/sdk -npm r -w sdk/route @wormhole-foundation/sdk-connect -npm r -w solana @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-solana @wormhole-foundation/sdk-solana-core -npm r -w sui/ts @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-sui @wormhole-foundation/sdk-sui-core -npm r -w stacks/ts @wormhole-foundation/sdk-base @wormhole-foundation/sdk-definitions @wormhole-foundation/sdk-stacks @wormhole-foundation/sdk-stacks-core - -npm i -w evm/ts --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-evm@latest @wormhole-foundation/sdk-evm-core@latest -npm i -w sdk/definitions --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest -npm i -w sdk/examples @wormhole-foundation/sdk@latest -npm i -w sdk/route --save-peer @wormhole-foundation/sdk-connect@latest -npm i -w solana --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-solana@latest @wormhole-foundation/sdk-solana-core@latest -npm i -w sui/ts --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-sui@latest @wormhole-foundation/sdk-sui-core@latest -npm i -w stacks/ts --save-peer @wormhole-foundation/sdk-base@latest @wormhole-foundation/sdk-definitions@latest @wormhole-foundation/sdk-stacks@latest @wormhole-foundation/sdk-stacks-core@latest diff --git a/sdk/definitions/src/ntt.ts b/sdk/definitions/src/ntt.ts index 1aa9d63b8..4bccbed7a 100644 --- a/sdk/definitions/src/ntt.ts +++ b/sdk/definitions/src/ntt.ts @@ -264,7 +264,7 @@ export interface Ntt { * redeem redeems a set of Attestations to the corresponding transceivers on the destination chain * @param attestations The attestations to redeem, the length should be equal to the number of transceivers * @param payer The account that will pay for the transaction - * @param recipient The recipient address (only used for Stacks, can be undefined for other platforms) + * @param recipient The recipient address * * TODO: replace with Map */ diff --git a/sdk/route/src/automatic.ts b/sdk/route/src/automatic.ts index 8e7d69a0b..ec7691041 100644 --- a/sdk/route/src/automatic.ts +++ b/sdk/route/src/automatic.ts @@ -283,7 +283,7 @@ export class NttAutomaticRoute address: vaa.emitterAddress, }); - const dstInfo = NttRoute.resolveDestinationNttContracts( + const { dstContracts: dstInfo } = NttRoute.resolveDestinationNttContracts( this.staticConfig, { chain: vaa.emitterChain, diff --git a/sdk/route/src/executor/executor.ts b/sdk/route/src/executor/executor.ts index 87371e424..b1d53ae32 100644 --- a/sdk/route/src/executor/executor.ts +++ b/sdk/route/src/executor/executor.ts @@ -42,10 +42,11 @@ import { fetchCapabilities, fetchSignedQuote, fetchStatus, - isRelayStatusFailed, getNativeRecipientAddress, + isRelayStatusFailed, } from "./utils.js"; import { Ntt, NttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt"; +import { StacksNttWithExecutor } from "@wormhole-foundation/sdk-stacks-ntt"; import { isNative, relayInstructionsLayout, @@ -404,7 +405,6 @@ export class NttExecutorRoute request: { type: "StacksNttReceiveInstruction" as const, nttManager: Buffer.from( - // TODO: is using Buffer correct? params.normalizedParams.destinationContracts.manager ), recipient: recipient @@ -617,50 +617,26 @@ export class NttExecutorRoute const { recipientChain, trimmedAmount } = vaa.payload["nttManagerPayload"].payload; - let token: string, manager: string, whTransceiver: string; - let dstInfo: Ntt.Contracts; - - if (chainToPlatform(vaa.emitterChain) === "Stacks") { - const { stacksConfig, dstInfo: stacksDstInfo } = - NttRoute.resolveDestinationNttContractsStacksEmitter( - this.staticConfig.ntt, - vaa.emitterAddress, - recipientChain - ); - - token = stacksConfig.token; - manager = stacksConfig.manager; - whTransceiver = stacksConfig.transceiver.find( - (t) => t.type === "wormhole" - )!.address; - - dstInfo = stacksDstInfo; - } else { - token = canonicalAddress({ - chain: vaa.emitterChain, - address: vaa.payload["nttManagerPayload"].payload.sourceToken, - }); - manager = canonicalAddress({ + const srcManagerAddress = await (async () => { + if (chainToPlatform(tx.chain) === "Stacks") { + // We can't use the manager address from the VAA payload for Stacks + // since it's the hashed address. Instead, we need to fetch it from the transaction. + const stacks = this.wh.getChain("Stacks"); + const rpc = await stacks.getRpc(); + return StacksNttWithExecutor.getManagerAddressFromTx(rpc, tx.txid); + } + return { chain: vaa.emitterChain, address: vaa.payload["sourceNttManager"], - }); - whTransceiver = - chainToPlatform(vaa.emitterChain) === "Solana" - ? manager - : canonicalAddress({ - chain: vaa.emitterChain, - address: vaa.emitterAddress, - }); - - dstInfo = NttRoute.resolveDestinationNttContracts( + }; + })(); + + const { srcContracts, dstContracts } = + NttRoute.resolveDestinationNttContracts( this.staticConfig.ntt, - { - chain: vaa.emitterChain, - address: vaa.payload["sourceNttManager"], - }, + srcManagerAddress, recipientChain ); - } const amt = amount.fromBaseUnits( trimmedAmount.amount, @@ -681,20 +657,8 @@ export class NttExecutorRoute options: {}, normalizedParams: { amount: amt, - sourceContracts: { - token, - manager, - transceiver: { - wormhole: whTransceiver, - }, - }, - destinationContracts: { - token: dstInfo.token, - manager: dstInfo.manager, - transceiver: { - wormhole: dstInfo.transceiver["wormhole"]!, - }, - }, + sourceContracts: srcContracts, + destinationContracts: dstContracts, referrerFeeDbps: 0n, }, }, diff --git a/sdk/route/src/manual.ts b/sdk/route/src/manual.ts index cdaa4cf9a..377cff8f7 100644 --- a/sdk/route/src/manual.ts +++ b/sdk/route/src/manual.ts @@ -264,7 +264,7 @@ export class NttManualRoute address: vaa.emitterAddress, }); - const dstInfo = NttRoute.resolveDestinationNttContracts( + const { dstContracts: dstInfo } = NttRoute.resolveDestinationNttContracts( this.staticConfig, { chain: vaa.emitterChain, diff --git a/sdk/route/src/types.ts b/sdk/route/src/types.ts index 67bf24474..55a3f8ce4 100644 --- a/sdk/route/src/types.ts +++ b/sdk/route/src/types.ts @@ -15,7 +15,6 @@ import { TransferReceipt as _TransferReceipt, amount, canonicalAddress, - encoding, isAttested, isCompleted, isDestinationQueued, @@ -31,10 +30,6 @@ import { toUniversal, } from "@wormhole-foundation/sdk-connect"; import { MultiTokenNtt, Ntt } from "@wormhole-foundation/sdk-definitions-ntt"; -import { - keccak256, - UniversalAddress, -} from "@wormhole-foundation/sdk-definitions"; import { trackAxelar, trackExecutor } from "./tracking.js"; export namespace NttRoute { @@ -244,7 +239,7 @@ export namespace NttRoute { config: Config, srcManager: ChainAddress, dstChain: Chain - ): Ntt.Contracts { + ): { srcContracts: Ntt.Contracts; dstContracts: Ntt.Contracts } { const cfg = Object.values(config.tokens); const address = canonicalAddress(srcManager); for (const tokens of cfg) { @@ -260,7 +255,19 @@ export namespace NttRoute { `Cannot find destination Ntt contracts in config for: ${address}` ); } - return { + + const srcContracts = { + token: found.token, + manager: found.manager, + transceiver: { + wormhole: found.transceiver.find((v) => v.type === "wormhole")! + .address, + }, + quoter: found.quoter, + svmShims: found.svmShims, + }; + + const dstContracts = { token: remote.unwrapsOnRedeem ? "native" : remote.token, manager: remote.manager, transceiver: { @@ -270,61 +277,11 @@ export namespace NttRoute { quoter: remote.quoter, svmShims: remote.svmShims, }; - } - } - throw new Error("Cannot find Ntt contracts in config for: " + address); - } - - export function resolveDestinationNttContractsStacksEmitter( - config: Config, - emitterAddress: UniversalAddress, - dstChain: Chain - ): { stacksConfig: TokenConfig; dstInfo: Ntt.Contracts } { - const emitterLower = emitterAddress.toString().toLowerCase(); - - for (const tokens of Object.values(config.tokens)) { - for (const tokenConfig of tokens) { - if (tokenConfig.chain === "Stacks") { - const whTransceiver = tokenConfig.transceiver.find( - (t) => t.type === "wormhole" - ); - if (whTransceiver) { - // The emitter address on the VAA is the keccak256 hash of the transceiver address - const hash = keccak256(whTransceiver.address); - const hashHex = encoding.hex - .encode(hash, true) - .toString() - .toLowerCase(); - if (hashHex === emitterLower) { - // Find the destination config in the same token group - const remote = tokens.find((tc) => tc.chain === dstChain); - if (!remote) { - throw new Error( - `Cannot find destination Ntt contracts in config for chain: ${dstChain}` - ); - } - const dstInfo: Ntt.Contracts = { - token: remote.unwrapsOnRedeem ? "native" : remote.token, - manager: remote.manager, - transceiver: { - wormhole: remote.transceiver.find( - (v) => v.type === "wormhole" - )!.address, - }, - quoter: remote.quoter, - svmShims: remote.svmShims, - }; - - return { stacksConfig: tokenConfig, dstInfo }; - } - } - } + return { srcContracts, dstContracts }; } } - throw new Error( - `Cannot find Stacks NTT config for emitter: ${emitterAddress}` - ); + throw new Error("Cannot find Ntt contracts in config for: " + address); } // returns true if the amount is greater than 95% of the capacity diff --git a/stacks/ts/src/nttWithExecutor.ts b/stacks/ts/src/nttWithExecutor.ts index 2e1b82834..cac62f15d 100644 --- a/stacks/ts/src/nttWithExecutor.ts +++ b/stacks/ts/src/nttWithExecutor.ts @@ -9,6 +9,7 @@ import { } from "@wormhole-foundation/sdk-definitions"; import { NttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt"; import { + StacksAddress, StacksChains, StacksPlatform, StacksUnsignedTransaction, @@ -23,6 +24,7 @@ import { standardPrincipalCV, uintCV, } from "@stacks/transactions"; +import axios from "axios"; import { StacksNtt, StacksNttContracts } from "./ntt.js"; const nttManagerWithExecutorAddresses: Partial< @@ -115,7 +117,6 @@ export class StacksNttWithExecutor const referrerAddress = quote.referrer.address.toString(); - // TODO: ContractCallOptions should be the UnisgnedTransactionType const tx: ContractCallOptions = { contractName: executorContractName, contractAddress: executorDeployer, @@ -157,4 +158,32 @@ export class StacksNttWithExecutor return { msgValue, gasLimit }; } + + static async getManagerAddressFromTx( + connection: StacksNetwork, + txHash: string + ): Promise> { + const url = `${connection.client.baseUrl}/extended/v1/tx/${txHash}`; + + const response = await axios.get(url); + const data = response.data; + + if (!data.contract_call?.function_args) { + throw new Error("No contract call function args found in transaction"); + } + + const functionArgs = data.contract_call.function_args; + const nttManagerArg = functionArgs.find( + (arg: any) => arg.name === "ntt-manager" + ); + + if (!nttManagerArg) { + throw new Error("No ntt-manager argument found in transaction"); + } + + // For some reason, the value comes with extra single quotes, so we need to remove them + const managerAddress = nttManagerArg.repr.replace(/'/g, ""); + + return { chain: "Stacks", address: new StacksAddress(managerAddress) }; + } } From cf4e9d57f526983212b308da8c61790598b2cf1a Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Tue, 16 Dec 2025 10:27:28 -0600 Subject: [PATCH 04/11] fix: fix build --- evm/ts/README.md | 4 +- package-lock.json | 787 +++++++++++++++++++++++++++++++++++------ sdk/route/package.json | 3 +- solana/ts/README.md | 3 +- stacks/ts/README.md | 3 +- sui/ts/README.md | 3 +- 6 files changed, 685 insertions(+), 118 deletions(-) diff --git a/evm/ts/README.md b/evm/ts/README.md index 2faa282b4..6fc94c4f7 100644 --- a/evm/ts/README.md +++ b/evm/ts/README.md @@ -1,9 +1,7 @@ -Evm Ntt Implementation ----------------------- +## Evm Ntt Implementation > **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. - # Building Make sure the Evm contracts are build with `npm run build:deps` and the bindings are generated with `npm run generate` diff --git a/package-lock.json b/package-lock.json index d84b4ce50..05745e620 100644 --- a/package-lock.json +++ b/package-lock.json @@ -249,6 +249,7 @@ "version": "7.28.4", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -257,6 +258,7 @@ "version": "7.28.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -286,6 +288,7 @@ "version": "6.3.1", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -294,6 +297,7 @@ "version": "7.28.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/parser": "^7.28.3", "@babel/types": "^7.28.2", @@ -309,6 +313,7 @@ "version": "7.27.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", @@ -324,6 +329,7 @@ "version": "6.3.1", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -332,6 +338,7 @@ "version": "7.28.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -340,6 +347,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" @@ -352,6 +360,7 @@ "version": "7.28.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", @@ -368,6 +377,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -376,6 +386,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -392,6 +403,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -400,6 +412,7 @@ "version": "7.28.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" @@ -412,6 +425,7 @@ "version": "7.28.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/types": "^7.28.4" }, @@ -426,6 +440,7 @@ "version": "7.8.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -437,6 +452,7 @@ "version": "7.8.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -448,6 +464,7 @@ "version": "7.12.13", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -459,6 +476,7 @@ "version": "7.14.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -473,6 +491,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -487,6 +506,7 @@ "version": "7.10.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -498,6 +518,7 @@ "version": "7.8.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -509,6 +530,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -523,6 +545,7 @@ "version": "7.10.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -534,6 +557,7 @@ "version": "7.8.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -545,6 +569,7 @@ "version": "7.10.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -556,6 +581,7 @@ "version": "7.8.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -567,6 +593,7 @@ "version": "7.8.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -578,6 +605,7 @@ "version": "7.8.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -589,6 +617,7 @@ "version": "7.14.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -603,6 +632,7 @@ "version": "7.14.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -617,6 +647,7 @@ "version": "7.27.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -638,6 +669,7 @@ "version": "7.27.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", @@ -651,6 +683,7 @@ "version": "7.28.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -668,6 +701,7 @@ "version": "7.28.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -685,7 +719,8 @@ "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@certusone/wormhole-sdk": { "version": "0.2.7", @@ -1066,6 +1101,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" @@ -1078,6 +1114,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -1089,6 +1126,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -2380,7 +2418,6 @@ "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "browser-headers": "^0.4.1" }, @@ -2790,6 +2827,7 @@ "version": "8.0.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2806,6 +2844,7 @@ "version": "1.1.0", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2821,6 +2860,7 @@ "version": "5.3.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -2829,6 +2869,7 @@ "version": "0.1.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -2837,6 +2878,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -2853,6 +2895,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2867,6 +2910,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2882,6 +2926,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -2901,6 +2946,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -2917,6 +2963,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2928,6 +2975,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -2941,6 +2989,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -2952,6 +3001,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "30.1.2", "@jest/pattern": "30.0.1", @@ -2998,6 +3048,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3013,6 +3064,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3027,6 +3079,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3046,6 +3099,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3062,6 +3116,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3073,6 +3128,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3086,6 +3142,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } @@ -3094,6 +3151,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/fake-timers": "30.1.2", "@jest/types": "30.0.5", @@ -3108,6 +3166,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "expect": "30.1.2", "jest-snapshot": "30.1.2" @@ -3131,6 +3190,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0" }, @@ -3142,6 +3202,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3157,6 +3218,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3171,6 +3233,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/expect-utils": "30.1.2", "@jest/get-type": "30.1.0", @@ -3187,6 +3250,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", @@ -3201,6 +3265,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", @@ -3215,6 +3280,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3234,6 +3300,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3250,6 +3317,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3261,6 +3329,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3274,6 +3343,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", @@ -3290,6 +3360,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3305,6 +3376,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3319,6 +3391,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3338,6 +3411,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3354,6 +3428,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3365,6 +3440,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3378,6 +3454,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } @@ -3386,6 +3463,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/expect": "30.1.2", @@ -3400,6 +3478,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "jest-regex-util": "30.0.1" @@ -3412,6 +3491,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "30.1.2", @@ -3453,6 +3533,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3467,6 +3548,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3482,6 +3564,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3501,6 +3584,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3517,6 +3601,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3528,6 +3613,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3541,6 +3627,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -3552,6 +3639,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@sinclair/typebox": "^0.34.0" }, @@ -3563,6 +3651,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "chalk": "^4.1.2", @@ -3577,6 +3666,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3591,6 +3681,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3606,6 +3697,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "callsites": "^3.1.0", @@ -3619,6 +3711,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "30.1.2", "@jest/types": "30.0.5", @@ -3633,6 +3726,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/test-result": "30.1.3", "graceful-fs": "^4.2.11", @@ -3647,6 +3741,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", @@ -3672,6 +3767,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3686,6 +3782,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3701,6 +3798,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3717,6 +3815,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3728,6 +3827,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", @@ -3745,6 +3845,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3759,6 +3860,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3774,6 +3876,7 @@ "version": "0.3.13", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" @@ -3783,6 +3886,7 @@ "version": "2.3.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -3805,6 +3909,7 @@ "version": "0.3.31", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3853,6 +3958,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", @@ -3911,6 +4017,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "engines": { "node": ">=14" } @@ -3919,6 +4026,7 @@ "version": "0.2.9", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -4003,13 +4111,15 @@ "node_modules/@sinclair/typebox": { "version": "0.34.41", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -4021,6 +4131,7 @@ "version": "3.0.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -4029,6 +4140,7 @@ "version": "13.0.5", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1" } @@ -4175,7 +4287,6 @@ "node_modules/@solana/web3.js": { "version": "1.98.4", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.25.0", "@noble/curves": "^1.4.2", @@ -4303,6 +4414,7 @@ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "license": "MIT", + "peer": true, "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -4363,6 +4475,7 @@ "version": "1.1.2", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 6" } @@ -4394,6 +4507,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -4416,6 +4530,7 @@ "version": "7.20.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -4428,6 +4543,7 @@ "version": "7.27.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -4436,6 +4552,7 @@ "version": "7.4.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -4445,6 +4562,7 @@ "version": "7.28.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/types": "^7.28.2" } @@ -4472,6 +4590,7 @@ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "license": "MIT", + "peer": true, "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", @@ -4490,6 +4609,7 @@ "version": "4.1.9", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -4498,7 +4618,8 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", @@ -4525,7 +4646,6 @@ "version": "29.5.14", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -4536,6 +4656,7 @@ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -4561,6 +4682,7 @@ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -4597,7 +4719,8 @@ "node_modules/@ungap/structured-clone": { "version": "1.3.0", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { "version": "1.11.1", @@ -4611,7 +4734,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-android-arm64": { "version": "1.11.1", @@ -4625,7 +4749,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.11.1", @@ -4637,7 +4762,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-darwin-x64": { "version": "1.11.1", @@ -4651,7 +4777,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-freebsd-x64": { "version": "1.11.1", @@ -4665,7 +4792,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { "version": "1.11.1", @@ -4679,7 +4807,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { "version": "1.11.1", @@ -4693,7 +4822,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { "version": "1.11.1", @@ -4707,7 +4837,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { "version": "1.11.1", @@ -4721,7 +4852,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { "version": "1.11.1", @@ -4735,7 +4867,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { "version": "1.11.1", @@ -4749,7 +4882,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { "version": "1.11.1", @@ -4763,7 +4897,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { "version": "1.11.1", @@ -4777,7 +4912,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { "version": "1.11.1", @@ -4791,7 +4927,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { "version": "1.11.1", @@ -4805,7 +4942,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { "version": "1.11.1", @@ -4817,6 +4955,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, @@ -4836,7 +4975,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { "version": "1.11.1", @@ -4850,7 +4990,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { "version": "1.11.1", @@ -4864,7 +5005,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@wormhole-foundation/ntt-cli": { "resolved": "cli", @@ -5010,7 +5152,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-base/-/sdk-base-4.7.1.tgz", "integrity": "sha512-XJoGdCNpKcvTQjCDlx5t9dbI6Riw2Dc4B2zN/Dh1E6uera9Fom2uAXJ1j1K45krSqggcqMfwJReOa/0t4QAaUQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@scure/base": "^1.1.3", "binary-layout": "^1.0.3" @@ -5021,7 +5162,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-connect/-/sdk-connect-4.7.1.tgz", "integrity": "sha512-OEf06jJXn8PyColmzupnMdUFJkUJmolen1V94A89AseTrya3FGqCzjU2QPAf2kFWOBS9pmXEhSZwkIT+5e2W5A==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@wormhole-foundation/sdk-base": "4.7.1", "@wormhole-foundation/sdk-definitions": "4.7.1", @@ -5101,7 +5241,6 @@ "version": "4.7.1", "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-definitions/-/sdk-definitions-4.7.1.tgz", "integrity": "sha512-L+qaIRSco4LwaSIN3gAdz+N2s6bSj69IZO5ATLrSudfJrLMQTH9ryLFdjycEfnZILMVmHih7ACEg+vBQ2x5YyQ==", - "peer": true, "dependencies": { "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", @@ -5117,7 +5256,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm/-/sdk-evm-4.7.1.tgz", "integrity": "sha512-VEw9+2qQJAhSr/MC3Tn6Vc+4fK+p80NDIxE5LG9xDy8DM3zDcLeB87Nut2UIsYoSfl714wW7SWOgd+qRXgXdKg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@wormhole-foundation/sdk-connect": "4.7.1", "ethers": "^6.5.1" @@ -5146,7 +5284,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-core/-/sdk-evm-core-4.7.1.tgz", "integrity": "sha512-pc08wCEGP7XXRkogA41PzWqrl9e+z1uzpRgctWD1xV/DEc6kuJ+rXLu8yFZKB0cFg4rX20zhSsGukY33uwA/6w==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@wormhole-foundation/sdk-connect": "4.7.1", "@wormhole-foundation/sdk-evm": "4.7.1", @@ -5219,7 +5356,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana/-/sdk-solana-4.7.1.tgz", "integrity": "sha512-TH0TlQzX6gSg4eMntwty4TqY7P7reKUyXq3UqCsspwkrTajucIWeWQHsKG+ZhaT0znxlJ6Ao3K/CYJuisPBflQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@coral-xyz/anchor": "0.29.0", "@coral-xyz/borsh": "0.29.0", @@ -5253,7 +5389,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-core/-/sdk-solana-core-4.7.1.tgz", "integrity": "sha512-5VHrDRtHDoGiosMoLaKS1M1aPTn9cxoLtjS00RPaQ6/jtB4RKBhgJUYuE645MVnnPkVuUGCn9WyGxkZqPyVC4A==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@coral-xyz/anchor": "0.29.0", "@coral-xyz/borsh": "0.29.0", @@ -5380,7 +5515,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui/-/sdk-sui-4.7.1.tgz", "integrity": "sha512-Kn3L+FBOJLVtxw9B2yWOdLH3axkhKUhGAKz0OtHQW32yOeoa2G5tAeCnd/xkJkBJ51Q5w0A1IeiaSX2L7rkI1g==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@mysten/sui": "^1.37.2", "@wormhole-foundation/sdk-connect": "4.7.1" @@ -5408,7 +5542,6 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui-core/-/sdk-sui-core-4.7.1.tgz", "integrity": "sha512-zqjIEmJGHE7BKQQZIi9Z44pY9HVsvm+EeRHuxoXxmbYS70LmIk00Du5h149fDDRLIqckdtAbs7wCjZAADEslWQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@mysten/sui": "^1.37.2", "@wormhole-foundation/sdk-connect": "4.7.1", @@ -5699,6 +5832,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -5715,6 +5849,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", @@ -5761,6 +5896,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -5775,6 +5911,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -5791,6 +5928,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -5804,6 +5942,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.5.1", @@ -5847,6 +5986,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -5860,6 +6000,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -5874,6 +6015,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/test-result": "^27.5.1", "graceful-fs": "^4.2.9", @@ -5888,6 +6030,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -5928,6 +6071,7 @@ "version": "1.8.6", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -5936,6 +6080,7 @@ "version": "8.1.0", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -5957,6 +6102,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -5973,6 +6119,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", @@ -5994,6 +6141,7 @@ "version": "6.1.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -6009,6 +6157,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -6023,6 +6172,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" @@ -6043,6 +6193,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6094,12 +6245,14 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/cjs-module-lexer": { "version": "1.4.3", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/cliui": { "version": "7.0.4", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -6109,7 +6262,8 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/convert-source-map": { "version": "1.9.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/cosmjs-types": { "version": "0.4.1", @@ -6123,12 +6277,14 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/dedent": { "version": "0.7.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/diff-sequences": { "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -6137,6 +6293,7 @@ "version": "0.8.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -6147,7 +6304,8 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/ethers": { "version": "5.8.0", @@ -6200,6 +6358,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -6214,6 +6373,7 @@ "version": "7.2.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6233,6 +6393,7 @@ "version": "5.2.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -6248,6 +6409,7 @@ "version": "6.3.1", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -6256,6 +6418,7 @@ "version": "4.0.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -6294,6 +6457,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "execa": "^5.0.0", @@ -6307,6 +6471,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -6336,6 +6501,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -6369,6 +6535,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.8.0", "@jest/test-sequencer": "^27.5.1", @@ -6411,6 +6578,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^27.5.1", @@ -6425,6 +6593,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -6436,6 +6605,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -6451,6 +6621,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -6467,6 +6638,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -6475,6 +6647,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -6500,6 +6673,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" @@ -6512,6 +6686,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", @@ -6526,6 +6701,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -6545,6 +6721,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -6557,6 +6734,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -6565,6 +6743,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -6585,6 +6764,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", @@ -6598,6 +6778,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/environment": "^27.5.1", @@ -6629,6 +6810,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -6661,6 +6843,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -6709,6 +6892,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -6725,6 +6909,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", @@ -6742,6 +6927,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -6755,6 +6941,7 @@ "version": "8.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6769,6 +6956,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6780,6 +6968,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -6792,17 +6981,20 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/signal-exit": { "version": "3.0.7", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6816,6 +7008,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6869,7 +7062,6 @@ "version": "4.9.5", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6882,6 +7074,7 @@ "version": "8.1.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", @@ -6895,6 +7088,7 @@ "version": "0.7.6", "dev": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">= 12" } @@ -6903,6 +7097,7 @@ "version": "7.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6919,6 +7114,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6933,6 +7129,7 @@ "version": "3.0.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -6944,6 +7141,7 @@ "version": "16.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7016,7 +7214,8 @@ "node_modules/abab": { "version": "2.0.6", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/abitype": { "version": "1.1.0", @@ -7054,6 +7253,7 @@ "version": "6.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -7063,6 +7263,7 @@ "version": "7.4.1", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -7074,6 +7275,7 @@ "version": "7.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.4.0" } @@ -7097,6 +7299,7 @@ "version": "6.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "4" }, @@ -7145,6 +7348,7 @@ "version": "4.3.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -7180,6 +7384,7 @@ "version": "3.1.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7230,7 +7435,6 @@ "node_modules/axios": { "version": "1.12.2", "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -7241,6 +7445,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/transform": "30.1.2", "@types/babel__core": "^7.20.5", @@ -7261,6 +7466,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7275,6 +7481,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7290,6 +7497,7 @@ "version": "7.0.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "workspaces": [ "test/babel-8" ], @@ -7308,6 +7516,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", @@ -7321,6 +7530,7 @@ "version": "1.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -7346,6 +7556,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "babel-plugin-jest-hoist": "30.0.1", "babel-preset-current-node-syntax": "^1.1.0" @@ -7390,6 +7601,7 @@ "version": "2.8.4", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "baseline-browser-mapping": "dist/cli.js" } @@ -7475,6 +7687,7 @@ "version": "2.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -7501,7 +7714,8 @@ "node_modules/browser-process-hrtime": { "version": "1.0.0", "dev": true, - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/browserslist": { "version": "4.26.0", @@ -7568,6 +7782,7 @@ "version": "2.1.1", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "node-int64": "^0.4.0" } @@ -7597,7 +7812,8 @@ "node_modules/buffer-from": { "version": "1.1.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/buffer-layout": { "version": "1.2.2", @@ -7611,7 +7827,6 @@ "devOptional": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -7661,6 +7876,7 @@ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.6.0" } @@ -7670,6 +7886,7 @@ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "license": "MIT", + "peer": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -7730,6 +7947,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -7761,7 +7979,8 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "CC-BY-4.0" + "license": "CC-BY-4.0", + "peer": true }, "node_modules/chalk": { "version": "5.6.2", @@ -7777,6 +7996,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -7791,6 +8011,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -7810,12 +8031,14 @@ "node_modules/cjs-module-lexer": { "version": "2.1.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cliui": { "version": "8.0.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7829,6 +8052,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -7837,6 +8061,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7850,12 +8075,14 @@ "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7869,6 +8096,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7880,6 +8108,7 @@ "version": "7.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7897,6 +8126,7 @@ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "license": "MIT", + "peer": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -7908,6 +8138,7 @@ "version": "4.6.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -7916,7 +8147,8 @@ "node_modules/collect-v8-coverage": { "version": "1.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/color-convert": { "version": "2.0.1", @@ -8066,7 +8298,8 @@ "node_modules/convert-source-map": { "version": "2.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/core-util-is": { "version": "1.0.3", @@ -8120,6 +8353,7 @@ "version": "7.0.6", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8148,12 +8382,14 @@ "node_modules/cssom": { "version": "0.4.4", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cssstyle": { "version": "2.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssom": "~0.3.6" }, @@ -8164,17 +8400,14 @@ "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", "license": "MIT", - "optional": true + "peer": true }, "node_modules/data-urls": { "version": "2.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -8188,6 +8421,7 @@ "version": "2.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -8199,6 +8433,7 @@ "version": "6.1.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=10.4" } @@ -8207,6 +8442,7 @@ "version": "8.7.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -8242,6 +8478,7 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "license": "MIT", + "peer": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -8257,6 +8494,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -8268,6 +8506,7 @@ "version": "1.7.0", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -8289,6 +8528,7 @@ "version": "4.3.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8298,6 +8538,7 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -8353,6 +8594,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -8377,6 +8619,7 @@ "version": "2.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -8388,6 +8631,7 @@ "version": "5.0.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=8" } @@ -8423,12 +8667,14 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/electron-to-chromium": { "version": "1.5.218", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/elliptic": { "version": "6.6.1", @@ -8451,6 +8697,7 @@ "version": "0.13.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8461,13 +8708,15 @@ "node_modules/emoji-regex": { "version": "9.2.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", + "peer": true, "dependencies": { "once": "^1.4.0" } @@ -8476,6 +8725,7 @@ "version": "1.3.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -8587,6 +8837,7 @@ "version": "2.1.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -8619,6 +8870,7 @@ "version": "5.3.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=4.0" } @@ -8627,6 +8879,7 @@ "version": "2.0.3", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8644,7 +8897,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", @@ -8716,6 +8968,7 @@ "version": "5.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -8738,6 +8991,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -8748,11 +9002,13 @@ "node_modules/execa/node_modules/signal-exit": { "version": "3.0.7", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/exit": { "version": "0.1.2", "dev": true, + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -8761,6 +9017,7 @@ "version": "0.2.2", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -8809,6 +9066,7 @@ "version": "2.0.2", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "bser": "2.1.1" } @@ -8843,6 +9101,7 @@ "version": "4.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -8887,6 +9146,7 @@ "version": "3.3.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" @@ -8960,6 +9220,7 @@ "version": "1.0.0-beta.2", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -9007,6 +9268,7 @@ "version": "0.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -9027,6 +9289,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "license": "MIT", + "peer": true, "dependencies": { "pump": "^3.0.0" }, @@ -9052,6 +9315,7 @@ "version": "10.4.5", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -9083,8 +9347,7 @@ }, "node_modules/google-protobuf": { "version": "3.21.4", - "license": "(BSD-3-Clause AND Apache-2.0)", - "peer": true + "license": "(BSD-3-Clause AND Apache-2.0)" }, "node_modules/gopd": { "version": "1.2.0", @@ -9147,7 +9410,6 @@ "node_modules/graphql": { "version": "16.11.0", "license": "MIT", - "peer": true, "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -9329,6 +9591,7 @@ "version": "2.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "whatwg-encoding": "^1.0.5" }, @@ -9339,18 +9602,21 @@ "node_modules/html-escaper": { "version": "2.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/http-proxy-agent": { "version": "4.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -9371,6 +9637,7 @@ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "license": "MIT", + "peer": true, "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -9383,6 +9650,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -9395,6 +9663,7 @@ "version": "2.1.0", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.17.0" } @@ -9410,6 +9679,7 @@ "version": "0.4.24", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -9439,6 +9709,7 @@ "version": "3.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -9457,6 +9728,7 @@ "version": "0.1.4", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.8.19" } @@ -9485,7 +9757,8 @@ "node_modules/is-arrayish": { "version": "0.2.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/is-callable": { "version": "1.2.7", @@ -9515,6 +9788,7 @@ "version": "3.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -9523,6 +9797,7 @@ "version": "2.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -9538,12 +9813,14 @@ "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/is-stream": { "version": "2.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -9568,7 +9845,8 @@ "node_modules/is-typedarray": { "version": "1.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/isarray": { "version": "2.0.5", @@ -9578,7 +9856,8 @@ "node_modules/isexe": { "version": "2.0.0", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/isomorphic-ws": { "version": "4.0.1", @@ -9606,6 +9885,7 @@ "version": "3.2.2", "dev": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">=8" } @@ -9614,6 +9894,7 @@ "version": "6.0.3", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -9629,6 +9910,7 @@ "version": "3.0.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -9642,6 +9924,7 @@ "version": "5.0.6", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", @@ -9655,6 +9938,7 @@ "version": "3.2.0", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9667,6 +9951,7 @@ "version": "3.4.3", "dev": true, "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -9739,6 +10024,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "execa": "^5.1.1", "jest-util": "30.0.5", @@ -9752,6 +10038,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -9766,6 +10053,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9781,6 +10069,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -9797,6 +10086,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9808,6 +10098,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/expect": "30.1.2", @@ -9838,6 +10129,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9853,6 +10145,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -9867,6 +10160,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", @@ -9881,6 +10175,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", @@ -9895,6 +10190,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -9914,6 +10210,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -9930,6 +10227,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9941,6 +10239,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -9954,6 +10253,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "30.1.3", "@jest/test-result": "30.1.3", @@ -9985,6 +10285,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -9999,6 +10300,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10014,6 +10316,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10030,6 +10333,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10041,6 +10345,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", @@ -10091,6 +10396,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10106,6 +10412,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10120,6 +10427,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10136,6 +10444,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10147,6 +10456,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -10203,6 +10513,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "detect-newline": "^3.1.0" }, @@ -10214,6 +10525,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.0.5", @@ -10229,6 +10541,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10244,6 +10557,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10258,6 +10572,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10274,6 +10589,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10285,6 +10601,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -10298,6 +10615,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -10315,6 +10633,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -10329,6 +10648,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -10345,6 +10665,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -10360,6 +10681,7 @@ "version": "1.8.6", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -10368,6 +10690,7 @@ "version": "8.1.0", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -10376,6 +10699,7 @@ "version": "16.0.9", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -10384,6 +10708,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -10392,6 +10717,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10406,6 +10732,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10427,6 +10754,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -10435,6 +10763,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -10454,6 +10783,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -10466,6 +10796,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -10482,6 +10813,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -10495,6 +10827,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -10505,12 +10838,14 @@ "node_modules/jest-environment-jsdom/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-environment-node": { "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/fake-timers": "30.1.2", @@ -10528,6 +10863,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10542,6 +10878,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10557,6 +10894,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10573,6 +10911,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10592,6 +10931,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10615,6 +10955,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10629,6 +10970,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10644,6 +10986,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10660,6 +11003,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10671,6 +11015,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/source-map": "^27.5.1", @@ -10698,6 +11043,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -10714,6 +11060,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -10728,6 +11075,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -10744,6 +11092,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -10757,6 +11106,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -10770,6 +11120,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -10784,6 +11135,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -10809,6 +11161,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -10824,6 +11177,7 @@ "version": "1.8.6", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -10832,6 +11186,7 @@ "version": "8.1.0", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -10840,6 +11195,7 @@ "version": "16.0.9", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -10848,6 +11204,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -10856,6 +11213,7 @@ "version": "6.1.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -10871,6 +11229,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10880,6 +11239,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10895,6 +11255,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10915,6 +11276,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -10922,17 +11284,20 @@ "node_modules/jest-jasmine2/node_modules/cjs-module-lexer": { "version": "1.4.3", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-jasmine2/node_modules/convert-source-map": { "version": "1.9.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-jasmine2/node_modules/diff-sequences": { "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -10941,6 +11306,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -10955,6 +11321,7 @@ "version": "7.2.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10974,6 +11341,7 @@ "version": "5.2.1", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -10989,6 +11357,7 @@ "version": "6.3.1", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -10997,6 +11366,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^27.5.1", @@ -11011,6 +11381,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -11026,6 +11397,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -11034,6 +11406,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -11059,6 +11432,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", @@ -11073,6 +11447,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -11092,6 +11467,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -11104,6 +11480,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -11112,6 +11489,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -11132,6 +11510,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -11164,6 +11543,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -11196,6 +11576,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -11212,6 +11593,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -11228,6 +11610,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -11241,6 +11624,7 @@ "version": "8.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11255,6 +11639,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11266,6 +11651,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -11278,17 +11664,20 @@ "node_modules/jest-jasmine2/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-jasmine2/node_modules/signal-exit": { "version": "3.0.7", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/jest-jasmine2/node_modules/write-file-atomic": { "version": "3.0.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -11300,6 +11689,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "pretty-format": "30.0.5" @@ -11312,6 +11702,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -11448,6 +11839,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11461,6 +11853,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11475,6 +11868,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11490,6 +11884,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11506,6 +11901,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -11517,6 +11913,7 @@ "version": "1.2.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" }, @@ -11533,6 +11930,7 @@ "version": "30.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } @@ -11541,6 +11939,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", @@ -11559,6 +11958,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "jest-regex-util": "30.0.1", "jest-snapshot": "30.1.2" @@ -11571,6 +11971,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11585,6 +11986,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11600,6 +12002,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11616,6 +12019,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -11627,6 +12031,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "30.1.2", "@jest/environment": "30.1.2", @@ -11659,6 +12064,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11673,6 +12079,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11688,6 +12095,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -11707,6 +12115,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11723,6 +12132,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -11734,6 +12144,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -11747,6 +12158,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -11758,6 +12170,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/fake-timers": "30.1.2", @@ -11790,6 +12203,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11804,6 +12218,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11819,6 +12234,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -11838,6 +12254,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11854,6 +12271,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -11865,6 +12283,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -11878,6 +12297,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -11889,6 +12309,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -11901,6 +12322,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", @@ -11932,6 +12354,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0" }, @@ -11943,6 +12366,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11958,6 +12382,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11972,6 +12397,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/expect-utils": "30.1.2", "@jest/get-type": "30.1.0", @@ -11988,6 +12414,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", @@ -12002,6 +12429,7 @@ "version": "30.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", @@ -12016,6 +12444,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -12035,6 +12464,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12051,6 +12481,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -12062,6 +12493,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -12166,6 +12598,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.0.5", @@ -12182,6 +12615,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12197,6 +12631,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12211,6 +12646,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -12224,6 +12660,7 @@ "version": "30.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/test-result": "30.1.3", "@jest/types": "30.0.5", @@ -12242,6 +12679,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12256,6 +12694,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12271,6 +12710,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12287,6 +12727,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -12298,6 +12739,7 @@ "version": "30.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", @@ -12313,6 +12755,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12327,6 +12770,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12342,6 +12786,7 @@ "version": "7.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12353,6 +12798,7 @@ "version": "30.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12369,6 +12815,7 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -12380,6 +12827,7 @@ "version": "8.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12434,6 +12882,7 @@ "version": "16.7.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -12479,6 +12928,7 @@ "version": "3.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -12494,6 +12944,7 @@ "version": "2.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -12505,6 +12956,7 @@ "version": "6.1.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=10.4" } @@ -12513,6 +12965,7 @@ "version": "8.7.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -12526,6 +12979,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -12544,12 +12998,14 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -12612,6 +13068,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", + "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -12620,6 +13077,7 @@ "version": "3.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -12628,6 +13086,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -12663,12 +13122,14 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/locate-path": { "version": "5.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -12725,6 +13186,7 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -12733,6 +13195,7 @@ "version": "5.1.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "yallist": "^3.0.2" } @@ -12741,6 +13204,7 @@ "version": "4.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "semver": "^7.5.3" }, @@ -12760,6 +13224,7 @@ "version": "1.0.12", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "tmpl": "1.0.5" } @@ -12796,7 +13261,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/micromatch": { "version": "4.0.8", @@ -12831,6 +13297,7 @@ "version": "2.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -12840,6 +13307,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=4" } @@ -12856,6 +13324,7 @@ "version": "9.0.5", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -12877,6 +13346,7 @@ "version": "7.1.2", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -12905,6 +13375,7 @@ "version": "0.3.3", "dev": true, "license": "MIT", + "peer": true, "bin": { "napi-postinstall": "lib/cli.js" }, @@ -12918,7 +13389,8 @@ "node_modules/natural-compare": { "version": "1.4.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/neo-async": { "version": "2.6.2", @@ -12981,17 +13453,20 @@ "node_modules/node-int64": { "version": "0.4.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/node-releases": { "version": "2.0.21", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/normalize-path": { "version": "3.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -13001,6 +13476,7 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -13012,6 +13488,7 @@ "version": "4.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "path-key": "^3.0.0" }, @@ -13022,7 +13499,8 @@ "node_modules/nwsapi": { "version": "2.2.22", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/object-assign": { "version": "4.1.1", @@ -13051,6 +13529,7 @@ "version": "5.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -13135,6 +13614,7 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -13143,6 +13623,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -13157,6 +13638,7 @@ "version": "4.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -13168,6 +13650,7 @@ "version": "2.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-try": "^2.0.0" }, @@ -13182,6 +13665,7 @@ "version": "2.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -13189,7 +13673,8 @@ "node_modules/package-json-from-dist": { "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0" + "license": "BlueOak-1.0.0", + "peer": true }, "node_modules/pako": { "version": "2.1.0", @@ -13199,6 +13684,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -13215,12 +13701,14 @@ "node_modules/parse5": { "version": "6.0.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/path-exists": { "version": "4.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -13236,6 +13724,7 @@ "version": "3.1.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -13248,6 +13737,7 @@ "version": "1.11.1", "dev": true, "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -13262,7 +13752,8 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/picocolors": { "version": "1.1.1", @@ -13284,6 +13775,7 @@ "version": "4.0.7", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 6" } @@ -13292,6 +13784,7 @@ "version": "4.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "find-up": "^4.0.0" }, @@ -13363,6 +13856,7 @@ "version": "2.4.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -13428,6 +13922,7 @@ "version": "1.15.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "punycode": "^2.3.1" }, @@ -13440,6 +13935,7 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "license": "MIT", + "peer": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -13449,6 +13945,7 @@ "version": "2.3.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -13466,18 +13963,21 @@ "url": "https://opencollective.com/fast-check" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/querystringify": { "version": "2.2.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -13548,6 +14048,7 @@ "version": "2.1.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -13555,7 +14056,8 @@ "node_modules/requires-port": { "version": "1.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/resolve": { "version": "1.22.10", @@ -13579,12 +14081,14 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/resolve-cwd": { "version": "3.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -13596,6 +14100,7 @@ "version": "5.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -13612,6 +14117,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -13621,6 +14127,7 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "license": "MIT", + "peer": true, "dependencies": { "lowercase-keys": "^2.0.0" }, @@ -13632,6 +14139,7 @@ "version": "3.0.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -13646,6 +14154,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -13655,6 +14164,7 @@ "version": "7.2.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13674,6 +14184,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13772,12 +14283,14 @@ "node_modules/safer-buffer": { "version": "2.1.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/saxes": { "version": "5.0.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -13857,6 +14370,7 @@ "version": "2.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -13868,6 +14382,7 @@ "version": "3.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -13952,6 +14467,7 @@ "version": "4.1.0", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": ">=14" }, @@ -13962,7 +14478,8 @@ "node_modules/sisteransi": { "version": "1.0.5", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/slash": { "version": "3.0.0", @@ -14018,6 +14535,7 @@ "version": "0.5.13", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -14067,6 +14585,7 @@ "version": "4.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -14079,6 +14598,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14087,6 +14607,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14098,6 +14619,7 @@ "version": "5.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -14115,6 +14637,7 @@ "version": "4.2.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -14128,6 +14651,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14135,12 +14659,14 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14166,6 +14692,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14177,6 +14704,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14185,6 +14713,7 @@ "version": "4.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14193,6 +14722,7 @@ "version": "2.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -14201,6 +14731,7 @@ "version": "3.1.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -14230,6 +14761,7 @@ "version": "2.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -14258,12 +14790,14 @@ "node_modules/symbol-tree": { "version": "3.2.4", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/synckit": { "version": "0.11.11", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@pkgr/core": "^0.2.9" }, @@ -14308,6 +14842,7 @@ "version": "2.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -14323,6 +14858,7 @@ "version": "6.0.0", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -14336,6 +14872,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -14345,6 +14882,7 @@ "version": "7.2.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14364,6 +14902,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -14377,7 +14916,8 @@ "node_modules/throat": { "version": "6.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/tiny-secp256k1": { "version": "1.1.7", @@ -14411,7 +14951,8 @@ "node_modules/tmpl": { "version": "1.0.5", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/to-buffer": { "version": "1.2.1", @@ -14445,6 +14986,7 @@ "version": "4.1.4", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -14822,6 +15364,7 @@ "version": "4.0.8", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=4" } @@ -14830,6 +15373,7 @@ "version": "0.21.3", "dev": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=10" }, @@ -14841,7 +15385,6 @@ "version": "8.3.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prettier": "^2.1.1", "debug": "^4.3.1", @@ -14942,6 +15485,7 @@ "version": "3.1.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-typedarray": "^1.0.0" } @@ -14954,7 +15498,6 @@ "node_modules/typescript": { "version": "5.9.2", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -14991,6 +15534,7 @@ "version": "0.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4.0.0" } @@ -15000,6 +15544,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -15046,6 +15591,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -15061,6 +15607,7 @@ "version": "1.5.10", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -15071,7 +15618,6 @@ "devOptional": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -15100,6 +15646,7 @@ "version": "9.3.0", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -15187,6 +15734,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -15195,6 +15743,7 @@ "version": "2.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "xml-name-validator": "^3.0.0" }, @@ -15206,6 +15755,7 @@ "version": "1.0.8", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "makeerror": "1.0.12" } @@ -15218,6 +15768,7 @@ "version": "1.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "iconv-lite": "0.4.24" } @@ -15225,7 +15776,8 @@ "node_modules/whatwg-mimetype": { "version": "2.3.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/whatwg-url": { "version": "5.0.0", @@ -15239,6 +15791,7 @@ "version": "2.0.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -15306,6 +15859,7 @@ "version": "8.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -15323,6 +15877,7 @@ "version": "7.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15339,6 +15894,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -15347,6 +15903,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -15360,12 +15917,14 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15379,6 +15938,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15390,6 +15950,7 @@ "version": "6.2.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -15405,6 +15966,7 @@ "version": "5.0.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -15416,7 +15978,6 @@ "node_modules/ws": { "version": "7.5.10", "license": "MIT", - "peer": true, "engines": { "node": ">=8.3.0" }, @@ -15436,12 +15997,14 @@ "node_modules/xml-name-validator": { "version": "3.0.0", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/xmlchars": { "version": "2.2.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/xstream": { "version": "11.14.0", @@ -15461,12 +16024,14 @@ "node_modules/yallist": { "version": "3.1.1", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/yargs": { "version": "17.7.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -15492,6 +16057,7 @@ "version": "5.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -15499,12 +16065,14 @@ "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15518,6 +16086,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15537,6 +16106,7 @@ "version": "0.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -15607,7 +16177,8 @@ "dependencies": { "@wormhole-foundation/sdk-definitions-ntt": "1.0.0", "@wormhole-foundation/sdk-evm-ntt": "1.0.0", - "@wormhole-foundation/sdk-solana-ntt": "1.0.0" + "@wormhole-foundation/sdk-solana-ntt": "1.0.0", + "@wormhole-foundation/sdk-stacks-ntt": "1.0.0" }, "devDependencies": { "nock": "^13.3.3", diff --git a/sdk/route/package.json b/sdk/route/package.json index 01fe158cc..e4a225e53 100644 --- a/sdk/route/package.json +++ b/sdk/route/package.json @@ -48,7 +48,8 @@ "dependencies": { "@wormhole-foundation/sdk-definitions-ntt": "1.0.0", "@wormhole-foundation/sdk-evm-ntt": "1.0.0", - "@wormhole-foundation/sdk-solana-ntt": "1.0.0" + "@wormhole-foundation/sdk-solana-ntt": "1.0.0", + "@wormhole-foundation/sdk-stacks-ntt": "1.0.0" }, "peerDependencies": { "@wormhole-foundation/sdk-connect": "^4.7.0", diff --git a/solana/ts/README.md b/solana/ts/README.md index dcbc368f3..14d1d4df0 100644 --- a/solana/ts/README.md +++ b/solana/ts/README.md @@ -1,4 +1,3 @@ -Solana Ntt Implementation -------------------------- +## Solana Ntt Implementation > **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. diff --git a/stacks/ts/README.md b/stacks/ts/README.md index 421fdcd98..5505d4f39 100644 --- a/stacks/ts/README.md +++ b/stacks/ts/README.md @@ -1,4 +1,3 @@ -Stacks Ntt Implementation -------------------------- +## Stacks Ntt Implementation > **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. diff --git a/sui/ts/README.md b/sui/ts/README.md index ebeace415..df75b46a6 100644 --- a/sui/ts/README.md +++ b/sui/ts/README.md @@ -1,4 +1,3 @@ -Sui Ntt Implementation ----------------------- +## Sui Ntt Implementation > **Note:** These are low-level protocol classes. If you are trying to perform a transfer, use the higher-level Route abstractions such as [`NttExecutorRoute`](../../sdk/route/src/executor/executor.ts) instead. From 84cd2ad5997920249089e969a750f6fd84d8e818 Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Tue, 16 Dec 2025 11:20:35 -0600 Subject: [PATCH 05/11] chore: fix comment --- stacks/ts/src/nttWithExecutor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stacks/ts/src/nttWithExecutor.ts b/stacks/ts/src/nttWithExecutor.ts index cac62f15d..3ca862da1 100644 --- a/stacks/ts/src/nttWithExecutor.ts +++ b/stacks/ts/src/nttWithExecutor.ts @@ -181,8 +181,8 @@ export class StacksNttWithExecutor throw new Error("No ntt-manager argument found in transaction"); } - // For some reason, the value comes with extra single quotes, so we need to remove them - const managerAddress = nttManagerArg.repr.replace(/'/g, ""); + // The value comes with a leading quote, because it's a trait_reference type + const managerAddress = nttManagerArg.value.replace(/^'/, ""); return { chain: "Stacks", address: new StacksAddress(managerAddress) }; } From 0143a4a62fd8aa3ab866d590439192c5b83d179e Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Tue, 16 Dec 2025 12:11:24 -0600 Subject: [PATCH 06/11] fix: fix version --- package-lock.json | 8 ++++---- stacks/ts/package.json | 8 ++++---- stacks/ts/src/nttWithExecutor.ts | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 05745e620..78efe2cc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16258,10 +16258,10 @@ "node": ">=16" }, "peerDependencies": { - "@wormhole-foundation/sdk-base": "^4.6.0", - "@wormhole-foundation/sdk-definitions": "^4.6.0", - "@wormhole-foundation/sdk-stacks": "^4.6.0", - "@wormhole-foundation/sdk-stacks-core": "^4.6.0" + "@wormhole-foundation/sdk-base": "^4.7.0", + "@wormhole-foundation/sdk-definitions": "^4.7.0", + "@wormhole-foundation/sdk-stacks": "^4.7.0", + "@wormhole-foundation/sdk-stacks-core": "^4.7.0" } }, "sui/ts": { diff --git a/stacks/ts/package.json b/stacks/ts/package.json index 3dddd9812..d94fff151 100644 --- a/stacks/ts/package.json +++ b/stacks/ts/package.json @@ -61,9 +61,9 @@ } }, "peerDependencies": { - "@wormhole-foundation/sdk-base": "^4.6.0", - "@wormhole-foundation/sdk-definitions": "^4.6.0", - "@wormhole-foundation/sdk-stacks": "^4.6.0", - "@wormhole-foundation/sdk-stacks-core": "^4.6.0" + "@wormhole-foundation/sdk-base": "^4.7.0", + "@wormhole-foundation/sdk-definitions": "^4.7.0", + "@wormhole-foundation/sdk-stacks": "^4.7.0", + "@wormhole-foundation/sdk-stacks-core": "^4.7.0" } } diff --git a/stacks/ts/src/nttWithExecutor.ts b/stacks/ts/src/nttWithExecutor.ts index 3ca862da1..66cdce673 100644 --- a/stacks/ts/src/nttWithExecutor.ts +++ b/stacks/ts/src/nttWithExecutor.ts @@ -182,7 +182,7 @@ export class StacksNttWithExecutor } // The value comes with a leading quote, because it's a trait_reference type - const managerAddress = nttManagerArg.value.replace(/^'/, ""); + const managerAddress = nttManagerArg.repr.replace(/^'/, ""); return { chain: "Stacks", address: new StacksAddress(managerAddress) }; } From 5ceac3b3b322ef9eaadb3b8301ab489ea1d915ff Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Tue, 16 Dec 2025 12:15:10 -0600 Subject: [PATCH 07/11] chore: update package-lock --- package-lock.json | 783 +++++++--------------------------------------- 1 file changed, 105 insertions(+), 678 deletions(-) diff --git a/package-lock.json b/package-lock.json index 78efe2cc2..b3a1c1d76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -249,7 +249,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -258,7 +257,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -288,7 +286,6 @@ "version": "6.3.1", "dev": true, "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -297,7 +294,6 @@ "version": "7.28.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.3", "@babel/types": "^7.28.2", @@ -313,7 +309,6 @@ "version": "7.27.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", @@ -329,7 +324,6 @@ "version": "6.3.1", "dev": true, "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -338,7 +332,6 @@ "version": "7.28.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -347,7 +340,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" @@ -360,7 +352,6 @@ "version": "7.28.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", @@ -377,7 +368,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -386,7 +376,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -403,7 +392,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -412,7 +400,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" @@ -425,7 +412,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.28.4" }, @@ -440,7 +426,6 @@ "version": "7.8.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -452,7 +437,6 @@ "version": "7.8.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -464,7 +448,6 @@ "version": "7.12.13", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -476,7 +459,6 @@ "version": "7.14.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -491,7 +473,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -506,7 +487,6 @@ "version": "7.10.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -518,7 +498,6 @@ "version": "7.8.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -530,7 +509,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -545,7 +523,6 @@ "version": "7.10.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -557,7 +534,6 @@ "version": "7.8.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -569,7 +545,6 @@ "version": "7.10.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -581,7 +556,6 @@ "version": "7.8.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -593,7 +567,6 @@ "version": "7.8.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -605,7 +578,6 @@ "version": "7.8.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -617,7 +589,6 @@ "version": "7.14.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -632,7 +603,6 @@ "version": "7.14.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -647,7 +617,6 @@ "version": "7.27.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -669,7 +638,6 @@ "version": "7.27.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", @@ -683,7 +651,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -701,7 +668,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -719,8 +685,7 @@ "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@certusone/wormhole-sdk": { "version": "0.2.7", @@ -1101,7 +1066,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" @@ -1114,7 +1078,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -1126,7 +1089,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -2418,6 +2380,7 @@ "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "browser-headers": "^0.4.1" }, @@ -2827,7 +2790,6 @@ "version": "8.0.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2844,7 +2806,6 @@ "version": "1.1.0", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2860,7 +2821,6 @@ "version": "5.3.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -2869,7 +2829,6 @@ "version": "0.1.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -2878,7 +2837,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -2895,7 +2853,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2910,7 +2867,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2926,7 +2882,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -2946,7 +2901,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -2963,7 +2917,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -2975,7 +2928,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -2989,7 +2941,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -3001,7 +2952,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "30.1.2", "@jest/pattern": "30.0.1", @@ -3048,7 +2998,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3064,7 +3013,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3079,7 +3027,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3099,7 +3046,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3116,7 +3062,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3128,7 +3073,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3142,7 +3086,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } @@ -3151,7 +3094,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/fake-timers": "30.1.2", "@jest/types": "30.0.5", @@ -3166,7 +3108,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "expect": "30.1.2", "jest-snapshot": "30.1.2" @@ -3190,7 +3131,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0" }, @@ -3202,7 +3142,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3218,7 +3157,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3233,7 +3171,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/expect-utils": "30.1.2", "@jest/get-type": "30.1.0", @@ -3250,7 +3187,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", @@ -3265,7 +3201,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", @@ -3280,7 +3215,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3300,7 +3234,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3317,7 +3250,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3329,7 +3261,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3343,7 +3274,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", @@ -3360,7 +3290,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3376,7 +3305,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3391,7 +3319,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3411,7 +3338,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3428,7 +3354,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3440,7 +3365,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3454,7 +3378,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } @@ -3463,7 +3386,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/expect": "30.1.2", @@ -3478,7 +3400,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "jest-regex-util": "30.0.1" @@ -3491,7 +3412,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "30.1.2", @@ -3533,7 +3453,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3548,7 +3467,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3564,7 +3482,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -3584,7 +3501,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3601,7 +3517,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3613,7 +3528,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -3627,7 +3541,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -3639,7 +3552,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@sinclair/typebox": "^0.34.0" }, @@ -3651,7 +3563,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "chalk": "^4.1.2", @@ -3666,7 +3577,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3681,7 +3591,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3697,7 +3606,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "callsites": "^3.1.0", @@ -3711,7 +3619,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "30.1.2", "@jest/types": "30.0.5", @@ -3726,7 +3633,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/test-result": "30.1.3", "graceful-fs": "^4.2.11", @@ -3741,7 +3647,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", @@ -3767,7 +3672,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3782,7 +3686,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3798,7 +3701,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -3815,7 +3717,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3827,7 +3728,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", @@ -3845,7 +3745,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3860,7 +3759,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3876,7 +3774,6 @@ "version": "0.3.13", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" @@ -3886,7 +3783,6 @@ "version": "2.3.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -3909,7 +3805,6 @@ "version": "0.3.31", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3958,7 +3853,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", @@ -4017,7 +3911,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "engines": { "node": ">=14" } @@ -4026,7 +3919,6 @@ "version": "0.2.9", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -4111,15 +4003,13 @@ "node_modules/@sinclair/typebox": { "version": "0.34.41", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -4131,7 +4021,6 @@ "version": "3.0.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -4140,7 +4029,6 @@ "version": "13.0.5", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1" } @@ -4287,6 +4175,7 @@ "node_modules/@solana/web3.js": { "version": "1.98.4", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.25.0", "@noble/curves": "^1.4.2", @@ -4414,7 +4303,6 @@ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "license": "MIT", - "peer": true, "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -4475,7 +4363,6 @@ "version": "1.1.2", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 6" } @@ -4507,7 +4394,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -4530,7 +4416,6 @@ "version": "7.20.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -4543,7 +4428,6 @@ "version": "7.27.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -4552,7 +4436,6 @@ "version": "7.4.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -4562,7 +4445,6 @@ "version": "7.28.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.28.2" } @@ -4590,7 +4472,6 @@ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "license": "MIT", - "peer": true, "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", @@ -4609,7 +4490,6 @@ "version": "4.1.9", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*" } @@ -4618,8 +4498,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", @@ -4646,6 +4525,7 @@ "version": "29.5.14", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -4656,7 +4536,6 @@ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*" } @@ -4682,7 +4561,6 @@ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*" } @@ -4719,8 +4597,7 @@ "node_modules/@ungap/structured-clone": { "version": "1.3.0", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { "version": "1.11.1", @@ -4734,8 +4611,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-android-arm64": { "version": "1.11.1", @@ -4749,8 +4625,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.11.1", @@ -4762,8 +4637,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { "version": "1.11.1", @@ -4777,8 +4651,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { "version": "1.11.1", @@ -4792,8 +4665,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { "version": "1.11.1", @@ -4807,8 +4679,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { "version": "1.11.1", @@ -4822,8 +4693,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { "version": "1.11.1", @@ -4837,8 +4707,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { "version": "1.11.1", @@ -4852,8 +4721,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { "version": "1.11.1", @@ -4867,8 +4735,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { "version": "1.11.1", @@ -4882,8 +4749,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { "version": "1.11.1", @@ -4897,8 +4763,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { "version": "1.11.1", @@ -4912,8 +4777,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { "version": "1.11.1", @@ -4927,8 +4791,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { "version": "1.11.1", @@ -4942,8 +4805,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { "version": "1.11.1", @@ -4955,7 +4817,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, @@ -4975,8 +4836,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { "version": "1.11.1", @@ -4990,8 +4850,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { "version": "1.11.1", @@ -5005,8 +4864,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@wormhole-foundation/ntt-cli": { "resolved": "cli", @@ -5152,6 +5010,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-base/-/sdk-base-4.7.1.tgz", "integrity": "sha512-XJoGdCNpKcvTQjCDlx5t9dbI6Riw2Dc4B2zN/Dh1E6uera9Fom2uAXJ1j1K45krSqggcqMfwJReOa/0t4QAaUQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@scure/base": "^1.1.3", "binary-layout": "^1.0.3" @@ -5162,6 +5021,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-connect/-/sdk-connect-4.7.1.tgz", "integrity": "sha512-OEf06jJXn8PyColmzupnMdUFJkUJmolen1V94A89AseTrya3FGqCzjU2QPAf2kFWOBS9pmXEhSZwkIT+5e2W5A==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@wormhole-foundation/sdk-base": "4.7.1", "@wormhole-foundation/sdk-definitions": "4.7.1", @@ -5241,6 +5101,7 @@ "version": "4.7.1", "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-definitions/-/sdk-definitions-4.7.1.tgz", "integrity": "sha512-L+qaIRSco4LwaSIN3gAdz+N2s6bSj69IZO5ATLrSudfJrLMQTH9ryLFdjycEfnZILMVmHih7ACEg+vBQ2x5YyQ==", + "peer": true, "dependencies": { "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", @@ -5256,6 +5117,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm/-/sdk-evm-4.7.1.tgz", "integrity": "sha512-VEw9+2qQJAhSr/MC3Tn6Vc+4fK+p80NDIxE5LG9xDy8DM3zDcLeB87Nut2UIsYoSfl714wW7SWOgd+qRXgXdKg==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@wormhole-foundation/sdk-connect": "4.7.1", "ethers": "^6.5.1" @@ -5284,6 +5146,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-core/-/sdk-evm-core-4.7.1.tgz", "integrity": "sha512-pc08wCEGP7XXRkogA41PzWqrl9e+z1uzpRgctWD1xV/DEc6kuJ+rXLu8yFZKB0cFg4rX20zhSsGukY33uwA/6w==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@wormhole-foundation/sdk-connect": "4.7.1", "@wormhole-foundation/sdk-evm": "4.7.1", @@ -5356,6 +5219,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana/-/sdk-solana-4.7.1.tgz", "integrity": "sha512-TH0TlQzX6gSg4eMntwty4TqY7P7reKUyXq3UqCsspwkrTajucIWeWQHsKG+ZhaT0znxlJ6Ao3K/CYJuisPBflQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@coral-xyz/anchor": "0.29.0", "@coral-xyz/borsh": "0.29.0", @@ -5389,6 +5253,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-core/-/sdk-solana-core-4.7.1.tgz", "integrity": "sha512-5VHrDRtHDoGiosMoLaKS1M1aPTn9cxoLtjS00RPaQ6/jtB4RKBhgJUYuE645MVnnPkVuUGCn9WyGxkZqPyVC4A==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@coral-xyz/anchor": "0.29.0", "@coral-xyz/borsh": "0.29.0", @@ -5484,6 +5349,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-stacks/-/sdk-stacks-4.7.1.tgz", "integrity": "sha512-mGnXgo4PHGVW/lNRNWNTfAH6MLxP0byCgKlEoAxGa5rhsWiRaXjD9rk6oVKLuO/q4vGAcX1n/DrMn9T2RqHyrA==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@stacks/network": "^7.0.2", "@stacks/transactions": "^7.1.0", @@ -5498,6 +5364,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-stacks-core/-/sdk-stacks-core-4.7.1.tgz", "integrity": "sha512-/1od+AgQSaulAzN/dliPkOVz99Za18i79JQMA8btKvYGH2SWlD25VSa1090c1WLY5/SU6T/jSdP4uuA6J02EmA==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@wormhole-foundation/sdk-connect": "4.7.1", "@wormhole-foundation/sdk-stacks": "4.7.1" @@ -5515,6 +5382,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui/-/sdk-sui-4.7.1.tgz", "integrity": "sha512-Kn3L+FBOJLVtxw9B2yWOdLH3axkhKUhGAKz0OtHQW32yOeoa2G5tAeCnd/xkJkBJ51Q5w0A1IeiaSX2L7rkI1g==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@mysten/sui": "^1.37.2", "@wormhole-foundation/sdk-connect": "4.7.1" @@ -5542,6 +5410,7 @@ "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui-core/-/sdk-sui-core-4.7.1.tgz", "integrity": "sha512-zqjIEmJGHE7BKQQZIi9Z44pY9HVsvm+EeRHuxoXxmbYS70LmIk00Du5h149fDDRLIqckdtAbs7wCjZAADEslWQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@mysten/sui": "^1.37.2", "@wormhole-foundation/sdk-connect": "4.7.1", @@ -5832,7 +5701,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -5849,7 +5717,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", @@ -5896,7 +5763,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -5911,7 +5777,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -5928,7 +5793,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -5942,7 +5806,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.5.1", @@ -5986,7 +5849,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -6000,7 +5862,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -6015,7 +5876,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/test-result": "^27.5.1", "graceful-fs": "^4.2.9", @@ -6030,7 +5890,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -6071,7 +5930,6 @@ "version": "1.8.6", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -6080,7 +5938,6 @@ "version": "8.1.0", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -6102,7 +5959,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -6119,7 +5975,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", @@ -6141,7 +5996,6 @@ "version": "6.1.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -6157,7 +6011,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -6172,7 +6025,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" @@ -6193,7 +6045,6 @@ "version": "1.1.12", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6245,14 +6096,12 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/cjs-module-lexer": { "version": "1.4.3", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/cliui": { "version": "7.0.4", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -6262,8 +6111,7 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/convert-source-map": { "version": "1.9.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/cosmjs-types": { "version": "0.4.1", @@ -6277,14 +6125,12 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/dedent": { "version": "0.7.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/diff-sequences": { "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -6293,7 +6139,6 @@ "version": "0.8.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -6304,8 +6149,7 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/ethers": { "version": "5.8.0", @@ -6358,7 +6202,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -6373,7 +6216,6 @@ "version": "7.2.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6393,7 +6235,6 @@ "version": "5.2.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -6409,7 +6250,6 @@ "version": "6.3.1", "dev": true, "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -6418,7 +6258,6 @@ "version": "4.0.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -6457,7 +6296,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "execa": "^5.0.0", @@ -6471,7 +6309,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -6501,7 +6338,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -6535,7 +6371,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.8.0", "@jest/test-sequencer": "^27.5.1", @@ -6578,7 +6413,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^27.5.1", @@ -6593,7 +6427,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -6605,7 +6438,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -6621,7 +6453,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -6638,7 +6469,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -6647,7 +6477,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -6673,7 +6502,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" @@ -6686,7 +6514,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", @@ -6701,7 +6528,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -6721,7 +6547,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -6734,7 +6559,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -6743,7 +6567,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -6764,7 +6587,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", @@ -6778,7 +6600,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/environment": "^27.5.1", @@ -6810,7 +6631,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -6843,7 +6663,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -6892,7 +6711,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -6909,7 +6727,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", @@ -6927,7 +6744,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -6941,7 +6757,6 @@ "version": "8.1.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6956,7 +6771,6 @@ "version": "3.1.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6968,7 +6782,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -6981,20 +6794,17 @@ "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/signal-exit": { "version": "3.0.7", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/@wormhole-foundation/wormchain-sdk/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7008,7 +6818,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7062,6 +6871,7 @@ "version": "4.9.5", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7074,7 +6884,6 @@ "version": "8.1.1", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", @@ -7088,7 +6897,6 @@ "version": "0.7.6", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">= 12" } @@ -7097,7 +6905,6 @@ "version": "7.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7114,7 +6921,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7129,7 +6935,6 @@ "version": "3.0.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -7141,7 +6946,6 @@ "version": "16.2.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7214,8 +7018,7 @@ "node_modules/abab": { "version": "2.0.6", "dev": true, - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/abitype": { "version": "1.1.0", @@ -7253,7 +7056,6 @@ "version": "6.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -7263,7 +7065,6 @@ "version": "7.4.1", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -7275,7 +7076,6 @@ "version": "7.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.4.0" } @@ -7299,7 +7099,6 @@ "version": "6.0.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "debug": "4" }, @@ -7348,7 +7147,6 @@ "version": "4.3.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -7384,7 +7182,6 @@ "version": "3.1.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7435,6 +7232,7 @@ "node_modules/axios": { "version": "1.12.2", "license": "MIT", + "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -7445,7 +7243,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/transform": "30.1.2", "@types/babel__core": "^7.20.5", @@ -7466,7 +7263,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7481,7 +7277,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7497,7 +7292,6 @@ "version": "7.0.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "workspaces": [ "test/babel-8" ], @@ -7516,7 +7310,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", @@ -7530,7 +7323,6 @@ "version": "1.2.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -7556,7 +7348,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "babel-plugin-jest-hoist": "30.0.1", "babel-preset-current-node-syntax": "^1.1.0" @@ -7601,7 +7392,6 @@ "version": "2.8.4", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "baseline-browser-mapping": "dist/cli.js" } @@ -7687,7 +7477,6 @@ "version": "2.0.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -7714,8 +7503,7 @@ "node_modules/browser-process-hrtime": { "version": "1.0.0", "dev": true, - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/browserslist": { "version": "4.26.0", @@ -7782,7 +7570,6 @@ "version": "2.1.1", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "node-int64": "^0.4.0" } @@ -7812,8 +7599,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/buffer-layout": { "version": "1.2.2", @@ -7827,6 +7613,7 @@ "devOptional": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -7876,7 +7663,6 @@ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10.6.0" } @@ -7886,7 +7672,6 @@ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "license": "MIT", - "peer": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -7947,7 +7732,6 @@ "version": "3.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -7979,8 +7763,7 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "CC-BY-4.0", - "peer": true + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "5.6.2", @@ -7996,7 +7779,6 @@ "version": "1.0.2", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" } @@ -8011,7 +7793,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -8031,14 +7812,12 @@ "node_modules/cjs-module-lexer": { "version": "2.1.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -8052,7 +7831,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -8061,7 +7839,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8075,14 +7852,12 @@ "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8096,7 +7871,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8108,7 +7882,6 @@ "version": "7.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8126,7 +7899,6 @@ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "license": "MIT", - "peer": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -8138,7 +7910,6 @@ "version": "4.6.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -8147,8 +7918,7 @@ "node_modules/collect-v8-coverage": { "version": "1.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", @@ -8298,8 +8068,7 @@ "node_modules/convert-source-map": { "version": "2.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.3", @@ -8353,7 +8122,6 @@ "version": "7.0.6", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8382,14 +8150,12 @@ "node_modules/cssom": { "version": "0.4.4", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cssstyle": { "version": "2.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssom": "~0.3.6" }, @@ -8400,14 +8166,12 @@ "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/data-urls": { "version": "2.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -8421,7 +8185,6 @@ "version": "2.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -8433,7 +8196,6 @@ "version": "6.1.0", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=10.4" } @@ -8442,7 +8204,6 @@ "version": "8.7.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -8478,7 +8239,6 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "license": "MIT", - "peer": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -8494,7 +8254,6 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -8506,7 +8265,6 @@ "version": "1.7.0", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -8528,7 +8286,6 @@ "version": "4.3.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -8538,7 +8295,6 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" } @@ -8594,7 +8350,6 @@ "version": "3.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -8619,7 +8374,6 @@ "version": "2.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -8631,7 +8385,6 @@ "version": "5.0.0", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=8" } @@ -8667,14 +8420,12 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.5.218", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/elliptic": { "version": "6.6.1", @@ -8697,7 +8448,6 @@ "version": "0.13.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -8708,15 +8458,13 @@ "node_modules/emoji-regex": { "version": "9.2.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", - "peer": true, "dependencies": { "once": "^1.4.0" } @@ -8725,7 +8473,6 @@ "version": "1.3.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -8837,7 +8584,6 @@ "version": "2.1.0", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -8870,7 +8616,6 @@ "version": "5.3.0", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=4.0" } @@ -8879,7 +8624,6 @@ "version": "2.0.3", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -8897,6 +8641,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", @@ -8968,7 +8713,6 @@ "version": "5.1.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -8991,7 +8735,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -9002,13 +8745,11 @@ "node_modules/execa/node_modules/signal-exit": { "version": "3.0.7", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/exit": { "version": "0.1.2", "dev": true, - "peer": true, "engines": { "node": ">= 0.8.0" } @@ -9017,7 +8758,6 @@ "version": "0.2.2", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8.0" } @@ -9066,7 +8806,6 @@ "version": "2.0.2", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "bser": "2.1.1" } @@ -9101,7 +8840,6 @@ "version": "4.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -9146,7 +8884,6 @@ "version": "3.3.1", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" @@ -9220,7 +8957,6 @@ "version": "1.0.0-beta.2", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -9268,7 +9004,6 @@ "version": "0.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -9289,7 +9024,6 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "license": "MIT", - "peer": true, "dependencies": { "pump": "^3.0.0" }, @@ -9315,7 +9049,6 @@ "version": "10.4.5", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -9347,7 +9080,8 @@ }, "node_modules/google-protobuf": { "version": "3.21.4", - "license": "(BSD-3-Clause AND Apache-2.0)" + "license": "(BSD-3-Clause AND Apache-2.0)", + "peer": true }, "node_modules/gopd": { "version": "1.2.0", @@ -9410,6 +9144,7 @@ "node_modules/graphql": { "version": "16.11.0", "license": "MIT", + "peer": true, "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -9591,7 +9326,6 @@ "version": "2.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "whatwg-encoding": "^1.0.5" }, @@ -9602,21 +9336,18 @@ "node_modules/html-escaper": { "version": "2.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/http-proxy-agent": { "version": "4.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -9637,7 +9368,6 @@ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "license": "MIT", - "peer": true, "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -9650,7 +9380,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -9663,7 +9392,6 @@ "version": "2.1.0", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=10.17.0" } @@ -9679,7 +9407,6 @@ "version": "0.4.24", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -9709,7 +9436,6 @@ "version": "3.2.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -9728,7 +9454,6 @@ "version": "0.1.4", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.8.19" } @@ -9757,8 +9482,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/is-callable": { "version": "1.2.7", @@ -9788,7 +9512,6 @@ "version": "3.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -9797,7 +9520,6 @@ "version": "2.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -9813,14 +9535,12 @@ "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/is-stream": { "version": "2.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" }, @@ -9845,8 +9565,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/isarray": { "version": "2.0.5", @@ -9856,8 +9575,7 @@ "node_modules/isexe": { "version": "2.0.0", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/isomorphic-ws": { "version": "4.0.1", @@ -9885,7 +9603,6 @@ "version": "3.2.2", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=8" } @@ -9894,7 +9611,6 @@ "version": "6.0.3", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -9910,7 +9626,6 @@ "version": "3.0.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -9924,7 +9639,6 @@ "version": "5.0.6", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", @@ -9938,7 +9652,6 @@ "version": "3.2.0", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9951,7 +9664,6 @@ "version": "3.4.3", "dev": true, "license": "BlueOak-1.0.0", - "peer": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -10024,7 +9736,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "execa": "^5.1.1", "jest-util": "30.0.5", @@ -10038,7 +9749,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10053,7 +9763,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10069,7 +9778,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10086,7 +9794,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10098,7 +9805,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/expect": "30.1.2", @@ -10129,7 +9835,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10145,7 +9850,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10160,7 +9864,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", @@ -10175,7 +9878,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", @@ -10190,7 +9892,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -10210,7 +9911,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10227,7 +9927,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10239,7 +9938,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -10253,7 +9951,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "30.1.3", "@jest/test-result": "30.1.3", @@ -10285,7 +9982,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10300,7 +9996,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10316,7 +10011,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10333,7 +10027,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10345,7 +10038,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", @@ -10396,7 +10088,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10412,7 +10103,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10427,7 +10117,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10444,7 +10133,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10456,7 +10144,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -10513,7 +10200,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "detect-newline": "^3.1.0" }, @@ -10525,7 +10211,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.0.5", @@ -10541,7 +10226,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10557,7 +10241,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10572,7 +10255,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10589,7 +10271,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10601,7 +10282,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -10615,7 +10295,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -10633,7 +10312,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -10648,7 +10326,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -10665,7 +10342,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -10681,7 +10357,6 @@ "version": "1.8.6", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -10690,7 +10365,6 @@ "version": "8.1.0", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -10699,7 +10373,6 @@ "version": "16.0.9", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -10708,7 +10381,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -10717,7 +10389,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10732,7 +10403,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10754,7 +10424,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -10763,7 +10432,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -10783,7 +10451,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -10796,7 +10463,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -10813,7 +10479,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -10827,7 +10492,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -10838,14 +10502,12 @@ "node_modules/jest-environment-jsdom/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jest-environment-node": { "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/fake-timers": "30.1.2", @@ -10863,7 +10525,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10878,7 +10539,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10894,7 +10554,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10911,7 +10570,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10931,7 +10589,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -10955,7 +10612,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10970,7 +10626,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10986,7 +10641,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11003,7 +10657,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -11015,7 +10668,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/source-map": "^27.5.1", @@ -11043,7 +10695,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -11060,7 +10711,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -11075,7 +10725,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -11092,7 +10741,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -11106,7 +10754,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -11120,7 +10767,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -11135,7 +10781,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -11161,7 +10806,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -11177,7 +10821,6 @@ "version": "1.8.6", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -11186,7 +10829,6 @@ "version": "8.1.0", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -11195,7 +10837,6 @@ "version": "16.0.9", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -11204,7 +10845,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -11213,7 +10853,6 @@ "version": "6.1.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -11229,7 +10868,6 @@ "version": "1.1.12", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11239,7 +10877,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11255,7 +10892,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11276,7 +10912,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -11284,20 +10919,17 @@ "node_modules/jest-jasmine2/node_modules/cjs-module-lexer": { "version": "1.4.3", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jest-jasmine2/node_modules/convert-source-map": { "version": "1.9.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jest-jasmine2/node_modules/diff-sequences": { "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -11306,7 +10938,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -11321,7 +10952,6 @@ "version": "7.2.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11341,7 +10971,6 @@ "version": "5.2.1", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -11357,7 +10986,6 @@ "version": "6.3.1", "dev": true, "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -11366,7 +10994,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^27.5.1", @@ -11381,7 +11008,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -11397,7 +11023,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -11406,7 +11031,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -11432,7 +11056,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", @@ -11447,7 +11070,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -11467,7 +11089,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -11480,7 +11101,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -11489,7 +11109,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -11510,7 +11129,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -11543,7 +11161,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -11576,7 +11193,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -11593,7 +11209,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -11610,7 +11225,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -11624,7 +11238,6 @@ "version": "8.1.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11639,7 +11252,6 @@ "version": "3.1.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11651,7 +11263,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -11664,20 +11275,17 @@ "node_modules/jest-jasmine2/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jest-jasmine2/node_modules/signal-exit": { "version": "3.0.7", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/jest-jasmine2/node_modules/write-file-atomic": { "version": "3.0.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -11689,7 +11297,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "pretty-format": "30.0.5" @@ -11702,7 +11309,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -11839,7 +11445,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11853,7 +11458,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11868,7 +11472,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11884,7 +11487,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -11901,7 +11503,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -11913,7 +11514,6 @@ "version": "1.2.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" }, @@ -11930,7 +11530,6 @@ "version": "30.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } @@ -11939,7 +11538,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", @@ -11958,7 +11556,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "jest-regex-util": "30.0.1", "jest-snapshot": "30.1.2" @@ -11971,7 +11568,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11986,7 +11582,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12002,7 +11597,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12019,7 +11613,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -12031,7 +11624,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/console": "30.1.2", "@jest/environment": "30.1.2", @@ -12064,7 +11656,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12079,7 +11670,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12095,7 +11685,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -12115,7 +11704,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12132,7 +11720,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -12144,7 +11731,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -12158,7 +11744,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -12170,7 +11755,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "30.1.2", "@jest/fake-timers": "30.1.2", @@ -12203,7 +11787,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12218,7 +11801,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12234,7 +11816,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -12254,7 +11835,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12271,7 +11851,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -12283,7 +11862,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -12297,7 +11875,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -12309,7 +11886,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -12322,7 +11898,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", @@ -12354,7 +11929,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0" }, @@ -12366,7 +11940,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12382,7 +11955,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12397,7 +11969,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/expect-utils": "30.1.2", "@jest/get-type": "30.1.0", @@ -12414,7 +11985,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", @@ -12429,7 +11999,6 @@ "version": "30.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", @@ -12444,7 +12013,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", @@ -12464,7 +12032,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12481,7 +12048,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -12493,7 +12059,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -12598,7 +12163,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.0.5", @@ -12615,7 +12179,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12631,7 +12194,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12646,7 +12208,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", @@ -12660,7 +12221,6 @@ "version": "30.1.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/test-result": "30.1.3", "@jest/types": "30.0.5", @@ -12679,7 +12239,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12694,7 +12253,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12710,7 +12268,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12727,7 +12284,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -12739,7 +12295,6 @@ "version": "30.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", @@ -12755,7 +12310,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12770,7 +12324,6 @@ "version": "4.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12786,7 +12339,6 @@ "version": "7.2.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12798,7 +12350,6 @@ "version": "30.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", @@ -12815,7 +12366,6 @@ "version": "4.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -12827,7 +12377,6 @@ "version": "8.1.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12882,7 +12431,6 @@ "version": "16.7.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -12928,7 +12476,6 @@ "version": "3.0.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -12944,7 +12491,6 @@ "version": "2.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -12956,7 +12502,6 @@ "version": "6.1.0", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=10.4" } @@ -12965,7 +12510,6 @@ "version": "8.7.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -12979,7 +12523,6 @@ "version": "3.1.0", "dev": true, "license": "MIT", - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -12998,14 +12541,12 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -13068,7 +12609,6 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", - "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -13077,7 +12617,6 @@ "version": "3.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -13086,7 +12625,6 @@ "version": "3.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -13122,14 +12660,12 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/locate-path": { "version": "5.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -13186,7 +12722,6 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -13195,7 +12730,6 @@ "version": "5.1.1", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "yallist": "^3.0.2" } @@ -13204,7 +12738,6 @@ "version": "4.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "semver": "^7.5.3" }, @@ -13224,7 +12757,6 @@ "version": "1.0.12", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "tmpl": "1.0.5" } @@ -13261,8 +12793,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -13297,7 +12828,6 @@ "version": "2.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -13307,7 +12837,6 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -13324,7 +12853,6 @@ "version": "9.0.5", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -13346,7 +12874,6 @@ "version": "7.1.2", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -13375,7 +12902,6 @@ "version": "0.3.3", "dev": true, "license": "MIT", - "peer": true, "bin": { "napi-postinstall": "lib/cli.js" }, @@ -13389,8 +12915,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", @@ -13453,20 +12978,17 @@ "node_modules/node-int64": { "version": "0.4.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.21", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -13476,7 +12998,6 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -13488,7 +13009,6 @@ "version": "4.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "path-key": "^3.0.0" }, @@ -13499,8 +13019,7 @@ "node_modules/nwsapi": { "version": "2.2.22", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", @@ -13529,7 +13048,6 @@ "version": "5.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -13614,7 +13132,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -13623,7 +13140,6 @@ "version": "3.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -13638,7 +13154,6 @@ "version": "4.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -13650,7 +13165,6 @@ "version": "2.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "p-try": "^2.0.0" }, @@ -13665,7 +13179,6 @@ "version": "2.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -13673,8 +13186,7 @@ "node_modules/package-json-from-dist": { "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "peer": true + "license": "BlueOak-1.0.0" }, "node_modules/pako": { "version": "2.1.0", @@ -13684,7 +13196,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -13701,14 +13212,12 @@ "node_modules/parse5": { "version": "6.0.1", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -13724,7 +13233,6 @@ "version": "3.1.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -13737,7 +13245,6 @@ "version": "1.11.1", "dev": true, "license": "BlueOak-1.0.0", - "peer": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -13752,8 +13259,7 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/picocolors": { "version": "1.1.1", @@ -13775,7 +13281,6 @@ "version": "4.0.7", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 6" } @@ -13784,7 +13289,6 @@ "version": "4.2.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "find-up": "^4.0.0" }, @@ -13856,7 +13360,6 @@ "version": "2.4.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -13922,7 +13425,6 @@ "version": "1.15.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "punycode": "^2.3.1" }, @@ -13935,7 +13437,6 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "license": "MIT", - "peer": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -13945,7 +13446,6 @@ "version": "2.3.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -13963,21 +13463,18 @@ "url": "https://opencollective.com/fast-check" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/querystringify": { "version": "2.2.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -14048,7 +13545,6 @@ "version": "2.1.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -14056,8 +13552,7 @@ "node_modules/requires-port": { "version": "1.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.10", @@ -14081,14 +13576,12 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/resolve-cwd": { "version": "3.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -14100,7 +13593,6 @@ "version": "5.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14117,7 +13609,6 @@ "version": "1.1.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" } @@ -14127,7 +13618,6 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "license": "MIT", - "peer": true, "dependencies": { "lowercase-keys": "^2.0.0" }, @@ -14139,7 +13629,6 @@ "version": "3.0.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -14154,7 +13643,6 @@ "version": "1.1.12", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -14164,7 +13652,6 @@ "version": "7.2.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14184,7 +13671,6 @@ "version": "3.1.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -14283,14 +13769,12 @@ "node_modules/safer-buffer": { "version": "2.1.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/saxes": { "version": "5.0.1", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -14370,7 +13854,6 @@ "version": "2.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -14382,7 +13865,6 @@ "version": "3.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14467,7 +13949,6 @@ "version": "4.1.0", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">=14" }, @@ -14478,8 +13959,7 @@ "node_modules/sisteransi": { "version": "1.0.5", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", @@ -14535,7 +14015,6 @@ "version": "0.5.13", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -14585,7 +14064,6 @@ "version": "4.0.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -14598,7 +14076,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14607,7 +14084,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14619,7 +14095,6 @@ "version": "5.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -14637,7 +14112,6 @@ "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -14651,7 +14125,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14659,14 +14132,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14692,7 +14163,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14704,7 +14174,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14713,7 +14182,6 @@ "version": "4.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14722,7 +14190,6 @@ "version": "2.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -14731,7 +14198,6 @@ "version": "3.1.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" }, @@ -14761,7 +14227,6 @@ "version": "2.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -14790,14 +14255,12 @@ "node_modules/symbol-tree": { "version": "3.2.4", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/synckit": { "version": "0.11.11", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@pkgr/core": "^0.2.9" }, @@ -14842,7 +14305,6 @@ "version": "2.1.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -14858,7 +14320,6 @@ "version": "6.0.0", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -14872,7 +14333,6 @@ "version": "1.1.12", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -14882,7 +14342,6 @@ "version": "7.2.3", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14902,7 +14361,6 @@ "version": "3.1.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -14916,8 +14374,7 @@ "node_modules/throat": { "version": "6.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tiny-secp256k1": { "version": "1.1.7", @@ -14951,8 +14408,7 @@ "node_modules/tmpl": { "version": "1.0.5", "dev": true, - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/to-buffer": { "version": "1.2.1", @@ -14986,7 +14442,6 @@ "version": "4.1.4", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -15364,7 +14819,6 @@ "version": "4.0.8", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -15373,7 +14827,6 @@ "version": "0.21.3", "dev": true, "license": "(MIT OR CC0-1.0)", - "peer": true, "engines": { "node": ">=10" }, @@ -15385,6 +14838,7 @@ "version": "8.3.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/prettier": "^2.1.1", "debug": "^4.3.1", @@ -15485,7 +14939,6 @@ "version": "3.1.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "is-typedarray": "^1.0.0" } @@ -15498,6 +14951,7 @@ "node_modules/typescript": { "version": "5.9.2", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15534,7 +14988,6 @@ "version": "0.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 4.0.0" } @@ -15544,7 +14997,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -15591,7 +15043,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -15607,7 +15058,6 @@ "version": "1.5.10", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -15618,6 +15068,7 @@ "devOptional": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -15646,7 +15097,6 @@ "version": "9.3.0", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -15734,7 +15184,6 @@ "version": "1.0.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -15743,7 +15192,6 @@ "version": "2.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "xml-name-validator": "^3.0.0" }, @@ -15755,7 +15203,6 @@ "version": "1.0.8", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "makeerror": "1.0.12" } @@ -15768,7 +15215,6 @@ "version": "1.0.5", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "iconv-lite": "0.4.24" } @@ -15776,8 +15222,7 @@ "node_modules/whatwg-mimetype": { "version": "2.3.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/whatwg-url": { "version": "5.0.0", @@ -15791,7 +15236,6 @@ "version": "2.0.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -15859,7 +15303,6 @@ "version": "8.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -15877,7 +15320,6 @@ "version": "7.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15894,7 +15336,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -15903,7 +15344,6 @@ "version": "4.3.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -15917,14 +15357,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15938,7 +15376,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15950,7 +15387,6 @@ "version": "6.2.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -15966,7 +15402,6 @@ "version": "5.0.1", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -15978,6 +15413,7 @@ "node_modules/ws": { "version": "7.5.10", "license": "MIT", + "peer": true, "engines": { "node": ">=8.3.0" }, @@ -15997,14 +15433,12 @@ "node_modules/xml-name-validator": { "version": "3.0.0", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/xmlchars": { "version": "2.2.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/xstream": { "version": "11.14.0", @@ -16024,14 +15458,12 @@ "node_modules/yallist": { "version": "3.1.1", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -16057,7 +15489,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -16065,14 +15496,12 @@ "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16086,7 +15515,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16106,7 +15534,6 @@ "version": "0.1.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, From 699cd5be932949bec7138112ab73a5e8c54ffceb Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Wed, 17 Dec 2025 08:57:25 -0600 Subject: [PATCH 08/11] chore: fix bun CLI builds in CI --- package-lock.json | 1024 ++++++++++++++++++++++++++++++++------------- package.json | 1 + 2 files changed, 726 insertions(+), 299 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3a1c1d76..2265c6e57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "@wormhole-foundation/sdk": "^4.7.0", "@wormhole-foundation/wormchain-sdk": "^0.0.1", "ethers": "^6.5.1", + "jest": "^30.2.0", "prettier": "3.6.2", "ts-jest": "^29.1.2", "tsx": "^4.7.2", @@ -507,6 +508,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { @@ -2788,6 +2791,8 @@ }, "node_modules/@isaacs/cliui": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", "dependencies": { @@ -2834,15 +2839,17 @@ } }, "node_modules/@jest/console": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.1.0", - "jest-util": "30.0.5", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0" }, "engines": { @@ -2851,6 +2858,8 @@ }, "node_modules/@jest/console/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -2865,6 +2874,8 @@ }, "node_modules/@jest/console/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -2879,17 +2890,19 @@ } }, "node_modules/@jest/console/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -2898,11 +2911,13 @@ } }, "node_modules/@jest/console/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -2915,6 +2930,8 @@ }, "node_modules/@jest/console/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -2925,7 +2942,9 @@ } }, "node_modules/@jest/console/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -2939,6 +2958,8 @@ }, "node_modules/@jest/console/node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -2949,37 +2970,39 @@ } }, "node_modules/@jest/core": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.1.2", + "@jest/console": "30.2.0", "@jest/pattern": "30.0.1", - "@jest/reporters": "30.1.3", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/reporters": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.0.5", - "jest-config": "30.1.3", - "jest-haste-map": "30.1.0", - "jest-message-util": "30.1.0", + "jest-changed-files": "30.2.0", + "jest-config": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.1.3", - "jest-resolve-dependencies": "30.1.3", - "jest-runner": "30.1.3", - "jest-runtime": "30.1.3", - "jest-snapshot": "30.1.2", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", - "jest-watcher": "30.1.3", + "jest-resolve": "30.2.0", + "jest-resolve-dependencies": "30.2.0", + "jest-runner": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "jest-watcher": "30.2.0", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0" }, "engines": { @@ -2996,6 +3019,8 @@ }, "node_modules/@jest/core/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3011,6 +3036,8 @@ }, "node_modules/@jest/core/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3024,17 +3051,19 @@ } }, "node_modules/@jest/core/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -3043,11 +3072,13 @@ } }, "node_modules/@jest/core/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -3060,6 +3091,8 @@ }, "node_modules/@jest/core/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3070,7 +3103,9 @@ } }, "node_modules/@jest/core/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3084,6 +3119,8 @@ }, "node_modules/@jest/diff-sequences": { "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", "dev": true, "license": "MIT", "engines": { @@ -3091,26 +3128,30 @@ } }, "node_modules/@jest/environment": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.1.2", - "@jest/types": "30.0.5", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "30.0.5" + "jest-mock": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.1.2", - "jest-snapshot": "30.1.2" + "expect": "30.2.0", + "jest-snapshot": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -3128,7 +3169,9 @@ } }, "node_modules/@jest/expect/node_modules/@jest/expect-utils": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", "dev": true, "license": "MIT", "dependencies": { @@ -3140,6 +3183,8 @@ }, "node_modules/@jest/expect/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3155,6 +3200,8 @@ }, "node_modules/@jest/expect/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3168,61 +3215,69 @@ } }, "node_modules/@jest/expect/node_modules/expect": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.1.2", + "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-util": "30.0.5" + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect/node_modules/jest-diff": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, "license": "MIT", "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.0.5" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect/node_modules/jest-matcher-utils": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.1.2", - "pretty-format": "30.0.5" + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -3231,11 +3286,13 @@ } }, "node_modules/@jest/expect/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -3248,6 +3305,8 @@ }, "node_modules/@jest/expect/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3258,7 +3317,9 @@ } }, "node_modules/@jest/expect/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3271,16 +3332,18 @@ } }, "node_modules/@jest/fake-timers": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-util": "30.0.5" + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -3288,6 +3351,8 @@ }, "node_modules/@jest/fake-timers/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3303,6 +3368,8 @@ }, "node_modules/@jest/fake-timers/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3316,17 +3383,19 @@ } }, "node_modules/@jest/fake-timers/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -3335,11 +3404,13 @@ } }, "node_modules/@jest/fake-timers/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -3352,6 +3423,8 @@ }, "node_modules/@jest/fake-timers/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3362,7 +3435,9 @@ } }, "node_modules/@jest/fake-timers/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3383,14 +3458,16 @@ } }, "node_modules/@jest/globals": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/expect": "30.1.2", - "@jest/types": "30.0.5", - "jest-mock": "30.0.5" + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/types": "30.2.0", + "jest-mock": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -3409,15 +3486,17 @@ } }, "node_modules/@jest/reporters": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.1.2", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/console": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", @@ -3430,9 +3509,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.1.0", - "jest-util": "30.0.5", - "jest-worker": "30.1.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -3451,6 +3530,8 @@ }, "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3465,6 +3546,8 @@ }, "node_modules/@jest/reporters/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3479,17 +3562,19 @@ } }, "node_modules/@jest/reporters/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -3498,11 +3583,13 @@ } }, "node_modules/@jest/reporters/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -3515,6 +3602,8 @@ }, "node_modules/@jest/reporters/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3525,7 +3614,9 @@ } }, "node_modules/@jest/reporters/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3539,6 +3630,8 @@ }, "node_modules/@jest/reporters/node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -3560,11 +3653,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -3575,6 +3670,8 @@ }, "node_modules/@jest/snapshot-utils/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3589,6 +3686,8 @@ }, "node_modules/@jest/snapshot-utils/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3604,6 +3703,8 @@ }, "node_modules/@jest/source-map": { "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", "dependencies": { @@ -3616,12 +3717,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.1.2", - "@jest/types": "30.0.5", + "@jest/console": "30.2.0", + "@jest/types": "30.2.0", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -3630,13 +3733,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.1.3", + "@jest/test-result": "30.2.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", + "jest-haste-map": "30.2.0", "slash": "^3.0.0" }, "engines": { @@ -3644,21 +3749,24 @@ } }, "node_modules/@jest/transform": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", - "babel-plugin-istanbul": "^7.0.0", + "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", + "jest-haste-map": "30.2.0", "jest-regex-util": "30.0.1", - "jest-util": "30.0.5", + "jest-util": "30.2.0", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", @@ -3670,6 +3778,8 @@ }, "node_modules/@jest/transform/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3684,6 +3794,8 @@ }, "node_modules/@jest/transform/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3698,11 +3810,13 @@ } }, "node_modules/@jest/transform/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -3715,6 +3829,8 @@ }, "node_modules/@jest/transform/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3725,9 +3841,12 @@ } }, "node_modules/@jest/types": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", @@ -3908,6 +4027,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", "optional": true, @@ -3917,6 +4038,8 @@ }, "node_modules/@pkgr/core": { "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { @@ -4019,6 +4142,8 @@ }, "node_modules/@sinonjs/commons": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4027,6 +4152,8 @@ }, "node_modules/@sinonjs/fake-timers": { "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -7240,14 +7367,17 @@ } }, "node_modules/babel-jest": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@jest/transform": "30.1.2", + "@jest/transform": "30.2.0", "@types/babel__core": "^7.20.5", - "babel-plugin-istanbul": "^7.0.0", - "babel-preset-jest": "30.0.1", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -7256,7 +7386,7 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0" + "@babel/core": "^7.11.0 || ^8.0.0-0" } }, "node_modules/babel-jest/node_modules/ansi-styles": { @@ -7307,12 +7437,12 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.0.1", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" }, "engines": { @@ -7345,18 +7475,20 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.0.1", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.0.1", - "babel-preset-current-node-syntax": "^1.1.0" + "babel-plugin-jest-hoist": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0" + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, "node_modules/balanced-match": { @@ -7475,6 +7607,8 @@ }, "node_modules/brace-expansion": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7810,12 +7944,16 @@ } }, "node_modules/cjs-module-lexer": { - "version": "2.1.0", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz", + "integrity": "sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==", "dev": true, "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { @@ -7829,6 +7967,8 @@ }, "node_modules/cliui/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -7837,6 +7977,8 @@ }, "node_modules/cliui/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -7851,11 +7993,15 @@ }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -7869,6 +8015,8 @@ }, "node_modules/cliui/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -7880,6 +8028,8 @@ }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { @@ -8263,6 +8413,8 @@ }, "node_modules/dedent": { "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -8419,6 +8571,8 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" }, @@ -8446,6 +8600,8 @@ }, "node_modules/emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", "engines": { @@ -8457,6 +8613,8 @@ }, "node_modules/emoji-regex": { "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, @@ -8756,6 +8914,8 @@ }, "node_modules/exit-x": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, "license": "MIT", "engines": { @@ -8882,6 +9042,8 @@ }, "node_modules/foreground-child": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, "license": "ISC", "dependencies": { @@ -9046,7 +9208,9 @@ } }, "node_modules/glob": { - "version": "10.4.5", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "license": "ISC", "dependencies": { @@ -9637,6 +9801,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9662,6 +9828,8 @@ }, "node_modules/jackspeak": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -9707,15 +9875,17 @@ "license": "MIT" }, "node_modules/jest": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@jest/core": "30.1.3", - "@jest/types": "30.0.5", + "@jest/core": "30.2.0", + "@jest/types": "30.2.0", "import-local": "^3.2.0", - "jest-cli": "30.1.3" + "jest-cli": "30.2.0" }, "bin": { "jest": "bin/jest.js" @@ -9733,12 +9903,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.0.5", + "jest-util": "30.2.0", "p-limit": "^3.1.0" }, "engines": { @@ -9747,6 +9919,8 @@ }, "node_modules/jest-changed-files/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -9761,6 +9935,8 @@ }, "node_modules/jest-changed-files/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -9775,11 +9951,13 @@ } }, "node_modules/jest-changed-files/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -9792,6 +9970,8 @@ }, "node_modules/jest-changed-files/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -9802,27 +9982,29 @@ } }, "node_modules/jest-circus": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/expect": "30.1.2", - "@jest/test-result": "30.1.3", - "@jest/types": "30.0.5", + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.1.0", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-runtime": "30.1.3", - "jest-snapshot": "30.1.2", - "jest-util": "30.0.5", + "jest-each": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "p-limit": "^3.1.0", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -9833,6 +10015,8 @@ }, "node_modules/jest-circus/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -9848,6 +10032,8 @@ }, "node_modules/jest-circus/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -9861,45 +10047,51 @@ } }, "node_modules/jest-circus/node_modules/jest-diff": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, "license": "MIT", "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.0.5" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.1.2", - "pretty-format": "30.0.5" + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-circus/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -9908,11 +10100,13 @@ } }, "node_modules/jest-circus/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -9925,6 +10119,8 @@ }, "node_modules/jest-circus/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -9935,7 +10131,9 @@ } }, "node_modules/jest-circus/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -9948,19 +10146,21 @@ } }, "node_modules/jest-cli": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.1.3", - "@jest/test-result": "30.1.3", - "@jest/types": "30.0.5", + "@jest/core": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.1.3", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", + "jest-config": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", "yargs": "^17.7.2" }, "bin": { @@ -9980,6 +10180,8 @@ }, "node_modules/jest-cli/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -9994,6 +10196,8 @@ }, "node_modules/jest-cli/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -10008,11 +10212,13 @@ } }, "node_modules/jest-cli/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -10025,6 +10231,8 @@ }, "node_modules/jest-cli/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -10035,32 +10243,34 @@ } }, "node_modules/jest-config": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", "@jest/pattern": "30.0.1", - "@jest/test-sequencer": "30.1.3", - "@jest/types": "30.0.5", - "babel-jest": "30.1.2", + "@jest/test-sequencer": "30.2.0", + "@jest/types": "30.2.0", + "babel-jest": "30.2.0", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "jest-circus": "30.1.3", - "jest-docblock": "30.0.1", - "jest-environment-node": "30.1.2", + "jest-circus": "30.2.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.1.3", - "jest-runner": "30.1.3", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", + "jest-resolve": "30.2.0", + "jest-runner": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", "micromatch": "^4.0.8", "parse-json": "^5.2.0", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -10086,6 +10296,8 @@ }, "node_modules/jest-config/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -10101,6 +10313,8 @@ }, "node_modules/jest-config/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -10114,11 +10328,13 @@ } }, "node_modules/jest-config/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -10131,6 +10347,8 @@ }, "node_modules/jest-config/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -10141,7 +10359,9 @@ } }, "node_modules/jest-config/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -10197,7 +10417,9 @@ } }, "node_modules/jest-docblock": { - "version": "30.0.1", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, "license": "MIT", "dependencies": { @@ -10208,15 +10430,17 @@ } }, "node_modules/jest-each": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "chalk": "^4.1.2", - "jest-util": "30.0.5", - "pretty-format": "30.0.5" + "jest-util": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -10224,6 +10448,8 @@ }, "node_modules/jest-each/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -10239,6 +10465,8 @@ }, "node_modules/jest-each/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -10252,11 +10480,13 @@ } }, "node_modules/jest-each/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -10269,6 +10499,8 @@ }, "node_modules/jest-each/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -10279,7 +10511,9 @@ } }, "node_modules/jest-each/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -10505,17 +10739,19 @@ "license": "MIT" }, "node_modules/jest-environment-node": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/fake-timers": "30.1.2", - "@jest/types": "30.0.5", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "30.0.5", - "jest-util": "30.0.5", - "jest-validate": "30.1.0" + "jest-mock": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -10523,6 +10759,8 @@ }, "node_modules/jest-environment-node/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -10537,6 +10775,8 @@ }, "node_modules/jest-environment-node/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -10551,11 +10791,13 @@ } }, "node_modules/jest-environment-node/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -10568,6 +10810,8 @@ }, "node_modules/jest-environment-node/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -10586,18 +10830,20 @@ } }, "node_modules/jest-haste-map": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", - "jest-util": "30.0.5", - "jest-worker": "30.1.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", "micromatch": "^4.0.8", "walker": "^1.0.8" }, @@ -10610,6 +10856,8 @@ }, "node_modules/jest-haste-map/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -10624,6 +10872,8 @@ }, "node_modules/jest-haste-map/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -10638,11 +10888,13 @@ } }, "node_modules/jest-haste-map/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -10655,6 +10907,8 @@ }, "node_modules/jest-haste-map/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -11294,19 +11548,23 @@ } }, "node_modules/jest-leak-detector": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "pretty-format": "30.0.5" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -11442,13 +11700,15 @@ } }, "node_modules/jest-mock": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-util": "30.0.5" + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -11456,6 +11716,8 @@ }, "node_modules/jest-mock/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -11470,6 +11732,8 @@ }, "node_modules/jest-mock/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -11484,11 +11748,13 @@ } }, "node_modules/jest-mock/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -11501,6 +11767,8 @@ }, "node_modules/jest-mock/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -11535,16 +11803,18 @@ } }, "node_modules/jest-resolve": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", + "jest-haste-map": "30.2.0", "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" }, @@ -11553,12 +11823,14 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", "dev": true, "license": "MIT", "dependencies": { "jest-regex-util": "30.0.1", - "jest-snapshot": "30.1.2" + "jest-snapshot": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -11566,6 +11838,8 @@ }, "node_modules/jest-resolve/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -11580,6 +11854,8 @@ }, "node_modules/jest-resolve/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -11594,11 +11870,13 @@ } }, "node_modules/jest-resolve/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -11611,6 +11889,8 @@ }, "node_modules/jest-resolve/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -11621,30 +11901,32 @@ } }, "node_modules/jest-runner": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.1.2", - "@jest/environment": "30.1.2", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/console": "30.2.0", + "@jest/environment": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-docblock": "30.0.1", - "jest-environment-node": "30.1.2", - "jest-haste-map": "30.1.0", - "jest-leak-detector": "30.1.0", - "jest-message-util": "30.1.0", - "jest-resolve": "30.1.3", - "jest-runtime": "30.1.3", - "jest-util": "30.0.5", - "jest-watcher": "30.1.3", - "jest-worker": "30.1.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-leak-detector": "30.2.0", + "jest-message-util": "30.2.0", + "jest-resolve": "30.2.0", + "jest-runtime": "30.2.0", + "jest-util": "30.2.0", + "jest-watcher": "30.2.0", + "jest-worker": "30.2.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -11654,6 +11936,8 @@ }, "node_modules/jest-runner/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -11668,6 +11952,8 @@ }, "node_modules/jest-runner/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -11682,17 +11968,19 @@ } }, "node_modules/jest-runner/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -11701,11 +11989,13 @@ } }, "node_modules/jest-runner/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -11718,6 +12008,8 @@ }, "node_modules/jest-runner/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -11728,7 +12020,9 @@ } }, "node_modules/jest-runner/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -11742,6 +12036,8 @@ }, "node_modules/jest-runner/node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -11752,30 +12048,32 @@ } }, "node_modules/jest-runtime": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/fake-timers": "30.1.2", - "@jest/globals": "30.1.2", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/globals": "30.2.0", "@jest/source-map": "30.0.1", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.1.3", - "jest-snapshot": "30.1.2", - "jest-util": "30.0.5", + "jest-resolve": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -11785,6 +12083,8 @@ }, "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -11799,6 +12099,8 @@ }, "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -11813,17 +12115,19 @@ } }, "node_modules/jest-runtime/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -11832,11 +12136,13 @@ } }, "node_modules/jest-runtime/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -11849,6 +12155,8 @@ }, "node_modules/jest-runtime/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -11859,7 +12167,9 @@ } }, "node_modules/jest-runtime/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -11873,6 +12183,8 @@ }, "node_modules/jest-runtime/node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -11895,7 +12207,9 @@ } }, "node_modules/jest-snapshot": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", "dev": true, "license": "MIT", "dependencies": { @@ -11904,20 +12218,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.1.2", + "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.1.2", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", - "babel-preset-current-node-syntax": "^1.1.0", + "@jest/snapshot-utils": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", - "expect": "30.1.2", + "expect": "30.2.0", "graceful-fs": "^4.2.11", - "jest-diff": "30.1.2", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-util": "30.0.5", - "pretty-format": "30.0.5", + "jest-diff": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -11926,7 +12240,9 @@ } }, "node_modules/jest-snapshot/node_modules/@jest/expect-utils": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", "dev": true, "license": "MIT", "dependencies": { @@ -11938,6 +12254,8 @@ }, "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -11953,6 +12271,8 @@ }, "node_modules/jest-snapshot/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -11966,61 +12286,69 @@ } }, "node_modules/jest-snapshot/node_modules/expect": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.1.2", + "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-util": "30.0.5" + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, "license": "MIT", "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.0.5" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "30.1.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.1.2", - "pretty-format": "30.0.5" + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-snapshot/node_modules/jest-message-util": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -12029,11 +12357,13 @@ } }, "node_modules/jest-snapshot/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -12046,6 +12376,8 @@ }, "node_modules/jest-snapshot/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -12056,7 +12388,9 @@ } }, "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -12160,16 +12494,18 @@ } }, "node_modules/jest-validate": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.0.5" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -12177,6 +12513,8 @@ }, "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -12192,6 +12530,8 @@ }, "node_modules/jest-validate/node_modules/chalk/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -12205,7 +12545,9 @@ } }, "node_modules/jest-validate/node_modules/pretty-format": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -12218,17 +12560,19 @@ } }, "node_modules/jest-watcher": { - "version": "30.1.3", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.1.3", - "@jest/types": "30.0.5", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "30.0.5", + "jest-util": "30.2.0", "string-length": "^4.0.2" }, "engines": { @@ -12237,6 +12581,8 @@ }, "node_modules/jest-watcher/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -12251,6 +12597,8 @@ }, "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -12265,11 +12613,13 @@ } }, "node_modules/jest-watcher/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -12282,6 +12632,8 @@ }, "node_modules/jest-watcher/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -12292,13 +12644,15 @@ } }, "node_modules/jest-worker": { - "version": "30.1.0", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.0.5", + "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -12308,6 +12662,8 @@ }, "node_modules/jest-worker/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -12322,6 +12678,8 @@ }, "node_modules/jest-worker/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -12337,6 +12695,8 @@ }, "node_modules/jest-worker/node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -12347,11 +12707,13 @@ } }, "node_modules/jest-worker/node_modules/jest-util": { - "version": "30.0.5", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -12364,6 +12726,8 @@ }, "node_modules/jest-worker/node_modules/picomatch": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -12375,6 +12739,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -12851,6 +13217,8 @@ }, "node_modules/minimatch": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -12872,6 +13240,8 @@ }, "node_modules/minipass": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "license": "ISC", "engines": { @@ -13138,6 +13508,8 @@ }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13185,6 +13557,8 @@ }, "node_modules/package-json-from-dist": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, @@ -13243,6 +13617,8 @@ }, "node_modules/path-scurry": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -13258,6 +13634,8 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, @@ -13452,6 +13830,8 @@ }, "node_modules/pure-rand": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, "funding": [ { @@ -14093,6 +14473,8 @@ }, "node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", "dependencies": { @@ -14110,6 +14492,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -14123,6 +14507,8 @@ }, "node_modules/string-width-cjs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -14131,11 +14517,15 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -14161,6 +14551,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -14172,6 +14564,8 @@ }, "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -14259,6 +14653,8 @@ }, "node_modules/synckit": { "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { @@ -15095,6 +15491,8 @@ }, "node_modules/v8-to-istanbul": { "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { @@ -15301,6 +15699,8 @@ }, "node_modules/wrap-ansi": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15318,6 +15718,8 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { @@ -15334,6 +15736,8 @@ }, "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -15342,6 +15746,8 @@ }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -15356,11 +15762,15 @@ }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -15374,6 +15784,8 @@ }, "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -15385,6 +15797,8 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -15462,6 +15876,8 @@ }, "node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -15487,6 +15903,8 @@ }, "node_modules/yargs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -15495,11 +15913,15 @@ }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -15513,6 +15935,8 @@ }, "node_modules/yargs/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -15532,6 +15956,8 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index d34096302..85eb30d35 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@wormhole-foundation/sdk": "^4.7.0", "@wormhole-foundation/wormchain-sdk": "^0.0.1", "ethers": "^6.5.1", + "jest": "^30.2.0", "prettier": "3.6.2", "ts-jest": "^29.1.2", "tsx": "^4.7.2", From 9f735380187c36f2cec64f580c1e154ecf510be8 Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Wed, 17 Dec 2025 14:00:08 -0600 Subject: [PATCH 09/11] chore: fix build --- cli/package.json | 8 +++++++- package-lock.json | 3 --- stacks/ts/src/nttWithExecutor.ts | 8 ++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cli/package.json b/cli/package.json index 79af17ff7..50fa2b93e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -46,7 +46,13 @@ "@wormhole-foundation/sdk-stacks": "^4.7.0", "@wormhole-foundation/sdk-stacks-core": "^4.7.0" }, - "@wormhole-foundation/sdk-sui-ntt": { + "@wormhole-foundation/sdk-stacks-ntt": { + "@wormhole-foundation/sdk-base": "^4.7.0", + "@wormhole-foundation/sdk-definitions": "^4.7.0", + "@wormhole-foundation/sdk-stacks": "^4.7.0", + "@wormhole-foundation/sdk-stacks-core": "^4.7.0" + }, + "@wormhole-foundation/sdk-stacks-ntt": { "@wormhole-foundation/sdk-base": "^4.7.0", "@wormhole-foundation/sdk-definitions": "^4.7.0", "@wormhole-foundation/sdk-sui": "^4.7.0", diff --git a/package-lock.json b/package-lock.json index 2265c6e57..4c3b0d5ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3754,7 +3754,6 @@ "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.2.0", @@ -3846,7 +3845,6 @@ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", @@ -7372,7 +7370,6 @@ "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/transform": "30.2.0", "@types/babel__core": "^7.20.5", diff --git a/stacks/ts/src/nttWithExecutor.ts b/stacks/ts/src/nttWithExecutor.ts index 66cdce673..2f163b189 100644 --- a/stacks/ts/src/nttWithExecutor.ts +++ b/stacks/ts/src/nttWithExecutor.ts @@ -26,6 +26,7 @@ import { } from "@stacks/transactions"; import axios from "axios"; import { StacksNtt, StacksNttContracts } from "./ntt.js"; +import { amount } from "@wormhole-foundation/sdk-base"; const nttManagerWithExecutorAddresses: Partial< Record>> @@ -150,11 +151,10 @@ export class StacksNttWithExecutor async estimateMsgValueAndGasLimit( _recipient: ChainAddress | undefined ): Promise<{ msgValue: bigint; gasLimit: bigint }> { - // TODO: Implement actual estimation logic for Stacks - // For now, return default values const msgValue = 0n; - // const gasLimit = 500_000n; - const gasLimit = 0n; + + // TODO: tweak this value for mainnet if needed + const gasLimit = amount.units(amount.parse("0.1", 6)); // 0.1 STX return { msgValue, gasLimit }; } From 2917284fc8c1193d70853c8ab1bc674e2ab78568 Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Wed, 17 Dec 2025 14:25:50 -0600 Subject: [PATCH 10/11] fix: fix package.json cli --- cli/package.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cli/package.json b/cli/package.json index 50fa2b93e..79af17ff7 100644 --- a/cli/package.json +++ b/cli/package.json @@ -46,13 +46,7 @@ "@wormhole-foundation/sdk-stacks": "^4.7.0", "@wormhole-foundation/sdk-stacks-core": "^4.7.0" }, - "@wormhole-foundation/sdk-stacks-ntt": { - "@wormhole-foundation/sdk-base": "^4.7.0", - "@wormhole-foundation/sdk-definitions": "^4.7.0", - "@wormhole-foundation/sdk-stacks": "^4.7.0", - "@wormhole-foundation/sdk-stacks-core": "^4.7.0" - }, - "@wormhole-foundation/sdk-stacks-ntt": { + "@wormhole-foundation/sdk-sui-ntt": { "@wormhole-foundation/sdk-base": "^4.7.0", "@wormhole-foundation/sdk-definitions": "^4.7.0", "@wormhole-foundation/sdk-sui": "^4.7.0", From 2e8c0346fff2a4a87fc4ad85b82e78ac824fb9ab Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Wed, 17 Dec 2025 14:35:30 -0600 Subject: [PATCH 11/11] fix: cli build order --- cli/install.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cli/install.sh b/cli/install.sh index f2597ef41..3764d63f4 100755 --- a/cli/install.sh +++ b/cli/install.sh @@ -143,10 +143,14 @@ function install_cli { export PATH="$tmpdir:$PATH" - # swallow the output of the first build - # TODO: figure out why it fails the first time. - bun --bun run --filter '*' build > /dev/null 2>&1 || true - bun --bun run --filter '*' build + # Build in dependency order: + # 1. definitions has no internal deps + # 2. platform-specific packages depend on definitions + # 3. route depends on platform-specific packages + # 4. cli depends on route + bun --bun run --filter '@wormhole-foundation/sdk-definitions-ntt' build + bun --bun run --filter '@wormhole-foundation/sdk-evm-ntt' --filter '@wormhole-foundation/sdk-solana-ntt' --filter '@wormhole-foundation/sdk-stacks-ntt' --filter '@wormhole-foundation/sdk-sui-ntt' build + bun --bun run --filter '@wormhole-foundation/sdk-route-ntt' build # remove the temporary directory