diff --git a/core/signing-bitgo/README.md b/core/signing-bitgo/README.md new file mode 100644 index 000000000..25c0ad64d --- /dev/null +++ b/core/signing-bitgo/README.md @@ -0,0 +1,97 @@ +# BitGo Signing Driver + +A driver for signing and retrieving Canton transactions using the BitGo TSS MPC custodial wallet API, implementing the `SigningDriverInterface` from `@canton-network/core-signing-lib`. + +## How it works + +BitGo signs Canton transactions asynchronously via its MPC TSS protocol: + +1. **Key creation** — a BitGo custodial wallet is created per Canton party (`POST /api/v2/{coin}/wallet`). The wallet ID becomes the stable Canton key identifier (`publicKey`). +2. **Sign request** — the Canton transaction is submitted as a message signing request (`POST /api/v2/wallet/{walletId}/msgrequests`) and returns a `txRequestId` immediately with status `pending`. +3. **Polling** — the wallet gateway polls `getTransaction(txRequestId)` until `status === 'signed'`. The Ed25519 signature and Canton signer fingerprint are extracted from the signed txRequest response. + +## Credentials + +1. Sign in to [BitGo](https://app.bitgo.com/) (or [BitGo Test](https://app.bitgo-test.com/) for testnet). +2. Create a **Long-Lived Access Token** in _User Settings → Developer Options → Access Tokens_. Select the scopes your use case requires (at minimum: wallet management and transaction signing). +3. Note your **Enterprise ID** from _Settings → Enterprise_. This is required for wallet creation. + +## Configuration + +| Field | Required | Description | +| -------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `accessToken` | Yes | BitGo long-lived access token | +| `baseUrl` | No | API base URL. Defaults to `https://app.bitgo.com` (prod). Use `https://app.bitgo-test.com` for testnet. | +| `enterpriseId` | No | BitGo enterprise ID. Required for `createKey`. Enables restart-safe `getTransaction` fallback via the enterprise txrequests endpoint. | +| `coin` | No | Canton coin identifier. Auto-detected: `tcanton` for `bitgo-test.com` URLs, `canton` for everything else (prod, proxies, custom URLs). | + +## Wallet Gateway configuration (`config.json`) + +```json +{ + "signingProvider": "bitgo", + "signingConfig": { + "accessToken": "", + "baseUrl": "https://app.bitgo-test.com", + "enterpriseId": "" + } +} +``` + +## Transaction state lifecycle + +BitGo signing is asynchronous — the MPC TSS protocol requires multiple internal rounds before a signature is produced. The driver maps BitGo states to Canton `SigningStatus`: + +| BitGo state | Canton status | Notes | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------- | +| `initialized`, `pendingApproval`, `pendingDelivery`, `pendingUserSignature`, `pendingUserCommitment`, `pendingUserRShare`, `pendingUserGShare`, `readyToSend` | `pending` | MPC rounds in progress | +| `messages[0].state === 'signed'` | `signed` | Message-level state takes precedence — signing is complete even if txRequest is still `pendingDelivery` | +| `delivered`, `signed` | `signed` | | +| `canceled`, `rejected` | `rejected` | | +| `failed` | `failed` | | + +## Restart resilience + +The driver maintains an in-memory `txRequestId → walletId` map for fast lookups. If the process restarts, this map is lost. Transactions submitted before a restart are recovered via the BitGo enterprise txrequests endpoint (`GET /api/v2/enterprise/{enterpriseId}/txrequests?txRequestIds=...`), which requires `enterpriseId` to be configured. + +## Test scripts + +### Connectivity check + +```bash +BITGO_ACCESS_TOKEN= \ +BITGO_ENTERPRISE_ID= \ +npx tsx scripts/test-connectivity.ts +``` + +### Sign a transaction + +**Submit mode** (no `BITGO_TX_ID` set): + +```bash +BITGO_ACCESS_TOKEN= \ +BITGO_TX= \ +BITGO_TX_HASH= \ +BITGO_ENTERPRISE_ID= \ +npx tsx scripts/test-sign.ts +# Prints txId and walletId to use in check mode +``` + +**Check mode** (`BITGO_TX_ID` set): + +```bash +BITGO_ACCESS_TOKEN= \ +BITGO_TX_ID= \ +BITGO_WALLET_ID= \ +npx tsx scripts/test-sign.ts +``` + +Optional env vars for both modes: `BITGO_API_URL`, `BITGO_COIN`, `BITGO_MSG_TYPE` (`CANTON_SIGN_TOPOLOGY` default, or `CANTON_SIGN_TRANSACTION`). + +## Development + +```bash +yarn build # compile +yarn test # run tests +yarn test:coverage # with coverage report +``` diff --git a/core/signing-bitgo/package.json b/core/signing-bitgo/package.json new file mode 100644 index 000000000..4e30f0f04 --- /dev/null +++ b/core/signing-bitgo/package.json @@ -0,0 +1,52 @@ +{ + "name": "@canton-network/core-signing-bitgo", + "version": "1.0.0", + "type": "module", + "description": "Wallet Gateway signing driver for BitGo", + "license": "Apache-2.0", + "main": "dist/index.cjs", + "module": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsdown --onSuccess \"tsc\"", + "clean": "rm -rf ./dist", + "test": "vitest run --project node", + "test:coverage": "vitest run --project node --coverage" + }, + "dependencies": { + "@bitgo/sdk-coin-canton": "^1.27.2", + "@canton-network/core-signing-lib": "workspace:^", + "@canton-network/core-wallet-auth": "workspace:^", + "zod": "^4.4.3" + }, + "devDependencies": { + "@types/node": "^25.9.3", + "@vitest/coverage-v8": "^4.1.8", + "tsdown": "^0.22.9", + "typescript": "^5.9.3", + "vitest": "^4.1.8" + }, + "files": [ + "dist/**" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/canton-network/wallet.git", + "directory": "core/signing-bitgo" + }, + "homepage": "https://github.com/canton-network/wallet/tree/main/core/signing-bitgo#readme", + "bugs": { + "url": "https://github.com/canton-network/wallet/issues" + } +} diff --git a/core/signing-bitgo/scripts/test-connectivity.ts b/core/signing-bitgo/scripts/test-connectivity.ts new file mode 100644 index 000000000..1eee330da --- /dev/null +++ b/core/signing-bitgo/scripts/test-connectivity.ts @@ -0,0 +1,46 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { BitGoHandler } from '../src/bitgo.js' + +const accessToken = process.env.BITGO_ACCESS_TOKEN +if (!accessToken) { + console.error('Error: BITGO_ACCESS_TOKEN environment variable is required') + process.exit(1) +} + +const enterpriseId = process.env.BITGO_ENTERPRISE_ID + +const handler = new BitGoHandler({ + accessToken, + baseUrl: process.env.BITGO_API_URL ?? 'https://app.bitgo-test.com', + enterpriseId, + coin: process.env.BITGO_COIN, +}) + +async function run() { + console.log('\n=== 1. getKeys (list canton wallets) ===') + const keys = await handler.getKeys() + console.log(`Found ${keys.length} canton wallet(s):`) + keys.forEach((k) => console.log(` id=${k.id} name=${k.name}`)) + + if (!enterpriseId) { + console.log( + '\nSkipping createKey — set BITGO_ENTERPRISE_ID to test wallet creation' + ) + return + } + + console.log('\n=== 2. createKey (create a new TSS canton wallet) ===') + const key = await handler.createKey(`bitgo-canton-test-${Date.now()}`) + console.log('Created:', key) + + console.log('\n=== 3. getKeys again (should include new wallet) ===') + const keysAfter = await handler.getKeys() + console.log(`Now ${keysAfter.length} canton wallet(s)`) +} + +run().catch((err) => { + console.error('FAILED:', err.message) + process.exit(1) +}) diff --git a/core/signing-bitgo/scripts/test-sign.ts b/core/signing-bitgo/scripts/test-sign.ts new file mode 100644 index 000000000..06b0eac4e --- /dev/null +++ b/core/signing-bitgo/scripts/test-sign.ts @@ -0,0 +1,100 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { BitGoHandler } from '../src/bitgo.js' + +function requireEnv(name: string): string { + const val = process.env[name] + if (!val) { + console.error(`Error: ${name} environment variable is required`) + process.exit(1) + } + return val +} + +const accessToken = requireEnv('BITGO_ACCESS_TOKEN') +const enterpriseId = process.env.BITGO_ENTERPRISE_ID +const txId = process.env.BITGO_TX_ID +const walletId = process.env.BITGO_WALLET_ID + +const handler = new BitGoHandler({ + accessToken, + baseUrl: process.env.BITGO_API_URL ?? 'https://app.bitgo-test.com', + enterpriseId, + coin: process.env.BITGO_COIN, +}) + +async function submit() { + const tx = process.env.BITGO_TX + const txHash = process.env.BITGO_TX_HASH + if (!tx || !txHash) { + console.error( + 'SUBMIT mode requires BITGO_TX and BITGO_TX_HASH (base64-encoded)' + ) + process.exit(1) + } + + let signingWalletId = walletId + if (!signingWalletId) { + const keys = await handler.getKeys() + if (keys.length === 0) { + console.error( + 'No canton wallets found — set BITGO_WALLET_ID explicitly' + ) + process.exit(1) + } + signingWalletId = keys[0].id + console.log(`Using wallet: id=${signingWalletId} name=${keys[0].name}`) + } + + const messageStandardType = + process.env.BITGO_MSG_TYPE ?? 'CANTON_SIGN_TOPOLOGY' + const result = await handler.signTransaction({ + tx, + txHash, + walletId: signingWalletId, + messageStandardType, + }) + console.log('\n=== Signing request submitted ===') + console.log(`txId: ${result.txId}`) + console.log(`walletId: ${signingWalletId}`) + console.log('\nOnce signing is complete, run:') + console.log( + ` BITGO_ACCESS_TOKEN= BITGO_TX_ID=${result.txId} BITGO_WALLET_ID=${signingWalletId} npx tsx scripts/test-sign.ts` + ) +} + +async function check() { + if (!txId) { + console.error('CHECK mode requires BITGO_TX_ID') + process.exit(1) + } + + let result + if (walletId) { + result = await handler.fetchTxRequest(txId, walletId) + } else { + result = await handler.getTransaction(txId) + if (!result) { + console.error( + `No transaction found for txId=${txId}. Set BITGO_WALLET_ID or BITGO_ENTERPRISE_ID for fallback lookup.` + ) + process.exit(1) + } + } + + console.log('\n=== Transaction status ===') + console.log(JSON.stringify(result, null, 2)) +} + +if (txId) { + check().catch((err) => { + console.error('FAILED:', err.message) + process.exit(1) + }) +} else { + submit().catch((err) => { + console.error('FAILED:', err.message) + process.exit(1) + }) +} diff --git a/core/signing-bitgo/src/bitgo.test.ts b/core/signing-bitgo/src/bitgo.test.ts new file mode 100644 index 000000000..3fb02af26 --- /dev/null +++ b/core/signing-bitgo/src/bitgo.test.ts @@ -0,0 +1,583 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { BitGoHandler } from './bitgo.js' + +// ─── Fixtures ──────────────────────────────────────────────────────────────── + +const WALLET_ID = 'test-wallet-id-aabbcc' +const TX_REQUEST_ID = 'aaaabbbb-cccc-dddd-eeee-ffffffffffff' +const ENTERPRISE_ID = 'test-enterprise-id' +const ACCESS_TOKEN = 'v2xtest-access-token' + +// Real txHash structure: hex-encoded JSON matching BitGo's signed message format. +const SIGNED_MSG = { + type: 'CANTON_SIGN_TOPOLOGY', + payload: 'pX5rTNQvME38LP6ZpzqhGKiv2Q/UBD+xeYiPxcEJeoM=', + serializedSignatures: [ + { + publicKey: + 'c730e4dca781f4751783b92dd603dd10987324ceef1729ea02dacbade5ad0df6', + signature: + 'RCS+Qh5w9VHk6Ih14jYTBcTB30RG5arj3ZmUr8mSTO7N6+zNPrJdXHUL13zE3LGfVDqvLEI76PKOczC5EL3OAw==', + }, + ], + signers: [ + '12206::122066c3b0ed7e4879579d53a0f04cabf54895fc4b410877adf88e61b68999b6e38d', + ], + metadata: { encoding: 'utf8' }, + signablePayload: 'pX5rTNQvME38LP6ZpzqhGKiv2Q/UBD+xeYiPxcEJeoM=', +} +const TX_HASH_HEX = Buffer.from(JSON.stringify(SIGNED_MSG)).toString('hex') + +const BASE_TX_REQUEST = { + txRequestId: TX_REQUEST_ID, + walletId: WALLET_ID, + state: 'delivered', + messages: [{ state: 'signed', txHash: TX_HASH_HEX }], +} + +// ─── Helpers ───────────────────────────────────────────────────────────────── + +function createHandler(opts?: { + enterpriseId?: string | undefined + coin?: string +}) { + return new BitGoHandler({ + accessToken: ACCESS_TOKEN, + baseUrl: 'https://app.bitgo-test.com', + enterpriseId: + opts && 'enterpriseId' in opts ? opts.enterpriseId : ENTERPRISE_ID, + coin: opts?.coin ?? 'tcanton', + }) +} + +// ─── Tests ─────────────────────────────────────────────────────────────────── + +describe('BitGoHandler', () => { + let fetchMock: ReturnType + + beforeEach(() => { + fetchMock = vi.fn() + vi.stubGlobal('fetch', fetchMock) + }) + + afterEach(() => { + vi.unstubAllGlobals() + }) + + // ── createKey ────────────────────────────────────────────────────────── + + describe('createKey', () => { + it('returns key with walletId as both id and publicKey', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + id: WALLET_ID, + label: 'my-key', + keys: [], + }), + } as unknown as Response) + + const key = await createHandler().createKey('my-key') + expect(key).toEqual({ + id: WALLET_ID, + name: 'my-key', + publicKey: WALLET_ID, + }) + }) + + it('sends custodial TSS wallet creation body with coin and enterprise', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ id: WALLET_ID, label: 'test', keys: [] }), + } as unknown as Response) + + await createHandler().createKey('test') + + const [url, opts] = fetchMock.mock.calls[0] + expect(url).toContain('/api/v2/tcanton/wallet') + const body = JSON.parse(opts.body) + expect(body).toMatchObject({ + type: 'custodial', + multisigType: 'tss', + enterprise: ENTERPRISE_ID, + }) + }) + + it('throws immediately when enterpriseId is not configured', async () => { + await expect( + createHandler({ enterpriseId: undefined }).createKey('test') + ).rejects.toThrow('enterpriseId is required') + expect(fetchMock).not.toHaveBeenCalled() + }) + }) + + // ── signTransaction ──────────────────────────────────────────────────── + + describe('signTransaction', () => { + it('posts to msgrequests and returns txRequestId', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequestId: TX_REQUEST_ID, + walletId: WALLET_ID, + state: 'initialized', + }), + } as unknown as Response) + + const result = await createHandler().signTransaction({ + tx: 'base64tx==', + txHash: 'base64hash==', + walletId: WALLET_ID, + messageStandardType: 'CANTON_SIGN_TOPOLOGY', + }) + + expect(result.txId).toBe(TX_REQUEST_ID) + const [url, opts] = fetchMock.mock.calls[0] + expect(url).toContain(`/api/v2/wallet/${WALLET_ID}/msgrequests`) + const body = JSON.parse(opts.body) + expect(body.intent.intentType).toBe('signMessage') + expect(body.intent.messageStandardType).toBe('CANTON_SIGN_TOPOLOGY') + expect(body.apiVersion).toBe('full') + }) + + it('populates txStore so getTransaction can resolve without enterprise call', async () => { + const handler = createHandler() + // First call: signTransaction + fetchMock + .mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequestId: TX_REQUEST_ID, + walletId: WALLET_ID, + state: 'initialized', + }), + } as unknown as Response) + // Second call: wallet-scoped txrequests (from txStore path) + .mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequests: [ + { + ...BASE_TX_REQUEST, + state: 'pendingDelivery', + messages: [], + }, + ], + }), + } as unknown as Response) + + await handler.signTransaction({ + tx: 'tx', + txHash: 'hash', + walletId: WALLET_ID, + messageStandardType: 'CANTON_SIGN_TOPOLOGY', + }) + const tx = await handler.getTransaction(TX_REQUEST_ID) + + // Should have used wallet-scoped endpoint (txStore path), not enterprise endpoint + const usedUrls = fetchMock.mock.calls.map(([url]) => url as string) + expect(usedUrls[1]).toContain( + `/api/v2/wallet/${WALLET_ID}/txrequests` + ) + expect(usedUrls[1]).not.toContain('/enterprise/') + expect(tx?.txId).toBe(TX_REQUEST_ID) + }) + }) + + // ── getTransaction ───────────────────────────────────────────────────── + + describe('getTransaction', () => { + it('uses enterprise fallback when txId is unknown', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ txRequests: [BASE_TX_REQUEST] }), + } as unknown as Response) + + const tx = await createHandler().getTransaction(TX_REQUEST_ID) + + expect(fetchMock.mock.calls[0][0]).toContain( + `/api/v2/enterprise/${ENTERPRISE_ID}/txrequests` + ) + expect(tx?.txId).toBe(TX_REQUEST_ID) + expect(tx?.status).toBe('signed') + }) + + it('caches walletId in txStore after enterprise fallback', async () => { + const handler = createHandler() + // First call: enterprise lookup + fetchMock + .mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ txRequests: [BASE_TX_REQUEST] }), + } as unknown as Response) + // Second call: should use wallet-scoped endpoint (cached) + .mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ txRequests: [BASE_TX_REQUEST] }), + } as unknown as Response) + + await handler.getTransaction(TX_REQUEST_ID) + await handler.getTransaction(TX_REQUEST_ID) + + const secondUrl = fetchMock.mock.calls[1][0] as string + expect(secondUrl).toContain( + `/api/v2/wallet/${WALLET_ID}/txrequests` + ) + }) + + it('returns undefined when txId unknown and no enterpriseId configured', async () => { + const tx = await createHandler({ + enterpriseId: undefined, + }).getTransaction('unknown') + expect(tx).toBeUndefined() + expect(fetchMock).not.toHaveBeenCalled() + }) + + it('returns undefined when enterprise returns no results', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ txRequests: [] }), + } as unknown as Response) + + const tx = await createHandler().getTransaction('ghost-id') + expect(tx).toBeUndefined() + }) + }) + + // ── fetchTxRequest ───────────────────────────────────────────────────── + + describe('fetchTxRequest', () => { + it('includes apiVersion=full and latest=true', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ txRequests: [BASE_TX_REQUEST] }), + } as unknown as Response) + + await createHandler().fetchTxRequest(TX_REQUEST_ID, WALLET_ID) + const url = fetchMock.mock.calls[0][0] as string + expect(url).toContain('apiVersion=full') + expect(url).toContain('latest=true') + }) + + it('throws when txRequest not found', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ txRequests: [] }), + } as unknown as Response) + + await expect( + createHandler().fetchTxRequest(TX_REQUEST_ID, WALLET_ID) + ).rejects.toThrow('not found') + }) + + it('throws on non-ok response', async () => { + fetchMock.mockResolvedValueOnce({ + ok: false, + status: 401, + text: () => Promise.resolve('Unauthorized'), + } as unknown as Response) + + await expect( + createHandler().fetchTxRequest(TX_REQUEST_ID, WALLET_ID) + ).rejects.toThrow('401') + }) + }) + + // ── state mapping ────────────────────────────────────────────────────── + + describe('state mapping', () => { + async function withState( + txReqState: string, + messageState?: string, + txHash?: string + ) { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequests: [ + { + txRequestId: TX_REQUEST_ID, + walletId: WALLET_ID, + state: txReqState, + messages: messageState + ? [ + { + state: messageState, + txHash: txHash ?? '', + }, + ] + : [], + }, + ], + }), + } as unknown as Response) + return createHandler().getTransaction(TX_REQUEST_ID) + } + + it.each([ + ['delivered', 'signed'], + ['signed', 'signed'], + ['canceled', 'rejected'], + ['rejected', 'rejected'], + ['failed', 'failed'], + ['pendingApproval', 'pending'], + ['pendingDelivery', 'pending'], + ['unknownState', 'pending'], + ])( + 'txRequest state "%s" → Canton status "%s"', + async (bitgoState, expectedStatus) => { + const tx = await withState(bitgoState) + expect(tx?.status).toBe(expectedStatus) + } + ) + + it('message-level signed overrides pendingDelivery txRequest state', async () => { + const tx = await withState('pendingDelivery', 'signed', TX_HASH_HEX) + expect(tx?.status).toBe('signed') + }) + + it('intermediate EdDSA message state keeps txRequest pending', async () => { + const tx = await withState( + 'pendingDelivery', + 'eddsaPendingCommitment' + ) + expect(tx?.status).toBe('pending') + }) + }) + + // ── signature + metadata extraction ─────────────────────────────────── + + describe('signature and metadata extraction', () => { + it('extracts base64 signature and Canton fingerprint signedBy', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ txRequests: [BASE_TX_REQUEST] }), + } as unknown as Response) + + const tx = await createHandler().getTransaction(TX_REQUEST_ID) + expect(tx?.signature).toBe( + SIGNED_MSG.serializedSignatures[0].signature + ) + expect(tx?.metadata?.signedBy).toBe(SIGNED_MSG.signers[0]) + }) + + it('returns no signature or metadata when status is pending', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequests: [ + { + ...BASE_TX_REQUEST, + state: 'pendingDelivery', + messages: [{ state: 'eddsaPendingCommitment' }], + }, + ], + }), + } as unknown as Response) + + const tx = await createHandler().getTransaction(TX_REQUEST_ID) + expect(tx?.signature).toBeUndefined() + expect(tx?.metadata).toBeUndefined() + }) + + it('falls back to pending when txHash is empty (prevents signed-without-signature)', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequests: [ + { + ...BASE_TX_REQUEST, + messages: [{ state: 'signed', txHash: '' }], + }, + ], + }), + } as unknown as Response) + + const tx = await createHandler().getTransaction(TX_REQUEST_ID) + expect(tx?.status).toBe('pending') + expect(tx?.signature).toBeUndefined() + }) + + it('falls back to pending when txHash is malformed hex', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequests: [ + { + ...BASE_TX_REQUEST, + messages: [ + { + state: 'signed', + txHash: 'not-valid-hex!', + }, + ], + }, + ], + }), + } as unknown as Response) + + const tx = await createHandler().getTransaction(TX_REQUEST_ID) + expect(tx?.status).toBe('pending') + expect(tx?.signature).toBeUndefined() + }) + + it('falls back to pending when txHash decodes to JSON without serializedSignatures', async () => { + const emptyPayload = Buffer.from( + JSON.stringify({ type: 'CANTON_SIGN_TOPOLOGY' }) + ).toString('hex') + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + txRequests: [ + { + ...BASE_TX_REQUEST, + messages: [ + { state: 'signed', txHash: emptyPayload }, + ], + }, + ], + }), + } as unknown as Response) + + const tx = await createHandler().getTransaction(TX_REQUEST_ID) + expect(tx?.status).toBe('pending') + expect(tx?.signature).toBeUndefined() + expect(tx?.metadata?.signedBy).toBeUndefined() + }) + }) + + // ── getKeys ──────────────────────────────────────────────────────────── + + describe('getKeys', () => { + it('returns wallets mapped to keys with walletId as publicKey', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => + Promise.resolve({ + wallets: [ + { id: 'w1', label: 'key-one', keys: [] }, + { id: 'w2', label: 'key-two', keys: [] }, + ], + }), + } as unknown as Response) + + const keys = await createHandler().getKeys() + expect(keys).toHaveLength(2) + expect(keys[0]).toEqual({ + id: 'w1', + name: 'key-one', + publicKey: 'w1', + }) + expect(keys[1]).toEqual({ + id: 'w2', + name: 'key-two', + publicKey: 'w2', + }) + }) + + it('filters by coin and custodial type', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ wallets: [] }), + } as unknown as Response) + + await createHandler({ coin: 'tcanton' }).getKeys() + const url = fetchMock.mock.calls[0][0] as string + expect(url).toContain('coin=tcanton') + expect(url).toContain('type=custodial') + }) + }) + + // ── getTransactions ──────────────────────────────────────────────────── + + describe('getTransactions', () => { + it('fetches by publicKey (walletId) from wallet-scoped endpoint', async () => { + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ txRequests: [BASE_TX_REQUEST] }), + } as unknown as Response) + + const txs: unknown[] = [] + for await (const tx of createHandler().getTransactions({ + publicKeys: [WALLET_ID], + })) { + txs.push(tx) + } + expect(txs).toHaveLength(1) + const url = fetchMock.mock.calls[0][0] as string + expect(url).toContain(`/api/v2/wallet/${WALLET_ID}/txrequests`) + }) + }) + + // ── coin auto-detection ──────────────────────────────────────────────── + + describe('coin auto-detection', () => { + it('uses canton for bitgo.com prod URL', async () => { + const handler = new BitGoHandler({ + accessToken: 'token', + baseUrl: 'https://app.bitgo.com', + }) + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ wallets: [] }), + } as unknown as Response) + await handler.getKeys() + expect(fetchMock.mock.calls[0][0]).toContain('coin=canton') + }) + + it('uses tcanton for bitgo-test.com URL', async () => { + const handler = new BitGoHandler({ + accessToken: 'token', + baseUrl: 'https://app.bitgo-test.com', + }) + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ wallets: [] }), + } as unknown as Response) + await handler.getKeys() + expect(fetchMock.mock.calls[0][0]).toContain('coin=tcanton') + }) + + it('defaults to canton for unknown/proxy URLs (not bitgo-test.com)', async () => { + const handler = new BitGoHandler({ + accessToken: 'token', + baseUrl: 'https://bitgo-proxy.internal.example.com', + }) + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ wallets: [] }), + } as unknown as Response) + await handler.getKeys() + expect(fetchMock.mock.calls[0][0]).toContain('coin=canton') + }) + + it('respects explicit coin override', async () => { + const handler = new BitGoHandler({ + accessToken: 'token', + baseUrl: 'https://app.bitgo.com', + coin: 'tcanton', + }) + fetchMock.mockResolvedValueOnce({ + ok: true, + json: () => Promise.resolve({ wallets: [] }), + } as unknown as Response) + await handler.getKeys() + expect(fetchMock.mock.calls[0][0]).toContain('coin=tcanton') + }) + }) +}) diff --git a/core/signing-bitgo/src/bitgo.ts b/core/signing-bitgo/src/bitgo.ts new file mode 100644 index 000000000..9f31e15e8 --- /dev/null +++ b/core/signing-bitgo/src/bitgo.ts @@ -0,0 +1,302 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import type { Key, SigningStatus } from '@canton-network/core-signing-lib' + +// Maps BitGo txRequest.state → Canton SigningStatus. +const BITGO_STATE_TO_CANTON: Record = { + pendingApproval: 'pending', + initialized: 'pending', + pendingDelivery: 'pending', + pendingUserSignature: 'pending', + pendingUserCommitment: 'pending', + pendingUserRShare: 'pending', + pendingUserGShare: 'pending', + readyToSend: 'pending', + delivered: 'signed', + signed: 'signed', + canceled: 'rejected', + rejected: 'rejected', + failed: 'failed', +} + +export interface BitGoConfig { + accessToken: string + baseUrl?: string + enterpriseId?: string + /** Canton coin name. Defaults to 'tcanton' for bitgo-test.com URLs, 'canton' otherwise. */ + coin?: string +} + +interface BitGoWallet { + id: string + label: string + keys: string[] +} + +// The signature is in messages[0].txHash, not a 'signature' field. +// See sdk-core wallet.ts: `signature: signedMessageRequest.messages[0].txHash` +interface BitGoTxRequest { + txRequestId: string + walletId: string + state: string + messages?: Array<{ + state?: string + txHash?: string + combineSigShare?: string + }> +} + +export interface BitGoTransaction { + txId: string + status: SigningStatus + signature?: string + // publicKey here is the BitGo walletId — it serves as the stable key identifier for Canton. + publicKey?: string + metadata?: Record +} + +export class BitGoHandler { + private baseUrl: string + private accessToken: string + private enterpriseId: string | undefined + private coin: string + // In-memory store mapping txRequestId → walletId for fast lookups. + // Not HA: restarts lose this cache; getTransaction can recover via the enterprise txrequests + // endpoint when enterpriseId is configured. + private txStore = new Map() + + constructor(config: BitGoConfig) { + this.baseUrl = (config.baseUrl ?? 'https://app.bitgo.com').replace( + /\/$/, + '' + ) + this.accessToken = config.accessToken + this.enterpriseId = config.enterpriseId + this.coin = + config.coin ?? + (this.baseUrl.includes('bitgo-test.com') ? 'tcanton' : 'canton') + } + + private async request( + method: 'GET' | 'POST', + path: string, + body?: Record + ): Promise { + const url = `${this.baseUrl}${path}` + const headers: Record = { + 'Content-Type': 'application/json', + Authorization: `Bearer ${this.accessToken}`, + } + if (this.enterpriseId) { + headers['Bitgo-Enterprise'] = this.enterpriseId + } + const response = await fetch(url, { + method, + headers, + ...(body !== undefined && { body: JSON.stringify(body) }), + }) + if (!response.ok) { + const errorText = await response.text() + throw new Error( + `BitGo API ${method} ${path} failed (${response.status}): ${errorText}` + ) + } + return response.json() as Promise + } + + // Inserts into txStore and evicts the oldest entry when the cap is exceeded. + private txStoreSet(txId: string, walletId: string): void { + this.txStore.set(txId, walletId) + if (this.txStore.size > 10_000) { + const oldest = this.txStore.keys().next().value as + string | undefined + if (oldest) this.txStore.delete(oldest) + } + } + + async createKey(name: string): Promise { + if (!this.enterpriseId) { + throw new Error( + 'enterpriseId is required to create BitGo custodial wallets (set BITGO_ENTERPRISE_ID).' + ) + } + const wallet = await this.request( + 'POST', + `/api/v2/${this.coin}/wallet`, + { + label: name, + coin: this.coin, + type: 'custodial', + multisigType: 'tss', + ...(this.enterpriseId && { enterprise: this.enterpriseId }), + } + ) + // walletId is the stable key identifier for Canton — used in signTransaction and getTransaction. + return { + id: wallet.id, + name: wallet.label, + publicKey: wallet.id, + } + } + + async signTransaction(params: { + tx: string + txHash: string + walletId: string + /** Override type detection — pass 'CANTON_SIGN_TRANSACTION' or 'CANTON_SIGN_TOPOLOGY' directly to skip the sdk-coin-canton import. */ + messageStandardType?: string + }): Promise<{ txId: string }> { + let messageStandardType = params.messageStandardType + if (!messageStandardType) { + const { detectCantonSigningPayloadType } = + await import('@bitgo/sdk-coin-canton') + messageStandardType = detectCantonSigningPayloadType(params.tx) + } + + const response = await this.request( + 'POST', + `/api/v2/wallet/${params.walletId}/msgrequests`, + { + intent: { + intentType: 'signMessage', + messageRaw: params.txHash, + messageStandardType, + preparedTransaction: params.tx, + }, + apiVersion: 'full', + } + ) + + this.txStoreSet(response.txRequestId, params.walletId) + return { txId: response.txRequestId } + } + + async getTransaction(txId: string): Promise { + const walletId = this.txStore.get(txId) + if (walletId) return this.fetchTxRequest(txId, walletId) + + // Fallback: enterprise endpoint doesn't require walletId — survives process restarts. + if (!this.enterpriseId) return undefined + const response = await this.request<{ txRequests: BitGoTxRequest[] }>( + 'GET', + `/api/v2/enterprise/${this.enterpriseId}/txrequests?txRequestIds=${encodeURIComponent(txId)}&apiVersion=full&latest=true` + ) + const txReq = response.txRequests[0] + if (!txReq) return undefined + this.txStoreSet(txId, txReq.walletId) + return this.formatTxRequest(txId, txReq.walletId, txReq) + } + + // Direct lookup without txStore — use when walletId is known externally (e.g. test scripts). + async fetchTxRequest( + txId: string, + walletId: string + ): Promise { + const response = await this.request<{ txRequests: BitGoTxRequest[] }>( + 'GET', + `/api/v2/wallet/${walletId}/txrequests?txRequestIds=${encodeURIComponent(txId)}&apiVersion=full&latest=true` + ) + const txReq = response.txRequests[0] + if (!txReq) + throw new Error(`txRequest ${txId} not found in wallet ${walletId}`) + return this.formatTxRequest(txId, walletId, txReq) + } + + /** + * Async generator yielding transactions matching txIds or publicKeys. + * + * publicKey === walletId in this driver, so the publicKeys path fetches + * txrequests directly from each matching wallet — no extra keychain lookup needed. + */ + async *getTransactions(params: { + txIds?: string[] + publicKeys?: string[] + }): AsyncGenerator { + for (const txId of params.txIds ?? []) { + const tx = await this.getTransaction(txId) + if (tx) yield tx + } + + // publicKey === walletId — fetch txrequests for each wallet directly. + for (const walletId of params.publicKeys ?? []) { + const txsResponse = await this.request<{ + txRequests: BitGoTxRequest[] + }>( + 'GET', + `/api/v2/wallet/${walletId}/txrequests?apiVersion=full&latest=true` + ) + for (const txReq of txsResponse.txRequests) { + yield this.formatTxRequest(txReq.txRequestId, walletId, txReq) + } + } + } + + async getKeys(): Promise { + const response = await this.request<{ wallets: BitGoWallet[] }>( + 'GET', + `/api/v2/wallets?coin=${this.coin}&type=custodial` + ) + return response.wallets.map((w) => ({ + id: w.id, + name: w.label, + publicKey: w.id, + })) + } + + // messages[0].txHash is a hex-encoded JSON blob (the full BitGo signed message). + // Extracts signature (base64) and signedBy (Canton fingerprint from signers[0]). + private extractSignedData(txHash: string | undefined): { + signature?: string + signedBy?: string + } { + if (!txHash) return {} + try { + const parsed = JSON.parse( + Buffer.from(txHash, 'hex').toString('utf8') + ) + return { + signature: parsed?.serializedSignatures?.[0]?.signature as + string | undefined, + signedBy: parsed?.signers?.[0] as string | undefined, + } + } catch { + return {} + } + } + + private formatTxRequest( + txId: string, + walletId: string, + txReq: BitGoTxRequest + ): BitGoTransaction { + // Prefer message-level state: for Canton message signing, the crypto is complete once + // messages[0].state === 'signed', even if the txRequest is still in 'pendingDelivery'. + const messageState = txReq.messages?.[0]?.state + const mappedStatus: SigningStatus = + messageState === 'signed' + ? 'signed' + : (BITGO_STATE_TO_CANTON[txReq.state] ?? 'pending') + // Only extract when signed status comes from message-level state (txRequest still in + // pendingDelivery). When the txRequest itself is terminal (delivered/signed), trust it. + const signedFromMessage = + messageState === 'signed' && mappedStatus === 'signed' + const signedData = signedFromMessage + ? this.extractSignedData(txReq.messages?.[0]?.txHash) + : {} + // Fall back to pending if message claimed signed but signature extraction failed — + // prevents signed-without-signature from reaching the gateway (hard error vs. retry). + const status: SigningStatus = + signedFromMessage && signedData.signature === undefined + ? 'pending' + : mappedStatus + const { signature, signedBy } = status === 'signed' ? signedData : {} + return { + txId, + status, + ...(signature !== undefined && { signature }), + publicKey: walletId, + ...(signedBy !== undefined && { metadata: { signedBy } }), + } + } +} diff --git a/core/signing-bitgo/src/index.test.ts b/core/signing-bitgo/src/index.test.ts new file mode 100644 index 000000000..3cd94ea69 --- /dev/null +++ b/core/signing-bitgo/src/index.test.ts @@ -0,0 +1,516 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { + isRpcError, + type Error as RpcError, +} from '@canton-network/core-signing-lib' +import BitGoSigningDriver from './index.js' +import type { BitGoTransaction } from './bitgo.js' + +// ─── Fixtures ──────────────────────────────────────────────────────────────── + +const WALLET_ID = 'test-wallet-aabbcc' +const TX_REQUEST_ID = 'aaaabbbb-cccc-dddd-eeee-ffffffffffff' +const FINGERPRINT = + '12206::122066c3b0ed7e4879579d53a0f04cabf54895fc4b410877adf88e61b68999b6e38d' + +const SIGNED_TX: BitGoTransaction = { + txId: TX_REQUEST_ID, + status: 'signed', + signature: + 'RCS+Qh5w9VHk6Ih14jYTBcTB30RG5arj3ZmUr8mSTO7N6+zNPrJdXHUL13zE3LGfVDqvLEI76PKOczC5EL3OAw==', + publicKey: WALLET_ID, + metadata: { signedBy: FINGERPRINT }, +} + +// ─── Handler mock ───────────────────────────────────────────────────────────── + +const handlerMock = vi.hoisted(() => ({ + createKey: vi.fn(), + signTransaction: vi.fn(), + getTransaction: vi.fn(), + getTransactions: vi.fn(), + fetchTxRequest: vi.fn(), + getKeys: vi.fn(), +})) + +vi.mock('./bitgo.js', async (importOriginal) => { + const actual = await importOriginal() + return { + ...actual, + BitGoHandler: vi.fn(function BitGoHandler() { + return handlerMock + }), + } +}) + +// ─── Helpers ────────────────────────────────────────────────────────────────── + +function throwWhenRpcError(value: T | RpcError): asserts value is T { + if (isRpcError(value)) { + throw new Error( + `Expected success but got RPC error: ${value.error_description}` + ) + } +} + +function createDriver( + overrides?: Partial[0]> +) { + return new BitGoSigningDriver({ + accessToken: 'v2xtest-token', + baseUrl: 'https://app.bitgo-test.com', + enterpriseId: 'ent-123', + coin: 'tcanton', + ...overrides, + }) +} + +// ─── Tests ─────────────────────────────────────────────────────────────────── + +describe('BitGoSigningDriver', () => { + beforeEach(() => { + vi.clearAllMocks() + // Sensible defaults — individual tests override as needed. + handlerMock.createKey.mockResolvedValue({ + id: WALLET_ID, + name: 'my-key', + publicKey: WALLET_ID, + }) + handlerMock.signTransaction.mockResolvedValue({ txId: TX_REQUEST_ID }) + handlerMock.getTransaction.mockResolvedValue(SIGNED_TX) + handlerMock.getTransactions.mockImplementation(async function* () { + yield SIGNED_TX + }) + handlerMock.getKeys.mockResolvedValue([ + { id: WALLET_ID, name: 'my-key', publicKey: WALLET_ID }, + ]) + }) + + // ── static properties ────────────────────────────────────────────────── + + it('has partyMode=external and signingProvider=bitgo', () => { + const driver = createDriver() + expect(driver.partyMode).toBe('external') + expect(driver.signingProvider).toBe('bitgo') + }) + + // ── signMessage ──────────────────────────────────────────────────────── + + describe('signMessage', () => { + it('returns not_allowed', async () => { + const result = await createDriver() + .controller(undefined) + .signMessage({ + message: 'test', + keyIdentifier: { id: WALLET_ID }, + }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('not_allowed') + }) + }) + + // ── createKey ────────────────────────────────────────────────────────── + + describe('createKey', () => { + it('returns key with walletId as publicKey', async () => { + const result = await createDriver() + .controller(undefined) + .createKey({ name: 'my-key' }) + throwWhenRpcError(result) + expect(result).toEqual({ + id: WALLET_ID, + name: 'my-key', + publicKey: WALLET_ID, + }) + expect(handlerMock.createKey).toHaveBeenCalledWith('my-key') + }) + + it('returns create_key_error when enterpriseId is missing', async () => { + handlerMock.createKey.mockRejectedValueOnce( + new Error('enterpriseId is required') + ) + const result = await createDriver({ enterpriseId: undefined }) + .controller(undefined) + .createKey({ name: 'fail' }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) + expect(result.error).toBe('create_key_error') + }) + + it('returns create_key_error when handler throws', async () => { + handlerMock.createKey.mockRejectedValueOnce( + new Error('BitGo API 422') + ) + const result = await createDriver() + .controller(undefined) + .createKey({ name: 'fail' }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) { + expect(result.error).toBe('create_key_error') + expect(result.error_description).toContain('BitGo API 422') + } + }) + }) + + // ── signTransaction ──────────────────────────────────────────────────── + + describe('signTransaction', () => { + it('returns pending immediately after submit', async () => { + const result = await createDriver() + .controller(undefined) + .signTransaction({ + tx: 'base64tx==', + txHash: 'base64hash==', + keyIdentifier: { id: WALLET_ID }, + }) + throwWhenRpcError(result) + expect(result.txId).toBe(TX_REQUEST_ID) + expect(result.status).toBe('pending') + }) + + it('passes walletId from keyIdentifier.id to handler', async () => { + await createDriver() + .controller(undefined) + .signTransaction({ + tx: 'tx', + txHash: 'hash', + keyIdentifier: { id: WALLET_ID }, + }) + expect(handlerMock.signTransaction).toHaveBeenCalledWith( + expect.objectContaining({ walletId: WALLET_ID }) + ) + }) + + it('accepts publicKey as walletId when id is absent (publicKey === walletId by design)', async () => { + const result = await createDriver() + .controller(undefined) + .signTransaction({ + tx: 'tx', + txHash: 'hash', + keyIdentifier: { publicKey: WALLET_ID }, + }) + throwWhenRpcError(result) + expect(handlerMock.signTransaction).toHaveBeenCalledWith( + expect.objectContaining({ walletId: WALLET_ID }) + ) + }) + + it('returns key_not_found when keyIdentifier has neither id nor publicKey', async () => { + const result = await createDriver() + .controller(undefined) + .signTransaction({ + tx: 'tx', + txHash: 'hash', + keyIdentifier: {}, + }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('key_not_found') + }) + + it('returns signing_error when handler throws', async () => { + handlerMock.signTransaction.mockRejectedValueOnce( + new Error('TSS failed') + ) + const result = await createDriver() + .controller(undefined) + .signTransaction({ + tx: 'tx', + txHash: 'hash', + keyIdentifier: { id: WALLET_ID }, + }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) { + expect(result.error).toBe('signing_error') + expect(result.error_description).toContain('TSS failed') + } + }) + }) + + // ── getTransaction ───────────────────────────────────────────────────── + + describe('getTransaction', () => { + it('returns txId, status, signature, publicKey, and metadata.signedBy', async () => { + const result = await createDriver() + .controller(undefined) + .getTransaction({ txId: TX_REQUEST_ID }) + throwWhenRpcError(result) + expect(result.txId).toBe(TX_REQUEST_ID) + expect(result.status).toBe('signed') + expect(result.signature).toBe(SIGNED_TX.signature) + expect(result.publicKey).toBe(WALLET_ID) + expect(result.metadata?.signedBy).toBe(FINGERPRINT) + }) + + it('omits signature, publicKey, and metadata when absent', async () => { + handlerMock.getTransaction.mockResolvedValueOnce({ + txId: TX_REQUEST_ID, + status: 'pending', + publicKey: WALLET_ID, + }) + const result = await createDriver() + .controller(undefined) + .getTransaction({ txId: TX_REQUEST_ID }) + throwWhenRpcError(result) + expect(result.signature).toBeUndefined() + expect(result.metadata).toBeUndefined() + }) + + it('returns transaction_not_found when handler returns undefined', async () => { + handlerMock.getTransaction.mockResolvedValueOnce(undefined) + const result = await createDriver() + .controller(undefined) + .getTransaction({ txId: 'ghost' }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) + expect(result.error).toBe('transaction_not_found') + }) + + it('returns fetch_error when handler throws', async () => { + handlerMock.getTransaction.mockRejectedValueOnce( + new Error('network error') + ) + const result = await createDriver() + .controller(undefined) + .getTransaction({ txId: TX_REQUEST_ID }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('fetch_error') + }) + }) + + // ── getTransactions ──────────────────────────────────────────────────── + + describe('getTransactions', () => { + it('returns bad_arguments when no filters supplied', async () => { + const result = await createDriver() + .controller(undefined) + .getTransactions({}) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('bad_arguments') + }) + + it('returns transactions by publicKey (walletId)', async () => { + const result = await createDriver() + .controller(undefined) + .getTransactions({ publicKeys: [WALLET_ID] }) + throwWhenRpcError(result) + expect(result.transactions).toHaveLength(1) + const tx = result.transactions![0] + expect(tx.txId).toBe(TX_REQUEST_ID) + expect(tx.signature).toBe(SIGNED_TX.signature) + expect(tx.metadata?.signedBy).toBe(FINGERPRINT) + }) + + it('returns transactions by txIds', async () => { + const result = await createDriver() + .controller(undefined) + .getTransactions({ txIds: [TX_REQUEST_ID] }) + throwWhenRpcError(result) + expect(result.transactions).toHaveLength(1) + expect(result.transactions![0].txId).toBe(TX_REQUEST_ID) + }) + + it('stops consuming generator after all txIds are found', async () => { + let reachedSecondYield = false + handlerMock.getTransactions.mockImplementation(async function* () { + yield { + txId: TX_REQUEST_ID, + status: 'signed', + publicKey: WALLET_ID, + } + reachedSecondYield = true + yield { + txId: 'extra-tx', + status: 'pending', + publicKey: WALLET_ID, + } + }) + + const result = await createDriver() + .controller(undefined) + .getTransactions({ txIds: [TX_REQUEST_ID] }) + throwWhenRpcError(result) + expect(result.transactions).toHaveLength(1) + expect(reachedSecondYield).toBe(false) + }) + + it('does not stop early when publicKeys is also supplied', async () => { + handlerMock.getTransactions.mockImplementation(async function* () { + yield { + txId: TX_REQUEST_ID, + status: 'signed', + publicKey: WALLET_ID, + } + yield { + txId: 'extra-tx', + status: 'pending', + publicKey: WALLET_ID, + } + }) + + const result = await createDriver() + .controller(undefined) + .getTransactions({ + txIds: [TX_REQUEST_ID], + publicKeys: [WALLET_ID], + }) + throwWhenRpcError(result) + expect(result.transactions).toHaveLength(2) + }) + + it('deduplicates when the same txId appears in both txIds and publicKeys scans', async () => { + handlerMock.getTransactions.mockImplementation(async function* () { + yield { + txId: TX_REQUEST_ID, + status: 'signed', + publicKey: WALLET_ID, + } + // Same txId again (simulating publicKeys scan returning same tx) + yield { + txId: TX_REQUEST_ID, + status: 'signed', + publicKey: WALLET_ID, + } + }) + + const result = await createDriver() + .controller(undefined) + .getTransactions({ + txIds: [TX_REQUEST_ID], + publicKeys: [WALLET_ID], + }) + throwWhenRpcError(result) + expect(result.transactions).toHaveLength(1) + }) + + it('returns fetch_error when generator throws', async () => { + handlerMock.getTransactions.mockImplementation(async function* () { + throw new Error('stream failed') + yield SIGNED_TX + }) + + const result = await createDriver() + .controller(undefined) + .getTransactions({ txIds: [TX_REQUEST_ID] }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('fetch_error') + }) + }) + + // ── getKeys ──────────────────────────────────────────────────────────── + + describe('getKeys', () => { + it('returns list of keys', async () => { + const result = await createDriver().controller(undefined).getKeys() + throwWhenRpcError(result) + expect(result.keys).toHaveLength(1) + expect(result.keys![0]).toEqual({ + id: WALLET_ID, + name: 'my-key', + publicKey: WALLET_ID, + }) + }) + + it('returns fetch_error when handler throws', async () => { + handlerMock.getKeys.mockRejectedValueOnce(new Error('auth failed')) + const result = await createDriver().controller(undefined).getKeys() + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('fetch_error') + }) + }) + + // ── getConfiguration ────────────────────────────────────────────────── + + describe('getConfiguration', () => { + it('hides access token', async () => { + const result = await createDriver() + .controller(undefined) + .getConfiguration() + throwWhenRpcError(result) + expect((result as Record).accessToken).toBe( + '***HIDDEN***' + ) + }) + + it('returns baseUrl, enterpriseId, and coin', async () => { + const result = await createDriver() + .controller(undefined) + .getConfiguration() + throwWhenRpcError(result) + const config = result as Record + expect(config.baseUrl).toBe('https://app.bitgo-test.com') + expect(config.enterpriseId).toBe('ent-123') + expect(config.coin).toBe('tcanton') + }) + + it('reflects coin after setConfiguration updates it', async () => { + const driver = createDriver() + const controller = driver.controller(undefined) + await controller.setConfiguration({ coin: 'canton' }) + const config = await controller.getConfiguration() + throwWhenRpcError(config) + expect((config as Record).coin).toBe('canton') + }) + }) + + // ── setConfiguration ────────────────────────────────────────────────── + + describe('setConfiguration', () => { + it('updates baseUrl and returns new config', async () => { + const driver = createDriver() + const controller = driver.controller(undefined) + + await controller.setConfiguration({ + baseUrl: 'https://app.bitgo.com', + }) + + const config = await controller.getConfiguration() + throwWhenRpcError(config) + expect((config as Record).baseUrl).toBe( + 'https://app.bitgo.com' + ) + }) + + it('updates enterpriseId', async () => { + const driver = createDriver() + const controller = driver.controller(undefined) + + await controller.setConfiguration({ enterpriseId: 'new-ent' }) + + const config = await controller.getConfiguration() + throwWhenRpcError(config) + expect((config as Record).enterpriseId).toBe( + 'new-ent' + ) + }) + + it('rebuilds handler after config update', async () => { + const { BitGoHandler } = await import('./bitgo.js') + const callsBefore = (BitGoHandler as ReturnType).mock + .calls.length + + await createDriver() + .controller(undefined) + .setConfiguration({ coin: 'canton' }) + const callsAfter = (BitGoHandler as ReturnType).mock + .calls.length + + expect(callsAfter).toBeGreaterThan(callsBefore) + }) + + it.each([ + ['accessToken', ''], + ['enterpriseId', ''], + ['coin', ''], + ['baseUrl', 'not-a-url'], + ])('returns bad_arguments for invalid %s', async (field, value) => { + const result = await createDriver() + .controller(undefined) + .setConfiguration({ [field]: value }) + expect(isRpcError(result)).toBe(true) + if (isRpcError(result)) expect(result.error).toBe('bad_arguments') + }) + }) +}) diff --git a/core/signing-bitgo/src/index.ts b/core/signing-bitgo/src/index.ts new file mode 100644 index 000000000..b4a0533c0 --- /dev/null +++ b/core/signing-bitgo/src/index.ts @@ -0,0 +1,232 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { + buildController, + type CreateKeyParams, + type CreateKeyResult, + type GetConfigurationResult, + type GetKeysResult, + type GetTransactionParams, + type GetTransactionResult, + type GetTransactionsParams, + type GetTransactionsResult, + PartyMode, + type SetConfigurationParams, + type SetConfigurationResult, + type SigningDriverInterface, + SigningProvider, + type SignMessageResult, + type SignTransactionParams, + type SignTransactionResult, + type SubscribeTransactionsParams, + type SubscribeTransactionsResult, + type Transaction, +} from '@canton-network/core-signing-lib' +import type { AuthContext } from '@canton-network/core-wallet-auth' +import { z } from 'zod' +import { BitGoHandler, type BitGoConfig } from './bitgo.js' + +const BitGoConfigUpdateSchema = z.object({ + accessToken: z.string().min(1).optional(), + baseUrl: z.string().url().optional(), + enterpriseId: z.string().min(1).optional(), + coin: z.string().min(1).optional(), +}) + +export { BitGoHandler, type BitGoConfig } from './bitgo.js' + +export default class BitGoSigningDriver implements SigningDriverInterface { + private handler: BitGoHandler + private config: BitGoConfig + + constructor(config: BitGoConfig) { + this.config = config + this.handler = new BitGoHandler(config) + } + + public partyMode = PartyMode.EXTERNAL + public signingProvider = SigningProvider.BITGO + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + public controller = (_userId: AuthContext['userId'] | undefined) => + buildController({ + signTransaction: async ( + params: SignTransactionParams + ): Promise => { + try { + // publicKey === walletId by design — accept either field. + const walletId = + params.keyIdentifier.id ?? + params.keyIdentifier.publicKey + if (!walletId) { + return { + error: 'key_not_found', + error_description: + 'The provided key identifier must include an id or publicKey (BitGo walletId).', + } + } + const result = await this.handler.signTransaction({ + tx: params.tx, + txHash: params.txHash, + walletId, + }) + return { + txId: result.txId, + status: 'pending', + } + } catch (error) { + return { + error: 'signing_error', + error_description: (error as Error).message, + } + } + }, + + // v8 ignore next -- @preserve + signMessage: async (): Promise => ({ + error: 'not_allowed', + error_description: + 'Signing messages is not supported with BitGo.', + }), + + getTransaction: async ( + params: GetTransactionParams + ): Promise => { + try { + const tx = await this.handler.getTransaction(params.txId) + if (!tx) { + return { + error: 'transaction_not_found', + error_description: `No BitGo transaction found for txId: ${params.txId}`, + } + } + return { + txId: tx.txId, + status: tx.status, + ...(tx.signature !== undefined && { + signature: tx.signature, + }), + ...(tx.publicKey !== undefined && { + publicKey: tx.publicKey, + }), + ...(tx.metadata !== undefined && { + metadata: tx.metadata, + }), + } + } catch (error) { + return { + error: 'fetch_error', + error_description: (error as Error).message, + } + } + }, + + getTransactions: async ( + params: GetTransactionsParams + ): Promise => { + if (!params.txIds?.length && !params.publicKeys?.length) { + return { + error: 'bad_arguments', + error_description: + 'Either txIds or publicKeys must be supplied.', + } + } + try { + const transactions: Transaction[] = [] + const txIdSet = new Set(params.txIds ?? []) + const seen = new Set() + for await (const tx of this.handler.getTransactions({ + txIds: params.txIds, + publicKeys: params.publicKeys, + })) { + if (seen.has(tx.txId)) continue + seen.add(tx.txId) + transactions.push({ + txId: tx.txId, + status: tx.status, + ...(tx.signature !== undefined && { + signature: tx.signature, + }), + ...(tx.publicKey !== undefined && { + publicKey: tx.publicKey, + }), + ...(tx.metadata !== undefined && { + metadata: tx.metadata, + }), + }) + // break early when filtering by txIds only and all have been found + if ( + params.txIds && + !params.publicKeys && + transactions.length === txIdSet.size + ) { + break + } + } + return { transactions } + } catch (error) { + return { + error: 'fetch_error', + error_description: (error as Error).message, + } + } + }, + + getKeys: async (): Promise => { + try { + const keys = await this.handler.getKeys() + return { keys } + } catch (error) { + return { + error: 'fetch_error', + error_description: (error as Error).message, + } + } + }, + + createKey: async ( + params: CreateKeyParams + ): Promise => { + try { + const key = await this.handler.createKey(params.name) + return key + } catch (error) { + return { + error: 'create_key_error', + error_description: (error as Error).message, + } + } + }, + + getConfiguration: async (): Promise => ({ + baseUrl: this.config.baseUrl ?? 'https://app.bitgo.com', + enterpriseId: this.config.enterpriseId, + coin: this.config.coin, + accessToken: '***HIDDEN***', + }), + + setConfiguration: async ( + params: SetConfigurationParams + ): Promise => { + const validated = BitGoConfigUpdateSchema.safeParse(params) + if (!validated.success) { + return { + error: 'bad_arguments', + error_description: validated.error.message, + } + } + this.config = { ...this.config, ...validated.data } + this.handler = new BitGoHandler(this.config) + return params + }, + + // TODO: implement once / if subscribeTransactions is required + // v8 ignore next -- @preserve + subscribeTransactions: async ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + _params: SubscribeTransactionsParams + ): Promise => + Promise.resolve({} as SubscribeTransactionsResult), + }) +} diff --git a/core/signing-bitgo/tsconfig.json b/core/signing-bitgo/tsconfig.json new file mode 100644 index 000000000..d19ed0c62 --- /dev/null +++ b/core/signing-bitgo/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "exactOptionalPropertyTypes": false + }, + "include": ["src/**/*.ts"] +} diff --git a/core/signing-bitgo/tsdown.config.ts b/core/signing-bitgo/tsdown.config.ts new file mode 100644 index 000000000..29033f72f --- /dev/null +++ b/core/signing-bitgo/tsdown.config.ts @@ -0,0 +1,10 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { defineConfig } from 'tsdown' +import { base } from '../../tsdown.base.ts' + +export default defineConfig({ + ...base, + entry: ['src/index.ts'], +}) diff --git a/core/signing-bitgo/vitest.config.ts b/core/signing-bitgo/vitest.config.ts new file mode 100644 index 000000000..3be1b7f79 --- /dev/null +++ b/core/signing-bitgo/vitest.config.ts @@ -0,0 +1,31 @@ +// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { defineConfig, defineProject } from 'vitest/config' + +export default defineConfig({ + test: { + coverage: { + include: ['src/**/*.ts'], + provider: 'v8', + reporter: ['text', 'html', 'lcov', 'json-summary'], + thresholds: { + lines: 80, + functions: 80, + branches: 80, + statements: 80, + }, + }, + environment: 'node', + include: ['src/**/*.test.ts'], + projects: [ + defineProject({ + test: { + name: 'node', + environment: 'node', + include: ['src/**/*.test.ts'], + }, + }), + ], + }, +}) diff --git a/core/signing-lib/src/config/schema.ts b/core/signing-lib/src/config/schema.ts index e5b92d3ff..4fa472256 100644 --- a/core/signing-lib/src/config/schema.ts +++ b/core/signing-lib/src/config/schema.ts @@ -9,6 +9,7 @@ export enum SigningProvider { FIREBLOCKS = 'fireblocks', BLOCKDAEMON = 'blockdaemon', DFNS = 'dfns', + BITGO = 'bitgo', } // Generic signing driver configuration schema diff --git a/wallet-gateway/remote/package.json b/wallet-gateway/remote/package.json index ccbbec644..aabc7b65d 100644 --- a/wallet-gateway/remote/package.json +++ b/wallet-gateway/remote/package.json @@ -41,6 +41,7 @@ "@canton-network/core-ledger-client": "workspace:^", "@canton-network/core-rpc-errors": "workspace:^", "@canton-network/core-rpc-transport": "workspace:^", + "@canton-network/core-signing-bitgo": "workspace:^", "@canton-network/core-signing-blockdaemon": "workspace:^", "@canton-network/core-signing-dfns": "workspace:^", "@canton-network/core-signing-fireblocks": "workspace:^", diff --git a/wallet-gateway/remote/src/env.ts b/wallet-gateway/remote/src/env.ts index 4136e936a..d5298399a 100644 --- a/wallet-gateway/remote/src/env.ts +++ b/wallet-gateway/remote/src/env.ts @@ -16,6 +16,11 @@ export class Env { static DFNS_CRED_ID = () => Env.get('DFNS_CRED_ID') static DFNS_PRIVATE_KEY = () => Env.get('DFNS_PRIVATE_KEY') static DFNS_AUTH_TOKEN = () => Env.get('DFNS_AUTH_TOKEN') + static BITGO_ACCESS_TOKEN = () => Env.get('BITGO_ACCESS_TOKEN') + static BITGO_API_URL = (fallback: string) => + Env.get('BITGO_API_URL', { fallback }) + static BITGO_ENTERPRISE_ID = () => Env.get('BITGO_ENTERPRISE_ID') + static BITGO_COIN = () => Env.get('BITGO_COIN') static get( key: string, diff --git a/wallet-gateway/remote/src/init.ts b/wallet-gateway/remote/src/init.ts index a69aaead8..b727ac092 100644 --- a/wallet-gateway/remote/src/init.ts +++ b/wallet-gateway/remote/src/init.ts @@ -27,6 +27,7 @@ import FireblocksSigningProvider from '@canton-network/core-signing-fireblocks' import BlockdaemonSigningProvider, { CantonCaip2, } from '@canton-network/core-signing-blockdaemon' +import BitGoSigningProvider from '@canton-network/core-signing-bitgo' import { jwtAuthService } from './auth/jwt-auth-service.js' import express from 'express' import { CliOptions } from './index.js' @@ -326,6 +327,19 @@ export async function initialize(opts: CliOptions, logger: Logger) { ) } + if (Env.BITGO_ACCESS_TOKEN()) { + drivers[SigningProvider.BITGO] = new BitGoSigningProvider({ + accessToken: Env.BITGO_ACCESS_TOKEN()!, + baseUrl: Env.BITGO_API_URL('https://app.bitgo.com'), + enterpriseId: Env.BITGO_ENTERPRISE_ID(), + coin: Env.BITGO_COIN(), + }) + } else { + logger.warn( + 'BITGO_ACCESS_TOKEN not set — BitGo signing provider will be unavailable' + ) + } + const allowedPaths = { [config.server.dappPath]: ['*'], [config.server.userPath]: [ diff --git a/yarn.lock b/yarn.lock index a7fc26209..95dde626f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30,6 +30,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.10.4": + version: 7.29.7 + resolution: "@babel/code-frame@npm:7.29.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.29.7" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/169fc2080169a40c1760155eaaaf739bcb882df0bec76a83adbda5493645bc17270a3434b8848c494b1933e96fe1d147370001e3cda09a39f43ae30f08ef2069 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.28.6, @babel/compat-data@npm:^7.29.0": version: 7.29.0 resolution: "@babel/compat-data@npm:7.29.0" @@ -246,6 +257,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-identifier@npm:7.29.7" + checksum: 10c0/4795354e7ae0dcafa72de1cd04ec51252dc1498517170beaf019e03effc5b7bf13c6b21a3949a77e07b8125be7f106ed1131350d8ebd4566ae874094a726d62b + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-validator-option@npm:7.27.1" @@ -1285,6 +1303,173 @@ __metadata: languageName: node linkType: hard +"@bitgo/blake2b-wasm@npm:^3.2.3": + version: 3.2.3 + resolution: "@bitgo/blake2b-wasm@npm:3.2.3" + dependencies: + nanoassert: "npm:^1.0.0" + checksum: 10c0/0bedec7958a8754dbd41cde3bed5784da592da4c57b8f42768cd2272693b7c91ad66a94cdd217cccdeeb0a26c35e42b00193aeff76bda4865615f76427698399 + languageName: node + linkType: hard + +"@bitgo/blake2b@npm:^3.2.4": + version: 3.2.4 + resolution: "@bitgo/blake2b@npm:3.2.4" + dependencies: + "@bitgo/blake2b-wasm": "npm:^3.2.3" + nanoassert: "npm:^2.0.0" + checksum: 10c0/bcef1c5a332484901e5bab27d6cc3a8fc8f2f967e7da3b637f7583d2dad114432af0b0791b635cb47b2be1d58fc3ec446cafa1c61ab7911276adb8b191652793 + languageName: node + linkType: hard + +"@bitgo/public-types@npm:6.22.0": + version: 6.22.0 + resolution: "@bitgo/public-types@npm:6.22.0" + dependencies: + fp-ts: "npm:^2.0.0" + io-ts: "npm:@bitgo-forks/io-ts@2.1.4" + io-ts-types: "npm:^0.5.16" + monocle-ts: "npm:^2.3.13" + newtype-ts: "npm:^0.3.5" + checksum: 10c0/b64829874ad3c8ec466f81caa749f6132093370b67d8ca8327fef6fae95bbd1f72527bbd657365db1275838d771d21251e2d29ce6f1677951cdef357cc20f6cf + languageName: node + linkType: hard + +"@bitgo/sdk-coin-canton@npm:^1.27.2": + version: 1.27.2 + resolution: "@bitgo/sdk-coin-canton@npm:1.27.2" + dependencies: + "@bitgo/sdk-core": "npm:^37.11.0" + "@bitgo/statics": "npm:^58.53.0" + "@protobuf-ts/runtime": "npm:^2.11.1" + bignumber.js: "npm:^9.1.1" + checksum: 10c0/0a57ae191c78f21baff86f43e9dec275ef85cd3b115649b1a0686a9b137929d6aef63d0025e8c7e16eb31c2b6ea6666a18c63ad66f1a0cc65718da79468ffbc9 + languageName: node + linkType: hard + +"@bitgo/sdk-core@npm:^37.11.0": + version: 37.11.0 + resolution: "@bitgo/sdk-core@npm:37.11.0" + dependencies: + "@bitgo/public-types": "npm:6.22.0" + "@bitgo/sdk-lib-mpc": "npm:^10.14.1" + "@bitgo/secp256k1": "npm:^1.11.0" + "@bitgo/sjcl": "npm:^1.1.0" + "@bitgo/statics": "npm:^58.53.0" + "@bitgo/utxo-lib": "npm:^11.24.0" + "@noble/curves": "npm:1.8.1" + "@stablelib/hex": "npm:^1.0.0" + "@types/superagent": "npm:4.1.15" + big.js: "npm:^3.1.3" + bigint-crypto-utils: "npm:3.1.4" + bignumber.js: "npm:^9.1.1" + bs58: "npm:^4.0.1" + create-hmac: "npm:^1.1.7" + debug: "npm:^3.1.0" + ethereumjs-util: "npm:7.1.5" + fp-ts: "npm:^2.12.2" + io-ts: "npm:@bitgo-forks/io-ts@2.1.4" + io-ts-types: "npm:^0.5.16" + keccak: "npm:3.0.3" + libsodium-wrappers-sumo: "npm:^0.7.9" + lodash: "npm:^4.18.0" + noble-bls12-381: "npm:0.7.2" + openpgp: "npm:5.11.3" + paillier-bigint: "npm:3.3.0" + secp256k1: "npm:5.0.1" + strip-hex-prefix: "npm:^1.0.0" + superagent: "npm:^9.0.1" + tweetnacl: "npm:^1.0.3" + uuid: "npm:^8.3.2" + checksum: 10c0/20adf71042e3d9d3046fd8aae2b686cad092639bedb31bce629f7290b8ed9a1ca7d3df35faab4ede90c64d549d01e26ba1ccfd08f698b4ecf3089f25429afe81 + languageName: node + linkType: hard + +"@bitgo/sdk-lib-mpc@npm:^10.14.1": + version: 10.14.1 + resolution: "@bitgo/sdk-lib-mpc@npm:10.14.1" + dependencies: + "@bitgo/wasm-mps": "npm:1.8.1" + "@noble/curves": "npm:1.8.1" + "@silencelaboratories/dkls-wasm-ll-node": "npm:1.2.0-pre.4" + "@silencelaboratories/dkls-wasm-ll-web": "npm:1.2.0-pre.4" + "@types/superagent": "npm:4.1.15" + "@wasmer/wasi": "npm:^1.2.2" + bigint-crypto-utils: "npm:3.1.4" + bigint-mod-arith: "npm:3.1.2" + cbor-x: "npm:1.5.9" + fp-ts: "npm:2.16.2" + io-ts: "npm:@bitgo-forks/io-ts@2.1.4" + libsodium-wrappers-sumo: "npm:^0.7.9" + openpgp: "npm:5.11.3" + paillier-bigint: "npm:3.3.0" + secp256k1: "npm:5.0.1" + peerDependencies: + "@silencelaboratories/dkls-wasm-ll-bundler": 1.2.0-pre.4 + peerDependenciesMeta: + "@silencelaboratories/dkls-wasm-ll-bundler": + optional: true + checksum: 10c0/3e21bed427693ab2ad83c1feecce503ac615bd43fca66b74aa9bff19164f05183e9c4175ebd21c42b25f75aff9ff33d27e2cb4a70f8dced814cb8fcc90a12b04 + languageName: node + linkType: hard + +"@bitgo/secp256k1@npm:^1.11.0": + version: 1.11.0 + resolution: "@bitgo/secp256k1@npm:1.11.0" + dependencies: + "@brandonblack/musig": "npm:^0.0.1-alpha.0" + "@noble/secp256k1": "npm:1.6.3" + bip32: "npm:^3.0.1" + bitcoinjs-message: "npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.3" + bs58check: "npm:^2.1.2" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + ecpair: "npm:@bitgo/ecpair@2.1.0-rc.0" + checksum: 10c0/afcac70839eb3db5abaf7c346af2685783c864e2409d229b49f8bd192814de74dcbf4f9885d86861ed077e605b746fde76e2014d20940a568e43e897e7d9ad12 + languageName: node + linkType: hard + +"@bitgo/sjcl@npm:^1.1.0": + version: 1.1.0 + resolution: "@bitgo/sjcl@npm:1.1.0" + checksum: 10c0/c166ce1f91130baf576551d2e64879ea442cc779f672914819d774535877b2ef06b17cb2871604037a7dfcbfb4b806b6c39d6de7617f1f62229f0d4af2f0dc57 + languageName: node + linkType: hard + +"@bitgo/statics@npm:^58.53.0": + version: 58.53.0 + resolution: "@bitgo/statics@npm:58.53.0" + checksum: 10c0/da45bf327e95e625d182444f53ecc3da9a6e0b2bb17e25d437d04a9f770d9a9c3928d0e13dce6b4d781595b77f23c79ee5d45dfec65e7743ce4f72081c5b0bb5 + languageName: node + linkType: hard + +"@bitgo/utxo-lib@npm:^11.24.0": + version: 11.24.0 + resolution: "@bitgo/utxo-lib@npm:11.24.0" + dependencies: + "@bitgo/blake2b": "npm:^3.2.4" + "@bitgo/secp256k1": "npm:^1.11.0" + "@brandonblack/musig": "npm:^0.0.1-alpha.0" + bech32: "npm:^2.0.0" + bip174: "npm:@bitgo-forks/bip174@3.1.0-master.4" + bitcoin-ops: "npm:^1.3.0" + bitcoinjs-lib: "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.11" + bs58check: "npm:^2.1.2" + cashaddress: "npm:^1.1.0" + fastpriorityqueue: "npm:^0.7.1" + typeforce: "npm:^1.11.3" + varuint-bitcoin: "npm:^1.1.2" + checksum: 10c0/681a13adb9a6172adb5393b4d4154aeed25b002c59657f662453571030ff64c48b8a6142b7b17813b1065ab07be424c28bf8134e04ddc1b35cb644cfeae4a9d4 + languageName: node + linkType: hard + +"@bitgo/wasm-mps@npm:1.8.1": + version: 1.8.1 + resolution: "@bitgo/wasm-mps@npm:1.8.1" + checksum: 10c0/50a9cd85ae55314dd0f46a050aa5c14261e08ce7ca6a5313e50fb1da5374d50dd2fdeead37dc624ab38dd33e87a97a8f41dbdad4f393b740c65b01425505020b + languageName: node + linkType: hard + "@blazediff/core@npm:1.9.1": version: 1.9.1 resolution: "@blazediff/core@npm:1.9.1" @@ -1292,6 +1477,13 @@ __metadata: languageName: node linkType: hard +"@brandonblack/musig@npm:^0.0.1-alpha.0": + version: 0.0.1-alpha.1 + resolution: "@brandonblack/musig@npm:0.0.1-alpha.1" + checksum: 10c0/81ba73c304df3f9facb5a096e7d9506b9fd5919cb86c09ff40be0ce2367dc3a9eb8fa98d4c704ef02ab1d581ef0e51d73eecaf5f8d6ab419474e3a005444cb29 + languageName: node + linkType: hard + "@bufbuild/protobuf@npm:2.11.0, @bufbuild/protobuf@npm:^2.0.0, @bufbuild/protobuf@npm:^2.10.2, @bufbuild/protobuf@npm:^2.4.0": version: 2.11.0 resolution: "@bufbuild/protobuf@npm:2.11.0" @@ -1561,6 +1753,22 @@ __metadata: languageName: unknown linkType: soft +"@canton-network/core-signing-bitgo@workspace:^, @canton-network/core-signing-bitgo@workspace:core/signing-bitgo": + version: 0.0.0-use.local + resolution: "@canton-network/core-signing-bitgo@workspace:core/signing-bitgo" + dependencies: + "@bitgo/sdk-coin-canton": "npm:^1.27.2" + "@canton-network/core-signing-lib": "workspace:^" + "@canton-network/core-wallet-auth": "workspace:^" + "@types/node": "npm:^25.9.3" + "@vitest/coverage-v8": "npm:^4.1.8" + tsup: "npm:^8.5.1" + typescript: "npm:^5.9.3" + vitest: "npm:^4.1.8" + zod: "npm:^4.4.3" + languageName: unknown + linkType: soft + "@canton-network/core-signing-blockdaemon@workspace:^, @canton-network/core-signing-blockdaemon@workspace:core/signing-blockdaemon": version: 0.0.0-use.local resolution: "@canton-network/core-signing-blockdaemon@workspace:core/signing-blockdaemon" @@ -2292,6 +2500,7 @@ __metadata: "@canton-network/core-ledger-client": "workspace:^" "@canton-network/core-rpc-errors": "workspace:^" "@canton-network/core-rpc-transport": "workspace:^" + "@canton-network/core-signing-bitgo": "workspace:^" "@canton-network/core-signing-blockdaemon": "workspace:^" "@canton-network/core-signing-dfns": "workspace:^" "@canton-network/core-signing-fireblocks": "workspace:^" @@ -2378,6 +2587,48 @@ __metadata: languageName: unknown linkType: soft +"@cbor-extract/cbor-extract-darwin-arm64@npm:2.2.2": + version: 2.2.2 + resolution: "@cbor-extract/cbor-extract-darwin-arm64@npm:2.2.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@cbor-extract/cbor-extract-darwin-x64@npm:2.2.2": + version: 2.2.2 + resolution: "@cbor-extract/cbor-extract-darwin-x64@npm:2.2.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@cbor-extract/cbor-extract-linux-arm64@npm:2.2.2": + version: 2.2.2 + resolution: "@cbor-extract/cbor-extract-linux-arm64@npm:2.2.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@cbor-extract/cbor-extract-linux-arm@npm:2.2.2": + version: 2.2.2 + resolution: "@cbor-extract/cbor-extract-linux-arm@npm:2.2.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@cbor-extract/cbor-extract-linux-x64@npm:2.2.2": + version: 2.2.2 + resolution: "@cbor-extract/cbor-extract-linux-x64@npm:2.2.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@cbor-extract/cbor-extract-win32-x64@npm:2.2.2": + version: 2.2.2 + resolution: "@cbor-extract/cbor-extract-win32-x64@npm:2.2.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@commander-js/extra-typings@npm:^14.0.0": version: 14.0.0 resolution: "@commander-js/extra-typings@npm:14.0.0" @@ -2644,24 +2895,24 @@ __metadata: linkType: hard "@dfns/sdk-keysigner@npm:^0.8.24": - version: 0.8.24 - resolution: "@dfns/sdk-keysigner@npm:0.8.24" + version: 0.8.25 + resolution: "@dfns/sdk-keysigner@npm:0.8.25" dependencies: buffer: "npm:^6.0.3" cross-fetch: "npm:^3.1.6" peerDependencies: - "@dfns/sdk": 0.8.24 - checksum: 10c0/64bf3e233edd7418ef109df0a4abea32e4986a6f37f6959bbebb2c2875d5228c626e45fb0ffb65e286081aa11be01ede215b8d8692d5ad8018f15a0be204a722 + "@dfns/sdk": 0.8.25 + checksum: 10c0/8a3fbd9650efaa6c63b31ec1d1c4421f43fcf3d4966e5459421d0d9ce4af46509b93a80e628d8674aacacb815f260679454ca78c57e49973ae9ce77188b8c605 languageName: node linkType: hard "@dfns/sdk@npm:^0.8.24": - version: 0.8.24 - resolution: "@dfns/sdk@npm:0.8.24" + version: 0.8.25 + resolution: "@dfns/sdk@npm:0.8.25" dependencies: buffer: "npm:^6.0.3" cross-fetch: "npm:^3.1.6" - checksum: 10c0/2b81f696fb383e86458f753b99f567a1ec749d20956fec42df860c82f4d630eefc76c080e3c08e24c702b47bc146f7e6642c458b043fb515d8abde0117c0493d + checksum: 10c0/207942035a3396a8af36c9057928904af3b39e517bab61cbb2d8d9215b0fba9b271dd67c4722787e5e4551eb8425a3760abd5bcdd41c6c0dece066d6111d4ea3 languageName: node linkType: hard @@ -3521,9 +3772,9 @@ __metadata: linkType: hard "@floating-ui/utils@npm:^0.2.11": - version: 0.2.11 - resolution: "@floating-ui/utils@npm:0.2.11" - checksum: 10c0/f4bcea1559bdbb721ecc8e8ead423ac58d6a5b6e70b602cf0810ba6ad4ed1c77211b207faa88b278a9042f0c743133de08a203ed6741c1b6443423332884d5b3 + version: 0.2.12 + resolution: "@floating-ui/utils@npm:0.2.12" + checksum: 10c0/bb910b90d56991a62011afaf5f8e0c4b7fb6dab69403f4dd17fbd6eb25560b28d533dff9791f270b4f459852e9006a1077b5d73cbedb5e34d9424afc6a828314 languageName: node linkType: hard @@ -4328,7 +4579,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.13 resolution: "@jridgewell/gen-mapping@npm:0.3.13" dependencies: @@ -4939,26 +5190,6 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^9.1.1": - version: 9.1.1 - resolution: "@mui/utils@npm:9.1.1" - dependencies: - "@babel/runtime": "npm:^7.29.2" - "@mui/types": "npm:^9.1.1" - "@types/prop-types": "npm:^15.7.15" - clsx: "npm:^2.1.1" - prop-types: "npm:^15.8.1" - react-is: "npm:^19.2.6" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/a39936fa287ba3f53c47ef3072b813b797a75b43ed95212e817e9d3828e2de8079ae834061fc7e76b096eb0ceddd39468f4f0423ac25b6ac39aa77d70945966b - languageName: node - linkType: hard - "@mui/utils@npm:^9.2.0": version: 9.2.0 resolution: "@mui/utils@npm:9.2.0" @@ -4980,12 +5211,12 @@ __metadata: linkType: hard "@mui/x-date-pickers@npm:^9.8.0": - version: 9.8.0 - resolution: "@mui/x-date-pickers@npm:9.8.0" + version: 9.9.0 + resolution: "@mui/x-date-pickers@npm:9.9.0" dependencies: "@babel/runtime": "npm:^7.29.7" - "@mui/utils": "npm:^9.1.1" - "@mui/x-internals": "npm:^9.8.0" + "@mui/utils": "npm:^9.2.0" + "@mui/x-internals": "npm:^9.9.0" "@types/react-transition-group": "npm:^4.4.12" clsx: "npm:^2.1.1" prop-types: "npm:^15.8.1" @@ -5023,22 +5254,22 @@ __metadata: optional: true moment-jalaali: optional: true - checksum: 10c0/c95a0e39c8a9095a56265236b35142caeb93c9ca4067a0082e4fd02599fc6074c65e46f69fdc2ebfca7832b265a8a162684ab31916cd828533958c17093e5c55 + checksum: 10c0/3df060eb893c6d478239e89e3975ebfcb5b46c92161db52538896445eddaa7d21de436364fa1b21656b28830e76621b222b15a314861e908872a6a730b79c11b languageName: node linkType: hard -"@mui/x-internals@npm:^9.8.0": - version: 9.8.0 - resolution: "@mui/x-internals@npm:9.8.0" +"@mui/x-internals@npm:^9.9.0": + version: 9.9.0 + resolution: "@mui/x-internals@npm:9.9.0" dependencies: "@babel/runtime": "npm:^7.29.7" "@base-ui/utils": "npm:^0.3.0" - "@mui/utils": "npm:^9.1.1" + "@mui/utils": "npm:^9.2.0" reselect: "npm:^5.2.0" use-sync-external-store: "npm:^1.6.0" peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 10c0/e2f6f094c93e83133d9957404dddc5f36ac3350ce71824a940f8b5ca7ce97ab655816a42220f60a88d482952f50541080fc4a71f98835d5044c567e37a826737 + checksum: 10c0/c14390446850d9437e8bda012c6d72bdfccc8f1b63b4ef17a4b44ed3174998e40456313cb910be31852681915387ed28a5fee3456b7eaf8e0294bd78aadf6e55 languageName: node linkType: hard @@ -5113,6 +5344,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:1.8.1": + version: 1.8.1 + resolution: "@noble/curves@npm:1.8.1" + dependencies: + "@noble/hashes": "npm:1.7.1" + checksum: 10c0/84902c7af93338373a95d833f77981113e81c48d4bec78f22f63f1f7fdd893bc1d3d7a3ee78f01b9a8ad3dec812a1232866bf2ccbeb2b1560492e5e7d690ab1f + languageName: node + linkType: hard + "@noble/curves@npm:1.9.1": version: 1.9.1 resolution: "@noble/curves@npm:1.9.1" @@ -5145,6 +5385,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.7.1": + version: 1.7.1 + resolution: "@noble/hashes@npm:1.7.1" + checksum: 10c0/2f8ec0338ccc92b576a0f5c16ab9c017a3a494062f1fbb569ae641c5e7eab32072f9081acaa96b5048c0898f972916c818ea63cbedda707886a4b5ffcfbf94e3 + languageName: node + linkType: hard + "@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.1.5, @noble/hashes@npm:^1.2.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.8.0, @noble/hashes@npm:~1.8.0": version: 1.8.0 resolution: "@noble/hashes@npm:1.8.0" @@ -5152,6 +5399,13 @@ __metadata: languageName: node linkType: hard +"@noble/secp256k1@npm:1.6.3": + version: 1.6.3 + resolution: "@noble/secp256k1@npm:1.6.3" + checksum: 10c0/da324e4a721dbf75bdcb7455ef82a015e743f195fc16bcdae86cb87229578050e34ff89f36dfd05798937cce211761d767ea2933cc7fd391027a5cc36aa5df91 + languageName: node + linkType: hard + "@npmcli/agent@npm:^4.0.0": version: 4.0.0 resolution: "@npmcli/agent@npm:4.0.0" @@ -5305,6 +5559,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-darwin-arm64@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-darwin-arm64@npm:22.7.7" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@nx/nx-darwin-x64@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-darwin-x64@npm:22.7.6" @@ -5312,6 +5573,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-darwin-x64@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-darwin-x64@npm:22.7.7" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-freebsd-x64@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-freebsd-x64@npm:22.7.6" @@ -5319,6 +5587,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-freebsd-x64@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-freebsd-x64@npm:22.7.7" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-linux-arm-gnueabihf@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.7.6" @@ -5326,6 +5601,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm-gnueabihf@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.7.7" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@nx/nx-linux-arm64-gnu@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-linux-arm64-gnu@npm:22.7.6" @@ -5333,6 +5615,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm64-gnu@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-linux-arm64-gnu@npm:22.7.7" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@nx/nx-linux-arm64-musl@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-linux-arm64-musl@npm:22.7.6" @@ -5340,6 +5629,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm64-musl@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-linux-arm64-musl@npm:22.7.7" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@nx/nx-linux-x64-gnu@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-linux-x64-gnu@npm:22.7.6" @@ -5347,6 +5643,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-x64-gnu@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-linux-x64-gnu@npm:22.7.7" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@nx/nx-linux-x64-musl@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-linux-x64-musl@npm:22.7.6" @@ -5354,6 +5657,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-x64-musl@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-linux-x64-musl@npm:22.7.7" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@nx/nx-win32-arm64-msvc@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-win32-arm64-msvc@npm:22.7.6" @@ -5361,6 +5671,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-win32-arm64-msvc@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-win32-arm64-msvc@npm:22.7.7" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@nx/nx-win32-x64-msvc@npm:22.7.6": version: 22.7.6 resolution: "@nx/nx-win32-x64-msvc@npm:22.7.6" @@ -5368,6 +5685,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-win32-x64-msvc@npm:22.7.7": + version: 22.7.7 + resolution: "@nx/nx-win32-x64-msvc@npm:22.7.7" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nx/playwright@npm:22.7.6": version: 22.7.6 resolution: "@nx/playwright@npm:22.7.6" @@ -7255,6 +7579,20 @@ __metadata: languageName: node linkType: hard +"@silencelaboratories/dkls-wasm-ll-node@npm:1.2.0-pre.4": + version: 1.2.0-pre.4 + resolution: "@silencelaboratories/dkls-wasm-ll-node@npm:1.2.0-pre.4" + checksum: 10c0/1c943e77e65912de7d35ea539741333f5eca6cc72e4014645e3a839e097e0eadf99d05ebc8b0cd665c36559182bde79c16a364b15e4e1890f91e0093a4ea5014 + languageName: node + linkType: hard + +"@silencelaboratories/dkls-wasm-ll-web@npm:1.2.0-pre.4": + version: 1.2.0-pre.4 + resolution: "@silencelaboratories/dkls-wasm-ll-web@npm:1.2.0-pre.4" + checksum: 10c0/43d132bbe7454f28061aad4e96096bab3c4012ba58a84e66e78512886887dfae247d72e41af6adbfb2583e27ebda9f1a46a55c662e01aca59361e3e217d1bea6 + languageName: node + linkType: hard + "@simple-libs/child-process-utils@npm:^1.0.0": version: 1.0.2 resolution: "@simple-libs/child-process-utils@npm:1.0.2" @@ -7340,6 +7678,13 @@ __metadata: languageName: node linkType: hard +"@stablelib/hex@npm:^1.0.0": + version: 1.0.1 + resolution: "@stablelib/hex@npm:1.0.1" + checksum: 10c0/57e6b0e0dbce12b8a7b9fef38d92af2adfab45b6824bde80a2c82c8c4e83bccac8d94bfe1ec921896b6a6b114b46eb21632bb2611adf1dd7a79ac8a766d6956d + languageName: node + linkType: hard + "@standard-schema/spec@npm:^1.1.0": version: 1.1.0 resolution: "@standard-schema/spec@npm:1.1.0" @@ -7360,6 +7705,19 @@ __metadata: languageName: node linkType: hard +"@storybook/builder-vite@npm:10.5.0": + version: 10.5.0 + resolution: "@storybook/builder-vite@npm:10.5.0" + dependencies: + "@storybook/csf-plugin": "npm:10.5.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^10.5.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/1d485c9b19bcb65305b9de63bfd9abdb0f23c8aacf165b3d7edea8766fa9db38bb543f66902acb3c2cfc33b800c3b5b958b3c86e99ec0dde85065dccb0a2b5a9 + languageName: node + linkType: hard + "@storybook/csf-plugin@npm:10.4.6": version: 10.4.6 resolution: "@storybook/csf-plugin@npm:10.4.6" @@ -7384,6 +7742,30 @@ __metadata: languageName: node linkType: hard +"@storybook/csf-plugin@npm:10.5.0": + version: 10.5.0 + resolution: "@storybook/csf-plugin@npm:10.5.0" + dependencies: + unplugin: "npm:^2.3.5" + peerDependencies: + esbuild: "*" + rollup: "*" + storybook: ^10.5.0 + vite: "*" + webpack: "*" + peerDependenciesMeta: + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + checksum: 10c0/b1f66c2bc6d30e935b9141b82416cec29e3d160ee4123e5152f0501c1a7d809e6ef835847c562ba7811836d3e7de29504bd95747ea6297d185c3ef28aff085ef + languageName: node + linkType: hard + "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -7401,7 +7783,7 @@ __metadata: languageName: node linkType: hard -"@storybook/web-components-vite@npm:10.4.6, @storybook/web-components-vite@npm:^10.4.6": +"@storybook/web-components-vite@npm:10.4.6": version: 10.4.6 resolution: "@storybook/web-components-vite@npm:10.4.6" dependencies: @@ -7414,6 +7796,19 @@ __metadata: languageName: node linkType: hard +"@storybook/web-components-vite@npm:^10.4.6": + version: 10.5.0 + resolution: "@storybook/web-components-vite@npm:10.5.0" + dependencies: + "@storybook/builder-vite": "npm:10.5.0" + "@storybook/web-components": "npm:10.5.0" + peerDependencies: + storybook: ^10.5.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/729d0c55d4eb7c14697c543fe85ee88b8f28957c7f9076b11eed04e6b2b35103831045bea938f395bea75edbf9623ea0adbfade4312ebbb0361cb6b76b04b4ed + languageName: node + linkType: hard + "@storybook/web-components@npm:10.4.6": version: 10.4.6 resolution: "@storybook/web-components@npm:10.4.6" @@ -7428,6 +7823,20 @@ __metadata: languageName: node linkType: hard +"@storybook/web-components@npm:10.5.0": + version: 10.5.0 + resolution: "@storybook/web-components@npm:10.5.0" + dependencies: + "@storybook/global": "npm:^5.0.0" + tiny-invariant: "npm:^1.3.1" + ts-dedent: "npm:^2.0.0" + peerDependencies: + lit: ^2.0.0 || ^3.0.0 + storybook: ^10.5.0 + checksum: 10c0/1e7793e59bad6758263673c764734a11515631a088dc59f94ded6560497e87d6b50ebd16327773fce6eefb0fe687710ea02e9dca83a56de0b1e65c8cdc6d0882 + languageName: node + linkType: hard + "@swc-node/core@npm:^1.14.1": version: 1.14.1 resolution: "@swc-node/core@npm:1.14.1" @@ -7847,17 +8256,17 @@ __metadata: linkType: hard "@tanstack/react-router@npm:^1.170.17": - version: 1.170.17 - resolution: "@tanstack/react-router@npm:1.170.17" + version: 1.170.18 + resolution: "@tanstack/react-router@npm:1.170.18" dependencies: "@tanstack/history": "npm:1.162.0" "@tanstack/react-store": "npm:^0.9.3" - "@tanstack/router-core": "npm:1.171.14" + "@tanstack/router-core": "npm:1.171.15" isbot: "npm:^5.1.22" peerDependencies: react: ">=18.0.0 || >=19.0.0" react-dom: ">=18.0.0 || >=19.0.0" - checksum: 10c0/4d5ddcce92ee273c6aa07b61bc66c281d221123a870a605d8632cbee30749eb75717d19c1d1c6a52b21917d73c902562c7d2c0a970245918200119925a04cccb + checksum: 10c0/f6825265d9ce626f59c93d606aa2c2770ca7fdc1ead8f99f70c6070f60f0c5fe6d0a6d607665694cf089c19d6d76c6c66c1b4102e8d27c93317f72002dd111bf languageName: node linkType: hard @@ -7887,15 +8296,15 @@ __metadata: languageName: node linkType: hard -"@tanstack/router-core@npm:1.171.14, @tanstack/router-core@npm:^1.171.14": - version: 1.171.14 - resolution: "@tanstack/router-core@npm:1.171.14" +"@tanstack/router-core@npm:1.171.15, @tanstack/router-core@npm:^1.171.14": + version: 1.171.15 + resolution: "@tanstack/router-core@npm:1.171.15" dependencies: "@tanstack/history": "npm:1.162.0" cookie-es: "npm:^3.0.0" seroval: "npm:^1.5.4" seroval-plugins: "npm:^1.5.4" - checksum: 10c0/cda8eee02d95282e588050edbfa2125ed4724030a8c3f44eefe6fcdd4a1687234f305a1e76e8a00f291105e24290866cef231b7eebfeed756603c1c81963b1fb + checksum: 10c0/6134958348a422831b5894eb0eae7657754094f65fe005ad573fd2ff522c9d928edf1f6dd24fd1ee74a857b952630472a681c3e23d3fc338e8f51d17d0b55bf8 languageName: node linkType: hard @@ -7915,38 +8324,38 @@ __metadata: languageName: node linkType: hard -"@tanstack/router-generator@npm:1.167.18": - version: 1.167.18 - resolution: "@tanstack/router-generator@npm:1.167.18" +"@tanstack/router-generator@npm:1.167.19": + version: 1.167.19 + resolution: "@tanstack/router-generator@npm:1.167.19" dependencies: "@babel/types": "npm:^7.28.5" - "@tanstack/router-core": "npm:1.171.14" + "@tanstack/router-core": "npm:1.171.15" "@tanstack/router-utils": "npm:1.162.2" "@tanstack/virtual-file-routes": "npm:1.162.0" jiti: "npm:^2.7.0" magic-string: "npm:^0.30.21" prettier: "npm:^3.5.0" zod: "npm:^4.4.3" - checksum: 10c0/e4d1878d96df93923f5ccdbbdfc4a8d7e6d72c58a4ec6601bda248a37dfa03360c141e89d439d3739eabfe8d515f707a45f6aa543adbeab9aa44a7042c90579c + checksum: 10c0/174aef6a191d8a5db0f327f52d6ef5f08905725d5820b9d5524854f55e56efba4da4e0370e24888eb6d54fa2bb5f5d8fa8c3f5d4cfd918b8565dc8b450389a67 languageName: node linkType: hard "@tanstack/router-plugin@npm:^1.168.19": - version: 1.168.19 - resolution: "@tanstack/router-plugin@npm:1.168.19" + version: 1.168.20 + resolution: "@tanstack/router-plugin@npm:1.168.20" dependencies: "@babel/core": "npm:^7.28.5" "@babel/template": "npm:^7.27.2" "@babel/types": "npm:^7.28.5" - "@tanstack/router-core": "npm:1.171.14" - "@tanstack/router-generator": "npm:1.167.18" + "@tanstack/router-core": "npm:1.171.15" + "@tanstack/router-generator": "npm:1.167.19" "@tanstack/router-utils": "npm:1.162.2" chokidar: "npm:^5.0.0" unplugin: "npm:^3.0.0" zod: "npm:^4.4.3" peerDependencies: "@rsbuild/core": ">=1.0.2 || ^2.0.0" - "@tanstack/react-router": ^1.170.17 + "@tanstack/react-router": ^1.170.18 vite: ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0" vite-plugin-solid: ^2.11.10 || ^3.0.0-0 webpack: ">=5.92.0" @@ -7961,7 +8370,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/a72a2ca70f1f98475d7b3cdd5c496f84f77e6c808805281bcf199c443865be4ec14f1d80529ce9ba00204a14d7b87936040738dfb8df3bdf03bae8c805a265af + checksum: 10c0/45bdbe7969299893e6f44653a9fe09a1a1041ae21607d24a1e0f1a02e3d1dfcd72b2b1b97257f65db9a0cda966c697db879633e00ce885879500a1d3ab31600f languageName: node linkType: hard @@ -8011,6 +8420,22 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:^10.4.1": + version: 10.4.1 + resolution: "@testing-library/dom@npm:10.4.1" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + picocolors: "npm:1.1.1" + pretty-format: "npm:^27.0.2" + checksum: 10c0/19ce048012d395ad0468b0dbcc4d0911f6f9e39464d7a8464a587b29707eed5482000dad728f5acc4ed314d2f4d54f34982999a114d2404f36d048278db815b1 + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^6.9.1": version: 6.9.1 resolution: "@testing-library/jest-dom@npm:6.9.1" @@ -8112,6 +8537,13 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10c0/dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 + languageName: node + linkType: hard + "@types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -8171,6 +8603,15 @@ __metadata: languageName: node linkType: hard +"@types/bn.js@npm:^5.1.0": + version: 5.2.0 + resolution: "@types/bn.js@npm:5.2.0" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/7a36114b8e61faba5c28b433c3e5aabded261745dabb8f3fe41b2d84e8c4c2b8282e52a88a842bd31a565ff5dbf685145ccd91171f1a8d657fb249025c17aa85 + languageName: node + linkType: hard + "@types/body-parser@npm:*": version: 1.19.6 resolution: "@types/body-parser@npm:1.19.6" @@ -8209,7 +8650,7 @@ __metadata: languageName: node linkType: hard -"@types/cookiejar@npm:^2.1.5": +"@types/cookiejar@npm:*, @types/cookiejar@npm:^2.1.5": version: 2.1.5 resolution: "@types/cookiejar@npm:2.1.5" checksum: 10c0/af38c3d84aebb3ccc6e46fb6afeeaac80fb26e63a487dd4db5a8b87e6ad3d4b845ba1116b2ae90d6f886290a36200fa433d8b1f6fe19c47da6b81872ce9a2764 @@ -8417,7 +8858,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:25.9.4, @types/node@npm:^25.9.4": +"@types/node@npm:25.9.4": version: 25.9.4 resolution: "@types/node@npm:25.9.4" dependencies: @@ -8444,6 +8885,24 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^25.9.3": + version: 25.9.3 + resolution: "@types/node@npm:25.9.3" + dependencies: + undici-types: "npm:>=7.24.0 <7.24.7" + checksum: 10c0/72d3aece9d42c2c641bcd3f3cb2dc2828b4bd384dfcbd910c404b8859a68bd69d50c4769ce7defd4ff5e049768e23e615f09407ea2cbbb5f44b90d75a7c6b8ca + languageName: node + linkType: hard + +"@types/node@npm:^25.9.4": + version: 25.9.5 + resolution: "@types/node@npm:25.9.5" + dependencies: + undici-types: "npm:>=7.24.0 <7.24.7" + checksum: 10c0/addbfe55f14d6a7f149a8796c2fca68463ac6caf911c623f552d07385691d36c0669a9c38724350d0e958131827d59a63c18781e753dede8113a903dd62b7932 + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -8451,12 +8910,21 @@ __metadata: languageName: node linkType: hard -"@types/pg@npm:^8.20.0": - version: 8.20.0 - resolution: "@types/pg@npm:8.20.0" +"@types/pbkdf2@npm:^3.0.0": + version: 3.1.2 + resolution: "@types/pbkdf2@npm:3.1.2" dependencies: "@types/node": "npm:*" - pg-protocol: "npm:*" + checksum: 10c0/4f60b0e3c73297f55023b993d3d543212aa7f61c8c0d6a2720f5dbe2cf38e2fe55ff295d550ac048dddbfc3d44c285cfe16126d65c613bd67a57662357e268d9 + languageName: node + linkType: hard + +"@types/pg@npm:^8.20.0": + version: 8.20.0 + resolution: "@types/pg@npm:8.20.0" + dependencies: + "@types/node": "npm:*" + pg-protocol: "npm:*" pg-types: "npm:^2.2.0" checksum: 10c0/c8b5aa794ea074aa20d0c1ef6c721ce0fe16f2c084d0ccc32b7f12909a08ec969e6b01a094ce8e7019cc425381c4b59f261bd0133daf0c6d4aca5c6c492e8312 languageName: node @@ -8526,6 +8994,15 @@ __metadata: languageName: node linkType: hard +"@types/secp256k1@npm:^4.0.1": + version: 4.0.7 + resolution: "@types/secp256k1@npm:4.0.7" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/3e4a22bb699597adc723414a841d2e8a1fa71c95c3d018c6a2dd8482500b6e9fe2d78d87e758f18c1aabe333cac22ac2a96f456e3bc147df30b7fac4e6346618 + languageName: node + linkType: hard + "@types/send@npm:*": version: 1.2.1 resolution: "@types/send@npm:1.2.1" @@ -8573,6 +9050,16 @@ __metadata: languageName: node linkType: hard +"@types/superagent@npm:4.1.15": + version: 4.1.15 + resolution: "@types/superagent@npm:4.1.15" + dependencies: + "@types/cookiejar": "npm:*" + "@types/node": "npm:*" + checksum: 10c0/73d624d82c2d8e094706af6b9b23b8d938d4013270e0276cc372c730a4d7495fedc62e0dbc1d0e35d3c224e73c71ca312339c8b09ad44825c71037e5c9d72843 + languageName: node + linkType: hard + "@types/superagent@npm:^8.1.0": version: 8.1.9 resolution: "@types/superagent@npm:8.1.9" @@ -8651,39 +9138,39 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.63.0" +"@typescript-eslint/eslint-plugin@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.64.0" dependencies: "@eslint-community/regexpp": "npm:^4.12.2" - "@typescript-eslint/scope-manager": "npm:8.63.0" - "@typescript-eslint/type-utils": "npm:8.63.0" - "@typescript-eslint/utils": "npm:8.63.0" - "@typescript-eslint/visitor-keys": "npm:8.63.0" + "@typescript-eslint/scope-manager": "npm:8.64.0" + "@typescript-eslint/type-utils": "npm:8.64.0" + "@typescript-eslint/utils": "npm:8.64.0" + "@typescript-eslint/visitor-keys": "npm:8.64.0" ignore: "npm:^7.0.5" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^2.5.0" peerDependencies: - "@typescript-eslint/parser": ^8.63.0 + "@typescript-eslint/parser": ^8.64.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/906a406d85ad80cbe06cb688d4382c34dfb36ebfbd710814f7f9651265b88cf53684ee5275a402eb0eb1243628c504019714f00c1331e54d499cdc7d7c14b5ba + checksum: 10c0/c4b77c05eb2284842583dbc6a0096c50b8f6a73696c431dbf78da555ca1a84f7504d089058e7a7daa2a5f9ebab89523ddfcfd561a2111aeb166a8e862d1801b3 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.63.0, @typescript-eslint/parser@npm:^8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/parser@npm:8.63.0" +"@typescript-eslint/parser@npm:8.64.0, @typescript-eslint/parser@npm:^8.63.0": + version: 8.64.0 + resolution: "@typescript-eslint/parser@npm:8.64.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.63.0" - "@typescript-eslint/types": "npm:8.63.0" - "@typescript-eslint/typescript-estree": "npm:8.63.0" - "@typescript-eslint/visitor-keys": "npm:8.63.0" + "@typescript-eslint/scope-manager": "npm:8.64.0" + "@typescript-eslint/types": "npm:8.64.0" + "@typescript-eslint/typescript-estree": "npm:8.64.0" + "@typescript-eslint/visitor-keys": "npm:8.64.0" debug: "npm:^4.4.3" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/28fd1db23ff16627936a0d630c6761df1d17046147b6e0ce6a144d60c0fbeddc756c3208e552f9e53c4d6a35f554205f7de3184b1ab45220a2fbc3bb8d1ac62b + checksum: 10c0/a5a89fd21775ebb9d31a6a5e191a16f03515e34629271c33b96c4587b25e4c2c59988d50bf3dbed68fad9151fc5acdfac3eaf42b004dfcea6e3cc84257e85775 languageName: node linkType: hard @@ -8700,16 +9187,16 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/project-service@npm:8.63.0" +"@typescript-eslint/project-service@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/project-service@npm:8.64.0" dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.63.0" - "@typescript-eslint/types": "npm:^8.63.0" + "@typescript-eslint/tsconfig-utils": "npm:^8.64.0" + "@typescript-eslint/types": "npm:^8.64.0" debug: "npm:^4.4.3" peerDependencies: typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/d49ce51b128d83a0e87e01d7a30f2295d77713d913abddc817df7ac3aeb1333b5dbb0c634ad0d0941f51cdd84ad86a036178b90bb370aa819ff59082377ca0ee + checksum: 10c0/855138c17134b7eaa200bb0e6d5acbf7e2190a1bf20e32fe3613461b90bfac5f3716cd261309c3d139d726c72a77ce5e876aa89ac320ad481c9e6f6ebaf2e66c languageName: node linkType: hard @@ -8723,13 +9210,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/scope-manager@npm:8.63.0" +"@typescript-eslint/scope-manager@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/scope-manager@npm:8.64.0" dependencies: - "@typescript-eslint/types": "npm:8.63.0" - "@typescript-eslint/visitor-keys": "npm:8.63.0" - checksum: 10c0/394245a25f852170adbdaaca9364d5d36a0e97e69e691e5594d5a3ced892a7eb78cf6e7a17cbc095490a168b60bb3ad6f6d48cd167c4b9cbc568bf0f785ab926 + "@typescript-eslint/types": "npm:8.64.0" + "@typescript-eslint/visitor-keys": "npm:8.64.0" + checksum: 10c0/1f1bcad7fcaf3d12af9d398046be3718333546c0a8967d823e21d2a008896b4afad9362450548f93dc2187e4c7444c8736a98448e6de3a26147404abc90abf0d languageName: node linkType: hard @@ -8742,28 +9229,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.63.0, @typescript-eslint/tsconfig-utils@npm:^8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.63.0" +"@typescript-eslint/tsconfig-utils@npm:8.64.0, @typescript-eslint/tsconfig-utils@npm:^8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.64.0" peerDependencies: typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/378a220fa5d0aaaf38887d667d1ddf8addfb7601af491230e77e32773158f9aad7723b8e25cebf0f95debc2217ca7b9ddf4e9ebd506e319fe1f9fe4244274013 + checksum: 10c0/701e39ea88a0cbcad5f9657aed973b97db09fe8d5a03df58e4a4ddf307975a9f8270b11f4dad4195c27c37cd335fc44b1437a782f15de3c81b2ec2b6ea0f548d languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/type-utils@npm:8.63.0" +"@typescript-eslint/type-utils@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/type-utils@npm:8.64.0" dependencies: - "@typescript-eslint/types": "npm:8.63.0" - "@typescript-eslint/typescript-estree": "npm:8.63.0" - "@typescript-eslint/utils": "npm:8.63.0" + "@typescript-eslint/types": "npm:8.64.0" + "@typescript-eslint/typescript-estree": "npm:8.64.0" + "@typescript-eslint/utils": "npm:8.64.0" debug: "npm:^4.4.3" ts-api-utils: "npm:^2.5.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/36f6ba389d05e57f2f1de0f21406a46694e39da83248d7d5eefb1601d6a37a3d2382ee6f1b1b0e63b78465d8d830eeaec1503aaefbad70b1030e59fb15307aae + checksum: 10c0/2012ee888bb57bd2b49f8b20ec7bed71a53a7ea6e60adaa4c67e282861058e9e952e426e3d872504ed7c4b2ad6ef3df6a81f60afe207f916f525968836d29ea8 languageName: node linkType: hard @@ -8790,10 +9277,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.63.0, @typescript-eslint/types@npm:^8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/types@npm:8.63.0" - checksum: 10c0/270bd2b2affdc173dd7e9e1bf1419a6f7a2fa8ff1fca5c613da88f6e44c433a1412887e513d24233a4a6112bdc3439d3e4cadc4f492eb1a6dc2a377495a38836 +"@typescript-eslint/types@npm:8.64.0, @typescript-eslint/types@npm:^8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/types@npm:8.64.0" + checksum: 10c0/15ab2b38febfe9d01de801ddca277187e0525ee18c47c94c0d7babe27b69d5680a8e15c7dab5fdf97a050b15c2ab51385f11bc6d6db8264f5a834fa80a83bac1 languageName: node linkType: hard @@ -8816,14 +9303,14 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.63.0" +"@typescript-eslint/typescript-estree@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.64.0" dependencies: - "@typescript-eslint/project-service": "npm:8.63.0" - "@typescript-eslint/tsconfig-utils": "npm:8.63.0" - "@typescript-eslint/types": "npm:8.63.0" - "@typescript-eslint/visitor-keys": "npm:8.63.0" + "@typescript-eslint/project-service": "npm:8.64.0" + "@typescript-eslint/tsconfig-utils": "npm:8.64.0" + "@typescript-eslint/types": "npm:8.64.0" + "@typescript-eslint/visitor-keys": "npm:8.64.0" debug: "npm:^4.4.3" minimatch: "npm:^10.2.2" semver: "npm:^7.7.3" @@ -8831,7 +9318,7 @@ __metadata: ts-api-utils: "npm:^2.5.0" peerDependencies: typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/84ca87141a0e7d59fb91e7baef36e20d4f00f1996aec6dfb1909c40496f13e54a13102c12b7cbe89285d04ca7975faa64d5683ff0d44ec9baa7be5207540142c + checksum: 10c0/d6df6990f0381845c3d27b39290a4cae771de937ea8b7bec95a438d89ad5697208b4a1eb96bcc04498c9950882d33a66216a38295ac04b2de24d76cc74a79a0a languageName: node linkType: hard @@ -8850,18 +9337,18 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/utils@npm:8.63.0" +"@typescript-eslint/utils@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/utils@npm:8.64.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.9.1" - "@typescript-eslint/scope-manager": "npm:8.63.0" - "@typescript-eslint/types": "npm:8.63.0" - "@typescript-eslint/typescript-estree": "npm:8.63.0" + "@typescript-eslint/scope-manager": "npm:8.64.0" + "@typescript-eslint/types": "npm:8.64.0" + "@typescript-eslint/typescript-estree": "npm:8.64.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/1b0bb66c2dc11d7c3ea4e840294e35062e5f85b6d1d7d94b37e94e52a2fa71e76adf277602a183832c23d3deeb1f129d7aeb3ce960c1fc9b6d1136a4d61bd54a + checksum: 10c0/3d734a9fd20db6895e5501abd667a7db6c39d5f4a0430ddb6b415be8271886742467a5a18eefd33d1fb2217740ef61f0cf282b28c653964b0a7d568ba70bebd2 languageName: node linkType: hard @@ -8875,13 +9362,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.63.0": - version: 8.63.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.63.0" +"@typescript-eslint/visitor-keys@npm:8.64.0": + version: 8.64.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.64.0" dependencies: - "@typescript-eslint/types": "npm:8.63.0" + "@typescript-eslint/types": "npm:8.64.0" eslint-visitor-keys: "npm:^5.0.0" - checksum: 10c0/595b47b08efecc35d93a8ac072798f9dc2371a371f03a1a03ab134a8505fe422fc647014bd096eac75a3d487c5eecf24393048ca88ed06f759d00115c11dd8bc + checksum: 10c0/23a5695c5d4ae876ea9a18cdce912ad7a9793f6fe5892da35f0adf3eefd6e39c5742095606329639eb64a4e44ca2810e23fd3a24c067eacec1bd4feebe293374 languageName: node linkType: hard @@ -8995,6 +9482,30 @@ __metadata: languageName: node linkType: hard +"@vitest/coverage-v8@npm:^4.1.8": + version: 4.1.8 + resolution: "@vitest/coverage-v8@npm:4.1.8" + dependencies: + "@bcoe/v8-coverage": "npm:^1.0.2" + "@vitest/utils": "npm:4.1.8" + ast-v8-to-istanbul: "npm:^1.0.0" + istanbul-lib-coverage: "npm:^3.2.2" + istanbul-lib-report: "npm:^3.0.1" + istanbul-reports: "npm:^3.2.0" + magicast: "npm:^0.5.2" + obug: "npm:^2.1.1" + std-env: "npm:^4.0.0-rc.1" + tinyrainbow: "npm:^3.1.0" + peerDependencies: + "@vitest/browser": 4.1.8 + vitest: 4.1.8 + peerDependenciesMeta: + "@vitest/browser": + optional: true + checksum: 10c0/e3419115fa413e19bda5edd72c8394b255d418af75278b2cd74341257399f8e5921f78b966a547ba8d67ac8268ccdd5af019230084cc1b9a3fc8fae8283ae76b + languageName: node + linkType: hard + "@vitest/expect@npm:3.2.4": version: 3.2.4 resolution: "@vitest/expect@npm:3.2.4" @@ -9022,6 +9533,20 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/expect@npm:4.1.8" + dependencies: + "@standard-schema/spec": "npm:^1.1.0" + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:4.1.8" + "@vitest/utils": "npm:4.1.8" + chai: "npm:^6.2.2" + tinyrainbow: "npm:^3.1.0" + checksum: 10c0/f7bf6c720d2427c3bd0b35472ebd84d963be7d09ecf52a0fb05e8c4d5d0c9ee164a8c28eee6360947be1b245b47faefab54560cb98e5cb678c1c1074260b9149 + languageName: node + linkType: hard + "@vitest/mocker@npm:4.1.10": version: 4.1.10 resolution: "@vitest/mocker@npm:4.1.10" @@ -9041,6 +9566,25 @@ __metadata: languageName: node linkType: hard +"@vitest/mocker@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/mocker@npm:4.1.8" + dependencies: + "@vitest/spy": "npm:4.1.8" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.21" + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/f8cb2b8b55dc2cba0b2399aeee528b0187042f22cbc2d50a4fd6141f5aa246ebc41700f45dd1d73eca44ddfb57dcde48b2eb317bfbb1198f5ab2cc4fd04b2ea0 + languageName: node + linkType: hard + "@vitest/pretty-format@npm:3.2.4": version: 3.2.4 resolution: "@vitest/pretty-format@npm:3.2.4" @@ -9068,6 +9612,15 @@ __metadata: languageName: node linkType: hard +"@vitest/pretty-format@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/pretty-format@npm:4.1.8" + dependencies: + tinyrainbow: "npm:^3.1.0" + checksum: 10c0/553c456692a4b9ae13cd116c234c74b4495e0f1a0d5c51ffc3fab8ea085e3550769967e29db79bdac0cf127b1bf88b7f70bfba3dcc72be6bddf834433e30cc91 + languageName: node + linkType: hard + "@vitest/runner@npm:4.1.10": version: 4.1.10 resolution: "@vitest/runner@npm:4.1.10" @@ -9078,6 +9631,16 @@ __metadata: languageName: node linkType: hard +"@vitest/runner@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/runner@npm:4.1.8" + dependencies: + "@vitest/utils": "npm:4.1.8" + pathe: "npm:^2.0.3" + checksum: 10c0/706808a4b7b95ea9a9268fc152dd39e15a9a754f37c7990aea167486a9094caa913dae454771ae02c18dccfabd667f8cc38eed33a1307a79d32a89878b5bcce1 + languageName: node + linkType: hard + "@vitest/snapshot@npm:4.1.10": version: 4.1.10 resolution: "@vitest/snapshot@npm:4.1.10" @@ -9090,6 +9653,18 @@ __metadata: languageName: node linkType: hard +"@vitest/snapshot@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/snapshot@npm:4.1.8" + dependencies: + "@vitest/pretty-format": "npm:4.1.8" + "@vitest/utils": "npm:4.1.8" + magic-string: "npm:^0.30.21" + pathe: "npm:^2.0.3" + checksum: 10c0/ba4c32112491d42d24986f921c50ede5edbdb4b7eafa16c72cf8d2c9ecc44121fdb3d9365236747a9841f0d6776affc6457470fcbb082df9dbc28c24792a0c6d + languageName: node + linkType: hard + "@vitest/spy@npm:3.2.4": version: 3.2.4 resolution: "@vitest/spy@npm:3.2.4" @@ -9106,6 +9681,13 @@ __metadata: languageName: node linkType: hard +"@vitest/spy@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/spy@npm:4.1.8" + checksum: 10c0/3c10c0325a09d16bc0e77c0be96c47c15416186e33332880c0d1dd0a51d51a866091067b81f2a2ef6fb422a7760e6cf15c04d91a0eca4d59f62e8c8401fa53fc + languageName: node + linkType: hard + "@vitest/utils@npm:3.2.4": version: 3.2.4 resolution: "@vitest/utils@npm:3.2.4" @@ -9139,6 +9721,17 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:4.1.8": + version: 4.1.8 + resolution: "@vitest/utils@npm:4.1.8" + dependencies: + "@vitest/pretty-format": "npm:4.1.8" + convert-source-map: "npm:^2.0.0" + tinyrainbow: "npm:^3.1.0" + checksum: 10c0/acda9d3d640c1ebc81afb358ac30589d7d7d583af81e2d09419f0af9cbe41f3ce0b90527326943bf0da51614be5fc31afcd32259f6beb32b3417999d6ef380f3 + languageName: node + linkType: hard + "@volar/language-core@npm:2.4.28, @volar/language-core@npm:~2.4.11": version: 2.4.28 resolution: "@volar/language-core@npm:2.4.28" @@ -9484,6 +10077,13 @@ __metadata: languageName: node linkType: hard +"@wasmer/wasi@npm:^1.2.2": + version: 1.2.2 + resolution: "@wasmer/wasi@npm:1.2.2" + checksum: 10c0/2b4a34ae670fbace7b89d5d7ba3edb7ea5fee0612f0181ef7d9c8ca62d351a16567bfe1d355ccab45e5c078f61118b59825cdb333b7d1cf167a65c5ad95ad200 + languageName: node + linkType: hard + "@webcontainer/env@npm:^1.1.1": version: 1.1.1 resolution: "@webcontainer/env@npm:1.1.1" @@ -9498,164 +10098,164 @@ __metadata: languageName: node linkType: hard -"@yuku-codegen/binding-darwin-arm64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-darwin-arm64@npm:0.6.5" +"@yuku-codegen/binding-darwin-arm64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-darwin-arm64@npm:0.7.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@yuku-codegen/binding-darwin-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-darwin-x64@npm:0.6.5" +"@yuku-codegen/binding-darwin-x64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-darwin-x64@npm:0.7.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@yuku-codegen/binding-freebsd-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-freebsd-x64@npm:0.6.5" +"@yuku-codegen/binding-freebsd-x64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-freebsd-x64@npm:0.7.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@yuku-codegen/binding-linux-arm-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-linux-arm-gnu@npm:0.6.5" +"@yuku-codegen/binding-linux-arm-gnu@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-linux-arm-gnu@npm:0.7.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@yuku-codegen/binding-linux-arm-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-linux-arm-musl@npm:0.6.5" +"@yuku-codegen/binding-linux-arm-musl@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-linux-arm-musl@npm:0.7.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@yuku-codegen/binding-linux-arm64-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-linux-arm64-gnu@npm:0.6.5" +"@yuku-codegen/binding-linux-arm64-gnu@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-linux-arm64-gnu@npm:0.7.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@yuku-codegen/binding-linux-arm64-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-linux-arm64-musl@npm:0.6.5" +"@yuku-codegen/binding-linux-arm64-musl@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-linux-arm64-musl@npm:0.7.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@yuku-codegen/binding-linux-x64-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-linux-x64-gnu@npm:0.6.5" +"@yuku-codegen/binding-linux-x64-gnu@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-linux-x64-gnu@npm:0.7.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@yuku-codegen/binding-linux-x64-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-linux-x64-musl@npm:0.6.5" +"@yuku-codegen/binding-linux-x64-musl@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-linux-x64-musl@npm:0.7.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@yuku-codegen/binding-win32-arm64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-win32-arm64@npm:0.6.5" +"@yuku-codegen/binding-win32-arm64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-win32-arm64@npm:0.7.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@yuku-codegen/binding-win32-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-codegen/binding-win32-x64@npm:0.6.5" +"@yuku-codegen/binding-win32-x64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-codegen/binding-win32-x64@npm:0.7.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@yuku-parser/binding-darwin-arm64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-darwin-arm64@npm:0.6.5" +"@yuku-parser/binding-darwin-arm64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-darwin-arm64@npm:0.7.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@yuku-parser/binding-darwin-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-darwin-x64@npm:0.6.5" +"@yuku-parser/binding-darwin-x64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-darwin-x64@npm:0.7.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@yuku-parser/binding-freebsd-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-freebsd-x64@npm:0.6.5" +"@yuku-parser/binding-freebsd-x64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-freebsd-x64@npm:0.7.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@yuku-parser/binding-linux-arm-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-linux-arm-gnu@npm:0.6.5" +"@yuku-parser/binding-linux-arm-gnu@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-linux-arm-gnu@npm:0.7.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@yuku-parser/binding-linux-arm-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-linux-arm-musl@npm:0.6.5" +"@yuku-parser/binding-linux-arm-musl@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-linux-arm-musl@npm:0.7.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@yuku-parser/binding-linux-arm64-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-linux-arm64-gnu@npm:0.6.5" +"@yuku-parser/binding-linux-arm64-gnu@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-linux-arm64-gnu@npm:0.7.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@yuku-parser/binding-linux-arm64-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-linux-arm64-musl@npm:0.6.5" +"@yuku-parser/binding-linux-arm64-musl@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-linux-arm64-musl@npm:0.7.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@yuku-parser/binding-linux-x64-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-linux-x64-gnu@npm:0.6.5" +"@yuku-parser/binding-linux-x64-gnu@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-linux-x64-gnu@npm:0.7.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@yuku-parser/binding-linux-x64-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-linux-x64-musl@npm:0.6.5" +"@yuku-parser/binding-linux-x64-musl@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-linux-x64-musl@npm:0.7.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@yuku-parser/binding-win32-arm64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-win32-arm64@npm:0.6.5" +"@yuku-parser/binding-win32-arm64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-win32-arm64@npm:0.7.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@yuku-parser/binding-win32-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@yuku-parser/binding-win32-x64@npm:0.6.5" +"@yuku-parser/binding-win32-x64@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-parser/binding-win32-x64@npm:0.7.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@yuku-toolchain/types@npm:0.5.43": - version: 0.5.43 - resolution: "@yuku-toolchain/types@npm:0.5.43" - checksum: 10c0/d06dc8fb9b128a3b70e3a1076c08c442c1052c5a28abc68ba96aa12bd3386c1cbb6f1d874fb0cfb13ce3a8c1b6f8148a9695f25400a944ae17b7a85fd67ff131 +"@yuku-toolchain/types@npm:0.7.0": + version: 0.7.0 + resolution: "@yuku-toolchain/types@npm:0.7.0" + checksum: 10c0/514ec68a29d47dc8d36e3f5f764b9c9cf5b773f5e01e012bbee75239ab0943299e0c6adfd796aadf6fdfc67a69253d69f8a968238a193033d8c38f03c4323f05 languageName: node linkType: hard @@ -9971,6 +10571,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df + languageName: node + linkType: hard + "ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.3 resolution: "ansi-styles@npm:6.2.3" @@ -9999,6 +10606,13 @@ __metadata: languageName: node linkType: hard +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 + languageName: node + linkType: hard + "anymatch@npm:^3.1.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -10062,6 +10676,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:5.3.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: "npm:^2.0.3" + checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 + languageName: node + linkType: hard + "aria-query@npm:^5.0.0": version: 5.3.2 resolution: "aria-query@npm:5.3.2" @@ -10097,6 +10720,18 @@ __metadata: languageName: node linkType: hard +"asn1.js@npm:^5.0.0": + version: 5.4.1 + resolution: "asn1.js@npm:5.4.1" + dependencies: + bn.js: "npm:^4.0.0" + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + safer-buffer: "npm:^2.1.0" + checksum: 10c0/b577232fa6069cc52bb128e564002c62b2b1fe47f7137bdcd709c0b8495aa79cee0f8cc458a831b2d8675900eea0d05781b006be5e1aa4f0ae3577a73ec20324 + languageName: node + linkType: hard + "asn1@npm:^0.2.6": version: 0.2.6 resolution: "asn1@npm:0.2.6" @@ -10212,6 +10847,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2 + languageName: node + linkType: hard + "axios@npm:1.16.0": version: 1.16.0 resolution: "axios@npm:1.16.0" @@ -10223,7 +10867,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.18.1, axios@npm:^1.6.7": +"axios@npm:^1.18.1": version: 1.18.1 resolution: "axios@npm:1.18.1" dependencies: @@ -10235,6 +10879,18 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.6.7": + version: 1.17.0 + resolution: "axios@npm:1.17.0" + dependencies: + follow-redirects: "npm:^1.16.0" + form-data: "npm:^4.0.5" + https-proxy-agent: "npm:^5.0.1" + proxy-from-env: "npm:^2.1.0" + checksum: 10c0/c4fa19ff3a3a63bde48beec03ad816b133b9a6385cccffffe172577ab18c6a70e299280d57f12c80c867fe25df41f92cb91d3a8258708a6d2be3e9e085f92650 + languageName: node + linkType: hard + "b4a@npm:^1.6.4": version: 1.8.1 resolution: "b4a@npm:1.8.1" @@ -10437,6 +11093,15 @@ __metadata: languageName: node linkType: hard +"base-x@npm:^3.0.2": + version: 3.0.11 + resolution: "base-x@npm:3.0.11" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/4c5b8cd9cef285973b0460934be4fc890eedfd22a8aca527fac3527f041c5d1c912f7b9a6816f19e43e69dc7c29a5deabfa326bd3d6a57ee46af0ad46e3991d5 + languageName: node + linkType: hard + "base64-js@npm:1.5.1, base64-js@npm:^1.1.2, base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -10478,6 +11143,20 @@ __metadata: languageName: node linkType: hard +"bech32@npm:^1.1.3": + version: 1.1.4 + resolution: "bech32@npm:1.1.4" + checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5 + languageName: node + linkType: hard + +"bech32@npm:^2.0.0": + version: 2.0.0 + resolution: "bech32@npm:2.0.0" + checksum: 10c0/45e7cc62758c9b26c05161b4483f40ea534437cf68ef785abadc5b62a2611319b878fef4f86ddc14854f183b645917a19addebc9573ab890e19194bc8f521942 + languageName: node + linkType: hard + "better-sqlite3@npm:^12.11.1": version: 12.11.1 resolution: "better-sqlite3@npm:12.11.1" @@ -10489,6 +11168,50 @@ __metadata: languageName: node linkType: hard +"big.js@npm:^3.1.3": + version: 3.2.0 + resolution: "big.js@npm:3.2.0" + checksum: 10c0/de0b8e275171060a37846b521e8ebfe077c650532306c2470474da6720feb04351cc8588ef26088756b224923782946ae67e817b90122cc85692bbda7ccd2d0d + languageName: node + linkType: hard + +"bigi@npm:^1.4.2": + version: 1.4.2 + resolution: "bigi@npm:1.4.2" + checksum: 10c0/59acf628a3bd27ea032a1a9257dc6aa759483ed97d65e1cbf094aa2e1f762ec0ec8f86173a5095ff0da42cc53e481ece7cc9462e5ac5abb15efa060788c19ef7 + languageName: node + linkType: hard + +"bigint-crypto-utils@npm:3.1.4": + version: 3.1.4 + resolution: "bigint-crypto-utils@npm:3.1.4" + dependencies: + bigint-mod-arith: "npm:^3.1.0" + checksum: 10c0/574cc7faa70bf2ef1b27d352f1c03bb7247a7756c286d24038fb639d557d1046dcc9995ca892abf0619c7c270d0f58084f02deb81d610ce3f1f1e1abb49e40ad + languageName: node + linkType: hard + +"bigint-crypto-utils@npm:^3.0.17": + version: 3.3.0 + resolution: "bigint-crypto-utils@npm:3.3.0" + checksum: 10c0/7d06fa01d63e8e9513eee629fe8a426993276b1bdca5aefd0eb3188cee7026334d29e801ef6187a5bc6105ebf26e6e79e6fab544a7da769ccf55b913e66d2a14 + languageName: node + linkType: hard + +"bigint-mod-arith@npm:3.1.2": + version: 3.1.2 + resolution: "bigint-mod-arith@npm:3.1.2" + checksum: 10c0/918f0ec0226a174f3abb004aad1e1d1077ed9e849a5fa20ae92dd0c5ff0e236ea905a96b74a4c79a46f51a48f2ad4e091630791b26e94dd94484bd58e87fbb71 + languageName: node + linkType: hard + +"bigint-mod-arith@npm:^3.1.0": + version: 3.3.1 + resolution: "bigint-mod-arith@npm:3.3.1" + checksum: 10c0/13e1570ea82de03d929e59182c1d829c5c12c2caffdb977a27054706809f0b28f09f6648690e23723e611d14cb2844b9ec419e4348cf96f86215e693d7223067 + languageName: node + linkType: hard + "bignumber.js@npm:^10.0.2": version: 10.0.2 resolution: "bignumber.js@npm:10.0.2" @@ -10496,7 +11219,7 @@ __metadata: languageName: node linkType: hard -"bignumber.js@npm:^9.3.1": +"bignumber.js@npm:^9.1.1, bignumber.js@npm:^9.3.1": version: 9.3.1 resolution: "bignumber.js@npm:9.3.1" checksum: 10c0/61342ba5fe1c10887f0ecf5be02ff6709271481aff48631f86b4d37d55a99b87ce441cfd54df3d16d10ee07ceab7e272fc0be430c657ffafbbbf7b7d631efb75 @@ -10519,6 +11242,27 @@ __metadata: languageName: node linkType: hard +"bip174@npm:@bitgo-forks/bip174@3.1.0-master.4": + version: 3.1.0-master.4 + resolution: "@bitgo-forks/bip174@npm:3.1.0-master.4" + checksum: 10c0/c09e436e4449b29e67ba708de7b187033cd0d5e52625794d018f6273bd5b41fd8f4a6cd660080fa5cae072a1d83e8a1645b0716384a3fd30d26f8d3adfe9b68c + languageName: node + linkType: hard + +"bip32@npm:^3.0.1": + version: 3.1.0 + resolution: "bip32@npm:3.1.0" + dependencies: + bs58check: "npm:^2.1.1" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + ripemd160: "npm:^2.0.2" + typeforce: "npm:^1.11.5" + wif: "npm:^2.0.6" + checksum: 10c0/eb580eb4bc8f777f3ab99c77d8f35d260395e6885d672a8e291c67e1638404c0b61fa368d3ed4309d83ba29ff450fd70aef4c22b688f044211a36dccc285d3f5 + languageName: node + linkType: hard + "bip39@npm:^3.1.0": version: 3.1.0 resolution: "bip39@npm:3.1.0" @@ -10528,6 +11272,45 @@ __metadata: languageName: node linkType: hard +"bitcoin-ops@npm:^1.3.0": + version: 1.4.1 + resolution: "bitcoin-ops@npm:1.4.1" + checksum: 10c0/979915a8c9e0d2df2e28abdc22943dcaba692f80bd213c5bb2112c2570c9016452e622ef1425d9494c56f3bf335eb5058d66916945604fd0eca6bb6afd527ee8 + languageName: node + linkType: hard + +"bitcoinjs-lib@npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.11": + version: 7.1.0-master.11 + resolution: "@bitgo-forks/bitcoinjs-lib@npm:7.1.0-master.11" + dependencies: + bech32: "npm:^2.0.0" + bip174: "npm:@bitgo-forks/bip174@3.1.0-master.4" + bs58check: "npm:^2.1.2" + create-hash: "npm:^1.1.0" + fastpriorityqueue: "npm:^0.7.1" + json5: "npm:^2.2.3" + ripemd160: "npm:^2.0.2" + typeforce: "npm:^1.11.3" + varuint-bitcoin: "npm:^1.1.2" + wif: "npm:^2.0.1" + checksum: 10c0/d25f7f1ea3579588c66370d52ba25ddc574c780bad0600aabc70c274ab7acf55f46a645009fba4c11beaef97a618c648f9ef0a57b86f6348397f8c4238e19b98 + languageName: node + linkType: hard + +"bitcoinjs-message@npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.3": + version: 1.0.0-master.3 + resolution: "@bitgo-forks/bitcoinjs-message@npm:1.0.0-master.3" + dependencies: + bech32: "npm:^1.1.3" + bs58check: "npm:^2.1.2" + buffer-equals: "npm:^1.0.3" + create-hash: "npm:^1.1.2" + secp256k1: "npm:5.0.1" + varuint-bitcoin: "npm:^1.0.1" + checksum: 10c0/68dfdf11743e94f5f08b4f45822ffce47532526021c41f737c6a16e06479c4eb4154ee2af413d0507dc5fd8d29baf524750ca709f1001d2b22fc89f6b47b1dcd + languageName: node + linkType: hard + "bl@npm:4.1.0, bl@npm:^4.0.3": version: 4.1.0 resolution: "bl@npm:4.1.0" @@ -10539,7 +11322,7 @@ __metadata: languageName: node linkType: hard -"blakejs@npm:1.2.1": +"blakejs@npm:1.2.1, blakejs@npm:^1.1.0": version: 1.2.1 resolution: "blakejs@npm:1.2.1" checksum: 10c0/c284557ce55b9c70203f59d381f1b85372ef08ee616a90162174d1291a45d3e5e809fdf9edab6e998740012538515152471dc4f1f9dbfa974ba2b9c1f7b9aad7 @@ -10553,6 +11336,20 @@ __metadata: languageName: node linkType: hard +"bn.js@npm:^4.0.0, bn.js@npm:^4.11.9": + version: 4.12.4 + resolution: "bn.js@npm:4.12.4" + checksum: 10c0/27e773799df0701b4da72f9b18440afb6867c8e95b44dc1df91a03229f2f11429040faf292aeed08db699885252a823c32215daaf6917750649efb3e689695e8 + languageName: node + linkType: hard + +"bn.js@npm:^5.1.2, bn.js@npm:^5.2.0": + version: 5.2.4 + resolution: "bn.js@npm:5.2.4" + checksum: 10c0/2f681ab7f075429892b28627bbbdff70e145103cf45815a3ffd161531f9f0207256af1803a6472798a4f04a4c1e3a83aead4cfdb476588dfbd38098d5d61df4c + languageName: node + linkType: hard + "bodec@npm:^0.1.0": version: 0.1.0 resolution: "bodec@npm:0.1.0" @@ -10561,8 +11358,8 @@ __metadata: linkType: hard "body-parser@npm:^1.19.0": - version: 1.20.6 - resolution: "body-parser@npm:1.20.6" + version: 1.20.4 + resolution: "body-parser@npm:1.20.4" dependencies: bytes: "npm:~3.1.2" content-type: "npm:~1.0.5" @@ -10572,11 +11369,11 @@ __metadata: http-errors: "npm:~2.0.1" iconv-lite: "npm:~0.4.24" on-finished: "npm:~2.4.1" - qs: "npm:~6.15.1" + qs: "npm:~6.14.0" raw-body: "npm:~2.5.3" type-is: "npm:~1.6.18" unpipe: "npm:~1.0.0" - checksum: 10c0/ad477209f1e714c41fa892a7d2fe22e10b23262103cc25cc6492dd3e6f7869cd2d8b00928b543a1a14d3c3663432452a192efd00422fad6f3687b0e38f7e3b07 + checksum: 10c0/569c1e896297d1fcd8f34026c8d0ab70b90d45343c15c5d8dff5de2bad08125fc1e2f8c2f3f4c1ac6c0caaad115218202594d37dcb8d89d9b5dcae1c2b736aa9 languageName: node linkType: hard @@ -10666,6 +11463,13 @@ __metadata: languageName: node linkType: hard +"brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571 + languageName: node + linkType: hard + "brotli@npm:1.3.3": version: 1.3.3 resolution: "brotli@npm:1.3.3" @@ -10675,6 +11479,20 @@ __metadata: languageName: node linkType: hard +"browserify-aes@npm:^1.2.0": + version: 1.2.0 + resolution: "browserify-aes@npm:1.2.0" + dependencies: + buffer-xor: "npm:^1.0.3" + cipher-base: "npm:^1.0.0" + create-hash: "npm:^1.1.0" + evp_bytestokey: "npm:^1.0.3" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18 + languageName: node + linkType: hard + "browserslist@npm:^4.24.0, browserslist@npm:^4.28.1": version: 4.28.1 resolution: "browserslist@npm:4.28.1" @@ -10690,6 +11508,26 @@ __metadata: languageName: node linkType: hard +"bs58@npm:^4.0.0, bs58@npm:^4.0.1": + version: 4.0.1 + resolution: "bs58@npm:4.0.1" + dependencies: + base-x: "npm:^3.0.2" + checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65 + languageName: node + linkType: hard + +"bs58check@npm:<3.0.0, bs58check@npm:^2.1.1, bs58check@npm:^2.1.2": + version: 2.1.2 + resolution: "bs58check@npm:2.1.2" + dependencies: + bs58: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9 + languageName: node + linkType: hard + "buffer-crc32@npm:^1.0.0": version: 1.0.0 resolution: "buffer-crc32@npm:1.0.0" @@ -10711,6 +11549,13 @@ __metadata: languageName: node linkType: hard +"buffer-equals@npm:^1.0.3": + version: 1.0.4 + resolution: "buffer-equals@npm:1.0.4" + checksum: 10c0/ea79e067167e9df058f97960848aed1d3ce4507ae1162925a89c9e1e01b380e74579f10891bc34ade9f9ff013a8cf129956bad1e5818bb71888b8174d05d867b + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -10718,6 +11563,13 @@ __metadata: languageName: node linkType: hard +"buffer-xor@npm:^1.0.3": + version: 1.0.3 + resolution: "buffer-xor@npm:1.0.3" + checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c + languageName: node + linkType: hard + "buffer@npm:5.7.1, buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" @@ -10754,6 +11606,17 @@ __metadata: languageName: node linkType: hard +"bundle-require@npm:^5.1.0": + version: 5.1.0 + resolution: "bundle-require@npm:5.1.0" + dependencies: + load-tsconfig: "npm:^0.2.3" + peerDependencies: + esbuild: ">=0.18" + checksum: 10c0/8bff9df68eb686f05af952003c78e70ffed2817968f92aebb2af620cc0b7428c8154df761d28f1b38508532204278950624ef86ce63644013dc57660a9d1810f + languageName: node + linkType: hard + "byline@npm:^5.0.0": version: 5.0.0 resolution: "byline@npm:5.0.0" @@ -10768,6 +11631,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 + languageName: node + linkType: hard + "cac@npm:^7.0.0": version: 7.0.0 resolution: "cac@npm:7.0.0" @@ -10804,7 +11674,19 @@ __metadata: languageName: node linkType: hard -"call-bound@npm:^1.0.2": +"call-bind@npm:^1.0.9": + version: 1.0.9 + resolution: "call-bind@npm:1.0.9" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + get-intrinsic: "npm:^1.3.0" + set-function-length: "npm:^1.2.2" + checksum: 10c0/a6621f6da1444481919ce3b4983dff725691e0754d3507ae483ce56e54985f2da7d6f1df512c56dbf28660745cf1ca52553f1fc9aef5557f3ce353ef14fab714 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4": version: 1.0.4 resolution: "call-bound@npm:1.0.4" dependencies: @@ -10875,6 +11757,58 @@ __metadata: languageName: node linkType: hard +"cashaddress@npm:^1.1.0": + version: 1.1.0 + resolution: "cashaddress@npm:1.1.0" + dependencies: + bigi: "npm:^1.4.2" + checksum: 10c0/03d7a556b21ca3141c5a062406888f3d402ff2a967b3e17b4d907127d6c91856c97cd21e538f799342a103357784a467277e1158dc06d967021085d55ee11872 + languageName: node + linkType: hard + +"cbor-extract@npm:^2.2.0": + version: 2.2.2 + resolution: "cbor-extract@npm:2.2.2" + dependencies: + "@cbor-extract/cbor-extract-darwin-arm64": "npm:2.2.2" + "@cbor-extract/cbor-extract-darwin-x64": "npm:2.2.2" + "@cbor-extract/cbor-extract-linux-arm": "npm:2.2.2" + "@cbor-extract/cbor-extract-linux-arm64": "npm:2.2.2" + "@cbor-extract/cbor-extract-linux-x64": "npm:2.2.2" + "@cbor-extract/cbor-extract-win32-x64": "npm:2.2.2" + node-gyp: "npm:latest" + node-gyp-build-optional-packages: "npm:5.1.1" + dependenciesMeta: + "@cbor-extract/cbor-extract-darwin-arm64": + optional: true + "@cbor-extract/cbor-extract-darwin-x64": + optional: true + "@cbor-extract/cbor-extract-linux-arm": + optional: true + "@cbor-extract/cbor-extract-linux-arm64": + optional: true + "@cbor-extract/cbor-extract-linux-x64": + optional: true + "@cbor-extract/cbor-extract-win32-x64": + optional: true + bin: + download-cbor-prebuilds: bin/download-prebuilds.js + checksum: 10c0/2559078c8c6ad2f25424fd50b9f81ce59138bb1ab483b82f2fd43c9531699a5cf3c87fe9e5ab2ffc244967bc2ff9546afa712fcedde485c617a34ff14f8fd90a + languageName: node + linkType: hard + +"cbor-x@npm:1.5.9": + version: 1.5.9 + resolution: "cbor-x@npm:1.5.9" + dependencies: + cbor-extract: "npm:^2.2.0" + dependenciesMeta: + cbor-extract: + optional: true + checksum: 10c0/25e77026b77449529265b85a9fd1cecbbdb435aaaa39d68a5e222c3b866e821ebf16e829f0fd4b06ae05164689117fbb74978659b65828f21b8f08593d55f0e9 + languageName: node + linkType: hard + "chai@npm:^5.2.0": version: 5.3.3 resolution: "chai@npm:5.3.3" @@ -11009,6 +11943,15 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^4.0.3": + version: 4.0.3 + resolution: "chokidar@npm:4.0.3" + dependencies: + readdirp: "npm:^4.0.1" + checksum: 10c0/a58b9df05bb452f7d105d9e7229ac82fa873741c0c40ddcc7bb82f8a909fbe3f7814c9ebe9bc9a2bef9b737c0ec6e2d699d179048ef06ad3ec46315df0ebe6ad + languageName: node + linkType: hard + "chokidar@npm:^5.0.0": version: 5.0.0 resolution: "chokidar@npm:5.0.0" @@ -11046,6 +11989,17 @@ __metadata: languageName: node linkType: hard +"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": + version: 1.0.7 + resolution: "cipher-base@npm:1.0.7" + dependencies: + inherits: "npm:^2.0.4" + safe-buffer: "npm:^5.2.1" + to-buffer: "npm:^1.2.2" + checksum: 10c0/53c5046a9d9b60c586479b8f13fde263c3f905e13f11e8e04c7a311ce399c91d9c3ec96642332e0de077d356e1014ee12bba96f74fbaad0de750f49122258836 + languageName: node + linkType: hard + "cli-boxes@npm:^3.0.0": version: 3.0.0 resolution: "cli-boxes@npm:3.0.0" @@ -11226,6 +12180,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab + languageName: node + linkType: hard + "commander@npm:^6.0.0, commander@npm:^6.1.0": version: 6.2.1 resolution: "commander@npm:6.2.1" @@ -11290,7 +12251,7 @@ __metadata: languageName: node linkType: hard -"component-emitter@npm:^1.3.1": +"component-emitter@npm:^1.3.0, component-emitter@npm:^1.3.1": version: 1.3.1 resolution: "component-emitter@npm:1.3.1" checksum: 10c0/e4900b1b790b5e76b8d71b328da41482118c0f3523a516a41be598dc2785a07fd721098d9bf6e22d89b19f4fa4e1025160dc00317ea111633a3e4f75c2b86032 @@ -11384,7 +12345,7 @@ __metadata: languageName: node linkType: hard -"consola@npm:^3.2.3": +"consola@npm:^3.2.3, consola@npm:^3.4.0": version: 3.4.2 resolution: "consola@npm:3.4.2" checksum: 10c0/7cebe57ecf646ba74b300bcce23bff43034ed6fbec9f7e39c27cee1dc00df8a21cd336b466ad32e304ea70fba04ec9e890c200270de9a526ce021ba8a7e4c11a @@ -11590,6 +12551,33 @@ __metadata: languageName: node linkType: hard +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: "npm:^1.0.1" + inherits: "npm:^2.0.1" + md5.js: "npm:^1.3.4" + ripemd160: "npm:^2.0.1" + sha.js: "npm:^2.4.0" + checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915 + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.7": + version: 1.1.7 + resolution: "create-hmac@npm:1.1.7" + dependencies: + cipher-base: "npm:^1.0.3" + create-hash: "npm:^1.1.0" + inherits: "npm:^2.0.1" + ripemd160: "npm:^2.0.0" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -11758,7 +12746,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.6": +"debug@npm:^3.1.0, debug@npm:^3.2.6": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -11863,6 +12851,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 + languageName: node + linkType: hard + "define-lazy-prop@npm:2.0.0, define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -11909,6 +12908,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + "destr@npm:^2.0.5": version: 2.0.5 resolution: "destr@npm:2.0.5" @@ -11939,7 +12945,7 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^2.0.0": +"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1": version: 2.1.2 resolution: "detect-libc@npm:2.1.2" checksum: 10c0/acc675c29a5649fa1fb6e255f993b8ee829e510b6b56b0910666949c80c364738833417d0edb5f90e4e46be17228b0f2b66a010513984e18b15deeeac49369c4 @@ -12066,6 +13072,13 @@ __metadata: languageName: unknown linkType: soft +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 + languageName: node + linkType: hard + "dom-accessibility-api@npm:^0.6.3": version: 0.6.3 resolution: "dom-accessibility-api@npm:0.6.3" @@ -12224,6 +13237,17 @@ __metadata: languageName: node linkType: hard +"ecpair@npm:@bitgo/ecpair@2.1.0-rc.0": + version: 2.1.0-rc.0 + resolution: "@bitgo/ecpair@npm:2.1.0-rc.0" + dependencies: + randombytes: "npm:^2.1.0" + typeforce: "npm:^1.18.0" + wif: "npm:^2.0.6" + checksum: 10c0/ea9cd87845d4002b5766d0ca9a073f3d6b9ea040e5bdfbe7adc3e309287cd3f71fec4343b44b8b6f1d76b76c7fd4282c36ebdb20ec1a94f21725e9f8765b4caa + languageName: node + linkType: hard + "ee-first@npm:1.1.1": version: 1.1.1 resolution: "ee-first@npm:1.1.1" @@ -12247,6 +13271,21 @@ __metadata: languageName: node linkType: hard +"elliptic@npm:^6.5.7": + version: 6.6.1 + resolution: "elliptic@npm:6.6.1" + dependencies: + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/8b24ef782eec8b472053793ea1e91ae6bee41afffdfcb78a81c0a53b191e715cbe1292aa07165958a9bbe675bd0955142560b1a007ffce7d6c765bcaf951a867 + languageName: node + linkType: hard + "emittery@npm:^0.13.0": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -12368,7 +13407,7 @@ __metadata: languageName: node linkType: hard -"es-define-property@npm:1.0.1, es-define-property@npm:^1.0.1": +"es-define-property@npm:1.0.1, es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c @@ -12818,8 +13857,8 @@ __metadata: linkType: hard "eslint@npm:^10.6.0": - version: 10.6.0 - resolution: "eslint@npm:10.6.0" + version: 10.7.0 + resolution: "eslint@npm:10.7.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.8.0" "@eslint-community/regexpp": "npm:^4.12.2" @@ -12858,7 +13897,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/ebe0261fc750afb7f1a0c5a14f5288e57b971e0bee9754b1620132d22ad0c23690183977b0c9514ffa7ad460768d689d3fb9792ad9267b6c6205e2e0c17d8563 + checksum: 10c0/d9415f506730c098ab8897da39f5719cdf9d1026c9511c322d4a272677f904b7d43ff423d63ee941c9a03d74d1a75563ce2668886734b1f293b22e57911a6dd6 languageName: node linkType: hard @@ -12971,6 +14010,29 @@ __metadata: languageName: node linkType: hard +"ethereum-cryptography@npm:^0.1.3": + version: 0.1.3 + resolution: "ethereum-cryptography@npm:0.1.3" + dependencies: + "@types/pbkdf2": "npm:^3.0.0" + "@types/secp256k1": "npm:^4.0.1" + blakejs: "npm:^1.1.0" + browserify-aes: "npm:^1.2.0" + bs58check: "npm:^2.1.2" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + hash.js: "npm:^1.1.7" + keccak: "npm:^3.0.0" + pbkdf2: "npm:^3.0.17" + randombytes: "npm:^2.1.0" + safe-buffer: "npm:^5.1.2" + scrypt-js: "npm:^3.0.0" + secp256k1: "npm:^4.0.1" + setimmediate: "npm:^1.0.5" + checksum: 10c0/aa36e11fca9d67d67c96e02a98b33bae2e1add20bd11af43feb7f28cdafe0cd3bdbae3bfecc7f2d9ec8f504b10a1c8f7590f5f7fe236560fd8083dd321ad7144 + languageName: node + linkType: hard + "ethereum-cryptography@npm:^2.0.0": version: 2.2.1 resolution: "ethereum-cryptography@npm:2.2.1" @@ -12983,6 +14045,19 @@ __metadata: languageName: node linkType: hard +"ethereumjs-util@npm:7.1.5": + version: 7.1.5 + resolution: "ethereumjs-util@npm:7.1.5" + dependencies: + "@types/bn.js": "npm:^5.1.0" + bn.js: "npm:^5.1.2" + create-hash: "npm:^1.1.2" + ethereum-cryptography: "npm:^0.1.3" + rlp: "npm:^2.2.4" + checksum: 10c0/8b9487f35ecaa078bf9af6858eba6855fc61c73cc2b90c8c37486fcf94faf4fc1c5cda9758e6769f9ef2658daedaf2c18b366312ac461f8c8a122b392e3041eb + languageName: node + linkType: hard + "event-pubsub@npm:4.3.0": version: 4.3.0 resolution: "event-pubsub@npm:4.3.0" @@ -13048,6 +14123,17 @@ __metadata: languageName: node linkType: hard +"evp_bytestokey@npm:^1.0.3": + version: 1.0.3 + resolution: "evp_bytestokey@npm:1.0.3" + dependencies: + md5.js: "npm:^1.3.4" + node-gyp: "npm:latest" + safe-buffer: "npm:^5.1.1" + checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99 + languageName: node + linkType: hard + "expand-template@npm:^2.0.3": version: 2.0.3 resolution: "expand-template@npm:2.0.3" @@ -13234,6 +14320,13 @@ __metadata: languageName: node linkType: hard +"fastpriorityqueue@npm:^0.7.1": + version: 0.7.5 + resolution: "fastpriorityqueue@npm:0.7.5" + checksum: 10c0/db026a4fe86a3f5a9e4668af9b079a9a872ab4cb387dd1581c5ca15f242337aa6305afb36b2ef3f03e7d17b55a2810f9532bb4ccc8a8fdfa4c501083ff894468 + languageName: node + linkType: hard + "fclone@npm:1.0.11, fclone@npm:~1.0.11": version: 1.0.11 resolution: "fclone@npm:1.0.11" @@ -13374,6 +14467,17 @@ __metadata: languageName: node linkType: hard +"fix-dts-default-cjs-exports@npm:^1.0.0": + version: 1.0.1 + resolution: "fix-dts-default-cjs-exports@npm:1.0.1" + dependencies: + magic-string: "npm:^0.30.17" + mlly: "npm:^1.7.4" + rollup: "npm:^4.34.8" + checksum: 10c0/61a3cbe32b6c29df495ef3aded78199fe9dbb52e2801c899fe76d9ca413d3c8c51f79986bac83f8b4b2094ebde883ddcfe47b68ce469806ba13ca6ed4e7cd362 + languageName: node + linkType: hard + "flat-cache@npm:^4.0.0": version: 4.0.1 resolution: "flat-cache@npm:4.0.1" @@ -13410,6 +14514,15 @@ __metadata: languageName: node linkType: hard +"for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" + dependencies: + is-callable: "npm:^1.2.7" + checksum: 10c0/0e0b50f6a843a282637d43674d1fb278dda1dd85f4f99b640024cfb10b85058aac0cc781bf689d5fe50b4b7f638e91e548560723a4e76e04fe96ae35ef039cee + languageName: node + linkType: hard + "foreground-child@npm:^3.1.0": version: 3.3.1 resolution: "foreground-child@npm:3.3.1" @@ -13420,7 +14533,7 @@ __metadata: languageName: node linkType: hard -"form-data@npm:4.0.6, form-data@npm:^4.0.0, form-data@npm:^4.0.5": +"form-data@npm:4.0.6": version: 4.0.6 resolution: "form-data@npm:4.0.6" dependencies: @@ -13433,6 +14546,19 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.0, form-data@npm:^4.0.5": + version: 4.0.5 + resolution: "form-data@npm:4.0.5" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + hasown: "npm:^2.0.2" + mime-types: "npm:^2.1.12" + checksum: 10c0/dd6b767ee0bbd6d84039db12a0fa5a2028160ffbfaba1800695713b46ae974a5f6e08b3356c3195137f8530dcd9dfcb5d5ae1eeff53d0db1e5aad863b619ce3b + languageName: node + linkType: hard + "format-util@npm:^1.0.3": version: 1.0.5 resolution: "format-util@npm:1.0.5" @@ -13440,7 +14566,7 @@ __metadata: languageName: node linkType: hard -"formidable@npm:^3.5.4": +"formidable@npm:^3.5.1, formidable@npm:^3.5.4": version: 3.5.4 resolution: "formidable@npm:3.5.4" dependencies: @@ -13458,6 +14584,20 @@ __metadata: languageName: node linkType: hard +"fp-ts@npm:2.16.2": + version: 2.16.2 + resolution: "fp-ts@npm:2.16.2" + checksum: 10c0/58b57b7e8cf7856de354d2e5855e1c0dee00ae719d5de739a60f201c7b31c2f6a501d333dfb875199a8649b29cfbe9fa6979df3e8aef87ef7b151179c2b59f6e + languageName: node + linkType: hard + +"fp-ts@npm:^2.0.0, fp-ts@npm:^2.12.2": + version: 2.16.11 + resolution: "fp-ts@npm:2.16.11" + checksum: 10c0/9a263a577964adbb754221c48449a64a6962c91fa6af136e73b043ee70ee41c7b856fe1e6cc21fb4f0264dd9a75c53bd381b1bb486b6caa99a71f33d1bb24c2a + languageName: node + linkType: hard + "fresh@npm:^2.0.0": version: 2.0.0 resolution: "fresh@npm:2.0.0" @@ -13639,7 +14779,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": version: 1.3.1 resolution: "get-intrinsic@npm:1.3.1" dependencies: @@ -13826,7 +14966,7 @@ __metadata: languageName: node linkType: hard -"gopd@npm:1.2.0, gopd@npm:^1.2.0": +"gopd@npm:1.2.0, gopd@npm:^1.0.1, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead @@ -13897,6 +15037,15 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 + languageName: node + linkType: hard + "has-symbols@npm:1.1.0, has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": version: 1.1.0 resolution: "has-symbols@npm:1.1.0" @@ -13913,6 +15062,28 @@ __metadata: languageName: node linkType: hard +"hash-base@npm:^3.0.0, hash-base@npm:^3.1.2": + version: 3.1.2 + resolution: "hash-base@npm:3.1.2" + dependencies: + inherits: "npm:^2.0.4" + readable-stream: "npm:^2.3.8" + safe-buffer: "npm:^5.2.1" + to-buffer: "npm:^1.2.1" + checksum: 10c0/f3b7fae1853b31340048dd659f40f5260ca6f3ff53b932f807f4ab701ee09039f6e9dbe1841723ff61e20f3f69d6387a352e4ccc5f997dedb0d375c7d88bc15e + languageName: node + linkType: hard + +"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: "npm:^2.0.3" + minimalistic-assert: "npm:^1.0.1" + checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4 + languageName: node + linkType: hard + "hasown@npm:2.0.4, hasown@npm:^2.0.4": version: 2.0.4 resolution: "hasown@npm:2.0.4" @@ -13963,6 +15134,17 @@ __metadata: languageName: node linkType: hard +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" + dependencies: + hash.js: "npm:^1.0.3" + minimalistic-assert: "npm:^1.0.0" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d + languageName: node + linkType: hard + "hoist-non-react-statics@npm:^3.3.1": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -14223,7 +15405,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -14291,6 +15473,27 @@ __metadata: languageName: node linkType: hard +"io-ts-types@npm:^0.5.16": + version: 0.5.19 + resolution: "io-ts-types@npm:0.5.19" + peerDependencies: + fp-ts: ^2.0.0 + io-ts: ^2.0.0 + monocle-ts: ^2.0.0 + newtype-ts: ^0.3.2 + checksum: 10c0/f7c451f6444660707f02de2dbf9c3c4bca4e9ed3b2f46e10f19ea5dcaa6acef9936d3b24025598d9f59e0647ea704263ba580506a2db3d64cc6d0c7b2b0fcf35 + languageName: node + linkType: hard + +"io-ts@npm:@bitgo-forks/io-ts@2.1.4": + version: 2.1.4 + resolution: "@bitgo-forks/io-ts@npm:2.1.4" + peerDependencies: + fp-ts: ^2.0.0 + checksum: 10c0/00833d831253a9f946a1ff75a9d33532429222fed3aa8b3ee188c875ea66ee6409a9c269859ecec04e1f5dd09a06c1f936aca7c83225908f002d9e259ccdd6ea + languageName: node + linkType: hard + "ip-address@npm:^10.0.1": version: 10.1.0 resolution: "ip-address@npm:10.1.0" @@ -14344,6 +15547,13 @@ __metadata: languageName: node linkType: hard +"is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f + languageName: node + linkType: hard + "is-core-module@npm:^2.16.1": version: 2.16.1 resolution: "is-core-module@npm:2.16.1" @@ -14403,6 +15613,13 @@ __metadata: languageName: node linkType: hard +"is-hex-prefixed@npm:1.0.0": + version: 1.0.0 + resolution: "is-hex-prefixed@npm:1.0.0" + checksum: 10c0/767fa481020ae654ab085ca24c63c518705ff36fdfbfc732292dc69092c6f8fdc551f6ce8c5f6ae704b0a19294e6f62be1b4b9859f0e1ac76e3b1b0733599d94 + languageName: node + linkType: hard + "is-in-ci@npm:^1.0.0": version: 1.0.0 resolution: "is-in-ci@npm:1.0.0" @@ -14519,6 +15736,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.14": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: "npm:^1.1.16" + checksum: 10c0/415511da3669e36e002820584e264997ffe277ff136643a3126cc949197e6ca3334d0f12d084e83b1994af2e9c8141275c741cf2b7da5a2ff62dd0cac26f76c4 + languageName: node + linkType: hard + "is-unicode-supported@npm:0.1.0, is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -14558,6 +15784,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd + languageName: node + linkType: hard + "isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -15010,6 +16243,30 @@ __metadata: languageName: node linkType: hard +"keccak@npm:3.0.3": + version: 3.0.3 + resolution: "keccak@npm:3.0.3" + dependencies: + node-addon-api: "npm:^2.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + readable-stream: "npm:^3.6.0" + checksum: 10c0/b31cca18eeedafb93b0e28bc032f9a52f28c9accb4181925ba7f9152570807d698a802a45946a7246842f5d40dc9237ecdc944363c1272e657839f29b6171550 + languageName: node + linkType: hard + +"keccak@npm:^3.0.0": + version: 3.0.4 + resolution: "keccak@npm:3.0.4" + dependencies: + node-addon-api: "npm:^2.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + readable-stream: "npm:^3.6.0" + checksum: 10c0/153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd + languageName: node + linkType: hard + "keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -15092,6 +16349,22 @@ __metadata: languageName: node linkType: hard +"libsodium-sumo@npm:^0.7.16": + version: 0.7.16 + resolution: "libsodium-sumo@npm:0.7.16" + checksum: 10c0/672665375d7d60fe839d35795f6f7c91b10afb0b5adbbbaf2729f2ca863576ad5c748e9c866cb1fc45c5c7d2f0b7103dcf8310ae60c2dba11d069e840074cd4f + languageName: node + linkType: hard + +"libsodium-wrappers-sumo@npm:^0.7.9": + version: 0.7.16 + resolution: "libsodium-wrappers-sumo@npm:0.7.16" + dependencies: + libsodium-sumo: "npm:^0.7.16" + checksum: 10c0/c54cd72c85cde39fd68b94f71000a45e392efc966b4b15c54ade99b88c036eaa3fa6f7ee96a4fdfa84f304358f72bf8c4b25aa2b91ecc224f69bbee2a3d171df + languageName: node + linkType: hard + "lie@npm:~3.3.0": version: 3.3.0 resolution: "lie@npm:3.3.0" @@ -15111,6 +16384,13 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:^3.1.1": + version: 3.1.3 + resolution: "lilconfig@npm:3.1.3" + checksum: 10c0/f5604e7240c5c275743561442fbc5abf2a84ad94da0f5adc71d25e31fa8483048de3dcedcb7a44112a942fed305fd75841cdf6c9681c7f640c63f1049e9a5dcc + languageName: node + linkType: hard + "lines-and-columns@npm:2.0.3": version: 2.0.3 resolution: "lines-and-columns@npm:2.0.3" @@ -15204,6 +16484,13 @@ __metadata: languageName: node linkType: hard +"load-tsconfig@npm:^0.2.3": + version: 0.2.5 + resolution: "load-tsconfig@npm:0.2.5" + checksum: 10c0/bf2823dd26389d3497b6567f07435c5a7a58d9df82e879b0b3892f87d8db26900f84c85bc329ef41c0540c0d6a448d1c23ddc64a80f3ff6838b940f3915a3fcb + languageName: node + linkType: hard + "local-pkg@npm:^1.0.0": version: 1.1.2 resolution: "local-pkg@npm:1.1.2" @@ -15338,20 +16625,20 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.18.1, lodash@npm:^4.5": - version: 4.18.1 - resolution: "lodash@npm:4.18.1" - checksum: 10c0/757228fc68805c59789e82185135cf85f05d0b2d3d54631d680ca79ec21944ec8314d4533639a14b8bcfbd97a517e78960933041a5af17ecb693ec6eecb99a27 - languageName: node - linkType: hard - -"lodash@npm:~4.17.23": +"lodash@npm:^4.17.14, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.5, lodash@npm:~4.17.23": version: 4.17.23 resolution: "lodash@npm:4.17.23" checksum: 10c0/1264a90469f5bb95d4739c43eb6277d15b6d9e186df4ac68c3620443160fc669e2f14c11e7d8b2ccf078b81d06147c01a8ccced9aab9f9f63d50dcf8cace6bf6 languageName: node linkType: hard +"lodash@npm:^4.17.15, lodash@npm:^4.18.0, lodash@npm:^4.18.1": + version: 4.18.1 + resolution: "lodash@npm:4.18.1" + checksum: 10c0/757228fc68805c59789e82185135cf85f05d0b2d3d54631d680ca79ec21944ec8314d4533639a14b8bcfbd97a517e78960933041a5af17ecb693ec6eecb99a27 + languageName: node + linkType: hard + "log-symbols@npm:4.1.0, log-symbols@npm:^4.0.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" @@ -15453,6 +16740,15 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b + languageName: node + linkType: hard + "magic-string@npm:^0.25.7": version: 0.25.9 resolution: "magic-string@npm:0.25.9" @@ -15554,6 +16850,17 @@ __metadata: languageName: node linkType: hard +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5 + languageName: node + linkType: hard + "mdurl@npm:^2.0.0": version: 2.0.0 resolution: "mdurl@npm:2.0.0" @@ -15617,7 +16924,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:2.1.35, mime-types@npm:^2.1.35, mime-types@npm:~2.1.24": +"mime-types@npm:2.1.35, mime-types@npm:^2.1.12, mime-types@npm:^2.1.35, mime-types@npm:~2.1.24": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -15681,6 +16988,20 @@ __metadata: languageName: node linkType: hard +"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd + languageName: node + linkType: hard + +"minimalistic-crypto-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-crypto-utils@npm:1.0.1" + checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8 + languageName: node + linkType: hard + "minimatch@npm:10.2.1": version: 10.2.1 resolution: "minimatch@npm:10.2.1" @@ -15871,6 +17192,15 @@ __metadata: languageName: node linkType: hard +"monocle-ts@npm:^2.3.13": + version: 2.3.13 + resolution: "monocle-ts@npm:2.3.13" + peerDependencies: + fp-ts: ^2.5.0 + checksum: 10c0/8f1673abb7def3225a33f962423ba592202afaac9fe6b18d0af6b84083d18c0e0939f59677bff5a1aa86ca3f6381220dc800b36823fd22fa69283f3cd3f7b4e2 + languageName: node + linkType: hard + "mrmime@npm:^2.0.0": version: 2.0.1 resolution: "mrmime@npm:2.0.1" @@ -15946,6 +17276,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 + languageName: node + linkType: hard + "nan@npm:^2.19.0, nan@npm:^2.23.0": version: 2.27.0 resolution: "nan@npm:2.27.0" @@ -15955,6 +17296,20 @@ __metadata: languageName: node linkType: hard +"nanoassert@npm:^1.0.0": + version: 1.1.0 + resolution: "nanoassert@npm:1.1.0" + checksum: 10c0/aa9586c0c73b36a431f66a14db9b6035e3f729c44da59fc973049d8433822d943c0312ac92436a7da2a59e4da0b9094c22da1cdd16ddebcb54ea9e75eb9906fe + languageName: node + linkType: hard + +"nanoassert@npm:^2.0.0": + version: 2.0.0 + resolution: "nanoassert@npm:2.0.0" + checksum: 10c0/fb21ce924a1ec8e8fac415a00fdd1c086c08bc185d0377e675b1d379347340fbf4a1523d8d2330e5328a542400cd7122599b6c6e21ce2ea40a9f11d68dfbfa1b + languageName: node + linkType: hard + "nanoid@npm:^3.3.11": version: 3.3.11 resolution: "nanoid@npm:3.3.11" @@ -16005,6 +17360,23 @@ __metadata: languageName: node linkType: hard +"newtype-ts@npm:^0.3.5": + version: 0.3.5 + resolution: "newtype-ts@npm:0.3.5" + peerDependencies: + fp-ts: ^2.0.0 + monocle-ts: ^2.0.0 + checksum: 10c0/4bd164d33f4569f7245ed3e656796adb4bf15f11160ff755e3a5c0ef85dde13699ae80b94c38d0ff43d1f3625d698897afb6a74a7c65b90bd9786d3958423edf + languageName: node + linkType: hard + +"noble-bls12-381@npm:0.7.2": + version: 0.7.2 + resolution: "noble-bls12-381@npm:0.7.2" + checksum: 10c0/073008cc821d8b295eeb63d4bd6b1de99bd278f33ce94284516ce8b78b37f4c86d96568720a22efe11e8b09864be866761280e29ca1df183f2fe846b82953ef0 + languageName: node + linkType: hard + "node-abi@npm:^3.3.0": version: 3.87.0 resolution: "node-abi@npm:3.87.0" @@ -16014,6 +17386,24 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^2.0.0": + version: 2.0.2 + resolution: "node-addon-api@npm:2.0.2" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64 + languageName: node + linkType: hard + +"node-addon-api@npm:^5.0.0": + version: 5.1.0 + resolution: "node-addon-api@npm:5.1.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/0eb269786124ba6fad9df8007a149e03c199b3e5a3038125dfb3e747c2d5113d406a4e33f4de1ea600aa2339be1f137d55eba1a73ee34e5fff06c52a5c296d1d + languageName: node + linkType: hard + "node-fetch-native@npm:^1.6.7": version: 1.6.7 resolution: "node-fetch-native@npm:1.6.7" @@ -16042,6 +17432,30 @@ __metadata: languageName: node linkType: hard +"node-gyp-build-optional-packages@npm:5.1.1": + version: 5.1.1 + resolution: "node-gyp-build-optional-packages@npm:5.1.1" + dependencies: + detect-libc: "npm:^2.0.1" + bin: + node-gyp-build-optional-packages: bin.js + node-gyp-build-optional-packages-optional: optional.js + node-gyp-build-optional-packages-test: build-test.js + checksum: 10c0/f9fad2061c48fb0fc90831cd11d6a7670d731d22a5b00c7d3441b43b4003543299ff64ff2729afe2cefd7d14928e560d469336e5bb00f613932ec2cd56b3665b + languageName: node + linkType: hard + +"node-gyp-build@npm:^4.2.0": + version: 4.8.4 + resolution: "node-gyp-build@npm:4.8.4" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 10c0/444e189907ece2081fe60e75368784f7782cfddb554b60123743dfb89509df89f1f29c03bbfa16b3a3e0be3f48799a4783f487da6203245fa5bed239ba7407e1 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 12.2.0 resolution: "node-gyp@npm:12.2.0" @@ -16148,7 +17562,7 @@ __metadata: languageName: node linkType: hard -"nx@npm:22.7.6, nx@npm:^22.7.6": +"nx@npm:22.7.6": version: 22.7.6 resolution: "nx@npm:22.7.6" dependencies: @@ -16308,6 +17722,166 @@ __metadata: languageName: node linkType: hard +"nx@npm:^22.7.6": + version: 22.7.7 + resolution: "nx@npm:22.7.7" + dependencies: + "@emnapi/core": "npm:1.4.5" + "@emnapi/runtime": "npm:1.4.5" + "@emnapi/wasi-threads": "npm:1.0.4" + "@jest/diff-sequences": "npm:30.0.1" + "@napi-rs/wasm-runtime": "npm:0.2.4" + "@nx/nx-darwin-arm64": "npm:22.7.7" + "@nx/nx-darwin-x64": "npm:22.7.7" + "@nx/nx-freebsd-x64": "npm:22.7.7" + "@nx/nx-linux-arm-gnueabihf": "npm:22.7.7" + "@nx/nx-linux-arm64-gnu": "npm:22.7.7" + "@nx/nx-linux-arm64-musl": "npm:22.7.7" + "@nx/nx-linux-x64-gnu": "npm:22.7.7" + "@nx/nx-linux-x64-musl": "npm:22.7.7" + "@nx/nx-win32-arm64-msvc": "npm:22.7.7" + "@nx/nx-win32-x64-msvc": "npm:22.7.7" + "@tybys/wasm-util": "npm:0.9.0" + "@yarnpkg/lockfile": "npm:1.1.0" + "@zkochan/js-yaml": "npm:0.0.7" + ansi-colors: "npm:4.1.3" + ansi-regex: "npm:5.0.1" + ansi-styles: "npm:4.3.0" + argparse: "npm:2.0.1" + asynckit: "npm:0.4.0" + axios: "npm:1.16.0" + balanced-match: "npm:4.0.3" + base64-js: "npm:1.5.1" + bl: "npm:4.1.0" + brace-expansion: "npm:5.0.6" + buffer: "npm:5.7.1" + call-bind-apply-helpers: "npm:1.0.2" + chalk: "npm:4.1.2" + cli-cursor: "npm:3.1.0" + cli-spinners: "npm:2.6.1" + cliui: "npm:8.0.1" + clone: "npm:1.0.4" + color-convert: "npm:2.0.1" + color-name: "npm:1.1.4" + combined-stream: "npm:1.0.8" + defaults: "npm:1.0.4" + define-lazy-prop: "npm:2.0.0" + delayed-stream: "npm:1.0.0" + dotenv: "npm:16.4.7" + dotenv-expand: "npm:12.0.3" + dunder-proto: "npm:1.0.1" + ejs: "npm:5.0.1" + emoji-regex: "npm:8.0.0" + end-of-stream: "npm:1.4.5" + enquirer: "npm:2.3.6" + es-define-property: "npm:1.0.1" + es-errors: "npm:1.3.0" + es-object-atoms: "npm:1.1.1" + es-set-tostringtag: "npm:2.1.0" + escalade: "npm:3.2.0" + escape-string-regexp: "npm:1.0.5" + figures: "npm:3.2.0" + flat: "npm:5.0.2" + follow-redirects: "npm:1.16.0" + form-data: "npm:4.0.6" + fs-constants: "npm:1.0.0" + function-bind: "npm:1.1.2" + get-caller-file: "npm:2.0.5" + get-intrinsic: "npm:1.3.0" + get-proto: "npm:1.0.1" + gopd: "npm:1.2.0" + has-flag: "npm:4.0.0" + has-symbols: "npm:1.1.0" + has-tostringtag: "npm:1.0.2" + hasown: "npm:2.0.4" + ieee754: "npm:1.2.1" + ignore: "npm:7.0.5" + inherits: "npm:2.0.4" + is-docker: "npm:2.2.1" + is-fullwidth-code-point: "npm:3.0.0" + is-interactive: "npm:1.0.0" + is-unicode-supported: "npm:0.1.0" + is-wsl: "npm:2.2.0" + json5: "npm:2.2.3" + jsonc-parser: "npm:3.2.0" + lines-and-columns: "npm:2.0.3" + log-symbols: "npm:4.1.0" + math-intrinsics: "npm:1.1.0" + mime-db: "npm:1.52.0" + mime-types: "npm:2.1.35" + mimic-fn: "npm:2.1.0" + minimatch: "npm:10.2.5" + minimist: "npm:1.2.8" + npm-run-path: "npm:4.0.1" + once: "npm:1.4.0" + onetime: "npm:5.1.2" + open: "npm:8.4.2" + ora: "npm:5.3.0" + path-key: "npm:3.1.1" + picocolors: "npm:1.1.1" + proxy-from-env: "npm:2.1.0" + readable-stream: "npm:3.6.2" + require-directory: "npm:2.1.1" + resolve.exports: "npm:2.0.3" + restore-cursor: "npm:3.1.0" + safe-buffer: "npm:5.2.1" + semver: "npm:7.7.4" + signal-exit: "npm:3.0.7" + smol-toml: "npm:1.6.1" + string-width: "npm:4.2.3" + string_decoder: "npm:1.3.0" + strip-ansi: "npm:6.0.1" + strip-bom: "npm:3.0.0" + supports-color: "npm:7.2.0" + tar-stream: "npm:2.2.0" + tmp: "npm:0.2.7" + tree-kill: "npm:1.2.2" + tsconfig-paths: "npm:4.2.0" + tslib: "npm:2.8.1" + util-deprecate: "npm:1.0.2" + wcwidth: "npm:1.0.1" + wrap-ansi: "npm:7.0.0" + wrappy: "npm:1.0.2" + y18n: "npm:5.0.8" + yaml: "npm:2.9.0" + yargs: "npm:17.7.2" + yargs-parser: "npm:21.1.1" + peerDependencies: + "@swc-node/register": ^1.11.1 + "@swc/core": ^1.15.8 + dependenciesMeta: + "@nx/nx-darwin-arm64": + optional: true + "@nx/nx-darwin-x64": + optional: true + "@nx/nx-freebsd-x64": + optional: true + "@nx/nx-linux-arm-gnueabihf": + optional: true + "@nx/nx-linux-arm64-gnu": + optional: true + "@nx/nx-linux-arm64-musl": + optional: true + "@nx/nx-linux-x64-gnu": + optional: true + "@nx/nx-linux-x64-musl": + optional: true + "@nx/nx-win32-arm64-msvc": + optional: true + "@nx/nx-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc-node/register": + optional: true + "@swc/core": + optional: true + bin: + nx: ./dist/bin/nx.js + nx-cloud: ./dist/bin/nx-cloud.js + checksum: 10c0/11c9bc83bb9cbea6959aef2dd49c5070e13da222f1a5b63fd9ff39e9cff0eae2e6df49275870b762bc001a67a06547096648acb48e9b4bd01c218cd87585fadb + languageName: node + linkType: hard + "oauth2-mock-server@npm:^8.2.3": version: 8.2.3 resolution: "oauth2-mock-server@npm:8.2.3" @@ -16323,7 +17897,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4, object-assign@npm:^4.1.1": +"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -16344,7 +17918,7 @@ __metadata: languageName: node linkType: hard -"obug@npm:^2.1.3": +"obug@npm:^2.1.4": version: 2.1.4 resolution: "obug@npm:2.1.4" checksum: 10c0/34a0ee97cd88573cfd97d384c2a79f07118ae5680d7e45d1de6e99c74eddefe145e8ca27a2db02195a1ee5fded5aa22b924869c842728c201b9f109a27d0ef19 @@ -16519,6 +18093,15 @@ __metadata: languageName: node linkType: hard +"openpgp@npm:5.11.3": + version: 5.11.3 + resolution: "openpgp@npm:5.11.3" + dependencies: + asn1.js: "npm:^5.0.0" + checksum: 10c0/0e7b9c562d6eb9fefb132a6c70675ad149b3f7bbec8d60b79f198f4834fcd54c15c0d199809b2c01e787c5769e50a9a18f950d9f49416d8c28587ac84bc171c1 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -16877,6 +18460,15 @@ __metadata: languageName: node linkType: hard +"paillier-bigint@npm:3.3.0": + version: 3.3.0 + resolution: "paillier-bigint@npm:3.3.0" + dependencies: + bigint-crypto-utils: "npm:^3.0.17" + checksum: 10c0/1ca8de28c887c6c1133084b302d86ee39a0a79be54fc0213200da190bcc08a5631ae2570ab426d7db1f94ab984b20398877eb69972d491ce77f53abaab7efed2 + languageName: node + linkType: hard + "pako@npm:^0.2.5": version: 0.2.9 resolution: "pako@npm:0.2.9" @@ -17024,6 +18616,20 @@ __metadata: languageName: node linkType: hard +"pbkdf2@npm:^3.0.17": + version: 3.1.6 + resolution: "pbkdf2@npm:3.1.6" + dependencies: + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + ripemd160: "npm:^2.0.3" + safe-buffer: "npm:^5.2.1" + sha.js: "npm:^2.4.12" + to-buffer: "npm:^1.2.2" + checksum: 10c0/828be4a5eed15c502dfa490247506c6abd4e539f6e1ea265d2b8a668292c9e07af4e6d4d7a5d3aa8ad12274da7cea1bf1b3dfc1f5f19bcdeee5157d1bf83f7f3 + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -17271,7 +18877,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.7": +"pirates@npm:^4.0.1, pirates@npm:^4.0.7": version: 4.0.7 resolution: "pirates@npm:4.0.7" checksum: 10c0/a51f108dd811beb779d58a76864bbd49e239fa40c7984cd11596c75a121a8cc789f1c8971d8bb15f0dbf9d48b76c05bb62fcbce840f89b688c0fa64b37e8478a @@ -17468,6 +19074,36 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: 10c0/c810983414142071da1d644662ce4caebce890203eb2bc7bf119f37f3fe5796226e117e6cca146b521921fa6531072674174a3325066ac66fce089a53e1e5196 + languageName: node + linkType: hard + +"postcss-load-config@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-load-config@npm:6.0.1" + dependencies: + lilconfig: "npm:^3.1.1" + peerDependencies: + jiti: ">=1.21.0" + postcss: ">=8.0.9" + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + checksum: 10c0/74173a58816dac84e44853f7afbd283f4ef13ca0b6baeba27701214beec33f9e309b128f8102e2b173e8d45ecba45d279a9be94b46bf48d219626aa9b5730848 + languageName: node + linkType: hard + "postcss@npm:^8.5.6": version: 8.5.10 resolution: "postcss@npm:8.5.10" @@ -17563,6 +19199,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed + languageName: node + linkType: hard + "proc-log@npm:^6.0.0": version: 6.1.0 resolution: "proc-log@npm:6.1.0" @@ -17747,6 +19394,16 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.11.0": + version: 6.15.3 + resolution: "qs@npm:6.15.3" + dependencies: + es-define-property: "npm:^1.0.1" + side-channel: "npm:^1.1.1" + checksum: 10c0/8f3f6e45ece255347d57696628401cde29e9ec649fff698b53bd3150dea7cefdf33036e1bc1826b9f110bfa7cb0ec4ab9f5297eca628ce216c55af82c304e08e + languageName: node + linkType: hard + "qs@npm:^6.14.0, qs@npm:^6.14.1, qs@npm:^6.4.0": version: 6.15.0 resolution: "qs@npm:6.15.0" @@ -17756,13 +19413,12 @@ __metadata: languageName: node linkType: hard -"qs@npm:~6.15.1": - version: 6.15.3 - resolution: "qs@npm:6.15.3" +"qs@npm:~6.14.0": + version: 6.14.2 + resolution: "qs@npm:6.14.2" dependencies: - es-define-property: "npm:^1.0.1" - side-channel: "npm:^1.1.1" - checksum: 10c0/8f3f6e45ece255347d57696628401cde29e9ec649fff698b53bd3150dea7cefdf33036e1bc1826b9f110bfa7cb0ec4ab9f5297eca628ce216c55af82c304e08e + side-channel: "npm:^1.1.0" + checksum: 10c0/646110124476fc9acf3c80994c8c3a0600cbad06a4ede1c9e93341006e8426d64e85e048baf8f0c4995f0f1bf0f37d1f3acc5ec1455850b81978792969a60ef6 languageName: node linkType: hard @@ -17801,6 +19457,15 @@ __metadata: languageName: node linkType: hard +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 + languageName: node + linkType: hard + "range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" @@ -17877,6 +19542,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 + languageName: node + linkType: hard + "react-is@npm:^19.2.3": version: 19.2.4 resolution: "react-is@npm:19.2.4" @@ -17929,7 +19601,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:3.6.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0": +"readable-stream@npm:3.6.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -17940,7 +19612,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -17977,6 +19649,13 @@ __metadata: languageName: node linkType: hard +"readdirp@npm:^4.0.1": + version: 4.1.2 + resolution: "readdirp@npm:4.1.2" + checksum: 10c0/60a14f7619dec48c9c850255cd523e2717001b0e179dc7037cfa0895da7b9e9ab07532d324bfb118d73a710887d1e35f79c495fa91582784493e085d18c72c62 + languageName: node + linkType: hard + "readdirp@npm:^5.0.0": version: 5.0.0 resolution: "readdirp@npm:5.0.0" @@ -18230,16 +19909,37 @@ __metadata: languageName: node linkType: hard +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1, ripemd160@npm:^2.0.2, ripemd160@npm:^2.0.3": + version: 2.0.3 + resolution: "ripemd160@npm:2.0.3" + dependencies: + hash-base: "npm:^3.1.2" + inherits: "npm:^2.0.4" + checksum: 10c0/3f472fb453241cfe692a77349accafca38dbcdc9d96d5848c088b2932ba41eb968630ecff7b175d291c7487a4945aee5a81e30c064d1f94e36070f7e0c37ed6c + languageName: node + linkType: hard + +"rlp@npm:^2.2.4": + version: 2.2.7 + resolution: "rlp@npm:2.2.7" + dependencies: + bn.js: "npm:^5.2.0" + bin: + rlp: bin/rlp + checksum: 10c0/166c449f4bc794d47f8e337bf0ffbcfdb26c33109030aac4b6e5a33a91fa85783f2290addeb7b3c89d6d9b90c8276e719494d193129bed0a60a2d4a6fd658277 + languageName: node + linkType: hard + "rolldown-plugin-dts@npm:^0.27.9": - version: 0.27.11 - resolution: "rolldown-plugin-dts@npm:0.27.11" + version: 0.27.12 + resolution: "rolldown-plugin-dts@npm:0.27.12" dependencies: dts-resolver: "npm:^3.0.0" get-tsconfig: "npm:5.0.0-beta.5" - obug: "npm:^2.1.3" - yuku-ast: "npm:^0.1.7" - yuku-codegen: "npm:^0.6.3" - yuku-parser: "npm:^0.6.3" + obug: "npm:^2.1.4" + yuku-ast: "npm:^0.7.0" + yuku-codegen: "npm:^0.7.0" + yuku-parser: "npm:^0.7.0" peerDependencies: "@typescript/native-preview": "*" "@volar/typescript": ~2.4.0 @@ -18255,7 +19955,7 @@ __metadata: optional: true vue-tsc: optional: true - checksum: 10c0/3c41126afa5fbaba741e1ea84788fc98a2152b09b56735a50ff6179dddc67ec68b16a826a6d489bfcc4bfe830a0c8308dfb67a3581bc1ef888d7e70ddd63d38f + checksum: 10c0/346b18e937c2ee6dbddfdc0e0890d871cb84f98e5790a46a036bbe93e8ad908d3fa4c20a27f0d6a59a2518161e1aa1dba97edb368e862e0d6e730621c0547691 languageName: node linkType: hard @@ -18336,7 +20036,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.43.0": +"rollup@npm:^4.34.8, rollup@npm:^4.43.0": version: 4.59.0 resolution: "rollup@npm:4.59.0" dependencies: @@ -18573,7 +20273,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -18587,7 +20287,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:~2.1.0": +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 @@ -18608,6 +20308,37 @@ __metadata: languageName: node linkType: hard +"scrypt-js@npm:^3.0.0": + version: 3.0.1 + resolution: "scrypt-js@npm:3.0.1" + checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10 + languageName: node + linkType: hard + +"secp256k1@npm:5.0.1": + version: 5.0.1 + resolution: "secp256k1@npm:5.0.1" + dependencies: + elliptic: "npm:^6.5.7" + node-addon-api: "npm:^5.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + checksum: 10c0/ea977fcd3a21ee10439a546774d4f3f474f065a561fc2247f65cb2a64f09628732fd606c0a62316858abd7c07b41f5aa09c37773537f233590b4cf94d752dbe7 + languageName: node + linkType: hard + +"secp256k1@npm:^4.0.1": + version: 4.0.4 + resolution: "secp256k1@npm:4.0.4" + dependencies: + elliptic: "npm:^6.5.7" + node-addon-api: "npm:^5.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + checksum: 10c0/cf7a74343566d4774c64332c07fc2caf983c80507f63be5c653ff2205242143d6320c50ee4d793e2b714a56540a79e65a8f0056e343b25b0cdfed878bc473fd8 + languageName: node + linkType: hard + "secure-compare@npm:3.0.1": version: 3.0.1 resolution: "secure-compare@npm:3.0.1" @@ -18658,15 +20389,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.8.5": - version: 7.8.5 - resolution: "semver@npm:7.8.5" - bin: - semver: bin/semver.js - checksum: 10c0/b1f3127a5be8125a94f37188b361c212466c292c6910adce3ec106cff5dc211ccaedc4739c11bb70fda59d6fc1f040a9bca289f4e093451521a2372e5231fe0c - languageName: node - linkType: hard - "semver@npm:~7.5.0, semver@npm:~7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" @@ -18774,6 +20496,20 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c + languageName: node + linkType: hard + "setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -18788,6 +20524,19 @@ __metadata: languageName: node linkType: hard +"sha.js@npm:^2.4.0, sha.js@npm:^2.4.12, sha.js@npm:^2.4.8": + version: 2.4.12 + resolution: "sha.js@npm:2.4.12" + dependencies: + inherits: "npm:^2.0.4" + safe-buffer: "npm:^5.2.1" + to-buffer: "npm:^1.2.0" + bin: + sha.js: bin.js + checksum: 10c0/9d36bdd76202c8116abbe152a00055ccd8a0099cb28fc17c01fa7bb2c8cffb9ca60e2ab0fe5f274ed6c45dc2633d8c39cf7ab050306c231904512ba9da4d8ab1 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -19076,6 +20825,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:^0.7.6": + version: 0.7.6 + resolution: "source-map@npm:0.7.6" + checksum: 10c0/59f6f05538539b274ba771d2e9e32f6c65451982510564438e048bc1352f019c6efcdc6dd07909b1968144941c14015c2c7d4369fb7c4d7d53ae769716dcc16c + languageName: node + linkType: hard + "sourcemap-codec@npm:^1.4.8": version: 1.4.8 resolution: "sourcemap-codec@npm:1.4.8" @@ -19194,7 +20950,7 @@ __metadata: languageName: node linkType: hard -"storybook@npm:10.4.6, storybook@npm:^10.4.6": +"storybook@npm:10.4.6": version: 10.4.6 resolution: "storybook@npm:10.4.6" dependencies: @@ -19230,6 +20986,44 @@ __metadata: languageName: node linkType: hard +"storybook@npm:^10.4.6": + version: 10.5.0 + resolution: "storybook@npm:10.5.0" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/icons": "npm:^2.0.2" + "@testing-library/dom": "npm:^10.4.1" + "@testing-library/jest-dom": "npm:^6.9.1" + "@testing-library/user-event": "npm:^14.6.1" + "@vitest/expect": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" + "@webcontainer/env": "npm:^1.1.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0 || ^0.28.0" + jsonc-parser: "npm:^3.3.1" + open: "npm:^10.2.0" + oxc-parser: "npm:^0.127.0" + oxc-resolver: "npm:^11.19.1" + recast: "npm:^0.23.5" + semver: "npm:^7.7.3" + use-sync-external-store: "npm:^1.5.0" + ws: "npm:^8.18.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + prettier: ^2 || ^3 + vite-plus: ^0.1.15 || ^0.2.0 + peerDependenciesMeta: + "@types/react": + optional: true + prettier: + optional: true + vite-plus: + optional: true + bin: + storybook: ./dist/bin/dispatcher.js + checksum: 10c0/25dcd7fb7b8f5e99502e139e89734e5375080d05a384734756544aa819c045a7cdf8988fcb47f5a77cf912ce5c4d9d1957e86f65c764ee3c0fe7a5c47a9f9e42 + languageName: node + linkType: hard + "streamx@npm:^2.12.5, streamx@npm:^2.15.0, streamx@npm:^2.25.0": version: 2.25.0 resolution: "streamx@npm:2.25.0" @@ -19360,6 +21154,15 @@ __metadata: languageName: node linkType: hard +"strip-hex-prefix@npm:^1.0.0": + version: 1.0.0 + resolution: "strip-hex-prefix@npm:1.0.0" + dependencies: + is-hex-prefixed: "npm:1.0.0" + checksum: 10c0/ec9a48c334c2ba4afff2e8efebb42c3ab5439f0e1ec2b8525e184eabef7fecade7aee444af802b1be55d2df6da5b58c55166c32f8461cc7559b401137ad51851 + languageName: node + linkType: hard + "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -19413,6 +21216,24 @@ __metadata: languageName: node linkType: hard +"sucrase@npm:^3.35.0": + version: 3.35.1 + resolution: "sucrase@npm:3.35.1" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + tinyglobby: "npm:^0.2.11" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10c0/6fa22329c261371feb9560630d961ad0d0b9c87dce21ea74557c5f3ffbe5c1ee970ea8bcce9962ae9c90c3c47165ffa7dd41865c7414f5d8ea7a40755d612c5c + languageName: node + linkType: hard + "superagent@npm:^10.3.0": version: 10.3.0 resolution: "superagent@npm:10.3.0" @@ -19430,6 +21251,23 @@ __metadata: languageName: node linkType: hard +"superagent@npm:^9.0.1": + version: 9.0.2 + resolution: "superagent@npm:9.0.2" + dependencies: + component-emitter: "npm:^1.3.0" + cookiejar: "npm:^2.1.4" + debug: "npm:^4.3.4" + fast-safe-stringify: "npm:^2.1.1" + form-data: "npm:^4.0.0" + formidable: "npm:^3.5.1" + methods: "npm:^1.1.2" + mime: "npm:2.6.0" + qs: "npm:^6.11.0" + checksum: 10c0/bfe7522ce9554552bed03c0e71949038e54626dd7be627f1033d92aae5b46d90afc42f8fc0dcda481eebf371a30b702414e438ea51251be6ab7bfbd60086d147 + languageName: node + linkType: hard + "supertest@npm:^7.2.2": version: 7.2.2 resolution: "supertest@npm:7.2.2" @@ -19474,8 +21312,8 @@ __metadata: linkType: hard "systeminformation@npm:^5.7": - version: 5.31.17 - resolution: "systeminformation@npm:5.31.17" + version: 5.31.6 + resolution: "systeminformation@npm:5.31.6" bin: systeminformation: lib/cli.js conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android) @@ -19527,15 +21365,15 @@ __metadata: linkType: hard "tar@npm:^7.4.0, tar@npm:^7.5.4": - version: 7.5.20 - resolution: "tar@npm:7.5.20" + version: 7.5.11 + resolution: "tar@npm:7.5.11" dependencies: "@isaacs/fs-minipass": "npm:^4.0.0" chownr: "npm:^3.0.0" minipass: "npm:^7.1.2" minizlib: "npm:^3.1.0" yallist: "npm:^5.0.0" - checksum: 10c0/4df4335c6d958b76adf1eaced55889dec3ca1c51f450658a074af80694bb0d9c154a8e93fdf4da617372d1575b121295379993961bbe4cd4b0867c0e5689846a + checksum: 10c0/b6bb420550ef50ef23356018155e956cd83282c97b6128d8d5cfe5740c57582d806a244b2ef0bf686a74ce526babe8b8b9061527623e935e850008d86d838929 languageName: node linkType: hard @@ -19580,6 +21418,24 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 + languageName: node + linkType: hard + "thread-stream@npm:^3.0.0": version: 3.1.0 resolution: "thread-stream@npm:3.1.0" @@ -19619,6 +21475,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + "tinyexec@npm:^1.0.0, tinyexec@npm:^1.0.2": version: 1.0.2 resolution: "tinyexec@npm:1.0.2" @@ -19633,7 +21496,7 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": +"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" dependencies: @@ -19681,6 +21544,17 @@ __metadata: languageName: node linkType: hard +"to-buffer@npm:^1.2.0, to-buffer@npm:^1.2.1, to-buffer@npm:^1.2.2": + version: 1.2.2 + resolution: "to-buffer@npm:1.2.2" + dependencies: + isarray: "npm:^2.0.5" + safe-buffer: "npm:^5.2.1" + typed-array-buffer: "npm:^1.0.3" + checksum: 10c0/56bc56352f14a2c4a0ab6277c5fc19b51e9534882b98eb068b39e14146591e62fa5b06bf70f7fed1626230463d7e60dca81e815096656e5e01c195c593873d12 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -19745,6 +21619,13 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10c0/232509f1b84192d07b81d1e9b9677088e590ac1303436da1e92b296e9be8e31ea042e3e1fd3d29b1742ad2c959e95afe30f63117b8f1bc3a3850070a5142fea7 + languageName: node + linkType: hard + "ts-node@npm:10.9.2, ts-node@npm:^10.9.2": version: 10.9.2 resolution: "ts-node@npm:10.9.2" @@ -19841,8 +21722,8 @@ __metadata: linkType: hard "tsdown@npm:^0.22.9": - version: 0.22.9 - resolution: "tsdown@npm:0.22.9" + version: 0.22.12 + resolution: "tsdown@npm:0.22.12" dependencies: ansis: "npm:^4.3.1" cac: "npm:^7.0.0" @@ -19850,19 +21731,19 @@ __metadata: empathic: "npm:^2.0.1" hookable: "npm:^6.1.1" import-without-cache: "npm:^0.4.0" - obug: "npm:^2.1.3" + obug: "npm:^2.1.4" picomatch: "npm:^4.0.5" rolldown: "npm:~1.2.0" rolldown-plugin-dts: "npm:^0.27.9" - semver: "npm:^7.8.5" tinyexec: "npm:^1.2.4" tinyglobby: "npm:^0.2.17" tree-kill: "npm:^1.2.2" unconfig-core: "npm:^7.5.0" + verkit: "npm:^0.1.0" peerDependencies: "@arethetypeswrong/core": ^0.18.1 - "@tsdown/css": 0.22.9 - "@tsdown/exe": 0.22.9 + "@tsdown/css": 0.22.12 + "@tsdown/exe": 0.22.12 "@vitejs/devtools": "*" publint: ^0.3.8 tsx: "*" @@ -19890,7 +21771,7 @@ __metadata: optional: true bin: tsdown: ./dist/run.mjs - checksum: 10c0/09295e28eba0259c1ff26df86259b908d67a99eb78504aff547b1ee22591b852fe69610e6f8ea5f9577d70b7b87685aa8cb83a9bbe4c1e0dda5a2ce679f4d0e1 + checksum: 10c0/6dc1d79cd7a7531e088aafc556fe476ccafb7e009be7f6780624d78d0171de67bdb5093d947e5d2ae1f3b4c5afeb0c1db7d5ac31191750f0c8e011c18c95b5b5 languageName: node linkType: hard @@ -19915,9 +21796,51 @@ __metadata: languageName: node linkType: hard +"tsup@npm:^8.5.1": + version: 8.5.1 + resolution: "tsup@npm:8.5.1" + dependencies: + bundle-require: "npm:^5.1.0" + cac: "npm:^6.7.14" + chokidar: "npm:^4.0.3" + consola: "npm:^3.4.0" + debug: "npm:^4.4.0" + esbuild: "npm:^0.27.0" + fix-dts-default-cjs-exports: "npm:^1.0.0" + joycon: "npm:^3.1.1" + picocolors: "npm:^1.1.1" + postcss-load-config: "npm:^6.0.1" + resolve-from: "npm:^5.0.0" + rollup: "npm:^4.34.8" + source-map: "npm:^0.7.6" + sucrase: "npm:^3.35.0" + tinyexec: "npm:^0.3.2" + tinyglobby: "npm:^0.2.11" + tree-kill: "npm:^1.2.2" + peerDependencies: + "@microsoft/api-extractor": ^7.36.0 + "@swc/core": ^1 + postcss: ^8.4.12 + typescript: ">=4.5.0" + peerDependenciesMeta: + "@microsoft/api-extractor": + optional: true + "@swc/core": + optional: true + postcss: + optional: true + typescript: + optional: true + bin: + tsup: dist/cli-default.js + tsup-node: dist/cli-node.js + checksum: 10c0/86b0a5ee5533cf5363431ffaf6a244d06fbc80e3a739f216a121a336b28e663d521bae1d3b2d9ba7d479cb4b5f7dcb5e0722e169d3daf664c78f0d68676fa06a + languageName: node + linkType: hard + "tsx@npm:^4.23.0": - version: 4.23.0 - resolution: "tsx@npm:4.23.0" + version: 4.23.1 + resolution: "tsx@npm:4.23.1" dependencies: esbuild: "npm:~0.28.0" fsevents: "npm:~2.3.3" @@ -19926,7 +21849,7 @@ __metadata: optional: true bin: tsx: dist/cli.mjs - checksum: 10c0/e4fade6bf8a4447424652da3a68f5ab7b927d1cbe5f697dba876c626c5fb7bf7663c4f71777992c9cbbdc8148c63ee1ddcf15536ff9d1863f9fbea25247ee0a9 + checksum: 10c0/2f7393c09ffd161701342c87141c6158945967c0fdb6476f157a72e53554cbc983b8e516b441beafde27c9840d8ffd619802acce6b6be5e9e197d693e111a55d languageName: node linkType: hard @@ -20029,6 +21952,17 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.14" + checksum: 10c0/1105071756eb248774bc71646bfe45b682efcad93b55532c6ffa4518969fb6241354e4aa62af679ae83899ec296d69ef88f1f3763657cdb3a4d29321f7b83079 + languageName: node + linkType: hard + "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -20053,18 +21987,25 @@ __metadata: languageName: node linkType: hard +"typeforce@npm:^1.11.3, typeforce@npm:^1.11.5, typeforce@npm:^1.18.0": + version: 1.18.0 + resolution: "typeforce@npm:1.18.0" + checksum: 10c0/011f57effd9ae6d3dd8bb249e09b4ecadb2c2a3f803b27f977ac8b7782834855930bff971ba549bcd5a8cedc8136d8a977c0b7e050cc67deded948181b7ba3e8 + languageName: node + linkType: hard + "typescript-eslint@npm:^8.63.0": - version: 8.63.0 - resolution: "typescript-eslint@npm:8.63.0" + version: 8.64.0 + resolution: "typescript-eslint@npm:8.64.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.63.0" - "@typescript-eslint/parser": "npm:8.63.0" - "@typescript-eslint/typescript-estree": "npm:8.63.0" - "@typescript-eslint/utils": "npm:8.63.0" + "@typescript-eslint/eslint-plugin": "npm:8.64.0" + "@typescript-eslint/parser": "npm:8.64.0" + "@typescript-eslint/typescript-estree": "npm:8.64.0" + "@typescript-eslint/utils": "npm:8.64.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/3b71c97c28502d463e8c562c741bfd4134e329c0d5580268dbf7aa7ac08db7ce72ae6fbc4fdd155042e1a65589f15cc1e88abae87103e4a904fe833c7d508c0c + checksum: 10c0/1a3e3846d72588134810b2d525a248003ed0b7dfbda04bbee7dd9fef81a447f8c67a6c9e0012e8d24207ec8a9b116bc36490b44c38ce35560f47c51d585c7b26 languageName: node linkType: hard @@ -20546,6 +22487,15 @@ __metadata: languageName: node linkType: hard +"varuint-bitcoin@npm:^1.0.1, varuint-bitcoin@npm:^1.1.2": + version: 1.1.2 + resolution: "varuint-bitcoin@npm:1.1.2" + dependencies: + safe-buffer: "npm:^5.1.1" + checksum: 10c0/3d38f8de8192b7a4fc00abea01ed189f1e1e6aee1ebc4192040c5717d2483e0a6a73873fcf6b3c1910d947d338b671470505705fe40c765dc832255dfa2d4210 + languageName: node + linkType: hard + "vary@npm:^1, vary@npm:^1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -20553,6 +22503,13 @@ __metadata: languageName: node linkType: hard +"verkit@npm:^0.1.0": + version: 0.1.2 + resolution: "verkit@npm:0.1.2" + checksum: 10c0/84d3978df9007326caf86dde354467189224c2864ae5d03111af7f112ca64a47d50f40a113f853284e4c90475b35dc4ccab47db2a3be7fe02fc1d81eca4361b6 + languageName: node + linkType: hard + "vite-express@npm:^0.22.1": version: 0.22.1 resolution: "vite-express@npm:0.22.1" @@ -20722,6 +22679,74 @@ __metadata: languageName: node linkType: hard +"vitest@npm:^4.1.8": + version: 4.1.8 + resolution: "vitest@npm:4.1.8" + dependencies: + "@vitest/expect": "npm:4.1.8" + "@vitest/mocker": "npm:4.1.8" + "@vitest/pretty-format": "npm:4.1.8" + "@vitest/runner": "npm:4.1.8" + "@vitest/snapshot": "npm:4.1.8" + "@vitest/spy": "npm:4.1.8" + "@vitest/utils": "npm:4.1.8" + es-module-lexer: "npm:^2.0.0" + expect-type: "npm:^1.3.0" + magic-string: "npm:^0.30.21" + obug: "npm:^2.1.1" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.3" + std-env: "npm:^4.0.0-rc.1" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^1.0.2" + tinyglobby: "npm:^0.2.15" + tinyrainbow: "npm:^3.1.0" + vite: "npm:^6.0.0 || ^7.0.0 || ^8.0.0" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.1.8 + "@vitest/browser-preview": 4.1.8 + "@vitest/browser-webdriverio": 4.1.8 + "@vitest/coverage-istanbul": 4.1.8 + "@vitest/coverage-v8": 4.1.8 + "@vitest/ui": 4.1.8 + happy-dom: "*" + jsdom: "*" + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/browser-playwright": + optional: true + "@vitest/browser-preview": + optional: true + "@vitest/browser-webdriverio": + optional: true + "@vitest/coverage-istanbul": + optional: true + "@vitest/coverage-v8": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vite: + optional: false + bin: + vitest: vitest.mjs + checksum: 10c0/f459c500f8818c7a2318cd23228b4e5c0b5efb25bf8e5cb7f116c6d26e51482b2f800a8bb19837c0b5f0d05c51519edbf502bc8ceb5bd86868e8facf1d2c498e + languageName: node + linkType: hard + "vizion@npm:~2.2.1": version: 2.2.1 resolution: "vizion@npm:2.2.1" @@ -20931,6 +22956,21 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.16": + version: 1.1.22 + resolution: "which-typed-array@npm:1.1.22" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.9" + call-bound: "npm:^1.0.4" + for-each: "npm:^0.3.5" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/e59db184a4e78b461fac3b05fafc1e7badbbedafbf04a967ee1de73717f1f9723a79699e7b5de71d449541cb5da8353efc01a4f8a72a152479850e54fa196c40 + languageName: node + linkType: hard + "which@npm:1.2.4": version: 1.2.4 resolution: "which@npm:1.2.4" @@ -20986,6 +23026,15 @@ __metadata: languageName: node linkType: hard +"wif@npm:^2.0.1, wif@npm:^2.0.6": + version: 2.0.6 + resolution: "wif@npm:2.0.6" + dependencies: + bs58check: "npm:<3.0.0" + checksum: 10c0/9ff55fdde73226bbae6a08b68298b6d14bbc22fa4cefac11edaacb2317c217700f715b95dc4432917f73511ec983f1bc032d22c467703b136f4e6ca7dfa9f10b + languageName: node + linkType: hard + "winreg@npm:0.0.12": version: 0.0.12 resolution: "winreg@npm:0.0.12" @@ -21297,31 +23346,31 @@ __metadata: languageName: node linkType: hard -"yuku-ast@npm:^0.1.7": - version: 0.1.7 - resolution: "yuku-ast@npm:0.1.7" +"yuku-ast@npm:0.7.0, yuku-ast@npm:^0.7.0": + version: 0.7.0 + resolution: "yuku-ast@npm:0.7.0" dependencies: - "@yuku-toolchain/types": "npm:0.5.43" - checksum: 10c0/1f62663f419112ab93993d6c0d015c177028f08db239c160dcdfbba553edcebe4e5457c0b5defb3765dc1e685a9439da43ef06f06c4ed78414957a6b88dcd792 + "@yuku-toolchain/types": "npm:0.7.0" + checksum: 10c0/8c55edb8d391a9ccef612e798bd68257db7853dcdb274863d99c1668eed9209ec8ded8336f6e1dae3ed6bfda1ffe3e92909147f06a78ae55b3c5ff2ffd046053 languageName: node linkType: hard -"yuku-codegen@npm:^0.6.3": - version: 0.6.5 - resolution: "yuku-codegen@npm:0.6.5" - dependencies: - "@yuku-codegen/binding-darwin-arm64": "npm:0.6.5" - "@yuku-codegen/binding-darwin-x64": "npm:0.6.5" - "@yuku-codegen/binding-freebsd-x64": "npm:0.6.5" - "@yuku-codegen/binding-linux-arm-gnu": "npm:0.6.5" - "@yuku-codegen/binding-linux-arm-musl": "npm:0.6.5" - "@yuku-codegen/binding-linux-arm64-gnu": "npm:0.6.5" - "@yuku-codegen/binding-linux-arm64-musl": "npm:0.6.5" - "@yuku-codegen/binding-linux-x64-gnu": "npm:0.6.5" - "@yuku-codegen/binding-linux-x64-musl": "npm:0.6.5" - "@yuku-codegen/binding-win32-arm64": "npm:0.6.5" - "@yuku-codegen/binding-win32-x64": "npm:0.6.5" - "@yuku-toolchain/types": "npm:0.5.43" +"yuku-codegen@npm:^0.7.0": + version: 0.7.0 + resolution: "yuku-codegen@npm:0.7.0" + dependencies: + "@yuku-codegen/binding-darwin-arm64": "npm:0.7.0" + "@yuku-codegen/binding-darwin-x64": "npm:0.7.0" + "@yuku-codegen/binding-freebsd-x64": "npm:0.7.0" + "@yuku-codegen/binding-linux-arm-gnu": "npm:0.7.0" + "@yuku-codegen/binding-linux-arm-musl": "npm:0.7.0" + "@yuku-codegen/binding-linux-arm64-gnu": "npm:0.7.0" + "@yuku-codegen/binding-linux-arm64-musl": "npm:0.7.0" + "@yuku-codegen/binding-linux-x64-gnu": "npm:0.7.0" + "@yuku-codegen/binding-linux-x64-musl": "npm:0.7.0" + "@yuku-codegen/binding-win32-arm64": "npm:0.7.0" + "@yuku-codegen/binding-win32-x64": "npm:0.7.0" + "@yuku-toolchain/types": "npm:0.7.0" dependenciesMeta: "@yuku-codegen/binding-darwin-arm64": optional: true @@ -21345,26 +23394,27 @@ __metadata: optional: true "@yuku-codegen/binding-win32-x64": optional: true - checksum: 10c0/fe591a9d25f9436a11bad6423f78b318985afee2ca2b846db6d02c0de169fe988eb723cc80f3962312ab322535b3436614e4a0413fdb74c0fb7eeb74195a0734 + checksum: 10c0/ea5f8dc75b0cc3bec3bbfc8d5eb82f0662bed5648e599d84c5cb0f4300c8a6d69807a75fc96d5755d841656d9296a5dc8c48ac398f6d6f939ccab7c6fcfd28a4 languageName: node linkType: hard -"yuku-parser@npm:^0.6.3": - version: 0.6.5 - resolution: "yuku-parser@npm:0.6.5" - dependencies: - "@yuku-parser/binding-darwin-arm64": "npm:0.6.5" - "@yuku-parser/binding-darwin-x64": "npm:0.6.5" - "@yuku-parser/binding-freebsd-x64": "npm:0.6.5" - "@yuku-parser/binding-linux-arm-gnu": "npm:0.6.5" - "@yuku-parser/binding-linux-arm-musl": "npm:0.6.5" - "@yuku-parser/binding-linux-arm64-gnu": "npm:0.6.5" - "@yuku-parser/binding-linux-arm64-musl": "npm:0.6.5" - "@yuku-parser/binding-linux-x64-gnu": "npm:0.6.5" - "@yuku-parser/binding-linux-x64-musl": "npm:0.6.5" - "@yuku-parser/binding-win32-arm64": "npm:0.6.5" - "@yuku-parser/binding-win32-x64": "npm:0.6.5" - "@yuku-toolchain/types": "npm:0.5.43" +"yuku-parser@npm:^0.7.0": + version: 0.7.0 + resolution: "yuku-parser@npm:0.7.0" + dependencies: + "@yuku-parser/binding-darwin-arm64": "npm:0.7.0" + "@yuku-parser/binding-darwin-x64": "npm:0.7.0" + "@yuku-parser/binding-freebsd-x64": "npm:0.7.0" + "@yuku-parser/binding-linux-arm-gnu": "npm:0.7.0" + "@yuku-parser/binding-linux-arm-musl": "npm:0.7.0" + "@yuku-parser/binding-linux-arm64-gnu": "npm:0.7.0" + "@yuku-parser/binding-linux-arm64-musl": "npm:0.7.0" + "@yuku-parser/binding-linux-x64-gnu": "npm:0.7.0" + "@yuku-parser/binding-linux-x64-musl": "npm:0.7.0" + "@yuku-parser/binding-win32-arm64": "npm:0.7.0" + "@yuku-parser/binding-win32-x64": "npm:0.7.0" + "@yuku-toolchain/types": "npm:0.7.0" + yuku-ast: "npm:0.7.0" dependenciesMeta: "@yuku-parser/binding-darwin-arm64": optional: true @@ -21388,7 +23438,7 @@ __metadata: optional: true "@yuku-parser/binding-win32-x64": optional: true - checksum: 10c0/b97197f369b6d2942a3a6176970b6a90bd5de8bfc3809739b32e7715d4dcf613436bcccce7cfd055bcf32e1be956c10aa9308d0b6e2dc2aabaebaa3f59abf433 + checksum: 10c0/cf8e7f1c1db306bbe9276c27a435c0b18d355a3c239734882243c5f555e4512ea87104a7b06a155867ef91316630f8328b9dd26b533bcce296fb41761e29a3f4 languageName: node linkType: hard