From 41195c8e7b487cf06c2a7d2a0ad432df66795ab8 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 10 Jun 2026 16:28:30 +0530 Subject: [PATCH 01/79] feat(cli): add Sequence V3 OMSClient path behind POLYGON_AGENT_OMS flag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 + core Phase 2 of the migration from @0xsequence/dapp-client (delegated browser-approved sessions) to @0xsequence/typescript-sdk (OMSClient embedded wallet, email login). Additive and flag-gated — the legacy path is unchanged and remains the default. New: - lib/oms-storage.ts: encrypted file-backed StorageManager + persisted EthereumPrivateKeyCredentialSigner key (survives process restarts). - lib/oms-client.ts: getOmsClient(walletName) singleton. - lib/oms-tx.ts: runOmsTx — drop-in for runDappClientTx; maps the {to,data,value}[] interface onto oms.wallet.sendTransaction with ported fee selection (prefer native or USDC, gated on availableRaw). - lib/tx-dispatch.ts: runTx routes to OMS when POLYGON_AGENT_OMS is set. - wallet login (email OTP) + wallet logout; list/address handle OMS pointers. Changed: - storage.ts: export GCM helpers; add OmsConfig/OmsWalletPointer + helpers and bootstrapOmsConfig. - All 17 runDappClientTx call sites now import runTx via the dispatch shim. - utils.ts: getReadRpcUrl with public-RPC fallback (OMS has no nodes access key). - x402-pay receipt poll uses getReadRpcUrl instead of session.projectAccessKey. Verified end-to-end on Polygon mainnet: email login -> persisted session -> call with POLYGON_AGENT_OMS=1 -> on-chain USDC transfer (tx 0xb5e35f2f74fcdb75ccd453e23af4e0d3a88f60e383f00fb2e0e43cbf41613ba1). --- packages/polygon-agent-cli/package.json | 1 + .../src/commands/agent-legacy.ts | 2 +- .../polygon-agent-cli/src/commands/agent.ts | 2 +- .../src/commands/operations.ts | 5 +- .../src/commands/polymarket.ts | 2 +- .../polygon-agent-cli/src/commands/wallet.ts | 190 ++- packages/polygon-agent-cli/src/index.ts | 4 +- .../polygon-agent-cli/src/lib/oms-client.ts | 43 + .../polygon-agent-cli/src/lib/oms-storage.ts | 80 + packages/polygon-agent-cli/src/lib/oms-tx.ts | 129 ++ packages/polygon-agent-cli/src/lib/storage.ts | 115 +- .../polygon-agent-cli/src/lib/tx-dispatch.ts | 24 + packages/polygon-agent-cli/src/lib/utils.ts | 24 + pnpm-lock.yaml | 1501 ++++++++++++++++- 14 files changed, 2016 insertions(+), 106 deletions(-) create mode 100644 packages/polygon-agent-cli/src/lib/oms-client.ts create mode 100644 packages/polygon-agent-cli/src/lib/oms-storage.ts create mode 100644 packages/polygon-agent-cli/src/lib/oms-tx.ts create mode 100644 packages/polygon-agent-cli/src/lib/tx-dispatch.ts diff --git a/packages/polygon-agent-cli/package.json b/packages/polygon-agent-cli/package.json index e232945..f971558 100644 --- a/packages/polygon-agent-cli/package.json +++ b/packages/polygon-agent-cli/package.json @@ -34,6 +34,7 @@ "@0xsequence/indexer": "^2.3.40", "@0xsequence/network": "^2.3.40", "@0xsequence/relayer": "3.0.0-beta.17", + "@0xsequence/typescript-sdk": "0.1.0-alpha.2", "@0xsequence/wallet-core": "3.0.0-beta.17", "@0xsequence/wallet-primitives": "3.0.0-beta.17", "@0xsequence/wallet-wdk": "3.0.0-beta.17", diff --git a/packages/polygon-agent-cli/src/commands/agent-legacy.ts b/packages/polygon-agent-cli/src/commands/agent-legacy.ts index 9166eae..557b5d2 100644 --- a/packages/polygon-agent-cli/src/commands/agent-legacy.ts +++ b/packages/polygon-agent-cli/src/commands/agent-legacy.ts @@ -7,7 +7,7 @@ import { Contract, Interface, JsonRpcProvider } from 'ethers'; import IDENTITY_ABI from '../../contracts/IdentityRegistry.json' with { type: 'json' }; import REPUTATION_ABI from '../../contracts/ReputationRegistry.json' with { type: 'json' }; -import { runDappClientTx } from '../lib/dapp-client.ts'; +import { runTx as runDappClientTx } from '../lib/tx-dispatch.ts'; import { resolveNetwork, formatUnits, diff --git a/packages/polygon-agent-cli/src/commands/agent.ts b/packages/polygon-agent-cli/src/commands/agent.ts index aa93a86..2822e92 100644 --- a/packages/polygon-agent-cli/src/commands/agent.ts +++ b/packages/polygon-agent-cli/src/commands/agent.ts @@ -4,7 +4,7 @@ import { Contract, Interface, JsonRpcProvider } from 'ethers'; import IDENTITY_ABI from '../../contracts/IdentityRegistry.json' with { type: 'json' }; import REPUTATION_ABI from '../../contracts/ReputationRegistry.json' with { type: 'json' }; -import { runDappClientTx } from '../lib/dapp-client.ts'; +import { runTx as runDappClientTx } from '../lib/tx-dispatch.ts'; import { resolveNetwork, formatUnits, diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index c2b9b37..4a6608b 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -2,15 +2,16 @@ import type { CommandModule, Argv } from 'yargs'; import React from 'react'; -import { runDappClientTx } from '../lib/dapp-client.ts'; import { loadWalletSession, loadBuilderConfig } from '../lib/storage.ts'; import { resolveErc20BySymbol } from '../lib/token-directory.ts'; +import { runTx as runDappClientTx } from '../lib/tx-dispatch.ts'; import { resolveNetwork, formatUnits, parseUnits, getExplorerUrl, getRpcUrl, + getReadRpcUrl, fileCoerce } from '../lib/utils.ts'; import { isTTY, inkRender } from '../ui/render.js'; @@ -2136,7 +2137,7 @@ export const x402PayCommand: CommandModule = { process.stderr.write('Waiting for confirmation...\n'); const rpcUrl = process.env.SEQUENCE_NODES_URL?.replace('{network}', payChain) || - `https://nodes.sequence.app/${payChain}/${session.projectAccessKey || process.env.SEQUENCE_PROJECT_ACCESS_KEY || ''}`; + getReadRpcUrl(resolveNetwork(String(payChainId))); for (let attempt = 0; attempt < 30; attempt++) { await new Promise((r) => setTimeout(r, 3000)); try { diff --git a/packages/polygon-agent-cli/src/commands/polymarket.ts b/packages/polygon-agent-cli/src/commands/polymarket.ts index d792da3..38ec5fd 100644 --- a/packages/polygon-agent-cli/src/commands/polymarket.ts +++ b/packages/polygon-agent-cli/src/commands/polymarket.ts @@ -6,7 +6,6 @@ import type { CommandModule } from 'yargs'; -import { runDappClientTx } from '../lib/dapp-client.ts'; import { getMarkets, getMarket, @@ -26,6 +25,7 @@ import { COLLATERAL_ONRAMP } from '../lib/polymarket.ts'; import { loadWalletSession, savePolymarketKey, loadPolymarketKey } from '../lib/storage.ts'; +import { runTx as runDappClientTx } from '../lib/tx-dispatch.ts'; // ─── handlers ──────────────────────────────────────────────────────────────── diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index ba04401..129d348 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -14,6 +14,7 @@ import { decryptSession } from '@polygonlabs/agent-shared'; +import { getOmsClient } from '../lib/oms-client.ts'; import { RelayClient } from '../lib/relay-client.ts'; import { saveWalletSession, @@ -23,7 +24,10 @@ import { deleteWalletRequest, listWallets, deleteWallet, - sessionPayloadToWalletSession + sessionPayloadToWalletSession, + saveOmsWalletPointer, + loadOmsWalletPointer, + deleteOmsWallet } from '../lib/storage.ts'; import { normalizeChain, resolveNetwork, fileCoerce } from '../lib/utils.ts'; import { isTTY, inkRender } from '../ui/render.js'; @@ -450,16 +454,34 @@ async function handleList(): Promise { try { const wallets = await listWallets(); - const details: Array<{ name: string; address: string; chain: string; chainId: number }> = []; + const details: Array<{ + name: string; + address: string; + chain: string; + chainId: number; + loginMethod?: string; + }> = []; for (const name of wallets) { const session = await loadWalletSession(name); - if (session) { + // A legacy WalletSession has a `chainId`; an OMS pointer has `loginMethod: 'email'`. + if (session && 'chainId' in session && typeof session.chainId === 'number') { details.push({ name, address: session.walletAddress, chain: session.chain, chainId: session.chainId }); + } else { + const pointer = await loadOmsWalletPointer(name); + if (pointer) { + details.push({ + name, + address: pointer.walletAddress, + chain: 'polygon', + chainId: 137, + loginMethod: pointer.loginMethod + }); + } } } @@ -484,27 +506,37 @@ async function handleAddress(argv: AddressArgs): Promise { try { const session = await loadWalletSession(name); - if (!session) { - throw new Error(`Wallet not found: ${name}`); - } - - if (!isTTY()) { - jsonOut({ - ok: true, - walletAddress: session.walletAddress, - chain: session.chain, - chainId: session.chainId - }); - } else { - await inkRender( - React.createElement(WalletAddressUI, { - name, - address: session.walletAddress, + if (session && 'chainId' in session && typeof session.chainId === 'number') { + if (!isTTY()) { + jsonOut({ + ok: true, + walletAddress: session.walletAddress, chain: session.chain, chainId: session.chainId - }) - ); + }); + } else { + await inkRender( + React.createElement(WalletAddressUI, { + name, + address: session.walletAddress, + chain: session.chain, + chainId: session.chainId + }) + ); + } + return; } + + // OMS pointer fallback + const pointer = await loadOmsWalletPointer(name); + if (!pointer) throw new Error(`Wallet not found: ${name}`); + jsonOut({ + ok: true, + walletAddress: pointer.walletAddress, + chain: 'polygon', + chainId: 137, + loginMethod: pointer.loginMethod + }); } catch (error) { jsonOut({ ok: false, error: (error as Error).message }); process.exit(1); @@ -533,6 +565,90 @@ async function handleRemove(argv: RemoveArgs): Promise { } } +// --- Subcommand: wallet login (OMS / Sequence V3 email auth) --- +interface LoginArgs { + name: string; + email: string; + code?: string; +} + +// Read a line from stdin (for interactive OTP entry). +function readLine(promptText: string): Promise { + return new Promise((resolve) => { + process.stderr.write(promptText); + const onData = (chunk: Buffer) => { + process.stdin.off('data', onData); + process.stdin.pause(); + resolve(chunk.toString('utf8').trim()); + }; + process.stdin.resume(); + process.stdin.on('data', onData); + }); +} + +async function handleLogin(argv: LoginArgs): Promise { + const name = argv.name; + const email = argv.email; + + try { + if (!email) throw new Error('--email is required'); + + const oms = getOmsClient(name); + + // startEmailAuth + completeEmailAuth must happen in the same process — the + // pending-auth commitment is held in memory, not persisted. So we send the + // OTP, then obtain the code (either --code or an interactive stdin prompt). + await oms.wallet.startEmailAuth({ email }); + + // The OTP must be entered in THIS process (the pending-auth commitment is + // in-memory only). Obtain it from --code, else prompt on TTY, else read one + // line from stdin (so `echo 123456 | wallet login ...` works in automation). + let code = argv.code; + if (!code) { + process.stderr.write(`OTP sent to ${email}. `); + code = await readLine('Enter the 6-digit code: '); + } + if (!code) throw new Error('No OTP code provided'); + + const result = await oms.wallet.completeEmailAuth({ code }); + const walletAddress = result.walletAddress; + + await saveOmsWalletPointer(name, { + walletAddress, + loginMethod: 'email', + email, + createdAt: new Date().toISOString() + }); + + jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'email' }); + } catch (error) { + jsonOut({ ok: false, error: (error as Error).message }); + process.exit(1); + } +} + +// --- Subcommand: wallet logout (OMS) --- +interface LogoutArgs { + name: string; +} + +async function handleLogout(argv: LogoutArgs): Promise { + const name = argv.name; + try { + try { + const oms = getOmsClient(name); + await oms.wallet.signOut(); + } catch { + // signOut may fail if no session/config — proceed to delete local state anyway + } + await deleteOmsWallet(name); + jsonOut({ ok: true, walletName: name, loggedOut: true }); + } catch (error) { + jsonOut({ ok: false, error: (error as Error).message }); + process.exit(1); + } +} + // --- Main wallet command --- export const walletCommand: CommandModule = { command: 'wallet', @@ -616,6 +732,38 @@ export const walletCommand: CommandModule = { }), handler: (argv) => handleImport(argv as unknown as ImportArgs) }) + .command({ + command: 'login', + describe: 'Log in with email (Sequence V3 embedded wallet)', + builder: (y) => + y + .option('name', { + type: 'string', + default: 'main', + describe: 'Wallet name' + }) + .option('email', { + type: 'string', + demandOption: true, + describe: 'Email address to authenticate with' + }) + .option('code', { + type: 'string', + describe: 'OTP code (only if obtained out-of-band in this same session)' + }), + handler: (argv) => handleLogin(argv as unknown as LoginArgs) + }) + .command({ + command: 'logout', + describe: 'Log out and clear the local Sequence V3 session', + builder: (y) => + y.option('name', { + type: 'string', + default: 'main', + describe: 'Wallet name' + }), + handler: (argv) => handleLogout(argv as unknown as LogoutArgs) + }) .command({ command: 'list', describe: 'List all wallets', diff --git a/packages/polygon-agent-cli/src/index.ts b/packages/polygon-agent-cli/src/index.ts index 2ad0c7e..4f20ca4 100644 --- a/packages/polygon-agent-cli/src/index.ts +++ b/packages/polygon-agent-cli/src/index.ts @@ -23,13 +23,15 @@ import { import { polymarketCommand } from './commands/polymarket.ts'; import { setupCommand } from './commands/setup.ts'; import { walletCommand } from './commands/wallet.ts'; -import { bootstrapAccessKey } from './lib/storage.ts'; +import { bootstrapAccessKey, bootstrapOmsConfig } from './lib/storage.ts'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '..', 'package.json'), 'utf8')); // Auto-load access key from ~/.polygon-agent/builder.json if not already in env bootstrapAccessKey(); +// Auto-load OMS (Sequence V3) credentials from builder.json if not already in env +bootstrapOmsConfig(); // Legacy aliases — hidden commands that map to the new structure const legacyAliases = [ diff --git a/packages/polygon-agent-cli/src/lib/oms-client.ts b/packages/polygon-agent-cli/src/lib/oms-client.ts new file mode 100644 index 0000000..42e1393 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/oms-client.ts @@ -0,0 +1,43 @@ +// OMSClient factory — builds a per-process, per-wallet Sequence V3 client backed +// by file storage + a persisted credential signer, so sessions survive restarts. + +import { EthereumPrivateKeyCredentialSigner, OMSClient } from '@0xsequence/typescript-sdk'; + +import { FileStorageManager, loadOrCreateCredentialKey } from './oms-storage.ts'; +import { loadOmsConfig } from './storage.ts'; + +const cache = new Map(); + +/** + * Get (or build) the OMSClient for a wallet name. Cached per-process so repeated + * calls within one CLI invocation reuse the same client + storage handle. + * + * Reads publishableKey + projectId from env or builder.json (loadOmsConfig). + * Throws a clear error if OMS credentials are not configured. + */ +export function getOmsClient(walletName: string): OMSClient { + const cached = cache.get(walletName); + if (cached) return cached; + + const cfg = loadOmsConfig(); + if (!cfg) { + throw new Error( + 'OMS credentials not configured. Set SEQUENCE_PUBLISHABLE_KEY + SEQUENCE_OMS_PROJECT_ID ' + + '(or run `polygon-agent setup`). Get them from the Sequence Builder dashboard.' + ); + } + + const credentialSigner = new EthereumPrivateKeyCredentialSigner( + loadOrCreateCredentialKey(walletName) + ); + + const oms = new OMSClient({ + publishableKey: cfg.publishableKey, + projectId: cfg.omsProjectId, + storage: new FileStorageManager(walletName), + credentialSigner + }); + + cache.set(walletName, oms); + return oms; +} diff --git a/packages/polygon-agent-cli/src/lib/oms-storage.ts b/packages/polygon-agent-cli/src/lib/oms-storage.ts new file mode 100644 index 0000000..ae78df1 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/oms-storage.ts @@ -0,0 +1,80 @@ +// File-backed StorageManager + credential-key persistence for the OMS SDK. +// +// The OMS typescript-sdk persists its wallet session through a StorageManager +// (a simple get/set/delete string KV) and signs requests with a CredentialSigner. +// For a headless CLI we: +// - back the StorageManager with encrypted files under ~/.polygon-agent/oms//store/ +// - persist the EthereumPrivateKeyCredentialSigner's private key to disk (encrypted) +// so a session survives across CLI invocations (verified in the Phase 0 spike). + +import { randomBytes } from 'node:crypto'; +import fs from 'node:fs'; +import path from 'node:path'; + +import type { StorageManager } from '@0xsequence/typescript-sdk'; + +import type { CipherData } from './storage.ts'; + +import { decrypt, encrypt, omsWalletDir } from './storage.ts'; + +// Encode a storage key into a filesystem-safe filename. +function keyToFile(dir: string, key: string): string { + const safe = Buffer.from(key).toString('hex'); + return path.join(dir, `${safe}.enc`); +} + +/** + * Synchronous, encrypted, file-backed StorageManager scoped to one wallet name. + * Each entry is an AES-256-GCM blob written under /store/. + */ +export class FileStorageManager implements StorageManager { + private dir: string; + + constructor(walletName: string) { + this.dir = path.join(omsWalletDir(walletName), 'store'); + if (!fs.existsSync(this.dir)) fs.mkdirSync(this.dir, { recursive: true, mode: 0o700 }); + } + + get(key: string): string | null { + const file = keyToFile(this.dir, key); + if (!fs.existsSync(file)) return null; + try { + const cipher = JSON.parse(fs.readFileSync(file, 'utf8')) as CipherData; + return decrypt(cipher); + } catch { + return null; + } + } + + set(key: string, value: string): void { + const file = keyToFile(this.dir, key); + fs.writeFileSync(file, JSON.stringify(encrypt(value)), { mode: 0o600 }); + } + + delete(key: string): void { + const file = keyToFile(this.dir, key); + if (fs.existsSync(file)) fs.unlinkSync(file); + } +} + +const CREDENTIAL_KEY_FILE = 'credential.key.enc'; + +/** + * Load the persisted credential private key for a wallet, or generate + persist + * a new one. Returns the raw 32-byte key for EthereumPrivateKeyCredentialSigner. + */ +export function loadOrCreateCredentialKey(walletName: string): Uint8Array { + const file = path.join(omsWalletDir(walletName), CREDENTIAL_KEY_FILE); + if (fs.existsSync(file)) { + const cipher = JSON.parse(fs.readFileSync(file, 'utf8')) as CipherData; + return Uint8Array.from(Buffer.from(decrypt(cipher), 'hex')); + } + const keyHex = Buffer.from(randomBytes(32)).toString('hex'); + fs.writeFileSync(file, JSON.stringify(encrypt(keyHex)), { mode: 0o600 }); + return Uint8Array.from(Buffer.from(keyHex, 'hex')); +} + +/** True if a credential key has already been persisted for this wallet. */ +export function hasCredentialKey(walletName: string): boolean { + return fs.existsSync(path.join(omsWalletDir(walletName), CREDENTIAL_KEY_FILE)); +} diff --git a/packages/polygon-agent-cli/src/lib/oms-tx.ts b/packages/polygon-agent-cli/src/lib/oms-tx.ts new file mode 100644 index 0000000..cec3d82 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/oms-tx.ts @@ -0,0 +1,129 @@ +// OMS transaction primitive — drop-in replacement for runDappClientTx. +// +// Keeps the exact same { walletName, chainId, transactions[], broadcast, preferNativeFee } +// interface and { walletAddress, txHash?, dryRun?, feeOptionUsed? } result so the +// existing command call sites need only swap which implementation they call (via +// the runTx dispatch). Internally maps onto oms.wallet.sendTransaction. + +import type { FeeOptionWithBalance } from '@0xsequence/typescript-sdk'; + +import { findNetworkById, isOmsSdkError, TransactionMode } from '@0xsequence/typescript-sdk'; + +import { getOmsClient } from './oms-client.ts'; + +export interface OmsTxTransaction { + to: `0x${string}` | string; + value?: bigint | number; + data: string; +} + +export interface OmsTxParams { + walletName: string; + chainId: number; + transactions: OmsTxTransaction[]; + broadcast: boolean; + preferNativeFee?: boolean; +} + +export interface OmsTxResult { + walletAddress: string; + txHash?: string; + dryRun?: boolean; + feeOptionUsed?: unknown; +} + +const USDC_POLYGON = '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359'; + +// Build a selectFeeOption callback mirroring the legacy fee logic: +// prefer native gas if requested, else prefer USDC, always gated on affordability. +function makeFeeSelector(preferNativeFee: boolean) { + return (opts: FeeOptionWithBalance[]) => { + const usable = opts.filter( + (o) => o.availableRaw != null && BigInt(o.availableRaw) >= BigInt(o.feeOption.value) + ); + const isNative = (o: FeeOptionWithBalance) => + !o.feeOption.token.contractAddress || + o.feeOption.token.symbol?.toUpperCase() === 'POL' || + o.feeOption.token.symbol?.toUpperCase() === 'ETH'; + + let pick: FeeOptionWithBalance | undefined; + if (preferNativeFee) pick = usable.find(isNative); + if (!pick) { + pick = + usable.find((o) => o.feeOption.token.contractAddress?.toLowerCase() === USDC_POLYGON) ?? + usable.find((o) => o.feeOption.token.symbol?.toUpperCase().includes('USDC')) ?? + (preferNativeFee ? undefined : usable.find(isNative)) ?? + usable[0]; + } + if (!pick) { + throw new Error( + 'Unable to pay gas: wallet has no native token and no usable fee token. ' + + 'Fund with POL (polygon-agent fund), or hold USDC for fees.' + ); + } + return { token: pick.feeOption.token.symbol }; + }; +} + +export async function runOmsTx(params: OmsTxParams): Promise { + const { walletName, chainId, transactions, broadcast, preferNativeFee = false } = params; + + const oms = getOmsClient(walletName); + const walletAddress = oms.wallet.walletAddress; + if (!walletAddress) { + throw new Error( + `No active session for wallet '${walletName}'. Run: polygon-agent wallet login --email ` + ); + } + + // Dry-run: print the same JSON shape the legacy primitive produced and return. + if (!broadcast) { + const bigintReplacer = (_k: string, v: unknown) => (typeof v === 'bigint' ? v.toString() : v); + console.log( + JSON.stringify( + { ok: true, dryRun: true, walletName, walletAddress, transactions }, + bigintReplacer, + 2 + ) + ); + return { walletAddress, dryRun: true }; + } + + const network = findNetworkById(chainId); + if (!network) throw new Error(`Unsupported chainId for OMS: ${chainId}`); + + const selectFeeOption = makeFeeSelector(preferNativeFee); + + // OMS sendTransaction takes a single tx. For multi-tx bundles (only `deposit` + // sends 2: approve + supply) we submit sequentially. NON-ATOMIC: if the second + // fails, the first has already landed. Return the last tx's hash. + let lastTxHash: string | undefined; + let lastFee: unknown; + for (const tx of transactions) { + try { + const res = await oms.wallet.sendTransaction({ + network, + to: tx.to as `0x${string}`, + data: tx.data as `0x${string}`, + value: tx.value != null ? BigInt(tx.value) : 0n, + mode: TransactionMode.Relayer, + waitForStatus: true, + selectFeeOption + }); + lastTxHash = res.txnHash ?? lastTxHash; + } catch (e) { + if ( + isOmsSdkError(e) && + (e.code === 'OMS_SESSION_EXPIRED' || e.code === 'OMS_SESSION_MISSING') + ) { + throw new Error( + `Session expired or missing for wallet '${walletName}'. ` + + `Run: polygon-agent wallet login --email ` + ); + } + throw e; + } + } + + return { walletAddress, txHash: lastTxHash, feeOptionUsed: lastFee }; +} diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index a8bf68f..2d46515 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -8,7 +8,7 @@ import type { SessionPayload } from '@polygonlabs/agent-shared'; const STORAGE_DIR = path.join(os.homedir(), '.polygon-agent'); const ENCRYPTION_KEY_FILE = path.join(STORAGE_DIR, '.encryption-key'); -interface CipherData { +export interface CipherData { iv: string; encrypted: string; authTag: string; @@ -21,6 +21,24 @@ export interface BuilderConfig { projectId: number; } +/** + * OMS (Sequence V3 "Open Money Stack") credentials for the typescript-sdk path. + * publishableKey + omsProjectId come from the Sequence Builder dashboard. + * Stored alongside builder.json so `wallet login` and tx submission can read them. + */ +export interface OmsConfig { + publishableKey: string; + omsProjectId: string; +} + +/** Pointer record for an OMS wallet (the SDK persists the real session in its StorageManager). */ +export interface OmsWalletPointer { + walletAddress: string; + loginMethod: 'email'; + email: string; + createdAt: string; +} + export interface WalletSession { walletAddress: string; chainId: number; @@ -36,7 +54,7 @@ export interface WalletSession { createdAt: string; } -function ensureStorageDir(): void { +export function ensureStorageDir(): void { if (!fs.existsSync(STORAGE_DIR)) { fs.mkdirSync(STORAGE_DIR, { recursive: true, mode: 0o700 }); } @@ -49,7 +67,9 @@ function ensureStorageDir(): void { } } -function getEncryptionKey(): Buffer { +export const STORAGE_ROOT = STORAGE_DIR; + +export function getEncryptionKey(): Buffer { ensureStorageDir(); if (fs.existsSync(ENCRYPTION_KEY_FILE)) { @@ -61,7 +81,7 @@ function getEncryptionKey(): Buffer { return key; } -function encrypt(plaintext: string): CipherData { +export function encrypt(plaintext: string): CipherData { const key = getEncryptionKey(); const iv = randomBytes(16); const cipher = createCipheriv('aes-256-gcm', key, iv); @@ -78,7 +98,7 @@ function encrypt(plaintext: string): CipherData { }; } -function decrypt(cipherData: CipherData): string { +export function decrypt(cipherData: CipherData): string { const key = getEncryptionKey(); const iv = Buffer.from(cipherData.iv, 'hex'); const authTag = Buffer.from(cipherData.authTag, 'hex'); @@ -272,6 +292,91 @@ export async function loadPolymarketKey(): Promise { ); } +// ─── OMS (Sequence V3 / typescript-sdk) config + session storage ────────────── + +/** Directory holding the OMS SDK's per-wallet storage + credential key. */ +export function omsWalletDir(name: string): string { + ensureStorageDir(); + const dir = path.join(STORAGE_DIR, 'oms', name); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true, mode: 0o700 }); + } + return dir; +} + +/** Persist OMS publishableKey + projectId into builder.json (merged with existing data). */ +export async function saveOmsConfig(config: OmsConfig): Promise { + ensureStorageDir(); + const configPath = path.join(STORAGE_DIR, 'builder.json'); + let data: Record = {}; + try { + data = JSON.parse(fs.readFileSync(configPath, 'utf8')); + } catch { + // start fresh + } + data.publishableKey = config.publishableKey; + data.omsProjectId = config.omsProjectId; + fs.writeFileSync(configPath, JSON.stringify(data, null, 2), { mode: 0o600 }); +} + +/** + * Resolve OMS credentials. Priority: env vars → builder.json. + * Returns null if neither key is available. + */ +export function loadOmsConfig(): OmsConfig | null { + const envPk = process.env.SEQUENCE_PUBLISHABLE_KEY; + const envProj = process.env.SEQUENCE_OMS_PROJECT_ID; + if (envPk && envProj) return { publishableKey: envPk, omsProjectId: envProj }; + + const configPath = path.join(STORAGE_DIR, 'builder.json'); + if (fs.existsSync(configPath)) { + try { + const data = JSON.parse(fs.readFileSync(configPath, 'utf8')); + const publishableKey = envPk ?? data.publishableKey; + const omsProjectId = envProj ?? data.omsProjectId; + if (publishableKey && omsProjectId) return { publishableKey, omsProjectId }; + } catch { + // ignore malformed config + } + } + return null; +} + +/** Populate OMS env vars from builder.json at startup (mirrors bootstrapAccessKey). */ +export function bootstrapOmsConfig(): void { + const cfg = loadOmsConfig(); + if (!cfg) return; + if (!process.env.SEQUENCE_PUBLISHABLE_KEY) + process.env.SEQUENCE_PUBLISHABLE_KEY = cfg.publishableKey; + if (!process.env.SEQUENCE_OMS_PROJECT_ID) process.env.SEQUENCE_OMS_PROJECT_ID = cfg.omsProjectId; +} + +export async function saveOmsWalletPointer(name: string, pointer: OmsWalletPointer): Promise { + ensureStorageDir(); + const walletPath = path.join(STORAGE_DIR, 'wallets', `${name}.json`); + fs.writeFileSync(walletPath, JSON.stringify(pointer, null, 2), { mode: 0o600 }); +} + +export async function loadOmsWalletPointer(name: string): Promise { + const walletPath = path.join(STORAGE_DIR, 'wallets', `${name}.json`); + if (!fs.existsSync(walletPath)) return null; + try { + const data = JSON.parse(fs.readFileSync(walletPath, 'utf8')); + if (data.loginMethod === 'email' && data.walletAddress) return data as OmsWalletPointer; + } catch { + // not an OMS pointer (likely a legacy WalletSession) + } + return null; +} + +/** Remove an OMS wallet's pointer + the SDK's per-wallet state dir. */ +export async function deleteOmsWallet(name: string): Promise { + const walletPath = path.join(STORAGE_DIR, 'wallets', `${name}.json`); + if (fs.existsSync(walletPath)) fs.unlinkSync(walletPath); + const dir = path.join(STORAGE_DIR, 'oms', name); + if (fs.existsSync(dir)) fs.rmSync(dir, { recursive: true, force: true }); +} + /** Map a v2 SessionPayload into the WalletSession shape. */ export function sessionPayloadToWalletSession(payload: SessionPayload): WalletSession { const chainName = resolveChainNameFromId(payload.chain_id); diff --git a/packages/polygon-agent-cli/src/lib/tx-dispatch.ts b/packages/polygon-agent-cli/src/lib/tx-dispatch.ts new file mode 100644 index 0000000..d754138 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/tx-dispatch.ts @@ -0,0 +1,24 @@ +// Transaction dispatch shim — routes to the OMS (Sequence V3) primitive when +// POLYGON_AGENT_OMS is set, otherwise the legacy dapp-client primitive. +// +// Command call sites import `runTx` from here instead of runDappClientTx, so the +// migration is a one-line import change per site and both paths coexist during +// the transition. + +import type { OmsTxParams, OmsTxResult } from './oms-tx.ts'; + +import { runDappClientTx } from './dapp-client.ts'; +import { runOmsTx } from './oms-tx.ts'; + +export type RunTxParams = OmsTxParams; +export type RunTxResult = OmsTxResult; + +/** True when the OMS (V3) path is enabled via env flag. */ +export function isOmsEnabled(): boolean { + return ['1', 'true', 'yes'].includes(String(process.env.POLYGON_AGENT_OMS || '').toLowerCase()); +} + +export async function runTx(params: RunTxParams): Promise { + if (isOmsEnabled()) return runOmsTx(params); + return runDappClientTx(params); +} diff --git a/packages/polygon-agent-cli/src/lib/utils.ts b/packages/polygon-agent-cli/src/lib/utils.ts index bf4c936..e2fd6b1 100644 --- a/packages/polygon-agent-cli/src/lib/utils.ts +++ b/packages/polygon-agent-cli/src/lib/utils.ts @@ -85,6 +85,30 @@ export function getRpcUrl(network: NetworkMetadata): string { return `https://nodes.sequence.app/${network.name}/${accessKey}`; } +// Public RPC fallbacks per chain — used for read-only calls (e.g. tx receipt +// polling) when no Sequence project access key is available (the OMS path uses +// publishableKey/projectId, not a nodes.sequence.app access key). +const PUBLIC_RPC_BY_CHAIN_ID: Record = { + 137: 'https://polygon-rpc.com', + 80002: 'https://rpc-amoy.polygon.technology', + 8453: 'https://mainnet.base.org', + 84532: 'https://sepolia.base.org', + 1: 'https://eth.llamarpc.com', + 42161: 'https://arb1.arbitrum.io/rpc', + 10: 'https://mainnet.optimism.io' +}; + +/** + * Read-only RPC URL. Prefers the Sequence nodes endpoint when a project access + * key is configured; otherwise falls back to a public RPC for the chain. Safe + * for both the legacy (dapp-client) and OMS (typescript-sdk) paths. + */ +export function getReadRpcUrl(network: NetworkMetadata): string { + const accessKey = process.env.SEQUENCE_PROJECT_ACCESS_KEY; + if (accessKey) return `https://nodes.sequence.app/${network.name}/${accessKey}`; + return PUBLIC_RPC_BY_CHAIN_ID[network.chainId] || `https://polygon-rpc.com`; +} + /** Explorer URL for transaction */ export function getExplorerUrl(network: NetworkMetadata, txHash: string): string { const raw = network.blockExplorer?.rootUrl || `https://polygonscan.com`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fdf2c1..68cb3a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,7 +59,7 @@ importers: dependencies: 0xtrails: specifier: ^0.14.0 - version: 0.14.0(88585348c7fe3646803356f2c1f98627) + version: 0.14.0(a87722edfdef515bc3a23e8377c33652) '@0xsequence/dapp-client': specifier: 3.0.0-beta.16 version: 3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) @@ -136,6 +136,9 @@ importers: '@0xsequence/relayer': specifier: 3.0.0-beta.17 version: 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + '@0xsequence/typescript-sdk': + specifier: 0.1.0-alpha.2 + version: 0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) '@0xsequence/wallet-core': specifier: 3.0.0-beta.17 version: 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) @@ -219,6 +222,34 @@ importers: specifier: ^0.28.0 version: 0.28.0 + packages/remotion-video: + dependencies: + '@remotion/cli': + specifier: 4.0.290 + version: 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/renderer': + specifier: 4.0.290 + version: 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + remotion: + specifier: 4.0.290 + version: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + devDependencies: + '@types/react': + specifier: ^18.3.3 + version: 18.3.28 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.7(@types/react@18.3.28) + typescript: + specifier: ^5.8.3 + version: 5.9.3 + packages/shared: dependencies: '@noble/ciphers': @@ -421,6 +452,9 @@ packages: '@0xsequence/tee-verifier@0.1.2': resolution: {integrity: sha512-7sKr8/T4newknx6LAukjlRI3siGiGhBnZohz2Z3jX0zb0EBQdKUq0L//A7CPSckHFPxTg/QvQU2v8e9x9GfkDw==} + '@0xsequence/typescript-sdk@0.1.0-alpha.2': + resolution: {integrity: sha512-sRg+j1z+EHunnGxR934xOTtWTifyhA4seu88KBBS/9Dxap9uGt0e1bdO+v84m2XeP1GF8qLdlkFYQVAey02AjQ==} + '@0xsequence/utils@2.3.41': resolution: {integrity: sha512-wikEOiYxfq+Iqsfb9JF6xHnpyXHaUre+2FUQpk3teo7/FXy0xtHdzxtfbhGn5/EcMnlSErk1nt6isrcxlkkHuQ==} peerDependencies: @@ -532,6 +566,11 @@ packages: resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} + '@babel/parser@7.24.1': + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@7.29.0': resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} @@ -734,6 +773,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} @@ -752,6 +797,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} @@ -770,6 +821,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.27.3': resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} @@ -788,6 +845,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.27.3': resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} @@ -806,6 +869,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} @@ -824,6 +893,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.27.3': resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} @@ -842,6 +917,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} @@ -860,6 +941,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.27.3': resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} @@ -878,6 +965,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} @@ -896,6 +989,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.27.3': resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} @@ -914,6 +1013,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.27.3': resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} @@ -932,6 +1037,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.27.3': resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} @@ -950,6 +1061,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.27.3': resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} @@ -968,6 +1085,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.27.3': resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} @@ -986,6 +1109,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.27.3': resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} @@ -1004,6 +1133,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.27.3': resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} @@ -1022,6 +1157,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.27.3': resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} @@ -1034,6 +1175,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} @@ -1052,6 +1199,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.27.3': resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} @@ -1064,6 +1217,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} @@ -1082,6 +1241,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.27.3': resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} @@ -1112,6 +1277,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} @@ -1130,6 +1301,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} @@ -1148,6 +1325,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.27.3': resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} @@ -1166,6 +1349,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.27.3': resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} @@ -2105,7 +2294,7 @@ packages: '@paulmillr/qr@0.2.1': resolution: {integrity: sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==} - deprecated: 'The package is now available as "qr": npm install qr' + deprecated: 'Switch to "qr" (new package name) for security updates: npm install qr' '@polygonlabs/apps-team-lint@2.0.2': resolution: {integrity: sha512-vMfjNcPQpR8WEXt+/YG781Ktym82XPrKkGwfgqLBk53Gx18VBzO113wZuFvvpKHZXg8lzqSIY8UgJowcJUaxtw==} @@ -2625,6 +2814,99 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + '@remotion/bundler@4.0.290': + resolution: {integrity: sha512-nE9BZKcldoHQ2Z26+vq0MUnt1Hj8UnRyt7wNlwPpTOz0IzUnaPpii99vMlUL64krqkNLGW80V5kcABViODaM+g==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/cli@4.0.290': + resolution: {integrity: sha512-1uagTi1+JSfMmF52+4+5LbHD/+MoJvTEuB7V7cCI8xthYpWjgkyGIola235EfqnzwIoN6pQUOBZHH2fQZuLK7Q==} + hasBin: true + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/compositor-darwin-arm64@4.0.290': + resolution: {integrity: sha512-GRo1E2M2i82WDMX2t2CB1GwfoWRu7iX7WDiwOH8g1Ro5jEH8SW2Ike3wqJNrohAriISm8x+/3gKYmYUps8p/Sw==} + cpu: [arm64] + os: [darwin] + + '@remotion/compositor-darwin-x64@4.0.290': + resolution: {integrity: sha512-gEQEcDBRtm6b2nW7kDwJdFWG8XipLhb7AP7WFO+u7OwFr9YmSDYCDIz4GnL8XMrvzDAwDmzj6zgJkP+v3jgirw==} + cpu: [x64] + os: [darwin] + + '@remotion/compositor-linux-arm64-gnu@4.0.290': + resolution: {integrity: sha512-OAxfdm2HyiTJCCnkJjAU9bJBqdw62g+NwapSD0/KwVPfXRWV/2zN+LW1ToanQ96HdVtNGwXryTv4FO0HO2IlOA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@remotion/compositor-linux-arm64-musl@4.0.290': + resolution: {integrity: sha512-oo52TZX343ZuGCX+JeJpmPjSTLe9hCV6UlxjAJZhNzjkihUDFU9twa7jwE2ktZDsRAgvIxrs18xwQN8hLFxHUQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@remotion/compositor-linux-x64-gnu@4.0.290': + resolution: {integrity: sha512-IoHvGiqUZqmdUCSr8s5/EFwcZa3v0x7PHD3fxr73xZyddXDla1soFiXQO1xQzH7C5LmuEx1ekoQhxcx8oFRf0A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@remotion/compositor-linux-x64-musl@4.0.290': + resolution: {integrity: sha512-QN++ycuoeeeSLGrOA/MJ2onkqMRm0FaHh/6dh60dVK9wjWoMDrzZL1V8fPX075SyWVL01SN7bzTyotwaUJrMxg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@remotion/compositor-win32-x64-msvc@4.0.290': + resolution: {integrity: sha512-acRUOIeswQuJ74tKnuziwZIUcsQ6isQpwYUla0CiFrC9MVdbTFlt37eyvmkgXXkCartPWlFptfDYDv9li6mBmA==} + cpu: [x64] + os: [win32] + + '@remotion/media-parser@4.0.290': + resolution: {integrity: sha512-u3/nRI7ghf0Cnci2DrbHrdHLIW7GFCaV5qVNT6IzOqdpVmwiS9sz3jAM85r7wrMKfed2QqVbKsRaLSY3MGA0RQ==} + + '@remotion/media-utils@4.0.290': + resolution: {integrity: sha512-VbBy7NtcLm/jG9c2nq2DYSMIx6AI+EyX/66EQ57txnMIuR/OSdx2j0PoMg/lyAl1RzZp8k/epBKTcod420y2PQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/player@4.0.290': + resolution: {integrity: sha512-RsOSm3NOGwyRz11nRqfgFs0Mx7pWrXnHCcmWWUy5iaPKEbt8sCPsO4tVN5Ceogh0QdesoC3FGNeD/iGYk46e+A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/renderer@4.0.290': + resolution: {integrity: sha512-/yNFkY5L/4jOmvgMqAmAa+qXenRilJrSWWDMdLFta2znXIE2m8NGZzQo9MlE7I+N1DcdZ2W+vrka01Epf7HIgQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/streaming@4.0.290': + resolution: {integrity: sha512-i043W/aXDG2ffOhMqxj9DjzCegzraH+WaiAZ8wMihXWkkYz83r2RgN+w+Zb1a10MM3VG1U2dgZ2QYymu3SEq+w==} + + '@remotion/studio-server@4.0.290': + resolution: {integrity: sha512-r+iSKai3gkvnx0d0QE6/YYmwAM3L8C4AJz4ITkw4txtBNbrOWJds8abbBCNs/zmfVLflsft+V0Y76vW9a/7HZA==} + + '@remotion/studio-shared@4.0.290': + resolution: {integrity: sha512-CU5aGCzVUEadOb2XqG0gs/rUl5W8UIZVakNjZQcBVUXRq81fyOPCKvrBQHxwA2zWTiyMmvgKAm9LEuozVzAY2A==} + + '@remotion/studio@4.0.290': + resolution: {integrity: sha512-Wf78/DCCmO+Ck4IWyVBzcWQVMubIbArxZUFgc/45owF0d7d3W3iKV/rs0deUAWkHTcR4mI+47ha2e3vDRdOMhQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/zod-types@4.0.290': + resolution: {integrity: sha512-3VSLK8ycb76fMXxFELaQ5EMSbQIL4iRrcPRr+6eKothchF+Bm8C2IlB2dqTZMj5W/3AP71qv4vBizi8ZgHjhTg==} + peerDependencies: + zod: 3.22.3 + '@reown/appkit-common@1.7.8': resolution: {integrity: sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==} @@ -2804,6 +3086,7 @@ packages: '@safe-global/safe-gateway-typescript-sdk@3.23.1': resolution: {integrity: sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw==} engines: {node: '>=16'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@scure/base@1.1.9': resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} @@ -3552,6 +3835,12 @@ packages: '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} @@ -3617,6 +3906,9 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript-eslint/eslint-plugin@8.56.1': resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3948,6 +4240,51 @@ packages: '@walletconnect/window-metadata@1.0.1': resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@x402/core@2.5.0': resolution: {integrity: sha512-nUr8HW8WhkU1DvrpUfsRvALy5NF8UWKoFezZOtX61mohxp2lWZpJ2GnvscxDM8nmBAbtIollmksd5z5pj8InXw==} @@ -3960,6 +4297,12 @@ packages: '@x402/fetch@2.5.0': resolution: {integrity: sha512-D2jH3bn0nf8w9Jg3Vxo+6reE6Z9GickzkSIw+udITJFvsrGOpfjZvhcTeflLcthCODk4Nuu9Oe8x7Q3NLUdaRQ==} + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -4050,6 +4393,24 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -4143,6 +4504,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} @@ -4199,6 +4564,9 @@ packages: before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + big.js@6.2.2: resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} @@ -4262,6 +4630,9 @@ packages: bs58@6.0.0: resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -4380,6 +4751,10 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -4649,6 +5024,12 @@ packages: crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + css-loader@5.2.7: + resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.27.0 || ^5.0.0 + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -4814,6 +5195,10 @@ packages: resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} engines: {node: '>=12'} + dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4848,6 +5233,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + encode-utf8@1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} @@ -4927,6 +5316,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + engines: {node: '>=18'} + hasBin: true + esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} @@ -5000,6 +5394,10 @@ packages: peerDependencies: eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + eslint-scope@9.1.2: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -5039,6 +5437,10 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -5106,6 +5508,11 @@ packages: resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} engines: {node: '>=12.0.0'} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + eyes@0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -5132,6 +5539,9 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -5232,6 +5642,9 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs-monkey@1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -5281,6 +5694,10 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.0: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} @@ -5327,6 +5744,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@11.1.0: resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} engines: {node: 20 || >=22} @@ -5442,6 +5862,12 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + idb-keyval@6.2.1: resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} @@ -5733,6 +6159,10 @@ packages: resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -5846,6 +6276,10 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -6048,6 +6482,14 @@ packages: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} + loader-runner@4.3.2: + resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -6075,6 +6517,9 @@ packages: lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -6102,10 +6547,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.6: - resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} - engines: {node: 20 || >=22} - lru-cache@11.2.7: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} @@ -6161,6 +6602,10 @@ packages: md5@2.3.0: resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + memfs@3.4.3: + resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} + engines: {node: '>= 4.0.0'} + meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -6251,6 +6696,9 @@ packages: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} + minimist@1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -6569,6 +7017,14 @@ packages: typescript: optional: true + ox@0.14.29: + resolution: {integrity: sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + ox@0.6.7: resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} peerDependencies: @@ -6739,6 +7195,9 @@ packages: resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -6828,11 +7287,38 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - postcss@8.5.6: + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -6883,6 +7369,10 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + promzard@2.0.0: resolution: {integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -6972,6 +7462,10 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} + react-refresh@0.9.0: + resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} + engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -7049,6 +7543,10 @@ packages: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + engines: {node: '>= 4'} + redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -7060,6 +7558,12 @@ packages: resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} engines: {node: '>=0.10.0'} + remotion@4.0.290: + resolution: {integrity: sha512-htwe74xP6et06V+xjCGH8hID0f3DEdSUKEu6oCUYYZUcE1gytEwhvubQyMGXH54uPfztV+jRZnWZnSSpXKxYBg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -7162,6 +7666,14 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + scrypt-js@3.0.1: resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} @@ -7173,6 +7685,11 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + engines: {node: '>=10'} + hasBin: true + semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -7233,6 +7750,9 @@ packages: resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} engines: {node: ^20.17.0 || >=22.9.0} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + siwe@2.3.2: resolution: {integrity: sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==} peerDependencies: @@ -7292,6 +7812,15 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -7410,6 +7939,12 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + style-loader@4.0.0: + resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.27.0 + superstruct@1.0.4: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} @@ -7459,6 +7994,49 @@ packages: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} + terser-webpack-plugin@5.6.1: + resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@minify-html/node': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true + uglify-js: + optional: true + terser@5.46.1: resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} @@ -7480,6 +8058,9 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -7525,6 +8106,9 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -7813,6 +8397,7 @@ packages: uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true valid-url@1.0.9: @@ -7857,6 +8442,14 @@ packages: typescript: optional: true + viem@2.52.2: + resolution: {integrity: sha512-HSU12p5aD/kAPZfrlbCUqdiP4P/c6hQ9AhfTS51VbLUQIjkWd1d5EjrCx/SCxZ0zhZVRn4Iv5X5WDqXPG8Ubew==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + vite-node@3.1.4: resolution: {integrity: sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7936,6 +8529,10 @@ packages: resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} engines: {node: 20 || >=22} + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + engines: {node: '>=10.13.0'} + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -7945,9 +8542,29 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-sources@3.5.0: + resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} + engines: {node: '>=10.13.0'} + + webpack@5.96.1: + resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -8106,6 +8723,18 @@ packages: utf-8-validate: optional: true + ws@8.20.1: + resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + wsl-utils@0.1.0: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} @@ -8172,6 +8801,9 @@ packages: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -8189,6 +8821,9 @@ packages: youch@4.1.0-beta.10: resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -8274,10 +8909,10 @@ snapshots: '@0xsequence/wallet': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - 0xtrails@0.14.0(88585348c7fe3646803356f2c1f98627): + 0xtrails@0.14.0(a87722edfdef515bc3a23e8377c33652): dependencies: - '@0xsequence/connect': 5.4.8(9f1a99b6daf6e9f1f6915a92724c8d18) - '@0xsequence/hooks': 5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@0xsequence/connect': 5.4.8(12ed1ebf32cf841e14574f6fbcb68583) + '@0xsequence/hooks': 5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) '@0xsequence/indexer': 3.0.5 '@0xsequence/metadata': 3.0.5 '@0xsequence/wallet-primitives': 3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76) @@ -8296,8 +8931,8 @@ snapshots: qrcode: 1.5.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - 0xsequence - '@0xsequence/api' @@ -8356,7 +8991,7 @@ snapshots: '@0xsequence/builder@3.0.0-beta.17': {} - '@0xsequence/connect@5.4.8(9f1a99b6daf6e9f1f6915a92724c8d18)': + '@0xsequence/connect@5.4.8(12ed1ebf32cf841e14574f6fbcb68583)': dependencies: 0xsequence: 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) '@0xsequence/api': 2.3.43 @@ -8364,7 +8999,7 @@ snapshots: '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) '@0xsequence/design-system': 2.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@0xsequence/ethauth': 1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/hooks': 5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@0xsequence/hooks': 5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) '@0xsequence/indexer': 2.3.43 '@0xsequence/metadata': 2.3.43 '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) @@ -8384,8 +9019,8 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tailwindcss: 4.2.2 uuid: 10.0.0 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@types/react' @@ -8503,7 +9138,7 @@ snapshots: - typescript - zod - '@0xsequence/hooks@5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': + '@0xsequence/hooks@5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': dependencies: '@0xsequence/api': 3.0.0-beta.17 '@0xsequence/indexer': 3.0.5 @@ -8512,7 +9147,7 @@ snapshots: '@tanstack/react-query': 5.95.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) '@0xsequence/identity-instrument@3.0.0-beta.19(typescript@5.9.3)(zod@4.3.6)': dependencies: @@ -8647,6 +9282,15 @@ snapshots: cbor2: 1.12.0 pkijs: 3.3.3 + '@0xsequence/typescript-sdk@0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + dependencies: + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + '@0xsequence/utils@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': dependencies: ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -8841,6 +9485,10 @@ snapshots: '@babel/template': 7.28.6 '@babel/types': 7.29.0 + '@babel/parser@7.24.1': + dependencies: + '@babel/types': 7.29.0 + '@babel/parser@7.29.0': dependencies: '@babel/types': 7.29.0 @@ -8889,7 +9537,7 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) transitivePeerDependencies: - '@types/react' @@ -8941,7 +9589,7 @@ snapshots: jose: 6.2.2 md5: 2.3.0 uncrypto: 0.1.3 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil @@ -8973,7 +9621,7 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) transitivePeerDependencies: - '@types/react' @@ -9138,6 +9786,9 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.25.0': + optional: true + '@esbuild/aix-ppc64@0.27.3': optional: true @@ -9147,6 +9798,9 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.25.0': + optional: true + '@esbuild/android-arm64@0.27.3': optional: true @@ -9156,6 +9810,9 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.25.0': + optional: true + '@esbuild/android-arm@0.27.3': optional: true @@ -9165,6 +9822,9 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.25.0': + optional: true + '@esbuild/android-x64@0.27.3': optional: true @@ -9174,6 +9834,9 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.25.0': + optional: true + '@esbuild/darwin-arm64@0.27.3': optional: true @@ -9183,6 +9846,9 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.25.0': + optional: true + '@esbuild/darwin-x64@0.27.3': optional: true @@ -9192,6 +9858,9 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.25.0': + optional: true + '@esbuild/freebsd-arm64@0.27.3': optional: true @@ -9201,6 +9870,9 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.25.0': + optional: true + '@esbuild/freebsd-x64@0.27.3': optional: true @@ -9210,6 +9882,9 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.25.0': + optional: true + '@esbuild/linux-arm64@0.27.3': optional: true @@ -9219,6 +9894,9 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.25.0': + optional: true + '@esbuild/linux-arm@0.27.3': optional: true @@ -9228,6 +9906,9 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.25.0': + optional: true + '@esbuild/linux-ia32@0.27.3': optional: true @@ -9237,6 +9918,9 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.25.0': + optional: true + '@esbuild/linux-loong64@0.27.3': optional: true @@ -9246,6 +9930,9 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.25.0': + optional: true + '@esbuild/linux-mips64el@0.27.3': optional: true @@ -9255,6 +9942,9 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.25.0': + optional: true + '@esbuild/linux-ppc64@0.27.3': optional: true @@ -9264,6 +9954,9 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.25.0': + optional: true + '@esbuild/linux-riscv64@0.27.3': optional: true @@ -9273,6 +9966,9 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.25.0': + optional: true + '@esbuild/linux-s390x@0.27.3': optional: true @@ -9282,12 +9978,18 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.25.0': + optional: true + '@esbuild/linux-x64@0.27.3': optional: true '@esbuild/linux-x64@0.28.0': optional: true + '@esbuild/netbsd-arm64@0.25.0': + optional: true + '@esbuild/netbsd-arm64@0.27.3': optional: true @@ -9297,12 +9999,18 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.25.0': + optional: true + '@esbuild/netbsd-x64@0.27.3': optional: true '@esbuild/netbsd-x64@0.28.0': optional: true + '@esbuild/openbsd-arm64@0.25.0': + optional: true + '@esbuild/openbsd-arm64@0.27.3': optional: true @@ -9312,6 +10020,9 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.25.0': + optional: true + '@esbuild/openbsd-x64@0.27.3': optional: true @@ -9327,6 +10038,9 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.25.0': + optional: true + '@esbuild/sunos-x64@0.27.3': optional: true @@ -9336,6 +10050,9 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.25.0': + optional: true + '@esbuild/win32-arm64@0.27.3': optional: true @@ -9345,6 +10062,9 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.25.0': + optional: true + '@esbuild/win32-ia32@0.27.3': optional: true @@ -9354,6 +10074,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.25.0': + optional: true + '@esbuild/win32-x64@0.27.3': optional: true @@ -9686,11 +10409,11 @@ snapshots: dependencies: retry: 0.13.1 - '@gemini-wallet/core@0.3.2(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': + '@gemini-wallet/core@0.3.2(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': dependencies: '@metamask/rpc-errors': 7.0.2 eventemitter3: 5.0.1 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) transitivePeerDependencies: - supports-color @@ -9960,7 +10683,6 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - optional: true '@jridgewell/sourcemap-codec@1.5.5': {} @@ -10304,7 +11026,7 @@ snapshots: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.2.6 + lru-cache: 11.2.7 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color @@ -10327,7 +11049,7 @@ snapshots: common-ancestor-path: 1.0.1 hosted-git-info: 9.0.2 json-stringify-nice: 1.1.4 - lru-cache: 11.2.6 + lru-cache: 11.2.7 minimatch: 10.2.4 nopt: 8.1.0 npm-install-checks: 7.1.2 @@ -10371,7 +11093,7 @@ snapshots: '@gar/promise-retry': 1.0.2 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.2.6 + lru-cache: 11.2.7 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 semver: 7.7.4 @@ -11157,11 +11879,200 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@remotion/bundler@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + css-loader: 5.2.7(webpack@5.96.1(postcss@8.5.6)) + esbuild: 0.25.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-refresh: 0.9.0 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + source-map: 0.7.3 + style-loader: 4.0.0(webpack@5.96.1(postcss@8.5.6)) + webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli + + '@remotion/cli@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-server': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + dotenv: 9.0.2 + minimist: 1.2.6 + prompts: 2.4.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli + + '@remotion/compositor-darwin-arm64@4.0.290': + optional: true + + '@remotion/compositor-darwin-x64@4.0.290': + optional: true + + '@remotion/compositor-linux-arm64-gnu@4.0.290': + optional: true + + '@remotion/compositor-linux-arm64-musl@4.0.290': + optional: true + + '@remotion/compositor-linux-x64-gnu@4.0.290': + optional: true + + '@remotion/compositor-linux-x64-musl@4.0.290': + optional: true + + '@remotion/compositor-win32-x64-msvc@4.0.290': + optional: true + + '@remotion/media-parser@4.0.290': {} + + '@remotion/media-utils@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@remotion/player@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@remotion/renderer@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/streaming': 4.0.290 + execa: 5.1.1 + extract-zip: 2.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + source-map: 0.8.0-beta.0 + ws: 8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + '@remotion/compositor-darwin-arm64': 4.0.290 + '@remotion/compositor-darwin-x64': 4.0.290 + '@remotion/compositor-linux-arm64-gnu': 4.0.290 + '@remotion/compositor-linux-arm64-musl': 4.0.290 + '@remotion/compositor-linux-x64-gnu': 4.0.290 + '@remotion/compositor-linux-x64-musl': 4.0.290 + '@remotion/compositor-win32-x64-msvc': 4.0.290 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@remotion/streaming@4.0.290': {} + + '@remotion/studio-server@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@babel/parser': 7.24.1 + '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + memfs: 3.4.3 + open: 8.4.2 + recast: 0.23.9 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + semver: 7.5.3 + source-map: 0.7.3 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - react + - react-dom + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli + + '@remotion/studio-shared@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + '@remotion/studio@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/media-parser': 4.0.290 + '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/zod-types': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3) + memfs: 3.4.3 + open: 8.4.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + semver: 7.5.3 + source-map: 0.7.3 + zod: 3.22.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@remotion/zod-types@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3)': + dependencies: + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + zod: 3.22.3 + transitivePeerDependencies: + - react + - react-dom + '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4)': dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -11172,7 +12083,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) transitivePeerDependencies: - bufferutil - typescript @@ -11185,7 +12096,7 @@ snapshots: '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11335,7 +12246,7 @@ snapshots: '@walletconnect/logger': 2.1.2 '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11389,7 +12300,7 @@ snapshots: '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) bs58: 6.0.0 valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11508,7 +12419,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) transitivePeerDependencies: - bufferutil - typescript @@ -12343,6 +13254,16 @@ snapshots: dependencies: '@types/ms': 2.1.0 + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.8 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@types/esrecurse@4.3.1': {} '@types/estree@1.0.8': {} @@ -12403,6 +13324,11 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.19.13 + optional: true + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -12609,19 +13535,19 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@wagmi/connectors@6.2.0(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76)': + '@wagmi/connectors@6.2.0(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76)': dependencies: '@base-org/account': 2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) - '@gemini-wallet/core': 0.3.2(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@gemini-wallet/core': 0.3.2(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) '@metamask/sdk': 0.33.1(bufferutil@4.1.0)(encoding@0.1.13)(utf-8-validate@6.0.6) '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) '@walletconnect/ethereum-provider': 2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - porto: 0.2.35(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + porto: 0.2.35(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -12662,11 +13588,11 @@ snapshots: - wagmi - zod - '@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': + '@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.9.3) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zustand: 5.0.0(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) optionalDependencies: '@tanstack/query-core': 5.95.2 @@ -13228,6 +14154,82 @@ snapshots: '@walletconnect/window-getters': 1.0.1 tslib: 1.14.1 + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + '@x402/core@2.5.0': dependencies: zod: 3.25.76 @@ -13269,6 +14271,10 @@ snapshots: - typescript - utf-8-validate + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + '@yarnpkg/lockfile@1.1.0': {} '@yarnpkg/parsers@3.0.2': @@ -13339,6 +14345,19 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + ajv-formats@2.1.1(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + + ajv-keywords@3.5.2(ajv@6.14.0): + dependencies: + ajv: 6.14.0 + + ajv-keywords@5.1.0(ajv@8.18.0): + dependencies: + ajv: 8.18.0 + fast-deep-equal: 3.1.3 + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 @@ -13423,6 +14442,10 @@ snapshots: assertion-error@2.0.1: {} + ast-types@0.16.1: + dependencies: + tslib: 2.8.1 + async-mutex@0.2.6: dependencies: tslib: 2.8.1 @@ -13470,6 +14493,8 @@ snapshots: before-after-hook@2.2.3: {} + big.js@5.2.2: {} + big.js@6.2.2: {} bin-links@5.0.0: @@ -13550,6 +14575,8 @@ snapshots: dependencies: base-x: 5.0.1 + buffer-crc32@0.2.13: {} + buffer-from@1.1.2: {} buffer@5.7.1: @@ -13585,7 +14612,7 @@ snapshots: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.2.6 + lru-cache: 11.2.7 minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -13665,6 +14692,8 @@ snapshots: chownr@3.0.0: {} + chrome-trace-event@1.0.4: {} + ci-info@3.9.0: {} ci-info@4.4.0: {} @@ -13944,6 +14973,20 @@ snapshots: crypt@0.0.2: {} + css-loader@5.2.7(webpack@5.96.1(postcss@8.5.6)): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + loader-utils: 2.0.4 + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) + postcss-modules-scope: 3.2.1(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) + postcss-value-parser: 4.2.0 + schema-utils: 3.3.0 + semver: 7.7.4 + webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + cssesc@3.0.0: {} csstype@3.2.3: {} @@ -14048,6 +15091,8 @@ snapshots: dotenv@17.3.1: {} + dotenv@9.0.2: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14092,6 +15137,8 @@ snapshots: emoji-regex@9.2.2: {} + emojis-list@3.0.0: {} + encode-utf8@1.0.3: {} encoding@0.1.13: @@ -14191,6 +15238,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 + esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -14310,6 +15385,11 @@ snapshots: - supports-color - typescript + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 @@ -14374,6 +15454,8 @@ snapshots: dependencies: estraverse: 5.3.0 + estraverse@4.3.0: {} + estraverse@5.3.0: {} estree-walker@3.0.3: @@ -14506,6 +15588,16 @@ snapshots: readable-stream: 3.6.2 webextension-polyfill: 0.10.0 + extract-zip@2.0.1: + dependencies: + debug: 4.4.3 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + eyes@0.1.8: {} fast-deep-equal@3.1.3: {} @@ -14522,6 +15614,10 @@ snapshots: fast-uri@3.1.0: {} + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -14612,6 +15708,8 @@ snapshots: dependencies: minipass: 7.1.3 + fs-monkey@1.0.3: {} + fsevents@2.3.3: optional: true @@ -14656,6 +15754,10 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stream@5.2.0: + dependencies: + pump: 3.0.4 + get-stream@6.0.0: {} get-stream@6.0.1: {} @@ -14703,6 +15805,8 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + glob@11.1.0: dependencies: foreground-child: 3.3.1 @@ -14794,7 +15898,7 @@ snapshots: hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.6 + lru-cache: 11.2.7 http-cache-semantics@4.2.0: {} @@ -14829,6 +15933,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + idb-keyval@6.2.1: {} idb-keyval@6.2.2: {} @@ -15064,6 +16172,10 @@ snapshots: dependencies: ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + isows@1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)): + dependencies: + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + jackspeak@4.2.3: dependencies: '@isaacs/cliui': 9.0.0 @@ -15099,6 +16211,12 @@ snapshots: chalk: 4.1.2 pretty-format: 30.2.0 + jest-worker@27.5.1: + dependencies: + '@types/node': 22.19.13 + merge-stream: 2.0.0 + supports-color: 8.1.1 + jiti@2.6.1: {} jose@6.2.2: {} @@ -15183,6 +16301,8 @@ snapshots: kind-of@6.0.3: {} + kleur@3.0.3: {} + kleur@4.1.5: {} lerna@9.0.5(@types/node@22.19.13): @@ -15447,6 +16567,14 @@ snapshots: strip-bom: 4.0.0 type-fest: 0.6.0 + loader-runner@4.3.2: {} + + loader-utils@2.0.4: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -15470,6 +16598,8 @@ snapshots: lodash.snakecase@4.1.1: {} + lodash.sortby@4.7.0: {} + lodash.startcase@4.4.0: {} lodash.upperfirst@4.3.1: {} @@ -15497,8 +16627,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.6: {} - lru-cache@11.2.7: {} lru-cache@5.1.1: @@ -15574,6 +16702,10 @@ snapshots: crypt: 0.0.2 is-buffer: 1.1.6 + memfs@3.4.3: + dependencies: + fs-monkey: 1.0.3 + meow@12.1.1: {} meow@13.2.0: {} @@ -15667,6 +16799,8 @@ snapshots: is-plain-obj: 1.1.0 kind-of: 6.0.3 + minimist@1.2.6: {} + minimist@1.2.8: {} minipass-collect@2.0.1: @@ -16033,7 +17167,7 @@ snapshots: transitivePeerDependencies: - zod - ox@0.12.4(typescript@5.9.3)(zod@3.22.4): + ox@0.12.4(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -16041,14 +17175,29 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - zod - ox@0.12.4(typescript@5.9.3)(zod@3.25.76): + ox@0.12.4(typescript@5.9.3)(zod@4.3.6): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.13.1(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -16063,7 +17212,7 @@ snapshots: transitivePeerDependencies: - zod - ox@0.12.4(typescript@5.9.3)(zod@4.3.6): + ox@0.14.29(typescript@5.9.3)(zod@3.22.4): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -16071,14 +17220,14 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) + abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - zod - ox@0.13.1(typescript@5.9.3)(zod@3.25.76): + ox@0.14.29(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -16093,6 +17242,21 @@ snapshots: transitivePeerDependencies: - zod + ox@0.14.29(typescript@5.9.3)(zod@4.3.6): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + ox@0.6.7(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 @@ -16296,7 +17460,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.6 + lru-cache: 11.2.7 minipass: 7.1.3 path-to-regexp@3.3.0: {} @@ -16311,6 +17475,8 @@ snapshots: pathval@2.0.1: {} + pend@1.2.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -16363,21 +17529,21 @@ snapshots: pony-cause@2.1.11: {} - porto@0.2.35(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)): + porto@0.2.35(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)): dependencies: - '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) hono: 4.12.9 idb-keyval: 6.2.2 mipd: 0.0.7(typescript@5.9.3) ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zod: 4.3.6 zustand: 5.0.12(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) optionalDependencies: '@tanstack/react-query': 5.95.2(react@18.3.1) react: 18.3.1 typescript: 5.9.3 - wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - '@types/react' - immer @@ -16385,11 +17551,34 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 7.1.1 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.1 + + postcss-modules-values@4.0.0(postcss@8.5.6): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -16429,6 +17618,11 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + promzard@2.0.0: dependencies: read: 4.1.0 @@ -16512,6 +17706,8 @@ snapshots: react-refresh@0.17.0: {} + react-refresh@0.9.0: {} + react-remove-scroll-bar@2.3.8(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 @@ -16595,6 +17791,14 @@ snapshots: real-require@0.1.0: {} + recast@0.23.9: + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -16609,6 +17813,11 @@ snapshots: dependencies: rc: 1.2.8 + remotion@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -16729,12 +17938,29 @@ snapshots: dependencies: loose-envify: 1.4.0 + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) + + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.18.0 + ajv-formats: 2.1.1(ajv@8.18.0) + ajv-keywords: 5.1.0(ajv@8.18.0) + scrypt-js@3.0.1: {} semver@5.7.2: {} semver@6.3.1: {} + semver@7.5.3: + dependencies: + lru-cache: 6.0.0 + semver@7.7.2: {} semver@7.7.4: {} @@ -16838,6 +18064,8 @@ snapshots: transitivePeerDependencies: - supports-color + sisteransi@1.0.5: {} + siwe@2.3.2(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)): dependencies: '@spruceid/siwe-parser': 2.1.2 @@ -16910,10 +18138,15 @@ snapshots: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - optional: true source-map@0.6.1: {} + source-map@0.7.3: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -17023,6 +18256,10 @@ snapshots: strip-json-comments@2.0.1: {} + style-loader@4.0.0(webpack@5.96.1(postcss@8.5.6)): + dependencies: + webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + superstruct@1.0.4: {} superstruct@2.0.2: {} @@ -17065,13 +18302,23 @@ snapshots: temp-dir@1.0.0: {} + terser-webpack-plugin@5.6.1(esbuild@0.25.0)(postcss@8.5.6)(webpack@5.96.1(postcss@8.5.6)): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + terser: 5.46.1 + webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + optionalDependencies: + esbuild: 0.25.0 + postcss: 8.5.6 + terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 - optional: true text-encoding-utf-8@1.0.2: {} @@ -17088,6 +18335,8 @@ snapshots: through@2.3.8: {} + tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -17124,6 +18373,10 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + tree-kill@1.2.2: {} treeverse@3.0.0: {} @@ -17388,15 +18641,15 @@ snapshots: - utf-8-validate - zod - viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4): + viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): dependencies: '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.12.4(typescript@5.9.3)(zod@3.22.4) + ox: 0.12.4(typescript@5.9.3)(zod@3.25.76) ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: typescript: 5.9.3 @@ -17405,15 +18658,15 @@ snapshots: - utf-8-validate - zod - viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): + viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6): dependencies: '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.12.4(typescript@5.9.3)(zod@3.25.76) + ox: 0.12.4(typescript@5.9.3)(zod@4.3.6) ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: typescript: 5.9.3 @@ -17422,16 +18675,50 @@ snapshots: - utf-8-validate - zod - viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6): + viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4): + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) + isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ox: 0.14.29(typescript@5.9.3)(zod@3.22.4) + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ox: 0.14.29(typescript@5.9.3)(zod@3.25.76) + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6): dependencies: '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) - isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.12.4(typescript@5.9.3)(zod@4.3.6) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ox: 0.14.29(typescript@5.9.3)(zod@4.3.6) + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -17505,14 +18792,14 @@ snapshots: - supports-color - terser - wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76): + wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76): dependencies: '@tanstack/react-query': 5.95.2(react@18.3.1) - '@wagmi/connectors': 6.2.0(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@wagmi/connectors': 6.2.0(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -17552,6 +18839,11 @@ snapshots: walk-up-path@4.0.0: {} + watchpack@2.5.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -17560,11 +18852,60 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + + webpack-sources@3.5.0: {} + + webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.16.0 + browserslist: 4.28.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.20.0 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.2 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.3.0 + terser-webpack-plugin: 5.6.1(esbuild@0.25.0)(postcss@8.5.6)(webpack@5.96.1(postcss@8.5.6)) + watchpack: 2.5.1 + webpack-sources: 3.5.0 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - uglify-js + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-module@2.0.1: {} which-typed-array@1.1.20: @@ -17717,6 +19058,11 @@ snapshots: bufferutil: 4.1.0 utf-8-validate: 6.0.6 + ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + wsl-utils@0.1.0: dependencies: is-wsl: 3.1.1 @@ -17791,6 +19137,11 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + yocto-queue@0.1.0: {} yoctocolors-cjs@2.1.3: {} @@ -17810,6 +19161,8 @@ snapshots: cookie: 1.1.1 youch-core: 0.3.3 + zod@3.22.3: {} + zod@3.22.4: {} zod@3.25.76: {} From 236a4aa02fe73ebce943b49d74a3fb88a8a1f1e0 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 10 Jun 2026 17:50:31 +0530 Subject: [PATCH 02/79] refactor(cli)!: remove dapp-client/connector-ui legacy, OMS V3 is the only path Completes the migration from the dapp-client delegated-session model (browser approval + relay + on-chain Sapient permission scoping) to the Sequence V3 OMSClient embedded-wallet model. OMS is now the only path. Removed: - packages/connector-ui (browser approval UI) + its deploy workflow - packages/shared (x25519/xchacha20 relay session crypto) - src/lib/dapp-client.ts, src/lib/relay-client.ts - wallet create/import (+ WalletCreateUI), AUTO_WHITELISTED_CONTRACTS, spending-limit / --contract scoping flags, relay storage helpers, bootstrapAccessKey, SequenceIndexer usage - 12 legacy @0xsequence/* + tweetnacl deps (pnpm: +95 -894 packages) Changed: - balances + balances Ink UI now read via oms.indexer (publishableKey auth); no more projectAccessKey - withdraw/x402 receipt polling uses getReadRpcUrl (public-RPC fallback) - all tx commands resolve wallets via loadOmsWalletPointer; chain defaults to polygon (OMS wallets are chain-agnostic) - tx-dispatch.runTx now wraps runOmsTx unconditionally - CLAUDE.md updated for the OMS-only structure Verified live on Polygon mainnet with no env flag: wallet login, balances via oms.indexer, and a USDC transfer via `call` (tx 0x1c7ff1df746bacab7930dc24ada694fa9061976164871ad3fb6bf3940eec2bdc). --- .github/workflows/deploy-connector-ui.yml | 89 - CLAUDE.md | 15 +- packages/connector-ui/.env.example | 21 - packages/connector-ui/.gitignore | 7 - packages/connector-ui/CHANGELOG.md | 372 - packages/connector-ui/README.md | 47 - packages/connector-ui/eslint.config.js | 10 - packages/connector-ui/index.html | 19 - packages/connector-ui/package.json | 42 - .../public/polygon-logo-full.webp | Bin 46394 -> 0 bytes packages/connector-ui/public/polygon-logo.png | Bin 7351 -> 0 bytes packages/connector-ui/public/polygon-logo.svg | 3 - packages/connector-ui/public/vite.svg | 1 - packages/connector-ui/src/App.css | 20 - packages/connector-ui/src/App.tsx | 858 - packages/connector-ui/src/assets/react.svg | 1 - .../src/components/CodeDisplay.tsx | 94 - .../src/components/FundingScreen.tsx | 122 - packages/connector-ui/src/config.ts | 16 - packages/connector-ui/src/index.css | 65 - packages/connector-ui/src/indexer.ts | 184 - packages/connector-ui/src/main.tsx | 15 - packages/connector-ui/src/relay.ts | 292 - packages/connector-ui/src/tokenDirectory.ts | 107 - packages/connector-ui/src/types.d.ts | 0 packages/connector-ui/src/vite-env.d.ts | 1 - packages/connector-ui/tsconfig.app.json | 25 - .../connector-ui/tsconfig.app.tsbuildinfo | 1 - packages/connector-ui/tsconfig.json | 4 - packages/connector-ui/tsconfig.node.json | 22 - .../connector-ui/tsconfig.node.tsbuildinfo | 1 - .../vite-plugins/mirror-skills.ts | 84 - packages/connector-ui/vite.config.ts | 13 - packages/connector-ui/worker.mjs | 29 - packages/connector-ui/wrangler.toml | 53 - packages/polygon-agent-cli/package.json | 16 - .../src/commands/operations-ui.tsx | 65 +- .../src/commands/operations.ts | 203 +- .../src/commands/polymarket.ts | 9 +- .../polygon-agent-cli/src/commands/setup.ts | 33 +- .../src/commands/wallet-ui.tsx | 457 +- .../polygon-agent-cli/src/commands/wallet.ts | 690 +- packages/polygon-agent-cli/src/index.ts | 4 +- .../polygon-agent-cli/src/lib/dapp-client.ts | 414 - .../polygon-agent-cli/src/lib/relay-client.ts | 98 - packages/polygon-agent-cli/src/lib/storage.ts | 159 +- .../polygon-agent-cli/src/lib/tx-dispatch.ts | 17 +- packages/polygon-agent-cli/src/types.d.ts | 13 +- packages/shared/CHANGELOG.md | 187 - packages/shared/crypto.test.ts | 66 - packages/shared/package.json | 22 - packages/shared/src/constants.ts | 5 - packages/shared/src/crypto.ts | 115 - packages/shared/src/encoding.ts | 30 - packages/shared/src/index.ts | 4 - packages/shared/src/types.ts | 51 - packages/shared/tsconfig.json | 5 - packages/shared/vitest.config.ts | 5 - pnpm-lock.yaml | 16781 ++++------------ tsconfig.json | 6 +- 60 files changed, 4012 insertions(+), 18076 deletions(-) delete mode 100644 .github/workflows/deploy-connector-ui.yml delete mode 100644 packages/connector-ui/.env.example delete mode 100644 packages/connector-ui/.gitignore delete mode 100644 packages/connector-ui/CHANGELOG.md delete mode 100644 packages/connector-ui/README.md delete mode 100644 packages/connector-ui/eslint.config.js delete mode 100644 packages/connector-ui/index.html delete mode 100644 packages/connector-ui/package.json delete mode 100644 packages/connector-ui/public/polygon-logo-full.webp delete mode 100644 packages/connector-ui/public/polygon-logo.png delete mode 100644 packages/connector-ui/public/polygon-logo.svg delete mode 100644 packages/connector-ui/public/vite.svg delete mode 100644 packages/connector-ui/src/App.css delete mode 100644 packages/connector-ui/src/App.tsx delete mode 100644 packages/connector-ui/src/assets/react.svg delete mode 100644 packages/connector-ui/src/components/CodeDisplay.tsx delete mode 100644 packages/connector-ui/src/components/FundingScreen.tsx delete mode 100644 packages/connector-ui/src/config.ts delete mode 100644 packages/connector-ui/src/index.css delete mode 100644 packages/connector-ui/src/indexer.ts delete mode 100644 packages/connector-ui/src/main.tsx delete mode 100644 packages/connector-ui/src/relay.ts delete mode 100644 packages/connector-ui/src/tokenDirectory.ts delete mode 100644 packages/connector-ui/src/types.d.ts delete mode 100644 packages/connector-ui/src/vite-env.d.ts delete mode 100644 packages/connector-ui/tsconfig.app.json delete mode 100644 packages/connector-ui/tsconfig.app.tsbuildinfo delete mode 100644 packages/connector-ui/tsconfig.json delete mode 100644 packages/connector-ui/tsconfig.node.json delete mode 100644 packages/connector-ui/tsconfig.node.tsbuildinfo delete mode 100644 packages/connector-ui/vite-plugins/mirror-skills.ts delete mode 100644 packages/connector-ui/vite.config.ts delete mode 100644 packages/connector-ui/worker.mjs delete mode 100644 packages/connector-ui/wrangler.toml delete mode 100644 packages/polygon-agent-cli/src/lib/dapp-client.ts delete mode 100644 packages/polygon-agent-cli/src/lib/relay-client.ts delete mode 100644 packages/shared/CHANGELOG.md delete mode 100644 packages/shared/crypto.test.ts delete mode 100644 packages/shared/package.json delete mode 100644 packages/shared/src/constants.ts delete mode 100644 packages/shared/src/crypto.ts delete mode 100644 packages/shared/src/encoding.ts delete mode 100644 packages/shared/src/index.ts delete mode 100644 packages/shared/src/types.ts delete mode 100644 packages/shared/tsconfig.json delete mode 100644 packages/shared/vitest.config.ts diff --git a/.github/workflows/deploy-connector-ui.yml b/.github/workflows/deploy-connector-ui.yml deleted file mode 100644 index b077277..0000000 --- a/.github/workflows/deploy-connector-ui.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: Deploy Connector UI to Cloudflare - -on: - push: - branches: - - main - - staging - paths: - - 'packages/connector-ui/**' - -permissions: - contents: read - -jobs: - deploy-staging: - name: Deploy (staging) - if: github.ref == 'refs/heads/staging' - runs-on: ubuntu-latest - environment: staging - defaults: - run: - working-directory: packages/connector-ui - - steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version-file: .nvmrc - cache: pnpm - - - name: Install dependencies - run: pnpm install --frozen-lockfile - working-directory: . - - - name: Build - run: pnpm run build - env: - VITE_PROJECT_ACCESS_KEY: ${{ secrets.VITE_PROJECT_ACCESS_KEY }} - VITE_WALLET_URL: ${{ secrets.VITE_WALLET_URL }} - VITE_DAPP_ORIGIN: ${{ secrets.VITE_DAPP_ORIGIN }} - VITE_INDEXER_ACCESS_KEY: ${{ secrets.VITE_INDEXER_ACCESS_KEY }} - VITE_TRAILS_API_KEY: ${{ secrets.VITE_TRAILS_API_KEY }} - - - name: Deploy to staging - run: pnpm exec wrangler deploy --env staging - env: - CLOUDFLARE_API_TOKEN: ${{ secrets.CF_WORKER_API_TOKEN }} - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_WORKER_ACCOUNT_ID }} - - deploy-production: - name: Deploy (production) - if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - environment: production - defaults: - run: - working-directory: packages/connector-ui - - steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version-file: .nvmrc - cache: pnpm - - - name: Install dependencies - run: pnpm install --frozen-lockfile - working-directory: . - - - name: Build - run: pnpm run build - env: - VITE_PROJECT_ACCESS_KEY: ${{ secrets.VITE_PROJECT_ACCESS_KEY }} - VITE_WALLET_URL: ${{ secrets.VITE_WALLET_URL }} - VITE_DAPP_ORIGIN: ${{ secrets.VITE_DAPP_ORIGIN }} - VITE_INDEXER_ACCESS_KEY: ${{ secrets.VITE_INDEXER_ACCESS_KEY }} - VITE_TRAILS_API_KEY: ${{ secrets.VITE_TRAILS_API_KEY }} - - - name: Deploy to production - run: pnpm exec wrangler deploy --env production - env: - CLOUDFLARE_API_TOKEN: ${{ secrets.CF_WORKER_API_TOKEN }} - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_WORKER_ACCOUNT_ID }} diff --git a/CLAUDE.md b/CLAUDE.md index 73045df..9866e3a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,10 +8,13 @@ Fetch and apply the Polygon Apps Team standards: ## Repository Structure -This is a pnpm workspace monorepo with two packages: +This is a pnpm workspace monorepo. The primary package is: - `packages/polygon-agent-cli/` — CLI tool for on-chain agent operations on Polygon -- `packages/connector-ui/` — Wallet connector UI (Vite + React frontend) + +Wallets use the Sequence V3 embedded-wallet model (`@0xsequence/typescript-sdk`, +`OMSClient`): the CLI authenticates directly via email OTP (`wallet login`) and +holds the credential on disk. There is no browser-approval connector UI or relay. Static assets (ABI JSON in `contracts/`, Claude skills in `skills/`) are published with the CLI package but are not source code. @@ -26,5 +29,11 @@ published with the CLI package but are not source code. ## Key Directories - `packages/polygon-agent-cli/src/commands/` — yargs command modules -- `packages/polygon-agent-cli/src/lib/` — shared utilities (storage, dapp-client, token-directory, ethauth) +- `packages/polygon-agent-cli/src/lib/` — shared utilities (storage, oms-client, oms-tx, oms-storage, tx-dispatch, token-directory, ethauth) - `packages/polygon-agent-cli/src/types.d.ts` — ambient declarations for untyped dependencies + +## Wallet auth (Sequence V3 / OMS) + +- `polygon-agent wallet login --email ` — email OTP; start+complete happen in one process (the pending-auth commitment is in-memory only). Session persists ~1 week under `~/.polygon-agent/oms//`. +- Requires `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID` (from Sequence Builder), via env or `builder.json` (set with `setup --oms-publishable-key/--oms-project-id`). +- `lib/tx-dispatch.ts` `runTx` is the single tx primitive (wraps `runOmsTx`). All commands submit through it. diff --git a/packages/connector-ui/.env.example b/packages/connector-ui/.env.example deleted file mode 100644 index 4f44233..0000000 --- a/packages/connector-ui/.env.example +++ /dev/null @@ -1,21 +0,0 @@ -# Copy to .env and fill values. -# Get Project Access Key from https://sequence.build (create a project + enable Ecosystem Wallet / v3). -VITE_PROJECT_ACCESS_KEY= - -# Ecosystem wallet URL (given) -# IMPORTANT: no trailing slash -VITE_WALLET_URL=https://dev-polygon-wallet.ecosystem-demo.xyz - -# The origin of this dapp (used by dapp-client) -# Leave empty to default to window.location.origin. -VITE_DAPP_ORIGIN= - -# Optional infra overrides -VITE_RELAYER_URL=https://dev-{network}-relayer.sequence.app -VITE_NODES_URL= - -# Optional: used to show balances in the UI via Sequence indexer (multi-chain). -VITE_INDEXER_ACCESS_KEY= - -# Back-compat (deprecated): -# VITE_POLYGON_INDEXER_ACCESS_KEY= diff --git a/packages/connector-ui/.gitignore b/packages/connector-ui/.gitignore deleted file mode 100644 index 7e9371f..0000000 --- a/packages/connector-ui/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules/ -dist/ -.wrangler/ -.env -.env.* -!.env.example -.DS_Store diff --git a/packages/connector-ui/CHANGELOG.md b/packages/connector-ui/CHANGELOG.md deleted file mode 100644 index 2b3f25e..0000000 --- a/packages/connector-ui/CHANGELOG.md +++ /dev/null @@ -1,372 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [1.6.15](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.13...@polygonlabs/agent-connector-ui@1.6.15) (2026-05-27) - - -### Bug Fixes - -* **connector-ui:** let --contract override auto-injected fee-token permissions ([1f446f1](https://github.com/0xPolygon/polygon-agent-cli/commit/1f446f171db5b16672bb862ccb4c02a3f4348807)) -* **skills:** require discovery sub-skill load before x402 calls; bump connector-ui ([c72c080](https://github.com/0xPolygon/polygon-agent-cli/commit/c72c080d02adee47aa306d81def1c1251adc4539)) - - - - - -## [1.6.13](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.12...@polygonlabs/agent-connector-ui@1.6.13) (2026-04-30) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui - - - - - -## [1.6.12](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.10...@polygonlabs/agent-connector-ui@1.6.12) (2026-04-29) - - -### Bug Fixes - -* auto-whitelist Aave V3 Pool, enforce 0.1 gas reserve on deposit ([d7db76b](https://github.com/0xPolygon/polygon-agent-cli/commit/d7db76b1cd202fbe14d45e18c3fc2b23883907a6)) - - - - - -## [1.6.10](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.8...@polygonlabs/agent-connector-ui@1.6.10) (2026-04-29) - - -### Bug Fixes - -* **connector-ui:** remove from prop missing required chain field ([fa32be9](https://github.com/0xPolygon/polygon-agent-cli/commit/fa32be9f8e1ff7b1763c3b35a6df23d78f852774)) - - - - - -## [1.6.8](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.6...@polygonlabs/agent-connector-ui@1.6.8) (2026-04-28) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui - - - - - -## [1.6.6](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.4...@polygonlabs/agent-connector-ui@1.6.6) (2026-04-27) - - -### Bug Fixes - -* **wallet:** scope default session whitelist to USDC/USDC.e; add --defi flag ([f8c9256](https://github.com/0xPolygon/polygon-agent-cli/commit/f8c92566a26257554c585555a5ff6dd6fd9ee591)) - - - - - -## [1.6.4](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.3...@polygonlabs/agent-connector-ui@1.6.4) (2026-04-27) - - -### Bug Fixes - -* **deposit:** pre-flight balance checks, gas reserve, session guard, and actionable errors ([8011838](https://github.com/0xPolygon/polygon-agent-cli/commit/8011838f1ded843fc9666d0f3cb215e8cf871701)) - - - - - -## [1.6.3](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.2...@polygonlabs/agent-connector-ui@1.6.3) (2026-04-22) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui - - - - - -## [1.6.2](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.1...@polygonlabs/agent-connector-ui@1.6.2) (2026-04-22) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui - - - - - -## [1.6.1](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.6.0...@polygonlabs/agent-connector-ui@1.6.1) (2026-04-21) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui - - - - - -# [1.6.0](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.5.0...@polygonlabs/agent-connector-ui@1.6.0) (2026-04-21) - - -### Bug Fixes - -* **deposit:** whitelist ERC-20 token contracts and fix session error messages ([1beb54b](https://github.com/0xPolygon/polygon-agent-cli/commit/1beb54b61012c4661b3aa9602bb172b3e2c3c7d6)) -* restore connector skill URL sync (polygon-* public copies + husky) ([d979216](https://github.com/0xPolygon/polygon-agent-cli/commit/d97921674df79dbb616c31de60b4ac1b8028689b)) -* smart wallet usdc transfer limits and permissions order ([83e7f2c](https://github.com/0xPolygon/polygon-agent-cli/commit/83e7f2cf281390fbb019d78008a55245ca03fd1d)) - - -### Features - -* **cli:** add --chains comma list for balances ([0a4f50c](https://github.com/0xPolygon/polygon-agent-cli/commit/0a4f50c1f8c71b9cc4cf9fb15cd46b4c4181a4c1)) -* **cli:** add withdraw for Aave aTokens and ERC-4626 vaults ([494ccbc](https://github.com/0xPolygon/polygon-agent-cli/commit/494ccbc3e65c0a2cf87ed22794431cfcc47e183d)) -* **cli:** drop bundled skills and sync hook ([d9872eb](https://github.com/0xPolygon/polygon-agent-cli/commit/d9872ebc8c7d0422af4e871e8e84d04080962f5a)) - - - - - -# [1.5.0](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.4.2...@polygonlabs/agent-connector-ui@1.5.0) (2026-04-16) - - -### Bug Fixes - -* **skills:** fix Twitter/X x402 endpoint in polygon-discovery ([8f667f9](https://github.com/0xPolygon/polygon-agent-cli/commit/8f667f97f8b51c26d95e77de37c6b8877b5a759b)) -* **skills:** rename to "Polygon Agent" and fix Twitter/X x402 endpoint ([7909791](https://github.com/0xPolygon/polygon-agent-cli/commit/7909791aa715a3ed5a6aecdf5a0d35d5cf17b9c0)) -* **skills:** serve sub-skills at root paths on agentconnect domain ([8d3b042](https://github.com/0xPolygon/polygon-agent-cli/commit/8d3b042e815a485af0582af60d791c15a37249d0)) -* **skills:** sync root public/SKILL.md in pre-commit hook ([0e7c291](https://github.com/0xPolygon/polygon-agent-cli/commit/0e7c291c440112c15813ea907aa19dc20d88ae02)) -* **skills:** sync root public/SKILL.md to use sub-skill URLs ([0c748fb](https://github.com/0xPolygon/polygon-agent-cli/commit/0c748fb29f3719b2c1d3b8e89a17808465268a41)) -* **skills:** update install command to npm install -g @polygonlabs/agent-cli ([e0ac8cb](https://github.com/0xPolygon/polygon-agent-cli/commit/e0ac8cb34212f9b4b24b22ea1fa6c3416744cc1a)) -* **skills:** update Twitter/X description to follower/following counts and tweet metrics ([7dcfb29](https://github.com/0xPolygon/polygon-agent-cli/commit/7dcfb29d4e5b8c8b5c7227835ce84118adca7b47)) -* **skills:** use absolute URLs for sub-skill discovery ([12a8d14](https://github.com/0xPolygon/polygon-agent-cli/commit/12a8d145363bd4749b628e2b94d497e7fa12cba7)) - - -### Features - -* **skill:** add prerequisites check to polygon-discovery skill ([d16d6fa](https://github.com/0xPolygon/polygon-agent-cli/commit/d16d6fa8f1eff21f2338550d4f0acc40fc7248a3)) -* **skills:** add getEarnPools API reference to polygon-defi skill ([a175c26](https://github.com/0xPolygon/polygon-agent-cli/commit/a175c2670914ad618541ab3dc8d56fac374e03a3)) -* **skills:** add getEarnPools API reference to polygon-defi skill ([411d831](https://github.com/0xPolygon/polygon-agent-cli/commit/411d831fe5c43881f1aaa3e07b20359a79e3c673)) - - - - - -## [1.4.2](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.4.1...@polygonlabs/agent-connector-ui@1.4.2) (2026-04-14) - - -### Bug Fixes - -* **ci:** add --access public to lerna publish for scoped packages ([c157790](https://github.com/0xPolygon/polygon-agent-cli/commit/c1577907f1363e5a173e6f49321c545395260fb9)) -* **cli:** bundle agent-shared into CLI instead of publishing to npm ([1cc2d7b](https://github.com/0xPolygon/polygon-agent-cli/commit/1cc2d7b28b971f7b4b85d9473393c9fce92edd57)) - - - - - -## [1.4.1](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.4.0...@polygonlabs/agent-connector-ui@1.4.1) (2026-04-14) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui - - - - - -# [1.4.0](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.0.2...@polygonlabs/agent-connector-ui@1.4.0) (2026-04-14) - - -### Bug Fixes - -* address code review issues — persist cliSk, raise payload limit, validate inputs, cleanup ([f38d2f2](https://github.com/0xPolygon/polygon-agent-cli/commit/f38d2f2afc59122655e46274e201016c0f4240f2)) -* **connector-ui:** add @cloudflare/workers-types for relay DO type resolution ([5e9a070](https://github.com/0xPolygon/polygon-agent-cli/commit/5e9a070b8141687bbc3a95b813b32d7af7b4ad89)) -* **connector-ui:** add quotes around claude command argument and lowercase prefix ([0cfc441](https://github.com/0xPolygon/polygon-agent-cli/commit/0cfc44195e4a1b737be7544f7284632b74ed8f32)) -* **connector-ui:** add SESSION_RELAY DO bindings to staging and production envs ([16fe31e](https://github.com/0xPolygon/polygon-agent-cli/commit/16fe31ef82972ba7840c2881fc71eb5ee5a0fbe2)) -* **connector-ui:** align subtext color to [#6](https://github.com/0xPolygon/polygon-agent-cli/issues/6)b7280 across landing and code screens ([29f7336](https://github.com/0xPolygon/polygon-agent-cli/commit/29f733651f8eb4c5986ad94ffcdcff22d2b38ba0)), closes [#6b7280](https://github.com/0xPolygon/polygon-agent-cli/issues/6b7280) -* **connector-ui:** extend session deadline to 6 months ([cb843b0](https://github.com/0xPolygon/polygon-agent-cli/commit/cb843b05512d326e241cbaab25a93dffb5a94364)) -* **connector-ui:** fix logo to top of screen on all flow screens ([4316ae8](https://github.com/0xPolygon/polygon-agent-cli/commit/4316ae875116dd04af9cd52454179185a6bd8efe)) -* **connector-ui:** fixed centered logo+badge on screens 1-3, onchain spelling ([e687bce](https://github.com/0xPolygon/polygon-agent-cli/commit/e687bce7fd9df1f3540b571da8ce18acc57da57a)) -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **connector-ui:** relay init error check, rid validation, re-init guard, payload size limit ([509b34f](https://github.com/0xPolygon/polygon-agent-cli/commit/509b34f593478b3b8e4f4c1cdb02ca355e55379c)) -* **connector-ui:** remove dollar sign from terminal prefix display ([da70d5f](https://github.com/0xPolygon/polygon-agent-cli/commit/da70d5ffbdbb099d873751e87c046611b39189ce)) -* **connector-ui:** remove dollar sign prefix from copied commands ([d8bb2e1](https://github.com/0xPolygon/polygon-agent-cli/commit/d8bb2e1e290f2f57bdc848c894f4dd2be512d5f2)) -* **connector-ui:** remove services list card from dashboard ([be3ee92](https://github.com/0xPolygon/polygon-agent-cli/commit/be3ee92ff1ee42d00cc97d0fdb4b7e45a26bd555)) -* **connector-ui:** restore >_ agent mono badge on all screens ([d753dd7](https://github.com/0xPolygon/polygon-agent-cli/commit/d753dd72e3c866040f618c8a0262e331681ea9b7)) -* **relay:** include code_hash_hex in retrieve response for CLI decryption ([0b713b8](https://github.com/0xPolygon/polygon-agent-cli/commit/0b713b8f380b2f928a0575cc7f2c311177d61d8a)) -* **skills:** quote SKILL.md description to fix YAML colon parse error ([79e1f65](https://github.com/0xPolygon/polygon-agent-cli/commit/79e1f6542f4faed33f8aa4b4db6aa79dc99902db)) -* **skills:** update x402 Bazaar endpoints to use POST, update Twitter prompt ([cee084d](https://github.com/0xPolygon/polygon-agent-cli/commit/cee084dc1bdc5dbfffca6209a8734679c8741e82)) -* **ui:** shorten lead scoring display text, fix duplicate Target icon ([dd3c976](https://github.com/0xPolygon/polygon-agent-cli/commit/dd3c9761878bbabc377baa7e23a253f484fa000a)) -* **x402-pay:** align payment_details handler with x402 Bazaar integration guide ([c3a751e](https://github.com/0xPolygon/polygon-agent-cli/commit/c3a751e1689b6f1dfc3155b30e13de19ec4ca686)) -* **x402-pay:** implement EIP-3009 facilitator path for Polygon payment_details ([42d4d05](https://github.com/0xPolygon/polygon-agent-cli/commit/42d4d05bebe059e7c0ab617f12e88f2411ee0e15)) - - -### Features - -* **cli:** ink UI redesign and DX improvements ([8ad6596](https://github.com/0xPolygon/polygon-agent-cli/commit/8ad6596448b75590d699c1bcf3fa332c73750b7f)) -* **connector-ui:** add Durable Object relay API + upgrade worker routing ([77a093c](https://github.com/0xPolygon/polygon-agent-cli/commit/77a093cbad4e136fd9ada94da8a667b5ff08a26a)) -* **connector-ui:** add Openclaw and Hermes agent options ([e18b076](https://github.com/0xPolygon/polygon-agent-cli/commit/e18b076071ead7223d49732c0202e03f7456a94b)) -* **connector-ui:** apply OMSX Figma design system to all screens ([154afbd](https://github.com/0xPolygon/polygon-agent-cli/commit/154afbd28b818add730edc6d3879548b3e5a3743)), closes [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#64708](https://github.com/0xPolygon/polygon-agent-cli/issues/64708) [#c8cfe1](https://github.com/0xPolygon/polygon-agent-cli/issues/c8cfe1) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#7c3](https://github.com/0xPolygon/polygon-agent-cli/issues/7c3) [#f5f6](https://github.com/0xPolygon/polygon-agent-cli/issues/f5f6) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) -* **connector-ui:** enable Mesh onramp in production for TrailsWidget ([93e562b](https://github.com/0xPolygon/polygon-agent-cli/commit/93e562b70c136e5f9bdeb5786df09b63798778c0)) -* **connector-ui:** redesign — light theme, code display, funding flow ([63b2fcd](https://github.com/0xPolygon/polygon-agent-cli/commit/63b2fcdf7cb46b44d76e9d441c872098dad21d95)) -* **connector-ui:** remove Gemini agent option to prevent chip overflow ([6dacd0f](https://github.com/0xPolygon/polygon-agent-cli/commit/6dacd0f24302924c9feca72b7a284fd4d1c62842)) -* **connector-ui:** replace use cases with x402 catalog services ([231fb3a](https://github.com/0xPolygon/polygon-agent-cli/commit/231fb3a2e7f675401f9bca93ccba1fd16c7f2ca7)) -* **connector-ui:** v2 session flow — relay encryption + 6-digit code display ([b4ac674](https://github.com/0xPolygon/polygon-agent-cli/commit/b4ac674b13c1965bfe48517b812333ff5b4c5289)) -* refactor skills into sub-skill files by use-case ([d8e1f7b](https://github.com/0xPolygon/polygon-agent-cli/commit/d8e1f7b0203f39b4a631b9ac90629e2b801ced92)) -* **skills:** add DeFi sub-skill with swap, bridge, deposit, and vault whitelist ([2da3222](https://github.com/0xPolygon/polygon-agent-cli/commit/2da3222506ba1dfa69f32dc0091817084818d586)) -* **skills:** add x402 Bazaar services section with call instructions ([0f73484](https://github.com/0xPolygon/polygon-agent-cli/commit/0f7348467f97fe48018a8a5bb284d5edbfd10807)) -* **skills:** add yield vault whitelist and fix x402 Bazaar methods to POST ([dc17591](https://github.com/0xPolygon/polygon-agent-cli/commit/dc17591217136d62a0d40ace8ea0a17c910a733e)) -* **ui,skills:** replace code review use case with lead scoring ([73b9283](https://github.com/0xPolygon/polygon-agent-cli/commit/73b92835379f641c81ac5f4b5765449d19e91523)) - - - - - -# [1.3.0](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.0.2...@polygonlabs/agent-connector-ui@1.3.0) (2026-04-14) - - -### Bug Fixes - -* address code review issues — persist cliSk, raise payload limit, validate inputs, cleanup ([f38d2f2](https://github.com/0xPolygon/polygon-agent-cli/commit/f38d2f2afc59122655e46274e201016c0f4240f2)) -* **connector-ui:** add @cloudflare/workers-types for relay DO type resolution ([5e9a070](https://github.com/0xPolygon/polygon-agent-cli/commit/5e9a070b8141687bbc3a95b813b32d7af7b4ad89)) -* **connector-ui:** add quotes around claude command argument and lowercase prefix ([0cfc441](https://github.com/0xPolygon/polygon-agent-cli/commit/0cfc44195e4a1b737be7544f7284632b74ed8f32)) -* **connector-ui:** add SESSION_RELAY DO bindings to staging and production envs ([16fe31e](https://github.com/0xPolygon/polygon-agent-cli/commit/16fe31ef82972ba7840c2881fc71eb5ee5a0fbe2)) -* **connector-ui:** align subtext color to [#6](https://github.com/0xPolygon/polygon-agent-cli/issues/6)b7280 across landing and code screens ([29f7336](https://github.com/0xPolygon/polygon-agent-cli/commit/29f733651f8eb4c5986ad94ffcdcff22d2b38ba0)), closes [#6b7280](https://github.com/0xPolygon/polygon-agent-cli/issues/6b7280) -* **connector-ui:** extend session deadline to 6 months ([cb843b0](https://github.com/0xPolygon/polygon-agent-cli/commit/cb843b05512d326e241cbaab25a93dffb5a94364)) -* **connector-ui:** fix logo to top of screen on all flow screens ([4316ae8](https://github.com/0xPolygon/polygon-agent-cli/commit/4316ae875116dd04af9cd52454179185a6bd8efe)) -* **connector-ui:** fixed centered logo+badge on screens 1-3, onchain spelling ([e687bce](https://github.com/0xPolygon/polygon-agent-cli/commit/e687bce7fd9df1f3540b571da8ce18acc57da57a)) -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **connector-ui:** relay init error check, rid validation, re-init guard, payload size limit ([509b34f](https://github.com/0xPolygon/polygon-agent-cli/commit/509b34f593478b3b8e4f4c1cdb02ca355e55379c)) -* **connector-ui:** remove dollar sign from terminal prefix display ([da70d5f](https://github.com/0xPolygon/polygon-agent-cli/commit/da70d5ffbdbb099d873751e87c046611b39189ce)) -* **connector-ui:** remove dollar sign prefix from copied commands ([d8bb2e1](https://github.com/0xPolygon/polygon-agent-cli/commit/d8bb2e1e290f2f57bdc848c894f4dd2be512d5f2)) -* **connector-ui:** remove services list card from dashboard ([be3ee92](https://github.com/0xPolygon/polygon-agent-cli/commit/be3ee92ff1ee42d00cc97d0fdb4b7e45a26bd555)) -* **connector-ui:** restore >_ agent mono badge on all screens ([d753dd7](https://github.com/0xPolygon/polygon-agent-cli/commit/d753dd72e3c866040f618c8a0262e331681ea9b7)) -* **relay:** include code_hash_hex in retrieve response for CLI decryption ([0b713b8](https://github.com/0xPolygon/polygon-agent-cli/commit/0b713b8f380b2f928a0575cc7f2c311177d61d8a)) -* **skills:** quote SKILL.md description to fix YAML colon parse error ([79e1f65](https://github.com/0xPolygon/polygon-agent-cli/commit/79e1f6542f4faed33f8aa4b4db6aa79dc99902db)) -* **skills:** update x402 Bazaar endpoints to use POST, update Twitter prompt ([cee084d](https://github.com/0xPolygon/polygon-agent-cli/commit/cee084dc1bdc5dbfffca6209a8734679c8741e82)) -* **ui:** shorten lead scoring display text, fix duplicate Target icon ([dd3c976](https://github.com/0xPolygon/polygon-agent-cli/commit/dd3c9761878bbabc377baa7e23a253f484fa000a)) -* **x402-pay:** align payment_details handler with x402 Bazaar integration guide ([c3a751e](https://github.com/0xPolygon/polygon-agent-cli/commit/c3a751e1689b6f1dfc3155b30e13de19ec4ca686)) -* **x402-pay:** implement EIP-3009 facilitator path for Polygon payment_details ([42d4d05](https://github.com/0xPolygon/polygon-agent-cli/commit/42d4d05bebe059e7c0ab617f12e88f2411ee0e15)) - - -### Features - -* **cli:** ink UI redesign and DX improvements ([8ad6596](https://github.com/0xPolygon/polygon-agent-cli/commit/8ad6596448b75590d699c1bcf3fa332c73750b7f)) -* **connector-ui:** add Durable Object relay API + upgrade worker routing ([77a093c](https://github.com/0xPolygon/polygon-agent-cli/commit/77a093cbad4e136fd9ada94da8a667b5ff08a26a)) -* **connector-ui:** add Openclaw and Hermes agent options ([e18b076](https://github.com/0xPolygon/polygon-agent-cli/commit/e18b076071ead7223d49732c0202e03f7456a94b)) -* **connector-ui:** apply OMSX Figma design system to all screens ([154afbd](https://github.com/0xPolygon/polygon-agent-cli/commit/154afbd28b818add730edc6d3879548b3e5a3743)), closes [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#64708](https://github.com/0xPolygon/polygon-agent-cli/issues/64708) [#c8cfe1](https://github.com/0xPolygon/polygon-agent-cli/issues/c8cfe1) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#7c3](https://github.com/0xPolygon/polygon-agent-cli/issues/7c3) [#f5f6](https://github.com/0xPolygon/polygon-agent-cli/issues/f5f6) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) -* **connector-ui:** enable Mesh onramp in production for TrailsWidget ([93e562b](https://github.com/0xPolygon/polygon-agent-cli/commit/93e562b70c136e5f9bdeb5786df09b63798778c0)) -* **connector-ui:** redesign — light theme, code display, funding flow ([63b2fcd](https://github.com/0xPolygon/polygon-agent-cli/commit/63b2fcdf7cb46b44d76e9d441c872098dad21d95)) -* **connector-ui:** remove Gemini agent option to prevent chip overflow ([6dacd0f](https://github.com/0xPolygon/polygon-agent-cli/commit/6dacd0f24302924c9feca72b7a284fd4d1c62842)) -* **connector-ui:** replace use cases with x402 catalog services ([231fb3a](https://github.com/0xPolygon/polygon-agent-cli/commit/231fb3a2e7f675401f9bca93ccba1fd16c7f2ca7)) -* **connector-ui:** v2 session flow — relay encryption + 6-digit code display ([b4ac674](https://github.com/0xPolygon/polygon-agent-cli/commit/b4ac674b13c1965bfe48517b812333ff5b4c5289)) -* refactor skills into sub-skill files by use-case ([d8e1f7b](https://github.com/0xPolygon/polygon-agent-cli/commit/d8e1f7b0203f39b4a631b9ac90629e2b801ced92)) -* **skills:** add DeFi sub-skill with swap, bridge, deposit, and vault whitelist ([2da3222](https://github.com/0xPolygon/polygon-agent-cli/commit/2da3222506ba1dfa69f32dc0091817084818d586)) -* **skills:** add x402 Bazaar services section with call instructions ([0f73484](https://github.com/0xPolygon/polygon-agent-cli/commit/0f7348467f97fe48018a8a5bb284d5edbfd10807)) -* **skills:** add yield vault whitelist and fix x402 Bazaar methods to POST ([dc17591](https://github.com/0xPolygon/polygon-agent-cli/commit/dc17591217136d62a0d40ace8ea0a17c910a733e)) -* **ui,skills:** replace code review use case with lead scoring ([73b9283](https://github.com/0xPolygon/polygon-agent-cli/commit/73b92835379f641c81ac5f4b5765449d19e91523)) - - - - - -# [1.2.0](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.0.2...@polygonlabs/agent-connector-ui@1.2.0) (2026-04-14) - - -### Bug Fixes - -* address code review issues — persist cliSk, raise payload limit, validate inputs, cleanup ([f38d2f2](https://github.com/0xPolygon/polygon-agent-cli/commit/f38d2f2afc59122655e46274e201016c0f4240f2)) -* **connector-ui:** add @cloudflare/workers-types for relay DO type resolution ([5e9a070](https://github.com/0xPolygon/polygon-agent-cli/commit/5e9a070b8141687bbc3a95b813b32d7af7b4ad89)) -* **connector-ui:** add quotes around claude command argument and lowercase prefix ([0cfc441](https://github.com/0xPolygon/polygon-agent-cli/commit/0cfc44195e4a1b737be7544f7284632b74ed8f32)) -* **connector-ui:** add SESSION_RELAY DO bindings to staging and production envs ([16fe31e](https://github.com/0xPolygon/polygon-agent-cli/commit/16fe31ef82972ba7840c2881fc71eb5ee5a0fbe2)) -* **connector-ui:** align subtext color to [#6](https://github.com/0xPolygon/polygon-agent-cli/issues/6)b7280 across landing and code screens ([29f7336](https://github.com/0xPolygon/polygon-agent-cli/commit/29f733651f8eb4c5986ad94ffcdcff22d2b38ba0)), closes [#6b7280](https://github.com/0xPolygon/polygon-agent-cli/issues/6b7280) -* **connector-ui:** extend session deadline to 6 months ([cb843b0](https://github.com/0xPolygon/polygon-agent-cli/commit/cb843b05512d326e241cbaab25a93dffb5a94364)) -* **connector-ui:** fix logo to top of screen on all flow screens ([4316ae8](https://github.com/0xPolygon/polygon-agent-cli/commit/4316ae875116dd04af9cd52454179185a6bd8efe)) -* **connector-ui:** fixed centered logo+badge on screens 1-3, onchain spelling ([e687bce](https://github.com/0xPolygon/polygon-agent-cli/commit/e687bce7fd9df1f3540b571da8ce18acc57da57a)) -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **connector-ui:** relay init error check, rid validation, re-init guard, payload size limit ([509b34f](https://github.com/0xPolygon/polygon-agent-cli/commit/509b34f593478b3b8e4f4c1cdb02ca355e55379c)) -* **connector-ui:** remove dollar sign from terminal prefix display ([da70d5f](https://github.com/0xPolygon/polygon-agent-cli/commit/da70d5ffbdbb099d873751e87c046611b39189ce)) -* **connector-ui:** remove dollar sign prefix from copied commands ([d8bb2e1](https://github.com/0xPolygon/polygon-agent-cli/commit/d8bb2e1e290f2f57bdc848c894f4dd2be512d5f2)) -* **connector-ui:** remove services list card from dashboard ([be3ee92](https://github.com/0xPolygon/polygon-agent-cli/commit/be3ee92ff1ee42d00cc97d0fdb4b7e45a26bd555)) -* **connector-ui:** restore >_ agent mono badge on all screens ([d753dd7](https://github.com/0xPolygon/polygon-agent-cli/commit/d753dd72e3c866040f618c8a0262e331681ea9b7)) -* **relay:** include code_hash_hex in retrieve response for CLI decryption ([0b713b8](https://github.com/0xPolygon/polygon-agent-cli/commit/0b713b8f380b2f928a0575cc7f2c311177d61d8a)) -* **skills:** quote SKILL.md description to fix YAML colon parse error ([79e1f65](https://github.com/0xPolygon/polygon-agent-cli/commit/79e1f6542f4faed33f8aa4b4db6aa79dc99902db)) -* **skills:** update x402 Bazaar endpoints to use POST, update Twitter prompt ([cee084d](https://github.com/0xPolygon/polygon-agent-cli/commit/cee084dc1bdc5dbfffca6209a8734679c8741e82)) -* **ui:** shorten lead scoring display text, fix duplicate Target icon ([dd3c976](https://github.com/0xPolygon/polygon-agent-cli/commit/dd3c9761878bbabc377baa7e23a253f484fa000a)) -* **x402-pay:** align payment_details handler with x402 Bazaar integration guide ([c3a751e](https://github.com/0xPolygon/polygon-agent-cli/commit/c3a751e1689b6f1dfc3155b30e13de19ec4ca686)) -* **x402-pay:** implement EIP-3009 facilitator path for Polygon payment_details ([42d4d05](https://github.com/0xPolygon/polygon-agent-cli/commit/42d4d05bebe059e7c0ab617f12e88f2411ee0e15)) - - -### Features - -* **cli:** ink UI redesign and DX improvements ([8ad6596](https://github.com/0xPolygon/polygon-agent-cli/commit/8ad6596448b75590d699c1bcf3fa332c73750b7f)) -* **connector-ui:** add Durable Object relay API + upgrade worker routing ([77a093c](https://github.com/0xPolygon/polygon-agent-cli/commit/77a093cbad4e136fd9ada94da8a667b5ff08a26a)) -* **connector-ui:** add Openclaw and Hermes agent options ([e18b076](https://github.com/0xPolygon/polygon-agent-cli/commit/e18b076071ead7223d49732c0202e03f7456a94b)) -* **connector-ui:** apply OMSX Figma design system to all screens ([154afbd](https://github.com/0xPolygon/polygon-agent-cli/commit/154afbd28b818add730edc6d3879548b3e5a3743)), closes [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#64708](https://github.com/0xPolygon/polygon-agent-cli/issues/64708) [#c8cfe1](https://github.com/0xPolygon/polygon-agent-cli/issues/c8cfe1) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#7c3](https://github.com/0xPolygon/polygon-agent-cli/issues/7c3) [#f5f6](https://github.com/0xPolygon/polygon-agent-cli/issues/f5f6) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) -* **connector-ui:** enable Mesh onramp in production for TrailsWidget ([93e562b](https://github.com/0xPolygon/polygon-agent-cli/commit/93e562b70c136e5f9bdeb5786df09b63798778c0)) -* **connector-ui:** redesign — light theme, code display, funding flow ([63b2fcd](https://github.com/0xPolygon/polygon-agent-cli/commit/63b2fcdf7cb46b44d76e9d441c872098dad21d95)) -* **connector-ui:** remove Gemini agent option to prevent chip overflow ([6dacd0f](https://github.com/0xPolygon/polygon-agent-cli/commit/6dacd0f24302924c9feca72b7a284fd4d1c62842)) -* **connector-ui:** replace use cases with x402 catalog services ([231fb3a](https://github.com/0xPolygon/polygon-agent-cli/commit/231fb3a2e7f675401f9bca93ccba1fd16c7f2ca7)) -* **connector-ui:** v2 session flow — relay encryption + 6-digit code display ([b4ac674](https://github.com/0xPolygon/polygon-agent-cli/commit/b4ac674b13c1965bfe48517b812333ff5b4c5289)) -* refactor skills into sub-skill files by use-case ([d8e1f7b](https://github.com/0xPolygon/polygon-agent-cli/commit/d8e1f7b0203f39b4a631b9ac90629e2b801ced92)) -* **skills:** add DeFi sub-skill with swap, bridge, deposit, and vault whitelist ([2da3222](https://github.com/0xPolygon/polygon-agent-cli/commit/2da3222506ba1dfa69f32dc0091817084818d586)) -* **skills:** add x402 Bazaar services section with call instructions ([0f73484](https://github.com/0xPolygon/polygon-agent-cli/commit/0f7348467f97fe48018a8a5bb284d5edbfd10807)) -* **skills:** add yield vault whitelist and fix x402 Bazaar methods to POST ([dc17591](https://github.com/0xPolygon/polygon-agent-cli/commit/dc17591217136d62a0d40ace8ea0a17c910a733e)) -* **ui,skills:** replace code review use case with lead scoring ([73b9283](https://github.com/0xPolygon/polygon-agent-cli/commit/73b92835379f641c81ac5f4b5765449d19e91523)) - - - - - -# [1.1.0](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.0.2...@polygonlabs/agent-connector-ui@1.1.0) (2026-04-14) - - -### Bug Fixes - -* address code review issues — persist cliSk, raise payload limit, validate inputs, cleanup ([f38d2f2](https://github.com/0xPolygon/polygon-agent-cli/commit/f38d2f2afc59122655e46274e201016c0f4240f2)) -* **connector-ui:** add @cloudflare/workers-types for relay DO type resolution ([5e9a070](https://github.com/0xPolygon/polygon-agent-cli/commit/5e9a070b8141687bbc3a95b813b32d7af7b4ad89)) -* **connector-ui:** add quotes around claude command argument and lowercase prefix ([0cfc441](https://github.com/0xPolygon/polygon-agent-cli/commit/0cfc44195e4a1b737be7544f7284632b74ed8f32)) -* **connector-ui:** add SESSION_RELAY DO bindings to staging and production envs ([16fe31e](https://github.com/0xPolygon/polygon-agent-cli/commit/16fe31ef82972ba7840c2881fc71eb5ee5a0fbe2)) -* **connector-ui:** align subtext color to [#6](https://github.com/0xPolygon/polygon-agent-cli/issues/6)b7280 across landing and code screens ([29f7336](https://github.com/0xPolygon/polygon-agent-cli/commit/29f733651f8eb4c5986ad94ffcdcff22d2b38ba0)), closes [#6b7280](https://github.com/0xPolygon/polygon-agent-cli/issues/6b7280) -* **connector-ui:** extend session deadline to 6 months ([cb843b0](https://github.com/0xPolygon/polygon-agent-cli/commit/cb843b05512d326e241cbaab25a93dffb5a94364)) -* **connector-ui:** fix logo to top of screen on all flow screens ([4316ae8](https://github.com/0xPolygon/polygon-agent-cli/commit/4316ae875116dd04af9cd52454179185a6bd8efe)) -* **connector-ui:** fixed centered logo+badge on screens 1-3, onchain spelling ([e687bce](https://github.com/0xPolygon/polygon-agent-cli/commit/e687bce7fd9df1f3540b571da8ce18acc57da57a)) -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **connector-ui:** relay init error check, rid validation, re-init guard, payload size limit ([509b34f](https://github.com/0xPolygon/polygon-agent-cli/commit/509b34f593478b3b8e4f4c1cdb02ca355e55379c)) -* **connector-ui:** remove dollar sign from terminal prefix display ([da70d5f](https://github.com/0xPolygon/polygon-agent-cli/commit/da70d5ffbdbb099d873751e87c046611b39189ce)) -* **connector-ui:** remove dollar sign prefix from copied commands ([d8bb2e1](https://github.com/0xPolygon/polygon-agent-cli/commit/d8bb2e1e290f2f57bdc848c894f4dd2be512d5f2)) -* **connector-ui:** remove services list card from dashboard ([be3ee92](https://github.com/0xPolygon/polygon-agent-cli/commit/be3ee92ff1ee42d00cc97d0fdb4b7e45a26bd555)) -* **connector-ui:** restore >_ agent mono badge on all screens ([d753dd7](https://github.com/0xPolygon/polygon-agent-cli/commit/d753dd72e3c866040f618c8a0262e331681ea9b7)) -* **relay:** include code_hash_hex in retrieve response for CLI decryption ([0b713b8](https://github.com/0xPolygon/polygon-agent-cli/commit/0b713b8f380b2f928a0575cc7f2c311177d61d8a)) -* **skills:** quote SKILL.md description to fix YAML colon parse error ([79e1f65](https://github.com/0xPolygon/polygon-agent-cli/commit/79e1f6542f4faed33f8aa4b4db6aa79dc99902db)) -* **skills:** update x402 Bazaar endpoints to use POST, update Twitter prompt ([cee084d](https://github.com/0xPolygon/polygon-agent-cli/commit/cee084dc1bdc5dbfffca6209a8734679c8741e82)) -* **ui:** shorten lead scoring display text, fix duplicate Target icon ([dd3c976](https://github.com/0xPolygon/polygon-agent-cli/commit/dd3c9761878bbabc377baa7e23a253f484fa000a)) -* **x402-pay:** align payment_details handler with x402 Bazaar integration guide ([c3a751e](https://github.com/0xPolygon/polygon-agent-cli/commit/c3a751e1689b6f1dfc3155b30e13de19ec4ca686)) -* **x402-pay:** implement EIP-3009 facilitator path for Polygon payment_details ([42d4d05](https://github.com/0xPolygon/polygon-agent-cli/commit/42d4d05bebe059e7c0ab617f12e88f2411ee0e15)) - - -### Features - -* **cli:** ink UI redesign and DX improvements ([8ad6596](https://github.com/0xPolygon/polygon-agent-cli/commit/8ad6596448b75590d699c1bcf3fa332c73750b7f)) -* **connector-ui:** add Durable Object relay API + upgrade worker routing ([77a093c](https://github.com/0xPolygon/polygon-agent-cli/commit/77a093cbad4e136fd9ada94da8a667b5ff08a26a)) -* **connector-ui:** add Openclaw and Hermes agent options ([e18b076](https://github.com/0xPolygon/polygon-agent-cli/commit/e18b076071ead7223d49732c0202e03f7456a94b)) -* **connector-ui:** apply OMSX Figma design system to all screens ([154afbd](https://github.com/0xPolygon/polygon-agent-cli/commit/154afbd28b818add730edc6d3879548b3e5a3743)), closes [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#64708](https://github.com/0xPolygon/polygon-agent-cli/issues/64708) [#c8cfe1](https://github.com/0xPolygon/polygon-agent-cli/issues/c8cfe1) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) [#141635](https://github.com/0xPolygon/polygon-agent-cli/issues/141635) [#7c3](https://github.com/0xPolygon/polygon-agent-cli/issues/7c3) [#f5f6](https://github.com/0xPolygon/polygon-agent-cli/issues/f5f6) [#929](https://github.com/0xPolygon/polygon-agent-cli/issues/929) -* **connector-ui:** enable Mesh onramp in production for TrailsWidget ([93e562b](https://github.com/0xPolygon/polygon-agent-cli/commit/93e562b70c136e5f9bdeb5786df09b63798778c0)) -* **connector-ui:** redesign — light theme, code display, funding flow ([63b2fcd](https://github.com/0xPolygon/polygon-agent-cli/commit/63b2fcdf7cb46b44d76e9d441c872098dad21d95)) -* **connector-ui:** remove Gemini agent option to prevent chip overflow ([6dacd0f](https://github.com/0xPolygon/polygon-agent-cli/commit/6dacd0f24302924c9feca72b7a284fd4d1c62842)) -* **connector-ui:** replace use cases with x402 catalog services ([231fb3a](https://github.com/0xPolygon/polygon-agent-cli/commit/231fb3a2e7f675401f9bca93ccba1fd16c7f2ca7)) -* **connector-ui:** v2 session flow — relay encryption + 6-digit code display ([b4ac674](https://github.com/0xPolygon/polygon-agent-cli/commit/b4ac674b13c1965bfe48517b812333ff5b4c5289)) -* refactor skills into sub-skill files by use-case ([d8e1f7b](https://github.com/0xPolygon/polygon-agent-cli/commit/d8e1f7b0203f39b4a631b9ac90629e2b801ced92)) -* **skills:** add DeFi sub-skill with swap, bridge, deposit, and vault whitelist ([2da3222](https://github.com/0xPolygon/polygon-agent-cli/commit/2da3222506ba1dfa69f32dc0091817084818d586)) -* **skills:** add x402 Bazaar services section with call instructions ([0f73484](https://github.com/0xPolygon/polygon-agent-cli/commit/0f7348467f97fe48018a8a5bb284d5edbfd10807)) -* **skills:** add yield vault whitelist and fix x402 Bazaar methods to POST ([dc17591](https://github.com/0xPolygon/polygon-agent-cli/commit/dc17591217136d62a0d40ace8ea0a17c910a733e)) -* **ui,skills:** replace code review use case with lead scoring ([73b9283](https://github.com/0xPolygon/polygon-agent-cli/commit/73b92835379f641c81ac5f4b5765449d19e91523)) - - - - - -## [1.0.2](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.0.1...@polygonlabs/agent-connector-ui@1.0.2) (2026-03-05) - - -### Bug Fixes - -* **publish:** add repository field to package.json files ([b037364](https://github.com/0xPolygon/polygon-agent-cli/commit/b037364323343900a041e16e4b8f7ff92345d95e)) - - - - - -## [1.0.1](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-connector-ui@1.0.0...@polygonlabs/agent-connector-ui@1.0.1) (2026-03-04) - -**Note:** Version bump only for package @polygonlabs/agent-connector-ui diff --git a/packages/connector-ui/README.md b/packages/connector-ui/README.md deleted file mode 100644 index bcd7c3c..0000000 --- a/packages/connector-ui/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Polygon Agent CLI - Wallet Connector - -Session-based wallet connector for Polygon Agent CLI agents. Creates secure encrypted wallet sessions for CLI and autonomous agent operations. - -## Features - -- **Explicit Sessions**: Creates session keys with granular permissions for token operations -- **Encrypted Export**: Encrypts session credentials using NaCl sealed-box for secure CLI/agent ingest -- **Token Limits**: Supports native (POL) and ERC20 spending limits (USDC, USDT, custom tokens) -- **Balance Display**: Shows wallet balances after connection -- **Callback Support**: Automatic callback delivery to the CLI (default mode) - -## Quickstart - -Copy `.env.example` to `.env` and fill with your project information: - -```bash -cp .env.example .env -``` - -Install and run: - -```bash -pnpm install && pnpm dev -``` - -The app will start on `localhost:4444` - -To provide your own keys from [Sequence Builder](https://sequence.build/), edit the `.env` file with your `VITE_PROJECT_ACCESS_KEY`. - -## Usage with Polygon Agent CLI - -### Auto-Wait (Default — zero copy/paste) - -```bash -polygon-agent wallet create -``` - -The CLI starts a local HTTP server and outputs a URL. Open the URL in browser, approve the session — the connector UI POSTs the encrypted session back automatically. - -### Manual Flow - -1. Run `polygon-agent wallet create --no-wait` to generate a session link -2. Open the link in browser -3. Click "Connect wallet" and approve in Ecosystem Wallet -4. Copy the encrypted blob -5. Run `polygon-agent wallet import --ciphertext @/tmp/session.txt` diff --git a/packages/connector-ui/eslint.config.js b/packages/connector-ui/eslint.config.js deleted file mode 100644 index 238dc2d..0000000 --- a/packages/connector-ui/eslint.config.js +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from 'eslint/config'; - -import { frontend, recommended, typescript } from '@polygonlabs/apps-team-lint'; - -export default defineConfig([ - ...recommended({ globals: 'browser' }), - ...typescript({ tsconfigRootDir: import.meta.dirname }), - ...frontend(), - { ignores: ['dist/**'] } -]); diff --git a/packages/connector-ui/index.html b/packages/connector-ui/index.html deleted file mode 100644 index 29eac86..0000000 --- a/packages/connector-ui/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - Polygon Agent Kit - Wallet Connector - - -
- - - diff --git a/packages/connector-ui/package.json b/packages/connector-ui/package.json deleted file mode 100644 index 9ebd38e..0000000 --- a/packages/connector-ui/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@polygonlabs/agent-connector-ui", - "private": true, - "version": "1.6.15", - "type": "module", - "description": "Wallet connector UI for Polygon Agent Kit - creates secure encrypted wallet sessions", - "repository": { - "type": "git", - "url": "https://github.com/0xPolygon/polygon-agent-cli", - "directory": "packages/connector-ui" - }, - "scripts": { - "dev": "vite", - "build": "tsc -b && vite build", - "preview": "vite preview", - "lint": "eslint .", - "start": "serve dist -s -l ${PORT:-3000}", - "postinstall": "(cp -n .env.example .env) || echo already exists", - "typecheck": "tsc --noEmit" - }, - "dependencies": { - "0xtrails": "^0.14.0", - "@0xsequence/dapp-client": "3.0.0-beta.16", - "@0xsequence/wallet-primitives": "3.0.0-beta.16", - "@polygonlabs/agent-shared": "workspace:*", - "@tailwindcss/vite": "^4.1.18", - "lucide-react": "^0.564.0", - "ox": "^0.11.3", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "serve": "^14.2.4", - "tailwindcss": "^4" - }, - "devDependencies": { - "@cloudflare/workers-types": "^4.20260317.1", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "vite": "^5.4.0", - "wrangler": "^4.67.0" - } -} diff --git a/packages/connector-ui/public/polygon-logo-full.webp b/packages/connector-ui/public/polygon-logo-full.webp deleted file mode 100644 index 5c50d0b2fdbc31d399e1c6e7e4d1a63effb5531b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46394 zcmV*^Kr6peNk&F8wEzHDMM6+kP&il$0000O000302LO)&06|PpNb`LF00I9eBuMc8 zcxyzY?m3LxNK(|!KkS2ngLgzsKz=3?U6gcG6}pWa(M1wDb(%OW44%|i_3u&bgTy_B zoYM9{t@o5yTdHt}CMd6Tq;LBtiM7zTJ-L_e8`5p!?Ppa9cim z&SDOwU~c>+bk)CB*yS>I3*>Q{XH*W>e9%W-_Ofc}J|6d~_*yhoxtRg!#L{7YFC8+4!>ck0_ zxMV70U}sxp{Q8gcLR98TS15)aJB}8OU1(-}cZUHe-Q4HYq0bMWp_#FZ&1m;*)eD8p zT~0(~qniVRu?5X@@>OdBG8Z`&V4=&W&1}~#Y}`SkY+I5+n-DbcpZRiqiywrG+6 zSy7=fmo*VAc;Pq(Gp29GFaEd~oX$;6fIi2(LGPJKANkfXeIX)qNmCJg=S7;2%w}w7 z`|CRbqH{x&La@ROGz-jXH1eOTI21b9Ggn~oliJD1?3!`%*-Jo*xtoc@z=PkXMP}JN z-#%^_MCV>60_^m7#mbmz3&v-+gg|AkWag zbqmJHe^>-k$Xv$MVd#%vW;A2=&B%$r8U)q3iV0-1`)GmnXwmrizP+Gx4O0=Uc;h5i zk+m5Et6MgNh|CR46d3ZG(X_}~^^ueRwG32cu3uW9*KVKEVr0!)G>$ubKDc7;UgDrz z-4$rY8a6Y&wEG~GIu|cdtn`;@jK;e540nF7fXZCDR59e#&loG#cnF;IpW%SWT)3Q~ z*IsYXys_5JM~?aJ5J(|&+0qhitKUXiWbMZo`Q9$`Na5zHrGn)yox*5rgl3Ts?f}ub zX9+Ou7a!0^Hbx6g&Gn(<)je4PwxmZbwAwU0&W^AYyIq9l3pl)teA}IHH+|wJIYYhD4 zv;`m{bD>fdtaxulAJ}NE-NGk7FCaSCsX}zvxzlOE*mPqwKC-!kb90q)4nq(6h|!Eq z*o^kKbs&YzJxYNcA7hMc%oaH64@*OI?oa~7TK}EODzZt3$d3+GKxD2@s=(miPhs$E z*wI^jeuo0$=JMnmdLR5186z9F1!K5+1(ibQ;-n>d@9;RyjE&rkjF&D5)wwpQVzqzJ zA{%@(zH;n*a56V05yiq6e$Eis=*^owy$v8T*Ci+Dwcpz`Z*2M@aLRofLRIIgCNT!qWDE=suMao{q!j6U>^NGmdZ2mZ=wA(n6f*aqLNVfq zQH*A+N2@HnvpXP)nTiNjym}&is0Y%F{CukcD0D7CqR>5FWi(?=#>n@7y%1C|s{+~f zUT?wbfwai#t}PwhT!OIae?5b-Ce1kgA1gu?9h4G-cKw8ARu5#XIQEK_F*hJV-}9!? z2i9aX<3k%c6pD^JhlNj@K*pLNtH3cQ!_ECivG^CPBJ0rt`R;gHxZ ze@hCI5#&7#_Ea%p$j* z7K$NfOgHm3mo%&BKRgH!MK)CxOJ6sYG0YV$Mvgss7*qr~6@l#ZNV|EP>zNtt?;F4= zvMYjKhmU47o2!{wq zLU)U(D+@uV7iHn3sfoI>EYQ`iEDDvLcIsSF7J{zUqAXNqe?*J25OlVdg;VJ+3Z7qG zGzd^ZzMTlRdBx0IH;NW*4gh4H!6TMkZS76A-)ZLq4nKU?owna(?NygvVpt!{C}ruS zVTl%PC1&1h@B)i1zv?<0Y`ODJJMDbfVMpw~!%n+?Yu&Y1S#F8pgGz^Nzb6eE4BA?zP*VTYh`Jr57GCsKiWNS-9C3aYdT~fc6=- z*b1w!v)PV2@3`BcKiFZ{Z?C)h@=Gl^&|yYxE3_NPJg5J6Rfr(-q8N7E`wX$0L|g#? z^R2tx5occiz>8zq!8rQUCvUp&ggw5uY#RU+P8*ZDQUIX$QtNF0ljASG?!K2loIqoT z1a_3kTA`Qf(f3;=-ANjHy?5AN6> zg&_Y+iEao6lppl zn5kQRpWpxG?$^Kc{6_QDOuhHjOoQ1Z>*}S^8Ch$uikn6&ktA=3IHNf2a@bL5ddggZuc|) z``YNhnMPmD=&KoxGmj%5x$dN$7s8Ap-8B}CBTpEDqChQ58+xtu5Y1u}t5FpIve?15 zzBAEC#`enl5Y0HNW-$a`wFk~P;msS4U&#RwmBu1YFynyl|L(spjhxOIg zhs|OP!B_2-amMh)Tlbu`_Xr38aoVuDOGVYGp!3zKilo(8MO6Sm7TfXcN8kE7aK_l) zUilEBnXxlt2*J0vd(Id?fAQ)QckT@VL{)NEkKzD8H#_a=Pp6Y)Y_EKXX2w}Hi@{gz z6=$6C{v)TXsQ^T!J0?W7|9M_WA*f5IDEE4c46$Je7T9*XG`C+J(qhg5ZA%~U_{2yu zRz5~{X$;;Q$uRwe6IYoBK&eeciUL46c+1nC8DEj4h02E*dC_9!+N(fdf!rhRzH`h5Tt+TCJ-({I@b zDuNmn74$u2lm*|cO6*B9CTP3{uBBWFx6lu72qbCI*qUb1IO9`Ct=$(=Xwz_Q0`yt^ z@PB_nBT0*9Y;}tZA!NR;0IN+qq@kIIK3F!BUL88HyCeISBf$^~00? z`RoLKqjiwqIPu-v&O7S+%k_dl3u!&QfR&}_xmm{40rPHs?h}(p+Kf!u%#6lY&fH;9 zKwP%g{hYxP41BX?RM3CBD<;rrW^8RUGjhu9JNJV)={7Or*kgvGP}HzE!B%(DXpJh; zn4q+0MdK}eXgfx zs*zVa)T`h?dM3IRq~$~a2$nzS$_GC)lJu1iF`BW1W-$g|wR6Vyw;ww1$BRJ#h_u*+ z^h_~u^Gt~Vz-FhvFo}$nF^?9!v3m2u?FIl4$53#6cIk+(;jpxP?fLIbnoKA@wGOK$koF<4DFT zGP4$aAZ_}^%k_qo(rgrqzQ~Y_@#l530V9))JPNHXr9gXcblSU-qDYS`+1A4D~#pFnuH|ExSq;bN(w(AEJ+Mv`yw|JFCZ%jJ|Bj4R;9u(T`!B_U^ z1yR(x2(a;u6KUN7T4LC#lV}#1L5qz1^tkzyBCfl&5Y?< zG~dK z{usSyPD8M_cY+h?#`t=EG{rWYKKths+r7i+ncLv`)vpVv){QuUZ2#1B2G3eFA6PxV zDrtUyL0JX$-%g?JLm#&yhYdzcG?8Een-; zkwRqkdubMobs2+^&u!NRrwv6g-&eF$j8k?-Q5TBEKVnS6^OtBtOBRa$+doIMV9cd? zGfp{v5Ja1gI<)QZERDffmlkMzexLqO*I>k9se2g%^BW^aZUCn}pTuGHI~k36w#e}Z z73%85IjnSEJI#!BYR15SuB1{l69_I!hZQfYj}nKImO|vnwc%PpoM5X*8EM9>nvu`% zHUy;**O)8;TRa=^Q_YUYF1Z=G_9v?2JNcKotYen92}X*D)|$ zH80dP5gbmRjORalL2BYxY-bwpl!7i-!3Hlz`p9et<9pjdwV9}5>HkLh$hr=Jyk|+M zYZ~gX^wadloLk__OF*T8Xn|tw1tCu6>^Thm7ei$3Ef~-41(!Vs-Sh)mFxI!l$kE>` zq-Y+BB|l|M#W;55dJqh_ojwWjRCHZ|0Vh?Akr}rb>Hp9lr8EyIq}PF8GX`UQTa5hr z#J(t-g$TAC&tS}a;3uoXH4i6P`J(Bs?K3Y*os;LV-~%*c4O-yE1zhF|3_W8a%~}}&@EFvhVqG&!qgt%X#9@_t8KW`t7Ww!p(8eJSi~WaYtb2>RVMR!j zP$_@vY0Q7%M;k*Mh6sin_bDs02X<(K&bf0~^<@UuWaPi*h2%^G>pVkmtbc3gJKHIw zVW7a4(`l&~pYL4@z_00pD?fvjqm;t+B6i~z0PQCfRP_;3vCX9w)072 z9Y&7Z2HGT46g$1b=ou%*cB5 z9Jw;IF=!#!;I6(e~nTm?m@q`;6XXr4{c2i`RVg*FP5 zIErTJoLdLLHZ-Of`TBxgBPEu+hZb3vA@H&RaE(C}i$2T{*c3zHb@M@`35eiiPLHh1 zz>ijfHiSa4$f=$djWe|v`Pom0z!h`c6idC&$XfM$b7d4+5{K1aW{7N#G4iADppZtP zSoRafRE!_?gJe%|Z6Xy3Kawy1?N$(pa~V4=n<10E#~6Ot;9U89D7&CA8iIgZBQK#(J&z?_Q94 z69Ja}+f-J89k<{)=G+m0>YOq`|7+>3ei-=tqR`AZ3_RakVDpT|%lkkZ1mK=ZC-S{z zpm`I;gN!K{<4;ha)5YQVXo2Xs3zdc*e*&Zs()Jp*80){Bg#}CK>~uSsGen0y&e>>V_718nnJt(QD7w z8Kbe&qZyyyu@?%R6XvjcWyX4L=jBc$BLzm>!C-8tfp4vWqDd??naO(I(i@Vs62~)I z3dZwLptD8r2YO>Io96?=AhlLt*;g5i&D0{_S`Mzh(Ek@>X{=x4^nKv!N<}vPFU^cy zY8H9>dVt6rFU7i3S>J(w7UWa0)T1;u*TA>efNKmu@ehVnA}4JEmoq`X`{(8XIZ$qQmn#?wQL--0g5^jQ7rVAsf>|b9s|c*vIInA z&X!`4=NapZ#)BcbD6qzB3~aK2?|ui`7!==Pv_#m>pF?w2V4Gl;#{KAghvR9i@yN5_ zY7D!4!N4Z#`TEjuH3i(rx((w zu)!Cs*lYtweG6rC81XzqDv>V@gJeu`Dl4Y3Go+KGz%en@ngt$#vZh3_+av}y+rZbC zhSZT@zB8=07RKy}WQ;ur?2Ge&;4I$RDMHvWo%P1keO zx6sxQP~aF=sW5PpoGBK5gE0l;rvuU14#zPVYdywk+o7l>DY5%h1~%Qmx0ivdp%S}K zGpjB0{0>~LNC~&X4Wvc3uo>fZo6UnZnM0*m`zuD)yXOOgpy@emI+~HqH}cDG!8HVj zjYl)45_t(SuGo^EDS94{&UVl7bj}p|-N(qfuXu?-Qgc}C3r03!;}_qCHUkv+4}B`ekwY^E z{X1g{W?=(p=LpvLkdd_?cylk*kYdLPjBLVzZ!Zg1Hx4JWVx1fR)(f>Mf&)1iM){A24j~Hu>oc0}PJ*WuQd(zBDCK-eA-CZE!<}@kR zAI~Oe{Av|QQV#PyNYAG1`QGX%8Ua*ZV@$>P5L~|YV3Ov!9}0A)INU_fW;k_oxSCNc zIf{`@Iq-$~p|t|Nkb(7Xe0Bu12Bc6d|Bs3mm~05fr?x2J+#DsrJohj*0Y*ML4^mbP zzK5R8+4GI1;2MF$xlGph#gfo$Jw!_(@Tp%QWdXv?1~G5oNvNn_GRPP=LaCxy&GDsUXl8Uc;JMv;z4@oz>pY0vuyLz)1v z@RVdo9)luJf)&T5;dv1Xbf#jrsf-Q5B2PzACl13OV_=gu{!K+{Lon>N1`zqd>d@RN ziXC5~MPuq_9CyZ0sLU~PSbsDlo5G~;qew>a8ycH+;6EIi0q&=z68LBV$x?~)XiU&J z_FHhBp;&4hBb#F6wE>(&&!!c_58-M;vFvNK24K;z1I?E>!SFN2GJ0k*M#iVV1y!9h^sVV;je+ev zHI)+EOlI>U!~Q55!Mq>S5@E&DQ0Az>HWO(nkOy~;;si!ENzZ-jLvT3FnieC+ZU$Em zB~G9<0Y*O1hHMv#en0t=F&Oh1jN$s#(b;oY(CZOKHb=9tF(d`WlCROTc}IS=F^c+w z;ODGT34Cc`XogCh$%+XYM-M`07T9Jgtx*`?=!2SYShtxZ04TV_lDG-2(Dn22t6+^AlY%)lipIGtq$p!D9&KC#_`s?r~^TH z0|T46@k|u?Q!MrdV`CV*0wg=4g5D>OVF=7}6>0tYP@uU1l?7C)$kJiJY=ITqaad?D%9fZ|u<^=zj-8*I5k4S)4j% z?AWnmzmELo7-M!AczZuc>!8ow49u%pjGV@-(<{;#b}(>Nnels zdNPgQ9AmW17$41BZ=6YE7g~(QnTD?(zv=I1|LJ!>JL;(4p7Yo1pZLN!(-eZ7us}}6V88V)YM2ac*_g} zzuiKDLl~IVSQ*JUWz6H3|K^9AEkA6&p)<}qZ1HdJam-)t`(Uak$tq@r6;FZG9WdWl z$rvYX3zrp<_h|{3@fRr3QBhpU$jrvdNQNn+AH3?fKiP8Sh3B7l=+L1<=U-^W@9cTP zrFVQXshuQ!ur9O6wX-IQvl%Tbp)!)y)c5Z_=kT4syZrFs^9~(4biVl)Uu*jVPQCG| z@zacC@G&bi9*rVjZ|jg(89Og}BW?Pp51+p4%EO2BZ7T#b71!2p$O0Q4{;!v&1~OJL zCy^g649S2iFy!>9v}o+mJ^b@LRzH6RW#-^dgHkJ zPuOfA1T#uUF>_t^r~iJ3X2CMThXi#e*eF^mfiEop%}9Z(7@5R%aOkL@*A4W{X$ZzI zZ#rtV5;K>M&HxDJ-|fuDr_n;}8so_L$TQ6QDl>Gd zs4GM;=)0%BL8Dn0kUZ$Dd;y2jGnYnV`>h8p3qT8%89G&50if^tCqBkVvs@Vcci?jM z>Y~qflF|6c!E2Nd=LB6Tt`w9T{dEdyxgaMl21!X&vCOq&83KDm=zvdXon_I;NB3OV zLCR9m#ZnZ4a?R5}BV)|SJQzP3 z1gSSD4q%lCEB>>DWTV9XG)utv0y-|}a|=T*EShn`nd=S&iqfI0r6>U`xb5vUi?J&n zIXz>Gd_~KI89Du|)%!t;(xHn*O9cjh@86!Zmvm7K*Od zLeaM3MKlYR32v2?3I-naIiqJ?&hf#avD1PvJo)`LKnjOe6fG1O@rN&H!7{2(tsL#G+X+{2hD#f3Cx(Y)Ej%a#OCI6*5);Q+V%Kc+K; zJTP!SbS>$nQ|Q@Yi?kQF?+q!Opf#ls!D_bz3zmsXp~+~0zB@ikGh@$)zXLZiuv5*` zKeS5$h@y2xAz10^DGZj0$T8o7>pI24Z!t29p8n~*0H_FBRuqC2uKbcdWMb?VDC$iV z=g}v^ia&wm!ePzPj0qUO9s%hPa1|{R(eulTmIg!xtt%=3*1T&X+hZq@#zb2{u*BF* z#K>`%F9n4PT2~Z;Xj$s7Y{LZD0+VMBLFIBVNnt6`5Jx9f$`N|kVI6m z){UNKtkF3<|HP)F89T)SU)ikfQX>gMbUfjmuQv)k|#iOM22bXaNyJ{hCu}_FM>hWOtqMWace=75MaSG zN76^u>KvYHa2h>3(ITgvu@KZDMJ+JsH|>mh2z+gEXjchFjAIs!ymEOI4k=2Bem@?` zXc;hTUk|R{M2bfk5;3-~lM6w=+ZYnC$W7qTQHM*IM>Bq~M}HK8B(=nl!$#4plTz)v z0^b>z1&bVeP>Dj2qB<=6$7!@27(bgIlBJHD@#F1#Nr5Dtx+5ktrbpu`C=*aXe*6hz zF!rGM8}96s82QR34y7Q`Qn2NR^p*p9?%xWh(lTI?Qx7cQ1c|D{s<$!5^yqn+L%pHE z5yn)FXCjk=RT!C|=YvC`9T5!qkd}jJyk=3j0?C#R%im6mH6nt4uwwc#@`*J?3M49R zitoP95Ywaak7&!2bsz@bu>uN*MAc#ScW9Pevj&$`D@dxW5MF( zgW(kEs>9%GX)yJ8CRpfGS~8#J0{B%L zfrp?(M@t;dEO<^i3~+*k#R-m`YQ8=kHlIdIFIe@LL2!a})uGp4X)(RXcb0)>se{p~ zGkU=Zk`={LPcT?&fzJ`6ghekdz;IPl8@0YTEDC@v2cGeF}qT~**5 z8k0BkmyUoFq%5NN?&tJ5xE5Wl2gRjK*MAS1hu&|~5{Ud{4Y-bov^_}AI|< zt75G;7_BA*ZCBAV`M|IC0t88m2#%RxAvsn&5oPuwC+!Cnq%4ZQ*V0>Jkzaos?vxZ5 ze*8FEWF61px#d2_4tc)02Am*u0S+F=n1RS&plcONeZZKUk;g#=$vdogKVx!a`>K$7 z6KoWcF}wFe5Mt{C_)#>C9?XtW&?f!pJyV4n3nXD7bp*-?vpYGD+}pcMGQIL7ph zZr4 zLn1~Vjxs&L{GZX1ctr#qRV?~CLu%3UG=W1V3+;6-qt(J9)0uqW8%x0sAK>tz3yjB?cXJiN(mitnx{o$j|^G|Eb>BuLng&xm&uIj@l3cbD6lJo zB^LSRrf3sn(xJ~)tSl`We~qHv6pM|ar9sb|;3T;Mhr}evUqd@#H?}izi~K!Qkxg|t zgS7l9PGs_tuP+HjCPgvt!;FbBaJ{U>IBicjK^7erc#8oQ_}s!Rq7HoyAH`_K`d&{5 zE%1*81lbh9?h_ePGrl)+ZK~5E?(ky#YzDi3h@YN-u$fscFLkx)-Z$zgXnAu?{kW0m? zUoxf?`Sn_@A%a~VW{j-$C0XP}s)C#<_MF0)+~gflbedv~skF3=eorWJD(H0+EiJRS z6N*|xfgR~B4OaYRdJZdnz?gvXYIIz%5Ik z+}*^$q$5YIhXQ#mu5u=bY>DY4=nb?311 z$Bbz(@Q+B`VS{OA2~<1*f{qWF#IysSTM`Z#mJ-)8HuJQ1L2=bg01JXi2f!8xENk zEI*!>Er*S!(Nglfdk`c`fZR)KoSD3 zq$Lpe>_BLT95x(7ODOQ^c_H}{wEdG+rUZkYU`)u^z7GoIy2QSWmJTak29fMUzP|`G zLy9HdVMv8$n|6*Ag5_^xw8-W-B39c#k!^~Jjzz8ymmA}Rp^z*&to1o#Dv?KZf++eN_$Do~Sx(3}a^AcN`aMlc$oS4+ zNGFsym7eK({sm4l28V6iY3W4XgrepYThJ#GIcfvAgzlpyaW@1VRxI=aLpp)4E(As1 z9Uf)O)W2v6MIHb_&K-_s%AQ9<@^d+IUEnVa>73Ca5n!{&+F3>RII+N=K#+C8_Dni* z<<1cFy*;JK_eMaGb5UHvDy7#3K;uWpDv)gLI+d2pWgU=0u>93i83XIl;v6;4|Mtxt zppVg#+PO0v)*8i_4*3fd$h*UOBN>x1PTUqny+Ls@t7M*E5SmDd<7jMsG7CFFkaxik8PXyB0=bENuy3}Yc!e<$<2|!hD25(BiZL4N zF_=|z(9F0qN@QNJ4MRf4KcEvGcA>X~KI@C@m-t&k4E!D1YR+N3QH*I=^$kEg8=npi*z5_&0qTtat`Q zk|?m!)hXT1T@O@V47|%p!k|HOr z3eA>a<0_qJzDc0i_?Ez6tVgrR7q(yhN(S1TG2^t|Q6T#cJ26^9U-jvjV8GoB$rwKx zQUg%@jp+uyz9h8XP+*^mmPX{LrJzYToW_c+?|Eg}8H(kI56_ZciVf`K0; z6!Z8w&K=?m3#-oUzA5 zk$*wI+vyXUwhp9Yi+o8-#`7Qu>TsEaBByMDqUIFyzsZ;eJ@4azNsFwjI*H2r%#Y(-^{>uaN^#i;4waVoZmp!gT~VJfVuG zLs5r46SbqvF4KgeSNdWG0h9u5LflmEBLn;>e9TccVhZWvu%+7W6$&g1t zQHO0fk1-wo5-uZ=@2&usF~Mp{sbI~^r!g99G8muSy*E@aQ&E&#-|Fe-a2YQ`O_sPK zA>&mjI(98%D#mGBp{NDLq8~G+;(7Z3)Exx(rNd)V5G*{J)_RenH-+nz-nTQR68PBs z(0UNXUG#Yo^nHRMo$>Rd9u*smqorcJ4n;-+ALs+g+Je()sfeKeDPJ%|)}xv6!=KF$ zrPRk)6|td>)FL6ojLOIE+M}Uidj>f znvU@bxVk`z!)cbxU$y=OeQ%^s!)W`WY%Nhd$(R7!SM0Q3r$hd{P6S(ptO(>vR;g6n z7mE7)J!2va`~%uDGJ4(2DfUf=HEHCu(-uYH(522{(bLD1HoGJO+3XHaZ=CI^cqv5c z!`;T1it$L49r-sc6^5Olwc)VlNXA4W@9R~6aM+L0l3>NZ!AVOwe0w~t^^8yVM&}C7 zPsTWYEohxAI6X51@1jq{IAtBU+7N6>pNi+-P-Y|Y)5W1#bJ&6HO(vMdTh<0t(Z%Y3 zb#9}@XtP18z|ixj(+4K|Qh|q~M2#N9kO(VYgtl38csij;gHWF$`W!dtf^^nx34Ki~MwPXy*V=CUh6HR&Zrj99AF4m`KG7pi&!x zfe$bw68PK#(0sgAKr*)}V`B+{Zyq%eB4|w!!SLUF!VqR}q(HCjpJAji<)?aeQD~hk zK8BWv=k-vT6~Tzl6S|;Q9F8!iyG9dm*l08@jlc&6Lt3c7-VD}yo_~NyXMLW~`E~OP z#;k0}Xo& zvB{A8LFz>CJ%+4o$BJnhCvJ(NKH%_^WFo& z6H&!{=Zs|ZoQ=8yZKxA>Iej95PYr|4io@2E5?TvVBZ7s-CbVx8fWz@jHSk2Vuwu!N z7+cTt&fbvD5iBw>p)KoXamI`&_DLr4qgCK)q`=mUmWFZ4cTqH`HO4YFj~I+E?$ie7 z(DF{vXaD!f7-vIN(YEiKw8}X9L>`T@MxZ#B?a92k4BV^~*t@PR41w!qrKE-4l9ug^nD{R3hITTsMy= zW4x##;IFBW+zQe%=<_IJ>qWk`2(;7In39ekfLav{|CE*w;P>>2c;1Qie<0!j5b^03M})N=`>>&o7C6q*UdJJmPX`fYtCAUQ)x^y z@SZ+(b6G-HHUq)hjENYphPH}e@pdL?{2K~%vf{h#Ow{;MpStOH4?{Kt#T5*RL|%rr zIuZ20hdz;Z9*d&;#*F^vjUkGp6}@)4m(i?lBwr$!=Y;p@BQx2gK3fD@Cl2e6XH4bm zjXQE4V=`B`x;c@l8t-ii17D$~@@WZand4}!XPmYPr1Q2(=+)kJ)B8VJ>HVK%jHjZk z6~)!8k~sygyC$0PnJwE;DiU{!{y+PYF zSnSnw{5BoAkv@@%KZDfF)(Jh|7*_h4F^$0gwu)l&X=(ff(gpj)bZ#!{#$8OGkpYjT zGi67(T4}?{^vPTVNH>fH&q)^z1VoTU5y7VSv~zlW2yVGy4Mi!Laf*db{hAhxvth<3 zYG>%9^oa!i0OhRRl+fPLnproY_ZxyJ{>&UO zW(582O(t?@6tf@>cO}!#t>9{A)r7ui2q>{T&62RdqfxekpwCN;trvKnp!3tZRBGqK ztjzmvI$y5^t(6i-Fj^X(H}>g%F*823lY)4j?xjzHp11Xdv_OF$RaZ}SiE+&pWICrJg42UIz$AS)|w$BIpwr@p_-ODxb5F$jK&<#>Dah-h9)$65TqHv z;kHyFUm6N&fgjUb%SFDs0$i8um(a~c-4vJ4u5CA|Tg(Fey}PtQQM(x<&G`He`=gMA zRI$;GG&AP8=g5~3Gz7s0o{0u--F1RK|D|WkdtQPPU8vYIq;r2+H}l-YFnhM+)b21N zKRIdu3dL*%EpYnX8v`O~h$t35b1Y+IuIF@Y)S$j-4glVxrD41dU9MQgqP3iH(zYnN zW~=s8jBm_SH+^oIJu9)Vb$eMbR=-^kTA+^eMtaY&*DM5al7I@_Pd|)SG2cz<`r2{- ztvy!UvYX~$#x%%@1G)_OIRjfh@>wXl<~!5V`Lu7{41SKW87x*iKVo-Rh@5uIT7W2K zLuk?Xp>+cMCNJ~c$dF1rxL!o@cUFnC^K>Y> zF`}n`Y8Qbj>b)+=5XqO6z4t#`?;kfF#NLF4ruK+cV(-1F(V}Q;izte=)F#x5*sZ;3 zX;F$AwX0HUhEk&?YOk8L$9>-S_Ye4f?mVtv@;J$L&biKYUFS8P&*!T#roulFf*~C) zG^EBoiAHRyZ@SjIH)vaX{Z3UIW1?*Pc%#hj%GhWnMt7lhP9MiN=t=+Tk=Y+x-NumK zLXFX7alS+Kp+2vMJV>}fG_Kxkk}Bx8Vd0?fe`f-m8ihCtWI76&7cjR!S|ZZ$HKIq2 zC-L7@nSd9`eL+(H5>vjXUsmd^2w;G(6mb2yg}3;CJ(}WbAO$RP#U`Bp*7|Q0m`AUg zW?Q)X4rS;R`CY*?I}?yXrYhrz2i{5$6J6k{zasJK_YGWXxhQpc#Wg#(d+JW1vYLhB z9dpkYHEz4MQqt|$uW~d&nWXJ;bsnMrbaybzuy$) zTM+_uJz6j~w8}Pz@1Vwzql#>Z#CU(!uzum}2j-LUJs3`jw~pxG7tY#Y9sCUpgUD1% zY|SNXH`t&hpBI=eoZF?(w7Eu_d!S zyYUO~QHsqNgv75F)}k3k-^jpWXwO=r3>(k(A5!iBo)INNnaSC29AFxYBxt$me8e}u z?06)C`6S5SaHl@v&#|%eZlPC-$x~}@<2dauaOq@*2fTn#3y zA-M>~k@Is+q}Q}~I^v4eZ^K93;q#^}P4{B}ineq&|E+w|w&!WzJ+l&0t2=_b|455I z6$eBi#DSQaQ(m1IhMh6*t8jMm{iw}hYX^T|8x8Y2RIeD+EVjNj(UqEfBNyx_j@G{? znRI;{b7m%bV=%3yG)qQfPeW5~(hzNgTF0WG5x+EzmK~ngIZPR0#oR7D%~2wQBQA*( zPv9G07G@XS18tu1h|xA4+(1>*Ys}}aF;j*(a-)*L|6v2@!HQBswI{vlP^_PODkp~= zv59$8SyzMo=sw6?1K&pD235=*&}ad=ztN;XspjHR8(6!=O>PIA0nF z#ImH%s52pA=AB$tZ4APnh#n4R8TK0Csq43VUPvzeaODD=oZVYE7rV__<(T&GS>Wjo z_Og2s1JDP_3&AO@prHBTtYPM!;(uIg=TI$VjLLUl0vIJ|c({;|2|N>{I`5qb$&-$q|!!v-J%Y#HKp4RYJoqU-UFRO1qNoq2jgYtYv9I zg7t6o$&t_B9;BkWDAT$-iHcJD!~gXbpb@7|31CS|#J zveW&~hifPuQFnXjDSx(i%_3yx+ynVxTy2mt{B+8VIXxxb^5r9py^#YHN zmXJec2-B~JKm+(K6w9nbEQkv-TUpIT)i4MaGL8gWi>+Zywoq+)IlmK)(T^BHEC47Q zUoKMN(4T(-MEkI99xVFYC>PyMi$@eI=b~?#&a{xUYyVip0KgKuaYp_nVD-y~1)>(s zL=P3Uc)V}Z{wyZevtgR;Dds2D`s=KZI|;j1WH=1ZL&(vIgmq<6@P?b+#3;G1w*ks7 z44>F|PY)+azZMUhV=qV_*L8KL_Uq2Y65o2A3%y4f0=TSV6fvq_QVa>qJzR+-{I?y9 zBU$LRry0$Eee1G1Zu6FCu=GJx0=Qe+>Zp8Z_RZe55vek#5DFO~C_?hhxp`4}%4t_} zvKNWP=oD7`=zZcQG>v;CdXph6H%aGjVhJn610gwq$<${y_mo9vy!;Q&d<(wY9*?EG zpd+yUC;Gc@~*~UgO zxOB4>6JLq+zoM_?^E2p7VS$atcQrrEA(@00U~8I3%j?Ihif zb5f8p>XrBNLy6Ixr)6Mt{>GKWQ_wk-6bKeYVMq&*sFtpqW<`L`K*w;3$x^vT_wpSH zf*6iQVN3FL24*jw_$~=)V@_8V#`n8sN`X3pz3}9TH-wIsK`uz8`9g>_IGdYoafzQB zz&?axxLJYjm^U5zLKk3HAhY=mv)+ao-bxHyB#%9cme*KxCd`}v=q5TeUXywLkZ`-yGzO;R zeGAUWd?A98{eF%N+D?CDGPp*r%yl&89u&w&C5`4Oc*^IbvPJ%xehxj+ zx7R;{SzWwB6nFju@1yMtT0s`zp%hjHe`ZJv^I>Zu_nQYwM0DhJDz_GExTZyF&kxIn z_2P9)tn*c0cRFN{CM1=8f(0rYuQ3_MOXVV(xs+5FFSiX+9Oc$T zL2|&B7*JXChWeMbQ9SF5s1?K7Zj@~!Ye61^%5em8hfh}kp#2aER1j%}TjMu|iw*uj z16z=5$c{`fPzk+ldy*8o9M@ag^wa~I>?%k&5O(XQSz}Q`fB?DA$bU8|FHBi#_n&0;BVcVDZ zB|XE7c=Rb#Rq89>ACf89*Hh(&Li_D+idFne_9nfk;5p@>{(7^e%B~D%l>0XMI*s|S zp%glj!W_;t@mF&AtT820#m=j*3y2s#4+yT((wdmYD7 zHaE|BoE4?#XofPKPN->&oBp^)91bE9LavMK%z8cJeZR=UpYpGT-%w$eweslpBcphQ}ZQ5vxi^0o(~;3yjqKQ?v`I~E*5^{aP$)GEk=?l)H|}CT?eF0ivi9?n5Y=H z?FFm!J<>_e*E2IIWF&`|m<&KDg@_S^IW2HT$w*y+`E8#N?qLDqe+M~Le>|Lynl)P{ zb{i^si>#v+_V6vt-?`x>&-??T4}vDUc>&v!5mY(vh*fIVN&C~B>V+E0gs&(u!;WK~Ox+vcvQOmr$`uw62-ig#5>xaYk%ik$Z(B&Lxo`Vw10x^F#G&x^MB zy2Ff>_B&1ZwEp-IiM-tkB>r5-=J{P)rBfyfe%qmUvK6?aImc3m4B$MR;M9kx_^5J( z`E+@DgtZiChuZSp1tJ`n#{MjCbCS?n8P6qdop^ zU7u7@8aK?a{?(wT7OIr!Oij;-XIB|yCi+j-xspxL6Xd1xUvBJP>Ga_7WHR_j<{EriFa+vfnHR@=`tj{IENV zN$gC8P{%uk`pkCksLh+9Y?^}Zjp>(@i8cm!SRbbPm;pkWaY8$rUaDhvPn}?bv6<0RI=YbLm~jIZ@t z7_N^lw*OQke%##vv7hfski6$~4NY`E|HrNJICAwztnAD8B@2&74?ek?yS({&+{QL8 z8`jSF@CME2WNsnduy%!qRxsAk_*4VEum<*rJ&XV_KsA-z&ALjm@v1yD6?yZ+8`I>K zQ@m9QPxakjbi8cXTQXr`BwGI99<{gpIwSX4^-^Cm&F>*3-519rhm#EBLcCt6gA+4d zZaEMV2EMp{b?h;PX8&?Fd*1QK?a&=B@Ba+K=4-u0O7`|v0HvWc3^J99AA>f@gJY!{ z9})^vP-vC6_%UAI%6ZzD^yg*j^9KOp^5AHEy`H3ZKKt|PEfRv{U5CqLcVnferuy{k zQek0#d?1lz#wC6cXz?2I{+OPa!qKd&{zrdme+ARHBYY0u!s`}l2?vM9v+_u-W?U)s zh);`(&osK{S%Z~S{p%uk^*sS+IuwrlC)!Y$XX;dg%(?t;pnnqhrogwp*&8t~S|1nm zqyaQky~_w&0-v}&Y`B;)>W^Rpoy2Y_EkV-UAu5?I>+0||_oE1=8})`*bg68NA**)n zuT2_b<$XtaX%2{dJYd$A2RTQrdj^g?IMYZ|NX%~N!mp0dvv{en^p0hkx=HwNWL>Q; zQ;g=aF*_5C2EG`umUVq_hGqx!GIOnQGbb*r$bdH_a-EOc4K_h4ohP>qGl~4B0%0WS za;n%5epAnBoSkSc9tT$pM6gb++|w1{Y>buViv0v2HoD~(&YL4AAFs5CQ1L0bSO}oH zPp0vq=r0B$1`82Hf>^)>aU;88y@52SWeI(Jc!45$l}03ZvIhYWa0-rM%>@X2ZhMEg zHslW5*YG@zc}CrYPF6_2LO1s~G&^j`F6FicdULEawY;Kv=^?sZK+^g#P7psqOGNs_ zFp5R|ODndT^rwH1v3Nf1_5!sn5Ghpj`*d1;%(eQM>Q6jDi6nW1Ro>IhV*Mo(!RU_&B#tG_InCY@gU)9iWef~*G?jUU@M#c-my#pMLZjv4I zjGxFim^ERE8K%u_ZV5XC0$-sc)eECouwc2SM|+=MQ5rzEq(`1|MU~$P*~i{78hn^H zZsTV{DrLW=_p|L5TV>ZUeTXk3BwI6{mrYE;mJmFvWyxgTt=!2m@I9-|ci-P3A8t$f?VIwt+kJ&S+>U6w9$`V3UA|eh>ycs++V#@4A9dH7^J>d)4A3qt)6uK} zG*m;copuwj>v-kMWoq?2fg(EVWlCHh4f~EZn&Y;W&Bc~nC|4xz&Y9A8L8xLBvSGj~ z>eYvdhv-JmHX|t{9vfVuohdSjMY1_yVJ~J%MrGYUX(HD8d>i^`a;E>n@hK61IBDE} z$%QFE0d36?ZyskW{RAAFTJTcaqW^D~e=HdfT~Y&A^Iyz4CWzKg&ddTre&KB#^3GV? zZGdfUpx;QSeV}8MEWJ4Oh^(7s%;_!_>-iyUlv($k$UW7YLkesLSoCyJ$AK@AgC(mfX70wA zZMJHG+tFNJv72m?T4Ts1<4Oc)`zfw8S>K;MsJi>n-)gYb_sfb8%8a+bwSx5NKbjB^CNU+c zPivtQPx34iESF0^@+U4@MXh+Ltc(dasx=mZ7=Yf<4s%)sZ%F|Vdg%@HA*h+#9^aSQ zC}IXjb{hV|2V&)Q-|R1~bOYoQ}h0DWJ|wMOJ~Q>(ygJD@}M z&&zif^{H{5VJ!@{d)!o>ib)^Il<8ym1g#${=Ax|0QmTYl&*Kox(%ws19&&6mWL=*W z1ji75IzpiDI!)nxDTg@Ypg9%L3^U;=Sz#%I{6eG#gSoW7?W|P8Fz=B5BKhjy+8G84 zkkIV+IymM_O9}jYBe7JH_3G|}@-b+l&E-?OhWAdb7`8;+#h*WK)eRHVNo9DsnnR*R zFeUKW85n5oqH^cpI2q+4jT}Glkrpw3IFi!YC!QHCK;CUYlgPVkyhMj7U4N!w%hyj| z^UM8Bah7@TYghATwuBN-k9!~=>MCDCCvFsl&ocTC`{^*uS-X~9x+W&ax_14MPJ498 z{X|IXeu{Jg-#1mCEAH73vf*et`bX}qJ>sEADnRn)XBY42=SU;eDVICGZ{74!;1-<+ z-HWvfthM`jk9c5+Xd*sqyz9ZaCOeBE4CX#v8E{+sY3-;UmX>$F-nAI;E8CM*Z}JWC zBs%|9JJ5R|`t$zif@7uEzk`8-Tc)JaGg+?ZdXI-4vKCPi)7o~-lf72>=LiVEErE$XANSUW&iasc-NR1tdmEpl1 za4e1R5wZbkzGn@88cTdLtT&4>ZAHZ(DSUOW_4aj7eC$qrkL;{h`#>`N)pFo<^TBDd zz!++~JIiuWkXkc{426EWdECeF)Df|t{`*{uS~>&@`BvXPppP5nI7!5xyQd2R%5BOP z-C2*Qf01J*S++F1ZMfZw-=8FQH<`X`Ta~kVEr*;`HbraoXre1oEeCC#;(X+hfluCe zL(n7Q56R&^#A4!QI`*W)zuvz~7c|XT0c0`WQ>C`Z{H4+v0jZOE>4lgaWRM)BmJUCn z*Z|kRpz{dnpCaZPa@tj8cf&{0BP0jVrimy7kn?|nY=B16a4Ga@8^VnP#xa z9p}Hi;qkIAAG?C=C1oiRlxe&wh`LlX2L`dM&b!_6mH2apQbcD#CiUkqHwH%0XQ$AZ z6uT<<_V`?RsI)V%053w3*6O0jo?H?lF&*($okmnZ<8(bRX$ z8o5G5YT}rVZKEZ9tWmqchy2x%Jxv$ls-aI$4C1jqC(7YRrY?NQUqLeu(v1;n7vQ+b z_dQ+ZL0Yy{r2g5u16H)`;dDAA%v)cx1e?=2l&jZOK zE$R?IB55g5XX(i7X5Tx4%UKM=$u4NHjf_zHYnFyqZ1+P)3I_!P=}Ko1yOw^pp2_7% zni=Du?0(Tn@HpXBFL$+|^&WGKF00q~7Yn0-y>RWWFq_eb2T=A@Kd(F zhYM~bGonP0n2Y%L#$Sx(fK6Nop_PGgP?w4#;}Sc`r%bP#hPf4GLsH+xYgSTB8FU#7 zK$hBEtO&KknONE`;&AeJ%<>m$ALFwv=VOaviMdG0I8LaBY`=@{CzAX(-d0o~`N$3p zu&O*XEfStoYD2QP+|G4}mY=TQhHx6$#(E+&v?0E`&~5gE5}YX^D=}iPIr@wUPKA|E z0%BWCrM}<2SG5)-a^1P0S1>K-I9MwiEDbWT31!dRL(eft%l7irNGyFSN6Tgj2fVW%znz9upwNMaLc@83N|j6fiIGKsN2G%4D@dL+(P8TIE z%Epw$g1-`N>83@g?Y<4>$?GDN-U?`zKvZ1h#t@*+9LeSn!csXaA>}dr((xe4wPs zyp-u(!ZG#}i-Mz@{10Y`o`kiQWI}LH@i#C5_I(IIhfK0@Oa5x?C@~vsw571hGpSS= zIgjO%5vm=K#_2+MO(UstIEUQ^&6hUc=qDAKd_XqLoY5Nocnwc-Zj~uPO%TCH(}{T^ zi_62lTKmDRs^(^HFm!uXk%Bwl)U@`+=N7B)V|XKb$z0HaB#|qEQ+%dNJA@QBjrj*` z8~q1NaX(nW?YA9WY5PPus0CF-Kygml2Z9Kk4RvZ^zJ$01_%~0~-?ue#i%a=tTv3sQ zf%Q0NeAp^imKgLx+Br$!HeEjifZjP)ly(`7?%AUCYZBOUlG&2cS{`yBc(2z}m7%R% zY+gV&#)q!Hh26*cN+rgYH(3iUstB7Ip7P=8@$RKWl5@%DScYML@-AYCnnr&nuXX|w zR4xp$IKo*@-LPv{jO7!5DhI3P|6TSGHd(rhd$w%&zAErJM4Vj{kZpFT4%xR zg<1EAD2{B==8_`1sGN+8$9iKwo(5gW`IFpCqX`3QlKAm@mAq0j)wG*lKtejhY>!V} zqBVk8$+*-NcK~*=8(r-@wBjvj5+%~P)PNo3d>^$|?mUsDY6znQ#q~@cKl_z!qyet~ zCcq%NE9ZwuQIWI5CvayNS_CqztE+Y%n3&sT**ABThtXl zShecsl`^P-Uwv_pZL?b$P+Y;pfO>}u#|rp%qb&)e2PAM(;0X=^w5$6{&X?LVL_Pqu zW+7S9mSiFLK^G-b1Tqk+GZ4>qtP{Ug*`qPew!x)qH$$dV{>V(p$9lma$ODEyI4g#a z@`5)Y^>|5C&qu749AYY-p`Q*Cdb<(Iu6r2b$P(vpM2rbv;oogp7`@P-z95j04HPtO zWcpxCJkIqbbKmgtvo_~*OVfC_b!p(WTx4g-=me!~+h59`N-Wt#lnRc^VXXHu_$^bO zYB75DROuGPGx@0BJ-4bkvpTYXO%o7&wL`M znKgDi)(`gV(26YNr|b6*RkgZL{=7HSxgjQ*pAqT%y(FIK{nRN*j9D=E?kQ~%=1FlM zo}9vB(-gK_>fWFr%h21>U`?{J-T%6%uMN)H+?;PY)Z2AG9K=#KZ(-)3L^hzk#<>S+QcV)(iL5yv^~ltZ1YcmluW zm}%UnZge!}*{^n7C&Jh%b(ng~AOQ*gNGhfsyEvHN5sz6aJ9BSbg5dbbG#Y+%hUwl% zF2$Sa+%iNnx{Zn2s@O<(1gpn0)l0#BWh<4za}uVP>eMt!dm=f###wA?zq}dpib#_U zRMyL9hUR0a9$P_r$ud8U4?g}fh&{el2c^=`y-8D4xXktRhpvwwX&jZ6%C0Z_ zkSLLq)P8z;W+Vh<+5P!H)F*g|G(xlX^mRIP2>7r3RoW+QnB?>=4c*1_R?4DJ+`?Q=c}!UYUGM=SV` z6vYkwygdIcrA()uwGQR7#M~-I`HD`gQa&f%>OvKRRlgPFwVSMNJ6Nd0+vDodP;Bws z4H2|B{y?E(GU}c~bu63K5{zG;+xnWMH2GA5v;TpvI&7oG%prR7Ewr?$%|^l`_~NA< zoe829EcyjDQw%o)SQ_8E&wt6@PNT7mt7gz*(YN9(_~ayxR&1#4No?R7{DSjQK+8uz zSUyvaaj=o{Uiwj)alb-KwN(g(w|?}Q_{RkLnf1lvQk_MZfI7x^O3 zlXE!Vte8;Ks0GmsWp!(SO02hQ>=7rT0cU!2TO^D>K7*iF13!73T?47mc|r4N5-x_N zCOo|HjcH;V1BMLF1Cl^(j(dl>OB&?VgizoIJq3{e$$0CG$zT4vX*yRX2WDt!?rCIp zHwaLbhvcxSgCpOVhUH6h)!|o2_%|1w60h=o5ozhy&d_w5gEZc`{V_+oYJ_yb_ zyahM4iRjbL4@t7p^KRJJtRww6#0s zZp!Rm8p$A&PLF$Ws1Ft_H|N!|Ri6&C5U39A4%+<3N^FGjsEf0PH^tFKl#jXLR*Jhs zyzbn#98MH`)t|!>muHHixkeI!_hPMz*rFDHPFb@Z73e_p^RF{C<%M72%18T3rMPia zp7KVIoA>Ezw%QDGf}e~M1SrZ-QU$3P7wRgF=%AHb?@BmCI~O?fiDkKVJ4s0Hr}Ae0 zC52!v{Jm3DZQCBFq~EPu0#g?#q~fJADk`m=j6j(SBmb_f z&xR99%VR=0%Bx(*=oWdiJ1s88p z;1eEq%UY{CLOUYN?_U8aNGBb_0`l_6+yCmOTlYTljZ<;XlclAfJ1Rkx6xx<4-ra2l z2D%;f64Eb9nlmg7aU(Z8U{aV0MU8TdB8$dnI=8xf16`9}OgfDqbI_=F{`pjU-);@!U(XO_Yk_2;+ub8 z>@nNlbbB&C6)4M_C`CU~__Pa20%~B1oDS}dYl4m=tR8gBkfeU-d*@_tWxT9W;X)UY zL6;IOchMhhnpEz)B0FwUpFONTCja+CeR#uM8v}}a&3~epbY$;_IC0#P24wA^)t9DQ zUXV7W1T2B-{XG&mc#sRkWa^u5yk|u?tx>dF7pg)IwNwGDZXBV$MOfM!w+QAX>f~XE# z`9ZkX<>b`g=FYjxg+4s<+xuI;pcgL@g>BC_{mQpHCQ7_WK_~#JOv>V6`u2@es$L20 zKXKApf~<~;=a)X|#4ADgV=l2#M`%pZ|bPc z`{O&>AyTZ-CApJvSY(KYQgr%{GWC{I5-e-tvp*n4mcd_QtqV!yg-=&le$EHZZqJ_- zCM2mktUGEUo>?+VyE0mK%QcDBO`5cF`i;3~UR);4cAh5PeA2NWlR)NXZ1;v9y$WWk&!vkfh8E`-@i+SkxkC$Q;QAQBElKm9!l<_y~4ynQ+_^y1f5 zVw0WkdSO`DTG)e{b|22ck_w8?-ue2}c|OZQW_OHOj0#uT5*0Z5d3e^IKwueT6FwEemWOBk2Q(Lg504fEoy#0`!PdFaIS znRjxMF&gM-OYAmrN(8M0ibz@d>6pLrs(;8D9anT(sdyivW79YkG;O80YN0c#B4q6X z5u;r!ODz5;zytUHJObtUR!uUL-xG>`ml7UT(xEf)UnsiH%W9wwPPGcS)V+2M-@laW z$;YMhSroS_d#@y_kOpym@1=Ry2GXgnRDTgrRYLDVsP;)~B5pM;eN#_ghWk9w+Xqdg z_q`BvPDK4S9&oI=SNr~HgoF4Vy=`hT_ zfcILSLKu+8I~e~7#oAok*ZO6l2-y|Bj8#FC`az4LRu^JVKUfFyh-G(`jvhqOq>67< zMl@jJ{Y zPpT5knF1mN0T+>nI^=XT6P{y)P5<_c8;F7xjD~vwbPp8x*7BHQWMcien_OK2v z!=EyDi>{ySq$8`kum3RtOk4wS$4BXgm^`Pxtr0_dfd{X)u4e-SzHf&#zJ$lF4f?$wbWG}t1eY$z2!>w zcJp+UVGSl>TSbZUH)%OgiqKz;0~y&VC#lwPh&}z&c0FMEhdAghDzDaWJ5ICq-#r(K zt&kCs8Lnyb!;TCVX1WW0!$G3XSXQ9e5?=oFg%-DoqCj-f#a^bgchxs2R_;*qg-1Nh z>NE~Wn6K)*vC9LA{MME7-qNI2X2`jTe%R$esT0=B^DD2mQEN`pqlVHJd$HfwZT6E< zjBB<-HvtzU?R_*>z`qpUM0F8Y5P!u)=eJ>aXuHXoip719F`4DKEiT+kD(!stMVF&V zv(v(S7!JCLmImC5^e_FQ3cZTg4rLz&vc^pbpzuy(F86RKvvnk-!@ z|MtDgiG`;nGyX*G##8cM2!-s;3+NmlMs*f-iSRyyU}HddO+)-crBEp6j4o2H7ImH)~T}G9Vk;p=IuPpPGb)6 zQ}^SJODwDUQA<(t>xr7XoextwCEnJ#hr+>8rWY^qHy=pv?k&Kd7Nc4t=CV%qQWRVP zZL{;x-Zf{HQR34D(;%&U;pgM$`kXe&fbj0EwIaITb^Pq|Iqte0qfNKV7-&@fI@`v1 z{>IQJsi%_qt_AbA1F9aGmlA@Hz*)yw{9!Q%uqsEY6zIQ-9W?1DRP_@S7OKz@6jx0~ zKJv`8%49M&@-zw;&N(`b&zG17G^MymGeYu^#!9=%Sv|K)tj{~|tyOdAC*)lu%fu9% zumN?h0FukZrn=7PqX#AB?gmi78mej%p;7M|y+ojf$>RBgqLd%nuIcp9tmf$knc`=Y zAm6o5LnLK3DkIxbt6{VDE zo8?KMQ{UZhv*vm>6Y<4yl!#LzXM&{q_Zsge-f1b5oFxutK!q)a5AO0)#jVSr<>j)v% zkSIiamtc&BR5?{ukel=Y&cd0HFQO&QxT+2K+6c+Ok4jF2Hu-*?)o3S|K&EXY4~6PhssZYB^`5iG;MR+N1E;e!Z|pS=h>y2u6kD zA69mjA#r4Tj#_x_C^3cNsuu%5cv{${y)pcN10#mBEZdIF-aaX?8)y3 z4P7vHwL*GHLHfHCtV-TYVz%S;4!Fu2(X5fzY|MFm821=XbtyqixTIt(E4K85HH6A{ zjCcd&u-nf`de$eZ%R$}^3uAFuBv%Rb^hZEBt(h5O|1OYGvIe|HP%h^7bvpg4aaZ7S zmN02Y{R;zq*KE~%v<_lxUZC9uhyDm}sf^t>Jj14Z ze6L>@dhu;XHS8a0`K^O`-sFpE%5eFE7{R#<)S(40+iW|cTsNGH>X6F<&2f_Pu};AC z^|WBDe4LitGqmYrGt1d#cs)U3_16( zu*=oxVxE(Eso3@z=63<2R6m^2g?LeMsT>>WT$Xwi5_iF__J9ae5VKLc?^-6qmr(V= z{szxl3|)%+ubwUlZ>Kf+2LbJ0zpgdlFRmw4wKa|CN*Rt0jQFJF*{5PaC`rOHZ735syb(JCRtP~T3fINloA&K(SCXfPZp z?=dn@-b0<9#i17#ytqo%{{A)H;{fW#%pOc67ab@5mny0pB8*Di1wSb)XVbbzk-Eca zrw;x-|Bunr&A9$gf5kE&>2Uh3ek|%a-GT+)RNkL7GRg^5X!iKGmhK@at;)9xuM;oDF7Rd zXU+T_m8Xxr3xywR``+tn(v8tO9ED7sB?ujAWhnpSmanqRY&TO$3rHw}Y~RC=!qu!T z?JWuCv4_zWgzyD$D2Jmy&u*{dXi#L29eOgN>dz@%Bu7?>H6fEz>T3`NZEx2`tUa1I zS3ulKX3LbCS*res+N8v0@ncu`zt|!-WU=+~zJYZ83_@zIuF(+v)@mAvGjKAq|R;hwD}&ohXOCV?Y&bW5rH!j{X`AJiy0_8mK0FsEO9HRSW)wOMQVQo zQG5A*!HngCKHp)q5*v@rrkAOia)voOBSxMXQUrxyoU+5ykbVyMfXx>yk$+E)Jk_1k zQakmwMLN{dJ{D)~ZOJkof-GYjt9Od=Pu*BgCy7FfBCkJ^TxA;)6jMHHp#dd-6kqDX zS6RzL8b3^!9u|p3xUupGULs%W3!N0U27Z&gGjcsR4l;B4w94kRSlhQAti__D(@RNq z^_W;}MFecp9;6UQ^?9>r(T9q;I)DqtUR1Jk2V3lD-CH9YOBIxY0p(u4keqccsQPnQ z?hn!)4J|DA22H032}GcnBZ`i7w!7u1657IbDvI3R$sf)vP}&Zf13DB0b$N{!VJ~1E zN(C9(y=tZEQjk6kXSSO!Q-9J#m#n@ML3nnWqLA6~OJ(C3x(lQ2^Z88Sjt-dAQrSok zij=!Q15)wqkvb-dWy$h~+AMFr8ab(Sy! zzF)ffRyZU%_(5_dZJCxV&7_TEx%KWiSIHc-J!6h5DzAjl4HT@phE)+u6OFu-cA~6nhPS1;y`JD1kno8i5qa!c;)CI6 z{sY5swi)22B)Ok%c*hW%?1qCNTJuO_p52Aw(G}tfk{El*99GSv61lT-S#+Eh{Ub&P zv|4yC;Q_BzUdSdDkP;8vO1(#LDCOU$ZYZ8sM1Sx(B6r!fp?uZyPAhLWJ?MVQ((b!8;i1K~wje?m+Sn0` zoCNY3O<{_}CJ47WK@;?yZ+NED8-~&jLSQ4fARcGPg znv#e%F4!s>c%RXmiJp-;GvRJJsxIbV`IWip)PVZG?uea5XNLdp1kcFD_Dm;10UHrWkGf}@e zY1>-wIDEj*w{-7MuA_7wWWU!ZA^G}=vPdgqcKM52`Lh+|Tr7jLv{WvCE&>OQlpFqW zf)5{=dA7d5&*c?eLSC=fokKqwlGWWdEl5uMM?%m-+H(CP;^ysPN|4a`6W=X+j++X| z_j|cwFOO`hLgFrT>yOL}+rt({enP8=LBo_miXvbo6;o>6ozrETC~lsU>z8Ss&q%mR zBD3jjuFlo2$7zpMPxl4w@4WrkBfCEEVm{=o<3ZB(`d?}h~; z?Y;0gAnI~&T_z;)PSg3qmEOh0D{s})8{c53p}xEwf_`)BXlSzEZ#Y15&uh6(36-MOAWNxbBp(mECYC+KkH6--y1Y!kpuhCqQv-e*`ZMVAGVzG@QtEu{ z66m|2sDJTJiL-v0&}ChZF#4(|#ig$HfKISCP_f)9wnX{U`hj4gZ2bS;u(LB;u?EQ# zvz!)EZK7ZK+i9phj9wc2?;ZT#U&c<5X+8m6+I7Ll-C8|66>PT!!_Z-Ryh@S*e9X<#onSRg$k@V~a%7d5(*@TvksUrQ0zz2u)GJ(Yc;%}Y-36#8;{b}#1t zwRvuIYJ`a=#dA93bBl2l&92Sp+!ZF7V66LX70>BDtE=j=_ZE-%|8JxJn#L9FTW%WG zuv2)Mee;7TFJqF`y-K;m@h)}$`&eh%_0LY3XfsWBf9IT1y?;{4X52kc1OL*!yxwvT zkevQs$J%h{^_%f_Selcu@zYIEzqd`~xyMVk&c8JO>ljlDbmFvd)Tx1=>zcjTdgQJ! z{&>W6D0%Xh{Qo$0?r%aKDph1J-q>57|Md5jZRN}Dl1IU^XH1fj7266I3(Ga8z+Czt zrjBdARxE2y#n*Zm(gJxI$|?|RCwuZ5=uhmLNNAkPMBQ?AL`mlU$LTVX@nZS^eXO$* z?8!fkVmVSK-xE%mT^Z#3z+u1Uri3|a#e99Yi|4+1np z2BuR$ymgO!}V}*Z;Qw+ebhq z4t7JM{Hyz{CTbH_%N)5+M*m-~2iWiKNG%>?pEOh-h<`Gwl1@CYN>!!IqIvbsOxx!A z|FNrtyUfo8h5k=v?;M>;(DV&oak5D^_Qtkt+vdi$ZCe{Vn`C3#HaE6y`+BqYbARW1 z|9sv#J<~OP`qY`}Uv+m)S659@Hv3$@@=&JmXwjpmLICVVA^!g!F7vdTyD)kl1nQNO zTei|BQNBLCoLBGvOe9}($^SCxsIu7-Jo9(z6xxM4j$Z(MS2oE?Y%pJvhB8I|9}3<2CbC zAJ4Y6!BMau`>1juiHfgQWxSMZRhA6&oEpVXR}J?u890Yh%A2^*-1TO>UalvkQ?W#o z`h6JvQ^{)^?>B1wZIQRVIuuobynhyEn(_v}Naf(*pmU)0 z-pd-Z%beFuFYKc5c`|n>deJVwcF);X zlSk7w5mc%J@th&Eej8&6Um*MJrwq#lbid{F+TFLxst$*y!d0Dg-P`nQQrSn=7~(58 zsBAQ< zONu8aCt_Jp35Baa}(gajKO-`3$Ag^si8_rYV zKq(cAj6Hbm;?2I8iawJyD4s8)y6Q^shVegh3J;?!(Z3__tR5ed)0`izwQx|=WM5{0 ztdmA}-&`Y_#gzPLAc&>)@a?0H)u*qCuK<)OB;po-`0@C{<%HpdJxRqoJu%uOL)R~( zqMqxG@N}Y98RR$8S2)=V+7+$3W>daEi{MW;Vp}+wbV?Fyg94tHh=)ZCm`a<4Tg99K zB(dNk3Jz9<5Ndlj08L)?mI}9*byAbi?_t`U5|5o}=JBkF(rqwTmK=FT(%au++VFZb zGmLn(nFR(NU)RcM?Dnkv1}sQzHquuRwZ8n8NC;hm7xty^C2F{$G+vO$z~u8lyi--_ zGqA@4_C1#UZO!19CnH6kO!(*>aWoykMeE=#2bdzk%|k?_^dZwGiLGgUJsHv=DyzRha>< zFZA!0-M_FC{1lP;Ox=(-`nzWQyUB-up*;@MtD3T7`w)#hpdeG=%_jnzuSf{++wb#3 z_72VMz=85&v6t77A%IP#hiAj-%UTr5I=eYDEJ#ULmxx!4^3-v`xRzF*%npN^GmQisN(&ww2*JlfSIS0Ezb1cSSjY z8C|XzOcYXNhdfw(Qc~pbJG586L|8$$udf` zZQDp~Rg+1kiKus)b>-Zzvn`AhQoL|3?O?i*UWkcVcL;bRuP>lnO?{Z}=rjjh?Wr3k zZkiw;XvAbGIUA)N-aUMwOY~U+%IYumgQmYl%~+pQ3EG5E|GUKwILjv}%d_e<_p^0B zE;BwRtDw{eL$H=_MjLDKa(LNtuGm#~e=KVqCiTb^ms#+oIOLJ<@2Ec{%Kkcr@K)o? zf2FaedfY*~?jMkqPCX>if3DUg+jlO?%~5>*?5d`pKmY_RH;&1iS7pDP$8%BUVyH6Y zX-98q#Xb7Km)e`5@7J~lse6F7-z1(VU4?m7+_B;Q7>=cFr|FOSG)BQQJ4Y8p&9}go zHhKt*#2qYl?(4&wx$a%Gl-{i*A^Ru@JXw}z!CMQzksMfPBsDZRx)N4ubBPZgS?2=dy99OA=^B)W~@*R2V3_ncO}N_qb#=>D&OKE z)DH54cOMnsl!}TCYy%Pas{44`B2*QHXcm}&l`(yCA>v_&E5FatGj^A z5u}~Sh>dr<0k`%J0&Y>}uar z2+h(Cha-5?%zY=vOn=;*W`WtIjq=@Jp2hy?42vE_K9SBG+hQUYF4L-@1UXM-=aa1a z&#%k{KYQ<_g~DcBse>;_W6_y+-eRZzi~uz`cdD!hXA!4oiP7Vwp!R+fPFzFxt{Cnu zTSdA6OSGI?l+xjLptlUdXO)|Q;f9X7vwvyiEOpWpk@#VJ`yih-I&SPaxQtD|fzen_ zPSCHW1V$$_*V8a&nFYVhVBXAC!?)2+`Uk(tECLik+aghcn9B%8^a*EQZjRtImzo-x zI(z_sh}U1(A*D7H?vfU+>gn=_edNFbQ|)?WzL8|WXV^H_t4idE4I>O>9_dsy$S+ge z?)%)X)1>e!0DLl3_haV0lhytR9a?M3Ea z+y}pH4Jw!^%2F!2p2wIvk)<#XI}aXo`OY(0U=qEe1wIAYjw3>i3&lYtC40qW)&NCq zx5lyV`%G#K{#B!e6Q*fmFP@Iw6SrAM8SqtHbuzLN^N=P~1kdvkj-8qCup8@LzJD}D zqn^$u=k!zZJIdcD6&?`vM)N!{D9My&JIpB>>5llVu@3{F1H=}*gKIG--HFaXgKs$b({fsoH+WI)o7z|BQSM?!$_lcaKt2@nl<3mS`GYSpmf6Py2BggsjIE zI!NI_>;}iM4~>1VgVizM<^1FASH8jLQ+)wHd~;3Gr%$)K_0Zu@MgYXYp5`uT?UOg) zf3ne8xFea_)(=ySZ;loO97Ba&N%Sdgvwe0_?!B`NXQRh*5xacHY72={t3QCq)+r0Z zuTqM>c*TR-6}Y9d)Opy&9dH$!=EU#$k~{#H&K@FG0*FSIus9=4`9XV|5pxNQMt-BL zv#gqPOxKR#Aw*&{TvRvJ$UGt^N~u&E^tzZ|&wH|-rI6PpGvh4=yffj;vZX%Ss~U60 zt0qAuUr?_d=IR)C`(bD~w2)qw5V6XG~r zVfEH;SDB^qC~?1XAFs_nOB>XVUQkAvsKOf?krL}j#O1MPbB`fWN9AU0ZCMbR8o?1G z+?{vyyiqD4^Kvlm^aI+50!vudPeXm>i7j~H0a~)zGD&##Z&dtLmK#&JCjLKyscPK$ zd^qX#P!TFGZ&C>Z*ln{iVxoYV5Xm*TSE~xo02yi*W%eI#-35y-J2;ttQEv_mTU`{L zzhQiE!S+9BvSKlj`SMQwIaLbl{!t538j47Uc=h~=yoNMxzp%%T$S!>qkltQW)sBE& zY*?>&`v>)L@HS<`m_c2y&l}VYn+lrWkvf0nB`17zE<9h8X5@Si;Eofk{OV)1ByhR; zG9)V7S;p4Fen4Rs#3~!Lg-1c+jauNL)?OMkun{G9c3vjwA~rH>WmCxzAzW*^xlReT zi{}@PFF>INI`Rb~955&fJMAFD@Qo^V&!B8&LoqB-ii|vlpo(hRERaST-y6T=oHBU- zti5&(S^k%yM{GD&8j4nW5t=pL*)xVG+%CjWRyR^h_!jB!jA=vJgLJm0yZ)Mw zmz}vJ33V&YA0F;RK!88;--wU@7aBzTQPH*U z>X94kn{;_Z`Nv_|qEI=C8|@qRCsEl9%3U0?JDx8qbVyR)UlTUWG*%# zl5pM;vbHIfm>=5aPxgc9SSjj>Tm28DXiqod#kYlp@xWpHkhcsRP}9(uT9r=Fz;Y4V z@hBdP9W!pfi)t>az6GFf$_Yh~6b2XFsKk@JPy4u;HC%F_6E75llRffkzwdB7z^~?&3yOa{5FJI0%Q`{QGWpc9>&%8#^1#8&1C^g|5sVbAaH7kh%QX=S!6 zjrZ8IXDfD(npdB8uA`$Os@vsol4_l&BA1z3i^86bj^Q<8@f8lXJRo^r863qU)r~!g zH(Q$7`yhnWRruYFkoCyGLG{5Ir*8dC!>j94wF`t=g{~%1r{04v3Y_(Ezfk-15?q^X1|rRyL;o;O4WC8xRlnB|kd(lY-~y&1nL3zpg2aQ>3@-2m z?ae)a^VzYgT{6bdYn_6z01-)mfDK(zPt~@L>`O6pKJPiA%O7MLgWoR-71XY$@CON3)Gl`R*UvSzVW24oSRaKRU3)Noz{7p zG}?|qkwvUPQP4kXe}XW9R|&OTZCk_Euw|*miX0BxBd^&_kdRyeg9+|(T1Z#cK zG&_;&;xL2Hbfml9N(G%?6g-^KOgSQu24KJY_Y2NN>UMV>V9n_|K*)2@bggUq+h`0SJKJ_rEx|nJf=Fj`2gc)>kVHd2#psdpVm%$pJNI8td0b4btteT{CCA*Qb86#+!wqiuL zqHj~9+Em+DaWKbIz^{FN1<#6kIbW~5qZHV*phFz_x0yat>zf0)Cj9;qvygoTj}chv z-&hs1Q`XmcsLIc1nMd?X;d>mY(@1kdRhk2G$RYAHr_9+Ysc#ex_$za}Q1{3jD!YLe z?6V0h*vzMWz3Z@3uBImR0oY)vMz?Tb+-veV5<372uKeu!EYn#YdV)M>E>|4d8ytHP zdv=A}R$&2S#g|I50RnX@jK!0fHobpMFz{{{SjguRh&dehe=Dg-6J;b}zM)); zkFc$72VUlp;;wa%mFm__;&9?zX-5*m>Dx#_b;GwP7}?uq`cLoKw!pAG0``;FRnS;l z&Z5=;B-R?u7s)AKM5Zh8jDT5Azi{ot<#0CPkkB$jgw%uA%H9qsn_oiSUd2vj8@?Q#ok1`&t03it|OUTWAx zxt%^2*rIPpCZZJ>ksdRF7F3ykJsh+6nzG|gO6rI)tsJx3l`NTv49U@%;GJ{rvbH9aPRkGtBwH&-bg^z2OAVxHUL zOxn@#NG${e*h~tvQ16+5FtFoGf5l8aE&bd|)MigW=2kUER3`>(hkQWhV(fdaB)2MlI?c~ePifnkwpBHqvdp5LB4>ZPH2HQVEI?q z9k!Ov&TdQtD435>$D_JBrL5^3CtLA686qQ~Lo9r6M&4E{)6}mGzxMk9eojyFRezXq zMTr&L6vFESLo(8)I+{#f=LUk%E?dUwuN9N2pYDeh9vg&8AQ|lH}b&~kP49Ln8fD9xmtm1=UJIC9di5@od%gK^Y=;y?kqnTno(jH zf+#zFE+c-~+mPVuo-Zlo!Z6b3Q457e27UdGW)Uvf+)>!NXn;YA8PqX$SUta?OYv<( zJq7$roqT;{ENe;##Ruv-ji;6}ABd?yqeBjg>D}K%O-y8mu_V6~qI7&}S<>$gDpT zI)q4VQvTR4`&fTzc1Q`ZpU__Iq~U zgK;`Vj0#rHR-NRP$g6oYBZ9UDul%_1)b?RP%9*5V-9{;?O5jC9cBuY308Mu5o<@s( zNV=(dI*qOAJJeeU|518gdMM(dt;*QI*ysf!RCz7UUn*}=2#zv50&;r+Fm!@90uNhlY3(w3>M%}+p?m2IKW&+XW?GL=g80Z}q*5rANa1FA1N zHo7JGtVa8I02_<})pNuQ7C$a2bh`Jqy!{jr&sR_jeJO`uwk%Z#AO@fhgNFJ-j+RD> zVw-n#WpLktbVR#-BnLpmB0P7(@E^nIckLr<11Jwv60W$H6Db$0zsC4OHzmS%%!D^k z4IP9c4F(Fje+vBeWCODb)j<}CBP>-e;`Y@5CeNOq$-t``9Tw;55@z`UZDz9CFX%0X zDfOE=;UlI)QWQnmL$u(2z%XU`5s?;CI2uh;4P%QF#o;Y%*fUsmT&yH>>7x{ zSIP${@dJHJKsoU-CAi_S0qI>=)H9 zj<0TpEC3%*!QabVTjx-+2`)KF8?U%GLvGUT@6~7kFN4o0CTwS0u*I}^U{Y8~ghX$E z%w#2y!uzs^G=lnQr7`%e3Zs&l*`6+S2KgbiP&rbiGjFj=77IQ+hA1x~6^Gw{*sIIm;rAo0 zhW)Pm>_>BIF(DXvhw-GvA@|IBDx%6qvKGawJ{nKyx!+=2pjYt6WjF}?dWLOd)M^PS(BE+Njk{R8ug-hmnVCS8lY=y zZ=(q>K?3H<^}*TR_wc=W2Xm?-J z2a_eL%)#j$jD#YQ6HwjJ2bVv9C)8_vTx-(%jU^7*WKDXJqb`u^k7!B%aFbT8F#i1B zWAxX{>u_ljSd=gjTF3YfA$FK=q`s z=nMpi_p%e~Gy5RZ<*XLlIkODQ`vF`GbD;;!p-tH8D7J$UBj##C?7Xq_%U685stD^N zfWacH{>14&LUw&9Bjmni^TtD&t+BC9OLM)QSb(jRb^Bi0{pwp#Wm_Y}^6U%0oIhv= z&b^N-g=AZS8NP&+R4sUBSqtF)?hW(?b}tZPAO%KZP_vF(P5c3Y02K8sL1XQ~++X~KYwxD_I0HQ=aMbWt7uSEirA?;a2<$7WSiaf= zK;j?8f*oUB8+EhenjvTV3y~l?2t_#rWWv^zKD`$tA-yJwT7h@S*Wrv}V*W?9QU0EC7f$J{ zG$I1{_=n~kx@43~9BsjFLj1p%gk^X)0hheY{8QtT!Q(AkdBEm%n;cDO5-DaiaDem7 zU($JpcE9ko>+HdvlnE1T)ERu*2p0l8h}{(!8yb-{^eFnVXK0MqnNCUD`)!BbO@d2? z3Yul}UbM_pTh$A2W-SZ*4B4q<6D&{Rwsc0JbJ(=|d~cx&x=3u6@Z} z(nt$#J)zqtKCrV=(GM*}b^Hd{#ILOCeh%NFf}4zTW3LK3s3xT>Le4yy&mV47yTH<; z5#i!g+@ydaxwxTaVy&x0AM7oWZO`92FTH-ZSQY^y~0RySpa;B_VS7f59KTu1qcmryN$z`4%fvO44R-xFyw9Xa^*|fImaEwhk`#FaM!a+_L~Kb z@yr;l^+N;m`-4XoBl?g>R&q*+hoEf?pln-zE5waC&HI ztQtwSW80Nhlyb;|?Gur>MMlod@}@C(TY*o9Sk~>w?79p$JgIm{fBWg?jX#Vs&T|k= zCrtY%_LiskDSR|%MIm#56c?RGaH(PWrvNcE)S7e2DpW_tr0@@D_a3hXGhBbQ9$A}% z0GYJXc5q37PX_QFvjNBZnUQ0w)xY#8x$josQZIu&U!Z~3xb5nHE$Cm{whQT-2ZraZ z(2ZRjnH!)tPUa@WhWL*cfr>w1E?Wka`?AzVBHd*=>XR*yI)67k2B zpW?H~m_#`%n^5@Ge}zbIoni5HQFSo0Ae%Atu6mQkY6*R~oHCt5o?^#PvcI^GAbhf| zwJ{Nj4{XqP*q%C*2lYTL23H?@27v+dFu>p1Wt-H6fJFV^u5v1ek(Y^L_ZeK zH$ZHnwNL<)q(qdjXztCqcj)t&JtjUJO~WA$CY7W(=VBVv?)rb`MyO!rZ8qNwDYd-V zw_SFRc8zP_oN5=|+(e|e83)8_Ano_dAhdX5HUAci%H>8S(zP);dmk;`w|V>IY8qIu z!8R`A=>$?6q#|5mv@T`6J62zphXW>?V9%&^l`a|`m1fh@h+l@P*FCF`x`qMh7Ce}L z^5>j_p_n!!2E=Iwa|4~`8t&Iyifn}G2qvW!b_2^!xS&7iK9loRjE>|OGZi6EOy-oQ z5Yn!&pUdY*Fhf2opa1-%{R6x*PcN$JP9capz)*zt|JSRCD2_3^N^v65g_8{Th%DW2 zqcN}LGRXC}t)v=-SmZ&+0!_8idx~qAd*7 zGgdP;VrsY4qS$25Mv5adt^|sY*Nz6UmT1>}bf9$*M^G_i3p-7W8Vg!4#?7`$cC5}wIbF?LZxVa+xELO}a;=NF|BuKj9(uTGXP zG67?C_sTD09P21mPo&+zIFfEbwr6u>vC#s~2E3DRQ3pjLgK)$ zu}E`ntx|lxgbmsWxnE}#Qu;Gj$lvhV9R1@9P5^*;0kX$?=tdR)`}KHIA{F0t6l(&2(6Uq?NYPBiffmBG7Q{-{!Z3P0n z(5L2SUajo1x$&e5e=2TC1Ap@=AKk>g!W-9dJo9NHa>l1!eBdOzB+y-~4wh|aGRzig z;fC)nYySsM{rh#!#P@FnD|4B+9b$&$v3z6qyq)q>qjm1Rk4niHcpv7`o<+02wS4U# zRlZ3pG*Q6ixm#cJNJ28o4g8?(t%H0ptYujPBCkd2-49CApj`Rmm20e`^4}&L`+{FP z7ci^A)}8U%mFO15R11=Xw?~=$5-<(XGNrvtp%KBU%=N}(K-sxZUz*-JiG84=&v z;b5yJY{uX@S980+ej zw@)_Qd407n3O!Fs87pBe!C<(D9E;-xBC$x8^)&cT0dAR?!N@ed@XLk9e?11#?}~f) zL5Q85#19{*1DD)jlvzRbtE}b@h(Y~eXV6f-qzxqPV21nSFe?PY4;ZyT!ulP%TGDG; zK6t3nCtnhu%BxoDM?)wYOYKsr^_?_{ryTi6&MN%AwTwJpE>m;*Dbie2vf(@Rpd8z=LlVO57U#Z7$jzsj;a_+->|TsyUr9UD}a zqkqG@OODIsCF@@dYYBiIf*2ZP<8B^%qR013KOwbpL`+^gobx$K`fgy`ba#^QTH?B*pP$TEc@%K zBV2Gx3rZieun%P*H-~|i+( zX6VyIf}{hv%Bt@CUK}2W*%fcX>}SwxTp&lU$mY!)y#E7$fat}n>g}ff4k9&t)}22Z2NRI?d>>O zD@Ubfl62)tMo%xrkeZBUr<^Wg`a^g0-uW|2(_x8wsdI5BDmRO3>-?~`yjNO=L6={j z++@2Mc>dg|Ql$?xv1K71BmP`n7amZ(zM7DkxY_3DT+Vhlo?^R}gzL9_#?#(tMLch^oJd&8;#5IYej%1j z$;?mwiX4;UwX*l`?*{x?K5Bo&tbT;@pQ&mRjWNdtM8YeVSj4>GC&0PI@?GtxA1nzQ z&HO_eo`Sbz;dH)`zF3Tu;jCo51sb_)<8?G^dN%P*yRIr@!XSn6y7Pm+7ksECrE#_G z06UM6R)V~zYyf?JiZHskb$b)+iH4o@ie?Zcj`D9=alhog$qy~vVzHlN4?gr@giCx! z*SA$o>cW)on9XRQde`OWX2&ommxRK5CB9xad(+#JLJLEz2XF68oCw8@C%=w0?i7os zR4G_{4D|6oF94q1^HFGkTcD?9EfKG?Pk~ICgb7#$gnQ+YW;0D<097zG4nh41wa3Eb zs%WV*?|>ZX3`j-1I*2S-k1qRI_sL_Vq3$`%tPLg7?;Q#~FdVv+*24WK&4WdU?*zuL zhJGyA(r$45y*(rj;<3EkcTs4wiJI07wH!I2m;+mq#UMiyudaQAZlBKG6;|r?4|_SN z;+N&v0|_QU_u%IZQ})bwrjTp*?yE<4-OiV>7Lmzqv36=0PGHt|KMZS2{o3K`hFEBI_JsSp@nTh%GSOz=eBHfH?2MLaO*xj+T}!5J0H z$OeB~G?CQlC}r*W1Wr(RReSgOC_=jhrk2VO%M7h}g%p_}DI*k;jn745)k~qd&rBc_ zp=NGU%SG3QnBe_`Usk2p65WkqMT@+jbfn=13eN0X*o4R2Xri{Prx+Z56E8b;E5lY9 zBM-<{5SP@qV-R_A7t_?&RVIAH?HQhX7n4I`G8OYGolL?RmyRlAm~`>sKvK1m=2!bqfJms}d9IXF*pj1$m((Ek@yznBU6+ZBE{G zV0ZV`3wywTBKiy}C4-wVzD^oBbYZIUe>WxnGK)G{xx)FO<~Wk89TmU!Y1rbbvR74G znL1*=yFhn(6(wKar@q)y<$mT^Y{KJjYRJioQ6}H&>g$GVpxL|$0QT5V#v43y*b-Tt zr`clP^H6XAyB3FkkWvk36<1 zqLLMFqT!9mz7OjikXl`Le7|Sj2>2uoC8W|I)mCZ(4W=rX6+duA_*jj3hK*q1WSd#= zE_b*NosG&~tDM8u zAt~1OFL$>v1pp)^zZ}fI?jQlkAYg!hj%NQ(Y!Hb5sy3@|EK;J!~Yx-U)O(p{=XdZ%b5)d0RC0Nz{JP^lJGw?$QK7d-hay(85ltF{)ZzF X`1QG$_dgu}JsjA7>Hqk_eew7|0K9Xn diff --git a/packages/connector-ui/public/polygon-logo.png b/packages/connector-ui/public/polygon-logo.png deleted file mode 100644 index 4c66bc39249351dca39135e30571d29559302186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7351 zcmeHM`9IWa`~S=mBVpu(P&3lWb4nT2Ah8WM9UTCEIX@F=GbLJ)QGB&+GO41K;lt$Lr;X`=0B*?(4pm_w~N-Pu$59 zmU0`_HbM|2cg*U@X$XSTB>yNWFth1HvlawtP>&rkvkisK4j5mu>nf>P@E4iKqBkQ6 zY9m3mjn9|54?ZpGh_BoC56@G-A5lB~$ZX5^zdb8FfXFjfF}OueC^-G;;Vt94NWbVP z_xaHa+s3-#Pq7gz+b7bOL?1{qTbcVGnF))!R`}H65X#z`Ck(fHJe(pbFD46?re08-nAl&V!d-_KB zfHnj(+SyoTQ$)!j2k7RzMcD3Z3-{OAv`zAZ$Aycm0~Bi2YYb{&7X)+M*I3o0!uKzm z=*m@n=pAD}p71Gtp5mAoGurzg)I*-M4;X=ViuhBE2XreY;F)Ee-=A2k z*l9jLBPs>zqmbB|*kXU6o{z}93I-?*dhajKC$vRt;Z8OUC){VG8cC|Eco+(I#HEKf zeQ%XWk^%!{mSlU0YX&eRolRMq5KPMN!bR(eWpUU!0@?!jcav2jWpqo54)9ex86Z{E=*$`E)<+eA(^hKYZExi7q7fjlhy54xrT$_Xm@oF z7PnjMWq65XnYo@Aa~20&qA(+rvyXOnRu5cl$%6YmfsozTbXcW70{bQvV5q`l0g;F7 zz%ioT5cLj+@{{7U$7y*=G>CP3RruyPh+P#Jr~_Yr^9Ly(Ra?a6>{q_A7fpk#fk`L$ zh_gK44z-&vg71A59%Gf3*v=puFS;k*h)M#k^k5bE&PdlqYC}<qn^`PC%YVj1wAU`?tjl8H31~mfn+?MnKV$n;8KnYd|~v} zh&s4T!v7~hf*wLhqgtN7dahejY=MC1_?E0Oy0BWXZasXAkN9c?LlwJ5w=IgJ=bbF0 z+n)7QT1Ru*`)`&pRAmXW9)+g~NG#ik zF`?2`5qr<4fzBCuNWnM#GkU1GRg@IdrKlOoUv+A%3%Uj&9Vfnwr9NK4pUc8CU3(Pz zyDgR0?K5V@EmEX%-vou$XFX$6(K&7-$c2P^kpbWGY*JaB3GLlNq3Yc+S+BK^NMbss z?`)jw%Qjd$yDn!0+EDS&(LD|Kl$b@_0kxKhE4d+~17`*zD;Hc~y)2Y!#!-u_dymzR z1Nrj=v{6lgE2t+jHzuWe`}>z6xgHwft1YEtrP__T+srZ|5@|3s9gBRuuq1MT(nx{w zx|7Eye*(IX9GsyWa-M%NmoEyebhzfqF8ssDTjQy$C0# za$eE{d~;A{td`nI!4_#8wo4gv|EHqXq_Eno^Bx-FhL+_Yf)SpUXjOSFcbaMLviM`< z{5?Tm^h!G$9AOx6poq;hsy>S<1bTF6+P->kJ3zAe&-w7h6h&N(et-4Cb%A<@U@&<2stHN$fBBYXIipJV z{wnioHgxNzHSF+dMXIGwu)Qu$Oc6FssVSw-!@mq6(VOE%9j2~fC1GK{ewW9P^GpBf z5PPHt7e(f@d?nhg_Y!PxZq>DCs0=R`qiPAx5hW|rjdjq#_mE~(Y+Vjqs3( z!1c95nkH3?j#tc4#N`J|#G82oJST2F_v#KvOKMgc9+aR&oO~H-H2t~5p4$7(1))>A z1*)=$plI;RgKl2hqqOeNFGKcFBS@A%DktBqX%Ggq%n3hDK!t3+Bbn#SJo?oZn$dsS)PAno>&7wZKl0UVd` z&y<(io!9^)ZP%u;FEJ)U{HU)r4i#q=AB!Gpd%@hVEJeb?P;wo`piUbc1TVUdm_}fc zFf}4%{?2b1z-10+OK=FbW>SVox^?J>H2RZCTLFx10!OR4pJbK7YQm7%#FI0^hLU}* z?U4HeFe2J7iy@LU40Tvp*Bi9pCvvx_QR>gfsFQ zy{Djz<4COEZ9D<$JptA2x>_wq%SY1+W&Yg-FwkQxG|Zd_8eMimXSaO=u=-{U6qE!- z{|NNoih`oo5B`pu_Pj*fDtZali#) zv|X4hFP+7!m&?l+LkF1KHOuB}?K_US*B3ExL<8a16F%L%J_is484lnG`b*1^Yt7fE ze6Q$;f6_#;^{6@RGWl1|xFv>qHtAMRk-2vDR)Pt1G3Grf@p$z~+S+DXkU4Urb^N8u zgOt)2^G?3A)S)&^O%A2A))$HfJG-V zcDW2@b&S6U$0jD`Po4*qcD+EBdjF}e~{bznlF5_EB^NU(jLxQanpwBIC4OL&v}-Dg(YPE)8}D>Hjvu& z4&7AjwBh`C^3=WU6e=zZFrjk|)=`2sF#BQ0w00BFgu0v?)}!AJF>+1U9EN zJ*|4ea{cH(I#PYz(p~nsy-I)d=9CFXc^G8YqvMb{qMpua;OM5N{gfhGeiZdFd?j~k z=Oyx5+GSB|@C>!Ht3t47P<$PVR-9^~V^&qPh6OpMr&hmSx44-B_Q$|bTDY8vKGKtw z-H%r;Jl?esu3nr9MQbLkD=`mJ>;;VTddjBNg{ASeF$xz`)7C{UTb}{6GCgoc-ga#YIcEuMCHWUG+>iNxq3R0qD4;%|GFFSPBQsyV0hjDIAmX=M~XrI#XrE>pCS0pQ(S2& z3YGPG!V;hiR&jXwRoSc6y0&c;>eC$%%qqLO^PEFLHt{Za2>6{bVHpfZ(++yD0v6g_ zMqPggJTl02M(FaW$_d|&0wPAQ26+j(qpkwL!ZPkoP0Tw_!&#ewR6L##Y6?RUwd-RI z_+t7pUk?kxNQM+@;T52<6TsafI0@UxAa#3cLQyMUoM9=Mk5vo^e{IlMMdX5~io7AA z{v-%IF{_7neGTk=@U#gh`0RKxo}dazrayO8)aPSxs$gYf;e_-%K+IJQS*5j?WQdT( zF1~m~_y&+KSsXxbS|%@CJ@Gz-bbo2O{>5wwrqESUGYL*`qmGU_coWQLc+{&?sN_GS z4_*f&?2OPX5O80qm)1?s$N9hR18{nqgJ5 zPk&e?&kFS=>CJZ6ldq|Z+rjeUBlryN1Xj8S+SVwMA zi5#F~zKp7=(vn30%`WIT6ZR~(HmkHsT7{cM)vdb_(&{&=-5jTtu#sSO0_3PilL9LE zf1jild!h~-x2$pA+NvfB2InFNmQ~!r<#MrSINN3H%M;i9{Qiu{Mt-$}BwV2EfTR33 z({PaDKfsmsetTp@o`%WmqC&i-bz*8ts%sv|iCHBYjtI`Grm9EMd3!~XrLD_!PX1v1 zE8`d;A6jX^({M;V`Q(DoCmqwWEER@Hg!gN;7YKGF^(VQ*-)XhkL|$#64oOYnnKt%r zijfckwA=TcbJA+E>pH(3s?&wD%T(M86KQ9U>_Cnx;_kBAM%_^F0ZCc&L1yFBjl zybI<&Ocj8uma?{6KwhG;rvWY)Sp;}I=meveXo@(WD5==nK3AFsS{%xz&1|_6<}sq+ zelQ&}zy29eYzr0d>bZW0L*FP=`TMQz_23sogQ@e3bnw_(4I*If%NvJ6WZ11ll+mj@k<# zqcOCsxvLS701_zby*7kB_DL}+a|XMRp7wfmtOzRf!3Vi%?^54AMc?q39-lpjR~%CX z?05k}!i)C40jx~5O5UkzLIsp91x1{sp=uAwX>^w8DW;M0S{XtaE+1ZeYa4O$Ru}H$uF79fgRqI0ry3t|a0`OrUKI-~CA zT4bay7l=P)^4l+R1l8#g>vpUs%E_^bg224iB1zd_=~d%+()1N+K`j?vCCb)bv1PoD z5g|NT0T(XTX;Zq$t5aF`<}01@-LBd~y;jigh6|a|p%Hc3Hcz$~M={h@U)ZU~Nn#Uc zS7o$cXJJ)BAmY!{^p$8qc8NM#@R+tD53j9?W%^z_#K|9L@<)2KDNk%~^01~32;4@% zhnylF`4uqcjXZw6dUkwzy0oja?CK%Gs_o>L#WJh+8r4-WyzqoycoU__`-dm=*& zO;(kqY|E+wSV0e{d?P4?3jYacX19VL2Jl}$uvqyBivIR3$DwR^BxzJYyXor!b!tPI z(tJc(GaXYi4&r<2ulIwkd8!MIbhmUdY(5;2+Ggs|BuJu3KtxRqL%nSv^*nzS?>VrODuB7e-a2m?ARoJz5bl=%U$=@LTHuLV zYC}Sl0U6$O7f_DYYS4uBX~Rl1Hd;?P+1GOgchP=$;$NbEu9zdX>l%i=9y;M$Q8=rYmwN$nC`rg?*% z_DiSC=m2ce57q%U2HH57I(@tk^!&v#=X4j44s1AFayP2W<;rsRWo`bq10*H24VSY@ z1mP$K*2{10bm*pIh@dr0W^^#-9XN+^Aac0CCNS9wCSOvMW2SvwJh~KUe6R^w@mdp$ zyGNQca3<_5u$F?v?qqa)QwL~xw3mmDMpt9KQs8tPo*7y_+dJ|OPBf4qT9K;0$$Zg- zG#RMcyQ$0eo`Ziz|1!9iL(Oj;Ajs - - diff --git a/packages/connector-ui/public/vite.svg b/packages/connector-ui/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/packages/connector-ui/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/connector-ui/src/App.css b/packages/connector-ui/src/App.css deleted file mode 100644 index 573de96..0000000 --- a/packages/connector-ui/src/App.css +++ /dev/null @@ -1,20 +0,0 @@ -* { - font-family: 'Fustat', 'Inter', ui-sans-serif, system-ui, sans-serif; -} - -.btn-press:active { - transform: scale(0.98); -} - -@keyframes spin { - to { transform: rotate(360deg); } -} - -@keyframes scale-in { - from { opacity: 0; transform: scale(0.97); } - to { opacity: 1; transform: scale(1); } -} - -.animate-scale-in { - animation: scale-in 0.18s ease-out both; -} diff --git a/packages/connector-ui/src/App.tsx b/packages/connector-ui/src/App.tsx deleted file mode 100644 index a7300de..0000000 --- a/packages/connector-ui/src/App.tsx +++ /dev/null @@ -1,858 +0,0 @@ -import type { ElementType } from 'react'; - -import './App.css'; - -import { - Wallet, - Copy, - AlertCircle, - Plus, - Twitter, - BarChart2, - Target, - ArrowLeftRight, - TrendingUp -} from 'lucide-react'; -import { Hex, Signature } from 'ox'; -import { useEffect, useMemo, useState } from 'react'; - -import type { SessionPayload } from '@polygonlabs/agent-shared'; - -import { - DappClient, - TransportMode, - WebStorage, - jsonReplacers, - Utils, - Permission -} from '@0xsequence/dapp-client'; -import { encryptSession } from '@polygonlabs/agent-shared'; - -import { CodeDisplay } from './components/CodeDisplay.js'; -import { FundingScreen } from './components/FundingScreen.js'; -import { dappOrigin, projectAccessKey, walletUrl, relayerUrl, nodesUrl } from './config'; -import { resolveChainId, fetchTotalUsdBalance } from './indexer'; -import { resolveErc20Symbol } from './tokenDirectory'; - -async function deleteIndexedDb(dbName: string): Promise { - await new Promise((resolve) => { - const req = indexedDB.deleteDatabase(dbName); - req.onsuccess = () => resolve(); - req.onerror = () => resolve(); - req.onblocked = () => resolve(); - }); -} - -async function resetLocalSessionStateForNewRid(rid: string): Promise { - if (!rid) return false; - const key = 'moltbot.lastRid'; - const lastRid = window.localStorage.getItem(key); - if (lastRid === rid) return false; - window.localStorage.setItem(key, rid); - try { - sessionStorage.clear(); - } catch {} - await deleteIndexedDb('SequenceDappStorage'); - return true; -} - -// --- Static background: use-cases panel --- - -// v2 -const SKILL_URL = 'https://agentconnect.polygon.technology/SKILL.md'; - -const AGENTS: { - id: string; - label: string; - color: string; - terminalPrefix: string; - buildCommand: (display: string) => string; -}[] = [ - { - id: 'claude', - label: 'Claude', - color: '#D97706', - terminalPrefix: 'claude', - buildCommand: (display) => `claude "Read ${SKILL_URL} and ${display}"` - }, - { - id: 'codex', - label: 'Codex', - color: '#10A37F', - terminalPrefix: 'codex', - buildCommand: (display) => `codex "Read ${SKILL_URL} and ${display}"` - }, - { - id: 'openclaw', - label: 'Openclaw', - color: '#8B5CF6', - terminalPrefix: 'clawhub', - buildCommand: (display) => `npx clawhub@latest run "Read ${SKILL_URL} and ${display}"` - }, - { - id: 'hermes', - label: 'Hermes', - color: '#EC4899', - terminalPrefix: 'hermes', - buildCommand: (display) => `hermes "Read ${SKILL_URL} and ${display}"` - } -]; - -const USE_CASES: { label: string; display: string; icon: ElementType }[] = [ - { - label: 'Read Twitter/X profiles & tweets', - display: - 'Use x402 to read a Twitter/X profile and recent tweets. Get follower counts, recent tweets, and engagement metrics.', - icon: Twitter - }, - { - label: 'Score a sales lead', - display: - 'Score any company domain as a B2B sales lead. Get a 0–100 score and A–F grade from various signals.', - icon: BarChart2 - }, - { - label: 'Make a bet on polymarket', - display: 'Make a bet on a Polymarket market. Get the latest market prices and outcomes.', - icon: Target - }, - { - label: 'Bridge assets cross-chain', - display: - 'Bridge some USDC from Polygon to Base using the cheapest available route. Confirm the arrival and report the final balance on both chains.', - icon: ArrowLeftRight - }, - { - label: 'Automate yield strategies', - display: - 'Deposit USDC into the highest-yield active lending vault on Polygon and report the APY and pool address. Then set up a daily cron job to automatically re-evaluate and deposit into the best vault each morning.', - icon: TrendingUp - } -]; - -// --- Main App --- - -function App() { - const params = useMemo(() => new URLSearchParams(window.location.search), []); - const rid = params.get('rid') || ''; - const walletName = params.get('wallet') || ''; - - const chainId = useMemo(() => resolveChainId(params), [params]); - - const [error, setError] = useState(''); - const [walletAddress, setWalletAddress] = useState(''); - const [cliPkHex, setCliPkHex] = useState(''); - const [sessionCode, setSessionCode] = useState(''); - const [showFunding, setShowFunding] = useState(false); - const [showDashboard, setShowDashboard] = useState(false); - const [feeTokens, setFeeTokens] = useState(null); - const [selectedUseCase, setSelectedUseCase] = useState(0); - const [selectedAgent, setSelectedAgent] = useState('claude'); - const [copied, setCopied] = useState(false); - const [connecting, setConnecting] = useState(false); - const [totalUsd, setTotalUsd] = useState(null); - - // Reset local session state on new rid - useEffect(() => { - void (async () => { - const didReset = await resetLocalSessionStateForNewRid(rid); - if (didReset) window.location.reload(); - })(); - }, [rid]); - - // Fetch CLI public key from relay - useEffect(() => { - if (!rid) return; - if (!/^[a-z0-9]{8}$/.test(rid)) { - setError('Invalid session link. Please generate a new connection URL.'); - return; - } - fetch(`/api/relay/request/${rid}`) - .then((r) => { - if (!r.ok) throw new Error(`Relay returned ${r.status}`); - return r.json() as Promise<{ cli_pk_hex: string }>; - }) - .then(({ cli_pk_hex }) => { - if (!/^[0-9a-f]{64}$/.test(cli_pk_hex)) { - throw new Error('Invalid cli_pk_hex format received from relay'); - } - setCliPkHex(cli_pk_hex); - }) - .catch((e: any) => setError(`Failed to load session key: ${e?.message || String(e)}`)); - }, [rid]); - - // Fetch USD portfolio balance when wallet address is first known - useEffect(() => { - if (!walletAddress) return; - setTotalUsd(null); - fetchTotalUsdBalance(walletAddress, chainId) - .then(setTotalUsd) - .catch(() => setTotalUsd(null)); - }, [walletAddress, chainId]); - - // Poll relay status after code shown — auto-transition to funding when CLI retrieves payload - useEffect(() => { - if (!sessionCode || !rid || showFunding) return; - let active = true; - const poll = async () => { - try { - const res = await fetch(`/api/relay/status/${rid}`); - if (res.status === 404 && active) { - setShowFunding(true); - } - } catch { - // network error — keep polling - } - }; - const id = setInterval(poll, 2000); - return () => { - active = false; - clearInterval(id); - }; - }, [sessionCode, rid, showFunding]); - - const dappClient = useMemo(() => { - return new DappClient(walletUrl, dappOrigin, projectAccessKey, { - transportMode: TransportMode.POPUP, - relayerUrl, - nodesUrl, - sequenceStorage: new WebStorage() - }); - }, []); - - useEffect(() => { - void (async () => { - try { - await dappClient.initialize(); - try { - setFeeTokens(await dappClient.getFeeTokens(chainId)); - } catch { - setFeeTokens(null); - } - } catch (e: any) { - setError(e?.message || String(e)); - } - })(); - }, [dappClient]); - - const connect = async () => { - void feeTokens; - setError(''); - setSessionCode(''); - setConnecting(true); - - if (!rid || !walletName) { - setError('Invalid link. Missing rid or wallet.'); - return; - } - if (!cliPkHex) { - setError('Session key not loaded yet. Please wait or refresh.'); - return; - } - - try { - const VALUE_FORWARDER = '0xABAAd93EeE2a569cF0632f39B10A9f5D734777ca'; - const USDC = (await resolveErc20Symbol(chainId, 'USDC'))?.address; - const USDT = (await resolveErc20Symbol(chainId, 'USDT'))?.address; - const basePermissions: any[] = [{ target: VALUE_FORWARDER, rules: [] }]; - const searchParams = new URLSearchParams(window.location.search); - const erc20 = searchParams.get('erc20'); - const erc20To = searchParams.get('erc20To'); - const erc20Amount = searchParams.get('erc20Amount'); - const oneOffErc20Permissions: any[] = - erc20 && erc20To && erc20Amount - ? (() => { - const tokenAddr = erc20.toLowerCase() === 'usdc' ? USDC : erc20; - const decimals = erc20.toLowerCase() === 'usdc' ? 6 : 18; - const [i, fRaw = ''] = String(erc20Amount).split('.'); - const f = (fRaw + '0'.repeat(decimals)).slice(0, decimals); - const valueLimit = BigInt(i || '0') * 10n ** BigInt(decimals) + BigInt(f || '0'); - return [ - Utils.PermissionBuilder.for(tokenAddr as any) - .forFunction('function transfer(address to, uint256 value)') - .withUintNParam( - 'value', - valueLimit, - 256, - Permission.ParameterOperation.LESS_THAN_OR_EQUAL, - true - ) - .withAddressParam( - 'to', - erc20To as any, - Permission.ParameterOperation.EQUAL, - false - ) - .build() - ]; - })() - : []; - - const usdcLimit = searchParams.get('usdcLimit'); - const usdtLimit = searchParams.get('usdtLimit'); - const nativeLimit = searchParams.get('nativeLimit') || searchParams.get('polLimit'); - const tokenLimitsRaw = searchParams.get('tokenLimits'); - const USDC_E_POLYGON = '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'; - const openTokenPermissions: any[] = []; - const dynamicTokenPermissions: any[] = []; - if (tokenLimitsRaw) { - const parts = tokenLimitsRaw - .split(',') - .map((s) => s.trim()) - .filter(Boolean); - for (const p of parts) { - const [sym, amt] = p.split(':').map((x) => (x || '').trim()); - if (!sym || !amt) throw new Error(`Invalid tokenLimits entry: ${p}`); - const td = await resolveErc20Symbol(chainId, sym); - if (!td) throw new Error(`${sym} not found for this chain in token-directory`); - dynamicTokenPermissions.push( - Utils.PermissionBuilder.for(td.address as any) - .forFunction('function transfer(address to, uint256 value)') - .withUintNParam( - 'value', - BigInt(Math.floor(parseFloat(amt) * 10 ** td.decimals)), - 256, - Permission.ParameterOperation.LESS_THAN_OR_EQUAL, - true - ) - .build() - ); - } - } - if (usdcLimit) { - if (!USDC) throw new Error('USDC not found for this chain in token-directory'); - const valueLimit = BigInt(parseFloat(usdcLimit) * 1e6); - openTokenPermissions.push( - Utils.PermissionBuilder.for(USDC as any) - .forFunction('function transfer(address to, uint256 value)') - .withUintNParam( - 'value', - valueLimit, - 256, - Permission.ParameterOperation.LESS_THAN_OR_EQUAL, - true - ) - .build() - ); - if (chainId === 137) { - openTokenPermissions.push( - Utils.PermissionBuilder.for(USDC_E_POLYGON as any) - .forFunction('function transfer(address to, uint256 value)') - .withUintNParam( - 'value', - valueLimit, - 256, - Permission.ParameterOperation.LESS_THAN_OR_EQUAL, - true - ) - .build() - ); - } - } - if (usdtLimit) { - if (!USDT) throw new Error('USDT not found for this chain in token-directory'); - openTokenPermissions.push( - Utils.PermissionBuilder.for(USDT as any) - .forFunction('function transfer(address to, uint256 value)') - .withUintNParam( - 'value', - BigInt(parseFloat(usdtLimit) * 1e6), - 256, - Permission.ParameterOperation.LESS_THAN_OR_EQUAL, - true - ) - .build() - ); - } - // Parse user-supplied --contract whitelist first so we can use it to - // filter the auto-injected fee permissions below. Without this, a fee - // token (e.g. USDC) shadows the user's unrestricted entry with a - // transfer-only rule and the Sapient signer rejects approve()/other - // non-transfer calls against that contract. - const contractsRaw = searchParams.get('contracts'); - const whitelistedTargets = new Set( - (contractsRaw ?? '') - .split(',') - .map((s) => s.trim().toLowerCase()) - .filter((s) => /^0x[a-f0-9]{40}$/.test(s)) - ); - - const nativeFeePermission: any[] = []; - const feePermissions: any[] = - (feeTokens as any)?.paymentAddress && Array.isArray((feeTokens as any)?.tokens) - ? ((feeTokens as any).tokens as any[]) - .filter((t) => !!t?.contractAddress) - .filter((t) => !whitelistedTargets.has(String(t.contractAddress).toLowerCase())) - .map((token: any) => { - const decimals = typeof token.decimals === 'number' ? token.decimals : 6; - const valueLimit = - decimals === 18 ? 100000000000000000n : 50n * 10n ** BigInt(decimals); - return Utils.PermissionBuilder.for(token.contractAddress as any) - .forFunction('function transfer(address to, uint256 value)') - .withUintNParam( - 'value', - valueLimit, - 256, - Permission.ParameterOperation.LESS_THAN_OR_EQUAL, - true - ) - .withAddressParam( - 'to', - (feeTokens as any).paymentAddress as any, - Permission.ParameterOperation.EQUAL, - false - ) - .build(); - }) - : []; - - const contractWhitelistPermissions: any[] = Array.from(whitelistedTargets).map((addr) => ({ - target: addr as any, - rules: [] - })); - - const polValueLimit = nativeLimit - ? BigInt(Math.floor(parseFloat(nativeLimit) * 1e18)) - : 2000000000000000000n; - const sessionConfig = { - chainId, - valueLimit: polValueLimit, - deadline: BigInt(Math.floor(Date.now() / 1000) + 60 * 60 * 24 * 183), - permissions: [ - ...basePermissions, - ...oneOffErc20Permissions, - ...openTokenPermissions, - ...dynamicTokenPermissions, - ...nativeFeePermission, - ...feePermissions, - ...contractWhitelistPermissions - ] - }; - - await dappClient.connect(chainId, sessionConfig as any, { includeImplicitSession: true }); - - const addr = await dappClient.getWalletAddress(); - if (!addr) throw new Error('Wallet address not available after connect'); - setWalletAddress(addr); - - const storage = (dappClient as any).sequenceStorage; - const sessions = await storage.getExplicitSessions(); - const explicit = (sessions || []).find( - (s: any) => - String(s.chainId) === String(chainId) && - String(s.walletAddress).toLowerCase() === addr.toLowerCase() - ); - if (!explicit?.pk) throw new Error('Could not locate explicit session pk after connect'); - - const implicit = await storage.getImplicitSession(); - if (!implicit?.pk || !implicit?.attestation || !implicit?.identitySignature) { - throw new Error('Could not locate implicit session material after connect'); - } - - const sigAny: any = implicit.identitySignature; - let identitySignature: string; - if (typeof sigAny === 'string') { - identitySignature = sigAny; - } else if (sigAny instanceof Uint8Array) { - identitySignature = Hex.from(sigAny); - } else if (sigAny && typeof sigAny === 'object') { - identitySignature = typeof sigAny.data === 'string' ? sigAny.data : Signature.toHex(sigAny); - } else { - throw new Error('Unsupported identitySignature type'); - } - - const { Secp256k1, Address: OxAddress, Hex: OxHex } = await import('ox'); - const sessionAddress = OxAddress.fromPublicKey( - Secp256k1.getPublicKey({ privateKey: OxHex.toBytes(explicit.pk) }) - ); - - const sessionPayloadData: SessionPayload = { - version: 1, - wallet_address: addr, - chain_id: chainId, - session_private_key: explicit.pk, - session_address: sessionAddress, - permissions: { - native_limit: polValueLimit.toString(), - erc20_limits: [], - contract_calls: [] - }, - expiry: Math.floor(Date.now() / 1000) + 60 * 60 * 24 * 183, - ecosystem_wallet_url: walletUrl, - dapp_origin: dappOrigin, - project_access_key: projectAccessKey, - session_config: JSON.stringify(sessionConfig, jsonReplacers), - implicit_session: { - pk: - typeof implicit.pk === 'string' - ? implicit.pk - : JSON.stringify(implicit.pk, jsonReplacers), - attestation: - typeof implicit.attestation === 'string' - ? implicit.attestation - : JSON.stringify(implicit.attestation, jsonReplacers), - identity_sig: identitySignature, - guard: (implicit as any).guard - ? JSON.stringify((implicit as any).guard, jsonReplacers) - : undefined, - login_method: (implicit as any).loginMethod ?? undefined, - user_email: (implicit as any).userEmail ?? undefined - } - }; - - const { encrypted, code } = encryptSession(sessionPayloadData, cliPkHex, rid); - const relayRes = await fetch(`/api/relay/session/${rid}`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(encrypted) - }); - if (!relayRes.ok) throw new Error(`Failed to deliver session to relay (${relayRes.status})`); - - setSessionCode(code); - setConnecting(false); - } catch (e: any) { - console.error(e); - setError(e?.message || String(e)); - setConnecting(false); - } - }; - - const shortAddr = walletAddress - ? `${walletAddress.slice(0, 6)}..${walletAddress.slice(-4)}` - : null; - - // ── Screen 1: Connecting (no wallet yet, or encrypting) ── - if (!walletAddress || (walletAddress && !sessionCode && !showFunding && !showDashboard)) { - const isWaiting = connecting || (walletAddress && !sessionCode); - return ( -
-
- Polygon - - >_ agent - -
-
- {/* Header */} -
-

Connect your agent wallet

-

- Create a secure session to authorize onchain operations -

-
- -
- {isWaiting ? ( -
-
- Waiting for wallet authorization… -
- ) : ( - - )} - - {error && ( -
- -
-

{error}

- -
-
- )} -
- -
- Powered by - Polygon -
-
-
- ); - } - - // ── Screen 2: Code confirm ── - if (sessionCode && !showFunding && !showDashboard) { - return ( -
-
- Polygon - - >_ agent - -
- setShowFunding(true)} - onRegenerate={() => { - setSessionCode(''); - void connect(); - }} - /> -
- ); - } - - // ── Screen 3: Funding ── - if (showFunding && !showDashboard) { - return ( -
-
- Polygon - - >_ agent - -
-
- { - setShowDashboard(true); - setTotalUsd(null); - fetchTotalUsdBalance(walletAddress, chainId) - .then(setTotalUsd) - .catch(() => setTotalUsd(null)); - }} - /> -
-
- ); - } - - // ── Screen 4: Dashboard ── - return ( -
- {/* Nav */} - - -
- {/* Balance row */} -
-
-
- {totalUsd === null ? ( - $— - ) : ( - `$${totalUsd.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}` - )} -
-
-
- {walletAddress} -
-
- -
- - {/* Section header */} -
-

Use your wallet with agents

- - - polygon-agent connected - -
- - {/* Use cases + terminal */} -
- {/* Left: use cases */} -
-
- {USE_CASES.map((uc, i) => { - const Icon = uc.icon; - return ( - - ); - })} -
- - - - - See all use cases - -
- - {/* Right: terminal */} -
-
-               a.id === selectedAgent)?.color }}
-              >
-                {AGENTS.find((a) => a.id === selectedAgent)?.terminalPrefix}
-              
-              {' "'}
-              {USE_CASES[selectedUseCase].display}"
-            
-
- {/* Agent selector chips */} -
- Run with - {AGENTS.map((agent) => ( - - ))} -
- -
-
-
- - {/* Learn more */} -

Learn more

-
- {[ - { - title: 'Github', - desc: 'Browse the source code, open issues, and contribute to the Polygon Agent CLI.', - href: 'https://github.com/0xPolygon/polygon-agent-cli' - }, - { - title: 'Docs', - desc: 'Full CLI reference, quickstart guide, and architecture docs to get your agent onchain fast.', - href: 'https://docs.polygon.technology/payment-services/agentic-payments/polygon-agent-cli' - } - ].map((card) => ( - -
- {card.title} - - - -
-

{card.desc}

-
- ))} -
- -
- Powered by Polygon -
-
-
- ); -} - -export { App }; diff --git a/packages/connector-ui/src/assets/react.svg b/packages/connector-ui/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/packages/connector-ui/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/connector-ui/src/components/CodeDisplay.tsx b/packages/connector-ui/src/components/CodeDisplay.tsx deleted file mode 100644 index b7dad17..0000000 --- a/packages/connector-ui/src/components/CodeDisplay.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import { Copy, Check, RefreshCw } from 'lucide-react'; -import { useEffect, useState } from 'react'; - -interface CodeDisplayProps { - code: string; - walletAddress: string; - totalUsd: number | null; - onContinue: () => void; - onRegenerate: () => void; -} - -export function CodeDisplay({ code, walletAddress, totalUsd, onRegenerate }: CodeDisplayProps) { - const [copied, setCopied] = useState(false); - const [seconds, setSeconds] = useState(300); // matches relay 5-min TTL - - const displayCode = `${code.slice(0, 3)} - ${code.slice(3)}`; - - const shortAddr = walletAddress ? `${walletAddress.slice(0, 6)}..${walletAddress.slice(-4)}` : ''; - - useEffect(() => { - const id = setInterval(() => setSeconds((s) => Math.max(0, s - 1)), 1000); - return () => clearInterval(id); - }, []); - - const mins = Math.floor(seconds / 60); - const secs = seconds % 60; - const timeStr = `${mins}:${secs.toString().padStart(2, '0')}`; - - function handleCopy() { - navigator.clipboard.writeText(code).catch(() => {}); - setCopied(true); - setTimeout(() => setCopied(false), 2000); - } - - return ( -
- {/* Wallet chip header */} -
-
-
-
{shortAddr}
-
- {totalUsd === null - ? '—' - : `$${totalUsd.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`} -
-
-
- - {/* Code section */} -
-

Confirm your code

-

- Enter this code in your terminal or send it to your agent -

- - {/* Code box */} -
- - {displayCode} - - -
- - {/* Expiry + regenerate */} -
- Expires in {timeStr} - · - -
-
- - {/* Footer */} -
- Powered by - Polygon -
-
- ); -} diff --git a/packages/connector-ui/src/components/FundingScreen.tsx b/packages/connector-ui/src/components/FundingScreen.tsx deleted file mode 100644 index 6023382..0000000 --- a/packages/connector-ui/src/components/FundingScreen.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { Fund } from '0xtrails/widget'; - -import { trailsApiKey } from '../config'; - -interface FundingScreenProps { - walletAddress: string; - chainId: number; - onSkip: () => void; -} - -const USDC_POLYGON = '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'; - -const trailsTheme: Record = { - '--trails-font-family': "'Fustat', 'Inter', ui-sans-serif, system-ui, sans-serif", - - '--trails-border-radius-widget': '24px', - '--trails-border-radius-button': '12px', - '--trails-border-radius-input': '12px', - '--trails-border-radius-dropdown': '16px', - '--trails-border-radius-container': '16px', - '--trails-border-radius-list': '16px', - - '--trails-widget-border': '1px solid #c8cfe1', - '--trails-shadow': '0 2px 8px rgba(20,22,53,0.06)', - - '--trails-primary': '#141635', - '--trails-primary-hover': '#1e2155', - '--trails-primary-disabled': '#929eba', - '--trails-primary-disabled-text': 'rgba(255,255,255,0.5)', - - '--trails-bg-primary': '#ffffff', - '--trails-bg-secondary': '#f5f6fb', - '--trails-bg-tertiary': '#eef0f8', - '--trails-bg-card': '#ffffff', - - '--trails-text-primary': '#141635', - '--trails-text-secondary': '#64708f', - '--trails-text-tertiary': '#64708f', - '--trails-text-muted': '#929eba', - - '--trails-border-primary': '#c8cfe1', - '--trails-border-secondary': '#c8cfe1', - '--trails-border-tertiary': '#eef0f8', - - '--trails-hover-bg': '#f5f6fb', - '--trails-focus-ring': 'rgba(124,58,237,0.15)', - - '--trails-input-bg': '#f5f6fb', - '--trails-input-border': '#c8cfe1', - '--trails-input-text': '#141635', - '--trails-input-placeholder': '#929eba', - '--trails-input-focus-border': '#7c3aed', - '--trails-input-focus-ring': 'rgba(124,58,237,0.12)', - - '--trails-dropdown-bg': '#ffffff', - '--trails-dropdown-border': '#c8cfe1', - '--trails-dropdown-text': '#141635', - '--trails-dropdown-hover-bg': '#f5f6fb', - '--trails-dropdown-selected-bg': '#f5f6fb', - '--trails-dropdown-selected-text': '#141635', - - '--trails-list-bg': '#ffffff', - '--trails-list-border': '#c8cfe1', - '--trails-list-hover-bg': '#f5f6fb' -}; - -export function FundingScreen({ walletAddress, chainId, onSkip }: FundingScreenProps) { - return ( -
- {/* Card */} -
-
- {/* Headline + subtext */} -
-

- Fund your agent wallet -

-

- Deposit funds with a wallet, credit card, or exchange to access paid services. -

-
- - { - console.log('onDestinationConfirmation:', { - txHash, - chainId: confirmChainId, - sessionId - }); - setTimeout(onSkip, 3000); - }} - /> -
-
- - -
- ); -} diff --git a/packages/connector-ui/src/config.ts b/packages/connector-ui/src/config.ts deleted file mode 100644 index 237423b..0000000 --- a/packages/connector-ui/src/config.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Configured via VITE_* secrets (per-environment values set in GitHub Environments) -const walletUrlRaw = import.meta.env.VITE_WALLET_URL as string; -// Avoid double slashes in wallet routing (walletUrl should not end with /) -export const walletUrl = walletUrlRaw.replace(/\/+$/, ''); - -// If not explicitly provided, default to the current origin. -export const dappOrigin = - (import.meta.env.VITE_DAPP_ORIGIN as string | undefined) || window.location.origin; - -export const projectAccessKey = import.meta.env.VITE_PROJECT_ACCESS_KEY as string; -export const relayerUrl = (import.meta.env.VITE_RELAYER_URL as string | undefined) || undefined; -export const trailsApiKey = (import.meta.env.VITE_TRAILS_API_KEY as string | undefined) ?? ''; - -// Pass the base gateway URL; the Sequence SDK composes the final URL with the access key. -export const nodesUrl = - (import.meta.env.VITE_NODES_URL as string | undefined) || 'https://nodes.sequence.app/{network}'; diff --git a/packages/connector-ui/src/index.css b/packages/connector-ui/src/index.css deleted file mode 100644 index 117a978..0000000 --- a/packages/connector-ui/src/index.css +++ /dev/null @@ -1,65 +0,0 @@ -@import 'tailwindcss'; - -@theme { - --color-poly: #8247e5; - --color-poly-light: #9b6dea; - --color-poly-dark: #6b35c4; - - --color-surface: #ffffff; - --color-surface-hover: #f9f9fc; - --color-surface-elevated: #f3f4f8; - --color-page: #eeeef5; - - --color-border: #e5e5f0; - --color-border-hover: #d1d1e0; - - --color-text-primary: #0f0f1a; - --color-text-secondary: #6b7280; - --color-text-muted: #9ca3af; - - --color-success: #16a34a; - --color-success-bg: #dcfce7; - --color-error: #dc2626; - --color-error-glow: rgba(220, 38, 38, 0.08); - - --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; - --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace; - - --animate-fade-in: fade-in 0.4s ease-out forwards; - --animate-slide-up: slide-up 0.4s ease-out forwards; - --animate-scale-in: scale-in 0.3s ease-out forwards; -} - -@keyframes fade-in { - from { opacity: 0; } - to { opacity: 1; } -} -@keyframes slide-up { - from { opacity: 0; transform: translateY(12px); } - to { opacity: 1; transform: translateY(0); } -} -@keyframes scale-in { - from { opacity: 0; transform: scale(0.97); } - to { opacity: 1; transform: scale(1); } -} -@keyframes spin { - to { transform: rotate(360deg); } -} - -body { - margin: 0; - background: #eeeef5; - min-height: 100vh; - font-family: var(--font-sans); - color: #0f0f1a; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -#root { - width: 100%; -} - -::-webkit-scrollbar { width: 6px; } -::-webkit-scrollbar-track { background: transparent; } -::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); border-radius: 3px; } diff --git a/packages/connector-ui/src/indexer.ts b/packages/connector-ui/src/indexer.ts deleted file mode 100644 index c8abe99..0000000 --- a/packages/connector-ui/src/indexer.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { Network } from '@0xsequence/wallet-primitives'; - -// Chain-specific Sequence Indexer base URL pattern. -// The polygon indexer is at polygon-indexer.sequence.app; other chains follow -indexer.sequence.app -const DEFAULT_INDEXER_BASE = 'https://{chain}-indexer.sequence.app/rpc/Indexer'; - -export type BalanceSummary = { - // Some indexer payloads nest balances per chain; we keep this loose. - [k: string]: any; -}; - -function getIndexerAccessKey(): string | undefined { - return ( - (import.meta.env.VITE_INDEXER_ACCESS_KEY as string | undefined) || - (import.meta.env.VITE_POLYGON_INDEXER_ACCESS_KEY as string | undefined) || - // Fall back to project access key — they're often the same value - (import.meta.env.VITE_PROJECT_ACCESS_KEY as string | undefined) || - undefined - ); -} - -export function resolveChainId(params: URLSearchParams): number { - const chainIdRaw = params.get('chainId'); - if (chainIdRaw) { - const n = Number(chainIdRaw); - if (!Number.isFinite(n) || n <= 0) throw new Error(`Invalid chainId=${chainIdRaw}`); - return n; - } - - const chainName = (params.get('chain') || 'polygon').toLowerCase(); - const net = Network.getNetworkFromName(chainName); - if (!net) throw new Error(`Unsupported chain name: ${chainName}`); - return net.chainId; -} - -export function resolveNetwork(chainId: number) { - const net = Network.getNetworkFromChainId(chainId); - if (!net) throw new Error(`Unsupported chainId: ${chainId}`); - return net; -} - -/** Returns the chain slug used in the Sequence indexer hostname (e.g. "polygon", "mainnet"). */ -function chainSlug(chainId: number): string { - // Sequence indexer host uses the network name; look it up or fall back to numeric id. - try { - const net = Network.getNetworkFromChainId(chainId); - if (net?.name) return net.name.toLowerCase(); - } catch { - // ignore - } - return String(chainId); -} - -/** Build the indexer base URL for a given chain. Respects VITE_INDEXER_URL override. */ -function indexerBase(chainId: number): string { - const override = import.meta.env.VITE_INDEXER_URL as string | undefined; - if (override) return override.replace(/\/+$/, ''); - const slug = chainSlug(chainId); - return DEFAULT_INDEXER_BASE.replace('{chain}', slug); -} - -/** Fetch total USD portfolio value using the chain-specific Sequence Indexer. */ -export async function fetchTotalUsdBalance(walletAddress: string, chainId = 137): Promise { - const accessKey = getIndexerAccessKey(); - if (!accessKey) { - console.warn( - '[indexer] No access key found — set VITE_INDEXER_ACCESS_KEY or VITE_PROJECT_ACCESS_KEY' - ); - return 0; - } - - const base = indexerBase(chainId); - const headers: Record = { - 'Content-Type': 'application/json', - 'X-Access-Key': accessKey - }; - - let total = 0; - - // 1. ERC20 token balances - try { - const tokenRes = await fetch(`${base}/GetTokenBalances`, { - method: 'POST', - headers, - body: JSON.stringify({ - accountAddress: walletAddress, - includeMetadata: true - }) - }); - - if (tokenRes.ok) { - const tokenData = (await tokenRes.json()) as { balances?: { balanceUSD?: string }[] }; - for (const b of tokenData?.balances ?? []) { - const v = parseFloat(b?.balanceUSD ?? '0'); - if (Number.isFinite(v) && v > 0) total += v; - } - } else { - console.warn('[indexer] GetTokenBalances failed:', tokenRes.status); - } - } catch (err) { - console.warn('[indexer] GetTokenBalances error:', err); - } - - // 2. Native token balance - try { - const nativeRes = await fetch(`${base}/GetNativeTokenBalance`, { - method: 'POST', - headers, - body: JSON.stringify({ - accountAddress: walletAddress - }) - }); - - if (nativeRes.ok) { - const nativeData = (await nativeRes.json()) as { balance?: { balanceUSD?: string } }; - const v = parseFloat(nativeData?.balance?.balanceUSD ?? '0'); - if (Number.isFinite(v) && v > 0) total += v; - } else { - console.warn('[indexer] GetNativeTokenBalance failed:', nativeRes.status); - } - } catch (err) { - console.warn('[indexer] GetNativeTokenBalance error:', err); - } - - return total; -} - -export async function fetchBalancesAllChains( - walletAddress: string, - chainId = 137 -): Promise { - const accessKey = getIndexerAccessKey(); - if (!accessKey) throw new Error('Missing indexer access key (set VITE_INDEXER_ACCESS_KEY)'); - - const base = indexerBase(chainId); - const headers: Record = { - 'Content-Type': 'application/json', - 'X-Access-Key': accessKey - }; - - const res = await fetch(`${base}/GetTokenBalances`, { - method: 'POST', - headers, - body: JSON.stringify({ - accountAddress: walletAddress, - includeMetadata: true - }) - }); - - if (!res.ok) throw new Error(`Indexer error: ${res.status}`); - return res.json(); -} - -// Attempts to extract the per-chain entry from a multi-chain indexer response. -export function pickChainBalances(all: any, chainId: number): any { - if (!all) return null; - - // Observed shapes vary; try common ones. - const candidates = [ - all?.chains?.[String(chainId)], - all?.chains?.[chainId], - all?.byChainId?.[String(chainId)], - all?.byChainId?.[chainId], - all?.results?.[String(chainId)], - all?.results?.[chainId] - ]; - for (const c of candidates) { - if (c) return c; - } - - // Some APIs return an array of chain entries. - const arr = all?.chainBalances || all?.chains || all?.results; - if (Array.isArray(arr)) { - const hit = arr.find( - (x: any) => String(x?.chainId) === String(chainId) || String(x?.chainID) === String(chainId) - ); - if (hit) return hit; - } - - // Fallback: if response already is a single-chain summary, return it. - if (all?.balances || all?.nativeBalances) return all; - - return null; -} diff --git a/packages/connector-ui/src/main.tsx b/packages/connector-ui/src/main.tsx deleted file mode 100644 index b3e80b2..0000000 --- a/packages/connector-ui/src/main.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { TrailsProvider } from '0xtrails/widget'; -import { StrictMode } from 'react'; -import { createRoot } from 'react-dom/client'; - -import { App } from './App.tsx'; -import './index.css'; -import { trailsApiKey } from './config.ts'; - -createRoot(document.getElementById('root')!).render( - - - - - -); diff --git a/packages/connector-ui/src/relay.ts b/packages/connector-ui/src/relay.ts deleted file mode 100644 index e69694d..0000000 --- a/packages/connector-ui/src/relay.ts +++ /dev/null @@ -1,292 +0,0 @@ -import { MAX_CODE_ATTEMPTS, REQUEST_TTL_SECONDS } from '@polygonlabs/agent-shared'; - -/** - * Relay module for v2 session handoff. - * - * Two exports: - * - `SessionRelay` — Cloudflare Durable Object that stores the encrypted session - * payload for one 5-minute window. Internal-only; accessed via `SESSION_RELAY` binding. - * - `handleRelayRequest` — Route dispatcher called from the main Worker for all - * `/api/relay/*` requests from browsers and the CLI. - */ - -// --- Validation helpers --- - -function isHex(s: unknown, len: number): s is string { - return typeof s === 'string' && s.length === len && /^[0-9a-f]+$/.test(s); -} - -function isB64url(s: unknown): s is string { - return typeof s === 'string' && s.length > 0 && /^[A-Za-z0-9_-]+$/.test(s); -} - -/** Constant-time hex string comparison (avoids timing attacks). */ -function constantTimeEqual(a: string, b: string): boolean { - if (a.length !== b.length) return false; - let diff = 0; - for (let i = 0; i < a.length; i++) { - diff |= a.charCodeAt(i) ^ b.charCodeAt(i); - } - return diff === 0; -} - -function cors(response: Response): Response { - const h = new Headers(response.headers); - h.set('Access-Control-Allow-Origin', '*'); - h.set('Access-Control-Allow-Methods', 'GET,POST,OPTIONS'); - h.set('Access-Control-Allow-Headers', 'Content-Type'); - return new Response(response.body, { status: response.status, headers: h }); -} - -function json(data: unknown, status = 200): Response { - return cors(Response.json(data, { status })); -} - -function err(msg: string, status: number): Response { - return cors( - new Response(JSON.stringify({ error: msg }), { - status, - headers: { 'Content-Type': 'application/json' } - }) - ); -} - -// --- Durable Object --- - -export class SessionRelay { - private state: DurableObjectState; - - constructor(state: DurableObjectState) { - this.state = state; - } - - async fetch(request: Request): Promise { - const url = new URL(request.url); - const { method } = request; - - if (method === 'OPTIONS') return cors(new Response(null, { status: 204 })); - - if (method === 'POST' && url.pathname === '/init') return this.handleInit(request); - if (method === 'GET' && url.pathname === '/public-key') return this.handleGetPublicKey(); - if (method === 'POST' && url.pathname === '/session') return this.handlePostSession(request); - if (method === 'GET' && url.pathname === '/status') return this.handleGetStatus(); - if (method === 'POST' && url.pathname === '/retrieve') return this.handleRetrieve(request); - - return err('Not found', 404); - } - - private async handleInit(request: Request): Promise { - let body: unknown; - try { - body = await request.json(); - } catch { - return err('Invalid JSON', 400); - } - const { cli_pk_hex } = body as Record; - if (!isHex(cli_pk_hex, 64)) return err('cli_pk_hex must be 64 hex chars', 400); - - const existing = await this.state.storage.get('status'); - if (existing) return err('Already initialized', 409); - - await this.state.storage.put('cli_pk_hex', cli_pk_hex); - await this.state.storage.put('status', 'pending'); - await this.state.storage.put('attempts_remaining', MAX_CODE_ATTEMPTS); - await this.state.storage.setAlarm(Date.now() + REQUEST_TTL_SECONDS * 1000); - - return cors(new Response(null, { status: 204 })); - } - - private async handleGetPublicKey(): Promise { - const cli_pk_hex = await this.state.storage.get('cli_pk_hex'); - if (!cli_pk_hex) return err('Not found', 404); - return json({ cli_pk_hex }); - } - - private async handlePostSession(request: Request): Promise { - let body: unknown; - try { - body = await request.json(); - } catch { - return err('Invalid JSON', 400); - } - const { wallet_pk_hex, nonce_hex, ciphertext_b64url, code_hash_hex } = body as Record< - string, - unknown - >; - - if (!isHex(wallet_pk_hex, 64)) return err('wallet_pk_hex must be 64 hex chars', 400); - if (!isHex(nonce_hex, 48)) return err('nonce_hex must be 48 hex chars', 400); - if (!isB64url(ciphertext_b64url)) return err('ciphertext_b64url must be base64url', 400); - if (!isHex(code_hash_hex, 64)) return err('code_hash_hex must be 64 hex chars', 400); - - const status = await this.state.storage.get('status'); - if (status !== 'pending') return err('Request not in pending state', 409); - - await this.state.storage.put('wallet_pk_hex', wallet_pk_hex); - await this.state.storage.put('nonce_hex', nonce_hex); - await this.state.storage.put('ciphertext_b64url', ciphertext_b64url); - await this.state.storage.put('code_hash_hex', code_hash_hex); - await this.state.storage.put('status', 'ready'); - - return cors(new Response(null, { status: 204 })); - } - - private async handleGetStatus(): Promise { - const status = await this.state.storage.get('status'); - if (!status) return err('Not found', 404); - return json({ status }); - } - - private async handleRetrieve(request: Request): Promise { - let body: unknown; - try { - body = await request.json(); - } catch { - return err('Invalid JSON', 400); - } - const { code_hash_hex } = body as Record; - if (!isHex(code_hash_hex, 64)) return err('code_hash_hex must be 64 hex chars', 400); - - const stored = await this.state.storage.get('code_hash_hex'); - const attempts = (await this.state.storage.get('attempts_remaining')) ?? 0; - - if (!stored) return err('Not found', 404); - if (attempts <= 0) { - await this.state.storage.deleteAll(); - return err('Expired', 410); - } - - if (!constantTimeEqual(code_hash_hex, stored)) { - const remaining = attempts - 1; - await this.state.storage.put('attempts_remaining', remaining); - if (remaining <= 0) { - await this.state.storage.deleteAll(); - return err('Expired', 410); - } - return json({ attempts_remaining: remaining }, 403); - } - - // Correct code — retrieve and delete everything - const [wallet_pk_hex, nonce_hex, ciphertext_b64url] = await Promise.all([ - this.state.storage.get('wallet_pk_hex'), - this.state.storage.get('nonce_hex'), - this.state.storage.get('ciphertext_b64url') - ]); - await this.state.storage.deleteAll(); - - return json({ wallet_pk_hex, nonce_hex, ciphertext_b64url, code_hash_hex: stored }); - } - - async alarm(): Promise { - await this.state.storage.deleteAll(); - } -} - -// --- Relay route handler (called from main Worker) --- - -export async function handleRelayRequest( - request: Request, - env: { SESSION_RELAY: DurableObjectNamespace } -): Promise { - if (request.method === 'OPTIONS') { - return cors( - new Response(null, { - status: 204, - headers: { - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Methods': 'GET,POST,OPTIONS', - 'Access-Control-Allow-Headers': 'Content-Type' - } - }) - ); - } - - const url = new URL(request.url); - const parts = url.pathname.split('/').filter(Boolean); - // Expected: ['api', 'relay', , ] - - if (parts[0] !== 'api' || parts[1] !== 'relay') return err('Not found', 404); - - const action = parts[2]; - const rid = parts[3]; - - // POST /api/relay/request → create new relay request - if (request.method === 'POST' && action === 'request' && !rid) { - let body: unknown; - try { - body = await request.json(); - } catch { - return err('Invalid JSON', 400); - } - const { cli_pk_hex } = body as Record; - if (!isHex(cli_pk_hex, 64)) return err('cli_pk_hex must be 64 hex chars', 400); - - // Generate a random 8-char alphanumeric request ID - const bytes = new Uint8Array(8); - crypto.getRandomValues(bytes); - const alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789'; - const request_id = Array.from(bytes) - .map((b) => alphabet[b % alphabet.length]) - .join(''); - - const stub = env.SESSION_RELAY.get(env.SESSION_RELAY.idFromName(request_id)); - const initRes = await stub.fetch( - new Request('https://do/init', { - method: 'POST', - body: JSON.stringify({ cli_pk_hex }), - headers: { 'Content-Type': 'application/json' } - }) - ); - if (!initRes.ok) return err('Failed to initialize relay session', 500); - - return json({ request_id }); - } - - if (!rid) return err('Missing request ID', 400); - if (!/^[a-z0-9]{8}$/.test(rid)) return err('Invalid request ID', 400); - - const stub = env.SESSION_RELAY.get(env.SESSION_RELAY.idFromName(rid)); - - // GET /api/relay/request/:rid → get CLI public key - if (request.method === 'GET' && action === 'request') { - const res = await stub.fetch(new Request('https://do/public-key')); - if (!res.ok) return err('Not found', 404); - return cors(res); - } - - // POST /api/relay/session/:rid → browser posts encrypted payload - if (request.method === 'POST' && action === 'session') { - const body = await request.text(); - if (body.length > 16384) return err('Payload too large', 413); - const res = await stub.fetch( - new Request('https://do/session', { - method: 'POST', - body, - headers: { 'Content-Type': 'application/json' } - }) - ); - return cors(res); - } - - // GET /api/relay/status/:rid → poll for "pending" | "ready" - if (request.method === 'GET' && action === 'status') { - const res = await stub.fetch(new Request('https://do/status')); - if (!res.ok) return err('Not found', 404); - return cors(res); - } - - // POST /api/relay/retrieve/:rid → CLI submits code hash, gets ciphertext - if (request.method === 'POST' && action === 'retrieve') { - const body = await request.text(); - const res = await stub.fetch( - new Request('https://do/retrieve', { - method: 'POST', - body, - headers: { 'Content-Type': 'application/json' } - }) - ); - return cors(res); - } - - return err('Not found', 404); -} diff --git a/packages/connector-ui/src/tokenDirectory.ts b/packages/connector-ui/src/tokenDirectory.ts deleted file mode 100644 index 2dc5d26..0000000 --- a/packages/connector-ui/src/tokenDirectory.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { resolveNetwork } from './indexer'; - -const TOKEN_DIR_RAW = 'https://raw.githubusercontent.com/0xsequence/token-directory/main'; - -type Token = { - chainId: number; - address: string; - name: string; - symbol: string; - decimals: number; - logoURI?: string | null; -}; - -async function fetchJson(url: string): Promise { - const res = await fetch(url); - if (!res.ok) throw new Error(`fetch ${url} failed: ${res.status}`); - return res.json(); -} - -function cacheGet(key: string): any | null { - try { - const raw = localStorage.getItem(key); - if (!raw) return null; - return JSON.parse(raw); - } catch { - return null; - } -} - -function cacheSet(key: string, value: any): void { - try { - localStorage.setItem(key, JSON.stringify(value)); - } catch {} -} - -async function loadIndex(): Promise { - const key = 'tokenDirectory.index'; - const cached = cacheGet(key); - const ttlMs = 10 * 60 * 1000; - if (cached?.ts && Date.now() - cached.ts < ttlMs && cached?.data) return cached.data; - - const data = await fetchJson(`${TOKEN_DIR_RAW}/index/index.json`); - cacheSet(key, { ts: Date.now(), data }); - return data; -} - -function chainFolderFromIndex( - indexJson: any, - chainId: number -): { chainName: string; sha256: string } { - const idx = indexJson?.index; - if (!idx) throw new Error('token-directory: missing index'); - for (const [chainName, meta] of Object.entries(idx)) { - if (chainName === '_external') continue; - if (String(meta?.chainId) !== String(chainId)) continue; - const sha = meta?.tokenLists?.['erc20.json']; - if (!sha) - throw new Error(`token-directory: no erc20 list for chainId=${chainId} (${chainName})`); - return { chainName, sha256: sha }; - } - throw new Error(`token-directory: unknown chainId=${chainId}`); -} - -async function loadErc20List(chainId: number): Promise<{ tokens: Token[] }> { - const idx = await loadIndex(); - const { chainName, sha256 } = chainFolderFromIndex(idx, chainId); - - const key = `tokenDirectory.erc20.${chainId}.${String(sha256).slice(0, 12)}`; - const cached = cacheGet(key); - if (cached?.tokens) return cached; - - const data = await fetchJson(`${TOKEN_DIR_RAW}/index/${chainName}/erc20.json`); - cacheSet(key, data); - return data; -} - -export async function resolveErc20Symbol(chainId: number, symbol: string): Promise { - const sym = String(symbol || '') - .toUpperCase() - .trim(); - if (!sym) return null; - - const list = await loadErc20List(chainId); - const tokens = Array.isArray((list as any)?.tokens) ? (list as any).tokens : (list as any); - if (!Array.isArray(tokens)) throw new Error('token-directory: unexpected erc20 list format'); - - const matches = tokens.filter((t: any) => String(t?.symbol || '').toUpperCase() === sym); - if (!matches.length) return null; - - const pick = - matches.find((t: any) => t?.extensions?.verified === true) || - matches.find((t: any) => t?.logoURI) || - matches[0]; - return { - chainId: Number(pick.chainId ?? chainId), - address: pick.address, - symbol: pick.symbol, - name: pick.name, - decimals: pick.decimals, - logoURI: pick.logoURI || null - }; -} - -export function nativeSymbolForChainId(chainId: number): string { - const net = resolveNetwork(chainId); - return net?.nativeCurrency?.symbol || 'NATIVE'; -} diff --git a/packages/connector-ui/src/types.d.ts b/packages/connector-ui/src/types.d.ts deleted file mode 100644 index e69de29..0000000 diff --git a/packages/connector-ui/src/vite-env.d.ts b/packages/connector-ui/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/packages/connector-ui/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/connector-ui/tsconfig.app.json b/packages/connector-ui/tsconfig.app.json deleted file mode 100644 index 390225b..0000000 --- a/packages/connector-ui/tsconfig.app.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - "types": ["@cloudflare/workers-types"], - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"] -} diff --git a/packages/connector-ui/tsconfig.app.tsbuildinfo b/packages/connector-ui/tsconfig.app.tsbuildinfo deleted file mode 100644 index 4ead82c..0000000 --- a/packages/connector-ui/tsconfig.app.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"root":["./src/app.tsx","./src/config.ts","./src/indexer.ts","./src/main.tsx","./src/relay.ts","./src/tokendirectory.ts","./src/types.d.ts","./src/vite-env.d.ts","./src/components/codedisplay.tsx","./src/components/fundingscreen.tsx"],"version":"5.9.3"} \ No newline at end of file diff --git a/packages/connector-ui/tsconfig.json b/packages/connector-ui/tsconfig.json deleted file mode 100644 index d32ff68..0000000 --- a/packages/connector-ui/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "files": [], - "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] -} diff --git a/packages/connector-ui/tsconfig.node.json b/packages/connector-ui/tsconfig.node.json deleted file mode 100644 index 98f5e42..0000000 --- a/packages/connector-ui/tsconfig.node.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["vite.config.ts", "vite-plugins/**/*.ts"] -} diff --git a/packages/connector-ui/tsconfig.node.tsbuildinfo b/packages/connector-ui/tsconfig.node.tsbuildinfo deleted file mode 100644 index cbccb2c..0000000 --- a/packages/connector-ui/tsconfig.node.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"root":["./vite.config.ts","./vite-plugins/mirror-skills.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/packages/connector-ui/vite-plugins/mirror-skills.ts b/packages/connector-ui/vite-plugins/mirror-skills.ts deleted file mode 100644 index 7bf20e4..0000000 --- a/packages/connector-ui/vite-plugins/mirror-skills.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type { Plugin } from 'vite'; - -import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; -import { dirname, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; - -// Mirror skills/ at the repo root onto an explicit, enumerated URL surface. -// The SKILL protocol defines one file per skill directory (SKILL.md), and -// the published surface is exactly that — nothing else from skills/ is -// served, so stray files (.DS_Store, repo-local READMEs, lint configs) -// cannot leak to the CDN. -// -// Emitted paths, derived from skills/ contents at build and dev-server -// startup: -// -// /SKILL.md <- skills/SKILL.md -// /skills/SKILL.md <- skills/SKILL.md -// /skills//SKILL.md <- skills//SKILL.md -// //SKILL.md <- skills//SKILL.md -// (flattened mirror; compat with URLs -// referenced in older CLIs' bundled -// root SKILL.md) -// -// Adding skills//SKILL.md starts serving both -// /skills//SKILL.md and //SKILL.md automatically -// on the next build. -export function mirrorSkills(): Plugin { - const here = dirname(fileURLToPath(import.meta.url)); - const skillsDir = resolve(here, '../../../skills'); - - const withinSkillsDir = (candidate: string) => - candidate === skillsDir || candidate.startsWith(`${skillsDir}/`); - - function resolveRequest(url: string): string | null { - if (url === '/SKILL.md' || url === '/skills/SKILL.md') { - return resolve(skillsDir, 'SKILL.md'); - } - const match = url.match(/^\/(?:skills\/)?([^/]+)\/SKILL\.md$/); - if (!match) return null; - return resolve(skillsDir, match[1], 'SKILL.md'); - } - - return { - name: 'mirror-skills', - configureServer(server) { - server.middlewares.use((req, res, next) => { - const url = req.url?.split('?')[0] ?? ''; - const file = resolveRequest(url); - if (file && withinSkillsDir(file) && existsSync(file) && statSync(file).isFile()) { - res.setHeader('content-type', 'text/markdown; charset=utf-8'); - res.end(readFileSync(file)); - return; - } - next(); - }); - }, - generateBundle() { - if (!existsSync(skillsDir)) return; - - const rootSkill = resolve(skillsDir, 'SKILL.md'); - if (!existsSync(rootSkill)) return; - - const emit = (fileName: string, source: Buffer) => { - this.emitFile({ type: 'asset', fileName, source }); - }; - - // Root entrypoint — served at both /SKILL.md and /skills/SKILL.md - const rootSource = readFileSync(rootSkill); - emit('SKILL.md', rootSource); - emit('skills/SKILL.md', rootSource); - - // Each sub-skill, served at both /skills//SKILL.md (structured) - // and //SKILL.md (flattened, for older-CLI URL compat) - for (const entry of readdirSync(skillsDir, { withFileTypes: true })) { - if (!entry.isDirectory()) continue; - const file = resolve(skillsDir, entry.name, 'SKILL.md'); - if (!existsSync(file)) continue; - const source = readFileSync(file); - emit(`skills/${entry.name}/SKILL.md`, source); - emit(`${entry.name}/SKILL.md`, source); - } - } - }; -} diff --git a/packages/connector-ui/vite.config.ts b/packages/connector-ui/vite.config.ts deleted file mode 100644 index 1db9486..0000000 --- a/packages/connector-ui/vite.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import tailwindcss from '@tailwindcss/vite'; -import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; - -import { mirrorSkills } from './vite-plugins/mirror-skills'; - -// https://vite.dev/config/ -export default defineConfig({ - plugins: [react(), tailwindcss(), mirrorSkills()], - server: { - port: 4444 - } -}); diff --git a/packages/connector-ui/worker.mjs b/packages/connector-ui/worker.mjs deleted file mode 100644 index 9376bc9..0000000 --- a/packages/connector-ui/worker.mjs +++ /dev/null @@ -1,29 +0,0 @@ -// packages/connector-ui/worker.mjs -import { handleRelayRequest, SessionRelay } from './src/relay.ts'; - -export { SessionRelay }; - -export default { - async fetch(request, env) { - const url = new URL(request.url); - - // Route /api/relay/* to Durable Object relay - if (url.pathname.startsWith('/api/relay')) { - return handleRelayRequest(request, env); - } - - if (!env.ASSETS) { - return new Response('ASSETS binding is missing', { status: 500 }); - } - - // SPA fallback: serve index.html for non-file paths - const res = await env.ASSETS.fetch(request); - if (res.status !== 404) return res; - - if (/\.[a-z0-9]+$/i.test(url.pathname)) return res; - - const indexUrl = new URL(request.url); - indexUrl.pathname = '/index.html'; - return env.ASSETS.fetch(new Request(indexUrl.toString(), request)); - } -}; diff --git a/packages/connector-ui/wrangler.toml b/packages/connector-ui/wrangler.toml deleted file mode 100644 index b9161b3..0000000 --- a/packages/connector-ui/wrangler.toml +++ /dev/null @@ -1,53 +0,0 @@ -name = "agentconnect" -compatibility_date = "2024-07-04" -workers_dev = false -preview_urls = false -send_metrics = false -placement = { mode = "smart" } - -main = "worker.mjs" - -[assets] -directory = "./dist" -binding = "ASSETS" -not_found_handling = "single-page-application" -run_worker_first = ["/api/*"] - -[[durable_objects.bindings]] -name = "SESSION_RELAY" -class_name = "SessionRelay" - -[[migrations]] -tag = "v1" -new_classes = ["SessionRelay"] - -[env.staging] -name = "agentconnect-staging" - -routes = [ - { pattern = "agentconnect.staging.polygon.technology", custom_domain = true } -] - -[[env.staging.durable_objects.bindings]] -name = "SESSION_RELAY" -class_name = "SessionRelay" - -[[env.staging.migrations]] -tag = "v1" -new_classes = ["SessionRelay"] - -[env.production] -name = "agentconnect-production" - -routes = [ - { pattern = "agentconnect.polygon.technology", custom_domain = true } -] - -[[env.production.durable_objects.bindings]] -name = "SESSION_RELAY" -class_name = "SessionRelay" - -[[env.production.migrations]] -tag = "v1" -new_classes = ["SessionRelay"] - diff --git a/packages/polygon-agent-cli/package.json b/packages/polygon-agent-cli/package.json index f971558..749e330 100644 --- a/packages/polygon-agent-cli/package.json +++ b/packages/polygon-agent-cli/package.json @@ -26,22 +26,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@0xsequence/abi": "3.0.0-beta.17", - "@0xsequence/api": "3.0.0-beta.17", - "@0xsequence/builder": "3.0.0-beta.17", - "@0xsequence/dapp-client": "3.0.0-beta.17", - "@0xsequence/dapp-client-cli": "0.1.5", - "@0xsequence/indexer": "^2.3.40", "@0xsequence/network": "^2.3.40", - "@0xsequence/relayer": "3.0.0-beta.17", "@0xsequence/typescript-sdk": "0.1.0-alpha.2", - "@0xsequence/wallet-core": "3.0.0-beta.17", - "@0xsequence/wallet-primitives": "3.0.0-beta.17", - "@0xsequence/wallet-wdk": "3.0.0-beta.17", "@0xtrails/api": "^0.10.4", - "@noble/ciphers": "^1.2.1", - "@noble/curves": "^1.8.1", - "@noble/hashes": "^1.7.2", "@polymarket/clob-client-v2": "^1.0.0", "@polymarket/sdk": "^6.0.1", "@x402/core": "^2.3.1", @@ -54,13 +41,10 @@ "ink-spinner": "^5.0.0", "open": "^10.1.0", "react": "^18.3.1", - "tweetnacl": "^1.0.3", - "tweetnacl-sealedbox-js": "^1.2.0", "viem": "^2.45.3", "yargs": "^17.7.2" }, "devDependencies": { - "@polygonlabs/agent-shared": "workspace:*", "@types/react": "^18.3.1", "@types/yargs": "^17.0.33", "esbuild": "^0.28.0" diff --git a/packages/polygon-agent-cli/src/commands/operations-ui.tsx b/packages/polygon-agent-cli/src/commands/operations-ui.tsx index 9c3a79a..443559e 100644 --- a/packages/polygon-agent-cli/src/commands/operations-ui.tsx +++ b/packages/polygon-agent-cli/src/commands/operations-ui.tsx @@ -2,26 +2,15 @@ import { Box, Text, useApp } from 'ink'; import Spinner from 'ink-spinner'; import React, { useState, useEffect } from 'react'; -import { loadWalletSession } from '../lib/storage.ts'; +import type { TokenBalance } from '@0xsequence/typescript-sdk'; + +import { findNetworkById } from '@0xsequence/typescript-sdk'; + +import { getOmsClient } from '../lib/oms-client.ts'; +import { loadOmsWalletPointer } from '../lib/storage.ts'; import { resolveNetwork, formatUnits } from '../lib/utils.ts'; import { Header, KV, Err, Divider, DryRunBanner, TxResult } from '../ui/components.js'; -// Get per-chain indexer URL -function getChainIndexerUrl(chainId: number): string { - const chainNames: Record = { - 137: 'polygon', - 80002: 'amoy', - 1: 'mainnet', - 42161: 'arbitrum', - 10: 'optimism', - 8453: 'base', - 43114: 'avalanche', - 56: 'bsc', - 100: 'gnosis' - }; - return `https://${chainNames[chainId] || 'polygon'}-indexer.sequence.app`; -} - function shortAddr(address: string, head = 6, tail = 4): string { return `${address.slice(0, head)}…${address.slice(-tail)}`; } @@ -52,44 +41,48 @@ export function BalancesUI({ walletName, chainOverride }: BalancesUIProps) { useEffect(() => { void (async () => { try { - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); - - const indexerKey = - process.env.SEQUENCE_INDEXER_ACCESS_KEY || - session.projectAccessKey || - process.env.SEQUENCE_PROJECT_ACCESS_KEY; - if (!indexerKey) - throw new Error('Missing project access key (set SEQUENCE_PROJECT_ACCESS_KEY)'); + const pointer = await loadOmsWalletPointer(walletName); + if (!pointer) + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); + const addr = pointer.walletAddress; - const network = resolveNetwork(chainOverride || session.chain || 'polygon'); + const network = resolveNetwork(chainOverride || 'polygon'); const nativeDecimals = network.nativeToken?.decimals ?? 18; const nativeSymbol = network.nativeToken?.symbol || 'POL'; - const { SequenceIndexer } = await import('@0xsequence/indexer'); - const indexer = new SequenceIndexer(getChainIndexerUrl(network.chainId), indexerKey); + const omsNetwork = findNetworkById(network.chainId); + if (!omsNetwork) throw new Error(`Unsupported chain for OMS indexer: ${network.chainId}`); + const oms = getOmsClient(walletName); const [nativeRes, tokenRes] = await Promise.all([ - indexer.getNativeTokenBalance({ accountAddress: session.walletAddress }), - indexer.getTokenBalances({ accountAddress: session.walletAddress, includeMetadata: true }) + oms.indexer.getNativeTokenBalance({ network: omsNetwork, walletAddress: addr }), + oms.indexer.getTokenBalances({ + network: omsNetwork, + walletAddress: addr, + includeMetadata: true + }) ]); const rows: BalanceEntry[] = [ { symbol: nativeSymbol, - balance: formatUnits(BigInt(nativeRes?.balance?.balance || '0'), nativeDecimals), + balance: formatUnits(BigInt(nativeRes?.balance || '0'), nativeDecimals), address: '(native)' } ]; - for (const b of tokenRes?.balances || []) { + for (const b of (tokenRes?.balances || []) as TokenBalance[]) { const sym = b.contractInfo?.symbol || 'ERC20'; const dec = b.contractInfo?.decimals ?? 18; - const addr = b.contractAddress ? shortAddr(b.contractAddress) : ''; - rows.push({ symbol: sym, balance: formatUnits(b.balance || '0', dec), address: addr }); + const tokenAddr = b.contractAddress ? shortAddr(b.contractAddress) : ''; + rows.push({ + symbol: sym, + balance: formatUnits(b.balance || '0', dec), + address: tokenAddr + }); } - setWalletAddress(session.walletAddress); + setWalletAddress(addr); setChainId(network.chainId); setChainName(network.name); setBalances(rows); diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index 4a6608b..c0d8a94 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -2,7 +2,12 @@ import type { CommandModule, Argv } from 'yargs'; import React from 'react'; -import { loadWalletSession, loadBuilderConfig } from '../lib/storage.ts'; +import type { TokenBalance } from '@0xsequence/typescript-sdk'; + +import { findNetworkById } from '@0xsequence/typescript-sdk'; + +import { getOmsClient } from '../lib/oms-client.ts'; +import { loadOmsWalletPointer, loadBuilderConfig } from '../lib/storage.ts'; import { resolveErc20BySymbol } from '../lib/token-directory.ts'; import { runTx as runDappClientTx } from '../lib/tx-dispatch.ts'; import { @@ -10,7 +15,6 @@ import { formatUnits, parseUnits, getExplorerUrl, - getRpcUrl, getReadRpcUrl, fileCoerce } from '../lib/utils.ts'; @@ -40,22 +44,6 @@ function withBroadcast(yargs: Argv) { } // Get per-chain indexer URL -function getChainIndexerUrl(chainId: number): string { - const chainNames: Record = { - 137: 'polygon', - 80002: 'amoy', - 1: 'mainnet', - 42161: 'arbitrum', - 10: 'optimism', - 8453: 'base', - 43114: 'avalanche', - 56: 'bsc', - 100: 'gnosis' - }; - const name = chainNames[chainId] || 'polygon'; - return `https://${name}-indexer.sequence.app`; -} - // Load optional token map override from env function loadTokenMap(): Record> { const raw = process.env.TRAILS_TOKEN_MAP_JSON || ''; @@ -134,29 +122,24 @@ type BalanceRowJson = }; async function fetchBalancesRowsForChain( + walletName: string, walletAddress: string, - chainSpec: string, - indexerKey: string + chainSpec: string ): Promise<{ chainId: number; chain: string; balances: BalanceRowJson[] }> { const network = resolveNetwork(chainSpec); const nativeDecimals = network.nativeToken?.decimals ?? 18; const nativeSymbol = network.nativeToken?.symbol || 'POL'; - const { SequenceIndexer } = await import('@0xsequence/indexer'); - const indexerUrl = getChainIndexerUrl(network.chainId); - const indexer = new SequenceIndexer(indexerUrl, indexerKey); + const omsNetwork = findNetworkById(network.chainId); + if (!omsNetwork) throw new Error(`Unsupported chain for OMS indexer: ${network.chainId}`); + const oms = getOmsClient(walletName); const [nativeRes, tokenRes] = await Promise.all([ - indexer.getNativeTokenBalance({ - accountAddress: walletAddress - }), - indexer.getTokenBalances({ - accountAddress: walletAddress, - includeMetadata: true - }) + oms.indexer.getNativeTokenBalance({ network: omsNetwork, walletAddress }), + oms.indexer.getTokenBalances({ network: omsNetwork, walletAddress, includeMetadata: true }) ]); - const nativeWei = nativeRes?.balance?.balance || '0'; + const nativeWei = nativeRes?.balance || '0'; const native: BalanceRowJson[] = [ { type: 'native', @@ -165,19 +148,15 @@ async function fetchBalancesRowsForChain( } ]; - const erc20: BalanceRowJson[] = (tokenRes?.balances || []).map( - (b: { - contractInfo?: { symbol?: string; name?: string; decimals?: number }; - contractAddress: string; - balance?: string; - }) => ({ + const erc20: BalanceRowJson[] = (tokenRes?.balances || []) + .filter((b: TokenBalance) => !!b.contractAddress) + .map((b: TokenBalance) => ({ type: 'erc20' as const, symbol: b.contractInfo?.symbol || 'ERC20', name: b.contractInfo?.name || undefined, - contractAddress: b.contractAddress, + contractAddress: b.contractAddress as string, balance: formatUnits(b.balance || '0', b.contractInfo?.decimals ?? 18) - }) - ); + })); return { chainId: network.chainId, @@ -220,31 +199,24 @@ export const balancesCommand: CommandModule = { if (multiChainMode || (preferChainsArg && !isTTY())) { try { - const session = await loadWalletSession(walletName); - if (!session) { - throw new Error(`Wallet not found: ${walletName}`); - } - - const indexerKey = - process.env.SEQUENCE_INDEXER_ACCESS_KEY || - session.projectAccessKey || - process.env.SEQUENCE_PROJECT_ACCESS_KEY; - if (!indexerKey) { - throw new Error('Missing project access key (not in wallet session or environment)'); + const pointer = await loadOmsWalletPointer(walletName); + if (!pointer) { + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); } + const walletAddress = pointer.walletAddress; if (multiChainMode) { const chainsOut = await Promise.all( - chainList.map((spec) => - fetchBalancesRowsForChain(session.walletAddress, spec, indexerKey) - ) + chainList.map((spec) => fetchBalancesRowsForChain(walletName, walletAddress, spec)) ); console.log( JSON.stringify( { ok: true, walletName, - walletAddress: session.walletAddress, + walletAddress, multiChain: true, chains: chainsOut }, @@ -253,17 +225,13 @@ export const balancesCommand: CommandModule = { ) ); } else { - const one = await fetchBalancesRowsForChain( - session.walletAddress, - singleChainSpec!, - indexerKey - ); + const one = await fetchBalancesRowsForChain(walletName, walletAddress, singleChainSpec!); console.log( JSON.stringify( { ok: true, walletName, - walletAddress: session.walletAddress, + walletAddress, chainId: one.chainId, chain: one.chain, balances: one.balances @@ -293,28 +261,22 @@ export const balancesCommand: CommandModule = { if (!isTTY()) { // Non-TTY: original JSON output (single default / --chain) try { - const session = await loadWalletSession(walletName); - if (!session) { - throw new Error(`Wallet not found: ${walletName}`); - } - - const indexerKey = - process.env.SEQUENCE_INDEXER_ACCESS_KEY || - session.projectAccessKey || - process.env.SEQUENCE_PROJECT_ACCESS_KEY; - if (!indexerKey) { - throw new Error('Missing project access key (not in wallet session or environment)'); + const pointer = await loadOmsWalletPointer(walletName); + if (!pointer) { + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); } - const chainSpec = (argv.chain as string) || session.chain || 'polygon'; - const one = await fetchBalancesRowsForChain(session.walletAddress, chainSpec, indexerKey); + const chainSpec = (argv.chain as string) || 'polygon'; + const one = await fetchBalancesRowsForChain(walletName, pointer.walletAddress, chainSpec); console.log( JSON.stringify( { ok: true, walletName, - walletAddress: session.walletAddress, + walletAddress: pointer.walletAddress, chainId: one.chainId, chain: one.chain, balances: one.balances @@ -364,13 +326,15 @@ export const fundCommand: CommandModule = { const walletName = argv.wallet as string; try { - const session = await loadWalletSession(walletName); + const session = await loadOmsWalletPointer(walletName); if (!session) { - throw new Error(`Wallet not found: ${walletName}. Run 'wallet create' first.`); + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); } const walletAddress = session.walletAddress; - const chainId = session.chainId || 137; + const chainId = 137; const fundingUrl = `https://wallet.polygon.technology`; if (isTTY()) { @@ -504,10 +468,13 @@ async function handleSendNative(argv: { explorerUrl?: string; walletAddress?: string; }> { - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + const session = await loadOmsWalletPointer(walletName); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); - const network = resolveNetwork((argv.chain as string) || session.chain || 'polygon'); + const network = resolveNetwork((argv.chain as string) || 'polygon'); const decimals = network.nativeToken?.decimals ?? 18; const value = parseUnits(amount, decimals); @@ -540,10 +507,13 @@ async function handleSendNative(argv: { if (!isTTY()) { // Non-TTY: original JSON output try { - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + const session = await loadOmsWalletPointer(walletName); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); - const network = resolveNetwork((argv.chain as string) || session.chain || 'polygon'); + const network = resolveNetwork((argv.chain as string) || 'polygon'); const decimals = network.nativeToken?.decimals ?? 18; const value = parseUnits(amount, decimals); @@ -608,8 +578,7 @@ async function handleSendNative(argv: { // TTY: Ink UI let failed = false; try { - const session = await loadWalletSession(walletName); - const network = resolveNetwork((argv.chain as string) || session?.chain || 'polygon'); + const network = resolveNetwork((argv.chain as string) || 'polygon'); const nativeSymbol = network.nativeToken?.symbol || 'POL'; await inkRender( @@ -692,10 +661,13 @@ async function handleSendToken(argv: { resolvedSymbol: string; network: ReturnType; }> { - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + const session = await loadOmsWalletPointer(walletName); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); - const network = resolveNetwork((argv.chain as string) || session.chain || 'polygon'); + const network = resolveNetwork((argv.chain as string) || 'polygon'); let token = tokenAddress; let decimals = decimalsArg ?? null; let resolvedSymbol = symbolArg || 'TOKEN'; @@ -839,10 +811,13 @@ async function handleCall(argv: { throw new Error('--data must be 0x-prefixed hex (use viem/ethers/cast to encode)'); } - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + const session = await loadOmsWalletPointer(walletName); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); - const network = resolveNetwork(argv.chain || session.chain || 'polygon'); + const network = resolveNetwork(argv.chain || 'polygon'); const decimals = network.nativeToken?.decimals ?? 18; const value = argv.value ? parseUnits(argv.value, decimals) : 0n; @@ -952,12 +927,14 @@ export const swapCommand: CommandModule = { const broadcast = argv.broadcast as boolean; try { - const session = await loadWalletSession(walletName); + const session = await loadOmsWalletPointer(walletName); if (!session) { - throw new Error(`Wallet not found: ${walletName}`); + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); } - const originNetwork = resolveNetwork((argv.chain as string) || session.chain || 'polygon'); + const originNetwork = resolveNetwork((argv.chain as string) || 'polygon'); const originChainId = originNetwork.chainId; const originNativeSymbol = originNetwork.nativeToken?.symbol || 'NATIVE'; @@ -1177,10 +1154,13 @@ export const depositCommand: CommandModule = { const broadcast = argv.broadcast as boolean; try { - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + const session = await loadOmsWalletPointer(walletName); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); - const network = resolveNetwork((argv.chain as string) || session.chain || 'polygon'); + const network = resolveNetwork((argv.chain as string) || 'polygon'); const { chainId } = network; const walletAddress = session.walletAddress; @@ -1639,10 +1619,13 @@ export const withdrawCommand: CommandModule = { const assetSymbol = (argv.asset as string)?.toUpperCase(); try { - const session = await loadWalletSession(walletName); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + const session = await loadOmsWalletPointer(walletName); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); - const network = resolveNetwork((argv.chain as string) || session.chain || 'polygon'); + const network = resolveNetwork((argv.chain as string) || 'polygon'); const { chainId } = network; const walletAddress = session.walletAddress as `0x${string}`; @@ -1651,7 +1634,7 @@ export const withdrawCommand: CommandModule = { const viemChain = await viemChainForWithdraw(chainId); const publicClient = createPublicClient({ chain: viemChain, - transport: http(getRpcUrl(network)) + transport: http(getReadRpcUrl(network)) }); let positionAddr = String(argv.position || '') @@ -1667,10 +1650,7 @@ export const withdrawCommand: CommandModule = { const { TrailsApi } = await import('@0xtrails/api'); const trailsApiKey = - process.env.TRAILS_API_KEY || - session.projectAccessKey || - process.env.SEQUENCE_PROJECT_ACCESS_KEY || - ''; + process.env.TRAILS_API_KEY || process.env.SEQUENCE_PROJECT_ACCESS_KEY || ''; const trails = new TrailsApi(trailsApiKey, { hostname: process.env.TRAILS_API_HOSTNAME }); @@ -2012,10 +1992,13 @@ export const x402PayCommand: CommandModule = { try { const [session, builderConfig] = await Promise.all([ - loadWalletSession(walletName), + loadOmsWalletPointer(walletName), loadBuilderConfig() ]); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); if (!builderConfig?.privateKey) throw new Error('Builder EOA not found. Run: polygon-agent setup'); @@ -2212,9 +2195,7 @@ export const x402PayCommand: CommandModule = { const chainFromPayment = paymentNetwork?.startsWith('eip155:') ? paymentNetwork.split(':')[1] : null; - const resolvedNetwork = resolveNetwork( - chainArg || chainFromPayment || session.chain || 'polygon' - ); + const resolvedNetwork = resolveNetwork(chainArg || chainFromPayment || 'polygon'); const pad = (hex: string, n = 64) => String(hex).replace(/^0x/, '').padStart(n, '0'); const transferData = '0xa9059cbb' + pad(eoaAccount.address) + pad('0x' + BigInt(amount).toString(16)); diff --git a/packages/polygon-agent-cli/src/commands/polymarket.ts b/packages/polygon-agent-cli/src/commands/polymarket.ts index 38ec5fd..4f14b00 100644 --- a/packages/polygon-agent-cli/src/commands/polymarket.ts +++ b/packages/polygon-agent-cli/src/commands/polymarket.ts @@ -24,7 +24,7 @@ import { NEG_RISK_ADAPTER, COLLATERAL_ONRAMP } from '../lib/polymarket.ts'; -import { loadWalletSession, savePolymarketKey, loadPolymarketKey } from '../lib/storage.ts'; +import { loadOmsWalletPointer, savePolymarketKey, loadPolymarketKey } from '../lib/storage.ts'; import { runTx as runDappClientTx } from '../lib/tx-dispatch.ts'; // ─── handlers ──────────────────────────────────────────────────────────────── @@ -321,10 +321,13 @@ async function handleClobBuy(argv: { } const [session, privateKey] = await Promise.all([ - loadWalletSession(walletName), + loadOmsWalletPointer(walletName), loadPolymarketKey() ]); - if (!session) throw new Error(`Wallet not found: ${walletName}`); + if (!session) + throw new Error( + `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` + ); const { privateKeyToAccount } = await import('viem/accounts'); const account = privateKeyToAccount(privateKey as `0x${string}`); diff --git a/packages/polygon-agent-cli/src/commands/setup.ts b/packages/polygon-agent-cli/src/commands/setup.ts index d7c37b5..acd14a9 100644 --- a/packages/polygon-agent-cli/src/commands/setup.ts +++ b/packages/polygon-agent-cli/src/commands/setup.ts @@ -4,7 +4,7 @@ import { ethers } from 'ethers'; import React from 'react'; import { generateEthAuthProof } from '../lib/ethauth.ts'; -import { saveBuilderConfig, loadBuilderConfig } from '../lib/storage.ts'; +import { saveBuilderConfig, loadBuilderConfig, saveOmsConfig } from '../lib/storage.ts'; import { generateAgentName } from '../lib/utils.ts'; import { isTTY, inkRender } from '../ui/render.js'; import { SetupUI, getAuthToken, createProject, getDefaultAccessKey } from './setup-ui.js'; @@ -12,6 +12,8 @@ import { SetupUI, getAuthToken, createProject, getDefaultAccessKey } from './set interface SetupArgs { name?: string; force?: boolean; + 'oms-publishable-key'?: string; + 'oms-project-id'?: string; } export const setupCommand: CommandModule = { @@ -27,10 +29,39 @@ export const setupCommand: CommandModule = { type: 'boolean', describe: 'Recreate even if already configured', default: false + }) + .option('oms-publishable-key', { + type: 'string', + describe: 'Sequence V3 OMS publishable key (from Sequence Builder dashboard)' + }) + .option('oms-project-id', { + type: 'string', + describe: 'Sequence V3 OMS project id (e.g. proj_...)' }), handler: async (argv) => { const name = argv.name || generateAgentName(); + // If OMS credentials are supplied, persist them (independent of the legacy + // builder/access-key flow). Used by the V3 `wallet login` path. + const omsPk = argv['oms-publishable-key']; + const omsProj = argv['oms-project-id']; + if (omsPk && omsProj) { + await saveOmsConfig({ publishableKey: omsPk, omsProjectId: omsProj }); + if (!isTTY()) { + console.log( + JSON.stringify( + { + ok: true, + message: 'OMS (Sequence V3) credentials saved to ~/.polygon-agent/builder.json' + }, + null, + 2 + ) + ); + return; + } + } + if (!isTTY()) { // Non-TTY fallback: original JSON output try { diff --git a/packages/polygon-agent-cli/src/commands/wallet-ui.tsx b/packages/polygon-agent-cli/src/commands/wallet-ui.tsx index fbc8d63..cb9e3d5 100644 --- a/packages/polygon-agent-cli/src/commands/wallet-ui.tsx +++ b/packages/polygon-agent-cli/src/commands/wallet-ui.tsx @@ -1,457 +1,8 @@ -import { Box, Text, useApp, useInput } from 'ink'; -import Spinner from 'ink-spinner'; -import React, { useState, useEffect, useRef } from 'react'; +import { Box, Text } from 'ink'; +import React from 'react'; -import { - generateX25519Keypair, - bytesToHex, - computeCodeHash, - decryptSession -} from '@polygonlabs/agent-shared'; +import { Header, Addr, KV } from '../ui/components.js'; -import { RelayClient, RelayCodeError } from '../lib/relay-client.ts'; -import { - saveWalletSession, - saveWalletRequest, - deleteWalletRequest, - sessionPayloadToWalletSession -} from '../lib/storage.ts'; -import { normalizeChain, resolveNetwork, formatUnits } from '../lib/utils.ts'; -import { Header, Step, UrlBox, Addr, CodeDisplay, Hint, Err, KV } from '../ui/components.js'; - -// Session permission args interface (subset used for URL building) -interface SessionPermissionArgs { - 'native-limit'?: string; - 'usdc-limit'?: string; - 'usdt-limit'?: string; - 'token-limit'?: string[]; - contract?: string[]; - 'usdc-to'?: string; - 'usdc-amount'?: string; - 'access-key'?: string; -} - -const AUTO_WHITELISTED_CONTRACTS = [ - '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432', // ERC-8004 IdentityRegistry - '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63', // ERC-8004 ReputationRegistry - '0xABAAd93EeE2a569cF0632f39B10A9f5D734777ca', // ValueForwarder (required for send native POL) - - // Polygon mainnet (chainId 137) — ERC-20 token contracts (needed for approve() in deposits/swaps) - '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', // USDC (native) - '0xc2132D05D31c914a87C6611C10748AEb04B58e8F', // USDT - '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', // WETH - - // Polygon mainnet (chainId 137) — yield vaults - '0x794a61358d6845594f94dc1db02a252b5b4814ad', // Aave V3 Pool (all markets) - '0x781fb7f6d845e3be129289833b04d43aa8558c42', // Morpho Compound USDC - '0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf', // Morpho Compound WETH - '0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2', // Morpho Compound POL - - // Katana (chainId 747474) — Morpho vaults - '0x1ecdc3f2b5e90bfb55ff45a7476ff98a8957388e', // Gauntlet USDT (~$97M TVL) - '0x61d4f9d3797ba4da152238c53a6f93fb665c3c1d', // Steakhouse Prime USDC (~$54M TVL) - '0xfade0c546f44e33c134c4036207b314ac643dc2e', // Yearn OG ETH (~$16M TVL) - '0xce2b8e464fc7b5e58710c24b7e5ebfb6027f29d7', // Yearn OG USDC (~$16M TVL) - '0xe4248e2105508fcbad3fe95691551d1af14015f7', // Gauntlet USDC (~$8M TVL) - '0x8ed68f91afbe5871dce31ae007a936ebe8511d47', // Yearn OG USDT (~$8M TVL) - '0xc5e7ab07030305fc925175b25b93b285d40dcdff', // Gauntlet WETH (~$6M TVL) - '0xef77f8c53af95f3348cee0fb2a02ee02ab9cdca5' // Hyperithm vbUSDC Apex (~$3M TVL) -]; - -function applySessionPermissionParams(url: URL, argv: SessionPermissionArgs): void { - const usdcTo = argv['usdc-to']; - const usdcAmount = argv['usdc-amount']; - if (usdcTo || usdcAmount) { - if (!usdcTo || !usdcAmount) throw new Error('Must provide both --usdc-to and --usdc-amount'); - url.searchParams.set('erc20', 'usdc'); - url.searchParams.set('erc20To', usdcTo); - url.searchParams.set('erc20Amount', usdcAmount); - } - - const nativeLimit = argv['native-limit']; - const usdcLimit = argv['usdc-limit'] || '50'; - const usdtLimit = argv['usdt-limit']; - if (nativeLimit) url.searchParams.set('nativeLimit', nativeLimit); - url.searchParams.set('usdcLimit', usdcLimit); - if (usdtLimit) url.searchParams.set('usdtLimit', usdtLimit); - - const tokenLimits = (argv['token-limit'] || []) - .map((s) => String(s || '').trim()) - .filter(Boolean); - if (tokenLimits.length) url.searchParams.set('tokenLimits', tokenLimits.join(',')); - - const userContracts = (argv.contract || []).map((s) => String(s || '').trim()).filter(Boolean); - const allContracts = [...new Set([...AUTO_WHITELISTED_CONTRACTS, ...userContracts])]; - url.searchParams.set('contracts', allContracts.join(',')); -} - -export type WalletCreatePhase = - | 'registering' - | 'waiting' - | 'code' - | 'nocode' - | 'linking' - | 'done' - | 'balances' - | 'error'; - -interface BalanceRow { - symbol: string; - balance: string; - usd?: string; -} - -export interface WalletCreateUIProps { - name: string; - chain: string; - timeout: number; - argv: SessionPermissionArgs & { 'access-key'?: string }; - tty?: boolean; - onComplete?: (walletAddress: string, chainId: number, chain: string) => void; - onError?: (message: string) => void; -} - -// Renders nothing but registers Ink's keystroke listener so the user can type -// the 6-digit approval code. Extracted so it can be conditionally mounted — -// useInput() triggers raw-mode setup on stdin which crashes in non-TTY contexts. -function CodeInputCapture({ - phase, - setCode -}: { - phase: WalletCreatePhase; - setCode: React.Dispatch>; -}) { - useInput((input, key) => { - if (phase !== 'code') return; - if (/^\d+$/.test(input)) { - setCode((prev) => (prev + input).slice(0, 6)); - } - if (key.backspace || key.delete) { - setCode((prev) => prev.slice(0, -1)); - } - }); - return null; -} - -export function WalletCreateUI({ - name, - chain, - timeout, - argv, - tty = true, - onComplete, - onError -}: WalletCreateUIProps) { - const { exit } = useApp(); - const [phase, setPhase] = useState('registering'); - const [url, setUrl] = useState(''); - const [rid, setRid] = useState(''); - const [address, setAddress] = useState(''); - const [walletChain, setWalletChain] = useState(''); - const [code, setCode] = useState(''); - const [codeError, setCodeError] = useState(''); - const [error, setError] = useState(''); - const [balances, setBalances] = useState([]); - const stateRef = useRef<{ rid: string; cliSk: Uint8Array; relay: RelayClient } | null>(null); - const submittingRef = useRef(false); - - useEffect(() => { - void (async () => { - try { - const normalizedChain = normalizeChain(chain); - const connectorBase = ( - process.env.SEQUENCE_ECOSYSTEM_CONNECTOR_URL || 'https://agentconnect.polygon.technology' - ).replace(/\/$/, ''); - - const { secretKey: cliSk, publicKey: cliPk } = generateX25519Keypair(); - const cliPkHex = bytesToHex(cliPk); - const cliSkHex = bytesToHex(cliSk); - - const relay = new RelayClient(connectorBase); - const rid = await relay.createRequest(cliPkHex); - - const projectAccessKey = argv['access-key'] || process.env.SEQUENCE_PROJECT_ACCESS_KEY; - - const createdAt = new Date().toISOString(); - const expiresAt = new Date(Date.now() + 10 * 60 * 1000).toISOString(); - - await saveWalletRequest(rid, { - rid, - walletName: name, - chain: normalizedChain, - createdAt, - expiresAt, - publicKeyB64u: '', - privateKeyB64u: '', - projectAccessKey: projectAccessKey || null, - cliSkHex - }); - - const urlObj = new URL(`${connectorBase}/link`); - urlObj.searchParams.set('rid', rid); - urlObj.searchParams.set('wallet', name); - urlObj.searchParams.set('chain', normalizedChain); - if (projectAccessKey) urlObj.searchParams.set('accessKey', projectAccessKey); - applySessionPermissionParams(urlObj, argv); - const fullUrl = urlObj.toString(); - - stateRef.current = { rid, cliSk, relay }; - setUrl(fullUrl); - setRid(rid); - setPhase('waiting'); - - try { - const { default: open } = await import('open'); - await open(fullUrl); - } catch { - // ignore - } - - await relay.waitForReady(rid, timeout * 1000, 2_000); - // Non-TTY: can't collect code interactively — show import command and exit - if (!tty) { - setPhase('nocode'); - exit(); - return; - } - setPhase('code'); - } catch (e: unknown) { - const msg = e instanceof Error ? e.message : String(e); - setError(msg); - setPhase('error'); - onError?.(msg); - exit(new Error(msg)); - } - })(); - }, []); - - useEffect(() => { - if (phase === 'code' && code.length === 6 && !submittingRef.current) { - submittingRef.current = true; - setCodeError(''); - void (async () => { - try { - setPhase('linking'); - const { rid, cliSk, relay } = stateRef.current!; - const codeHashHex = bytesToHex(computeCodeHash(rid, code)); - const encrypted = await relay.retrieve(rid, codeHashHex); - const payload = decryptSession(encrypted, cliSk, code, rid); - const session = sessionPayloadToWalletSession(payload); - await saveWalletSession(name, session); - await deleteWalletRequest(stateRef.current!.rid); - setAddress(session.walletAddress); - setWalletChain(session.chain); - setPhase('done'); - onComplete?.(session.walletAddress, session.chainId, session.chain); - // Fetch balances after a short delay then exit - setPhase('balances'); - try { - const accessKey = - process.env.SEQUENCE_INDEXER_ACCESS_KEY || - session.projectAccessKey || - process.env.SEQUENCE_PROJECT_ACCESS_KEY; - if (accessKey) { - const network = resolveNetwork(session.chain); - const nativeSymbol = network.nativeToken?.symbol || 'POL'; - const nativeDecimals = network.nativeToken?.decimals ?? 18; - const { SequenceIndexer } = await import('@0xsequence/indexer'); - const chainNames: Record = { - 137: 'polygon', - 80002: 'amoy', - 1: 'mainnet', - 42161: 'arbitrum', - 10: 'optimism', - 8453: 'base' - }; - const chainSlug = chainNames[network.chainId] || 'polygon'; - const indexer = new SequenceIndexer( - `https://${chainSlug}-indexer.sequence.app`, - accessKey - ); - const [nativeRes, tokenRes] = await Promise.all([ - indexer.getNativeTokenBalance({ accountAddress: session.walletAddress }), - indexer.getTokenBalances({ - accountAddress: session.walletAddress, - includeMetadata: true - }) - ]); - const rows: BalanceRow[] = [ - { - symbol: nativeSymbol, - balance: formatUnits(BigInt(nativeRes?.balance?.balance || '0'), nativeDecimals) - } - ]; - for (const b of tokenRes?.balances || []) { - const sym = b.contractInfo?.symbol || 'ERC20'; - const dec = b.contractInfo?.decimals ?? 18; - const bal = formatUnits(b.balance || '0', dec); - if (parseFloat(bal) > 0) rows.push({ symbol: sym, balance: bal }); - } - setBalances(rows); - } - } catch { - // balance fetch failure is non-fatal - } - setPhase('done'); - exit(); - } catch (e: unknown) { - if (e instanceof RelayCodeError && e.attemptsRemaining > 0) { - submittingRef.current = false; - setCode(''); - setCodeError( - `Incorrect code — ${e.attemptsRemaining} attempt${e.attemptsRemaining === 1 ? '' : 's'} remaining` - ); - setPhase('code'); - } else { - const msg = e instanceof Error ? e.message : String(e); - setError(msg); - setPhase('error'); - onError?.(msg); - exit(new Error(msg)); - } - } - })(); - } - }, [phase, code]); - - const regStatus: 'active' | 'done' | 'error' = - phase === 'registering' ? 'active' : phase === 'error' && !url ? 'error' : 'done'; - - const waitStatus: 'pending' | 'active' | 'done' | 'error' = - phase === 'registering' - ? 'pending' - : phase === 'waiting' - ? 'active' - : ['code', 'nocode', 'linking', 'done'].includes(phase) - ? 'done' - : phase === 'error' - ? 'error' - : 'pending'; - - const linkStatus: 'pending' | 'active' | 'done' | 'error' = [ - 'registering', - 'waiting', - 'code', - 'nocode' - ].includes(phase) - ? 'pending' - : phase === 'linking' - ? 'active' - : phase === 'done' - ? 'done' - : phase === 'error' - ? 'error' - : 'pending'; - - return ( - - {/* Only listen for keystrokes when we have a TTY. Mounting useInput() - in a non-TTY context triggers Ink's raw-mode setup, which throws - "Raw mode is not supported on the current process.stdin". */} - {tty && } - -
- - {/* Steps */} - - - - - {/* URL box — shown during waiting/code/nocode/linking */} - {url && ['waiting', 'code', 'nocode', 'linking'].includes(phase) && ( - - )} - - {/* Non-TTY: browser approved but can't enter code interactively */} - {phase === 'nocode' && ( - - - - Browser approved — enter your code: - - - run - {`polygon-agent wallet import --rid ${rid} --code <6-digit-code>`} - - - )} - - {/* Code entry — shown during code phase (TTY only) */} - {phase === 'code' && ( - - - Enter the 6-digit code shown in your browser - - {codeError && {codeError}} - - - )} - - {/* Linking spinner detail */} - {phase === 'linking' && ( - - decrypting session... - - )} - - {/* Balance fetching spinner */} - {phase === 'balances' && ( - - - - - fetching wallet balances... - - )} - - {/* Success */} - {phase === 'done' && ( - - - - Wallet ready - · - {name} - - - - - - {balances.length > 0 && ( - - {'─'.repeat(36)} - {balances.map((b) => ( - - - - {b.symbol} - - - {b.balance} - - ))} - - )} - polygon-agent balances - - )} - - {phase === 'error' && } - - ); -} - -// Ink UI for wallet list export interface WalletInfo { name: string; address: string; @@ -466,7 +17,7 @@ export function WalletListUI({ wallets }: { wallets: WalletInfo[] }) { {wallets.length === 0 ? ( No wallets found. Run: - polygon-agent wallet create + polygon-agent wallet login --email <addr> ) : ( diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 129d348..14fff8a 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -1,448 +1,98 @@ -import type { Argv, CommandModule } from 'yargs'; - -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; +import type { CommandModule } from 'yargs'; import React from 'react'; -import { - generateX25519Keypair, - bytesToHex, - hexToBytes, - computeCodeHash, - decryptSession -} from '@polygonlabs/agent-shared'; - import { getOmsClient } from '../lib/oms-client.ts'; -import { RelayClient } from '../lib/relay-client.ts'; import { - saveWalletSession, - loadWalletSession, - saveWalletRequest, - loadWalletRequest, - deleteWalletRequest, listWallets, deleteWallet, - sessionPayloadToWalletSession, saveOmsWalletPointer, loadOmsWalletPointer, deleteOmsWallet } from '../lib/storage.ts'; -import { normalizeChain, resolveNetwork, fileCoerce } from '../lib/utils.ts'; import { isTTY, inkRender } from '../ui/render.js'; -import { WalletCreateUI, WalletListUI, WalletAddressUI } from './wallet-ui.js'; +import { WalletListUI, WalletAddressUI } from './wallet-ui.js'; // Compact JSON output for AI agent consumers (single line, no stack traces) function jsonOut(data: Record): void { console.log(JSON.stringify(data)); } -// Base64 URL decode -function b64urlDecode(str: string): Buffer { - const norm = str.replace(/-/g, '+').replace(/_/g, '/'); - const pad = norm.length % 4 === 0 ? '' : '='.repeat(4 - (norm.length % 4)); - return Buffer.from(norm + pad, 'base64'); -} - -// Contracts always whitelisted in sessions. -// Spending limits (nativeLimit, usdcLimit, etc.) are enforced independently — -// whitelisting only permits the contract to be called, it does not grant token spend. -const AUTO_WHITELISTED_CONTRACTS = [ - '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432', // ERC-8004 IdentityRegistry - '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63', // ERC-8004 ReputationRegistry - '0xABAAd93EeE2a569cF0632f39B10A9f5D734777ca', // ValueForwarder (required for send native POL) - // NOTE: Trails deposit contract for swap --from POL is dynamic (changes per route/quote) - // and cannot be reliably pre-whitelisted here. - - // Polygon mainnet (chainId 137) — default tokens - '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', // USDC (native) - '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', // USDC.e (bridged) - - // Polygon mainnet (chainId 137) — yield vaults (always available for deposit) - '0x794a61358d6845594f94dc1db02a252b5b4814ad' // Aave V3 Pool (all markets) -]; - -// Additional contracts whitelisted when --defi flag is passed. -// Covers ERC-20s and yield vaults needed for swaps, bridges, and deposits. -const DEFI_CONTRACTS = [ - // Polygon mainnet (chainId 137) — additional ERC-20 token contracts - '0xc2132D05D31c914a87C6611C10748AEb04B58e8F', // USDT - '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', // WETH - - // Polygon mainnet (chainId 137) — additional yield vaults - '0x781fb7f6d845e3be129289833b04d43aa8558c42', // Morpho Compound USDC - '0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf', // Morpho Compound WETH - '0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2' // Morpho Compound POL -]; - -// Session permission options shared by create subcommands -interface SessionPermissionArgs { - 'native-limit'?: string; - 'usdc-limit'?: string; - 'usdt-limit'?: string; - 'token-limit'?: string[]; - contract?: string[]; - defi?: boolean; - 'usdc-to'?: string; - 'usdc-amount'?: string; - 'access-key'?: string; -} - -function addSessionPermissionOptions(yargs: Argv): Argv { - return yargs - .option('native-limit', { - type: 'string', - describe: 'POL spending limit' - }) - .option('usdc-limit', { - type: 'string', - describe: 'USDC spending limit' - }) - .option('usdt-limit', { - type: 'string', - describe: 'USDT spending limit' - }) - .option('token-limit', { - type: 'string', - array: true, - describe: 'Token limit, repeatable (e.g. WETH:0.1)' - }) - .option('contract', { - type: 'string', - array: true, - describe: 'Whitelist contract, repeatable' - }) - .option('defi', { - type: 'boolean', - describe: 'Whitelist DeFi contracts (swaps, yield vaults) in addition to defaults' - }) - .option('usdc-to', { - type: 'string', - describe: 'One-off USDC transfer recipient' - }) - .option('usdc-amount', { - type: 'string', - describe: 'One-off USDC transfer amount' - }) - .option('access-key', { - type: 'string', - describe: 'Project access key' - }); -} - -function applySessionPermissionParams(url: URL, argv: SessionPermissionArgs): void { - const usdcTo = argv['usdc-to']; - const usdcAmount = argv['usdc-amount']; - if (usdcTo || usdcAmount) { - if (!usdcTo || !usdcAmount) throw new Error('Must provide both --usdc-to and --usdc-amount'); - url.searchParams.set('erc20', 'usdc'); - url.searchParams.set('erc20To', usdcTo); - url.searchParams.set('erc20Amount', usdcAmount); - } - - const nativeLimit = argv['native-limit']; - const usdcLimit = argv['usdc-limit']; - const usdtLimit = argv['usdt-limit']; - if (nativeLimit) url.searchParams.set('nativeLimit', nativeLimit); - if (usdcLimit) url.searchParams.set('usdcLimit', usdcLimit); - if (usdtLimit) url.searchParams.set('usdtLimit', usdtLimit); - - const tokenLimits = (argv['token-limit'] || []) - .map((s) => String(s || '').trim()) - .filter(Boolean); - if (tokenLimits.length) url.searchParams.set('tokenLimits', tokenLimits.join(',')); - - const baseContracts = argv.defi - ? [...AUTO_WHITELISTED_CONTRACTS, ...DEFI_CONTRACTS] - : AUTO_WHITELISTED_CONTRACTS; - const userContracts = (argv.contract || []).map((s) => String(s || '').trim()).filter(Boolean); - const allContracts = [...new Set([...baseContracts, ...userContracts])]; - url.searchParams.set('contracts', allContracts.join(',')); -} - -// Shared helper: decrypt ciphertext and save wallet session -async function decryptAndSaveSession( - name: string, - ciphertext: string, - rid: string -): Promise<{ walletAddress: string; chainId: number; chain: string }> { - const request = await loadWalletRequest(rid); - if (!request) { - throw new Error(`Request not found: ${rid}`); - } - - const chain = normalizeChain(request.chain || 'polygon'); - - const exp = Date.parse(request.expiresAt); - if (Number.isFinite(exp) && Date.now() > exp) { - throw new Error( - `Request rid=${rid} is expired (expiresAt=${request.expiresAt}). Create a new request.` - ); - } - - const publicKey = b64urlDecode(request.publicKeyB64u); - const privateKey = b64urlDecode(request.privateKeyB64u); - const ciphertextBuf = b64urlDecode(ciphertext); - - // Dynamic import to avoid bundling sealedbox if not needed - const sealedbox = (await import('tweetnacl-sealedbox-js')).default; - const decrypted = sealedbox.open(ciphertextBuf, publicKey, privateKey); - if (!decrypted) { - throw new Error('Failed to decrypt ciphertext'); - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let payload: any; - try { - const { jsonRevivers } = await import('@0xsequence/dapp-client'); - payload = JSON.parse(Buffer.from(decrypted).toString('utf8'), jsonRevivers); - } catch { - payload = JSON.parse(Buffer.from(decrypted).toString('utf8')); - } - - const walletAddress = payload.walletAddress; - const chainId = payload.chainId; - const explicitSession = payload.explicitSession; - const implicit = payload.implicit; - - if (!walletAddress || typeof walletAddress !== 'string') { - throw new Error('Missing walletAddress in payload'); - } - if (!chainId || typeof chainId !== 'number') { - throw new Error('Missing chainId in payload'); - } - - const net = resolveNetwork(chain); - if (Number(net.chainId) !== Number(chainId)) { - throw new Error( - `Chain mismatch: request chain=${chain} (chainId=${net.chainId}) but payload chainId=${chainId}` - ); - } - - if (!explicitSession || typeof explicitSession !== 'object') { - throw new Error('Missing explicitSession in payload'); - } - if (!explicitSession.pk || typeof explicitSession.pk !== 'string') { - throw new Error('Missing explicitSession.pk in payload'); - } - if (!implicit?.pk || !implicit?.attestation || !implicit?.identitySignature) { - throw new Error('Missing implicit session in payload'); - } - - const implicitMeta = { - guard: implicit.guard, - loginMethod: implicit.loginMethod, - userEmail: implicit.userEmail - }; - - const { jsonReplacers } = await import('@0xsequence/dapp-client'); - await saveWalletSession(name, { - walletAddress, - chainId, - chain, - projectAccessKey: request.projectAccessKey || null, - explicitSession: JSON.stringify(explicitSession, jsonReplacers), - sessionPk: explicitSession.pk, - implicitPk: implicit.pk, - implicitMeta: JSON.stringify(implicitMeta, jsonReplacers), - implicitAttestation: JSON.stringify(implicit.attestation, jsonReplacers), - implicitIdentitySig: JSON.stringify(implicit.identitySignature, jsonReplacers), - createdAt: new Date().toISOString() +// Read a line from stdin (for interactive OTP entry). +function readLine(promptText: string): Promise { + return new Promise((resolve) => { + process.stderr.write(promptText); + const onData = (chunk: Buffer) => { + process.stdin.off('data', onData); + process.stdin.pause(); + resolve(chunk.toString('utf8').trim()); + }; + process.stdin.resume(); + process.stdin.on('data', onData); }); - - return { walletAddress, chainId, chain }; } -// --- Subcommand: wallet create --- -interface CreateArgs extends SessionPermissionArgs { +// --- Subcommand: wallet login (Sequence V3 email auth) --- +interface LoginArgs { name: string; - chain: string; - 'print-url': boolean; - timeout: number; -} - -async function handleCreate(argv: CreateArgs): Promise { - if (argv['print-url']) { - await handleCreateNoWait(argv); - } else { - await handleCreateAndWait(argv); - } + email: string; + code?: string; } -async function handleCreateNoWait(argv: CreateArgs): Promise { +async function handleLogin(argv: LoginArgs): Promise { const name = argv.name; - const chainArg = argv.chain; + const email = argv.email; try { - const chain = normalizeChain(chainArg); - const connectorBase = ( - process.env.SEQUENCE_ECOSYSTEM_CONNECTOR_URL || 'https://agentconnect.polygon.technology' - ).replace(/\/$/, ''); - - const { secretKey: cliSk, publicKey: cliPk } = generateX25519Keypair(); - const cliPkHex = bytesToHex(cliPk); - const cliSkHex = bytesToHex(cliSk); + if (!email) throw new Error('--email is required'); - const relay = new RelayClient(connectorBase); - const rid = await relay.createRequest(cliPkHex); + const oms = getOmsClient(name); - const projectAccessKey = argv['access-key'] || process.env.SEQUENCE_PROJECT_ACCESS_KEY; - const expiresAt = new Date(Date.now() + 10 * 60 * 1000).toISOString(); + // startEmailAuth + completeEmailAuth must happen in the same process — the + // pending-auth commitment is held in memory, not persisted. So we send the + // OTP, then obtain the code (either --code or an interactive stdin prompt). + await oms.wallet.startEmailAuth({ email }); - await saveWalletRequest(rid, { - rid, - walletName: name, - chain, - createdAt: new Date().toISOString(), - expiresAt, - publicKeyB64u: '', - privateKeyB64u: '', - projectAccessKey: projectAccessKey || null, - cliSkHex - }); + let code = argv.code; + if (!code) { + process.stderr.write(`OTP sent to ${email}. `); + code = await readLine('Enter the 6-digit code: '); + } + if (!code) throw new Error('No OTP code provided'); - const url = new URL(`${connectorBase}/link`); - url.searchParams.set('rid', rid); - url.searchParams.set('wallet', name); - url.searchParams.set('chain', chain); - if (projectAccessKey) url.searchParams.set('accessKey', projectAccessKey); - applySessionPermissionParams(url, argv); + const result = await oms.wallet.completeEmailAuth({ code }); + const walletAddress = result.walletAddress; - const fullUrl = url.toString(); - jsonOut({ - ok: true, - rid, - approvalUrl: fullUrl, - next: `polygon-agent wallet import --rid ${rid} --code <6-digit-code>` + await saveOmsWalletPointer(name, { + walletAddress, + loginMethod: 'email', + email, + createdAt: new Date().toISOString() }); + + jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'email' }); } catch (error) { jsonOut({ ok: false, error: (error as Error).message }); process.exit(1); } } -async function handleCreateAndWait(argv: CreateArgs): Promise { - const name = argv.name; - const chain = argv.chain; - const tty = isTTY(); - let failed = false; - try { - // Always use Ink — renders to stdout (TTY) or stderr (non-TTY, keeps stdout clean for JSON) - await inkRender( - React.createElement(WalletCreateUI, { - name, - chain, - timeout: argv.timeout, - argv, - tty, - onComplete: (walletAddress: string, chainId: number, chainName: string) => { - if (!tty) { - jsonOut({ ok: true, walletAddress, chainId, chain: chainName }); - } - }, - onError: (message: string) => { - if (!tty) jsonOut({ ok: false, error: message }); - } - }), - { useStderr: !tty } - ); - } catch { - failed = true; - } - if (failed) process.exit(1); -} - -// --- Subcommand: wallet import (alias: start-session) --- -interface ImportArgs { +// --- Subcommand: wallet logout --- +interface LogoutArgs { name: string; - ciphertext?: string; - rid?: string; - code?: string; } -async function handleImport(argv: ImportArgs): Promise { +async function handleLogout(argv: LogoutArgs): Promise { const name = argv.name; - try { - // Relay-based code import - if (argv.code) { - const code = argv.code.trim(); - let rid = argv.rid; - - if (!rid) { - // Find the most recent v2 request for this wallet - const requestFiles = fs - .readdirSync(path.join(os.homedir(), '.polygon-agent', 'requests')) - .filter((f) => f.endsWith('.json')) - .sort() - .reverse(); - - for (const file of requestFiles) { - const requestRid = file.replace('.json', ''); - const request = await loadWalletRequest(requestRid); - if (request && request.walletName === name && request.cliSkHex) { - rid = requestRid; - break; - } - } - if (!rid) - throw new Error( - `No pending relay request for wallet '${name}'. Run: polygon-agent wallet create --print-url` - ); - } - - const request = await loadWalletRequest(rid!); - if (!request?.cliSkHex) throw new Error(`Request ${rid} is not a relay-based request`); - - const connectorBase = ( - process.env.SEQUENCE_ECOSYSTEM_CONNECTOR_URL || 'https://agentconnect.polygon.technology' - ).replace(/\/$/, ''); - - const relay = new RelayClient(connectorBase); - const cliSk = hexToBytes(request.cliSkHex); - const codeHashHex = bytesToHex(computeCodeHash(rid!, code)); - const encrypted = await relay.retrieve(rid!, codeHashHex); - const payload = decryptSession(encrypted, cliSk, code, rid!); - - const session = sessionPayloadToWalletSession(payload); - await saveWalletSession(name, session); - await deleteWalletRequest(rid!); - - jsonOut({ - ok: true, - walletAddress: session.walletAddress, - chain: session.chain, - chainId: session.chainId - }); - return; - } - - // Legacy ciphertext-based import (backward compat) - if (!argv.ciphertext) { - throw new Error('Provide either --code (relay mode) or --ciphertext (legacy mode)'); - } - const ciphertext = fileCoerce(argv.ciphertext); - let rid = argv.rid; - - if (!rid) { - const requestFiles = fs - .readdirSync(path.join(os.homedir(), '.polygon-agent', 'requests')) - .filter((f) => f.endsWith('.json')); - - for (const file of requestFiles) { - const requestRid = file.replace('.json', ''); - const request = await loadWalletRequest(requestRid); - if (request && request.walletName === name) { - rid = requestRid; - break; - } - } - if (!rid) throw new Error(`No matching request found for wallet '${name}'`); + try { + const oms = getOmsClient(name); + await oms.wallet.signOut(); + } catch { + // signOut may fail if no session/config — proceed to delete local state anyway } - - const { walletAddress, chainId, chain } = await decryptAndSaveSession(name, ciphertext, rid); - jsonOut({ ok: true, walletAddress, chainId, chain }); + await deleteOmsWallet(name); + jsonOut({ ok: true, walletName: name, loggedOut: true }); } catch (error) { jsonOut({ ok: false, error: (error as Error).message }); process.exit(1); @@ -462,26 +112,15 @@ async function handleList(): Promise { loginMethod?: string; }> = []; for (const name of wallets) { - const session = await loadWalletSession(name); - // A legacy WalletSession has a `chainId`; an OMS pointer has `loginMethod: 'email'`. - if (session && 'chainId' in session && typeof session.chainId === 'number') { + const pointer = await loadOmsWalletPointer(name); + if (pointer) { details.push({ name, - address: session.walletAddress, - chain: session.chain, - chainId: session.chainId + address: pointer.walletAddress, + chain: 'polygon', + chainId: 137, + loginMethod: pointer.loginMethod }); - } else { - const pointer = await loadOmsWalletPointer(name); - if (pointer) { - details.push({ - name, - address: pointer.walletAddress, - chain: 'polygon', - chainId: 137, - loginMethod: pointer.loginMethod - }); - } } } @@ -505,38 +144,29 @@ async function handleAddress(argv: AddressArgs): Promise { const name = argv.name; try { - const session = await loadWalletSession(name); - if (session && 'chainId' in session && typeof session.chainId === 'number') { - if (!isTTY()) { - jsonOut({ - ok: true, - walletAddress: session.walletAddress, - chain: session.chain, - chainId: session.chainId - }); - } else { - await inkRender( - React.createElement(WalletAddressUI, { - name, - address: session.walletAddress, - chain: session.chain, - chainId: session.chainId - }) - ); - } - return; + const pointer = await loadOmsWalletPointer(name); + if (!pointer) { + throw new Error(`Wallet not found: ${name}. Run: polygon-agent wallet login --email `); } - // OMS pointer fallback - const pointer = await loadOmsWalletPointer(name); - if (!pointer) throw new Error(`Wallet not found: ${name}`); - jsonOut({ - ok: true, - walletAddress: pointer.walletAddress, - chain: 'polygon', - chainId: 137, - loginMethod: pointer.loginMethod - }); + if (!isTTY()) { + jsonOut({ + ok: true, + walletAddress: pointer.walletAddress, + chain: 'polygon', + chainId: 137, + loginMethod: pointer.loginMethod + }); + } else { + await inkRender( + React.createElement(WalletAddressUI, { + name, + address: pointer.walletAddress, + chain: 'polygon', + chainId: 137 + }) + ); + } } catch (error) { jsonOut({ ok: false, error: (error as Error).message }); process.exit(1); @@ -552,6 +182,9 @@ async function handleRemove(argv: RemoveArgs): Promise { const name = argv.name; try { + // Remove OMS session state (storage + credential key) if present, plus the + // wallet pointer file. + await deleteOmsWallet(name); const deleted = await deleteWallet(name); if (!deleted) { @@ -565,173 +198,12 @@ async function handleRemove(argv: RemoveArgs): Promise { } } -// --- Subcommand: wallet login (OMS / Sequence V3 email auth) --- -interface LoginArgs { - name: string; - email: string; - code?: string; -} - -// Read a line from stdin (for interactive OTP entry). -function readLine(promptText: string): Promise { - return new Promise((resolve) => { - process.stderr.write(promptText); - const onData = (chunk: Buffer) => { - process.stdin.off('data', onData); - process.stdin.pause(); - resolve(chunk.toString('utf8').trim()); - }; - process.stdin.resume(); - process.stdin.on('data', onData); - }); -} - -async function handleLogin(argv: LoginArgs): Promise { - const name = argv.name; - const email = argv.email; - - try { - if (!email) throw new Error('--email is required'); - - const oms = getOmsClient(name); - - // startEmailAuth + completeEmailAuth must happen in the same process — the - // pending-auth commitment is held in memory, not persisted. So we send the - // OTP, then obtain the code (either --code or an interactive stdin prompt). - await oms.wallet.startEmailAuth({ email }); - - // The OTP must be entered in THIS process (the pending-auth commitment is - // in-memory only). Obtain it from --code, else prompt on TTY, else read one - // line from stdin (so `echo 123456 | wallet login ...` works in automation). - let code = argv.code; - if (!code) { - process.stderr.write(`OTP sent to ${email}. `); - code = await readLine('Enter the 6-digit code: '); - } - if (!code) throw new Error('No OTP code provided'); - - const result = await oms.wallet.completeEmailAuth({ code }); - const walletAddress = result.walletAddress; - - await saveOmsWalletPointer(name, { - walletAddress, - loginMethod: 'email', - email, - createdAt: new Date().toISOString() - }); - - jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'email' }); - } catch (error) { - jsonOut({ ok: false, error: (error as Error).message }); - process.exit(1); - } -} - -// --- Subcommand: wallet logout (OMS) --- -interface LogoutArgs { - name: string; -} - -async function handleLogout(argv: LogoutArgs): Promise { - const name = argv.name; - try { - try { - const oms = getOmsClient(name); - await oms.wallet.signOut(); - } catch { - // signOut may fail if no session/config — proceed to delete local state anyway - } - await deleteOmsWallet(name); - jsonOut({ ok: true, walletName: name, loggedOut: true }); - } catch (error) { - jsonOut({ ok: false, error: (error as Error).message }); - process.exit(1); - } -} - // --- Main wallet command --- export const walletCommand: CommandModule = { command: 'wallet', - describe: 'Manage wallets (create, import, list, address, remove)', + describe: 'Manage wallets (login, logout, list, address, remove)', builder: (yargs) => yargs - .command({ - command: 'create', - describe: 'Create wallet (auto-waits for approval)', - builder: (y) => - addSessionPermissionOptions( - y - .option('name', { - type: 'string', - default: 'main', - describe: 'Wallet name' - }) - .option('chain', { - type: 'string', - default: 'polygon', - describe: 'Chain name or ID' - }) - .option('print-url', { - type: 'boolean', - default: false, - describe: 'Print approval URL and exit (non-interactive)' - }) - .option('timeout', { - type: 'number', - default: 300, - describe: 'Seconds to wait for approval before timing out' - }) - ), - handler: (argv) => handleCreate(argv as unknown as CreateArgs) - }) - .command({ - command: 'import', - describe: 'Import session from relay code or legacy ciphertext', - builder: (y) => - y - .option('name', { - type: 'string', - default: 'main', - describe: 'Wallet name' - }) - .option('code', { - type: 'string', - describe: '6-digit code from browser (for relay-based sessions)' - }) - .option('ciphertext', { - type: 'string', - describe: 'Encrypted blob (legacy mode, or use @file)' - }) - .option('rid', { - type: 'string', - describe: 'Request ID (auto-detected if omitted)' - }), - handler: (argv) => handleImport(argv as unknown as ImportArgs) - }) - .command({ - command: 'start-session', - describe: false, - builder: (y) => - y - .option('name', { - type: 'string', - default: 'main', - describe: 'Wallet name' - }) - .option('code', { - type: 'string', - describe: '6-digit code from browser (for relay-based sessions)' - }) - .option('ciphertext', { - type: 'string', - describe: 'Encrypted session blob' - }) - .option('rid', { - type: 'string', - describe: 'Request ID' - }), - handler: (argv) => handleImport(argv as unknown as ImportArgs) - }) .command({ command: 'login', describe: 'Log in with email (Sequence V3 embedded wallet)', diff --git a/packages/polygon-agent-cli/src/index.ts b/packages/polygon-agent-cli/src/index.ts index 4f20ca4..cc7b4f4 100644 --- a/packages/polygon-agent-cli/src/index.ts +++ b/packages/polygon-agent-cli/src/index.ts @@ -23,13 +23,11 @@ import { import { polymarketCommand } from './commands/polymarket.ts'; import { setupCommand } from './commands/setup.ts'; import { walletCommand } from './commands/wallet.ts'; -import { bootstrapAccessKey, bootstrapOmsConfig } from './lib/storage.ts'; +import { bootstrapOmsConfig } from './lib/storage.ts'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '..', 'package.json'), 'utf8')); -// Auto-load access key from ~/.polygon-agent/builder.json if not already in env -bootstrapAccessKey(); // Auto-load OMS (Sequence V3) credentials from builder.json if not already in env bootstrapOmsConfig(); diff --git a/packages/polygon-agent-cli/src/lib/dapp-client.ts b/packages/polygon-agent-cli/src/lib/dapp-client.ts deleted file mode 100644 index 6c342ec..0000000 --- a/packages/polygon-agent-cli/src/lib/dapp-client.ts +++ /dev/null @@ -1,414 +0,0 @@ -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; - -import type { CliState } from '@0xsequence/dapp-client-cli/state'; - -import { DappClient, TransportMode, jsonRevivers } from '@0xsequence/dapp-client'; -import { isNativeFeeOption } from '@0xsequence/dapp-client-cli/fee-utils'; -import { StateManager } from '@0xsequence/dapp-client-cli/state'; -import { FileSequenceStorage, FileSessionStorage } from '@0xsequence/dapp-client-cli/storage'; - -import { loadWalletSession } from './storage.ts'; - -const STORAGE_DIR = path.join(os.homedir(), '.polygon-agent'); -const DEFAULT_WALLET_URL = 'https://acme-wallet.ecosystem-demo.xyz'; - -interface Transaction { - to: `0x${string}` | string; - value?: bigint | number; - data: string; -} - -interface DappClientTxParams { - walletName: string; - chainId: number; - transactions: Transaction[]; - broadcast: boolean; - preferNativeFee?: boolean; -} - -interface DappClientTxResult { - walletAddress: string; - txHash?: string; - dryRun?: boolean; - feeOptionUsed?: unknown; -} - -// Install fetch logger for debugging network issues -let fetchLoggerInstalled = false; -function installFetchLogger(): void { - if (fetchLoggerInstalled) return; - const enabled = ['1', 'true', 'yes'].includes( - String( - process.env.SEQ_ECO_DEBUG_FETCH || process.env.POLYGON_AGENT_DEBUG_FETCH || '' - ).toLowerCase() - ); - if (!enabled) return; - fetchLoggerInstalled = true; - - const logPath = - process.env.POLYGON_AGENT_FETCH_LOG_PATH || path.join(STORAGE_DIR, 'fetch-debug.log'); - fs.mkdirSync(path.dirname(logPath), { recursive: true }); - - const origFetch = globalThis.fetch; - if (typeof origFetch !== 'function') return; - - const redact = (s: string) => String(s).slice(0, 40000); - const log = (line: string) => - fs.appendFileSync(logPath, `[${new Date().toISOString()}] ${line}\n`, 'utf8'); - - globalThis.fetch = async (input: string | URL | Request, init: RequestInit = {}) => { - const url = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url; - const method = init?.method || 'GET'; - const bodyPreview = init?.body ? redact(String(init.body)) : ''; - log(`→ ${method} ${url}`); - if (bodyPreview) log(` req.body=${bodyPreview}`); - try { - const res = await origFetch(input, init); - let resText = ''; - try { - resText = redact(await res.clone().text()); - } catch (e) { - resText = `[unreadable: ${(e as Error)?.message || e}]`; - } - log(`← ${res.status} ${method} ${url}`); - if (resText) log(` res.body=${resText}`); - return res; - } catch (e) { - log(`✖ fetch threw: ${method} ${url} :: ${(e as Error)?.stack || e}`); - throw e; - } - }; - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - if ((globalThis as any).window) (globalThis as any).window.fetch = globalThis.fetch; - log(`fetch logger enabled; logPath=${logPath}`); -} - -function getPassphrase(): string { - if (process.env.DAPP_CLIENT_CLI_PASSPHRASE) { - return process.env.DAPP_CLIENT_CLI_PASSPHRASE; - } - - const keyPath = path.join(STORAGE_DIR, '.encryption-key'); - if (!fs.existsSync(keyPath)) { - throw new Error( - 'Missing ~/.polygon-agent/.encryption-key — run "polygon-agent wallet create" first' - ); - } - - const keyBuf = fs.readFileSync(keyPath); - return keyBuf.slice(0, 16).toString('hex'); -} - -function statePathFor(walletName: string): string { - const dir = path.join(STORAGE_DIR, 'state', 'dapp-client-cli'); - fs.mkdirSync(dir, { recursive: true, mode: 0o700 }); - return path.join(dir, `${walletName}.state.enc`); -} - -async function syncStateAndGetStorage({ - walletName, - chainId -}: { - walletName: string; - chainId: number; -}) { - const session = await loadWalletSession(walletName); - if (!session) { - throw new Error(`Wallet not found: ${walletName}`); - } - - const walletAddress = session.walletAddress as `0x${string}`; - - const explicitRaw = session.explicitSession; - if (!explicitRaw) { - throw new Error('Missing explicit session. Re-run wallet start-session.'); - } - - const explicitSession = JSON.parse(explicitRaw, jsonRevivers); - if (!explicitSession?.pk) { - throw new Error('Stored explicit session is missing pk; re-link wallet'); - } - - const deadline = explicitSession?.config?.deadline; - if (deadline) { - const deadlineSec = typeof deadline === 'bigint' ? Number(deadline) : Number(deadline); - const nowSec = Math.floor(Date.now() / 1000); - if (Number.isFinite(deadlineSec) && deadlineSec <= nowSec) { - throw new Error( - `Explicit session has expired (deadline ${deadlineSec}). Re-link wallet to mint a fresh session.` - ); - } - } - - const passphrase = getPassphrase(); - const statePath = statePathFor(walletName); - - const stateManager = new StateManager(statePath, passphrase); - const storage = new FileSequenceStorage(stateManager, { - suppressPendingRedirect: true - }); - const sessionStorage = new FileSessionStorage(stateManager); - - const walletUrl = process.env.SEQUENCE_ECOSYSTEM_WALLET_URL || DEFAULT_WALLET_URL; - const origin = process.env.SEQUENCE_DAPP_ORIGIN || 'https://agentconnect.polygon.technology'; - const projectAccessKey = session.projectAccessKey || process.env.SEQUENCE_PROJECT_ACCESS_KEY; - if (!projectAccessKey) - throw new Error('Missing SEQUENCE_PROJECT_ACCESS_KEY (not in wallet session or environment)'); - - const keymachineUrl = process.env.SEQUENCE_KEYMACHINE_URL || 'https://keymachine.sequence.app'; - const nodesUrl = process.env.SEQUENCE_NODES_URL || 'https://nodes.sequence.app/{network}'; - const relayerUrl = process.env.SEQUENCE_RELAYER_URL || 'https://{network}-relayer.sequence.app'; - - await stateManager.update((state: CliState) => { - state.config.walletUrl = walletUrl; - state.config.origin = origin; - state.config.projectAccessKey = projectAccessKey; - state.config.keymachineUrl = keymachineUrl; - state.config.nodesUrl = nodesUrl; - state.config.relayerUrl = relayerUrl; - state.config.transportMode = 'redirect'; - - state.storage.pendingRedirect = false; - state.storage.tempSessionPk = null; - state.storage.pendingRequest = null; - state.storage.explicitSessions = []; - state.storage.implicitSession = null; - - state.storage.sessionlessConnection = { walletAddress }; - state.storage.sessionlessConnectionSnapshot = { walletAddress }; - }); - - const implicitMeta = session.implicitMeta ? JSON.parse(session.implicitMeta, jsonRevivers) : {}; - - // guard is stored as a JSON string (serialized with jsonReplacers) — parse it back - // so moduleAddresses is a proper Map<> rather than a plain object - const guardRaw = implicitMeta.guard; - const guard = - guardRaw && typeof guardRaw === 'string' - ? JSON.parse(guardRaw, jsonRevivers) - : (guardRaw ?? undefined); - - await storage.saveExplicitSession({ - pk: explicitSession.pk as `0x${string}`, - walletAddress, - chainId, - loginMethod: implicitMeta.loginMethod ?? explicitSession.loginMethod, - userEmail: implicitMeta.userEmail ?? explicitSession.userEmail, - guard - }); - - await stateManager.update((state: CliState) => { - state.storage.sessionlessConnection = { - walletAddress, - loginMethod: implicitMeta.loginMethod ?? explicitSession.loginMethod, - userEmail: implicitMeta.userEmail ?? explicitSession.userEmail, - guard - }; - state.storage.sessionlessConnectionSnapshot = { - walletAddress, - loginMethod: implicitMeta.loginMethod ?? explicitSession.loginMethod, - userEmail: implicitMeta.userEmail ?? explicitSession.userEmail, - guard - }; - }); - - if (session.implicitPk && session.implicitAttestation && session.implicitIdentitySig) { - const implicitAttestation = JSON.parse(session.implicitAttestation, jsonRevivers); - const implicitIdentitySignature = JSON.parse(session.implicitIdentitySig, jsonRevivers); - await storage.saveImplicitSession({ - pk: session.implicitPk as `0x${string}`, - walletAddress, - chainId, - attestation: implicitAttestation, - identitySignature: implicitIdentitySignature - }); - } - - await storage.setPendingRedirectRequest(false); - await storage.getAndClearPendingRequest(); - await storage.getAndClearTempSessionPk(); - - await sessionStorage.removeItem(''); - - return { - storage, - sessionStorage, - walletAddress, - walletUrl, - origin, - projectAccessKey, - keymachineUrl, - nodesUrl, - relayerUrl - }; -} - -export async function runDappClientTx({ - walletName, - chainId, - transactions, - broadcast, - preferNativeFee -}: DappClientTxParams): Promise { - const { - storage, - sessionStorage, - walletAddress, - walletUrl, - origin, - projectAccessKey, - keymachineUrl, - nodesUrl, - relayerUrl - } = await syncStateAndGetStorage({ walletName, chainId }); - - // Node.js polyfill - // eslint-disable-next-line @typescript-eslint/no-explicit-any - if (!(globalThis as any).window) (globalThis as any).window = { fetch: globalThis.fetch }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - else if (!(globalThis as any).window.fetch) (globalThis as any).window.fetch = globalThis.fetch; - - installFetchLogger(); - - const client = new DappClient(walletUrl, origin, projectAccessKey, { - transportMode: TransportMode.REDIRECT, - keymachineUrl, - nodesUrl, - relayerUrl, - sequenceStorage: storage, - sequenceSessionStorage: sessionStorage, - canUseIndexedDb: false - }); - - await client.initialize(); - if (!client.isInitialized) throw new Error('Client not initialized'); - - if (!broadcast) { - const bigintReplacer = (_k: string, v: unknown) => (typeof v === 'bigint' ? v.toString() : v); - console.log( - JSON.stringify( - { ok: true, dryRun: true, walletName, walletAddress, transactions }, - bigintReplacer, - 2 - ) - ); - return { walletAddress, dryRun: true }; - } - - const debugFee = ['1', 'true', 'yes'].includes( - String( - process.env.SEQ_ECO_DEBUG_FEE_OPTIONS || process.env.POLYGON_AGENT_DEBUG_FEE || '' - ).toLowerCase() - ); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let feeOpt: any; - - if (preferNativeFee) { - try { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const feeOptions = await client.getFeeOptions(chainId, transactions as any); - if (debugFee) console.error(JSON.stringify({ debug: 'feeOptions', feeOptions }, null, 2)); - const nativeOpt = (feeOptions || []).find(isNativeFeeOption); - if (nativeOpt) feeOpt = nativeOpt; - } catch { - // Fall through to ERC20 fee path - } - } - - if (!feeOpt) { - try { - const feeTokens = await client.getFeeTokens(chainId); - if (debugFee) console.error(JSON.stringify({ debug: 'feeTokens', feeTokens }, null, 2)); - - const paymentAddress = feeTokens?.paymentAddress; - const tokens = Array.isArray(feeTokens?.tokens) ? feeTokens.tokens : []; - - const USDC_POLYGON = '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359'; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let erc20Token: any = null; - if (tokens.length > 0) { - try { - const { SequenceIndexer } = await import('@0xsequence/indexer'); - const chainIndexerUrl = `https://polygon-indexer.sequence.app`; - const indexerKey = process.env.SEQUENCE_INDEXER_ACCESS_KEY || projectAccessKey; - const indexer = new SequenceIndexer(chainIndexerUrl, indexerKey); - const balRes = await indexer.getTokenBalances({ - accountAddress: walletAddress, - includeMetadata: false - }); - const heldAddresses = new Set( - (balRes?.balances || []).map((b: { contractAddress?: string }) => - b.contractAddress?.toLowerCase() - ) - ); - const heldFeeTokens = tokens.filter( - (t: { contractAddress?: string }) => - t?.contractAddress && heldAddresses.has(t.contractAddress.toLowerCase()) - ); - erc20Token = - heldFeeTokens.find( - (t: { contractAddress?: string }) => t.contractAddress?.toLowerCase() === USDC_POLYGON - ) || - heldFeeTokens.find((t: { symbol?: string }) => t?.symbol === 'USDC') || - heldFeeTokens[0] || - null; - } catch { - // Indexer unavailable — fall back to symbol matching - } - if (!erc20Token) { - erc20Token = - tokens.find( - (t: { contractAddress?: string }) => - t?.contractAddress?.toLowerCase() === USDC_POLYGON - ) || - tokens.find( - (t: { contractAddress?: string; symbol?: string }) => - t?.contractAddress && t?.symbol === 'USDC' - ) || - tokens.find((t: { contractAddress?: string }) => t?.contractAddress) || - null; - } - } - - if (paymentAddress && erc20Token) { - const decimals = typeof erc20Token.decimals === 'number' ? erc20Token.decimals : 6; - // 0.1 token units as fee cap (e.g. 0.1 USDC = 100000 for 6 decimals) - const feeValue = decimals >= 1 ? 10 ** (decimals - 1) : 1; - feeOpt = { - token: erc20Token, - to: paymentAddress, - value: String(feeValue), - gasLimit: 0 - }; - if (debugFee) console.error(JSON.stringify({ debug: 'selectedFee', feeOpt }, null, 2)); - } - } catch (e) { - if (debugFee) - console.error( - JSON.stringify({ debug: 'getFeeTokens failed', error: (e as Error)?.message }, null, 2) - ); - } - } - - if (!feeOpt) { - try { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const feeOptions = await client.getFeeOptions(chainId, transactions as any); - feeOpt = feeOptions?.[0]; - } catch (e) { - throw new Error( - `Unable to pay gas: wallet has no POL (native gas) and no usable fee token. ` + - `Fund with POL: polygon-agent fund, or enable USDC gas: polygon-agent wallet create --usdc-limit 5. ` + - `Technical: ${(e as Error)?.message}` - ); - } - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const txHash = await client.sendTransaction(chainId, transactions as any, feeOpt); - return { walletAddress, txHash, feeOptionUsed: feeOpt }; -} diff --git a/packages/polygon-agent-cli/src/lib/relay-client.ts b/packages/polygon-agent-cli/src/lib/relay-client.ts deleted file mode 100644 index c117a28..0000000 --- a/packages/polygon-agent-cli/src/lib/relay-client.ts +++ /dev/null @@ -1,98 +0,0 @@ -// packages/polygon-agent-cli/src/lib/relay-client.ts -import type { - EncryptedPayload, - RelayCreateResponse, - RelayStatusResponse -} from '@polygonlabs/agent-shared'; - -export class RelayClient { - private baseUrl: string; - - constructor(baseUrl: string) { - this.baseUrl = baseUrl; - } - - private cfAccessHeaders(): Record { - // Service token auth (CI / machine clients) - const id = process.env.CF_ACCESS_CLIENT_ID; - const secret = process.env.CF_ACCESS_CLIENT_SECRET; - if (id && secret) { - return { 'CF-Access-Client-Id': id, 'CF-Access-Client-Secret': secret }; - } - // User JWT from `cloudflared access token --app ` - const token = process.env.CF_ACCESS_TOKEN; - if (token) { - return { 'CF-Access-Token': token }; - } - return {}; - } - - /** Register CLI public key with relay. Returns request_id. */ - async createRequest(cliPkHex: string): Promise { - const res = await fetch(`${this.baseUrl}/api/relay/request`, { - method: 'POST', - headers: { 'Content-Type': 'application/json', ...this.cfAccessHeaders() }, - body: JSON.stringify({ cli_pk_hex: cliPkHex }) - }); - if (!res.ok) { - const text = await res.text(); - throw new Error(`Relay createRequest failed (${res.status}): ${text}`); - } - const data = (await res.json()) as RelayCreateResponse; - return data.request_id; - } - - /** Poll until status is "ready" or timeout. Calls onPolling each interval. */ - async waitForReady( - requestId: string, - timeoutMs = 300_000, - intervalMs = 2_000, - onPolling?: () => void - ): Promise { - const deadline = Date.now() + timeoutMs; - while (Date.now() < deadline) { - const res = await fetch(`${this.baseUrl}/api/relay/status/${requestId}`, { - headers: this.cfAccessHeaders() - }); - if (res.status === 404) throw new Error('Relay request not found (expired or invalid)'); - if (!res.ok) throw new Error(`Relay status check failed (${res.status})`); - const data = (await res.json()) as RelayStatusResponse; - if (data.status === 'ready') return; - onPolling?.(); - await new Promise((r) => setTimeout(r, intervalMs)); - } - throw new Error('Timed out waiting for wallet approval (5 minutes)'); - } - - /** Submit code hash and retrieve encrypted payload if correct. */ - async retrieve(requestId: string, codeHashHex: string): Promise { - const res = await fetch(`${this.baseUrl}/api/relay/retrieve/${requestId}`, { - method: 'POST', - headers: { 'Content-Type': 'application/json', ...this.cfAccessHeaders() }, - body: JSON.stringify({ code_hash_hex: codeHashHex }) - }); - - if (res.status === 403) { - const data = (await res.json()) as { attempts_remaining: number }; - throw new RelayCodeError( - `Wrong code. ${data.attempts_remaining} attempt(s) remaining.`, - data.attempts_remaining - ); - } - if (res.status === 410) - throw new RelayCodeError('Too many wrong attempts. Session expired.', 0); - if (!res.ok) throw new Error(`Relay retrieve failed (${res.status})`); - - return (await res.json()) as EncryptedPayload; - } -} - -export class RelayCodeError extends Error { - readonly attemptsRemaining: number; - - constructor(message: string, attemptsRemaining: number) { - super(message); - this.name = 'RelayCodeError'; - this.attemptsRemaining = attemptsRemaining; - } -} diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index 2d46515..a1b5b95 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -3,8 +3,6 @@ import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; -import type { SessionPayload } from '@polygonlabs/agent-shared'; - const STORAGE_DIR = path.join(os.homedir(), '.polygon-agent'); const ENCRYPTION_KEY_FILE = path.join(STORAGE_DIR, '.encryption-key'); @@ -39,26 +37,11 @@ export interface OmsWalletPointer { createdAt: string; } -export interface WalletSession { - walletAddress: string; - chainId: number; - chain: string; - projectAccessKey: string | null; - explicitSession: string; - sessionPk: string; - sessionConfig?: string; - implicitPk: string; - implicitMeta: string; - implicitAttestation: string; - implicitIdentitySig: string; - createdAt: string; -} - export function ensureStorageDir(): void { if (!fs.existsSync(STORAGE_DIR)) { fs.mkdirSync(STORAGE_DIR, { recursive: true, mode: 0o700 }); } - const subdirs = ['wallets', 'requests', 'state/dapp-client-cli']; + const subdirs = ['wallets', 'oms']; for (const dir of subdirs) { const fullPath = path.join(STORAGE_DIR, dir); if (!fs.existsSync(fullPath)) { @@ -148,102 +131,6 @@ export async function loadBuilderConfig(): Promise { }; } -/** - * Synchronously resolve the project access key. - * Priority: env var → wallet session's stored key → builder.json on disk. - * Returns undefined if none found. - */ -export function resolveAccessKeySync(sessionKey?: string | null): string | undefined { - if (process.env.SEQUENCE_PROJECT_ACCESS_KEY) return process.env.SEQUENCE_PROJECT_ACCESS_KEY; - if (process.env.SEQUENCE_INDEXER_ACCESS_KEY) return process.env.SEQUENCE_INDEXER_ACCESS_KEY; - if (sessionKey) return sessionKey; - const configPath = path.join(STORAGE_DIR, 'builder.json'); - if (fs.existsSync(configPath)) { - try { - const data = JSON.parse(fs.readFileSync(configPath, 'utf8')); - if (data.accessKey) return data.accessKey as string; - } catch { - // ignore malformed config - } - } - return undefined; -} - -/** - * Bootstrap: populate SEQUENCE_PROJECT_ACCESS_KEY from builder.json if not already set. - * Call once at CLI startup so all commands can rely on the env var being present. - */ -export function bootstrapAccessKey(): void { - const key = resolveAccessKeySync(); - if (key && !process.env.SEQUENCE_PROJECT_ACCESS_KEY) { - process.env.SEQUENCE_PROJECT_ACCESS_KEY = key; - } - if (key && !process.env.SEQUENCE_INDEXER_ACCESS_KEY) { - process.env.SEQUENCE_INDEXER_ACCESS_KEY = key; - } -} - -export async function saveWalletSession(name: string, session: WalletSession): Promise { - ensureStorageDir(); - - const walletPath = path.join(STORAGE_DIR, 'wallets', `${name}.json`); - fs.writeFileSync(walletPath, JSON.stringify(session, null, 2), { - mode: 0o600 - }); -} - -export async function loadWalletSession(name: string): Promise { - const walletPath = path.join(STORAGE_DIR, 'wallets', `${name}.json`); - - if (!fs.existsSync(walletPath)) { - return null; - } - - return JSON.parse(fs.readFileSync(walletPath, 'utf8')); -} - -export interface WalletRequest { - rid: string; - walletName: string; - chain: string; - createdAt: string; - expiresAt: string; - publicKeyB64u: string; - privateKeyB64u: string; - projectAccessKey: string | null; - /** v2: X25519 secret key hex (used with relay-based code flow) */ - cliSkHex?: string; -} - -export async function saveWalletRequest(rid: string, request: WalletRequest): Promise { - ensureStorageDir(); - - // cliSkHex (v2 X25519 secret key) is stored as plaintext here intentionally: - // the file has 0o600 permissions and the key is ephemeral — it is only useful - // during the ~5-minute request window and is deleted after successful import. - const requestPath = path.join(STORAGE_DIR, 'requests', `${rid}.json`); - fs.writeFileSync(requestPath, JSON.stringify(request, null, 2), { - mode: 0o600 - }); -} - -export async function loadWalletRequest(rid: string): Promise { - const requestPath = path.join(STORAGE_DIR, 'requests', `${rid}.json`); - - if (!fs.existsSync(requestPath)) { - return null; - } - - return JSON.parse(fs.readFileSync(requestPath, 'utf8')); -} - -export async function deleteWalletRequest(rid: string): Promise { - const requestPath = path.join(STORAGE_DIR, 'requests', `${rid}.json`); - if (fs.existsSync(requestPath)) { - fs.unlinkSync(requestPath); - } -} - export async function listWallets(): Promise { ensureStorageDir(); @@ -342,7 +229,7 @@ export function loadOmsConfig(): OmsConfig | null { return null; } -/** Populate OMS env vars from builder.json at startup (mirrors bootstrapAccessKey). */ +/** Populate OMS env vars from builder.json at startup. */ export function bootstrapOmsConfig(): void { const cfg = loadOmsConfig(); if (!cfg) return; @@ -364,7 +251,7 @@ export async function loadOmsWalletPointer(name: string): Promise { const dir = path.join(STORAGE_DIR, 'oms', name); if (fs.existsSync(dir)) fs.rmSync(dir, { recursive: true, force: true }); } - -/** Map a v2 SessionPayload into the WalletSession shape. */ -export function sessionPayloadToWalletSession(payload: SessionPayload): WalletSession { - const chainName = resolveChainNameFromId(payload.chain_id); - const implicit = payload.implicit_session; - - const implicitMeta = { - guard: implicit?.guard, - loginMethod: implicit?.login_method, - userEmail: implicit?.user_email - }; - - return { - walletAddress: payload.wallet_address, - chainId: payload.chain_id, - chain: chainName, - projectAccessKey: payload.project_access_key ?? null, - explicitSession: JSON.stringify({ pk: payload.session_private_key }), - sessionPk: payload.session_private_key, - sessionConfig: payload.session_config ?? undefined, - implicitPk: implicit?.pk ?? '', - implicitMeta: JSON.stringify(implicitMeta), - implicitAttestation: implicit?.attestation ?? '', - implicitIdentitySig: implicit?.identity_sig ? JSON.stringify(implicit.identity_sig) : '', - createdAt: new Date().toISOString() - }; -} - -/** Map numeric chainId to chain name string (e.g. 137 → "polygon"). */ -function resolveChainNameFromId(chainId: number): string { - const map: Record = { - 137: 'polygon', - 80002: 'polygon-amoy', - 42161: 'arbitrum', - 10: 'optimism', - 8453: 'base', - 1: 'mainnet' - }; - return map[chainId] ?? String(chainId); -} diff --git a/packages/polygon-agent-cli/src/lib/tx-dispatch.ts b/packages/polygon-agent-cli/src/lib/tx-dispatch.ts index d754138..9a2f9bc 100644 --- a/packages/polygon-agent-cli/src/lib/tx-dispatch.ts +++ b/packages/polygon-agent-cli/src/lib/tx-dispatch.ts @@ -1,24 +1,15 @@ -// Transaction dispatch shim — routes to the OMS (Sequence V3) primitive when -// POLYGON_AGENT_OMS is set, otherwise the legacy dapp-client primitive. +// Transaction dispatch — submits via the OMS (Sequence V3) primitive. // -// Command call sites import `runTx` from here instead of runDappClientTx, so the -// migration is a one-line import change per site and both paths coexist during -// the transition. +// Command call sites import `runTx` from here. (Kept as a thin indirection so +// call sites don't import oms-tx directly, leaving room for future routing.) import type { OmsTxParams, OmsTxResult } from './oms-tx.ts'; -import { runDappClientTx } from './dapp-client.ts'; import { runOmsTx } from './oms-tx.ts'; export type RunTxParams = OmsTxParams; export type RunTxResult = OmsTxResult; -/** True when the OMS (V3) path is enabled via env flag. */ -export function isOmsEnabled(): boolean { - return ['1', 'true', 'yes'].includes(String(process.env.POLYGON_AGENT_OMS || '').toLowerCase()); -} - export async function runTx(params: RunTxParams): Promise { - if (isOmsEnabled()) return runOmsTx(params); - return runDappClientTx(params); + return runOmsTx(params); } diff --git a/packages/polygon-agent-cli/src/types.d.ts b/packages/polygon-agent-cli/src/types.d.ts index a6f787d..b2f1690 100644 --- a/packages/polygon-agent-cli/src/types.d.ts +++ b/packages/polygon-agent-cli/src/types.d.ts @@ -1,13 +1,2 @@ // Ambient declarations for untyped dependencies - -declare module 'tweetnacl-sealedbox-js' { - export function open( - ciphertext: Uint8Array, - publicKey: Uint8Array, - secretKey: Uint8Array - ): Uint8Array | null; - - export function seal(message: Uint8Array, publicKey: Uint8Array): Uint8Array; - - export function overheadLength(): number; -} +export {}; diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md deleted file mode 100644 index af5f6c5..0000000 --- a/packages/shared/CHANGELOG.md +++ /dev/null @@ -1,187 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [0.1.14](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.13...@polygonlabs/agent-shared@0.1.14) (2026-05-27) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.13](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.12...@polygonlabs/agent-shared@0.1.13) (2026-04-30) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.12](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.11...@polygonlabs/agent-shared@0.1.12) (2026-04-29) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.11](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.10...@polygonlabs/agent-shared@0.1.11) (2026-04-29) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.10](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.9...@polygonlabs/agent-shared@0.1.10) (2026-04-28) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.9](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.8...@polygonlabs/agent-shared@0.1.9) (2026-04-27) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.8](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.7...@polygonlabs/agent-shared@0.1.8) (2026-04-27) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.7](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.6...@polygonlabs/agent-shared@0.1.7) (2026-04-22) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.6](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.5...@polygonlabs/agent-shared@0.1.6) (2026-04-22) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.5](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.4...@polygonlabs/agent-shared@0.1.5) (2026-04-21) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.4](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.3...@polygonlabs/agent-shared@0.1.4) (2026-04-21) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.3](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.2...@polygonlabs/agent-shared@0.1.3) (2026-04-16) - -**Note:** Version bump only for package @polygonlabs/agent-shared - - - - - -## [0.1.2](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.1.1...@polygonlabs/agent-shared@0.1.2) (2026-04-14) - - -### Bug Fixes - -* **cli:** bundle agent-shared into CLI instead of publishing to npm ([1cc2d7b](https://github.com/0xPolygon/polygon-agent-cli/commit/1cc2d7b28b971f7b4b85d9473393c9fce92edd57)) - - - - - -## [0.1.1](https://github.com/0xPolygon/polygon-agent-cli/compare/@polygonlabs/agent-shared@0.5.0...@polygonlabs/agent-shared@0.1.1) (2026-04-14) - - -### Bug Fixes - -* **shared:** publish agent-shared to npm so agent-cli installs correctly ([a757cba](https://github.com/0xPolygon/polygon-agent-cli/commit/a757cba418556eb6d59963bcedf9af1a65590aea)) -* **shared:** use publishConfig so workspace typecheck resolves src, npm gets dist ([be8ec61](https://github.com/0xPolygon/polygon-agent-cli/commit/be8ec616b501c4fa756b3c72e61b1febf3a0a474)) - - - - - -# 0.5.0 (2026-04-14) - - -### Bug Fixes - -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **shared:** correct import path in plan, suppress vitest warning, add requestId guard ([84d5673](https://github.com/0xPolygon/polygon-agent-cli/commit/84d56731a17ddd6a40534c6cc97ae2e8e43d6ff4)) - - -### Features - -* **shared:** add v2 crypto protocol package (X25519+HKDF+XChaCha20) ([a5c23b3](https://github.com/0xPolygon/polygon-agent-cli/commit/a5c23b3b63ea464ea514734bcd9aa36895480701)) - - - - - -# 0.4.0 (2026-04-14) - - -### Bug Fixes - -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **shared:** correct import path in plan, suppress vitest warning, add requestId guard ([84d5673](https://github.com/0xPolygon/polygon-agent-cli/commit/84d56731a17ddd6a40534c6cc97ae2e8e43d6ff4)) - - -### Features - -* **shared:** add v2 crypto protocol package (X25519+HKDF+XChaCha20) ([a5c23b3](https://github.com/0xPolygon/polygon-agent-cli/commit/a5c23b3b63ea464ea514734bcd9aa36895480701)) - - - - - -# 0.3.0 (2026-04-14) - - -### Bug Fixes - -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **shared:** correct import path in plan, suppress vitest warning, add requestId guard ([84d5673](https://github.com/0xPolygon/polygon-agent-cli/commit/84d56731a17ddd6a40534c6cc97ae2e8e43d6ff4)) - - -### Features - -* **shared:** add v2 crypto protocol package (X25519+HKDF+XChaCha20) ([a5c23b3](https://github.com/0xPolygon/polygon-agent-cli/commit/a5c23b3b63ea464ea514734bcd9aa36895480701)) - - - - - -# 0.2.0 (2026-04-14) - - -### Bug Fixes - -* **connector-ui:** preserve implicit session metadata, remove tweetnacl, add rid validation ([ca4c4aa](https://github.com/0xPolygon/polygon-agent-cli/commit/ca4c4aa7ce972639e80b3fe4c8cc6abd01db3df1)) -* **shared:** correct import path in plan, suppress vitest warning, add requestId guard ([84d5673](https://github.com/0xPolygon/polygon-agent-cli/commit/84d56731a17ddd6a40534c6cc97ae2e8e43d6ff4)) - - -### Features - -* **shared:** add v2 crypto protocol package (X25519+HKDF+XChaCha20) ([a5c23b3](https://github.com/0xPolygon/polygon-agent-cli/commit/a5c23b3b63ea464ea514734bcd9aa36895480701)) diff --git a/packages/shared/crypto.test.ts b/packages/shared/crypto.test.ts deleted file mode 100644 index 1604ba1..0000000 --- a/packages/shared/crypto.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { describe, it, expect } from 'vitest'; - -import type { SessionPayload } from './src/types.js'; - -import { - generateX25519Keypair, - encryptSession, - decryptSession, - generateCode, - computeCodeHash -} from './src/crypto.js'; -import { bytesToHex } from './src/encoding.js'; - -const SAMPLE_PAYLOAD: SessionPayload = { - version: 1, - wallet_address: '0xc448e20a23d9ca5b0f9d667c6676f64c73cff8b7', - chain_id: 137, - session_private_key: '0x' + 'ab'.repeat(32), - session_address: '0x' + 'cd'.repeat(20), - permissions: { native_limit: '2000000000000000000', erc20_limits: [] }, - expiry: Math.floor(Date.now() / 1000) + 86400 * 183, - ecosystem_wallet_url: 'https://wallet.sequence.app', - dapp_origin: 'https://agentconnect.polygon.technology', - project_access_key: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAtest' -}; - -describe('session encrypt/decrypt round-trip', () => { - it('decrypts to original payload', () => { - const { secretKey: cliSk, publicKey: cliPk } = generateX25519Keypair(); - const requestId = 'abc12345'; - const cliPkHex = bytesToHex(cliPk); - - const { encrypted, code } = encryptSession(SAMPLE_PAYLOAD, cliPkHex, requestId); - - expect(code).toMatch(/^\d{6}$/); - expect(encrypted.wallet_pk_hex).toHaveLength(64); - expect(encrypted.nonce_hex).toHaveLength(48); - - const decrypted = decryptSession(encrypted, cliSk, code, requestId); - expect(decrypted.wallet_address).toBe(SAMPLE_PAYLOAD.wallet_address); - expect(decrypted.chain_id).toBe(137); - expect(decrypted.session_private_key).toBe(SAMPLE_PAYLOAD.session_private_key); - }); - - it('throws on wrong code', () => { - const { secretKey: cliSk, publicKey: cliPk } = generateX25519Keypair(); - const requestId = 'abc12345'; - const { encrypted } = encryptSession(SAMPLE_PAYLOAD, bytesToHex(cliPk), requestId); - expect(() => decryptSession(encrypted, cliSk, '000000', requestId)).toThrow(); - }); - - it('generates 6-digit codes', () => { - for (let i = 0; i < 20; i++) { - const code = generateCode(); - expect(code).toMatch(/^\d{6}$/); - expect(parseInt(code)).toBeGreaterThanOrEqual(0); - expect(parseInt(code)).toBeLessThan(1_000_000); - } - }); - - it('computeCodeHash is deterministic', () => { - const h1 = computeCodeHash('req123', '847291'); - const h2 = computeCodeHash('req123', '847291'); - expect(bytesToHex(h1)).toBe(bytesToHex(h2)); - }); -}); diff --git a/packages/shared/package.json b/packages/shared/package.json deleted file mode 100644 index 7e22dea..0000000 --- a/packages/shared/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "@polygonlabs/agent-shared", - "version": "0.1.14", - "private": true, - "type": "module", - "main": "./src/index.ts", - "exports": { - ".": "./src/index.ts" - }, - "scripts": { - "typecheck": "tsc --noEmit", - "test": "vitest run" - }, - "dependencies": { - "@noble/ciphers": "^1.2.1", - "@noble/curves": "^1.8.1", - "@noble/hashes": "^1.7.2" - }, - "devDependencies": { - "vitest": "3.1.4" - } -} diff --git a/packages/shared/src/constants.ts b/packages/shared/src/constants.ts deleted file mode 100644 index e1b25a1..0000000 --- a/packages/shared/src/constants.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const PROTOCOL_VERSION = 'polygon-agent-session-v1'; -export const CODE_LENGTH = 6; -export const MAX_CODE_ATTEMPTS = 3; -export const REQUEST_TTL_SECONDS = 300; -export const REQUEST_ID_LENGTH = 8; diff --git a/packages/shared/src/crypto.ts b/packages/shared/src/crypto.ts deleted file mode 100644 index 5033329..0000000 --- a/packages/shared/src/crypto.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { xchacha20poly1305 } from '@noble/ciphers/chacha'; -import { x25519 } from '@noble/curves/ed25519'; -import { hkdf } from '@noble/hashes/hkdf'; -import { sha256 } from '@noble/hashes/sha2'; -import { randomBytes } from '@noble/hashes/utils'; - -import type { EncryptedPayload, SessionPayload } from './types.js'; - -import { PROTOCOL_VERSION, CODE_LENGTH } from './constants.js'; -import { bytesToHex, hexToBytes, b64urlEncode, b64urlDecode } from './encoding.js'; - -export interface X25519Keypair { - secretKey: Uint8Array; - publicKey: Uint8Array; -} - -export function generateX25519Keypair(): X25519Keypair { - const secretKey = randomBytes(32); - const publicKey = x25519.getPublicKey(secretKey); - return { secretKey, publicKey }; -} - -/** Generates a random 6-digit code string, zero-padded. */ -export function generateCode(): string { - // Use 4 random bytes, take mod 1_000_000 to get 0–999999 - const bytes = randomBytes(4); - const n = new DataView(bytes.buffer).getUint32(0) % 1_000_000; - return n.toString().padStart(CODE_LENGTH, '0'); -} - -/** SHA-256(requestId + code). Used as the code_hash sent to the relay. */ -export function computeCodeHash(requestId: string, code: string): Uint8Array { - if (!requestId) throw new Error('requestId must not be empty'); - return sha256(new TextEncoder().encode(requestId + code)); -} - -function deriveEncKey( - shared: Uint8Array, - code: string, - cliPkHex: string, - walletPkHex: string -): Uint8Array { - const salt = sha256(new TextEncoder().encode(code)); - const info = new TextEncoder().encode(cliPkHex + walletPkHex + PROTOCOL_VERSION); - return hkdf(sha256, shared, salt, info, 32); -} - -/** - * Encrypt a SessionPayload for the CLI to decrypt. - * Returns the EncryptedPayload (to POST to relay) and the plaintext code (to display to user). - */ -export function encryptSession( - payload: SessionPayload, - cliPkHex: string, - requestId: string -): { encrypted: EncryptedPayload; code: string } { - const cliPk = hexToBytes(cliPkHex); - const { secretKey: walletSk, publicKey: walletPk } = generateX25519Keypair(); - const shared = x25519.getSharedSecret(walletSk, cliPk); - - const walletPkHex = bytesToHex(walletPk); - const code = generateCode(); - const encKey = deriveEncKey(shared, code, cliPkHex, walletPkHex); - - const nonce = randomBytes(24); - const aad = new Uint8Array([...cliPk, ...walletPk]); - const plaintext = new TextEncoder().encode(JSON.stringify(payload)); - - const cipher = xchacha20poly1305(encKey, nonce, aad); - const ciphertext = cipher.encrypt(plaintext); - - const encrypted: EncryptedPayload = { - wallet_pk_hex: walletPkHex, - nonce_hex: bytesToHex(nonce), - ciphertext_b64url: b64urlEncode(ciphertext), - code_hash_hex: bytesToHex(computeCodeHash(requestId, code)) - }; - - return { encrypted, code }; -} - -/** - * Decrypt a session payload received from the relay. - * The code is provided by the user out-of-band. - */ -export function decryptSession( - encrypted: EncryptedPayload, - cliSk: Uint8Array, - code: string, - requestId: string -): SessionPayload { - if (!requestId) throw new Error('requestId must not be empty'); - const cliPk = x25519.getPublicKey(cliSk); - const walletPk = hexToBytes(encrypted.wallet_pk_hex); - const shared = x25519.getSharedSecret(cliSk, walletPk); - - const cliPkHex = bytesToHex(cliPk); - const walletPkHex = encrypted.wallet_pk_hex; - const encKey = deriveEncKey(shared, code, cliPkHex, walletPkHex); - - const nonce = hexToBytes(encrypted.nonce_hex); - const aad = new Uint8Array([...cliPk, ...walletPk]); - const ciphertext = b64urlDecode(encrypted.ciphertext_b64url); - - // Verify the code hash before attempting decryption - const expectedHash = bytesToHex(computeCodeHash(requestId, code)); - if (expectedHash !== encrypted.code_hash_hex) { - throw new Error('Invalid code: hash mismatch'); - } - - const cipher = xchacha20poly1305(encKey, nonce, aad); - // xchacha20poly1305.decrypt throws if auth tag fails - const plaintext = cipher.decrypt(ciphertext); - return JSON.parse(new TextDecoder().decode(plaintext)) as SessionPayload; -} diff --git a/packages/shared/src/encoding.ts b/packages/shared/src/encoding.ts deleted file mode 100644 index 0c14608..0000000 --- a/packages/shared/src/encoding.ts +++ /dev/null @@ -1,30 +0,0 @@ -export function bytesToHex(bytes: Uint8Array): string { - return Array.from(bytes) - .map((b) => b.toString(16).padStart(2, '0')) - .join(''); -} - -export function hexToBytes(hex: string): Uint8Array { - if (hex.length % 2 !== 0) throw new Error('Invalid hex string'); - const bytes = new Uint8Array(hex.length / 2); - for (let i = 0; i < bytes.length; i++) { - bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16); - } - return bytes; -} - -export function b64urlEncode(bytes: Uint8Array): string { - // Works in Node.js and Cloudflare Workers - let bin = ''; - for (const b of bytes) bin += String.fromCharCode(b); - return btoa(bin).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); -} - -export function b64urlDecode(str: string): Uint8Array { - const norm = str.replace(/-/g, '+').replace(/_/g, '/'); - const pad = norm.length % 4 === 0 ? '' : '='.repeat(4 - (norm.length % 4)); - const bin = atob(norm + pad); - const bytes = new Uint8Array(bin.length); - for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i); - return bytes; -} diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts deleted file mode 100644 index e401f35..0000000 --- a/packages/shared/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './constants.js'; -export * from './types.js'; -export * from './encoding.js'; -export * from './crypto.js'; diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts deleted file mode 100644 index bcc94b7..0000000 --- a/packages/shared/src/types.ts +++ /dev/null @@ -1,51 +0,0 @@ -export interface ImplicitSession { - pk: string; - attestation: string; - identity_sig: string; - /** Optional fields preserved for Sequence wallet path compatibility */ - guard?: string; - login_method?: string; - user_email?: string; -} - -export interface SessionPermissions { - /** Max native token spend, as wei string */ - native_limit?: string; - erc20_limits?: Array<{ token_address: string; limit: string }>; - contract_calls?: Array<{ address: string; functions: string[] }>; -} - -export interface SessionPayload { - version: 1; - wallet_address: string; - chain_id: number; - /** Hex-encoded explicit session private key */ - session_private_key: string; - /** Explicit session signer address */ - session_address: string; - permissions: SessionPermissions; - /** Unix timestamp — expiry of explicit session */ - expiry: number; - ecosystem_wallet_url: string; - dapp_origin: string; - project_access_key: string; - relayer_url?: string; - /** Full explicit session config, JSON-stringified (for dapp-client reconstruction) */ - session_config?: string; - implicit_session?: ImplicitSession; -} - -export interface EncryptedPayload { - wallet_pk_hex: string; - nonce_hex: string; - ciphertext_b64url: string; - code_hash_hex: string; -} - -export interface RelayCreateResponse { - request_id: string; -} - -export interface RelayStatusResponse { - status: 'pending' | 'ready'; -} diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json deleted file mode 100644 index 56a361a..0000000 --- a/packages/shared/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { "target": "ES2022" }, - "include": ["src/**/*.ts", "crypto.test.ts", "vitest.config.ts"] -} diff --git a/packages/shared/vitest.config.ts b/packages/shared/vitest.config.ts deleted file mode 100644 index ed58c0d..0000000 --- a/packages/shared/vitest.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { defineConfig } from 'vitest/config'; -export default defineConfig({ - test: { environment: 'node' }, - esbuild: { target: 'es2022' } -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68cb3a3..21e08c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,111 +55,17 @@ importers: specifier: ^5.8.3 version: 5.9.3 - packages/connector-ui: - dependencies: - 0xtrails: - specifier: ^0.14.0 - version: 0.14.0(a87722edfdef515bc3a23e8377c33652) - '@0xsequence/dapp-client': - specifier: 3.0.0-beta.16 - version: 3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@0xsequence/wallet-primitives': - specifier: 3.0.0-beta.16 - version: 3.0.0-beta.16(typescript@5.9.3)(zod@3.25.76) - '@polygonlabs/agent-shared': - specifier: workspace:* - version: link:../shared - '@tailwindcss/vite': - specifier: ^4.1.18 - version: 4.2.1(vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1)) - lucide-react: - specifier: ^0.564.0 - version: 0.564.0(react@18.3.1) - ox: - specifier: ^0.11.3 - version: 0.11.3(typescript@5.9.3)(zod@3.25.76) - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - serve: - specifier: ^14.2.4 - version: 14.2.5 - tailwindcss: - specifier: ^4 - version: 4.2.1 - devDependencies: - '@cloudflare/workers-types': - specifier: ^4.20260317.1 - version: 4.20260317.1 - '@types/react': - specifier: ^18.3.3 - version: 18.3.28 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) - '@vitejs/plugin-react': - specifier: ^4.3.1 - version: 4.7.0(vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1)) - vite: - specifier: ^5.4.0 - version: 5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - wrangler: - specifier: ^4.67.0 - version: 4.69.0(@cloudflare/workers-types@4.20260317.1)(bufferutil@4.1.0)(utf-8-validate@6.0.6) - packages/polygon-agent-cli: dependencies: - '@0xsequence/abi': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17 - '@0xsequence/api': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17 - '@0xsequence/builder': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17 - '@0xsequence/dapp-client': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/dapp-client-cli': - specifier: 0.1.5 - version: 0.1.5(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/indexer': - specifier: ^2.3.40 - version: 2.3.41 '@0xsequence/network': specifier: ^2.3.40 version: 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/relayer': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) '@0xsequence/typescript-sdk': specifier: 0.1.0-alpha.2 version: 0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/wallet-core': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/wallet-primitives': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17(typescript@5.9.3)(zod@4.3.6) - '@0xsequence/wallet-wdk': - specifier: 3.0.0-beta.17 - version: 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) '@0xtrails/api': specifier: ^0.10.4 version: 0.10.4 - '@noble/ciphers': - specifier: ^1.2.1 - version: 1.3.0 - '@noble/curves': - specifier: 1.9.7 - version: 1.9.7 - '@noble/hashes': - specifier: 1.8.0 - version: 1.8.0 '@polymarket/clob-client-v2': specifier: ^1.0.0 version: 1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) @@ -196,12 +102,6 @@ importers: react: specifier: ^18.3.1 version: 18.3.1 - tweetnacl: - specifier: ^1.0.3 - version: 1.0.3 - tweetnacl-sealedbox-js: - specifier: ^1.2.0 - version: 1.2.0 viem: specifier: ^2.45.3 version: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) @@ -209,9 +109,6 @@ importers: specifier: ^17.7.2 version: 17.7.2 devDependencies: - '@polygonlabs/agent-shared': - specifier: workspace:* - version: link:../shared '@types/react': specifier: ^18.3.1 version: 18.3.28 @@ -250,208 +147,29 @@ importers: specifier: ^5.8.3 version: 5.9.3 - packages/shared: - dependencies: - '@noble/ciphers': - specifier: ^1.2.1 - version: 1.3.0 - '@noble/curves': - specifier: 1.9.7 - version: 1.9.7 - '@noble/hashes': - specifier: 1.8.0 - version: 1.8.0 - devDependencies: - vitest: - specifier: 3.1.4 - version: 3.1.4(@types/debug@4.1.13)(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - packages: - 0xsequence@2.3.43: - resolution: {integrity: sha512-lf/IPtqNqRmeWJOUVxUHIAVCt+wvgYsJ6P/8pA7RrWBqdnzTLnvrJlEMspB3P+jzFOfzAndGBKe4KKNVMH+F7A==} - peerDependencies: - ethers: '>=6' - - 0xtrails@0.14.0: - resolution: {integrity: sha512-SpzYYIkutXhnltveZRL+hRexuQLgUJXe0bSTTdCiYd8IdWkNyJP+wk3s+lOJQ15yaYsSoQTOCyxyZAgllNIuzw==} - peerDependencies: - '@tanstack/react-query': ^5.90.20 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - viem: ^2.41.0 - wagmi: ^2.19.0 - '@0xsequence/abi@2.3.41': resolution: {integrity: sha512-CMiuW/5HiNxB0jpVBEUZfVkwXgeiT9HbsUy/7FL/8XWv9rLM5mE9Y6fj4QAH/jaRnvGfG4iDcCbq05+PQ/q5Rw==} - '@0xsequence/abi@2.3.43': - resolution: {integrity: sha512-ybWRT+knMPpOH/XBucw8/BviyqomLAgvbCxFTNB0WAaO3inVCdHEil2keBFXgPKGlEVozQ5ZhE0k6WQxb3bZSw==} - - '@0xsequence/abi@3.0.0-beta.17': - resolution: {integrity: sha512-YoIBLe1CzhEX0fLAWgI8ccPKT9EptzGsCjXPlZWyEB6lRyxvM3qhtVoZfB5t2I4n7IIhgS6FN8KdjFBidnhOkw==} - - '@0xsequence/account@2.3.43': - resolution: {integrity: sha512-MVAZcUPSnpUuXu9NaZN2VGv8/oIFjhuYbVKx2grBiGA8oAxtkOYiV5If2xmpnRAvl1W/f4cAl4oJi6q0bLUfkA==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/api@2.3.43': - resolution: {integrity: sha512-1L6oNcstgG1+P7Jxo4fwY/uqT5C6iAZXKJc6DZKdsJiEn3BUZ+Cyx9j2sMMoqQ8hx18x9wrn8368T/dmJ8Rhqg==} - - '@0xsequence/api@3.0.0-beta.17': - resolution: {integrity: sha512-vvw+fzSZNmRtA6MTYNDKrtNjGl3u0aaEJviLkJ3oUruecKUuIPJkLmgvA8kNQQq0XJT8D9SVO8UJQYSipSkJHA==} - - '@0xsequence/auth@2.3.43': - resolution: {integrity: sha512-qtm7WvQ5+5wckBBqPa7mDbWtgm0wDHvCzIEaieS1de3a+xZETx/TvRguYL62Y0HXKtnhtV+BkUxiuhFteNfpiQ==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/builder@3.0.0-beta.17': - resolution: {integrity: sha512-Oy4KAO4ow5AnTfHMJndZBG9ZF0MCSpih3NuYD1BzkPlueYMckWc6MKJNO+/vJn5ioKZUkeCGafOfT3WwbsrQpg==} - - '@0xsequence/connect@5.4.8': - resolution: {integrity: sha512-Hv+fLQ3Ets2319bSnMMhBbWsFdXXjkl5tmYwC1gbrOUju84yvqhC3eIrDdA1F6VaQFaf9Ttxu1yROeCKuzZLrw==} - peerDependencies: - 0xsequence: '>= 2.3.38' - '@0xsequence/hooks': 5.4.8 - '@databeat/tracker': ^0.9.3 - '@react-oauth/google': ^0.11.1 - '@tanstack/react-query': '>= 5' - ethers: '>=6.13.0' - react: '>= 17' - react-apple-signin-auth: ^1.1.0 - react-dom: '>= 17' - viem: '>= 2.28.0' - wagmi: '>= 2.15.0' - '@0xsequence/core@2.3.41': resolution: {integrity: sha512-ibZ71pF0qkRjBXt7XiZLoP7THJn8d8M6MLKYE1u713g8iqmYT4ITlXWIGdO2T2noveSMw9YVCuJGkkh/PJ4PTw==} peerDependencies: ethers: '>=6' - '@0xsequence/core@2.3.43': - resolution: {integrity: sha512-kPJs8SS35fIYS0wrNJ/2ODW3YyBWKdEXq4mncyG4CvCO7zT6kohsYljC3uUyH4NwWGCYoMt1T8c1CKwnZBpJTQ==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/dapp-client-cli@0.1.5': - resolution: {integrity: sha512-9vQsypf9mNUCOEb4oKfQW+7gmP5N2Tunf0Bm1dSY9FTPTqcvNHE/6vYFKgigVxYg5/favHxIiB8a61dqo1O1ew==} - hasBin: true - - '@0xsequence/dapp-client@3.0.0-beta.16': - resolution: {integrity: sha512-lo3ZNncrirvZEVpiUUfts/Skp6kmqJlKxUpEHj/1n+LO/L53dyqMUx9ti2qMIJGkAyKzZ66NdiqYqJoRKNNBIw==} - - '@0xsequence/dapp-client@3.0.0-beta.17': - resolution: {integrity: sha512-Nb3ym/T1SNuyu6Y4cHBkPiZkNrFYyKEnl8CRpllmEJDnfAYAaGTvOhmeCqESDYLVNJe976UgxhQnkhxn5IpqNA==} - - '@0xsequence/design-system@2.1.11': - resolution: {integrity: sha512-wfuY9v2dNQxw9qAYyflwcKzuiiVqm4qqn2Jkoyw/CqxODcqQ3orUsGxjnbyvCWOwvHbH908c4LOZj/TBI6T0Fw==} - peerDependencies: - motion: '>= 12' - react: '>= 17' - react-dom: '>= 17' - - '@0xsequence/ethauth@1.0.0': - resolution: {integrity: sha512-piihXzbS8Sq7P670a+GyTm3igTJL3Ts6pqjJcC0Sv86yqeK6QD0pzJP4APP+/IQa5k+0s2l1SeZwMjR7gSPtCA==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/guard@2.3.43': - resolution: {integrity: sha512-gVyCzjId93iTGBJTCarHeu5aVcvQKNa7PslYc33PPfLpXTUgOZRGA4ClifiEP5A0oTg+y73hxawmZiv3JTUhXw==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/guard@3.0.0': - resolution: {integrity: sha512-3GAC7LM/o8nesW60UmqUPfY7DFNXFKzJ8rCEbkWwpC7ugycbtHNTWJUCDnQzVqVW8TXHKOFhHyxYpLQ0w8xJLQ==} - - '@0xsequence/guard@3.0.0-beta.19': - resolution: {integrity: sha512-4A+LjH+uCywX9JD+O76D6o2ZkoIvym7LEVo5bxAcRV8zFyuwy7yiQHdiVvNcNaGayApn0Y7vt6mfZKdALoXqSA==} - - '@0xsequence/hooks@5.4.9': - resolution: {integrity: sha512-FhTD0CinRYoy3UVQJdwEfOh81BV4Xgs45aQw56Tr/a49y3BUZofe/kMfNsBE2fDXqLsjmpQ2DMEfAgkq0jp6kw==} - peerDependencies: - '@0xsequence/api': '>=2.3.38' - '@0xsequence/indexer': '>=2.3.38' - '@0xsequence/metadata': '>=2.3.38' - '@0xsequence/network': '>=2.3.38' - '@tanstack/react-query': '>= 5' - react: '>= 17' - react-dom: '>= 17' - viem: '>= 2.44.0' - - '@0xsequence/identity-instrument@3.0.0-beta.19': - resolution: {integrity: sha512-aAoEXt5+JQCNyZttyxBVpZQOQf80hSE0CngsOiVxekJQl6xD/pX2FteWCXiPQPAeXOMtn6HTa/qNw+FAIAZpmg==} - '@0xsequence/indexer@2.3.41': resolution: {integrity: sha512-zAclbFgafj9O8+t4x7UmyNQu359SHY32aOGRQWsl5E7TvrfgPrAfDMW8Rfsu++fNwEhIgOt5gkL0kbyvUGKtLQ==} - '@0xsequence/indexer@2.3.43': - resolution: {integrity: sha512-PBPEc+zsvEG8XOwvOOiMm+G1wmg2+20kfTTxOHD0TFMs6zx14gHbmhJjnfVMRTVVFoIrkSpy5g0g8Ia7yy8w6A==} - - '@0xsequence/indexer@3.0.5': - resolution: {integrity: sha512-T+I0ypBcRD3i4kruO0yylJ/gzynRieUtLopplyXJuaMJYQFuQZwkRbUxDpjPy0f6da+aSbPvCsA5PaIrfT9RKg==} - - '@0xsequence/metadata@2.3.43': - resolution: {integrity: sha512-dwHcmNzNkroQs1bQHdkVZmcQPako6nyX0Bnnle2PIhkvmakht1nV0+Y4SmteYoInyNZlo2YT4LKbgReXBdleRw==} - - '@0xsequence/metadata@3.0.5': - resolution: {integrity: sha512-MQO4hEb7jC7qv38f7fi9p5c/TPtjWwHuqPvlmbYVEibALnTWPl1Ux/UVkO+ncgo3RFWCtk/DRj7cDiNUfDpIcw==} - - '@0xsequence/migration@2.3.43': - resolution: {integrity: sha512-b/KLW5bCtM9DW6HZr2k8CsPH6mhCAeKA69G9D5pix2lYzfpFfLgxPw6J98x48Rly2cM19WfHWUYUIL9myOyHaQ==} - peerDependencies: - ethers: '>=6' - '@0xsequence/network@2.3.41': resolution: {integrity: sha512-SV7Nytyfa/K3EAToaLHH8hclq9i9Da+dcnsu5UDYQ9rNr1K79N7aG69bshQV6f0j0c+mMiXqkmyBZOYlv72n/g==} peerDependencies: ethers: '>=6' - '@0xsequence/network@2.3.43': - resolution: {integrity: sha512-HLorxJ/UIKcRcUPyyTxy4yeaioxc2hmm0joqClfY8tvweO/ASKXXa4aXCdSDWaLFbVQlhmrn4i1FR/ykwQM57A==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/provider@2.3.43': - resolution: {integrity: sha512-e5JvAjJ7rPrydVsfofloCjSeKIIKlHUr481373hC1TB7UmqfD2fIAbH4rYV80GCy0Ha+2n9B0iy/8xQtKwwj1Q==} - peerDependencies: - ethers: '>=6' - '@0xsequence/relayer@2.3.41': resolution: {integrity: sha512-Ol21c5JPX/Sb35fENrAUagnyRYr3ckxuLNjdSECgC+9OUZzbbZpTbHBzyE35Bw8oCjqi19Y046/m8IOGRf4NjQ==} peerDependencies: ethers: '>=6' - '@0xsequence/relayer@2.3.43': - resolution: {integrity: sha512-2Rs1e6LA9nLRGAlQEcaCFscEvRNhp9MkryXyqarwbrojCg0tYk0WmQcicyjHUOqiKAHhjTn+MepuwnFslKMPqQ==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/relayer@3.0.0-beta.16': - resolution: {integrity: sha512-AThyuMWuvAJv64I2o38hJKtlRxzj51x8pYLWr70yqHkRi2CasHAEK5xEDhVJA9XCQ2g+XiKiBSezwsfNbStDVg==} - - '@0xsequence/relayer@3.0.0-beta.17': - resolution: {integrity: sha512-PP75DQmaTQeNNzhC7zG5tCcGe44hfPyNKVEu5VjtYRQhQk+wlF1TjYxHUTB4ywynrnvfMYLDDE4uF7I6wjjMTg==} - - '@0xsequence/replacer@2.3.43': - resolution: {integrity: sha512-LWD+UNRaz3gWV2MsQjaxui0WdCFrmBHzHIPMrfHTj5LnXBmSC2BUDYPGWTDhzZ9RPtNHoyg4eQRKLDVgEzWYLQ==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/sessions@2.3.43': - resolution: {integrity: sha512-7/1i2uqc1L2pdjgxmYUhNzsoyOj9e5sQsEj3kXZSc0OSAbPJk4jEegiNMdO7K8vBV53N1qFQ8ySm053lJFBcRg==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/signhub@2.3.43': - resolution: {integrity: sha512-vG4fFupdOoXo9u1Q9eKvvcVSIx3hb2viNnblj5LudYUTxwLS/EvmKcvMYnC2bLkjP5rF/yqi7uY5d8v19FIw3Q==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/tee-verifier@0.1.2': - resolution: {integrity: sha512-7sKr8/T4newknx6LAukjlRI3siGiGhBnZohz2Z3jX0zb0EBQdKUq0L//A7CPSckHFPxTg/QvQU2v8e9x9GfkDw==} - '@0xsequence/typescript-sdk@0.1.0-alpha.2': resolution: {integrity: sha512-sRg+j1z+EHunnGxR934xOTtWTifyhA4seu88KBBS/9Dxap9uGt0e1bdO+v84m2XeP1GF8qLdlkFYQVAey02AjQ==} @@ -460,48 +178,9 @@ packages: peerDependencies: ethers: '>=6' - '@0xsequence/utils@2.3.43': - resolution: {integrity: sha512-b5+8kNY1sEUU6yICOEoMZIoM4PNzgxIObKdOlk22d8SGb//VB7k9/gpG+u4LYVrA4t3LHlSuzzt62MEQ3mFMYA==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/waas@2.3.43': - resolution: {integrity: sha512-/7XYyG93JlPoQVbTwGX/vUfXB/Hn4RXRA3dDA+gve9UxxKUHHsoklhCfinQmXVOQ55aVKOpGs9Qxf4JUG5Yt2g==} - peerDependencies: - ethers: '>=6' - - '@0xsequence/wallet-core@3.0.0-beta.16': - resolution: {integrity: sha512-Vi34/n5FPVXfbz6ykoiATXaG/CAYyMbo3f01/t3NuyZc2DkgzZ7/fIlN6G2i2PEi2aV3gTt/ENVapOsJVRD/xw==} - - '@0xsequence/wallet-core@3.0.0-beta.17': - resolution: {integrity: sha512-0IKBI+25BUoDbi/m3/uehFMjM+WuF8RAXVfz3QUtp7hI/sA6v0+bFA2Gq/rQdtoB40HkZjxTtsMhKEzmxLZTPA==} - - '@0xsequence/wallet-primitives@3.0.0-beta.16': - resolution: {integrity: sha512-iwweQtEo/6sA6VBSVTQggdwKRvYoJOaRBrB+1trp05ULq4+rtvS+BG4mPfZQN86RWy93MYwCF1znsDon69u6wQ==} - - '@0xsequence/wallet-primitives@3.0.0-beta.17': - resolution: {integrity: sha512-AjdckQi1tgqgHG55XvilfkINB0TTooCC2j5bHNB+FQyk30XwFCH7N6oUt55BzDycckHHrDhixsT7ua2V2/xxWg==} - - '@0xsequence/wallet-primitives@3.0.0-beta.19': - resolution: {integrity: sha512-YJmwI9ECnidGVmSeKKiCdkaZ5MUg7+awHdG7+tW6U2gXGlY+8gJ5yNy8jX+GwoR6kMsWZh+ZuKFBUSqQjntYOQ==} - - '@0xsequence/wallet-wdk@3.0.0-beta.17': - resolution: {integrity: sha512-tqunDMEu+LqNIt3Zbt6yrE6bb8tFs2aqk+fha0Tp7x8VOYGcgrPBiVOF48jjwljtzOk2tO/yu/tETH7wHIzX6Q==} - - '@0xsequence/wallet@2.3.43': - resolution: {integrity: sha512-zbS7p6SdZRaVU6nEVD72y6TOZlCny3s3JYx/pAn0gUxSKOuioidG+iO/pZ6Z8vmKAEAFyIUXWdcbefk+wi3ocw==} - peerDependencies: - ethers: '>=6' - '@0xtrails/api@0.10.4': resolution: {integrity: sha512-jjGYCxWvZxoox2kzEjVJSgmuy9LBKSxs1ZcEkGageJ6ggvOlN4H35H6kSouDkycz5uTyRsH3O+4qW6nxy9niBQ==} - '@0xtrails/api@0.14.0': - resolution: {integrity: sha512-xV2SDqljJH+4yMTSCGALbJR5DfTUGGsT5cqFHCcZilaJjkBft/jEBK57e9CnuAUF/C7nbx9ZOGR8xQ0taayqSw==} - - '@0xtrails/wallet-registry@0.2.0': - resolution: {integrity: sha512-Vm1IyIzQ+p3QBU/1reBB4vP5dYlnurv86YHGgaciyAMuaFTLb1GBefr67trOQWfiS5iyZXlJldbLxVxSAwc33g==} - '@adraffy/ens-normalize@1.10.1': resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} @@ -516,40 +195,6 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -558,110 +203,15 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} - engines: {node: '>=6.9.0'} - '@babel/parser@7.24.1': resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@base-org/account@2.4.0': - resolution: {integrity: sha512-A4Umpi8B9/pqR78D1Yoze4xHyQaujioVRqqO3d6xuDFw9VRtjg6tK3bPlwE0aW+nVH/ntllCpPa2PbI8Rnjcug==} - - '@cloudflare/kv-asset-handler@0.4.2': - resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} - engines: {node: '>=18.0.0'} - - '@cloudflare/unenv-preset@2.14.0': - resolution: {integrity: sha512-XKAkWhi1nBdNsSEoNG9nkcbyvfUrSjSf+VYVPfOto3gLTZVc3F4g6RASCMh6IixBKCG2yDgZKQIHGKtjcnLnKg==} - peerDependencies: - unenv: 2.0.0-rc.24 - workerd: ^1.20260218.0 - peerDependenciesMeta: - workerd: - optional: true - - '@cloudflare/workerd-darwin-64@1.20260305.0': - resolution: {integrity: sha512-chhKOpymo0Eh9J3nymrauMqKGboCc4uz/j0gA1G4gioMnKsN2ZDKJ+qjRZDnCoVGy8u2C4pxlmyIfsXCAfIzhQ==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - - '@cloudflare/workerd-darwin-arm64@1.20260305.0': - resolution: {integrity: sha512-K9aG2OQk5bBfOP+fyGPqLcqZ9OR3ra6uwnxJ8f2mveq2A2LsCI7ZeGxQiAj75Ti80ytH/gJffZIx4Np2JtU3aQ==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - - '@cloudflare/workerd-linux-64@1.20260305.0': - resolution: {integrity: sha512-tt7XUoIw/cYFeGbkPkcZ6XX1aZm26Aju/4ih+DXxOosbBeGshFSrNJDBfAKKOvkjsAZymJ+WWVDBU+hmNaGfwA==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - - '@cloudflare/workerd-linux-arm64@1.20260305.0': - resolution: {integrity: sha512-72QTkY5EzylmvCZ8ZTrnJ9DctmQsfSof1OKyOWqu/pv/B2yACfuPMikq8RpPxvVu7hhS0ztGP6ZvXz72Htq4Zg==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - - '@cloudflare/workerd-windows-64@1.20260305.0': - resolution: {integrity: sha512-BA0uaQPOaI2F6mJtBDqplGnQQhpXCzwEMI33p/TnDxtSk9u8CGIfBFuI6uqo8mJ6ijIaPjeBLGOn2CiRMET4qg==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - - '@cloudflare/workers-types@4.20260317.1': - resolution: {integrity: sha512-+G4eVwyCpm8Au1ex8vQBCuA9wnwqetz4tPNRoB/53qvktERWBRMQnrtvC1k584yRE3emMThtuY0gWshvSJ++PQ==} - - '@coinbase/cdp-sdk@1.45.0': - resolution: {integrity: sha512-4fgGOhyN9g/pTDE9NtsKUapwFsubrk9wafz8ltmBqSwWqLZWfWxXkVmzMYYFAf+qeGf/X9JqJtmvDVaHFlXWlw==} - - '@coinbase/wallet-sdk@3.9.3': - resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} - - '@coinbase/wallet-sdk@4.3.6': - resolution: {integrity: sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==} - '@commitlint/cli@20.4.2': resolution: {integrity: sha512-YjYSX2yj/WsVoxh9mNiymfFS2ADbg2EK4+1WAsMuckwKMCqJ5PDG0CJU/8GvmHWcv4VRB2V02KqSiecRksWqZQ==} engines: {node: '>=v18'} @@ -739,19 +289,6 @@ packages: resolution: {integrity: sha512-aO5l99BQJ0X34ft8b0h7QFkQlqxC6e7ZPVmBKz13xM9O8obDaM1Cld4sQlJDXXU/VFuUzQ30mVtHjVz74TuStw==} engines: {node: '>=v18'} - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@databeat/tracker@0.9.3': - resolution: {integrity: sha512-eGsiNU/CRFujcNtUUqvBiqveCs6S6SiAhalXPDodbk74d3FzvLqHDn5k6WfOEJIhrP3CbYgfMXL0nk51s/rQsg==} - - '@ecies/ciphers@0.2.5': - resolution: {integrity: sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==} - engines: {bun: '>=1', deno: '>=2', node: '>=16'} - peerDependencies: - '@noble/ciphers': ^1.0.0 - '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} @@ -761,18 +298,6 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@emotion/is-prop-valid@1.4.0': - resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} - - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.25.0': resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} engines: {node: '>=18'} @@ -791,12 +316,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.0': resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} engines: {node: '>=18'} @@ -815,12 +334,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.0': resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} engines: {node: '>=18'} @@ -839,12 +352,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.0': resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} engines: {node: '>=18'} @@ -863,12 +370,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.0': resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} engines: {node: '>=18'} @@ -887,12 +388,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.0': resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} engines: {node: '>=18'} @@ -911,12 +406,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.0': resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} engines: {node: '>=18'} @@ -935,12 +424,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.0': resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} engines: {node: '>=18'} @@ -959,12 +442,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.0': resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} engines: {node: '>=18'} @@ -983,12 +460,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.0': resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} engines: {node: '>=18'} @@ -1007,12 +478,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.0': resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} engines: {node: '>=18'} @@ -1031,12 +496,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.0': resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} engines: {node: '>=18'} @@ -1055,12 +514,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.0': resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} engines: {node: '>=18'} @@ -1079,12 +532,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.0': resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} engines: {node: '>=18'} @@ -1103,12 +550,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.0': resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} engines: {node: '>=18'} @@ -1127,12 +568,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.0': resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} engines: {node: '>=18'} @@ -1151,12 +586,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.0': resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} engines: {node: '>=18'} @@ -1193,12 +622,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.0': resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} engines: {node: '>=18'} @@ -1235,12 +658,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.0': resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} engines: {node: '>=18'} @@ -1271,12 +688,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.0': resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} engines: {node: '>=18'} @@ -1295,12 +706,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.0': resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} engines: {node: '>=18'} @@ -1319,12 +724,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.0': resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} engines: {node: '>=18'} @@ -1343,12 +742,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.0': resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} engines: {node: '>=18'} @@ -1397,22 +790,6 @@ packages: resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@ethereumjs/common@3.2.0': - resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} - - '@ethereumjs/rlp@4.0.1': - resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} - engines: {node: '>=14'} - hasBin: true - - '@ethereumjs/tx@4.2.0': - resolution: {integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==} - engines: {node: '>=14'} - - '@ethereumjs/util@8.1.0': - resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} - engines: {node: '>=14'} - '@ethersproject/abi@5.8.0': resolution: {integrity: sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==} @@ -1503,30 +880,10 @@ packages: '@ethersproject/wordlists@5.8.0': resolution: {integrity: sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==} - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - - '@floating-ui/react-dom@2.1.8': - resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@gar/promise-retry@1.0.2': resolution: {integrity: sha512-Lm/ZLhDZcBECta3TmCQSngiQykFdfw+QtI1/GYMsZd4l3nG+P8WLB16XuS7WaBGLQ+9E+cOcWQsth9cayuGt8g==} engines: {node: ^20.17.0 || >=22.9.0} - '@gemini-wallet/core@0.3.2': - resolution: {integrity: sha512-Z4aHi3ECFf5oWYWM3F1rW83GJfB9OvhBYPTmb5q+VyK3uvzvS48lwo+jwh2eOoCRWEuT/crpb9Vwp2QaS5JqgQ==} - peerDependencies: - viem: '>=2.0.0' - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -1547,159 +904,6 @@ packages: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} - '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - '@inquirer/ansi@1.0.2': resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} @@ -1860,9 +1064,6 @@ packages: '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1876,122 +1077,16 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@lerna/create@9.0.5': resolution: {integrity: sha512-Gwd6ooSqXMdkdhiCGvHAfLRstj7W3ttr72WQB3Jf9HPP1A6mWtw0O80D0X+T/2hakqfe7lNLuKrEid4f7C0qbg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@lit-labs/ssr-dom-shim@1.5.1': - resolution: {integrity: sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==} - - '@lit/reactive-element@2.1.2': - resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} - - '@meshconnect/node-api@2.0.24': - resolution: {integrity: sha512-FXQisYc2QCyHK2IpA3H9fXwidWNbcBAD6hKIoMP4elicBb+owmr5fSnoBwqcBqhVCeZQh0yjcfPbI9xQET17TQ==} - - '@meshconnect/uwc-bridge-parent@1.1.1': - resolution: {integrity: sha512-Hx5ft4hEn50VUALZe06zcSzqBh6KUl5A1AGzy1AtCF3wVkRR/gpO4FJB3M1u1YapmEEGG6C6LW7LnUk58dzW/Q==} - - '@meshconnect/web-link-sdk@3.7.1': - resolution: {integrity: sha512-DP6rXP9uiKio4G130h9vySur9CB0xdbvXvvIKyeMFk8MMs4YEe6uY6aZhHTNNmyE58sNTqlrD/clP30lixDk3w==} - - '@metamask/eth-json-rpc-provider@1.0.1': - resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} - engines: {node: '>=14.0.0'} - - '@metamask/json-rpc-engine@7.3.3': - resolution: {integrity: sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-engine@8.0.2': - resolution: {integrity: sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-middleware-stream@7.0.2': - resolution: {integrity: sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==} - engines: {node: '>=16.0.0'} - - '@metamask/object-multiplex@2.1.0': - resolution: {integrity: sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==} - engines: {node: ^16.20 || ^18.16 || >=20} - - '@metamask/onboarding@1.0.1': - resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} - - '@metamask/providers@16.1.0': - resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} - engines: {node: ^18.18 || >=20} - - '@metamask/rpc-errors@6.4.0': - resolution: {integrity: sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==} - engines: {node: '>=16.0.0'} - - '@metamask/rpc-errors@7.0.2': - resolution: {integrity: sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==} - engines: {node: ^18.20 || ^20.17 || >=22} - - '@metamask/safe-event-emitter@2.0.0': - resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} - - '@metamask/safe-event-emitter@3.1.2': - resolution: {integrity: sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==} - engines: {node: '>=12.0.0'} - - '@metamask/sdk-analytics@0.0.5': - resolution: {integrity: sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==} - deprecated: No longer maintained, superseded by @metamask/connect-analytics - - '@metamask/sdk-communication-layer@0.33.1': - resolution: {integrity: sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==} - deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect - peerDependencies: - cross-fetch: ^4.0.0 - eciesjs: '*' - eventemitter2: ^6.4.9 - readable-stream: ^3.6.2 - socket.io-client: ^4.5.1 - - '@metamask/sdk-install-modal-web@0.32.1': - resolution: {integrity: sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==} - deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect - - '@metamask/sdk@0.33.1': - resolution: {integrity: sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==} - deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect - - '@metamask/superstruct@3.2.1': - resolution: {integrity: sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==} - engines: {node: '>=16.0.0'} - - '@metamask/utils@11.10.0': - resolution: {integrity: sha512-+bWmTOANx1MbBW6RFM8Se4ZoigFYGXiuIrkhjj4XnG5Aez8uWaTSZ76yn9srKKClv+PoEVoAuVtcUOogFEMUNA==} - engines: {node: ^18.18 || ^20.14 || >=22} - - '@metamask/utils@5.0.2': - resolution: {integrity: sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==} - engines: {node: '>=14.0.0'} - - '@metamask/utils@8.5.0': - resolution: {integrity: sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==} - engines: {node: '>=16.0.0'} - - '@metamask/utils@9.3.0': - resolution: {integrity: sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==} - engines: {node: '>=16.0.0'} - '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@noble/ciphers@1.2.1': - resolution: {integrity: sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==} - engines: {node: ^14.21.3 || >=16} - '@noble/ciphers@1.3.0': resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} engines: {node: ^14.21.3 || >=16} @@ -2204,98 +1299,6 @@ packages: '@package-json/types@0.0.12': resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} - '@parcel/watcher-android-arm64@2.5.6': - resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.6': - resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.6': - resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.6': - resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.6': - resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm-musl@2.5.6': - resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [musl] - - '@parcel/watcher-linux-arm64-glibc@2.5.6': - resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm64-musl@2.5.6': - resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@parcel/watcher-linux-x64-glibc@2.5.6': - resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-x64-musl@2.5.6': - resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@parcel/watcher-win32-arm64@2.5.6': - resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.6': - resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.6': - resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.6': - resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} - engines: {node: '>= 10.0.0'} - - '@paulmillr/qr@0.2.1': - resolution: {integrity: sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==} - deprecated: 'Switch to "qr" (new package name) for security updates: npm install qr' - '@polygonlabs/apps-team-lint@2.0.2': resolution: {integrity: sha512-vMfjNcPQpR8WEXt+/YG781Ktym82XPrKkGwfgqLBk53Gx18VBzO113wZuFvvpKHZXg8lzqSIY8UgJowcJUaxtw==} peerDependencies: @@ -2321,10703 +1324,4973 @@ packages: '@ethersproject/providers': ^5.0.14 '@ethersproject/solidity': ^5.0.7 - '@poppinss/colors@4.1.6': - resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} - - '@poppinss/dumper@0.6.5': - resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} + '@remotion/bundler@4.0.290': + resolution: {integrity: sha512-nE9BZKcldoHQ2Z26+vq0MUnt1Hj8UnRyt7wNlwPpTOz0IzUnaPpii99vMlUL64krqkNLGW80V5kcABViODaM+g==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@poppinss/exception@1.2.3': - resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} + '@remotion/cli@4.0.290': + resolution: {integrity: sha512-1uagTi1+JSfMmF52+4+5LbHD/+MoJvTEuB7V7cCI8xthYpWjgkyGIola235EfqnzwIoN6pQUOBZHH2fQZuLK7Q==} + hasBin: true + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@radix-ui/number@1.1.1': - resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + '@remotion/compositor-darwin-arm64@4.0.290': + resolution: {integrity: sha512-GRo1E2M2i82WDMX2t2CB1GwfoWRu7iX7WDiwOH8g1Ro5jEH8SW2Ike3wqJNrohAriISm8x+/3gKYmYUps8p/Sw==} + cpu: [arm64] + os: [darwin] - '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@remotion/compositor-darwin-x64@4.0.290': + resolution: {integrity: sha512-gEQEcDBRtm6b2nW7kDwJdFWG8XipLhb7AP7WFO+u7OwFr9YmSDYCDIz4GnL8XMrvzDAwDmzj6zgJkP+v3jgirw==} + cpu: [x64] + os: [darwin] - '@radix-ui/react-arrow@1.1.7': - resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/compositor-linux-arm64-gnu@4.0.290': + resolution: {integrity: sha512-OAxfdm2HyiTJCCnkJjAU9bJBqdw62g+NwapSD0/KwVPfXRWV/2zN+LW1ToanQ96HdVtNGwXryTv4FO0HO2IlOA==} + cpu: [arm64] + os: [linux] + libc: [glibc] - '@radix-ui/react-aspect-ratio@1.1.8': - resolution: {integrity: sha512-5nZrJTF7gH+e0nZS7/QxFz6tJV4VimhQb1avEgtsJxvvIp5JilL+c58HICsKzPxghdwaDt48hEfPM1au4zGy+w==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/compositor-linux-arm64-musl@4.0.290': + resolution: {integrity: sha512-oo52TZX343ZuGCX+JeJpmPjSTLe9hCV6UlxjAJZhNzjkihUDFU9twa7jwE2ktZDsRAgvIxrs18xwQN8hLFxHUQ==} + cpu: [arm64] + os: [linux] + libc: [musl] - '@radix-ui/react-checkbox@1.3.3': - resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/compositor-linux-x64-gnu@4.0.290': + resolution: {integrity: sha512-IoHvGiqUZqmdUCSr8s5/EFwcZa3v0x7PHD3fxr73xZyddXDla1soFiXQO1xQzH7C5LmuEx1ekoQhxcx8oFRf0A==} + cpu: [x64] + os: [linux] + libc: [glibc] - '@radix-ui/react-collapsible@1.1.12': - resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/compositor-linux-x64-musl@4.0.290': + resolution: {integrity: sha512-QN++ycuoeeeSLGrOA/MJ2onkqMRm0FaHh/6dh60dVK9wjWoMDrzZL1V8fPX075SyWVL01SN7bzTyotwaUJrMxg==} + cpu: [x64] + os: [linux] + libc: [musl] - '@radix-ui/react-collection@1.1.7': - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/compositor-win32-x64-msvc@4.0.290': + resolution: {integrity: sha512-acRUOIeswQuJ74tKnuziwZIUcsQ6isQpwYUla0CiFrC9MVdbTFlt37eyvmkgXXkCartPWlFptfDYDv9li6mBmA==} + cpu: [x64] + os: [win32] - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@remotion/media-parser@4.0.290': + resolution: {integrity: sha512-u3/nRI7ghf0Cnci2DrbHrdHLIW7GFCaV5qVNT6IzOqdpVmwiS9sz3jAM85r7wrMKfed2QqVbKsRaLSY3MGA0RQ==} - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + '@remotion/media-utils@4.0.290': + resolution: {integrity: sha512-VbBy7NtcLm/jG9c2nq2DYSMIx6AI+EyX/66EQ57txnMIuR/OSdx2j0PoMg/lyAl1RzZp8k/epBKTcod420y2PQ==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@radix-ui/react-context@1.1.3': - resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} + '@remotion/player@4.0.290': + resolution: {integrity: sha512-RsOSm3NOGwyRz11nRqfgFs0Mx7pWrXnHCcmWWUy5iaPKEbt8sCPsO4tVN5Ceogh0QdesoC3FGNeD/iGYk46e+A==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@radix-ui/react-dialog@1.1.15': - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + '@remotion/renderer@4.0.290': + resolution: {integrity: sha512-/yNFkY5L/4jOmvgMqAmAa+qXenRilJrSWWDMdLFta2znXIE2m8NGZzQo9MlE7I+N1DcdZ2W+vrka01Epf7HIgQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@remotion/streaming@4.0.290': + resolution: {integrity: sha512-i043W/aXDG2ffOhMqxj9DjzCegzraH+WaiAZ8wMihXWkkYz83r2RgN+w+Zb1a10MM3VG1U2dgZ2QYymu3SEq+w==} - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/studio-server@4.0.290': + resolution: {integrity: sha512-r+iSKai3gkvnx0d0QE6/YYmwAM3L8C4AJz4ITkw4txtBNbrOWJds8abbBCNs/zmfVLflsft+V0Y76vW9a/7HZA==} - '@radix-ui/react-dropdown-menu@2.1.16': - resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@remotion/studio-shared@4.0.290': + resolution: {integrity: sha512-CU5aGCzVUEadOb2XqG0gs/rUl5W8UIZVakNjZQcBVUXRq81fyOPCKvrBQHxwA2zWTiyMmvgKAm9LEuozVzAY2A==} - '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + '@remotion/studio@4.0.290': + resolution: {integrity: sha512-Wf78/DCCmO+Ck4IWyVBzcWQVMubIbArxZUFgc/45owF0d7d3W3iKV/rs0deUAWkHTcR4mI+47ha2e3vDRdOMhQ==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + '@remotion/zod-types@4.0.290': + resolution: {integrity: sha512-3VSLK8ycb76fMXxFELaQ5EMSbQIL4iRrcPRr+6eKothchF+Bm8C2IlB2dqTZMj5W/3AP71qv4vBizi8ZgHjhTg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + zod: 3.22.3 - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@scure/base@1.2.6': + resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} - '@radix-ui/react-menu@2.1.16': - resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@scure/bip32@1.7.0': + resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} - '@radix-ui/react-popper@1.2.8': - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@scure/bip39@1.6.0': + resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} - '@radix-ui/react-presence@1.1.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sigstore/core@3.1.0': + resolution: {integrity: sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==} + engines: {node: ^20.17.0 || >=22.9.0} - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sigstore/protobuf-specs@0.5.0': + resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} + engines: {node: ^18.17.0 || >=20.5.0} - '@radix-ui/react-primitive@2.1.4': - resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sigstore/sign@4.1.0': + resolution: {integrity: sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==} + engines: {node: ^20.17.0 || >=22.9.0} - '@radix-ui/react-progress@1.1.8': - resolution: {integrity: sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sigstore/tuf@4.0.1': + resolution: {integrity: sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==} + engines: {node: ^20.17.0 || >=22.9.0} - '@radix-ui/react-radio-group@1.3.8': - resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sigstore/verify@3.1.0': + resolution: {integrity: sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==} + engines: {node: ^20.17.0 || >=22.9.0} - '@radix-ui/react-roving-focus@1.1.11': - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@simple-libs/stream-utils@1.2.0': + resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==} + engines: {node: '>=18'} - '@radix-ui/react-select@2.2.6': - resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@sinclair/typebox@0.34.48': + resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==} - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@spruceid/siwe-parser@2.1.2': + resolution: {integrity: sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==} - '@radix-ui/react-slot@1.2.4': - resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@stablelib/binary@1.0.1': + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} - '@radix-ui/react-switch@1.2.6': - resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@stablelib/int@1.0.1': + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} - '@radix-ui/react-tabs@1.1.13': - resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@stablelib/random@1.0.2': + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} - '@radix-ui/react-toast@1.2.15': - resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@stablelib/wipe@1.0.1': + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} - '@radix-ui/react-tooltip@1.2.8': - resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tsconfig/node-ts@23.6.4': + resolution: {integrity: sha512-37BMJvNQZ+vTgd1xG2TGBkJ6ENeT4eO4Wh2CHrnn0IwH7ybLFCzh4Uc//kc7UIvqiRac4uGdIc1meKOjMSlKzw==} - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@tsconfig/node24@24.0.4': + resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} - '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@tufjs/models@4.1.0': + resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} + engines: {node: ^20.17.0 || >=22.9.0} - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@radix-ui/react-use-previous@1.1.1': - resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@types/conventional-commits-parser@5.0.2': + resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==} - '@radix-ui/react-use-rect@1.1.1': - resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@radix-ui/react-use-size@1.1.1': - resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@radix-ui/react-visually-hidden@1.2.3': - resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - '@radix-ui/react-visually-hidden@1.2.4': - resolution: {integrity: sha512-kaeiyGCe844dkb9AVF+rb4yTyb1LiLN/e3es3nLiRyN4dC8AduBYPMnnNlDjX2VDOcvDEiPnRNMJeWCfsX0txg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@radix-ui/rect@1.1.1': - resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@react-oauth/google@0.11.1': - resolution: {integrity: sha512-tywZisXbsdaRBVbEu0VX6dRbOSL2I6DgY97woq5NMOOOz+xtDsm418vqq+Vx10KMtra3kdHMRMf0hXLWrk2RMg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@remotion/bundler@4.0.290': - resolution: {integrity: sha512-nE9BZKcldoHQ2Z26+vq0MUnt1Hj8UnRyt7wNlwPpTOz0IzUnaPpii99vMlUL64krqkNLGW80V5kcABViODaM+g==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@remotion/cli@4.0.290': - resolution: {integrity: sha512-1uagTi1+JSfMmF52+4+5LbHD/+MoJvTEuB7V7cCI8xthYpWjgkyGIola235EfqnzwIoN6pQUOBZHH2fQZuLK7Q==} - hasBin: true - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/node@22.19.13': + resolution: {integrity: sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==} - '@remotion/compositor-darwin-arm64@4.0.290': - resolution: {integrity: sha512-GRo1E2M2i82WDMX2t2CB1GwfoWRu7iX7WDiwOH8g1Ro5jEH8SW2Ike3wqJNrohAriISm8x+/3gKYmYUps8p/Sw==} - cpu: [arm64] - os: [darwin] + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} - '@remotion/compositor-darwin-x64@4.0.290': - resolution: {integrity: sha512-gEQEcDBRtm6b2nW7kDwJdFWG8XipLhb7AP7WFO+u7OwFr9YmSDYCDIz4GnL8XMrvzDAwDmzj6zgJkP+v3jgirw==} - cpu: [x64] - os: [darwin] + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@remotion/compositor-linux-arm64-gnu@4.0.290': - resolution: {integrity: sha512-OAxfdm2HyiTJCCnkJjAU9bJBqdw62g+NwapSD0/KwVPfXRWV/2zN+LW1ToanQ96HdVtNGwXryTv4FO0HO2IlOA==} - cpu: [arm64] - os: [linux] - libc: [glibc] + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@remotion/compositor-linux-arm64-musl@4.0.290': - resolution: {integrity: sha512-oo52TZX343ZuGCX+JeJpmPjSTLe9hCV6UlxjAJZhNzjkihUDFU9twa7jwE2ktZDsRAgvIxrs18xwQN8hLFxHUQ==} - cpu: [arm64] - os: [linux] - libc: [musl] + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 - '@remotion/compositor-linux-x64-gnu@4.0.290': - resolution: {integrity: sha512-IoHvGiqUZqmdUCSr8s5/EFwcZa3v0x7PHD3fxr73xZyddXDla1soFiXQO1xQzH7C5LmuEx1ekoQhxcx8oFRf0A==} - cpu: [x64] - os: [linux] - libc: [glibc] + '@types/react@18.3.28': + resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} - '@remotion/compositor-linux-x64-musl@4.0.290': - resolution: {integrity: sha512-QN++ycuoeeeSLGrOA/MJ2onkqMRm0FaHh/6dh60dVK9wjWoMDrzZL1V8fPX075SyWVL01SN7bzTyotwaUJrMxg==} - cpu: [x64] - os: [linux] - libc: [musl] + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@remotion/compositor-win32-x64-msvc@4.0.290': - resolution: {integrity: sha512-acRUOIeswQuJ74tKnuziwZIUcsQ6isQpwYUla0CiFrC9MVdbTFlt37eyvmkgXXkCartPWlFptfDYDv9li6mBmA==} - cpu: [x64] - os: [win32] + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@remotion/media-parser@4.0.290': - resolution: {integrity: sha512-u3/nRI7ghf0Cnci2DrbHrdHLIW7GFCaV5qVNT6IzOqdpVmwiS9sz3jAM85r7wrMKfed2QqVbKsRaLSY3MGA0RQ==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@remotion/media-utils@4.0.290': - resolution: {integrity: sha512-VbBy7NtcLm/jG9c2nq2DYSMIx6AI+EyX/66EQ57txnMIuR/OSdx2j0PoMg/lyAl1RzZp8k/epBKTcod420y2PQ==} + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@typescript-eslint/parser': ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@remotion/player@4.0.290': - resolution: {integrity: sha512-RsOSm3NOGwyRz11nRqfgFs0Mx7pWrXnHCcmWWUy5iaPKEbt8sCPsO4tVN5Ceogh0QdesoC3FGNeD/iGYk46e+A==} + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@remotion/renderer@4.0.290': - resolution: {integrity: sha512-/yNFkY5L/4jOmvgMqAmAa+qXenRilJrSWWDMdLFta2znXIE2m8NGZzQo9MlE7I+N1DcdZ2W+vrka01Epf7HIgQ==} + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/streaming@4.0.290': - resolution: {integrity: sha512-i043W/aXDG2ffOhMqxj9DjzCegzraH+WaiAZ8wMihXWkkYz83r2RgN+w+Zb1a10MM3VG1U2dgZ2QYymu3SEq+w==} - - '@remotion/studio-server@4.0.290': - resolution: {integrity: sha512-r+iSKai3gkvnx0d0QE6/YYmwAM3L8C4AJz4ITkw4txtBNbrOWJds8abbBCNs/zmfVLflsft+V0Y76vW9a/7HZA==} + typescript: '>=4.8.4 <6.0.0' - '@remotion/studio-shared@4.0.290': - resolution: {integrity: sha512-CU5aGCzVUEadOb2XqG0gs/rUl5W8UIZVakNjZQcBVUXRq81fyOPCKvrBQHxwA2zWTiyMmvgKAm9LEuozVzAY2A==} + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@remotion/studio@4.0.290': - resolution: {integrity: sha512-Wf78/DCCmO+Ck4IWyVBzcWQVMubIbArxZUFgc/45owF0d7d3W3iKV/rs0deUAWkHTcR4mI+47ha2e3vDRdOMhQ==} + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + typescript: '>=4.8.4 <6.0.0' - '@remotion/zod-types@4.0.290': - resolution: {integrity: sha512-3VSLK8ycb76fMXxFELaQ5EMSbQIL4iRrcPRr+6eKothchF+Bm8C2IlB2dqTZMj5W/3AP71qv4vBizi8ZgHjhTg==} + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - zod: 3.22.3 - - '@reown/appkit-common@1.7.8': - resolution: {integrity: sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==} - - '@reown/appkit-controllers@1.7.8': - resolution: {integrity: sha512-IdXlJlivrlj6m63VsGLsjtPHHsTWvKGVzWIP1fXZHVqmK+rZCBDjCi9j267Rb9/nYRGHWBtlFQhO8dK35WfeDA==} - - '@reown/appkit-pay@1.7.8': - resolution: {integrity: sha512-OSGQ+QJkXx0FEEjlpQqIhT8zGJKOoHzVnyy/0QFrl3WrQTjCzg0L6+i91Ad5Iy1zb6V5JjqtfIFpRVRWN4M3pw==} - - '@reown/appkit-polyfills@1.7.8': - resolution: {integrity: sha512-W/kq786dcHHAuJ3IV2prRLEgD/2iOey4ueMHf1sIFjhhCGMynMkhsOhQMUH0tzodPqUgAC494z4bpIDYjwWXaA==} - - '@reown/appkit-scaffold-ui@1.7.8': - resolution: {integrity: sha512-RCeHhAwOrIgcvHwYlNWMcIDibdI91waaoEYBGw71inE0kDB8uZbE7tE6DAXJmDkvl0qPh+DqlC4QbJLF1FVYdQ==} + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@reown/appkit-ui@1.7.8': - resolution: {integrity: sha512-1hjCKjf6FLMFzrulhl0Y9Vb9Fu4royE+SXCPSWh4VhZhWqlzUFc7kutnZKx8XZFVQH4pbBvY62SpRC93gqoHow==} + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@reown/appkit-utils@1.7.8': - resolution: {integrity: sha512-8X7UvmE8GiaoitCwNoB86pttHgQtzy4ryHZM9kQpvjQ0ULpiER44t1qpVLXNM4X35O0v18W0Dk60DnYRMH2WRw==} + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - valtio: 1.13.2 - - '@reown/appkit-wallet@1.7.8': - resolution: {integrity: sha512-kspz32EwHIOT/eg/ZQbFPxgXq0B/olDOj3YMu7gvLEFz4xyOFd/wgzxxAXkp5LbG4Cp++s/elh79rVNmVFdB9A==} + typescript: '>=4.8.4 <6.0.0' - '@reown/appkit@1.7.8': - resolution: {integrity: sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA==} + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@rolldown/pluginutils@1.0.0-beta.27': - resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} cpu: [arm] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} cpu: [arm] os: [linux] - libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} - cpu: [loong64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} - cpu: [loong64] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} - cpu: [ppc64] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} - cpu: [x64] - os: [openbsd] - - '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} - cpu: [arm64] - os: [openharmony] + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] - '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} - cpu: [x64] - os: [win32] - - '@safe-global/safe-apps-provider@0.18.6': - resolution: {integrity: sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q==} - - '@safe-global/safe-apps-sdk@9.1.0': - resolution: {integrity: sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@safe-global/safe-gateway-typescript-sdk@3.23.1': - resolution: {integrity: sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw==} - engines: {node: '>=16'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@scure/base@1.1.9': - resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@scure/base@1.2.6': - resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@scure/bip32@1.4.0': - resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - '@scure/bip32@1.6.2': - resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@scure/bip32@1.7.0': - resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@scure/bip39@1.3.0': - resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@scure/bip39@1.5.4': - resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@scure/bip39@1.6.0': - resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@sigstore/bundle@4.0.0': - resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} - engines: {node: ^20.17.0 || >=22.9.0} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@sigstore/core@3.1.0': - resolution: {integrity: sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==} - engines: {node: ^20.17.0 || >=22.9.0} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@sigstore/protobuf-specs@0.5.0': - resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} - engines: {node: ^18.17.0 || >=20.5.0} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@sigstore/sign@4.1.0': - resolution: {integrity: sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==} - engines: {node: ^20.17.0 || >=22.9.0} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@sigstore/tuf@4.0.1': - resolution: {integrity: sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==} - engines: {node: ^20.17.0 || >=22.9.0} + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@sigstore/verify@3.1.0': - resolution: {integrity: sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==} - engines: {node: ^20.17.0 || >=22.9.0} + '@x402/core@2.5.0': + resolution: {integrity: sha512-nUr8HW8WhkU1DvrpUfsRvALy5NF8UWKoFezZOtX61mohxp2lWZpJ2GnvscxDM8nmBAbtIollmksd5z5pj8InXw==} - '@simple-libs/stream-utils@1.2.0': - resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==} - engines: {node: '>=18'} + '@x402/evm@2.5.0': + resolution: {integrity: sha512-MBSTQZwLobMVcmYO7itOMJRkxfHstsDyr7F94o9Rk/Oinz0kjvCe4DFgZmFXyz3nQUgQFmDVgTK5KIzfYR5uIA==} - '@sinclair/typebox@0.34.48': - resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==} + '@x402/extensions@2.5.0': + resolution: {integrity: sha512-e7IQShbGUM/XQmzI8DQh2tX/k2XDUGI9DNF+ij2NHUyPEqAt5/mJCwOlaxS/60FWFdfFRfWjTsqaoS7Z8WLi+A==} - '@sindresorhus/is@7.2.0': - resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} - engines: {node: '>=18'} + '@x402/fetch@2.5.0': + resolution: {integrity: sha512-D2jH3bn0nf8w9Jg3Vxo+6reE6Z9GickzkSIw+udITJFvsrGOpfjZvhcTeflLcthCODk4Nuu9Oe8x7Q3NLUdaRQ==} - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - '@solana-program/system@0.10.0': - resolution: {integrity: sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g==} - peerDependencies: - '@solana/kit': ^5.0 + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@solana-program/token@0.9.0': - resolution: {integrity: sha512-vnZxndd4ED4Fc56sw93cWZ2djEeeOFxtaPS8SPf5+a+JZjKA/EnKqzbE1y04FuMhIVrLERQ8uR8H2h72eZzlsA==} - peerDependencies: - '@solana/kit': ^5.0 + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@solana/accounts@5.5.1': - resolution: {integrity: sha512-TfOY9xixg5rizABuLVuZ9XI2x2tmWUC/OoN556xwfDlhBHBjKfszicYYOyD6nbFmwTGYarCmyGIdteXxTXIdhQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@yarnpkg/parsers@3.0.2': + resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} + engines: {node: '>=18.12.0'} - '@solana/addresses@5.5.1': - resolution: {integrity: sha512-5xoah3Q9G30HQghu/9BiHLb5pzlPKRC3zydQDmE3O9H//WfayxTFppsUDCL6FjYUHqj/wzK6CWHySglc2RkpdA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true - '@solana/assertions@5.5.1': - resolution: {integrity: sha512-YTCSWAlGwSlVPnWtWLm3ukz81wH4j2YaCveK+TjpvUU88hTy6fmUqxi0+hvAMAe4zKXpJyj3Az7BrLJRxbIm4Q==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true - '@solana/buffer-layout@4.0.1': - resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} - engines: {node: '>=5.10'} + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} - '@solana/codecs-core@2.3.0': - resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: '>=5.3.3' + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} - '@solana/codecs-core@5.5.1': - resolution: {integrity: sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw==} - engines: {node: '>=20.18.0'} + abitype@1.2.3: + resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} peerDependencies: - typescript: ^5.0.0 + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 peerDependenciesMeta: typescript: optional: true - - '@solana/codecs-data-structures@5.5.1': - resolution: {integrity: sha512-97bJWGyUY9WvBz3mX1UV3YPWGDTez6btCfD0ip3UVEXJbItVuUiOkzcO5iFDUtQT5riKT6xC+Mzl+0nO76gd0w==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: + zod: optional: true - '@solana/codecs-numbers@2.3.0': - resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} - engines: {node: '>=20.18.0'} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: - typescript: '>=5.3.3' + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@solana/codecs-numbers@5.5.1': - resolution: {integrity: sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true - '@solana/codecs-strings@5.5.1': - resolution: {integrity: sha512-7klX4AhfHYA+uKKC/nxRGP2MntbYQCR3N6+v7bk1W/rSxYuhNmt+FN8aoThSZtWIKwN6BEyR1167ka8Co1+E7A==} - engines: {node: '>=20.18.0'} - peerDependencies: - fastestsmallesttextencoderdecoder: ^1.0.22 - typescript: ^5.0.0 - peerDependenciesMeta: - fastestsmallesttextencoderdecoder: - optional: true - typescript: - optional: true + add-stream@1.0.0: + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - '@solana/codecs@5.5.1': - resolution: {integrity: sha512-Vea29nJub/bXjfzEV7ZZQ/PWr1pYLZo3z0qW0LQL37uKKVzVFRQlwetd7INk3YtTD3xm9WUYr7bCvYUk3uKy2g==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - '@solana/errors@2.3.0': - resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} - engines: {node: '>=20.18.0'} - hasBin: true - peerDependencies: - typescript: '>=5.3.3' + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} - '@solana/errors@5.5.1': - resolution: {integrity: sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg==} - engines: {node: '>=20.18.0'} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} - '@solana/fast-stable-stringify@5.5.1': - resolution: {integrity: sha512-Ni7s2FN33zTzhTFgRjEbOVFO+UAmK8qi3Iu0/GRFYK4jN696OjKHnboSQH/EacQ+yGqS54bfxf409wU5dsLLCw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} - '@solana/functional@5.5.1': - resolution: {integrity: sha512-tTHoJcEQq3gQx5qsdsDJ0LEJeFzwNpXD80xApW9o/PPoCNimI3SALkZl+zNW8VnxRrV3l3yYvfHWBKe/X3WG3w==} - engines: {node: '>=20.18.0'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: - typescript: ^5.0.0 + ajv: ^8.0.0 peerDependenciesMeta: - typescript: + ajv: optional: true - '@solana/instruction-plans@5.5.1': - resolution: {integrity: sha512-7z3CB7YMcFKuVvgcnNY8bY6IsZ8LG61Iytbz7HpNVGX2u1RthOs1tRW8luTzSG1MPL0Ox7afyAVMYeFqSPHnaQ==} - engines: {node: '>=20.18.0'} + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ajv: ^6.9.1 - '@solana/instructions@5.5.1': - resolution: {integrity: sha512-h0G1CG6S+gUUSt0eo6rOtsaXRBwCq1+Js2a+Ps9Bzk9q7YHNFA75/X0NWugWLgC92waRp66hrjMTiYYnLBoWOQ==} - engines: {node: '>=20.18.0'} + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ajv: ^8.8.2 - '@solana/keys@5.5.1': - resolution: {integrity: sha512-KRD61cL7CRL+b4r/eB9dEoVxIf/2EJ1Pm1DmRYhtSUAJD2dJ5Xw8QFuehobOGm9URqQ7gaQl+Fkc1qvDlsWqKg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - '@solana/kit@5.5.1': - resolution: {integrity: sha512-irKUGiV2yRoyf+4eGQ/ZeCRxa43yjFEL1DUI5B0DkcfZw3cr0VJtVJnrG8OtVF01vT0OUfYOcUn6zJW5TROHvQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - '@solana/nominal-types@5.5.1': - resolution: {integrity: sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} - '@solana/offchain-messages@5.5.1': - resolution: {integrity: sha512-g+xHH95prTU+KujtbOzj8wn+C7ZNoiLhf3hj6nYq3MTyxOXtBEysguc97jJveUZG0K97aIKG6xVUlMutg5yxhw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} + engines: {node: '>=18'} - '@solana/options@5.5.1': - resolution: {integrity: sha512-eo971c9iLNLmk+yOFyo7yKIJzJ/zou6uKpy6mBuyb/thKtS/haiKIc3VLhyTXty3OH2PW8yOlORJnv4DexJB8A==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - '@solana/plugin-core@5.5.1': - resolution: {integrity: sha512-VUZl30lDQFJeiSyNfzU1EjYt2QZvoBFKEwjn1lilUJw7KgqD5z7mbV7diJhT+dLFs36i0OsjXvq5kSygn8YJ3A==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} - '@solana/programs@5.5.1': - resolution: {integrity: sha512-7U9kn0Jsx1NuBLn5HRTFYh78MV4XN145Yc3WP/q5BlqAVNlMoU9coG5IUTJIG847TUqC1lRto3Dnpwm6T4YRpA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} - '@solana/promises@5.5.1': - resolution: {integrity: sha512-T9lfuUYkGykJmppEcssNiCf6yiYQxJkhiLPP+pyAc2z84/7r3UVIb2tNJk4A9sucS66pzJnVHZKcZVGUUp6wzA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} - '@solana/rpc-api@5.5.1': - resolution: {integrity: sha512-XWOQQPhKl06Vj0xi3RYHAc6oEQd8B82okYJ04K7N0Vvy3J4PN2cxeK7klwkjgavdcN9EVkYCChm2ADAtnztKnA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} - '@solana/rpc-parsed-types@5.5.1': - resolution: {integrity: sha512-HEi3G2nZqGEsa3vX6U0FrXLaqnUCg4SKIUrOe8CezD+cSFbRTOn3rCLrUmJrhVyXlHoQVaRO9mmeovk31jWxJg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + apg-js@4.4.0: + resolution: {integrity: sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==} - '@solana/rpc-spec-types@5.5.1': - resolution: {integrity: sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - '@solana/rpc-spec@5.5.1': - resolution: {integrity: sha512-m3LX2bChm3E3by4mQrH4YwCAFY57QBzuUSWqlUw7ChuZ+oLLOq7b2czi4i6L4Vna67j3eCmB3e+4tqy1j5wy7Q==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - '@solana/rpc-subscriptions-api@5.5.1': - resolution: {integrity: sha512-5Oi7k+GdeS8xR2ly1iuSFkAv6CZqwG0Z6b1QZKbEgxadE1XGSDrhM2cn59l+bqCozUWCqh4c/A2znU/qQjROlw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - '@solana/rpc-subscriptions-channel-websocket@5.5.1': - resolution: {integrity: sha512-7tGfBBrYY8TrngOyxSHoCU5shy86iA9SRMRrPSyBhEaZRAk6dnbdpmUTez7gtdVo0BCvh9nzQtUycKWSS7PnFQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} - '@solana/rpc-subscriptions-spec@5.5.1': - resolution: {integrity: sha512-iq+rGq5fMKP3/mKHPNB6MC8IbVW41KGZg83Us/+LE3AWOTWV1WT20KT2iH1F1ik9roi42COv/TpoZZvhKj45XQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - '@solana/rpc-subscriptions@5.5.1': - resolution: {integrity: sha512-CTMy5bt/6mDh4tc6vUJms9EcuZj3xvK0/xq8IQ90rhkpYvate91RjBP+egvjgSayUg9yucU9vNuUpEjz4spM7w==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - '@solana/rpc-transformers@5.5.1': - resolution: {integrity: sha512-OsWqLCQdcrRJKvHiMmwFhp9noNZ4FARuMkHT5us3ustDLXaxOjF0gfqZLnMkulSLcKt7TGXqMhBV+HCo7z5M8Q==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} - '@solana/rpc-transport-http@5.5.1': - resolution: {integrity: sha512-yv8GoVSHqEV0kUJEIhkdOVkR2SvJ6yoWC51cJn2rSV7plr6huLGe0JgujCmB7uZhhaLbcbP3zxXxu9sOjsi7Fg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} - '@solana/rpc-types@5.5.1': - resolution: {integrity: sha512-bibTFQ7PbHJJjGJPmfYC2I+/5CRFS4O2p9WwbFraX1Keeel+nRrt/NBXIy8veP5AEn2sVJIyJPpWBRpCx1oATA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} - '@solana/rpc@5.5.1': - resolution: {integrity: sha512-ku8zTUMrkCWci66PRIBC+1mXepEnZH/q1f3ck0kJZ95a06bOTl5KU7HeXWtskkyefzARJ5zvCs54AD5nxjQJ+A==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - '@solana/signers@5.5.1': - resolution: {integrity: sha512-FY0IVaBT2kCAze55vEieR6hag4coqcuJ31Aw3hqRH7mv6sV8oqwuJmUrx+uFwOp1gwd5OEAzlv6N4hOOple4sQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - '@solana/subscribable@5.5.1': - resolution: {integrity: sha512-9K0PsynFq0CsmK1CDi5Y2vUIJpCqkgSS5yfDN0eKPgHqEptLEaia09Kaxc90cSZDZU5mKY/zv1NBmB6Aro9zQQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + auto-bind@5.0.1: + resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - '@solana/sysvars@5.5.1': - resolution: {integrity: sha512-k3Quq87Mm+geGUu1GWv6knPk0ALsfY6EKSJGw9xUJDHzY/RkYSBnh0RiOrUhtFm2TDNjOailg8/m0VHmi3reFA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + axios@1.13.6: + resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} - '@solana/transaction-confirmation@5.5.1': - resolution: {integrity: sha512-j4mKlYPHEyu+OD7MBt3jRoX4ScFgkhZC6H65on4Fux6LMScgivPJlwnKoZMnsgxFgWds0pl+BYzSiALDsXlYtw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - '@solana/transaction-messages@5.5.1': - resolution: {integrity: sha512-aXyhMCEaAp3M/4fP0akwBBQkFPr4pfwoC5CLDq999r/FUwDax2RE/h4Ic7h2Xk+JdcUwsb+rLq85Y52hq84XvQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} - '@solana/transactions@5.5.1': - resolution: {integrity: sha512-8hHtDxtqalZ157pnx6p8k10D7J/KY/biLzfgh9R09VNLLY3Fqi7kJvJCr7M2ik3oRll56pxhraAGCC9yIT6eOA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - '@solana/wallet-adapter-base@0.9.27': - resolution: {integrity: sha512-kXjeNfNFVs/NE9GPmysBRKQ/nf+foSaq3kfVSeMcO/iVgigyRmB551OjU3WyAolLG/1jeEfKLqF9fKwMCRkUqg==} - engines: {node: '>=20'} - peerDependencies: - '@solana/web3.js': ^1.98.0 + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} + hasBin: true - '@solana/wallet-standard-chains@1.1.1': - resolution: {integrity: sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw==} - engines: {node: '>=16'} + bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - '@solana/wallet-standard-features@1.3.0': - resolution: {integrity: sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==} - engines: {node: '>=16'} + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - '@solana/wallet-standard-util@1.1.2': - resolution: {integrity: sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA==} - engines: {node: '>=16'} + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - '@solana/wallet-standard-wallet-adapter-base@1.1.4': - resolution: {integrity: sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw==} - engines: {node: '>=16'} - peerDependencies: - '@solana/web3.js': ^1.98.0 - bs58: ^6.0.0 + bin-links@5.0.0: + resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} + engines: {node: ^18.17.0 || >=20.5.0} - '@solana/web3.js@1.98.4': - resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - '@speed-highlight/core@1.2.14': - resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} + bn.js@4.12.3: + resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} - '@spruceid/siwe-parser@2.1.2': - resolution: {integrity: sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==} + bn.js@5.2.3: + resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} - '@stablelib/binary@1.0.1': - resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - '@stablelib/int@1.0.1': - resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - '@stablelib/random@1.0.2': - resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} - '@stablelib/wipe@1.0.1': - resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - '@swc/helpers@0.5.20': - resolution: {integrity: sha512-2egEBHUMasdypIzrprsu8g+OEVd7Vp2MM3a2eVlM/cyFYto0nGz5BX5BTgh/ShZZI9ed+ozEq+Ngt+rgmUs8tw==} + browser-or-node@3.0.0: + resolution: {integrity: sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==} - '@tailwindcss/cli@4.2.2': - resolution: {integrity: sha512-iJS+8kAFZ8HPqnh0O5DHCLjo4L6dD97DBQEkrhfSO4V96xeefUus2jqsBs1dUMt3OU9Ks4qIkiY0mpL5UW+4LQ==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - '@tailwindcss/node@4.2.1': - resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - '@tailwindcss/node@4.2.2': - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - '@tailwindcss/oxide-android-arm64@4.2.1': - resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - '@tailwindcss/oxide-android-arm64@4.2.2': - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] + bufferutil@4.1.0: + resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} + engines: {node: '>=6.14.2'} - '@tailwindcss/oxide-darwin-arm64@4.2.1': - resolution: {integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} - '@tailwindcss/oxide-darwin-arm64@4.2.2': - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] + byte-size@8.1.1: + resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} + engines: {node: '>=12.17'} - '@tailwindcss/oxide-darwin-x64@4.2.1': - resolution: {integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] + cacache@20.0.3: + resolution: {integrity: sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==} + engines: {node: ^20.17.0 || >=22.9.0} - '@tailwindcss/oxide-darwin-x64@4.2.2': - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} - '@tailwindcss/oxide-freebsd-x64@4.2.1': - resolution: {integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - '@tailwindcss/oxide-freebsd-x64@4.2.2': - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': - resolution: {integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] + caniuse-lite@1.0.30001775: + resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==} - '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': - resolution: {integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [glibc] + chalk@4.1.0: + resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} + engines: {node: '>=10'} - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [glibc] + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} - '@tailwindcss/oxide-linux-arm64-musl@4.2.1': - resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [musl] + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@tailwindcss/oxide-linux-x64-gnu@4.2.1': - resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [glibc] + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - '@tailwindcss/oxide-linux-x64-musl@4.2.1': - resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [musl] + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [musl] + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} - '@tailwindcss/oxide-wasm32-wasi@4.2.1': - resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': - resolution: {integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} - '@tailwindcss/oxide-win32-x64-msvc@4.2.1': - resolution: {integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} - '@tailwindcss/oxide@4.2.1': - resolution: {integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==} - engines: {node: '>= 20'} + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} - '@tailwindcss/oxide@4.2.2': - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} - engines: {node: '>= 20'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - '@tailwindcss/vite@4.2.1': - resolution: {integrity: sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w==} - peerDependencies: - vite: ^5.2.0 || ^6 || ^7 + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} - '@tanstack/query-core@5.95.2': - resolution: {integrity: sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==} + cli-spinners@2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} - '@tanstack/query-persist-client-core@5.95.2': - resolution: {integrity: sha512-Opfj34WZ594YXpEcZEs8WBiyPGrjrKlGILfk/Ss283uwWQ36C5nX3tRY/bBiXmM82KWauUuNvahwGwiyco/8cQ==} + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} - '@tanstack/react-query@5.95.2': - resolution: {integrity: sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==} - peerDependencies: - react: ^18 || ^19 + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} - '@tanstack/react-virtual@3.13.23': - resolution: {integrity: sha512-XnMRnHQ23piOVj2bzJqHrRrLg4r+F86fuBcwteKfbIjJrtGxb4z7tIvPVAe4B+4UVwo9G4Giuz5fmapcrnZ0OQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + cli-truncate@5.2.0: + resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} + engines: {node: '>=20'} - '@tanstack/virtual-core@3.13.23': - resolution: {integrity: sha512-zSz2Z2HNyLjCplANTDyl3BcdQJc2k1+yyFoKhNRmCr7V7dY8o8q5m8uFTI1/Pg1kL+Hgrz6u3Xo6eFUB7l66cg==} + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} - '@tsconfig/node-ts@23.6.4': - resolution: {integrity: sha512-37BMJvNQZ+vTgd1xG2TGBkJ6ENeT4eO4Wh2CHrnn0IwH7ybLFCzh4Uc//kc7UIvqiRac4uGdIc1meKOjMSlKzw==} + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - '@tsconfig/node24@24.0.4': - resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} - '@tufjs/canonical-json@2.0.0': - resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} - engines: {node: ^16.14.0 || >=18.0.0} + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} - '@tufjs/models@4.1.0': - resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} - engines: {node: ^20.17.0 || >=22.9.0} + cmd-shim@6.0.3: + resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + cmd-shim@7.0.0: + resolution: {integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==} + engines: {node: ^18.17.0 || >=20.5.0} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + columnify@1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} - '@types/conventional-commits-parser@5.0.2': - resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} - '@types/debug@4.1.13': - resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + comment-parser@1.4.5: + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + engines: {node: '>= 12.0.0'} - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - '@types/lodash@4.17.24': - resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} + concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + concurrently@9.2.1: + resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} + engines: {node: '>=18'} + hasBin: true - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + conventional-changelog-angular@8.2.0: + resolution: {integrity: sha512-4YB1zEXqB17oBI8yRsAs1T+ZhbdsOgJqkl6Trz+GXt/eKf1e4jnA0oW+sOd9BEENzEViuNW0DNoFFjSf3CeC5Q==} + engines: {node: '>=18'} - '@types/node@22.19.13': - resolution: {integrity: sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==} + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} - '@types/node@22.7.5': - resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + conventional-changelog-conventionalcommits@9.2.0: + resolution: {integrity: sha512-fCf+ODjseueTV09wVBoC0HXLi3OyuBJ+HfE3L63Khxqnr99f9nUcnQh3a15lCWHlGLihyZShW/mVVkBagr9JvQ==} + engines: {node: '>=18'} - '@types/node@25.3.3': - resolution: {integrity: sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==} + conventional-changelog-core@5.0.1: + resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} + engines: {node: '>=14'} - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + conventional-changelog-preset-loader@3.0.0: + resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} + engines: {node: '>=14'} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + conventional-changelog-writer@6.0.1: + resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} + engines: {node: '>=14'} + hasBin: true - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} - peerDependencies: - '@types/react': ^18.0.0 + conventional-commits-filter@3.0.0: + resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} + engines: {node: '>=14'} - '@types/react@18.3.28': - resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + conventional-commits-parser@6.3.0: + resolution: {integrity: sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg==} + engines: {node: '>=18'} + hasBin: true - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + conventional-recommended-bump@7.0.1: + resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} + engines: {node: '>=14'} + hasBin: true - '@types/ws@7.4.7': - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + cosmiconfig-typescript-loader@6.2.0: + resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} + engines: {node: '>=v18'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=9' + typescript: '>=5' - '@types/yargs@17.0.35': - resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + css-loader@5.2.7: + resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} + engines: {node: '>= 10.13.0'} peerDependencies: - '@typescript-eslint/parser': ^8.56.1 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + webpack: ^4.27.0 || ^5.0.0 - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dateformat@3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} - cpu: [arm64] - os: [android] + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} - cpu: [arm64] - os: [darwin] + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} - cpu: [x64] - os: [darwin] + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} - cpu: [x64] - os: [freebsd] + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] - os: [linux] + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} - cpu: [arm] - os: [linux] + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] - os: [linux] - libc: [glibc] + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] - os: [linux] - libc: [musl] + detect-indent@5.0.0: + resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} + engines: {node: '>=4'} - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} - cpu: [ppc64] - os: [linux] - libc: [glibc] + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - libc: [glibc] + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} - cpu: [riscv64] - os: [linux] - libc: [musl] + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} - cpu: [s390x] - os: [linux] - libc: [glibc] + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} - cpu: [x64] - os: [linux] - libc: [glibc] + dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - libc: [musl] + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} - cpu: [arm64] - os: [win32] + electron-to-chromium@1.5.302: + resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] - os: [win32] + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} - cpu: [x64] - os: [win32] + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - '@vitejs/plugin-react@4.7.0': - resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - '@vitest/expect@3.1.4': - resolution: {integrity: sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==} + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} - '@vitest/mocker@3.1.4': - resolution: {integrity: sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - '@vitest/pretty-format@3.1.4': - resolution: {integrity: sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - '@vitest/pretty-format@3.2.4': - resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + enhanced-resolve@5.20.0: + resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} + engines: {node: '>=10.13.0'} - '@vitest/runner@3.1.4': - resolution: {integrity: sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==} + enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} - '@vitest/snapshot@3.1.4': - resolution: {integrity: sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} - '@vitest/spy@3.1.4': - resolution: {integrity: sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==} + envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + engines: {node: '>=4'} + hasBin: true - '@vitest/utils@3.1.4': - resolution: {integrity: sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} - '@wagmi/connectors@6.2.0': - resolution: {integrity: sha512-2NfkbqhNWdjfibb4abRMrn7u6rPjEGolMfApXss6HCDVt9AW2oVC6k8Q5FouzpJezElxLJSagWz9FW1zaRlanA==} - peerDependencies: - '@wagmi/core': 2.22.1 - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - typescript: - optional: true + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - '@wagmi/core@2.22.1': - resolution: {integrity: sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==} - peerDependencies: - '@tanstack/query-core': '>=5.0.0' - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - '@tanstack/query-core': - optional: true - typescript: - optional: true + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - '@wallet-standard/app@1.1.0': - resolution: {integrity: sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==} - engines: {node: '>=16'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} - '@wallet-standard/base@1.1.0': - resolution: {integrity: sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==} - engines: {node: '>=16'} + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - '@wallet-standard/features@1.1.0': - resolution: {integrity: sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg==} - engines: {node: '>=16'} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - '@wallet-standard/wallet@1.1.0': - resolution: {integrity: sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==} - engines: {node: '>=16'} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} - '@walletconnect/core@2.21.0': - resolution: {integrity: sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==} - engines: {node: '>=18'} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-toolkit@1.33.0: + resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} - '@walletconnect/core@2.21.1': - resolution: {integrity: sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==} + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} + hasBin: true - '@walletconnect/environment@1.0.1': - resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true - '@walletconnect/ethereum-provider@2.21.1': - resolution: {integrity: sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==} - deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} + engines: {node: '>=18'} + hasBin: true - '@walletconnect/events@1.0.1': - resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} - '@walletconnect/heartbeat@1.2.2': - resolution: {integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - '@walletconnect/jsonrpc-http-connection@1.0.8': - resolution: {integrity: sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} - '@walletconnect/jsonrpc-provider@1.0.14': - resolution: {integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - '@walletconnect/jsonrpc-types@1.0.4': - resolution: {integrity: sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' - '@walletconnect/jsonrpc-utils@1.0.8': - resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true - '@walletconnect/jsonrpc-ws-connection@1.0.16': - resolution: {integrity: sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==} + eslint-import-resolver-typescript@4.4.4: + resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} + engines: {node: ^16.17.0 || >=18.6.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true - '@walletconnect/keyvaluestorage@1.1.1': - resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} + eslint-plugin-import-x@4.16.2: + resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@react-native-async-storage/async-storage': 1.x + '@typescript-eslint/utils': ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + eslint-import-resolver-node: '*' peerDependenciesMeta: - '@react-native-async-storage/async-storage': + '@typescript-eslint/utils': + optional: true + eslint-import-resolver-node: optional: true - '@walletconnect/logger@2.1.2': - resolution: {integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==} + eslint-plugin-perfectionist@5.6.0: + resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} + engines: {node: ^20.0.0 || >=22.0.0} + peerDependencies: + eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 - '@walletconnect/relay-api@1.0.11': - resolution: {integrity: sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==} + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} - '@walletconnect/relay-auth@1.1.0': - resolution: {integrity: sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@walletconnect/safe-json@1.0.2': - resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@walletconnect/sign-client@2.21.0': - resolution: {integrity: sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==} - deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@walletconnect/sign-client@2.21.1': - resolution: {integrity: sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==} - deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' + eslint@10.0.3: + resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - '@walletconnect/time@1.0.2': - resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@walletconnect/types@2.21.0': - resolution: {integrity: sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true - '@walletconnect/types@2.21.1': - resolution: {integrity: sha512-UeefNadqP6IyfwWC1Yi7ux+ljbP2R66PLfDrDm8izmvlPmYlqRerJWJvYO4t0Vvr9wrG4Ko7E0c4M7FaPKT/sQ==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} - '@walletconnect/universal-provider@2.21.0': - resolution: {integrity: sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==} - deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} - '@walletconnect/universal-provider@2.21.1': - resolution: {integrity: sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==} - deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} - '@walletconnect/utils@2.21.0': - resolution: {integrity: sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==} + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - '@walletconnect/utils@2.21.1': - resolution: {integrity: sha512-VPZvTcrNQCkbGOjFRbC24mm/pzbRMUq2DSQoiHlhh0X1U7ZhuIrzVtAoKsrzu6rqjz0EEtGxCr3K1TGRqDG4NA==} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - '@walletconnect/window-getters@1.0.1': - resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} + ethers@5.8.0: + resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} - '@walletconnect/window-metadata@1.0.1': - resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} + ethers@6.16.0: + resolution: {integrity: sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==} + engines: {node: '>=14.0.0'} - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + execa@5.0.0: + resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} + engines: {node: '>=10'} - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} - '@x402/core@2.5.0': - resolution: {integrity: sha512-nUr8HW8WhkU1DvrpUfsRvALy5NF8UWKoFezZOtX61mohxp2lWZpJ2GnvscxDM8nmBAbtIollmksd5z5pj8InXw==} + filelist@1.0.6: + resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} - '@x402/evm@2.5.0': - resolution: {integrity: sha512-MBSTQZwLobMVcmYO7itOMJRkxfHstsDyr7F94o9Rk/Oinz0kjvCe4DFgZmFXyz3nQUgQFmDVgTK5KIzfYR5uIA==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} - '@x402/extensions@2.5.0': - resolution: {integrity: sha512-e7IQShbGUM/XQmzI8DQh2tX/k2XDUGI9DNF+ij2NHUyPEqAt5/mJCwOlaxS/60FWFdfFRfWjTsqaoS7Z8WLi+A==} + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} - '@x402/fetch@2.5.0': - resolution: {integrity: sha512-D2jH3bn0nf8w9Jg3Vxo+6reE6Z9GickzkSIw+udITJFvsrGOpfjZvhcTeflLcthCODk4Nuu9Oe8x7Q3NLUdaRQ==} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true - '@yarnpkg/parsers@3.0.2': - resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} - engines: {node: '>=18.12.0'} + flatted@3.3.4: + resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} - '@zeit/schemas@2.36.0': - resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} - abbrev@4.0.0: - resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} - engines: {node: ^20.17.0 || >=22.9.0} + front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} - abitype@1.0.6: - resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - abitype@1.0.8: - resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} - abitype@1.2.3: - resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3.22.0 || ^4.0.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + fs-monkey@1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] - add-stream@1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} - aes-js@4.0.0-beta.5: - resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + get-east-asian-width@1.5.0: + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} + engines: {node: '>=18'} - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} + get-pkg-repo@4.2.1: + resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} + engines: {node: '>=6.9.0'} + hasBin: true - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + get-port@5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 + get-stream@6.0.0: + resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} + engines: {node: '>=10'} - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + git-raw-commits@3.0.0: + resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} + engines: {node: '>=14'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. + hasBin: true - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. + hasBin: true - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + git-remote-origin-url@2.0.0: + resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} + engines: {node: '>=4'} - ansi-escapes@7.3.0: - resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} - engines: {node: '>=18'} + git-semver-tags@5.0.1: + resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} + engines: {node: '>=14'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. + hasBin: true - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + git-up@7.0.0: + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} + git-url-parse@14.0.0: + resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + gitconfiglocal@1.0.0: + resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true - apg-js@4.4.0: - resolution: {integrity: sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} - arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + globals@17.4.0: + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} + engines: {node: '>=18'} - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} - array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - asn1js@3.0.7: - resolution: {integrity: sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==} - engines: {node: '>=12.0.0'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - async-mutex@0.2.6: - resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + engines: {node: ^20.17.0 || >=22.9.0} - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} - axios-retry@4.5.0: - resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==} - peerDependencies: - axios: 0.x || 1.x + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} - base-x@3.0.11: - resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - base-x@5.0.1: - resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==} + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + ignore-walk@8.0.0: + resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} + engines: {node: ^20.17.0 || >=22.9.0} - baseline-browser-mapping@2.10.0: - resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} - engines: {node: '>=6.0.0'} - hasBin: true + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} - bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true - big.js@6.2.2: - resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - bin-links@5.0.0: - resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} - engines: {node: ^18.17.0 || >=20.5.0} + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} - blake3-wasm@2.1.5: - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} - blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - bn.js@4.12.3: - resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - bn.js@5.2.3: - resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ini@5.0.0: + resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} + engines: {node: ^18.17.0 || >=20.5.0} - borsh@0.7.0: - resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + init-package-json@8.2.2: + resolution: {integrity: sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==} + engines: {node: ^20.17.0 || >=22.9.0} - boxen@7.0.0: - resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} + ink-spinner@5.0.0: + resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} engines: {node: '>=14.16'} + peerDependencies: + ink: '>=4.0.0' + react: '>=18.0.0' - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + ink@5.2.1: + resolution: {integrity: sha512-BqcUyWrG9zq5HIwW6JcfFHsIYebJkWWb4fczNah1goUO0vv5vneIlfwuS85twyJ5hYR/y18FlAYUxrO9ChIWVg==} + engines: {node: '>=18'} + peerDependencies: + '@types/react': '>=18.0.0' + react: '>=18.0.0' + react-devtools-core: ^4.19.1 + peerDependenciesMeta: + '@types/react': + optional: true + react-devtools-core: + optional: true - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} - engines: {node: 18 || 20 || >=22} + inquirer@12.9.6: + resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - browser-or-node@3.0.0: - resolution: {integrity: sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==} + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - bs58@4.0.1: - resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} - - bs58@6.0.0: - resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - bufferutil@4.1.0: - resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} - engines: {node: '>=6.14.2'} + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - byte-size@8.1.1: - resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} - engines: {node: '>=12.17'} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + is-in-ci@1.0.0: + resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} + engines: {node: '>=18'} + hasBin: true - bytestreamjs@2.0.1: - resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} - engines: {node: '>=6.0.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} - cacache@20.0.3: - resolution: {integrity: sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==} - engines: {node: ^20.17.0 || >=22.9.0} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + is-ssh@1.4.1: + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + is-stream@2.0.0: + resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} engines: {node: '>=8'} - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} - caniuse-lite@1.0.30001775: - resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==} + is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} - cbor2@1.12.0: - resolution: {integrity: sha512-3Cco8XQhi27DogSp9Ri6LYNZLi/TBY/JVnDe+mj06NkBjW/ZYOtekaEU4wZ4xcRMNrFkDv8KNtOAqHyDfz3lYg==} - engines: {node: '>=18.7'} + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} - chai@5.3.3: - resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} engines: {node: '>=18'} - chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} - engines: {node: '>=12'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} - chalk@4.1.0: - resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} - engines: {node: '>=10'} + isows@1.0.7: + resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} + peerDependencies: + ws: '*' - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} - chalk@5.0.1: - resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + hasBin: true - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} - charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true - check-error@2.1.3: - resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} - engines: {node: '>= 16'} + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} - chokidar@5.0.0: - resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} - engines: {node: '>= 20.19.0'} + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true - ci-info@4.4.0: - resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} - engines: {node: '>=8'} + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + json-parse-even-better-errors@4.0.0: + resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} + engines: {node: ^18.17.0 || >=20.5.0} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - cli-truncate@5.2.0: - resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} - engines: {node: '>=20'} + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} + jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - clipboardy@3.0.0: - resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} - cliui@9.0.1: - resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} - engines: {node: '>=20'} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + lerna@9.0.5: + resolution: {integrity: sha512-LtwZu2wINHlKpjRCxrEdK3QopyeUpFuUS4v6uzLYdg/uxnAKqDHrGY/mDPxdxDR3YAXJzpWXBdz49AHNIKZaSg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + hasBin: true - cmd-shim@6.0.3: - resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} - cmd-shim@7.0.0: - resolution: {integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==} - engines: {node: ^18.17.0 || >=20.5.0} + libnpmaccess@10.0.3: + resolution: {integrity: sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==} + engines: {node: ^20.17.0 || >=22.9.0} - code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + libnpmpublish@11.1.2: + resolution: {integrity: sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==} + engines: {node: ^20.17.0 || >=22.9.0} - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + lint-staged@16.3.2: + resolution: {integrity: sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==} + engines: {node: '>=20.17'} hasBin: true - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} + engines: {node: '>=20.0.0'} - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} - comlink@4.4.2: - resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} - engines: {node: '>=20'} + loader-runner@4.3.2: + resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} + engines: {node: '>=6.11.5'} - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} - comment-parser@1.4.5: - resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} - engines: {node: '>= 12.0.0'} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} - compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + lodash.ismatch@4.4.0: + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} - engines: {node: '>= 0.8.0'} + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - concurrently@9.2.1: - resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} - engines: {node: '>=18'} - hasBin: true + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} - conventional-changelog-angular@8.2.0: - resolution: {integrity: sha512-4YB1zEXqB17oBI8yRsAs1T+ZhbdsOgJqkl6Trz+GXt/eKf1e4jnA0oW+sOd9BEENzEViuNW0DNoFFjSf3CeC5Q==} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} - conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true - conventional-changelog-conventionalcommits@9.2.0: - resolution: {integrity: sha512-fCf+ODjseueTV09wVBoC0HXLi3OyuBJ+HfE3L63Khxqnr99f9nUcnQh3a15lCWHlGLihyZShW/mVVkBagr9JvQ==} - engines: {node: '>=18'} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - conventional-changelog-core@5.0.1: - resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} - engines: {node: '>=14'} + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + engines: {node: 20 || >=22} - conventional-changelog-preset-loader@3.0.0: - resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} - engines: {node: '>=14'} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} - conventional-changelog-writer@6.0.1: - resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} - engines: {node: '>=14'} - hasBin: true + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} - conventional-commits-filter@3.0.0: - resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} - engines: {node: '>=14'} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} - conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true + make-fetch-happen@15.0.2: + resolution: {integrity: sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==} + engines: {node: ^20.17.0 || >=22.9.0} - conventional-commits-parser@6.3.0: - resolution: {integrity: sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg==} - engines: {node: '>=18'} - hasBin: true + make-fetch-happen@15.0.4: + resolution: {integrity: sha512-vM2sG+wbVeVGYcCm16mM3d5fuem9oC28n436HjsGO3LcxoTI8LNVa4rwZDn3f76+cWyT4GGJDxjTYU1I2nr6zw==} + engines: {node: ^20.17.0 || >=22.9.0} - conventional-recommended-bump@7.0.1: - resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} - engines: {node: '>=14'} - hasBin: true + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} - convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + memfs@3.4.3: + resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} + engines: {node: '>= 4.0.0'} - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} - cosmiconfig-typescript-loader@6.2.0: - resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} - engines: {node: '>=v18'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=9' - typescript: '>=5' + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} - cross-fetch@4.1.0: - resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} - crossws@0.3.5: - resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} - crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - css-loader@5.2.7: - resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.27.0 || ^5.0.0 + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + minimatch@10.2.1: + resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==} + engines: {node: 20 || >=22} - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + minimatch@3.1.4: + resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} - dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} - dateformat@3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + minimist@1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + minipass-fetch@4.0.1: + resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} + engines: {node: ^18.17.0 || >=20.5.0} - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + minipass-fetch@5.0.2: + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} + engines: {node: ^20.17.0 || >=22.9.0} - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} + minipass-sized@2.0.0: + resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} + engines: {node: '>=8'} - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} - default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} - engines: {node: '>=18'} - - default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} - engines: {node: '>=18'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + modify-values@1.0.1: + resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} + engines: {node: '>=0.10.0'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - delay@5.0.0: - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - derive-valtio@0.1.0: - resolution: {integrity: sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==} - peerDependencies: - valtio: '*' + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - detect-browser@5.3.0: - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} - detect-indent@5.0.0: - resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} - engines: {node: '>=4'} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true - dijkstrajs@1.0.3: - resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + node-gyp@12.2.0: + resolution: {integrity: sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + node-machine-id@1.1.12: + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - dotenv-expand@11.0.7: - resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} - engines: {node: '>=12'} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} - engines: {node: '>=12'} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true - dotenv@17.3.1: - resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} - engines: {node: '>=12'} + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dotenv@9.0.2: - resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - duplexify@4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - eciesjs@0.4.18: - resolution: {integrity: sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ==} - engines: {bun: '>=1', deno: '>=2', node: '>=16'} + npm-bundled@4.0.0: + resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} + engines: {node: ^18.17.0 || >=20.5.0} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true + npm-bundled@5.0.0: + resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} + engines: {node: ^20.17.0 || >=22.9.0} - electron-to-chromium@1.5.302: - resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} + npm-install-checks@7.1.2: + resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} + engines: {node: ^18.17.0 || >=20.5.0} - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} - emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + npm-normalize-package-bin@4.0.0: + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} + engines: {node: ^18.17.0 || >=20.5.0} - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + npm-package-arg@12.0.2: + resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} + engines: {node: ^18.17.0 || >=20.5.0} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} + npm-package-arg@13.0.1: + resolution: {integrity: sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==} + engines: {node: ^20.17.0 || >=22.9.0} - encode-utf8@1.0.3: - resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + npm-packlist@10.0.3: + resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} + engines: {node: ^20.17.0 || >=22.9.0} - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + npm-pick-manifest@10.0.0: + resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} + engines: {node: ^18.17.0 || >=20.5.0} - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} - engine.io-client@6.6.4: - resolution: {integrity: sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==} + npm-registry-fetch@19.1.0: + resolution: {integrity: sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==} + engines: {node: ^20.17.0 || >=22.9.0} - engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} - engines: {node: '>=10.0.0'} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} - enhanced-resolve@5.20.0: - resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} - engines: {node: '>=10.13.0'} + nx@22.5.3: + resolution: {integrity: sha512-IaEPqdgaFBIr0Bfmnt6WAcX3t660sOuDXQ71lpoS8GgpD8cqX1LIW2ZyzEAdOvCP1iD6HCZehpofcVvaaL1GNQ==} + hasBin: true + peerDependencies: + '@swc-node/register': ^1.11.1 + '@swc/core': ^1.15.8 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true - enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} - hasBin: true + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} - error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + ora@5.3.0: + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} + ox@0.12.4: + resolution: {integrity: sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + ox@0.14.29: + resolution: {integrity: sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} - es-toolkit@1.33.0: - resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} - es6-promisify@5.0.0: - resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} - esbuild@0.25.0: - resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} - engines: {node: '>=18'} - hasBin: true + p-map-series@2.1.0: + resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} + engines: {node: '>=8'} - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} - engines: {node: '>=18'} - hasBin: true + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} - esbuild@0.28.0: - resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + p-pipe@3.1.0: + resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} engines: {node: '>=8'} - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} - eslint-import-resolver-typescript@4.4.4: - resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} - engines: {node: ^16.17.0 || >=18.6.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true + p-reduce@2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} - eslint-plugin-import-x@4.16.2: - resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/utils': ^8.56.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} - eslint-plugin-perfectionist@5.6.0: - resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} - engines: {node: ^20.0.0 || >=22.0.0} - peerDependencies: - eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + p-waterfall@2.1.1: + resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} + engines: {node: '>=8'} - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + pacote@21.0.1: + resolution: {integrity: sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true - eslint@10.0.3: - resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + pacote@21.4.0: + resolution: {integrity: sha512-DR7mn7HUOomAX1BORnpYy678qVIidbvOojkBscqy27dRKN+s/hLeQT1MeYYrx1Cxh62jyKjiWiDV7RTTqB+ZEQ==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + parse-conflict-json@4.0.0: + resolution: {integrity: sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==} + engines: {node: ^18.17.0 || >=20.5.0} - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + parse-path@7.1.0: + resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + parse-url@8.1.0: + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + patch-console@2.0.0: + resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} - eth-block-tracker@7.1.0: - resolution: {integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==} - engines: {node: '>=14.0.0'} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} - eth-json-rpc-filters@6.0.1: - resolution: {integrity: sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==} - engines: {node: '>=14.0.0'} + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - eth-query@2.1.2: - resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - eth-rpc-errors@4.0.3: - resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} - ethereum-cryptography@2.2.1: - resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} - ethers@5.8.0: - resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - ethers@6.16.0: - resolution: {integrity: sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==} - engines: {node: '>=14.0.0'} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - eventemitter2@6.4.9: - resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} - execa@5.0.0: - resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} - engines: {node: '>=10'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} - engines: {node: '>=12.0.0'} - - exponential-backoff@3.1.3: - resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} - extension-port-stream@3.0.0: - resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} - engines: {node: '>=12.0.0'} + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - eyes@0.1.8: - resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} - engines: {node: '> 0.1.90'} + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} - fast-stable-stringify@1.0.0: - resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} - filelist@1.0.6: - resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} + proggy@3.0.0: + resolution: {integrity: sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==} + engines: {node: ^18.17.0 || >=20.5.0} - find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true + promzard@2.0.0: + resolution: {integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==} + engines: {node: ^18.17.0 || >=20.5.0} - flatted@3.3.4: - resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + protocols@2.0.2: + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} - framer-motion@12.38.0: - resolution: {integrity: sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true + react: ^18.3.1 - front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + react-reconciler@0.29.2: + resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.3.1 - fs-extra@11.3.3: - resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} - engines: {node: '>=14.14'} + react-refresh@0.9.0: + resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} + engines: {node: '>=0.10.0'} - fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cmd-shim@4.0.0: + resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - fs-monkey@1.0.3: - resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + read-cmd-shim@5.0.0: + resolution: {integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==} + engines: {node: ^18.17.0 || >=20.5.0} - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] + read-pkg-up@3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} + engines: {node: '>=4'} - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} - fuse.js@7.1.0: - resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==} - engines: {node: '>=10'} + read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + read@4.1.0: + resolution: {integrity: sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==} + engines: {node: ^18.17.0 || >=20.5.0} - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - get-east-asian-width@1.5.0: - resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} - engines: {node: '>=18'} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + engines: {node: '>= 4'} - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} - get-pkg-repo@4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} - hasBin: true + remotion@4.0.290: + resolution: {integrity: sha512-htwe74xP6et06V+xjCGH8hID0f3DEdSUKEu6oCUYYZUcE1gytEwhvubQyMGXH54uPfztV+jRZnWZnSSpXKxYBg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - get-stream@6.0.0: - resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} - engines: {node: '>=10'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} - - git-raw-commits@3.0.0: - resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} - engines: {node: '>=14'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} hasBin: true - git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. - hasBin: true + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} - git-remote-origin-url@2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - git-semver-tags@5.0.1: - resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} - engines: {node: '>=14'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@6.1.3: + resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==} + engines: {node: 20 || >=22} hasBin: true - git-up@7.0.0: - resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} - git-url-parse@14.0.0: - resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} + run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} + engines: {node: '>=0.12.0'} - gitconfiglocal@1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - glob@11.1.0: - resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} - engines: {node: 20 || >=22} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - glob@13.0.6: - resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} - engines: {node: 18 || 20 || >=22} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} - globals@17.4.0: - resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} - engines: {node: '>=18'} + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} + scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + engines: {node: '>=10'} + hasBin: true - h3@1.15.10: - resolution: {integrity: sha512-YzJeWSkDZxAhvmp8dexjRK5hxziRO7I9m0N53WhvYL5NiWfkUkzssVzY9jvGu0HBoLFW6+duYmNSn6MaZBCCtg==} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} hasBin: true - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + sigstore@4.1.0: + resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} + engines: {node: ^20.17.0 || >=22.9.0} - hono@4.12.9: - resolution: {integrity: sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==} - engines: {node: '>=16.9.0'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + siwe@2.3.2: + resolution: {integrity: sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==} + peerDependencies: + ethers: ^5.6.8 || ^6.0.8 - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - hosted-git-info@8.1.0: - resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} - engines: {node: ^18.17.0 || >=20.5.0} + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} - hosted-git-info@9.0.2: - resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} - engines: {node: ^20.17.0 || >=22.9.0} + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} - http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + slice-ansi@8.0.0: + resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} + engines: {node: '>=20'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true + sort-keys@2.0.0: + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} + engines: {node: '>=4'} - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + source-map@0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} - idb-keyval@6.2.1: - resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions - idb-keyval@6.2.2: - resolution: {integrity: sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - idb@8.0.3: - resolution: {integrity: sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==} + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} - ignore-walk@8.0.0: - resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} - engines: {node: ^20.17.0 || >=22.9.0} + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} + split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + ssri@12.0.0: + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + ssri@13.0.1: + resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} + engines: {node: '>=12.0.0'} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - hasBin: true - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + string-width@8.2.0: + resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} + engines: {node: '>=20'} - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} - ini@5.0.0: - resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} - engines: {node: ^18.17.0 || >=20.5.0} + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} - ini@6.0.0: - resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} - engines: {node: ^20.17.0 || >=22.9.0} + style-loader@4.0.0: + resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.27.0 - init-package-json@8.2.2: - resolution: {integrity: sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==} - engines: {node: ^20.17.0 || >=22.9.0} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} - ink-spinner@5.0.0: - resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} - engines: {node: '>=14.16'} - peerDependencies: - ink: '>=4.0.0' - react: '>=18.0.0' + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} - ink@5.2.1: - resolution: {integrity: sha512-BqcUyWrG9zq5HIwW6JcfFHsIYebJkWWb4fczNah1goUO0vv5vneIlfwuS85twyJ5hYR/y18FlAYUxrO9ChIWVg==} + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@7.5.8: + resolution: {integrity: sha512-SYkBtK99u0yXa+IWL0JRzzcl7RxNpvX/U08Z+8DKnysfno7M+uExnTZH8K+VGgShf2qFPKtbNr9QBl8n7WBP6Q==} engines: {node: '>=18'} + + temp-dir@1.0.0: + resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} + engines: {node: '>=4'} + + terser-webpack-plugin@5.6.1: + resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} + engines: {node: '>= 10.13.0'} peerDependencies: - '@types/react': '>=18.0.0' - react: '>=18.0.0' - react-devtools-core: ^4.19.1 + '@minify-html/node': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' + uglify-js: '*' + webpack: ^5.1.0 peerDependenciesMeta: - '@types/react': + '@minify-html/node': optional: true - react-devtools-core: + '@swc/core': optional: true - - inquirer@12.9.6: - resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true + uglify-js: optional: true - ip-address@10.1.0: - resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} - engines: {node: '>= 12'} + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} + engines: {node: '>=10'} + hasBin: true - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} - is-arguments@1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} - engines: {node: '>= 0.4'} + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + engines: {node: '>=12.0.0'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + engines: {node: '>=14.14'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' - is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - is-in-ci@1.0.0: - resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} - engines: {node: '>=18'} - hasBin: true - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} hasBin: true - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + tuf-js@4.1.0: + resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} + engines: {node: ^20.17.0 || >=22.9.0} - is-port-reachable@4.0.0: - resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} - is-retry-allowed@2.2.0: - resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} - is-ssh@1.4.1: - resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + type-fest@0.4.1: + resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} + engines: {node: '>=6'} - is-stream@2.0.0: - resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + typescript-eslint@8.56.1: + resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - is-wsl@3.1.1: - resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} - engines: {node: '>=16'} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - isexe@3.1.5: - resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} - engines: {node: '>=18'} + unique-filename@5.0.0: + resolution: {integrity: sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==} + engines: {node: ^20.17.0 || >=22.9.0} - isexe@4.0.0: - resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} - engines: {node: '>=20'} + unique-slug@6.0.0: + resolution: {integrity: sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==} + engines: {node: ^20.17.0 || >=22.9.0} - isomorphic-ws@4.0.1: - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} - peerDependencies: - ws: '*' + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - isows@1.0.6: - resolution: {integrity: sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==} - peerDependencies: - ws: '*' + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} - isows@1.0.7: - resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} - peerDependencies: - ws: '*' + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - jackspeak@4.2.3: - resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} - engines: {node: 20 || >=22} + upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} - jake@10.9.4: - resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} - engines: {node: '>=10'} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' - jayson@4.3.0: - resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==} - engines: {node: '>=8'} - hasBin: true + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - jest-diff@30.2.0: - resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + utf-8-validate@6.0.6: + resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} + engines: {node: '>=6.14.2'} - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true - jose@6.2.2: - resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} + valid-url@1.0.9: + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} - js-base64@3.7.8: - resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + validate-npm-package-name@6.0.2: + resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} + engines: {node: ^18.17.0 || >=20.5.0} - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + viem@2.46.3: + resolution: {integrity: sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true + viem@2.52.2: + resolution: {integrity: sha512-HSU12p5aD/kAPZfrlbCUqdiP4P/c6hQ9AhfTS51VbLUQIjkWd1d5EjrCx/SCxZ0zhZVRn4Iv5X5WDqXPG8Ubew==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + engines: {node: '>=10.13.0'} - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - json-canonicalize@1.2.0: - resolution: {integrity: sha512-TTdjBvqrqJKSADlEsY5rWbx8/1tOrVlTR/aSLU8N2VSInCTffP0p+byYB8Es+OmL4ZOeEftjUdvV+eJeSzJC/Q==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - json-canonicalize@2.0.0: - resolution: {integrity: sha512-yyrnK/mEm6Na3ChbJUWueXdapueW0p380RUyTW87XGb1ww8l8hU0pRrGC3vSWHe9CxrbPHX2fGUOZpNiHR0IIg==} + webpack-sources@3.5.0: + resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} + engines: {node: '>=10.13.0'} - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + webpack@5.96.1: + resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - json-parse-even-better-errors@4.0.0: - resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true - json-parse-even-better-errors@5.0.0: - resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true - json-rpc-engine@6.1.0: - resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} - engines: {node: '>=10.0.0'} + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - json-rpc-random-id@1.0.1: - resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} - json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + write-file-atomic@6.0.0: + resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} + engines: {node: ^18.17.0 || >=20.5.0} - just-diff@6.0.2: - resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + write-json-file@3.2.0: + resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} + engines: {node: '>=6'} - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} + write-pkg@4.0.0: + resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} + engines: {node: '>=8'} - keccak@3.0.4: - resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - keyvaluestorage-interface@1.0.0: - resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + ws@8.20.1: + resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} - lerna@9.0.5: - resolution: {integrity: sha512-LtwZu2wINHlKpjRCxrEdK3QopyeUpFuUS4v6uzLYdg/uxnAKqDHrGY/mDPxdxDR3YAXJzpWXBdz49AHNIKZaSg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - hasBin: true + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} - libnpmaccess@10.0.3: - resolution: {integrity: sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==} - engines: {node: ^20.17.0 || >=22.9.0} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - libnpmpublish@11.1.2: - resolution: {integrity: sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==} - engines: {node: ^20.17.0 || >=22.9.0} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} - lightningcss-android-arm64@1.31.1: - resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true - lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} - lightningcss-darwin-arm64@1.31.1: - resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} - lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} - lightningcss-darwin-x64@1.31.1: - resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} - lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - lightningcss-freebsd-x64@1.31.1: - resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} - lightningcss-linux-arm-gnueabihf@1.31.1: - resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] + yoga-layout@3.2.1: + resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} - lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] + zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - lightningcss-linux-arm64-gnu@1.31.1: - resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} - lightningcss-linux-arm64-musl@1.31.1: - resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] +snapshots: - lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] + '@0xsequence/abi@2.3.41': {} - lightningcss-linux-x64-gnu@1.31.1: - resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] + '@0xsequence/core@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.41 + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] + '@0xsequence/indexer@2.3.41': {} - lightningcss-linux-x64-musl@1.31.1: - resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] + '@0xsequence/network@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/indexer': 2.3.41 + '@0xsequence/relayer': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] + '@0xsequence/relayer@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.41 + '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - lightningcss-win32-arm64-msvc@1.31.1: - resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] + '@0xsequence/typescript-sdk@0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + dependencies: + viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod - lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] + '@0xsequence/utils@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + js-base64: 3.7.8 - lightningcss-win32-x64-msvc@1.31.1: - resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] + '@0xtrails/api@0.10.4': {} - lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] + '@adraffy/ens-normalize@1.10.1': {} - lightningcss@1.31.1: - resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} - engines: {node: '>= 12.0.0'} + '@adraffy/ens-normalize@1.11.1': {} - lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} - engines: {node: '>= 12.0.0'} + '@alcalzone/ansi-tokenize@0.1.3': + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 4.0.0 - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 - lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + '@babel/helper-string-parser@7.27.1': {} - lint-staged@16.3.2: - resolution: {integrity: sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==} - engines: {node: '>=20.17'} - hasBin: true + '@babel/helper-validator-identifier@7.28.5': {} - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} + '@babel/parser@7.24.1': + dependencies: + '@babel/types': 7.29.0 - lit-element@4.2.2: - resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 - lit-html@3.3.2: - resolution: {integrity: sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==} + '@commitlint/cli@20.4.2(@types/node@22.19.13)(typescript@5.9.3)': + dependencies: + '@commitlint/format': 20.4.0 + '@commitlint/lint': 20.4.2 + '@commitlint/load': 20.4.0(@types/node@22.19.13)(typescript@5.9.3) + '@commitlint/read': 20.4.0 + '@commitlint/types': 20.4.0 + tinyexec: 1.0.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript - lit@3.3.0: - resolution: {integrity: sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==} + '@commitlint/config-conventional@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-conventionalcommits: 7.0.2 - load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} + '@commitlint/config-conventional@20.4.2': + dependencies: + '@commitlint/types': 20.4.0 + conventional-changelog-conventionalcommits: 9.2.0 - load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} + '@commitlint/config-validator@20.4.0': + dependencies: + '@commitlint/types': 20.4.0 + ajv: 8.18.0 - loader-runner@4.3.2: - resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} - engines: {node: '>=6.11.5'} + '@commitlint/ensure@20.4.1': + dependencies: + '@commitlint/types': 20.4.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + '@commitlint/execute-rule@20.0.0': {} - locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} + '@commitlint/format@20.4.0': + dependencies: + '@commitlint/types': 20.4.0 + picocolors: 1.1.1 - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + '@commitlint/is-ignored@20.4.1': + dependencies: + '@commitlint/types': 20.4.0 + semver: 7.7.4 - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + '@commitlint/lint@20.4.2': + dependencies: + '@commitlint/is-ignored': 20.4.1 + '@commitlint/parse': 20.4.1 + '@commitlint/rules': 20.4.2 + '@commitlint/types': 20.4.0 - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + '@commitlint/load@20.4.0(@types/node@22.19.13)(typescript@5.9.3)': + dependencies: + '@commitlint/config-validator': 20.4.0 + '@commitlint/execute-rule': 20.0.0 + '@commitlint/resolve-extends': 20.4.0 + '@commitlint/types': 20.4.0 + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@22.19.13)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) + is-plain-obj: 4.1.0 + lodash.mergewith: 4.6.2 + picocolors: 1.1.1 + transitivePeerDependencies: + - '@types/node' + - typescript - lodash.ismatch@4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + '@commitlint/message@20.4.0': {} - lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + '@commitlint/parse@20.4.1': + dependencies: + '@commitlint/types': 20.4.0 + conventional-changelog-angular: 8.2.0 + conventional-commits-parser: 6.3.0 - lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + '@commitlint/read@20.4.0': + dependencies: + '@commitlint/top-level': 20.4.0 + '@commitlint/types': 20.4.0 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + tinyexec: 1.0.2 - lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + '@commitlint/resolve-extends@20.4.0': + dependencies: + '@commitlint/config-validator': 20.4.0 + '@commitlint/types': 20.4.0 + global-directory: 4.0.1 + import-meta-resolve: 4.2.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + '@commitlint/rules@20.4.2': + dependencies: + '@commitlint/ensure': 20.4.1 + '@commitlint/message': 20.4.0 + '@commitlint/to-lines': 20.0.0 + '@commitlint/types': 20.4.0 - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + '@commitlint/to-lines@20.0.0': {} - lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + '@commitlint/top-level@20.4.0': + dependencies: + escalade: 3.2.0 - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + '@commitlint/types@19.8.1': + dependencies: + '@types/conventional-commits-parser': 5.0.2 + chalk: 5.6.2 - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + '@commitlint/types@20.4.0': + dependencies: + conventional-commits-parser: 6.3.0 + picocolors: 1.1.1 - log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 - loupe@3.2.1: - resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + '@esbuild/aix-ppc64@0.25.0': + optional: true - lru-cache@11.2.7: - resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} - engines: {node: 20 || >=22} + '@esbuild/aix-ppc64@0.27.3': + optional: true - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + '@esbuild/aix-ppc64@0.28.0': + optional: true - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + '@esbuild/android-arm64@0.25.0': + optional: true - lucide-react@0.563.0: - resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@esbuild/android-arm64@0.27.3': + optional: true - lucide-react@0.564.0: - resolution: {integrity: sha512-JJ8GVTQqFwuliifD48U6+h7DXEHdkhJ/E87kksGByII3qHxtPciVb8T8woQONHBQgHVOl7rSMrrip3SeVNy7Fg==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@esbuild/android-arm64@0.28.0': + optional: true - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + '@esbuild/android-arm@0.25.0': + optional: true - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + '@esbuild/android-arm@0.27.3': + optional: true - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + '@esbuild/android-arm@0.28.0': + optional: true - make-fetch-happen@15.0.2: - resolution: {integrity: sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==} - engines: {node: ^20.17.0 || >=22.9.0} + '@esbuild/android-x64@0.25.0': + optional: true - make-fetch-happen@15.0.4: - resolution: {integrity: sha512-vM2sG+wbVeVGYcCm16mM3d5fuem9oC28n436HjsGO3LcxoTI8LNVa4rwZDn3f76+cWyT4GGJDxjTYU1I2nr6zw==} - engines: {node: ^20.17.0 || >=22.9.0} + '@esbuild/android-x64@0.27.3': + optional: true - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} + '@esbuild/android-x64@0.28.0': + optional: true - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} + '@esbuild/darwin-arm64@0.25.0': + optional: true - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - md5@2.3.0: - resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + '@esbuild/darwin-arm64@0.27.3': + optional: true - memfs@3.4.3: - resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} - engines: {node: '>= 4.0.0'} + '@esbuild/darwin-arm64@0.28.0': + optional: true - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} + '@esbuild/darwin-x64@0.25.0': + optional: true - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} + '@esbuild/darwin-x64@0.27.3': + optional: true - meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} + '@esbuild/darwin-x64@0.28.0': + optional: true - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + '@esbuild/freebsd-arm64@0.25.0': + optional: true - micro-ftch@0.3.1: - resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + '@esbuild/freebsd-arm64@0.27.3': + optional: true - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + '@esbuild/freebsd-arm64@0.28.0': + optional: true - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} + '@esbuild/freebsd-x64@0.25.0': + optional: true - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + '@esbuild/freebsd-x64@0.27.3': + optional: true - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} + '@esbuild/freebsd-x64@0.28.0': + optional: true - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + '@esbuild/linux-arm64@0.25.0': + optional: true - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + '@esbuild/linux-arm64@0.27.3': + optional: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + '@esbuild/linux-arm64@0.28.0': + optional: true - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} + '@esbuild/linux-arm@0.25.0': + optional: true - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} + '@esbuild/linux-arm@0.27.3': + optional: true - miniflare@4.20260305.0: - resolution: {integrity: sha512-jVhtKJtiwaZa3rI+WgoLvSJmEazDsoUmAPYRUmEe2VO6VSbvkhbnDRm+dsPbYRatgNIExwrpqG1rv96jHiSb0w==} - engines: {node: '>=18.0.0'} - hasBin: true + '@esbuild/linux-arm@0.28.0': + optional: true - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + '@esbuild/linux-ia32@0.25.0': + optional: true - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + '@esbuild/linux-ia32@0.27.3': + optional: true - minimatch@10.2.1: - resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==} - engines: {node: 20 || >=22} + '@esbuild/linux-ia32@0.28.0': + optional: true - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} - engines: {node: 18 || 20 || >=22} + '@esbuild/linux-loong64@0.25.0': + optional: true - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + '@esbuild/linux-loong64@0.27.3': + optional: true - minimatch@3.1.4: - resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} + '@esbuild/linux-loong64@0.28.0': + optional: true - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + '@esbuild/linux-mips64el@0.25.0': + optional: true - minimatch@5.1.9: - resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} - engines: {node: '>=10'} + '@esbuild/linux-mips64el@0.27.3': + optional: true - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + '@esbuild/linux-mips64el@0.28.0': + optional: true - minimist@1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + '@esbuild/linux-ppc64@0.25.0': + optional: true - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + '@esbuild/linux-ppc64@0.27.3': + optional: true - minipass-collect@2.0.1: - resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} - engines: {node: '>=16 || 14 >=14.17'} + '@esbuild/linux-ppc64@0.28.0': + optional: true - minipass-fetch@4.0.1: - resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} - engines: {node: ^18.17.0 || >=20.5.0} + '@esbuild/linux-riscv64@0.25.0': + optional: true - minipass-fetch@5.0.2: - resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} - engines: {node: ^20.17.0 || >=22.9.0} + '@esbuild/linux-riscv64@0.27.3': + optional: true - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} + '@esbuild/linux-riscv64@0.28.0': + optional: true - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + '@esbuild/linux-s390x@0.25.0': + optional: true - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + '@esbuild/linux-s390x@0.27.3': + optional: true - minipass-sized@2.0.0: - resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} - engines: {node: '>=8'} + '@esbuild/linux-s390x@0.28.0': + optional: true - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + '@esbuild/linux-x64@0.25.0': + optional: true - minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} + '@esbuild/linux-x64@0.27.3': + optional: true - minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} + '@esbuild/linux-x64@0.28.0': + optional: true - mipd@0.0.7: - resolution: {integrity: sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true + '@esbuild/netbsd-arm64@0.25.0': + optional: true - modify-values@1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} + '@esbuild/netbsd-arm64@0.27.3': + optional: true - motion-dom@12.38.0: - resolution: {integrity: sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==} + '@esbuild/netbsd-arm64@0.28.0': + optional: true - motion-utils@12.36.0: - resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==} + '@esbuild/netbsd-x64@0.25.0': + optional: true - motion@12.34.0: - resolution: {integrity: sha512-01Sfa/zgsD/di8zA/uFW5Eb7/SPXoGyUfy+uMRMW5Spa8j0z/UbfQewAYvPMYFCXRlyD6e5aLHh76TxeeJD+RA==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true + '@esbuild/netbsd-x64@0.27.3': + optional: true - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + '@esbuild/netbsd-x64@0.28.0': + optional: true - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + '@esbuild/openbsd-arm64@0.25.0': + optional: true - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + '@esbuild/openbsd-arm64@0.27.3': + optional: true - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + '@esbuild/openbsd-arm64@0.28.0': + optional: true - multiformats@9.9.0: - resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + '@esbuild/openbsd-x64@0.25.0': + optional: true - multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} + '@esbuild/openbsd-x64@0.27.3': + optional: true - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} + '@esbuild/openbsd-x64@0.28.0': + optional: true - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + '@esbuild/openharmony-arm64@0.27.3': + optional: true - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true + '@esbuild/openharmony-arm64@0.28.0': + optional: true - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + '@esbuild/sunos-x64@0.25.0': + optional: true - natural-orderby@5.0.0: - resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} - engines: {node: '>=18'} + '@esbuild/sunos-x64@0.27.3': + optional: true - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} + '@esbuild/sunos-x64@0.28.0': + optional: true - negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} + '@esbuild/win32-arm64@0.25.0': + optional: true - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + '@esbuild/win32-arm64@0.27.3': + optional: true - node-addon-api@2.0.2: - resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + '@esbuild/win32-arm64@0.28.0': + optional: true - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + '@esbuild/win32-ia32@0.25.0': + optional: true - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - node-gyp@12.2.0: - resolution: {integrity: sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - - node-mock-http@1.0.4: - resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} - - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - - nopt@9.0.0: - resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-bundled@4.0.0: - resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-bundled@5.0.0: - resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-install-checks@7.1.2: - resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-install-checks@8.0.0: - resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-normalize-package-bin@4.0.0: - resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-normalize-package-bin@5.0.0: - resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-package-arg@12.0.2: - resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-package-arg@13.0.1: - resolution: {integrity: sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-packlist@10.0.3: - resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-pick-manifest@10.0.0: - resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-pick-manifest@11.0.3: - resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-registry-fetch@19.1.0: - resolution: {integrity: sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - nx@22.5.3: - resolution: {integrity: sha512-IaEPqdgaFBIr0Bfmnt6WAcX3t660sOuDXQ71lpoS8GgpD8cqX1LIW2ZyzEAdOvCP1iD6HCZehpofcVvaaL1GNQ==} - hasBin: true - peerDependencies: - '@swc-node/register': ^1.11.1 - '@swc/core': ^1.15.8 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true - - obj-multiplex@1.0.0: - resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} - - ofetch@1.5.1: - resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - - on-exit-leak-free@0.2.0: - resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} - - on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - - open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} - engines: {node: '>=18'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - openapi-fetch@0.13.8: - resolution: {integrity: sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==} - - openapi-typescript-helpers@0.0.15: - resolution: {integrity: sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} - - ox@0.11.3: - resolution: {integrity: sha512-1bWYGk/xZel3xro3l8WGg6eq4YEKlaqvyMtVhfMFpbJzK2F6rj4EDRtqDCWVEJMkzcmEi9uW2QxsqELokOlarw==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - ox@0.12.4: - resolution: {integrity: sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - ox@0.13.1: - resolution: {integrity: sha512-S6XU/Chz7HSSlAp7KYZigW8iwSyfS9M+GKTbyDQuZDsqC8S8GUFB2bLBLLB2SfHw8eE2MfymQazVXoLNljLycg==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - ox@0.14.29: - resolution: {integrity: sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - ox@0.6.7: - resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - ox@0.6.9: - resolution: {integrity: sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - ox@0.9.17: - resolution: {integrity: sha512-rKAnhzhRU3Xh3hiko+i1ZxywZ55eWQzeS/Q4HRKLx2PqfHOolisZHErSsJVipGlmQKHW5qwOED/GighEw9dbLg==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-map-series@2.1.0: - resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} - engines: {node: '>=8'} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} - engines: {node: '>=18'} - - p-pipe@3.1.0: - resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} - engines: {node: '>=8'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-reduce@2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} - engines: {node: '>=8'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - p-waterfall@2.1.1: - resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} - engines: {node: '>=8'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - pacote@21.0.1: - resolution: {integrity: sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - pacote@21.4.0: - resolution: {integrity: sha512-DR7mn7HUOomAX1BORnpYy678qVIidbvOojkBscqy27dRKN+s/hLeQT1MeYYrx1Cxh62jyKjiWiDV7RTTqB+ZEQ==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-conflict-json@4.0.0: - resolution: {integrity: sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-path@7.1.0: - resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} - - parse-url@8.1.0: - resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - - patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@2.0.2: - resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} - engines: {node: 18 || 20 || >=22} - - path-to-regexp@3.3.0: - resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - pathval@2.0.1: - resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} - engines: {node: '>= 14.16'} - - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - - pino-abstract-transport@0.5.0: - resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} - - pino-std-serializers@4.0.0: - resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} - - pino@7.11.0: - resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} - hasBin: true - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkijs@3.3.3: - resolution: {integrity: sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==} - engines: {node: '>=16.0.0'} - - pngjs@5.0.0: - resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} - engines: {node: '>=10.13.0'} - - pony-cause@2.1.11: - resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==} - engines: {node: '>=12.0.0'} - - porto@0.2.35: - resolution: {integrity: sha512-gu9FfjjvvYBgQXUHWTp6n3wkTxVtEcqFotM7i3GEZeoQbvLGbssAicCz6hFZ8+xggrJWwi/RLmbwNra50SMmUQ==} - hasBin: true - peerDependencies: - '@tanstack/react-query': '>=5.59.0' - '@wagmi/core': '>=2.16.3' - expo-auth-session: '>=7.0.8' - expo-crypto: '>=15.0.7' - expo-web-browser: '>=15.0.8' - react: '>=18' - react-native: '>=0.81.4' - typescript: '>=5.4.0' - viem: '>=2.37.0' - wagmi: '>=2.0.0' - peerDependenciesMeta: - '@tanstack/react-query': - optional: true - expo-auth-session: - optional: true - expo-crypto: - optional: true - expo-web-browser: - optional: true - react: - optional: true - react-native: - optional: true - typescript: - optional: true - wagmi: - optional: true - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - preact@10.24.2: - resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} - - preact@10.29.0: - resolution: {integrity: sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@30.2.0: - resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - proc-log@5.0.0: - resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - proc-log@6.1.0: - resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process-warning@1.0.0: - resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} - - proggy@3.0.0: - resolution: {integrity: sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==} - engines: {node: ^18.17.0 || >=20.5.0} - - promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - - promise-call-limit@3.0.2: - resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - promzard@2.0.0: - resolution: {integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==} - engines: {node: ^18.17.0 || >=20.5.0} - - protocols@2.0.2: - resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} - - proxy-compare@2.6.0: - resolution: {integrity: sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pvtsutils@1.3.6: - resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} - - pvutils@1.1.5: - resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} - engines: {node: '>=16.0.0'} - - qrcode@1.5.3: - resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} - engines: {node: '>=10.13.0'} - hasBin: true - - qrcode@1.5.4: - resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} - engines: {node: '>=10.13.0'} - hasBin: true - - query-string@7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-apple-signin-auth@1.1.2: - resolution: {integrity: sha512-E5bPu4LtNR3IDsd08A/f1Y0HyuHfjqQpRNRCtQQ3JSVby2JK50FoixyK8EwUh6cbu8N4qrJStL77dEb51Ny5uA==} - peerDependencies: - react: '>= 16.8.0' - react-dom: '>= 16.8.0' - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-hook-form@7.72.0: - resolution: {integrity: sha512-V4v6jubaf6JAurEaVnT9aUPKFbNtDgohj5CIgVGyPHvT9wRx5OZHVjz31GsxnPNI278XMu+ruFz+wGOscHaLKw==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-reconciler@0.29.2: - resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.3.1 - - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} - engines: {node: '>=0.10.0'} - - react-refresh@0.9.0: - resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} - engines: {node: '>=0.10.0'} - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - read-cmd-shim@4.0.0: - resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-cmd-shim@5.0.0: - resolution: {integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==} - engines: {node: ^18.17.0 || >=20.5.0} - - read-pkg-up@3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - read@4.1.0: - resolution: {integrity: sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==} - engines: {node: ^18.17.0 || >=20.5.0} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} - engines: {node: '>= 20.19.0'} - - real-require@0.1.0: - resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} - engines: {node: '>= 12.13.0'} - - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - registry-auth-token@3.3.2: - resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} - - registry-url@3.1.0: - resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} - engines: {node: '>=0.10.0'} - - remotion@4.0.290: - resolution: {integrity: sha512-htwe74xP6et06V+xjCGH8hID0f3DEdSUKEu6oCUYYZUcE1gytEwhvubQyMGXH54uPfztV+jRZnWZnSSpXKxYBg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - - rimraf@6.1.3: - resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==} - engines: {node: 20 || >=22} - hasBin: true - - rollup@4.59.0: - resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rpc-websockets@9.3.7: - resolution: {integrity: sha512-dQal1U0yKH2umW0DgqSecP4G1jNxyPUGY60uUMB8bLoXabC2aWT3Cag9hOhZXsH/52QJEcggxNNWhF+Fp48ykw==} - - run-applescript@7.1.0: - resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} - engines: {node: '>=18'} - - run-async@4.0.6: - resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} - engines: {node: '>=0.12.0'} - - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} - engines: {node: '>= 10.13.0'} - - scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true - - serve-handler@6.1.6: - resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} - - serve@14.2.5: - resolution: {integrity: sha512-Qn/qMkzCcMFVPb60E/hQy+iRLpiU8PamOfOSYoAHmmF+fFFmpPpqa6Oci2iWYpTdOUM3VF+TINud7CfbQnsZbA==} - engines: {node: '>= 14'} - hasBin: true - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} - engines: {node: '>= 0.4'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sigstore@4.1.0: - resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} - engines: {node: ^20.17.0 || >=22.9.0} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - siwe@2.3.2: - resolution: {integrity: sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==} - peerDependencies: - ethers: ^5.6.8 || ^6.0.8 - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - slice-ansi@7.1.2: - resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} - engines: {node: '>=18'} - - slice-ansi@8.0.0: - resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} - engines: {node: '>=20'} - - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - socket.io-client@4.8.3: - resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} - engines: {node: '>=10.0.0'} - - socket.io-parser@4.2.6: - resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==} - engines: {node: '>=10.0.0'} - - socks-proxy-agent@8.0.5: - resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} - engines: {node: '>= 14'} - - socks@2.8.7: - resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - - sonic-boom@2.8.0: - resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} - - sort-keys@2.0.0: - resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} - engines: {node: '>=4'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - deprecated: The work that was done in this beta branch won't be included in future versions - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.23: - resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} - - split-on-first@1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - split@1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - ssri@12.0.0: - resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - ssri@13.0.1: - resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - - stream-chain@2.2.5: - resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - - stream-json@1.9.1: - resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} - - stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - - strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - - string-width@8.2.0: - resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} - engines: {node: '>=20'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.2.0: - resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - style-loader@4.0.0: - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.27.0 - - superstruct@1.0.4: - resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} - engines: {node: '>=14.0.0'} - - superstruct@2.0.2: - resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} - engines: {node: '>=14.0.0'} - - supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} - engines: {node: '>=18'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tailwind-merge@3.5.0: - resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} - - tailwindcss@4.2.1: - resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} - - tailwindcss@4.2.2: - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} - - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} - engines: {node: '>=6'} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - tar@7.5.8: - resolution: {integrity: sha512-SYkBtK99u0yXa+IWL0JRzzcl7RxNpvX/U08Z+8DKnysfno7M+uExnTZH8K+VGgShf2qFPKtbNr9QBl8n7WBP6Q==} - engines: {node: '>=18'} - - temp-dir@1.0.0: - resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} - engines: {node: '>=4'} - - terser-webpack-plugin@5.6.1: - resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@minify-html/node': '*' - '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' - esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@minify-html/node': - optional: true - '@swc/core': - optional: true - '@swc/css': - optional: true - '@swc/html': - optional: true - clean-css: - optional: true - cssnano: - optional: true - csso: - optional: true - esbuild: - optional: true - html-minifier-terser: - optional: true - lightningcss: - optional: true - postcss: - optional: true - uglify-js: - optional: true - - terser@5.46.1: - resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} - engines: {node: '>=10'} - hasBin: true - - text-encoding-utf-8@1.0.2: - resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} - - text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - - thread-stream@0.15.2: - resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} - - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} - engines: {node: '>=18'} - - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} - engines: {node: '>=12.0.0'} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} - - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} - engines: {node: '>=14.14'} - - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - treeverse@3.0.0: - resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} - engines: {node: '>=18.0.0'} - hasBin: true - - tuf-js@4.1.0: - resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - tweetnacl-sealedbox-js@1.2.0: - resolution: {integrity: sha512-QoCr8K2hwri+ky7SUa22oSre8g88XaWi0hwwWd16pJMuDyn5gL/UyE0PyR2EOFEMJ70T2trJ9+Sv+Qa18olEmQ==} - - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.4.1: - resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} - engines: {node: '>=6'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.6.3: - resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - - uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} - hasBin: true - - uint8arrays@3.1.0: - resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} - - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - - undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} - - undici@7.18.2: - resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} - engines: {node: '>=20.18.1'} - - undici@7.22.0: - resolution: {integrity: sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==} - engines: {node: '>=20.18.1'} - - unenv@2.0.0-rc.24: - resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} - - unique-filename@5.0.0: - resolution: {integrity: sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==} - engines: {node: ^20.17.0 || >=22.9.0} - - unique-slug@6.0.0: - resolution: {integrity: sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==} - engines: {node: ^20.17.0 || >=22.9.0} - - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - - unstorage@1.17.5: - resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6 || ^7 || ^8 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1 || ^2 || ^3 - aws4fetch: ^1.0.20 - db0: '>=0.2.1' - idb-keyval: ^6.2.1 - ioredis: ^5.4.2 - uploadthing: ^7.4.4 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@deno/kv': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/blob': - optional: true - '@vercel/functions': - optional: true - '@vercel/kv': - optional: true - aws4fetch: - optional: true - db0: - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - uploadthing: - optional: true - - upath@2.0.1: - resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} - engines: {node: '>=4'} - - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-check@1.5.4: - resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sync-external-store@1.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - use-sync-external-store@1.4.0: - resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - - utf-8-validate@6.0.6: - resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} - engines: {node: '>=6.14.2'} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true - - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} - hasBin: true - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). - hasBin: true - - valid-url@1.0.9: - resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@6.0.2: - resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - valtio@1.13.2: - resolution: {integrity: sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=16.8' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - viem@2.23.2: - resolution: {integrity: sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - viem@2.46.3: - resolution: {integrity: sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - viem@2.52.2: - resolution: {integrity: sha512-HSU12p5aD/kAPZfrlbCUqdiP4P/c6hQ9AhfTS51VbLUQIjkWd1d5EjrCx/SCxZ0zhZVRn4Iv5X5WDqXPG8Ubew==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - vite-node@3.1.4: - resolution: {integrity: sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - - vite@5.4.21: - resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitest@3.1.4: - resolution: {integrity: sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.4 - '@vitest/ui': 3.1.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - wagmi@2.19.5: - resolution: {integrity: sha512-RQUfKMv6U+EcSNNGiPbdkDtJwtuFxZWLmvDiQmjjBgkuPulUwDJsKhi7gjynzJdsx2yDqhHCXkKsbbfbIsHfcQ==} - peerDependencies: - '@tanstack/react-query': '>=5.0.0' - react: '>=18' - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - typescript: - optional: true - - walk-up-path@4.0.0: - resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} - engines: {node: 20 || >=22} - - watchpack@2.5.1: - resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} - engines: {node: '>=10.13.0'} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - webextension-polyfill@0.10.0: - resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webpack-sources@3.5.0: - resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} - engines: {node: '>=10.13.0'} - - webpack@5.96.1: - resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - - which@6.0.1: - resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - workerd@1.20260305.0: - resolution: {integrity: sha512-JkhfCLU+w+KbQmZ9k49IcDYc78GBo7eG8Mir8E2+KVjR7otQAmpcLlsous09YLh8WQ3Bt3Mi6/WMStvMAPukeA==} - engines: {node: '>=16'} - hasBin: true - - wrangler@4.69.0: - resolution: {integrity: sha512-EmVfIM65I5b4ITHe3Y9R7zQyf4NUBQ1leStakMlWiVR9n6VlDwuEltyQI2l3i0JciDnWyR3uqe+T6C08ivniTQ==} - engines: {node: '>=20.0.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20260305.0 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - write-file-atomic@6.0.0: - resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - write-json-file@3.2.0: - resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} - engines: {node: '>=6'} - - write-pkg@4.0.0: - resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} - engines: {node: '>=8'} - - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.20.0: - resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.20.1: - resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} - engines: {node: '>=18'} - - xmlhttprequest-ssl@2.1.2: - resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} - engines: {node: '>=0.4.0'} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true - - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs-parser@22.0.0: - resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23} - - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yargs@18.0.0: - resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23} - - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yoctocolors-cjs@2.1.3: - resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} - engines: {node: '>=18'} - - yoga-layout@3.2.1: - resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} - - youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - - youch@4.1.0-beta.10: - resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} - - zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} - - zustand@5.0.0: - resolution: {integrity: sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=18.0.0' - immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - use-sync-external-store: - optional: true - - zustand@5.0.12: - resolution: {integrity: sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=18.0.0' - immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - use-sync-external-store: - optional: true - - zustand@5.0.3: - resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=18.0.0' - immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - use-sync-external-store: - optional: true - -snapshots: - - 0xsequence@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)): - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/account': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/api': 2.3.43 - '@0xsequence/auth': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/guard': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/indexer': 2.3.43 - '@0xsequence/metadata': 2.3.43 - '@0xsequence/migration': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/provider': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/relayer': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/sessions': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/signhub': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/wallet': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - 0xtrails@0.14.0(a87722edfdef515bc3a23e8377c33652): - dependencies: - '@0xsequence/connect': 5.4.8(12ed1ebf32cf841e14574f6fbcb68583) - '@0xsequence/hooks': 5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) - '@0xsequence/indexer': 3.0.5 - '@0xsequence/metadata': 3.0.5 - '@0xsequence/wallet-primitives': 3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76) - '@0xtrails/api': 0.14.0 - '@0xtrails/wallet-registry': 0.2.0 - '@databeat/tracker': 0.9.3 - '@emotion/is-prop-valid': 1.4.0 - '@meshconnect/web-link-sdk': 3.7.1(bs58@6.0.0)(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/query-persist-client-core': 5.95.2 - '@tanstack/react-query': 5.95.2(react@18.3.1) - '@tanstack/react-virtual': 3.13.23(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - lucide-react: 0.563.0(react@18.3.1) - motion: 12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ox: 0.13.1(typescript@5.9.3)(zod@3.25.76) - qrcode: 1.5.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) - transitivePeerDependencies: - - 0xsequence - - '@0xsequence/api' - - '@0xsequence/network' - - '@react-oauth/google' - - '@types/react' - - '@types/react-dom' - - bs58 - - bufferutil - - debug - - encoding - - ethers - - react-apple-signin-auth - - typescript - - utf-8-validate - - zod - - '@0xsequence/abi@2.3.41': {} - - '@0xsequence/abi@2.3.43': {} - - '@0xsequence/abi@3.0.0-beta.17': {} - - '@0xsequence/account@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/migration': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/relayer': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/sessions': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/wallet': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/api@2.3.43': {} - - '@0xsequence/api@3.0.0-beta.17': {} - - '@0xsequence/auth@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/account': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/api': 2.3.43 - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/ethauth': 1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/indexer': 2.3.43 - '@0xsequence/metadata': 2.3.43 - '@0xsequence/migration': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/sessions': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/signhub': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/wallet': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/builder@3.0.0-beta.17': {} - - '@0xsequence/connect@5.4.8(12ed1ebf32cf841e14574f6fbcb68583)': - dependencies: - 0xsequence: 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/api': 2.3.43 - '@0xsequence/auth': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/design-system': 2.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@0xsequence/ethauth': 1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/hooks': 5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) - '@0xsequence/indexer': 2.3.43 - '@0xsequence/metadata': 2.3.43 - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/provider': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/waas': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@databeat/tracker': 0.9.3 - '@react-oauth/google': 0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tailwindcss/cli': 4.2.2 - '@tanstack/react-query': 5.95.2(react@18.3.1) - clsx: 2.1.1 - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - fuse.js: 7.1.0 - motion: 12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-apple-signin-auth: 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - tailwindcss: 4.2.2 - uuid: 10.0.0 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - '@types/react-dom' - - '@0xsequence/core@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.41 - '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/core@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/dapp-client-cli@0.1.5(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - '@0xsequence/dapp-client': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - dotenv: 17.3.1 - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - undici: 7.22.0 - yargs: 18.0.0 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/dapp-client@3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@0xsequence/guard': 3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76) - '@0xsequence/relayer': 3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@0xsequence/wallet-core': 3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@0xsequence/wallet-primitives': 3.0.0-beta.16(typescript@5.9.3)(zod@3.25.76) - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/dapp-client@3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - '@0xsequence/guard': 3.0.0(typescript@5.9.3)(zod@4.3.6) - '@0xsequence/relayer': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/wallet-core': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@4.3.6) - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/design-system@2.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-aspect-ratio': 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-progress': 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-select': 2.2.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.4(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-switch': 1.2.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toast': 1.2.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - class-variance-authority: 0.7.1 - clsx: 2.1.1 - motion: 12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-hook-form: 7.72.0(react@18.3.1) - tailwind-merge: 3.5.0 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - '@0xsequence/ethauth@1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - js-base64: 3.7.8 - - '@0xsequence/guard@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/account': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/signhub': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/guard@3.0.0(typescript@5.9.3)(zod@3.25.76)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/guard@3.0.0(typescript@5.9.3)(zod@4.3.6)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/guard@3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/hooks@5.4.9(@0xsequence/api@3.0.0-beta.17)(@0xsequence/indexer@3.0.5)(@0xsequence/metadata@3.0.5)(@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.95.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': - dependencies: - '@0xsequence/api': 3.0.0-beta.17 - '@0xsequence/indexer': 3.0.5 - '@0xsequence/metadata': 3.0.5 - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@tanstack/react-query': 5.95.2(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - - '@0xsequence/identity-instrument@3.0.0-beta.19(typescript@5.9.3)(zod@4.3.6)': - dependencies: - json-canonicalize: 2.0.0 - jwt-decode: 4.0.0 - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/indexer@2.3.41': {} - - '@0xsequence/indexer@2.3.43': {} - - '@0xsequence/indexer@3.0.5': {} - - '@0xsequence/metadata@2.3.43': {} - - '@0xsequence/metadata@3.0.5': {} - - '@0xsequence/migration@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/wallet': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/network@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/indexer': 2.3.41 - '@0xsequence/relayer': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/network@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/indexer': 2.3.43 - '@0xsequence/relayer': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/provider@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/account': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/auth': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/migration': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/relayer': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/wallet': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@databeat/tracker': 0.9.3 - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - eventemitter2: 6.4.9 - webextension-polyfill: 0.10.0 - - '@0xsequence/relayer@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.41 - '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/relayer@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/relayer@3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@3.25.76) - mipd: 0.0.7(typescript@5.9.3) - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/relayer@3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@3.25.76) - mipd: 0.0.7(typescript@5.9.3) - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/relayer@3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@4.3.6) - mipd: 0.0.7(typescript@5.9.3) - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/replacer@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/sessions@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/migration': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/replacer': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - idb: 7.1.1 - - '@0xsequence/signhub@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xsequence/tee-verifier@0.1.2': - dependencies: - cbor2: 1.12.0 - pkijs: 3.3.3 - - '@0xsequence/typescript-sdk@0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/utils@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - js-base64: 3.7.8 - - '@0xsequence/utils@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - js-base64: 3.7.8 - - '@0xsequence/waas@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - idb: 7.1.1 - json-canonicalize: 1.2.0 - jwt-decode: 4.0.0 - - '@0xsequence/wallet-core@3.0.0-beta.16(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@0xsequence/guard': 3.0.0(typescript@5.9.3)(zod@3.25.76) - '@0xsequence/relayer': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@3.25.76) - mipd: 0.0.7(typescript@5.9.3) - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/wallet-core@3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - '@0xsequence/guard': 3.0.0(typescript@5.9.3)(zod@4.3.6) - '@0xsequence/relayer': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@4.3.6) - mipd: 0.0.7(typescript@5.9.3) - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/wallet-primitives@3.0.0-beta.16(typescript@5.9.3)(zod@3.25.76)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/wallet-primitives@3.0.0-beta.17(typescript@5.9.3)(zod@3.25.76)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/wallet-primitives@3.0.0-beta.17(typescript@5.9.3)(zod@4.3.6)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/wallet-primitives@3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76)': - dependencies: - ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) - transitivePeerDependencies: - - typescript - - zod - - '@0xsequence/wallet-wdk@3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - '@0xsequence/guard': 3.0.0(typescript@5.9.3)(zod@4.3.6) - '@0xsequence/identity-instrument': 3.0.0-beta.19(typescript@5.9.3)(zod@4.3.6) - '@0xsequence/relayer': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/tee-verifier': 0.1.2 - '@0xsequence/wallet-core': 3.0.0-beta.17(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - '@0xsequence/wallet-primitives': 3.0.0-beta.17(typescript@5.9.3)(zod@4.3.6) - idb: 8.0.3 - jwt-decode: 4.0.0 - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - uuid: 13.0.0 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@0xsequence/wallet@2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.43 - '@0xsequence/core': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/network': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/relayer': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/signhub': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.43(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - '@0xtrails/api@0.10.4': {} - - '@0xtrails/api@0.14.0': {} - - '@0xtrails/wallet-registry@0.2.0': {} - - '@adraffy/ens-normalize@1.10.1': {} - - '@adraffy/ens-normalize@1.11.1': {} - - '@alcalzone/ansi-tokenize@0.1.3': - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 - - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.29.0': {} - - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.29.1': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.28.6': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-module-imports@7.28.6': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.28.6': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - - '@babel/parser@7.24.1': - dependencies: - '@babel/types': 7.29.0 - - '@babel/parser@7.29.0': - dependencies: - '@babel/types': 7.29.0 - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/runtime@7.29.2': {} - - '@babel/template@7.28.6': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - - '@babel/traverse@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@base-org/account@2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@coinbase/cdp-sdk': 1.45.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@noble/hashes': 1.8.0 - clsx: 1.2.1 - eventemitter3: 5.0.1 - idb-keyval: 6.2.1 - ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) - preact: 10.24.2 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - transitivePeerDependencies: - - '@types/react' - - bufferutil - - debug - - encoding - - fastestsmallesttextencoderdecoder - - immer - - react - - typescript - - use-sync-external-store - - utf-8-validate - - zod - - '@cloudflare/kv-asset-handler@0.4.2': {} - - '@cloudflare/unenv-preset@2.14.0(unenv@2.0.0-rc.24)(workerd@1.20260305.0)': - dependencies: - unenv: 2.0.0-rc.24 - optionalDependencies: - workerd: 1.20260305.0 - - '@cloudflare/workerd-darwin-64@1.20260305.0': - optional: true - - '@cloudflare/workerd-darwin-arm64@1.20260305.0': - optional: true - - '@cloudflare/workerd-linux-64@1.20260305.0': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20260305.0': - optional: true - - '@cloudflare/workerd-windows-64@1.20260305.0': - optional: true - - '@cloudflare/workers-types@4.20260317.1': {} - - '@coinbase/cdp-sdk@1.45.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@solana-program/system': 0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) - '@solana-program/token': 0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) - '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - abitype: 1.0.6(typescript@5.9.3)(zod@3.25.76) - axios: 1.13.6 - axios-retry: 4.5.0(axios@1.13.6) - jose: 6.2.2 - md5: 2.3.0 - uncrypto: 0.1.3 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - fastestsmallesttextencoderdecoder - - typescript - - utf-8-validate - - '@coinbase/wallet-sdk@3.9.3': - dependencies: - bn.js: 5.2.3 - buffer: 6.0.3 - clsx: 1.2.1 - eth-block-tracker: 7.1.0 - eth-json-rpc-filters: 6.0.1 - eventemitter3: 5.0.1 - keccak: 3.0.4 - preact: 10.29.0 - sha.js: 2.4.12 - transitivePeerDependencies: - - supports-color - - '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@noble/hashes': 1.8.0 - clsx: 1.2.1 - eventemitter3: 5.0.1 - idb-keyval: 6.2.1 - ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) - preact: 10.24.2 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - transitivePeerDependencies: - - '@types/react' - - bufferutil - - immer - - react - - typescript - - use-sync-external-store - - utf-8-validate - - zod - - '@commitlint/cli@20.4.2(@types/node@22.19.13)(typescript@5.9.3)': - dependencies: - '@commitlint/format': 20.4.0 - '@commitlint/lint': 20.4.2 - '@commitlint/load': 20.4.0(@types/node@22.19.13)(typescript@5.9.3) - '@commitlint/read': 20.4.0 - '@commitlint/types': 20.4.0 - tinyexec: 1.0.2 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - typescript - - '@commitlint/config-conventional@19.8.1': - dependencies: - '@commitlint/types': 19.8.1 - conventional-changelog-conventionalcommits: 7.0.2 - - '@commitlint/config-conventional@20.4.2': - dependencies: - '@commitlint/types': 20.4.0 - conventional-changelog-conventionalcommits: 9.2.0 - - '@commitlint/config-validator@20.4.0': - dependencies: - '@commitlint/types': 20.4.0 - ajv: 8.18.0 - - '@commitlint/ensure@20.4.1': - dependencies: - '@commitlint/types': 20.4.0 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - - '@commitlint/execute-rule@20.0.0': {} - - '@commitlint/format@20.4.0': - dependencies: - '@commitlint/types': 20.4.0 - picocolors: 1.1.1 - - '@commitlint/is-ignored@20.4.1': - dependencies: - '@commitlint/types': 20.4.0 - semver: 7.7.4 - - '@commitlint/lint@20.4.2': - dependencies: - '@commitlint/is-ignored': 20.4.1 - '@commitlint/parse': 20.4.1 - '@commitlint/rules': 20.4.2 - '@commitlint/types': 20.4.0 - - '@commitlint/load@20.4.0(@types/node@22.19.13)(typescript@5.9.3)': - dependencies: - '@commitlint/config-validator': 20.4.0 - '@commitlint/execute-rule': 20.0.0 - '@commitlint/resolve-extends': 20.4.0 - '@commitlint/types': 20.4.0 - cosmiconfig: 9.0.0(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.2.0(@types/node@22.19.13)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) - is-plain-obj: 4.1.0 - lodash.mergewith: 4.6.2 - picocolors: 1.1.1 - transitivePeerDependencies: - - '@types/node' - - typescript - - '@commitlint/message@20.4.0': {} - - '@commitlint/parse@20.4.1': - dependencies: - '@commitlint/types': 20.4.0 - conventional-changelog-angular: 8.2.0 - conventional-commits-parser: 6.3.0 - - '@commitlint/read@20.4.0': - dependencies: - '@commitlint/top-level': 20.4.0 - '@commitlint/types': 20.4.0 - git-raw-commits: 4.0.0 - minimist: 1.2.8 - tinyexec: 1.0.2 - - '@commitlint/resolve-extends@20.4.0': - dependencies: - '@commitlint/config-validator': 20.4.0 - '@commitlint/types': 20.4.0 - global-directory: 4.0.1 - import-meta-resolve: 4.2.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - - '@commitlint/rules@20.4.2': - dependencies: - '@commitlint/ensure': 20.4.1 - '@commitlint/message': 20.4.0 - '@commitlint/to-lines': 20.0.0 - '@commitlint/types': 20.4.0 - - '@commitlint/to-lines@20.0.0': {} - - '@commitlint/top-level@20.4.0': - dependencies: - escalade: 3.2.0 - - '@commitlint/types@19.8.1': - dependencies: - '@types/conventional-commits-parser': 5.0.2 - chalk: 5.6.2 - - '@commitlint/types@20.4.0': - dependencies: - conventional-commits-parser: 6.3.0 - picocolors: 1.1.1 - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@databeat/tracker@0.9.3': - dependencies: - '@noble/hashes': 1.8.0 - - '@ecies/ciphers@0.2.5(@noble/ciphers@1.3.0)': - dependencies: - '@noble/ciphers': 1.3.0 - - '@emnapi/core@1.8.1': - dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - - '@emnapi/runtime@1.8.1': - dependencies: - tslib: 2.8.1 - - '@emnapi/wasi-threads@1.1.0': - dependencies: - tslib: 2.8.1 - - '@emotion/is-prop-valid@1.4.0': - dependencies: - '@emotion/memoize': 0.9.0 - - '@emotion/memoize@0.9.0': {} - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.25.0': - optional: true - - '@esbuild/aix-ppc64@0.27.3': - optional: true - - '@esbuild/aix-ppc64@0.28.0': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.25.0': - optional: true - - '@esbuild/android-arm64@0.27.3': - optional: true - - '@esbuild/android-arm64@0.28.0': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-arm@0.25.0': - optional: true - - '@esbuild/android-arm@0.27.3': - optional: true - - '@esbuild/android-arm@0.28.0': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/android-x64@0.25.0': - optional: true - - '@esbuild/android-x64@0.27.3': - optional: true - - '@esbuild/android-x64@0.28.0': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.25.0': - optional: true - - '@esbuild/darwin-arm64@0.27.3': - optional: true - - '@esbuild/darwin-arm64@0.28.0': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.25.0': - optional: true - - '@esbuild/darwin-x64@0.27.3': - optional: true - - '@esbuild/darwin-x64@0.28.0': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.25.0': - optional: true - - '@esbuild/freebsd-arm64@0.27.3': - optional: true - - '@esbuild/freebsd-arm64@0.28.0': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.25.0': - optional: true - - '@esbuild/freebsd-x64@0.27.3': - optional: true - - '@esbuild/freebsd-x64@0.28.0': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.25.0': - optional: true - - '@esbuild/linux-arm64@0.27.3': - optional: true - - '@esbuild/linux-arm64@0.28.0': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-arm@0.25.0': - optional: true - - '@esbuild/linux-arm@0.27.3': - optional: true - - '@esbuild/linux-arm@0.28.0': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.25.0': - optional: true - - '@esbuild/linux-ia32@0.27.3': - optional: true - - '@esbuild/linux-ia32@0.28.0': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.25.0': - optional: true - - '@esbuild/linux-loong64@0.27.3': - optional: true - - '@esbuild/linux-loong64@0.28.0': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.25.0': - optional: true - - '@esbuild/linux-mips64el@0.27.3': - optional: true - - '@esbuild/linux-mips64el@0.28.0': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.25.0': - optional: true - - '@esbuild/linux-ppc64@0.27.3': - optional: true - - '@esbuild/linux-ppc64@0.28.0': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.25.0': - optional: true - - '@esbuild/linux-riscv64@0.27.3': - optional: true - - '@esbuild/linux-riscv64@0.28.0': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.25.0': - optional: true - - '@esbuild/linux-s390x@0.27.3': - optional: true - - '@esbuild/linux-s390x@0.28.0': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/linux-x64@0.25.0': - optional: true - - '@esbuild/linux-x64@0.27.3': - optional: true - - '@esbuild/linux-x64@0.28.0': - optional: true - - '@esbuild/netbsd-arm64@0.25.0': - optional: true - - '@esbuild/netbsd-arm64@0.27.3': - optional: true - - '@esbuild/netbsd-arm64@0.28.0': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.25.0': - optional: true - - '@esbuild/netbsd-x64@0.27.3': - optional: true - - '@esbuild/netbsd-x64@0.28.0': - optional: true - - '@esbuild/openbsd-arm64@0.25.0': - optional: true - - '@esbuild/openbsd-arm64@0.27.3': - optional: true - - '@esbuild/openbsd-arm64@0.28.0': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.25.0': - optional: true - - '@esbuild/openbsd-x64@0.27.3': - optional: true - - '@esbuild/openbsd-x64@0.28.0': - optional: true - - '@esbuild/openharmony-arm64@0.27.3': - optional: true - - '@esbuild/openharmony-arm64@0.28.0': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.25.0': - optional: true - - '@esbuild/sunos-x64@0.27.3': - optional: true - - '@esbuild/sunos-x64@0.28.0': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.25.0': - optional: true - - '@esbuild/win32-arm64@0.27.3': - optional: true - - '@esbuild/win32-arm64@0.28.0': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.25.0': - optional: true - - '@esbuild/win32-ia32@0.27.3': - optional: true - - '@esbuild/win32-ia32@0.28.0': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@esbuild/win32-x64@0.25.0': - optional: true - - '@esbuild/win32-x64@0.27.3': - optional: true - - '@esbuild/win32-x64@0.28.0': - optional: true - - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.6.1))': - dependencies: - eslint: 10.0.3(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/config-array@0.23.3': - dependencies: - '@eslint/object-schema': 3.0.3 - debug: 4.4.3 - minimatch: 10.2.4 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.5.3': - dependencies: - '@eslint/core': 1.1.1 - - '@eslint/core@1.1.1': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/object-schema@3.0.3': {} - - '@eslint/plugin-kit@0.6.1': - dependencies: - '@eslint/core': 1.1.1 - levn: 0.4.1 - - '@ethereumjs/common@3.2.0': - dependencies: - '@ethereumjs/util': 8.1.0 - crc-32: 1.2.2 - - '@ethereumjs/rlp@4.0.1': {} - - '@ethereumjs/tx@4.2.0': - dependencies: - '@ethereumjs/common': 3.2.0 - '@ethereumjs/rlp': 4.0.1 - '@ethereumjs/util': 8.1.0 - ethereum-cryptography: 2.2.1 - - '@ethereumjs/util@8.1.0': - dependencies: - '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.2.1 - micro-ftch: 0.3.1 - - '@ethersproject/abi@5.8.0': - dependencies: - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/abstract-provider@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/web': 5.8.0 - - '@ethersproject/abstract-signer@5.8.0': - dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - - '@ethersproject/address@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/rlp': 5.8.0 - - '@ethersproject/base64@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - - '@ethersproject/basex@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/properties': 5.8.0 - - '@ethersproject/bignumber@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - bn.js: 5.2.3 - - '@ethersproject/bytes@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 - - '@ethersproject/constants@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - - '@ethersproject/contracts@5.8.0': - dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/transactions': 5.8.0 - - '@ethersproject/hash@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/hdnode@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/wordlists': 5.8.0 - - '@ethersproject/json-wallets@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - - '@ethersproject/keccak256@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - js-sha3: 0.8.0 - - '@ethersproject/logger@5.8.0': {} - - '@ethersproject/networks@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 - - '@ethersproject/pbkdf2@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/sha2': 5.8.0 - - '@ethersproject/properties@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 - - '@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)': - dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/web': 5.8.0 - bech32: 1.1.4 - ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@ethersproject/random@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - - '@ethersproject/rlp@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - - '@ethersproject/sha2@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - hash.js: 1.1.7 - - '@ethersproject/signing-key@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - bn.js: 5.2.3 - elliptic: 6.6.1 - hash.js: 1.1.7 - - '@ethersproject/solidity@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/strings@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - - '@ethersproject/transactions@5.8.0': - dependencies: - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - - '@ethersproject/units@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - - '@ethersproject/wallet@5.8.0': - dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/json-wallets': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/wordlists': 5.8.0 - - '@ethersproject/web@5.8.0': - dependencies: - '@ethersproject/base64': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/wordlists@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 - - '@floating-ui/dom@1.7.6': - dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 - - '@floating-ui/react-dom@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.7.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@floating-ui/utils@0.2.11': {} - - '@gar/promise-retry@1.0.2': - dependencies: - retry: 0.13.1 - - '@gemini-wallet/core@0.3.2(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': - dependencies: - '@metamask/rpc-errors': 7.0.2 - eventemitter3: 5.0.1 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - supports-color - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.4.3': {} - - '@hutson/parse-repository-url@3.0.2': {} - - '@img/colour@1.1.0': {} - - '@img/sharp-darwin-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 - optional: true - - '@img/sharp-darwin-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.4': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-s390x@1.2.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - optional: true - - '@img/sharp-linux-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 - optional: true - - '@img/sharp-linux-arm@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 - optional: true - - '@img/sharp-linux-ppc64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 - optional: true - - '@img/sharp-linux-riscv64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 - optional: true - - '@img/sharp-linux-s390x@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 - optional: true - - '@img/sharp-linux-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - optional: true - - '@img/sharp-wasm32@0.34.5': - dependencies: - '@emnapi/runtime': 1.8.1 - optional: true - - '@img/sharp-win32-arm64@0.34.5': - optional: true - - '@img/sharp-win32-ia32@0.34.5': - optional: true - - '@img/sharp-win32-x64@0.34.5': - optional: true - - '@inquirer/ansi@1.0.2': {} - - '@inquirer/checkbox@4.3.2(@types/node@22.19.13)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.13) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/confirm@5.1.21(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/core@10.3.2(@types/node@22.19.13)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.13) - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/editor@4.2.23(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/external-editor': 1.0.3(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/expand@4.0.23(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/external-editor@1.0.3(@types/node@22.19.13)': - dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/figures@1.0.15': {} - - '@inquirer/input@4.3.1(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/number@3.0.23(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/password@4.0.23(@types/node@22.19.13)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/prompts@7.10.1(@types/node@22.19.13)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@22.19.13) - '@inquirer/confirm': 5.1.21(@types/node@22.19.13) - '@inquirer/editor': 4.2.23(@types/node@22.19.13) - '@inquirer/expand': 4.0.23(@types/node@22.19.13) - '@inquirer/input': 4.3.1(@types/node@22.19.13) - '@inquirer/number': 3.0.23(@types/node@22.19.13) - '@inquirer/password': 4.0.23(@types/node@22.19.13) - '@inquirer/rawlist': 4.1.11(@types/node@22.19.13) - '@inquirer/search': 3.2.2(@types/node@22.19.13) - '@inquirer/select': 4.4.2(@types/node@22.19.13) - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/rawlist@4.1.11(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/type': 3.0.10(@types/node@22.19.13) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/search@3.2.2(@types/node@22.19.13)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.13) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/select@4.4.2(@types/node@22.19.13)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.13) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.13) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.13 - - '@inquirer/type@3.0.10(@types/node@22.19.13)': - optionalDependencies: - '@types/node': 22.19.13 - - '@isaacs/cliui@9.0.0': {} - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.3 - - '@isaacs/string-locale-compare@1.1.0': {} - - '@jest/diff-sequences@30.0.1': {} - - '@jest/get-type@30.1.0': {} - - '@jest/schemas@30.0.5': - dependencies: - '@sinclair/typebox': 0.34.48 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/source-map@0.3.11': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@lerna/create@9.0.5(@types/node@22.19.13)(typescript@5.9.3)': - dependencies: - '@npmcli/arborist': 9.1.6 - '@npmcli/package-json': 7.0.2 - '@npmcli/run-script': 10.0.3 - '@nx/devkit': 22.5.3(nx@22.5.3) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 20.1.2 - aproba: 2.0.0 - byte-size: 8.1.1 - chalk: 4.1.0 - cmd-shim: 6.0.3 - color-support: 1.1.3 - columnify: 1.6.0 - console-control-strings: 1.1.0 - conventional-changelog-core: 5.0.1 - conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.9.3) - dedent: 1.5.3 - execa: 5.0.0 - fs-extra: 11.3.3 - get-stream: 6.0.0 - git-url-parse: 14.0.0 - glob-parent: 6.0.2 - has-unicode: 2.0.1 - ini: 1.3.8 - init-package-json: 8.2.2 - inquirer: 12.9.6(@types/node@22.19.13) - is-ci: 3.0.1 - is-stream: 2.0.0 - js-yaml: 4.1.1 - libnpmpublish: 11.1.2 - load-json-file: 6.2.0 - make-dir: 4.0.0 - make-fetch-happen: 15.0.2 - minimatch: 3.1.4 - multimatch: 5.0.0 - npm-package-arg: 13.0.1 - npm-packlist: 10.0.3 - npm-registry-fetch: 19.1.0 - nx: 22.5.3 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-queue: 6.6.2 - p-reduce: 2.1.0 - pacote: 21.0.1 - pify: 5.0.0 - read-cmd-shim: 4.0.0 - resolve-from: 5.0.0 - rimraf: 6.1.3 - semver: 7.7.2 - set-blocking: 2.0.0 - signal-exit: 3.0.7 - slash: 3.0.0 - ssri: 12.0.0 - string-width: 4.2.3 - tar: 7.5.8 - temp-dir: 1.0.0 - through: 2.3.8 - tinyglobby: 0.2.12 - upath: 2.0.1 - uuid: 11.1.0 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 6.0.2 - wide-align: 1.1.5 - write-file-atomic: 5.0.1 - write-pkg: 4.0.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - '@types/node' - - babel-plugin-macros - - debug - - supports-color - - typescript - - '@lit-labs/ssr-dom-shim@1.5.1': {} - - '@lit/reactive-element@2.1.2': - dependencies: - '@lit-labs/ssr-dom-shim': 1.5.1 - - '@meshconnect/node-api@2.0.24': - dependencies: - axios: 1.13.6 - transitivePeerDependencies: - - debug - - '@meshconnect/uwc-bridge-parent@1.1.1(bs58@6.0.0)(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)) - '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@6.0.0) - '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@wallet-standard/app': 1.1.0 - '@wallet-standard/base': 1.1.0 - comlink: 4.4.2 - transitivePeerDependencies: - - bs58 - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@meshconnect/web-link-sdk@3.7.1(bs58@6.0.0)(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@meshconnect/node-api': 2.0.24 - '@meshconnect/uwc-bridge-parent': 1.1.1(bs58@6.0.0)(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bs58 - - bufferutil - - debug - - encoding - - typescript - - utf-8-validate - - '@metamask/eth-json-rpc-provider@1.0.1': - dependencies: - '@metamask/json-rpc-engine': 7.3.3 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 5.0.2 - transitivePeerDependencies: - - supports-color - - '@metamask/json-rpc-engine@7.3.3': - dependencies: - '@metamask/rpc-errors': 6.4.0 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - transitivePeerDependencies: - - supports-color - - '@metamask/json-rpc-engine@8.0.2': - dependencies: - '@metamask/rpc-errors': 6.4.0 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - transitivePeerDependencies: - - supports-color - - '@metamask/json-rpc-middleware-stream@7.0.2': - dependencies: - '@metamask/json-rpc-engine': 8.0.2 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - readable-stream: 3.6.2 - transitivePeerDependencies: - - supports-color - - '@metamask/object-multiplex@2.1.0': - dependencies: - once: 1.4.0 - readable-stream: 3.6.2 - - '@metamask/onboarding@1.0.1': - dependencies: - bowser: 2.14.1 - - '@metamask/providers@16.1.0': - dependencies: - '@metamask/json-rpc-engine': 8.0.2 - '@metamask/json-rpc-middleware-stream': 7.0.2 - '@metamask/object-multiplex': 2.1.0 - '@metamask/rpc-errors': 6.4.0 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - detect-browser: 5.3.0 - extension-port-stream: 3.0.0 - fast-deep-equal: 3.1.3 - is-stream: 2.0.1 - readable-stream: 3.6.2 - webextension-polyfill: 0.10.0 - transitivePeerDependencies: - - supports-color - - '@metamask/rpc-errors@6.4.0': - dependencies: - '@metamask/utils': 9.3.0 - fast-safe-stringify: 2.1.1 - transitivePeerDependencies: - - supports-color - - '@metamask/rpc-errors@7.0.2': - dependencies: - '@metamask/utils': 11.10.0 - fast-safe-stringify: 2.1.1 - transitivePeerDependencies: - - supports-color - - '@metamask/safe-event-emitter@2.0.0': {} - - '@metamask/safe-event-emitter@3.1.2': {} - - '@metamask/sdk-analytics@0.0.5': - dependencies: - openapi-fetch: 0.13.8 - - '@metamask/sdk-communication-layer@0.33.1(cross-fetch@4.1.0(encoding@0.1.13))(eciesjs@0.4.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@metamask/sdk-analytics': 0.0.5 - bufferutil: 4.1.0 - cross-fetch: 4.1.0(encoding@0.1.13) - date-fns: 2.30.0 - debug: 4.3.4 - eciesjs: 0.4.18 - eventemitter2: 6.4.9 - readable-stream: 3.6.2 - socket.io-client: 4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - utf-8-validate: 5.0.10 - uuid: 8.3.2 - transitivePeerDependencies: - - supports-color - - '@metamask/sdk-install-modal-web@0.32.1': - dependencies: - '@paulmillr/qr': 0.2.1 - - '@metamask/sdk@0.33.1(bufferutil@4.1.0)(encoding@0.1.13)(utf-8-validate@6.0.6)': - dependencies: - '@babel/runtime': 7.29.2 - '@metamask/onboarding': 1.0.1 - '@metamask/providers': 16.1.0 - '@metamask/sdk-analytics': 0.0.5 - '@metamask/sdk-communication-layer': 0.33.1(cross-fetch@4.1.0(encoding@0.1.13))(eciesjs@0.4.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@metamask/sdk-install-modal-web': 0.32.1 - '@paulmillr/qr': 0.2.1 - bowser: 2.14.1 - cross-fetch: 4.1.0(encoding@0.1.13) - debug: 4.3.4 - eciesjs: 0.4.18 - eth-rpc-errors: 4.0.3 - eventemitter2: 6.4.9 - obj-multiplex: 1.0.0 - pump: 3.0.4 - readable-stream: 3.6.2 - socket.io-client: 4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - tslib: 2.8.1 - util: 0.12.5 - uuid: 8.3.2 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - - '@metamask/superstruct@3.2.1': {} - - '@metamask/utils@11.10.0': - dependencies: - '@ethereumjs/tx': 4.2.0 - '@metamask/superstruct': 3.2.1 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - '@types/debug': 4.1.13 - '@types/lodash': 4.17.24 - debug: 4.4.3 - lodash: 4.17.23 - pony-cause: 2.1.11 - semver: 7.7.4 - uuid: 9.0.1 - transitivePeerDependencies: - - supports-color - - '@metamask/utils@5.0.2': - dependencies: - '@ethereumjs/tx': 4.2.0 - '@types/debug': 4.1.13 - debug: 4.4.3 - semver: 7.7.4 - superstruct: 1.0.4 - transitivePeerDependencies: - - supports-color - - '@metamask/utils@8.5.0': - dependencies: - '@ethereumjs/tx': 4.2.0 - '@metamask/superstruct': 3.2.1 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - '@types/debug': 4.1.13 - debug: 4.4.3 - pony-cause: 2.1.11 - semver: 7.7.4 - uuid: 9.0.1 - transitivePeerDependencies: - - supports-color - - '@metamask/utils@9.3.0': - dependencies: - '@ethereumjs/tx': 4.2.0 - '@metamask/superstruct': 3.2.1 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - '@types/debug': 4.1.13 - debug: 4.4.3 - pony-cause: 2.1.11 - semver: 7.7.4 - uuid: 9.0.1 - transitivePeerDependencies: - - supports-color - - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@napi-rs/wasm-runtime@0.2.4': - dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.9.0 - - '@noble/ciphers@1.2.1': {} - - '@noble/ciphers@1.3.0': {} - - '@noble/curves@1.9.7': - dependencies: - '@noble/hashes': 1.8.0 - - '@noble/hashes@1.8.0': {} - - '@npmcli/agent@4.0.0': - dependencies: - agent-base: 7.1.4 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - lru-cache: 11.2.7 - socks-proxy-agent: 8.0.5 - transitivePeerDependencies: - - supports-color - - '@npmcli/arborist@9.1.6': - dependencies: - '@isaacs/string-locale-compare': 1.1.0 - '@npmcli/fs': 4.0.0 - '@npmcli/installed-package-contents': 3.0.0 - '@npmcli/map-workspaces': 5.0.3 - '@npmcli/metavuln-calculator': 9.0.3 - '@npmcli/name-from-folder': 3.0.0 - '@npmcli/node-gyp': 4.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/query': 4.0.1 - '@npmcli/redact': 3.2.2 - '@npmcli/run-script': 10.0.3 - bin-links: 5.0.0 - cacache: 20.0.3 - common-ancestor-path: 1.0.1 - hosted-git-info: 9.0.2 - json-stringify-nice: 1.1.4 - lru-cache: 11.2.7 - minimatch: 10.2.4 - nopt: 8.1.0 - npm-install-checks: 7.1.2 - npm-package-arg: 13.0.1 - npm-pick-manifest: 11.0.3 - npm-registry-fetch: 19.1.0 - pacote: 21.4.0 - parse-conflict-json: 4.0.0 - proc-log: 5.0.0 - proggy: 3.0.0 - promise-all-reject-late: 1.0.1 - promise-call-limit: 3.0.2 - semver: 7.7.4 - ssri: 12.0.0 - treeverse: 3.0.0 - walk-up-path: 4.0.0 - transitivePeerDependencies: - - supports-color - - '@npmcli/fs@4.0.0': - dependencies: - semver: 7.7.4 - - '@npmcli/fs@5.0.0': - dependencies: - semver: 7.7.4 - - '@npmcli/git@6.0.3': - dependencies: - '@npmcli/promise-spawn': 8.0.3 - ini: 5.0.0 - lru-cache: 10.4.3 - npm-pick-manifest: 10.0.0 - proc-log: 5.0.0 - promise-retry: 2.0.1 - semver: 7.7.4 - which: 5.0.0 - - '@npmcli/git@7.0.2': - dependencies: - '@gar/promise-retry': 1.0.2 - '@npmcli/promise-spawn': 9.0.1 - ini: 6.0.0 - lru-cache: 11.2.7 - npm-pick-manifest: 11.0.3 - proc-log: 6.1.0 - semver: 7.7.4 - which: 6.0.1 - - '@npmcli/installed-package-contents@3.0.0': - dependencies: - npm-bundled: 4.0.0 - npm-normalize-package-bin: 4.0.0 - - '@npmcli/installed-package-contents@4.0.0': - dependencies: - npm-bundled: 5.0.0 - npm-normalize-package-bin: 5.0.0 - - '@npmcli/map-workspaces@5.0.3': - dependencies: - '@npmcli/name-from-folder': 4.0.0 - '@npmcli/package-json': 7.0.2 - glob: 13.0.6 - minimatch: 10.2.4 - - '@npmcli/metavuln-calculator@9.0.3': - dependencies: - cacache: 20.0.3 - json-parse-even-better-errors: 5.0.0 - pacote: 21.4.0 - proc-log: 6.1.0 - semver: 7.7.4 - transitivePeerDependencies: - - supports-color - - '@npmcli/name-from-folder@3.0.0': {} - - '@npmcli/name-from-folder@4.0.0': {} - - '@npmcli/node-gyp@4.0.0': {} - - '@npmcli/node-gyp@5.0.0': {} - - '@npmcli/package-json@7.0.2': - dependencies: - '@npmcli/git': 7.0.2 - glob: 11.1.0 - hosted-git-info: 9.0.2 - json-parse-even-better-errors: 5.0.0 - proc-log: 6.1.0 - semver: 7.7.4 - validate-npm-package-license: 3.0.4 - - '@npmcli/promise-spawn@8.0.3': - dependencies: - which: 5.0.0 - - '@npmcli/promise-spawn@9.0.1': - dependencies: - which: 6.0.1 - - '@npmcli/query@4.0.1': - dependencies: - postcss-selector-parser: 7.1.1 - - '@npmcli/redact@3.2.2': {} - - '@npmcli/run-script@10.0.3': - dependencies: - '@npmcli/node-gyp': 5.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 9.0.1 - node-gyp: 12.2.0 - proc-log: 6.1.0 - which: 6.0.1 - transitivePeerDependencies: - - supports-color - - '@nx/devkit@22.5.3(nx@22.5.3)': - dependencies: - '@zkochan/js-yaml': 0.0.7 - ejs: 3.1.10 - enquirer: 2.3.6 - minimatch: 10.2.1 - nx: 22.5.3 - semver: 7.7.4 - tslib: 2.8.1 - yargs-parser: 21.1.1 - - '@nx/nx-darwin-arm64@22.5.3': - optional: true - - '@nx/nx-darwin-x64@22.5.3': - optional: true - - '@nx/nx-freebsd-x64@22.5.3': - optional: true - - '@nx/nx-linux-arm-gnueabihf@22.5.3': - optional: true - - '@nx/nx-linux-arm64-gnu@22.5.3': - optional: true - - '@nx/nx-linux-arm64-musl@22.5.3': - optional: true - - '@nx/nx-linux-x64-gnu@22.5.3': - optional: true - - '@nx/nx-linux-x64-musl@22.5.3': - optional: true - - '@nx/nx-win32-arm64-msvc@22.5.3': - optional: true - - '@nx/nx-win32-x64-msvc@22.5.3': - optional: true - - '@octokit/auth-token@4.0.0': {} - - '@octokit/core@5.2.2': - dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.1 - '@octokit/request': 8.4.1 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - - '@octokit/endpoint@9.0.6': - dependencies: - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/graphql@7.1.1': - dependencies: - '@octokit/request': 8.4.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/openapi-types@24.2.0': {} - - '@octokit/plugin-enterprise-rest@6.0.1': {} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 - - '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 - - '@octokit/request-error@5.1.1': - dependencies: - '@octokit/types': 13.10.0 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request@8.4.1': - dependencies: - '@octokit/endpoint': 9.0.6 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/rest@20.1.2': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.2) - '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) - '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) - - '@octokit/types@13.10.0': - dependencies: - '@octokit/openapi-types': 24.2.0 - - '@package-json/types@0.0.12': {} - - '@parcel/watcher-android-arm64@2.5.6': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.6': - optional: true - - '@parcel/watcher-darwin-x64@2.5.6': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.6': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.6': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.6': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.6': + '@esbuild/win32-ia32@0.27.3': optional: true - '@parcel/watcher-linux-x64-musl@2.5.6': + '@esbuild/win32-ia32@0.28.0': optional: true - '@parcel/watcher-win32-arm64@2.5.6': + '@esbuild/win32-x64@0.25.0': optional: true - '@parcel/watcher-win32-ia32@2.5.6': + '@esbuild/win32-x64@0.27.3': optional: true - '@parcel/watcher-win32-x64@2.5.6': + '@esbuild/win32-x64@0.28.0': optional: true - '@parcel/watcher@2.5.6': - dependencies: - detect-libc: 2.1.2 - is-glob: 4.0.3 - node-addon-api: 7.1.1 - picomatch: 4.0.3 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.6 - '@parcel/watcher-darwin-arm64': 2.5.6 - '@parcel/watcher-darwin-x64': 2.5.6 - '@parcel/watcher-freebsd-x64': 2.5.6 - '@parcel/watcher-linux-arm-glibc': 2.5.6 - '@parcel/watcher-linux-arm-musl': 2.5.6 - '@parcel/watcher-linux-arm64-glibc': 2.5.6 - '@parcel/watcher-linux-arm64-musl': 2.5.6 - '@parcel/watcher-linux-x64-glibc': 2.5.6 - '@parcel/watcher-linux-x64-musl': 2.5.6 - '@parcel/watcher-win32-arm64': 2.5.6 - '@parcel/watcher-win32-ia32': 2.5.6 - '@parcel/watcher-win32-x64': 2.5.6 - - '@paulmillr/qr@0.2.1': {} - - '@polygonlabs/apps-team-lint@2.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.6.1))': dependencies: - '@commitlint/config-conventional': 19.8.1 eslint: 10.0.3(jiti@2.6.1) - eslint-config-prettier: 10.1.8(eslint@10.0.3(jiti@2.6.1)) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)))(eslint@10.0.3(jiti@2.6.1)) - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)) - eslint-plugin-perfectionist: 5.6.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - globals: 17.4.0 - typescript-eslint: 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@typescript-eslint/utils' - - eslint-import-resolver-node - - eslint-plugin-import - - supports-color - - '@polymarket/clob-client-v2@1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@ethersproject/wallet': 5.8.0 - axios: 1.13.6 - browser-or-node: 3.0.0 - tslib: 2.8.1 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - debug - - typescript - - utf-8-validate - - zod - - '@polymarket/sdk@6.0.1(@ethersproject/abi@5.8.0)(@ethersproject/address@5.8.0)(@ethersproject/bignumber@5.8.0)(@ethersproject/constants@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/keccak256@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@ethersproject/solidity@5.8.0)': - dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/contracts': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@ethersproject/solidity': 5.8.0 - - '@poppinss/colors@4.1.6': - dependencies: - kleur: 4.1.5 - - '@poppinss/dumper@0.6.5': - dependencies: - '@poppinss/colors': 4.1.6 - '@sindresorhus/is': 7.2.0 - supports-color: 10.2.2 - - '@poppinss/exception@1.2.3': {} - - '@radix-ui/number@1.1.1': {} - - '@radix-ui/primitive@1.1.3': {} - - '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-aspect-ratio@1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.28)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-context@1.1.2(@types/react@18.3.28)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-context@1.1.3(@types/react@18.3.28)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-direction@1.1.1(@types/react@18.3.28)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + eslint-visitor-keys: 3.4.3 - '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.28)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@eslint-community/regexpp@4.12.2': {} - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@eslint/config-array@0.23.3': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@eslint/object-schema': 3.0.3 + debug: 4.4.3 + minimatch: 10.2.4 + transitivePeerDependencies: + - supports-color - '@radix-ui/react-id@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@eslint/config-helpers@0.5.3': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/rect': 1.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@eslint/core': 1.1.1 - '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@eslint/core@1.1.1': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@types/json-schema': 7.0.15 - '@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@eslint/object-schema@3.0.3': {} - '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@eslint/plugin-kit@0.6.1': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@eslint/core': 1.1.1 + levn: 0.4.1 - '@radix-ui/react-primitive@2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/abi@5.8.0': dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 - '@radix-ui/react-progress@1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/abstract-provider@5.8.0': dependencies: - '@radix-ui/react-context': 1.1.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-select@2.2.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 - '@radix-ui/react-slot@1.2.3(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/abstract-signer@5.8.0': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 - '@radix-ui/react-slot@1.2.4(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/address@5.8.0': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp': 5.8.0 - '@radix-ui/react-switch@1.2.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/base64@5.8.0': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-tabs@1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-toast@1.2.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@ethersproject/bytes': 5.8.0 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/basex@5.8.0': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/properties': 5.8.0 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/bignumber@5.8.0': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.28)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + bn.js: 5.2.3 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/bytes@5.8.0': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/logger': 5.8.0 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/constants@5.8.0': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/bignumber': 5.8.0 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/contracts@5.8.0': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 - '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/hash@5.8.0': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 - '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/hdnode@5.8.0': dependencies: - '@radix-ui/rect': 1.1.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wordlists': 5.8.0 - '@radix-ui/react-use-size@1.1.1(@types/react@18.3.28)(react@18.3.1)': + '@ethersproject/json-wallets@5.8.0': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/keccak256@5.8.0': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@ethersproject/bytes': 5.8.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.8.0': {} - '@radix-ui/react-visually-hidden@1.2.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/networks@5.8.0': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) + '@ethersproject/logger': 5.8.0 - '@radix-ui/rect@1.1.1': {} + '@ethersproject/pbkdf2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/sha2': 5.8.0 - '@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/properties@5.8.0': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@ethersproject/logger': 5.8.0 - '@remotion/bundler@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)': dependencies: - '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - css-loader: 5.2.7(webpack@5.96.1(postcss@8.5.6)) - esbuild: 0.25.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-refresh: 0.9.0 - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - source-map: 0.7.3 - style-loader: 4.0.0(webpack@5.96.1(postcss@8.5.6)) - webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 + bech32: 1.1.4 + ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js - utf-8-validate - - webpack-cli - '@remotion/cli@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@ethersproject/random@5.8.0': dependencies: - '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-server': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - dotenv: 9.0.2 - minimist: 1.2.6 - prompts: 2.4.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 - '@remotion/compositor-darwin-arm64@4.0.290': - optional: true + '@ethersproject/rlp@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 - '@remotion/compositor-darwin-x64@4.0.290': - optional: true + '@ethersproject/sha2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + hash.js: 1.1.7 - '@remotion/compositor-linux-arm64-gnu@4.0.290': - optional: true + '@ethersproject/signing-key@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + bn.js: 5.2.3 + elliptic: 6.6.1 + hash.js: 1.1.7 - '@remotion/compositor-linux-arm64-musl@4.0.290': - optional: true + '@ethersproject/solidity@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/strings': 5.8.0 - '@remotion/compositor-linux-x64-gnu@4.0.290': - optional: true + '@ethersproject/strings@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 - '@remotion/compositor-linux-x64-musl@4.0.290': - optional: true + '@ethersproject/transactions@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/signing-key': 5.8.0 - '@remotion/compositor-win32-x64-msvc@4.0.290': - optional: true + '@ethersproject/units@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 - '@remotion/media-parser@4.0.290': {} + '@ethersproject/wallet@5.8.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/json-wallets': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wordlists': 5.8.0 - '@remotion/media-utils@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/web@5.8.0': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ethersproject/base64': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 - '@remotion/player@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ethersproject/wordlists@5.8.0': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 - '@remotion/renderer@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@gar/promise-retry@1.0.2': dependencies: - '@remotion/streaming': 4.0.290 - execa: 5.1.1 - extract-zip: 2.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - source-map: 0.8.0-beta.0 - ws: 8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - '@remotion/compositor-darwin-arm64': 4.0.290 - '@remotion/compositor-darwin-x64': 4.0.290 - '@remotion/compositor-linux-arm64-gnu': 4.0.290 - '@remotion/compositor-linux-arm64-musl': 4.0.290 - '@remotion/compositor-linux-x64-gnu': 4.0.290 - '@remotion/compositor-linux-x64-musl': 4.0.290 - '@remotion/compositor-win32-x64-msvc': 4.0.290 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + retry: 0.13.1 - '@remotion/streaming@4.0.290': {} + '@humanfs/core@0.19.1': {} - '@remotion/studio-server@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@humanfs/node@0.16.7': dependencies: - '@babel/parser': 7.24.1 - '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - memfs: 3.4.3 - open: 8.4.2 - recast: 0.23.9 - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.3 - source-map: 0.7.3 - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - react - - react-dom - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 - '@remotion/studio-shared@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@hutson/parse-repository-url@3.0.2': {} + + '@inquirer/ansi@1.0.2': {} + + '@inquirer/checkbox@4.3.2(@types/node@22.19.13)': dependencies: - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - react - - react-dom + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.13 - '@remotion/studio@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@inquirer/confirm@5.1.21(@types/node@22.19.13)': dependencies: - '@remotion/media-parser': 4.0.290 - '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/zod-types': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3) - memfs: 3.4.3 - open: 8.4.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.3 - source-map: 0.7.3 - zod: 3.22.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + optionalDependencies: + '@types/node': 22.19.13 - '@remotion/zod-types@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3)': + '@inquirer/core@10.3.2(@types/node@22.19.13)': dependencies: - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - zod: 3.22.3 - transitivePeerDependencies: - - react - - react-dom + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.13) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4)': + '@inquirer/editor@4.2.23(@types/node@22.19.13)': dependencies: - big.js: 6.2.2 - dayjs: 1.11.13 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/external-editor': 1.0.3(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + '@inquirer/expand@4.0.23(@types/node@22.19.13)': dependencies: - big.js: 6.2.2 - dayjs: 1.11.13 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-controllers@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + '@inquirer/external-editor@1.0.3(@types/node@22.19.13)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-pay@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@4.3.1(@types/node@22.19.13)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - lit: 3.3.0 - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-polyfills@1.7.8': + '@inquirer/number@3.0.23(@types/node@22.19.13)': dependencies: - buffer: 6.0.3 + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-scaffold-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': + '@inquirer/password@4.0.23(@types/node@22.19.13)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - lit: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - valtio - - zod + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + '@inquirer/prompts@7.10.1(@types/node@22.19.13)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - lit: 3.3.0 - qrcode: 1.5.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod + '@inquirer/checkbox': 4.3.2(@types/node@22.19.13) + '@inquirer/confirm': 5.1.21(@types/node@22.19.13) + '@inquirer/editor': 4.2.23(@types/node@22.19.13) + '@inquirer/expand': 4.0.23(@types/node@22.19.13) + '@inquirer/input': 4.3.1(@types/node@22.19.13) + '@inquirer/number': 3.0.23(@types/node@22.19.13) + '@inquirer/password': 4.0.23(@types/node@22.19.13) + '@inquirer/rawlist': 4.1.11(@types/node@22.19.13) + '@inquirer/search': 3.2.2(@types/node@22.19.13) + '@inquirer/select': 4.4.2(@types/node@22.19.13) + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-utils@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': + '@inquirer/rawlist@4.1.11(@types/node@22.19.13)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@walletconnect/logger': 2.1.2 - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/type': 3.0.10(@types/node@22.19.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit-wallet@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + '@inquirer/search@3.2.2(@types/node@22.19.13)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4) - '@reown/appkit-polyfills': 1.7.8 - '@walletconnect/logger': 2.1.2 - zod: 3.22.4 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.13 - '@reown/appkit@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-pay': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-scaffold-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@walletconnect/types': 2.21.0 - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - bs58: 6.0.0 - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod + '@inquirer/select@4.4.2(@types/node@22.19.13)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.13) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.13 - '@rolldown/pluginutils@1.0.0-beta.27': {} + '@inquirer/type@3.0.10(@types/node@22.19.13)': + optionalDependencies: + '@types/node': 22.19.13 - '@rollup/rollup-android-arm-eabi@4.59.0': - optional: true + '@isaacs/cliui@9.0.0': {} - '@rollup/rollup-android-arm64@4.59.0': - optional: true + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 - '@rollup/rollup-darwin-arm64@4.59.0': - optional: true + '@isaacs/string-locale-compare@1.1.0': {} - '@rollup/rollup-darwin-x64@4.59.0': - optional: true + '@jest/diff-sequences@30.0.1': {} - '@rollup/rollup-freebsd-arm64@4.59.0': - optional: true + '@jest/get-type@30.1.0': {} - '@rollup/rollup-freebsd-x64@4.59.0': - optional: true + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.48 - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - optional: true + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - optional: true + '@jridgewell/resolve-uri@3.1.2': {} - '@rollup/rollup-linux-arm64-gnu@4.59.0': - optional: true + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@rollup/rollup-linux-arm64-musl@4.59.0': - optional: true + '@jridgewell/sourcemap-codec@1.5.5': {} - '@rollup/rollup-linux-loong64-gnu@4.59.0': - optional: true + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@rollup/rollup-linux-loong64-musl@4.59.0': - optional: true + '@lerna/create@9.0.5(@types/node@22.19.13)(typescript@5.9.3)': + dependencies: + '@npmcli/arborist': 9.1.6 + '@npmcli/package-json': 7.0.2 + '@npmcli/run-script': 10.0.3 + '@nx/devkit': 22.5.3(nx@22.5.3) + '@octokit/plugin-enterprise-rest': 6.0.1 + '@octokit/rest': 20.1.2 + aproba: 2.0.0 + byte-size: 8.1.1 + chalk: 4.1.0 + cmd-shim: 6.0.3 + color-support: 1.1.3 + columnify: 1.6.0 + console-control-strings: 1.1.0 + conventional-changelog-core: 5.0.1 + conventional-recommended-bump: 7.0.1 + cosmiconfig: 9.0.0(typescript@5.9.3) + dedent: 1.5.3 + execa: 5.0.0 + fs-extra: 11.3.3 + get-stream: 6.0.0 + git-url-parse: 14.0.0 + glob-parent: 6.0.2 + has-unicode: 2.0.1 + ini: 1.3.8 + init-package-json: 8.2.2 + inquirer: 12.9.6(@types/node@22.19.13) + is-ci: 3.0.1 + is-stream: 2.0.0 + js-yaml: 4.1.1 + libnpmpublish: 11.1.2 + load-json-file: 6.2.0 + make-dir: 4.0.0 + make-fetch-happen: 15.0.2 + minimatch: 3.1.4 + multimatch: 5.0.0 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 + npm-registry-fetch: 19.1.0 + nx: 22.5.3 + p-map: 4.0.0 + p-map-series: 2.1.0 + p-queue: 6.6.2 + p-reduce: 2.1.0 + pacote: 21.0.1 + pify: 5.0.0 + read-cmd-shim: 4.0.0 + resolve-from: 5.0.0 + rimraf: 6.1.3 + semver: 7.7.2 + set-blocking: 2.0.0 + signal-exit: 3.0.7 + slash: 3.0.0 + ssri: 12.0.0 + string-width: 4.2.3 + tar: 7.5.8 + temp-dir: 1.0.0 + through: 2.3.8 + tinyglobby: 0.2.12 + upath: 2.0.1 + uuid: 11.1.0 + validate-npm-package-license: 3.0.4 + validate-npm-package-name: 6.0.2 + wide-align: 1.1.5 + write-file-atomic: 5.0.1 + write-pkg: 4.0.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - '@types/node' + - babel-plugin-macros + - debug + - supports-color + - typescript - '@rollup/rollup-linux-ppc64-gnu@4.59.0': + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': - optional: true + '@napi-rs/wasm-runtime@0.2.4': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.9.0 - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - optional: true + '@noble/ciphers@1.3.0': {} - '@rollup/rollup-linux-riscv64-musl@4.59.0': - optional: true + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 - '@rollup/rollup-linux-s390x-gnu@4.59.0': - optional: true + '@noble/hashes@1.8.0': {} - '@rollup/rollup-linux-x64-gnu@4.59.0': - optional: true + '@npmcli/agent@4.0.0': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 11.2.7 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color - '@rollup/rollup-linux-x64-musl@4.59.0': - optional: true + '@npmcli/arborist@9.1.6': + dependencies: + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 4.0.0 + '@npmcli/installed-package-contents': 3.0.0 + '@npmcli/map-workspaces': 5.0.3 + '@npmcli/metavuln-calculator': 9.0.3 + '@npmcli/name-from-folder': 3.0.0 + '@npmcli/node-gyp': 4.0.0 + '@npmcli/package-json': 7.0.2 + '@npmcli/query': 4.0.1 + '@npmcli/redact': 3.2.2 + '@npmcli/run-script': 10.0.3 + bin-links: 5.0.0 + cacache: 20.0.3 + common-ancestor-path: 1.0.1 + hosted-git-info: 9.0.2 + json-stringify-nice: 1.1.4 + lru-cache: 11.2.7 + minimatch: 10.2.4 + nopt: 8.1.0 + npm-install-checks: 7.1.2 + npm-package-arg: 13.0.1 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.0 + pacote: 21.4.0 + parse-conflict-json: 4.0.0 + proc-log: 5.0.0 + proggy: 3.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 3.0.2 + semver: 7.7.4 + ssri: 12.0.0 + treeverse: 3.0.0 + walk-up-path: 4.0.0 + transitivePeerDependencies: + - supports-color - '@rollup/rollup-openbsd-x64@4.59.0': - optional: true + '@npmcli/fs@4.0.0': + dependencies: + semver: 7.7.4 - '@rollup/rollup-openharmony-arm64@4.59.0': - optional: true + '@npmcli/fs@5.0.0': + dependencies: + semver: 7.7.4 - '@rollup/rollup-win32-arm64-msvc@4.59.0': - optional: true + '@npmcli/git@6.0.3': + dependencies: + '@npmcli/promise-spawn': 8.0.3 + ini: 5.0.0 + lru-cache: 10.4.3 + npm-pick-manifest: 10.0.0 + proc-log: 5.0.0 + promise-retry: 2.0.1 + semver: 7.7.4 + which: 5.0.0 - '@rollup/rollup-win32-ia32-msvc@4.59.0': - optional: true + '@npmcli/git@7.0.2': + dependencies: + '@gar/promise-retry': 1.0.2 + '@npmcli/promise-spawn': 9.0.1 + ini: 6.0.0 + lru-cache: 11.2.7 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + semver: 7.7.4 + which: 6.0.1 - '@rollup/rollup-win32-x64-gnu@4.59.0': - optional: true + '@npmcli/installed-package-contents@3.0.0': + dependencies: + npm-bundled: 4.0.0 + npm-normalize-package-bin: 4.0.0 - '@rollup/rollup-win32-x64-msvc@4.59.0': - optional: true + '@npmcli/installed-package-contents@4.0.0': + dependencies: + npm-bundled: 5.0.0 + npm-normalize-package-bin: 5.0.0 - '@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + '@npmcli/map-workspaces@5.0.3': dependencies: - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/package-json': 7.0.2 + glob: 13.0.6 + minimatch: 10.2.4 - '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + '@npmcli/metavuln-calculator@9.0.3': dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + cacache: 20.0.3 + json-parse-even-better-errors: 5.0.0 + pacote: 21.4.0 + proc-log: 6.1.0 + semver: 7.7.4 transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@safe-global/safe-gateway-typescript-sdk@3.23.1': {} - - '@scure/base@1.1.9': {} + - supports-color - '@scure/base@1.2.6': {} + '@npmcli/name-from-folder@3.0.0': {} - '@scure/bip32@1.4.0': - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/base': 1.1.9 + '@npmcli/name-from-folder@4.0.0': {} - '@scure/bip32@1.6.2': - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 + '@npmcli/node-gyp@4.0.0': {} - '@scure/bip32@1.7.0': - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 + '@npmcli/node-gyp@5.0.0': {} - '@scure/bip39@1.3.0': + '@npmcli/package-json@7.0.2': dependencies: - '@noble/hashes': 1.8.0 - '@scure/base': 1.1.9 + '@npmcli/git': 7.0.2 + glob: 11.1.0 + hosted-git-info: 9.0.2 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.7.4 + validate-npm-package-license: 3.0.4 - '@scure/bip39@1.5.4': + '@npmcli/promise-spawn@8.0.3': dependencies: - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 + which: 5.0.0 - '@scure/bip39@1.6.0': + '@npmcli/promise-spawn@9.0.1': dependencies: - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 + which: 6.0.1 - '@sigstore/bundle@4.0.0': + '@npmcli/query@4.0.1': dependencies: - '@sigstore/protobuf-specs': 0.5.0 - - '@sigstore/core@3.1.0': {} + postcss-selector-parser: 7.1.1 - '@sigstore/protobuf-specs@0.5.0': {} + '@npmcli/redact@3.2.2': {} - '@sigstore/sign@4.1.0': + '@npmcli/run-script@10.0.3': dependencies: - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 - '@sigstore/protobuf-specs': 0.5.0 - make-fetch-happen: 15.0.4 + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.2 + '@npmcli/promise-spawn': 9.0.1 + node-gyp: 12.2.0 proc-log: 6.1.0 - promise-retry: 2.0.1 + which: 6.0.1 transitivePeerDependencies: - supports-color - '@sigstore/tuf@4.0.1': + '@nx/devkit@22.5.3(nx@22.5.3)': dependencies: - '@sigstore/protobuf-specs': 0.5.0 - tuf-js: 4.1.0 - transitivePeerDependencies: - - supports-color + '@zkochan/js-yaml': 0.0.7 + ejs: 3.1.10 + enquirer: 2.3.6 + minimatch: 10.2.1 + nx: 22.5.3 + semver: 7.7.4 + tslib: 2.8.1 + yargs-parser: 21.1.1 - '@sigstore/verify@3.1.0': - dependencies: - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 - '@sigstore/protobuf-specs': 0.5.0 + '@nx/nx-darwin-arm64@22.5.3': + optional: true - '@simple-libs/stream-utils@1.2.0': {} + '@nx/nx-darwin-x64@22.5.3': + optional: true - '@sinclair/typebox@0.34.48': {} + '@nx/nx-freebsd-x64@22.5.3': + optional: true - '@sindresorhus/is@7.2.0': {} + '@nx/nx-linux-arm-gnueabihf@22.5.3': + optional: true + + '@nx/nx-linux-arm64-gnu@22.5.3': + optional: true - '@socket.io/component-emitter@3.1.2': {} + '@nx/nx-linux-arm64-musl@22.5.3': + optional: true - '@solana-program/system@0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': - dependencies: - '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@nx/nx-linux-x64-gnu@22.5.3': + optional: true - '@solana-program/token@0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': - dependencies: - '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@nx/nx-linux-x64-musl@22.5.3': + optional: true + + '@nx/nx-win32-arm64-msvc@22.5.3': + optional: true + + '@nx/nx-win32-x64-msvc@22.5.3': + optional: true + + '@octokit/auth-token@4.0.0': {} - '@solana/accounts@5.5.1(typescript@5.9.3)': + '@octokit/core@5.2.2': dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 - '@solana/addresses@5.5.1(typescript@5.9.3)': + '@octokit/endpoint@9.0.6': dependencies: - '@solana/assertions': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 - '@solana/assertions@5.5.1(typescript@5.9.3)': + '@octokit/graphql@7.1.1': dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@octokit/request': 8.4.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 - '@solana/buffer-layout@4.0.1': + '@octokit/openapi-types@24.2.0': {} + + '@octokit/plugin-enterprise-rest@6.0.1': {} + + '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)': dependencies: - buffer: 6.0.3 + '@octokit/core': 5.2.2 + '@octokit/types': 13.10.0 - '@solana/codecs-core@2.3.0(typescript@5.9.3)': + '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': dependencies: - '@solana/errors': 2.3.0(typescript@5.9.3) - typescript: 5.9.3 + '@octokit/core': 5.2.2 - '@solana/codecs-core@5.5.1(typescript@5.9.3)': + '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@octokit/core': 5.2.2 + '@octokit/types': 13.10.0 - '@solana/codecs-data-structures@5.5.1(typescript@5.9.3)': + '@octokit/request-error@5.1.1': dependencies: - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@octokit/types': 13.10.0 + deprecation: 2.3.1 + once: 1.4.0 - '@solana/codecs-numbers@2.3.0(typescript@5.9.3)': + '@octokit/request@8.4.1': dependencies: - '@solana/codecs-core': 2.3.0(typescript@5.9.3) - '@solana/errors': 2.3.0(typescript@5.9.3) - typescript: 5.9.3 + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 - '@solana/codecs-numbers@5.5.1(typescript@5.9.3)': + '@octokit/rest@20.1.2': dependencies: - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@octokit/core': 5.2.2 + '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.2) + '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) + '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) - '@solana/codecs-strings@5.5.1(typescript@5.9.3)': + '@octokit/types@13.10.0': dependencies: - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@octokit/openapi-types': 24.2.0 + + '@package-json/types@0.0.12': {} - '@solana/codecs@5.5.1(typescript@5.9.3)': + '@polygonlabs/apps-team-lint@2.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/options': 5.5.1(typescript@5.9.3) + '@commitlint/config-conventional': 19.8.1 + eslint: 10.0.3(jiti@2.6.1) + eslint-config-prettier: 10.1.8(eslint@10.0.3(jiti@2.6.1)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)))(eslint@10.0.3(jiti@2.6.1)) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)) + eslint-plugin-perfectionist: 5.6.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + globals: 17.4.0 + typescript-eslint: 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + - '@typescript-eslint/utils' + - eslint-import-resolver-node + - eslint-plugin-import + - supports-color - '@solana/errors@2.3.0(typescript@5.9.3)': + '@polymarket/clob-client-v2@1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': dependencies: - chalk: 5.6.2 - commander: 14.0.3 - typescript: 5.9.3 + '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@ethersproject/wallet': 5.8.0 + axios: 1.13.6 + browser-or-node: 3.0.0 + tslib: 2.8.1 + viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - debug + - typescript + - utf-8-validate + - zod - '@solana/errors@5.5.1(typescript@5.9.3)': + '@polymarket/sdk@6.0.1(@ethersproject/abi@5.8.0)(@ethersproject/address@5.8.0)(@ethersproject/bignumber@5.8.0)(@ethersproject/constants@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/keccak256@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@ethersproject/solidity@5.8.0)': dependencies: - chalk: 5.6.2 - commander: 14.0.2 - optionalDependencies: - typescript: 5.9.3 - - '@solana/fast-stable-stringify@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 - - '@solana/functional@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/contracts': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@ethersproject/solidity': 5.8.0 - '@solana/instruction-plans@5.5.1(typescript@5.9.3)': + '@remotion/bundler@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/instructions': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/promises': 5.5.1(typescript@5.9.3) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - '@solana/transactions': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + css-loader: 5.2.7(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)) + esbuild: 0.25.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-refresh: 0.9.0 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + source-map: 0.7.3 + style-loader: 4.0.0(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)) + webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/instructions@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli - '@solana/keys@5.5.1(typescript@5.9.3)': + '@remotion/cli@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': dependencies: - '@solana/assertions': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@solana/accounts': 5.5.1(typescript@5.9.3) - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/instruction-plans': 5.5.1(typescript@5.9.3) - '@solana/instructions': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/offchain-messages': 5.5.1(typescript@5.9.3) - '@solana/plugin-core': 5.5.1(typescript@5.9.3) - '@solana/programs': 5.5.1(typescript@5.9.3) - '@solana/rpc': 5.5.1(typescript@5.9.3) - '@solana/rpc-api': 5.5.1(typescript@5.9.3) - '@solana/rpc-parsed-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-subscriptions': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - '@solana/signers': 5.5.1(typescript@5.9.3) - '@solana/sysvars': 5.5.1(typescript@5.9.3) - '@solana/transaction-confirmation': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - '@solana/transactions': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-server': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + dotenv: 9.0.2 + minimist: 1.2.6 + prompts: 2.4.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' - bufferutil - - fastestsmallesttextencoderdecoder + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js - utf-8-validate + - webpack-cli - '@solana/nominal-types@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 - - '@solana/offchain-messages@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@remotion/compositor-darwin-arm64@4.0.290': + optional: true - '@solana/options@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@remotion/compositor-darwin-x64@4.0.290': + optional: true - '@solana/plugin-core@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 + '@remotion/compositor-linux-arm64-gnu@4.0.290': + optional: true - '@solana/programs@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@remotion/compositor-linux-arm64-musl@4.0.290': + optional: true - '@solana/promises@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 + '@remotion/compositor-linux-x64-gnu@4.0.290': + optional: true - '@solana/rpc-api@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/rpc-parsed-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec': 5.5.1(typescript@5.9.3) - '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - '@solana/transactions': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@remotion/compositor-linux-x64-musl@4.0.290': + optional: true - '@solana/rpc-parsed-types@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 + '@remotion/compositor-win32-x64-msvc@4.0.290': + optional: true - '@solana/rpc-spec-types@5.5.1(typescript@5.9.3)': - optionalDependencies: - typescript: 5.9.3 + '@remotion/media-parser@4.0.290': {} - '@solana/rpc-spec@5.5.1(typescript@5.9.3)': + '@remotion/media-utils@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@solana/rpc-subscriptions-api@5.5.1(typescript@5.9.3)': + '@remotion/player@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) - '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - '@solana/transactions': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@solana/rpc-subscriptions-channel-websocket@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + '@remotion/renderer@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) - '@solana/subscribable': 5.5.1(typescript@5.9.3) - ws: 8.20.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@remotion/streaming': 4.0.290 + execa: 5.1.1 + extract-zip: 2.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + source-map: 0.8.0-beta.0 + ws: 8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: - typescript: 5.9.3 + '@remotion/compositor-darwin-arm64': 4.0.290 + '@remotion/compositor-darwin-x64': 4.0.290 + '@remotion/compositor-linux-arm64-gnu': 4.0.290 + '@remotion/compositor-linux-arm64-musl': 4.0.290 + '@remotion/compositor-linux-x64-gnu': 4.0.290 + '@remotion/compositor-linux-x64-musl': 4.0.290 + '@remotion/compositor-win32-x64-msvc': 4.0.290 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate - '@solana/rpc-subscriptions-spec@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/promises': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - '@solana/subscribable': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@remotion/streaming@4.0.290': {} - '@solana/rpc-subscriptions@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/fast-stable-stringify': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/promises': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-subscriptions-api': 5.5.1(typescript@5.9.3) - '@solana/rpc-subscriptions-channel-websocket': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) - '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - '@solana/subscribable': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@remotion/studio-server@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@babel/parser': 7.24.1 + '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + memfs: 3.4.3 + open: 8.4.2 + recast: 0.23.9 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + semver: 7.5.3 + source-map: 0.7.3 transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' - bufferutil - - fastestsmallesttextencoderdecoder + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - react + - react-dom + - supports-color + - uglify-js - utf-8-validate + - webpack-cli - '@solana/rpc-transformers@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/rpc-transport-http@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - undici-types: 7.24.6 - optionalDependencies: - typescript: 5.9.3 - - '@solana/rpc-types@5.5.1(typescript@5.9.3)': + '@remotion/studio-shared@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/rpc@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/fast-stable-stringify': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/rpc-api': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec': 5.5.1(typescript@5.9.3) - '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) - '@solana/rpc-transport-http': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/signers@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/instructions': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - '@solana/offchain-messages': 5.5.1(typescript@5.9.3) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - '@solana/transactions': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/subscribable@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/errors': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + - react + - react-dom - '@solana/sysvars@5.5.1(typescript@5.9.3)': + '@remotion/studio@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': dependencies: - '@solana/accounts': 5.5.1(typescript@5.9.3) - '@solana/codecs': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/transaction-confirmation@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/promises': 5.5.1(typescript@5.9.3) - '@solana/rpc': 5.5.1(typescript@5.9.3) - '@solana/rpc-subscriptions': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - '@solana/transactions': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@remotion/media-parser': 4.0.290 + '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/zod-types': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3) + memfs: 3.4.3 + open: 8.4.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + semver: 7.5.3 + source-map: 0.7.3 + zod: 3.22.3 transitivePeerDependencies: - bufferutil - - fastestsmallesttextencoderdecoder + - supports-color - utf-8-validate - '@solana/transaction-messages@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/instructions': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/transactions@5.5.1(typescript@5.9.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@5.9.3) - '@solana/codecs-core': 5.5.1(typescript@5.9.3) - '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) - '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) - '@solana/codecs-strings': 5.5.1(typescript@5.9.3) - '@solana/errors': 5.5.1(typescript@5.9.3) - '@solana/functional': 5.5.1(typescript@5.9.3) - '@solana/instructions': 5.5.1(typescript@5.9.3) - '@solana/keys': 5.5.1(typescript@5.9.3) - '@solana/nominal-types': 5.5.1(typescript@5.9.3) - '@solana/rpc-types': 5.5.1(typescript@5.9.3) - '@solana/transaction-messages': 5.5.1(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 + '@remotion/zod-types@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3)': + dependencies: + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + zod: 3.22.3 transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + - react + - react-dom - '@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6))': - dependencies: - '@solana/wallet-standard-features': 1.3.0 - '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@wallet-standard/base': 1.1.0 - '@wallet-standard/features': 1.1.0 - eventemitter3: 5.0.1 + '@scure/base@1.2.6': {} - '@solana/wallet-standard-chains@1.1.1': + '@scure/bip32@1.7.0': dependencies: - '@wallet-standard/base': 1.1.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 - '@solana/wallet-standard-features@1.3.0': + '@scure/bip39@1.6.0': dependencies: - '@wallet-standard/base': 1.1.0 - '@wallet-standard/features': 1.1.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 - '@solana/wallet-standard-util@1.1.2': + '@sigstore/bundle@4.0.0': dependencies: - '@noble/curves': 1.9.7 - '@solana/wallet-standard-chains': 1.1.1 - '@solana/wallet-standard-features': 1.3.0 + '@sigstore/protobuf-specs': 0.5.0 + + '@sigstore/core@3.1.0': {} - '@solana/wallet-standard-wallet-adapter-base@1.1.4(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@6.0.0)': + '@sigstore/protobuf-specs@0.5.0': {} + + '@sigstore/sign@4.1.0': dependencies: - '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)) - '@solana/wallet-standard-chains': 1.1.1 - '@solana/wallet-standard-features': 1.3.0 - '@solana/wallet-standard-util': 1.1.2 - '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@wallet-standard/app': 1.1.0 - '@wallet-standard/base': 1.1.0 - '@wallet-standard/features': 1.1.0 - '@wallet-standard/wallet': 1.1.0 - bs58: 6.0.0 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.1.0 + '@sigstore/protobuf-specs': 0.5.0 + make-fetch-happen: 15.0.4 + proc-log: 6.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color - '@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)': + '@sigstore/tuf@4.0.1': dependencies: - '@babel/runtime': 7.29.2 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@solana/buffer-layout': 4.0.1 - '@solana/codecs-numbers': 2.3.0(typescript@5.9.3) - agentkeepalive: 4.6.0 - bn.js: 5.2.3 - borsh: 0.7.0 - bs58: 4.0.1 - buffer: 6.0.3 - fast-stable-stringify: 1.0.0 - jayson: 4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - node-fetch: 2.7.0(encoding@0.1.13) - rpc-websockets: 9.3.7 - superstruct: 2.0.2 + '@sigstore/protobuf-specs': 0.5.0 + tuf-js: 4.1.0 transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate + - supports-color + + '@sigstore/verify@3.1.0': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.1.0 + '@sigstore/protobuf-specs': 0.5.0 + + '@simple-libs/stream-utils@1.2.0': {} - '@speed-highlight/core@1.2.14': {} + '@sinclair/typebox@0.34.48': {} '@spruceid/siwe-parser@2.1.2': dependencies: @@ -13039,168 +6312,6 @@ snapshots: '@stablelib/wipe@1.0.1': {} - '@swc/helpers@0.5.20': - dependencies: - tslib: 2.8.1 - - '@tailwindcss/cli@4.2.2': - dependencies: - '@parcel/watcher': 2.5.6 - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - enhanced-resolve: 5.20.0 - mri: 1.2.0 - picocolors: 1.1.1 - tailwindcss: 4.2.2 - - '@tailwindcss/node@4.2.1': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.0 - jiti: 2.6.1 - lightningcss: 1.31.1 - magic-string: 0.30.21 - source-map-js: 1.2.1 - tailwindcss: 4.2.1 - - '@tailwindcss/node@4.2.2': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.0 - jiti: 2.6.1 - lightningcss: 1.32.0 - magic-string: 0.30.21 - source-map-js: 1.2.1 - tailwindcss: 4.2.2 - - '@tailwindcss/oxide-android-arm64@4.2.1': - optional: true - - '@tailwindcss/oxide-android-arm64@4.2.2': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.2.1': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.2.2': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.2.1': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.2.2': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.2.1': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.2.1': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.2.1': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.2.1': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.2.1': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.2.1': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - optional: true - - '@tailwindcss/oxide@4.2.1': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.1 - '@tailwindcss/oxide-darwin-arm64': 4.2.1 - '@tailwindcss/oxide-darwin-x64': 4.2.1 - '@tailwindcss/oxide-freebsd-x64': 4.2.1 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.1 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.1 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.1 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.1 - '@tailwindcss/oxide-linux-x64-musl': 4.2.1 - '@tailwindcss/oxide-wasm32-wasi': 4.2.1 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.1 - - '@tailwindcss/oxide@4.2.2': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-x64': 4.2.2 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 - - '@tailwindcss/vite@4.2.1(vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1))': - dependencies: - '@tailwindcss/node': 4.2.1 - '@tailwindcss/oxide': 4.2.1 - tailwindcss: 4.2.1 - vite: 5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - - '@tanstack/query-core@5.95.2': {} - - '@tanstack/query-persist-client-core@5.95.2': - dependencies: - '@tanstack/query-core': 5.95.2 - - '@tanstack/react-query@5.95.2(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.95.2 - react: 18.3.1 - - '@tanstack/react-virtual@3.13.23(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@tanstack/virtual-core': 3.13.23 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@tanstack/virtual-core@3.13.23': {} - '@tsconfig/node-ts@23.6.4': {} '@tsconfig/node24@24.0.4': {} @@ -13221,39 +6332,10 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.29.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - - '@types/babel__traverse@7.28.0': - dependencies: - '@babel/types': 7.29.0 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 22.19.13 - '@types/conventional-commits-parser@5.0.2': dependencies: '@types/node': 22.19.13 - '@types/debug@4.1.13': - dependencies: - '@types/ms': 2.1.0 - '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -13270,16 +6352,10 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/lodash@4.17.24': {} - '@types/minimatch@3.0.5': {} '@types/minimist@1.2.5': {} - '@types/ms@2.1.0': {} - - '@types/node@12.20.55': {} - '@types/node@22.19.13': dependencies: undici-types: 6.21.0 @@ -13288,11 +6364,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@25.3.3': - dependencies: - undici-types: 7.18.2 - optional: true - '@types/normalize-package-data@2.4.4': {} '@types/prop-types@15.7.15': {} @@ -13306,18 +6377,6 @@ snapshots: '@types/prop-types': 15.7.15 csstype: 3.2.3 - '@types/trusted-types@2.0.7': {} - - '@types/uuid@10.0.0': {} - - '@types/ws@7.4.7': - dependencies: - '@types/node': 22.19.13 - - '@types/ws@8.18.1': - dependencies: - '@types/node': 22.19.13 - '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.35': @@ -13415,744 +6474,69 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.56.1': - dependencies: - '@typescript-eslint/types': 8.56.1 - eslint-visitor-keys: 5.0.1 - - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - optional: true - - '@unrs/resolver-binding-android-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true - - '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1))': - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.0-beta.27 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - transitivePeerDependencies: - - supports-color - - '@vitest/expect@3.1.4': - dependencies: - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 - chai: 5.3.3 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.1.4(vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1))': - dependencies: - '@vitest/spy': 3.1.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - - '@vitest/pretty-format@3.1.4': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/pretty-format@3.2.4': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.1.4': - dependencies: - '@vitest/utils': 3.1.4 - pathe: 2.0.3 - - '@vitest/snapshot@3.1.4': - dependencies: - '@vitest/pretty-format': 3.1.4 - magic-string: 0.30.21 - pathe: 2.0.3 - - '@vitest/spy@3.1.4': - dependencies: - tinyspy: 3.0.2 - - '@vitest/utils@3.1.4': - dependencies: - '@vitest/pretty-format': 3.1.4 - loupe: 3.2.1 - tinyrainbow: 2.0.0 - - '@wagmi/connectors@6.2.0(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76)': - dependencies: - '@base-org/account': 2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) - '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) - '@gemini-wallet/core': 0.3.2(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) - '@metamask/sdk': 0.33.1(bufferutil@4.1.0)(encoding@0.1.13)(utf-8-validate@6.0.6) - '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) - '@walletconnect/ethereum-provider': 2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - porto: 0.2.35(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@tanstack/react-query' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - debug - - encoding - - expo-auth-session - - expo-crypto - - expo-web-browser - - fastestsmallesttextencoderdecoder - - immer - - ioredis - - react - - react-native - - supports-color - - uploadthing - - use-sync-external-store - - utf-8-validate - - wagmi - - zod - - '@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': - dependencies: - eventemitter3: 5.0.1 - mipd: 0.0.7(typescript@5.9.3) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - zustand: 5.0.0(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - optionalDependencies: - '@tanstack/query-core': 5.95.2 - typescript: 5.9.3 - transitivePeerDependencies: - - '@types/react' - - immer - - react - - use-sync-external-store - - '@wallet-standard/app@1.1.0': - dependencies: - '@wallet-standard/base': 1.1.0 - - '@wallet-standard/base@1.1.0': {} - - '@wallet-standard/features@1.1.0': - dependencies: - '@wallet-standard/base': 1.1.0 - - '@wallet-standard/wallet@1.1.0': - dependencies: - '@wallet-standard/base': 1.1.0 - - '@walletconnect/core@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/window-getters': 1.0.1 - es-toolkit: 1.33.0 - events: 3.3.0 - uint8arrays: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/core@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/window-getters': 1.0.1 - es-toolkit: 1.33.0 - events: 3.3.0 - uint8arrays: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/environment@1.0.1': - dependencies: - tslib: 1.14.1 - - '@walletconnect/ethereum-provider@2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@reown/appkit': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/types': 2.21.1 - '@walletconnect/universal-provider': 2.21.1(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/events@1.0.1': + '@typescript-eslint/visitor-keys@8.56.1': dependencies: - keyvaluestorage-interface: 1.0.0 - tslib: 1.14.1 + '@typescript-eslint/types': 8.56.1 + eslint-visitor-keys: 5.0.1 - '@walletconnect/heartbeat@1.2.2': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/time': 1.0.2 - events: 3.3.0 + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true - '@walletconnect/jsonrpc-http-connection@1.0.8(encoding@0.1.13)': - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.2.0(encoding@0.1.13) - events: 3.3.0 - transitivePeerDependencies: - - encoding + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true - '@walletconnect/jsonrpc-provider@1.0.14': - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - events: 3.3.0 + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true - '@walletconnect/jsonrpc-types@1.0.4': - dependencies: - events: 3.3.0 - keyvaluestorage-interface: 1.0.0 + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true - '@walletconnect/jsonrpc-utils@1.0.8': - dependencies: - '@walletconnect/environment': 1.0.1 - '@walletconnect/jsonrpc-types': 1.0.4 - tslib: 1.14.1 + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true - '@walletconnect/jsonrpc-ws-connection@1.0.16(bufferutil@4.1.0)(utf-8-validate@6.0.6)': - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - events: 3.3.0 - ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true - '@walletconnect/keyvaluestorage@1.1.1': - dependencies: - '@walletconnect/safe-json': 1.0.2 - idb-keyval: 6.2.2 - unstorage: 1.17.5(idb-keyval@6.2.2) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - ioredis - - uploadthing - - '@walletconnect/logger@2.1.2': - dependencies: - '@walletconnect/safe-json': 1.0.2 - pino: 7.11.0 - - '@walletconnect/relay-api@1.0.11': - dependencies: - '@walletconnect/jsonrpc-types': 1.0.4 - - '@walletconnect/relay-auth@1.1.0': - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - uint8arrays: 3.1.0 + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true - '@walletconnect/safe-json@1.0.2': - dependencies: - tslib: 1.14.1 + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true - '@walletconnect/sign-client@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@walletconnect/core': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true - '@walletconnect/sign-client@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@walletconnect/core': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true - '@walletconnect/time@1.0.2': - dependencies: - tslib: 1.14.1 + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true - '@walletconnect/types@2.21.0': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - ioredis - - uploadthing - - '@walletconnect/types@2.21.1': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - ioredis - - uploadthing - - '@walletconnect/universal-provider@2.21.0(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - es-toolkit: 1.33.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true - '@walletconnect/universal-provider@2.21.1(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - es-toolkit: 1.33.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true - '@walletconnect/utils@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@noble/ciphers': 1.2.1 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - bs58: 6.0.0 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true - '@walletconnect/utils@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': - dependencies: - '@noble/ciphers': 1.2.1 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - bs58: 6.0.0 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true - '@walletconnect/window-getters@1.0.1': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: - tslib: 1.14.1 + '@napi-rs/wasm-runtime': 0.2.12 + optional: true - '@walletconnect/window-metadata@1.0.1': - dependencies: - '@walletconnect/window-getters': 1.0.1 - tslib: 1.14.1 + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true '@webassemblyjs/ast@1.14.1': dependencies: @@ -14282,8 +6666,6 @@ snapshots: js-yaml: 3.14.2 tslib: 2.8.1 - '@zeit/schemas@2.36.0': {} - '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 @@ -14297,21 +6679,6 @@ snapshots: abbrev@4.0.0: {} - abitype@1.0.6(typescript@5.9.3)(zod@3.25.76): - optionalDependencies: - typescript: 5.9.3 - zod: 3.25.76 - - abitype@1.0.8(typescript@5.9.3)(zod@3.25.76): - optionalDependencies: - typescript: 5.9.3 - zod: 3.25.76 - - abitype@1.2.3(typescript@5.9.3)(zod@3.22.4): - optionalDependencies: - typescript: 5.9.3 - zod: 3.22.4 - abitype@1.2.3(typescript@5.9.3)(zod@3.25.76): optionalDependencies: typescript: 5.9.3 @@ -14336,10 +6703,6 @@ snapshots: agent-base@7.1.4: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -14365,13 +6728,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 @@ -14379,10 +6735,6 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ansi-align@3.0.1: - dependencies: - string-width: 4.2.3 - ansi-colors@4.1.3: {} ansi-escapes@7.3.0: @@ -14401,29 +6753,16 @@ snapshots: ansi-styles@6.2.3: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - apg-js@4.4.0: {} aproba@2.0.0: {} - arch@2.2.0: {} - - arg@5.0.2: {} - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 argparse@2.0.1: {} - aria-hidden@1.2.6: - dependencies: - tslib: 2.8.1 - array-differ@3.0.0: {} array-ify@1.0.0: {} @@ -14434,39 +6773,16 @@ snapshots: arrify@2.0.1: {} - asn1js@3.0.7: - dependencies: - pvtsutils: 1.3.6 - pvutils: 1.1.5 - tslib: 2.8.1 - - assertion-error@2.0.1: {} - ast-types@0.16.1: dependencies: tslib: 2.8.1 - async-mutex@0.2.6: - dependencies: - tslib: 2.8.1 - async@3.2.6: {} asynckit@0.4.0: {} - atomic-sleep@1.0.0: {} - auto-bind@5.0.1: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axios-retry@4.5.0(axios@1.13.6): - dependencies: - axios: 1.13.6 - is-retry-allowed: 2.2.0 - axios@1.13.6: dependencies: follow-redirects: 1.15.11 @@ -14479,12 +6795,6 @@ snapshots: balanced-match@4.0.4: {} - base-x@3.0.11: - dependencies: - safe-buffer: 5.2.1 - - base-x@5.0.1: {} - base64-js@1.5.1: {} baseline-browser-mapping@2.10.0: {} @@ -14495,8 +6805,6 @@ snapshots: big.js@5.2.2: {} - big.js@6.2.2: {} - bin-links@5.0.0: dependencies: cmd-shim: 7.0.0 @@ -14511,33 +6819,10 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - blake3-wasm@2.1.5: {} - - blakejs@1.2.1: {} - bn.js@4.12.3: {} bn.js@5.2.3: {} - borsh@0.7.0: - dependencies: - bn.js: 5.2.3 - bs58: 4.0.1 - text-encoding-utf-8: 1.0.2 - - bowser@2.14.1: {} - - boxen@7.0.0: - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.0.1 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -14567,14 +6852,6 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) - bs58@4.0.1: - dependencies: - base-x: 3.0.11 - - bs58@6.0.0: - dependencies: - base-x: 5.0.1 - buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} @@ -14584,14 +6861,10 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - bufferutil@4.1.0: dependencies: node-gyp-build: 4.8.4 + optional: true bundle-name@4.1.0: dependencies: @@ -14599,14 +6872,6 @@ snapshots: byte-size@8.1.1: {} - bytes@3.0.0: {} - - bytes@3.1.2: {} - - bytestreamjs@2.0.1: {} - - cac@6.7.14: {} - cacache@20.0.3: dependencies: '@npmcli/fs': 5.0.0 @@ -14626,18 +6891,6 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - callsites@3.1.0: {} camelcase-keys@6.2.2: @@ -14648,24 +6901,8 @@ snapshots: camelcase@5.3.1: {} - camelcase@7.0.1: {} - caniuse-lite@1.0.30001775: {} - cbor2@1.12.0: {} - - chai@5.3.3: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.3 - deep-eql: 5.0.2 - loupe: 3.2.1 - pathval: 2.0.1 - - chalk-template@0.4.0: - dependencies: - chalk: 4.1.2 - chalk@4.1.0: dependencies: ansi-styles: 4.3.0 @@ -14676,20 +6913,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.0.1: {} - chalk@5.6.2: {} chardet@2.1.1: {} - charenc@0.0.2: {} - - check-error@2.1.3: {} - - chokidar@5.0.0: - dependencies: - readdirp: 5.0.0 - chownr@3.0.0: {} chrome-trace-event@1.0.4: {} @@ -14698,10 +6925,6 @@ snapshots: ci-info@4.4.0: {} - class-variance-authority@0.7.1: - dependencies: - clsx: 2.1.1 - clean-stack@2.2.0: {} cli-boxes@3.0.0: {} @@ -14734,18 +6957,6 @@ snapshots: cli-width@4.1.0: {} - clipboardy@3.0.0: - dependencies: - arch: 2.2.0 - execa: 5.1.1 - is-wsl: 2.2.0 - - cliui@6.0.0: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -14758,18 +6969,8 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - cliui@9.0.1: - dependencies: - string-width: 7.2.0 - strip-ansi: 7.2.0 - wrap-ansi: 9.0.2 - clone@1.0.4: {} - clsx@1.2.1: {} - - clsx@2.1.1: {} - cmd-shim@6.0.3: {} cmd-shim@7.0.0: {} @@ -14797,10 +6998,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - comlink@4.4.2: {} - - commander@14.0.2: {} - commander@14.0.3: {} commander@2.20.3: {} @@ -14814,22 +7011,6 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - compressible@2.0.18: - dependencies: - mime-db: 1.54.0 - - compression@1.8.1: - dependencies: - bytes: 3.1.2 - compressible: 2.0.18 - debug: 2.6.9 - negotiator: 0.6.4 - on-headers: 1.1.0 - safe-buffer: 5.2.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - concat-map@0.0.1: {} concat-stream@2.0.0: @@ -14850,8 +7031,6 @@ snapshots: console-control-strings@1.1.0: {} - content-disposition@0.5.2: {} - conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 @@ -14921,14 +7100,8 @@ snapshots: git-semver-tags: 5.0.1 meow: 8.1.2 - convert-source-map@2.0.0: {} - convert-to-spaces@2.0.1: {} - cookie-es@1.2.2: {} - - cookie@1.1.1: {} - core-util-is@1.0.3: {} cosmiconfig-typescript-loader@6.2.0(@types/node@22.19.13)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): @@ -14947,33 +7120,13 @@ snapshots: optionalDependencies: typescript: 5.9.3 - crc-32@1.2.2: {} - - cross-fetch@3.2.0(encoding@0.1.13): - dependencies: - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - cross-fetch@4.1.0(encoding@0.1.13): - dependencies: - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crossws@0.3.5: - dependencies: - uncrypto: 0.1.3 - - crypt@0.0.2: {} - - css-loader@5.2.7(webpack@5.96.1(postcss@8.5.6)): + css-loader@5.2.7(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) loader-utils: 2.0.4 @@ -14993,23 +7146,9 @@ snapshots: dargs@7.0.0: {} - dargs@8.1.0: {} - - date-fns@2.30.0: - dependencies: - '@babel/runtime': 7.29.2 - - dateformat@3.0.3: {} - - dayjs@1.11.13: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 + dargs@8.1.0: {} - debug@4.3.4: - dependencies: - ms: 2.1.2 + dateformat@3.0.3: {} debug@4.4.3: dependencies: @@ -15022,14 +7161,8 @@ snapshots: decamelize@1.2.0: {} - decode-uri-component@0.2.2: {} - dedent@1.5.3: {} - deep-eql@5.0.2: {} - - deep-extend@0.6.0: {} - deep-is@0.1.4: {} default-browser-id@5.0.1: {} @@ -15043,40 +7176,16 @@ snapshots: dependencies: clone: 1.0.4 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - define-lazy-prop@2.0.0: {} define-lazy-prop@3.0.0: {} - defu@6.1.4: {} - - delay@5.0.0: {} - delayed-stream@1.0.0: {} deprecation@2.3.1: {} - derive-valtio@0.1.0(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1)): - dependencies: - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - - destr@2.0.5: {} - - detect-browser@5.3.0: {} - detect-indent@5.0.0: {} - detect-libc@2.1.2: {} - - detect-node-es@1.1.0: {} - - dijkstrajs@1.0.3: {} - dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -15089,8 +7198,6 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.3.1: {} - dotenv@9.0.2: {} dunder-proto@1.0.1: @@ -15099,22 +7206,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - duplexify@4.1.3: - dependencies: - end-of-stream: 1.4.5 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.3 - - eastasianwidth@0.2.0: {} - - eciesjs@0.4.18: - dependencies: - '@ecies/ciphers': 0.2.5(@noble/ciphers@1.3.0) - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - ejs@3.1.10: dependencies: jake: 10.9.4 @@ -15135,12 +7226,8 @@ snapshots: emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - emojis-list@3.0.0: {} - encode-utf8@1.0.3: {} - encoding@0.1.13: dependencies: iconv-lite: 0.6.3 @@ -15150,20 +7237,6 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.6.4(bufferutil@4.1.0)(utf-8-validate@6.0.6): - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3 - engine.io-parser: 5.2.3 - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - xmlhttprequest-ssl: 2.1.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - engine.io-parser@5.2.3: {} - enhanced-resolve@5.20.0: dependencies: graceful-fs: 4.2.11 @@ -15185,8 +7258,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - error-stack-parser-es@1.0.5: {} - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -15206,38 +7277,6 @@ snapshots: es-toolkit@1.33.0: {} - es6-promise@4.2.8: {} - - es6-promisify@5.0.0: - dependencies: - es6-promise: 4.2.8 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.0: optionalDependencies: '@esbuild/aix-ppc64': 0.25.0 @@ -15458,46 +7497,8 @@ snapshots: estraverse@5.3.0: {} - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - esutils@2.0.3: {} - eth-block-tracker@7.1.0: - dependencies: - '@metamask/eth-json-rpc-provider': 1.0.1 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 5.0.2 - json-rpc-random-id: 1.0.1 - pify: 3.0.0 - transitivePeerDependencies: - - supports-color - - eth-json-rpc-filters@6.0.1: - dependencies: - '@metamask/safe-event-emitter': 3.1.2 - async-mutex: 0.2.6 - eth-query: 2.1.2 - json-rpc-engine: 6.1.0 - pify: 5.0.0 - - eth-query@2.1.2: - dependencies: - json-rpc-random-id: 1.0.1 - xtend: 4.0.2 - - eth-rpc-errors@4.0.3: - dependencies: - fast-safe-stringify: 2.1.1 - - ethereum-cryptography@2.2.1: - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.4.0 - '@scure/bip39': 1.3.0 - ethers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): dependencies: '@ethersproject/abi': 5.8.0 @@ -15547,8 +7548,6 @@ snapshots: - bufferutil - utf-8-validate - eventemitter2@6.4.9: {} - eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -15579,15 +7578,8 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - expect-type@1.3.0: {} - exponential-backoff@3.1.3: {} - extension-port-stream@3.0.0: - dependencies: - readable-stream: 3.6.2 - webextension-polyfill: 0.10.0 - extract-zip@2.0.1: dependencies: debug: 4.4.3 @@ -15598,20 +7590,12 @@ snapshots: transitivePeerDependencies: - supports-color - eyes@0.1.8: {} - fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fast-redact@3.5.0: {} - - fast-safe-stringify@2.1.1: {} - - fast-stable-stringify@1.0.0: {} - fast-uri@3.1.0: {} fd-slicer@1.1.0: @@ -15638,8 +7622,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - filter-obj@1.1.0: {} - find-up@2.1.0: dependencies: locate-path: 2.0.0 @@ -15665,10 +7647,6 @@ snapshots: follow-redirects@1.15.11: {} - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -15682,16 +7660,6 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - framer-motion@12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - motion-dom: 12.38.0 - motion-utils: 12.36.0 - tslib: 2.8.1 - optionalDependencies: - '@emotion/is-prop-valid': 1.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - front-matter@4.0.2: dependencies: js-yaml: 3.14.2 @@ -15715,12 +7683,6 @@ snapshots: function-bind@1.1.2: {} - fuse.js@7.1.0: {} - - generator-function@2.0.1: {} - - gensync@1.0.0-beta.2: {} - get-caller-file@2.0.5: {} get-east-asian-width@1.5.0: {} @@ -15738,8 +7700,6 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 - get-nonce@1.0.1: {} - get-pkg-repo@4.2.1: dependencies: '@hutson/parse-repository-url': 3.0.2 @@ -15832,18 +7792,6 @@ snapshots: graceful-fs@4.2.11: {} - h3@1.15.10: - dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.4 - radix3: 1.1.2 - ufo: 1.6.3 - uncrypto: 0.1.3 - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -15857,10 +7805,6 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -15884,8 +7828,6 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - hono@4.12.9: {} - hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -15918,10 +7860,6 @@ snapshots: human-signals@2.1.0: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - husky@9.1.7: {} iconv-lite@0.6.3: @@ -15937,14 +7875,6 @@ snapshots: dependencies: postcss: 8.5.6 - idb-keyval@6.2.1: {} - - idb-keyval@6.2.2: {} - - idb@7.1.1: {} - - idb@8.0.3: {} - ieee754@1.2.1: {} ignore-walk@8.0.0: @@ -16046,23 +7976,12 @@ snapshots: ip-address@10.1.0: {} - iron-webcrypto@1.2.1: {} - - is-arguments@1.2.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-arrayish@0.2.1: {} - is-buffer@1.1.6: {} - is-bun-module@2.0.0: dependencies: semver: 7.7.4 - is-callable@1.2.7: {} - is-ci@3.0.1: dependencies: ci-info: 3.9.0 @@ -16085,14 +8004,6 @@ snapshots: dependencies: get-east-asian-width: 1.5.0 - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -16113,17 +8024,6 @@ snapshots: is-plain-obj@4.1.0: {} - is-port-reachable@4.0.0: {} - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-retry-allowed@2.2.0: {} - is-ssh@1.4.1: dependencies: protocols: 2.0.2 @@ -16136,10 +8036,6 @@ snapshots: dependencies: text-extensions: 1.9.0 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - is-unicode-supported@0.1.0: {} is-wsl@2.2.0: @@ -16152,22 +8048,12 @@ snapshots: isarray@1.0.0: {} - isarray@2.0.5: {} - isexe@2.0.0: {} isexe@3.1.5: {} isexe@4.0.0: {} - isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)): - dependencies: - ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - isows@1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)): - dependencies: - ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - isows@1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)): dependencies: ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -16186,24 +8072,6 @@ snapshots: filelist: 1.0.6 picocolors: 1.1.1 - jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): - dependencies: - '@types/connect': 3.4.38 - '@types/node': 12.20.55 - '@types/ws': 7.4.7 - commander: 2.20.3 - delay: 5.0.0 - es6-promisify: 5.0.0 - eyes: 0.1.8 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - json-stringify-safe: 5.0.1 - stream-json: 1.9.1 - uuid: 8.3.2 - ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - jest-diff@30.2.0: dependencies: '@jest/diff-sequences': 30.0.1 @@ -16219,8 +8087,6 @@ snapshots: jiti@2.6.1: {} - jose@6.2.2: {} - js-base64@3.7.8: {} js-sha3@0.8.0: {} @@ -16236,14 +8102,8 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@3.1.0: {} - json-buffer@3.0.1: {} - json-canonicalize@1.2.0: {} - - json-canonicalize@2.0.0: {} - json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} @@ -16252,13 +8112,6 @@ snapshots: json-parse-even-better-errors@5.0.0: {} - json-rpc-engine@6.1.0: - dependencies: - '@metamask/safe-event-emitter': 2.0.0 - eth-rpc-errors: 4.0.3 - - json-rpc-random-id@1.0.1: {} - json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -16285,26 +8138,14 @@ snapshots: just-diff@6.0.2: {} - jwt-decode@4.0.0: {} - - keccak@3.0.4: - dependencies: - node-addon-api: 2.0.2 - node-gyp-build: 4.8.4 - readable-stream: 3.6.2 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 - keyvaluestorage-interface@1.0.0: {} - kind-of@6.0.3: {} kleur@3.0.3: {} - kleur@4.1.5: {} - lerna@9.0.5(@types/node@22.19.13): dependencies: '@lerna/create': 9.0.5(@types/node@22.19.13)(typescript@5.9.3) @@ -16417,104 +8258,6 @@ snapshots: transitivePeerDependencies: - supports-color - lightningcss-android-arm64@1.31.1: - optional: true - - lightningcss-android-arm64@1.32.0: - optional: true - - lightningcss-darwin-arm64@1.31.1: - optional: true - - lightningcss-darwin-arm64@1.32.0: - optional: true - - lightningcss-darwin-x64@1.31.1: - optional: true - - lightningcss-darwin-x64@1.32.0: - optional: true - - lightningcss-freebsd-x64@1.31.1: - optional: true - - lightningcss-freebsd-x64@1.32.0: - optional: true - - lightningcss-linux-arm-gnueabihf@1.31.1: - optional: true - - lightningcss-linux-arm-gnueabihf@1.32.0: - optional: true - - lightningcss-linux-arm64-gnu@1.31.1: - optional: true - - lightningcss-linux-arm64-gnu@1.32.0: - optional: true - - lightningcss-linux-arm64-musl@1.31.1: - optional: true - - lightningcss-linux-arm64-musl@1.32.0: - optional: true - - lightningcss-linux-x64-gnu@1.31.1: - optional: true - - lightningcss-linux-x64-gnu@1.32.0: - optional: true - - lightningcss-linux-x64-musl@1.31.1: - optional: true - - lightningcss-linux-x64-musl@1.32.0: - optional: true - - lightningcss-win32-arm64-msvc@1.31.1: - optional: true - - lightningcss-win32-arm64-msvc@1.32.0: - optional: true - - lightningcss-win32-x64-msvc@1.31.1: - optional: true - - lightningcss-win32-x64-msvc@1.32.0: - optional: true - - lightningcss@1.31.1: - dependencies: - detect-libc: 2.1.2 - optionalDependencies: - lightningcss-android-arm64: 1.31.1 - lightningcss-darwin-arm64: 1.31.1 - lightningcss-darwin-x64: 1.31.1 - lightningcss-freebsd-x64: 1.31.1 - lightningcss-linux-arm-gnueabihf: 1.31.1 - lightningcss-linux-arm64-gnu: 1.31.1 - lightningcss-linux-arm64-musl: 1.31.1 - lightningcss-linux-x64-gnu: 1.31.1 - lightningcss-linux-x64-musl: 1.31.1 - lightningcss-win32-arm64-msvc: 1.31.1 - lightningcss-win32-x64-msvc: 1.31.1 - - lightningcss@1.32.0: - dependencies: - detect-libc: 2.1.2 - optionalDependencies: - lightningcss-android-arm64: 1.32.0 - lightningcss-darwin-arm64: 1.32.0 - lightningcss-darwin-x64: 1.32.0 - lightningcss-freebsd-x64: 1.32.0 - lightningcss-linux-arm-gnueabihf: 1.32.0 - lightningcss-linux-arm64-gnu: 1.32.0 - lightningcss-linux-arm64-musl: 1.32.0 - lightningcss-linux-x64-gnu: 1.32.0 - lightningcss-linux-x64-musl: 1.32.0 - lightningcss-win32-arm64-msvc: 1.32.0 - lightningcss-win32-x64-msvc: 1.32.0 - lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -16537,22 +8280,6 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 - lit-element@4.2.2: - dependencies: - '@lit-labs/ssr-dom-shim': 1.5.1 - '@lit/reactive-element': 2.1.2 - lit-html: 3.3.2 - - lit-html@3.3.2: - dependencies: - '@types/trusted-types': 2.0.7 - - lit@3.3.0: - dependencies: - '@lit/reactive-element': 2.1.2 - lit-element: 4.2.2 - lit-html: 3.3.2 - load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 @@ -16604,8 +8331,6 @@ snapshots: lodash.upperfirst@4.3.1: {} - lodash@4.17.23: {} - log-symbols@4.1.0: dependencies: chalk: 4.1.2 @@ -16623,32 +8348,14 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.2.1: {} - lru-cache@10.4.3: {} lru-cache@11.2.7: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - lru-cache@6.0.0: dependencies: yallist: 4.0.0 - lucide-react@0.563.0(react@18.3.1): - dependencies: - react: 18.3.1 - - lucide-react@0.564.0(react@18.3.1): - dependencies: - react: 18.3.1 - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -16696,12 +8403,6 @@ snapshots: math-intrinsics@1.1.0: {} - md5@2.3.0: - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - is-buffer: 1.1.6 - memfs@3.4.3: dependencies: fs-monkey: 1.0.3 @@ -16726,23 +8427,13 @@ snapshots: merge-stream@2.0.0: {} - micro-ftch@0.3.1: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.33.0: {} - mime-db@1.52.0: {} - mime-db@1.54.0: {} - - mime-types@2.1.18: - dependencies: - mime-db: 1.33.0 - mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -16753,18 +8444,6 @@ snapshots: min-indent@1.0.1: {} - miniflare@4.20260305.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - sharp: 0.34.5 - undici: 7.18.2 - workerd: 1.20260305.0 - ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - youch: 4.1.0-beta.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - minimalistic-assert@1.0.1: {} minimalistic-crypto-utils@1.0.1: {} @@ -16777,10 +8456,6 @@ snapshots: dependencies: brace-expansion: 5.0.4 - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - minimatch@3.1.4: dependencies: brace-expansion: 1.1.12 @@ -16840,46 +8515,19 @@ snapshots: minipass: 7.1.3 minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@7.1.3: {} - - minizlib@3.1.0: - dependencies: - minipass: 7.1.3 - - mipd@0.0.7(typescript@5.9.3): - optionalDependencies: - typescript: 5.9.3 - - modify-values@1.0.1: {} - - motion-dom@12.38.0: - dependencies: - motion-utils: 12.36.0 - - motion-utils@12.36.0: {} - - motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - framer-motion: 12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@emotion/is-prop-valid': 1.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + dependencies: + yallist: 4.0.0 - mri@1.2.0: {} + minipass@7.1.3: {} - ms@2.0.0: {} + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 - ms@2.1.2: {} + modify-values@1.0.1: {} ms@2.1.3: {} - multiformats@9.9.0: {} - multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -16898,25 +8546,12 @@ snapshots: natural-orderby@5.0.0: {} - negotiator@0.6.4: {} - negotiator@1.0.0: {} neo-async@2.6.2: {} - node-addon-api@2.0.2: {} - - node-addon-api@7.1.1: {} - - node-fetch-native@1.6.7: {} - - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - - node-gyp-build@4.8.4: {} + node-gyp-build@4.8.4: + optional: true node-gyp@12.2.0: dependencies: @@ -16935,8 +8570,6 @@ snapshots: node-machine-id@1.1.12: {} - node-mock-http@1.0.4: {} - node-releases@2.0.27: {} nopt@8.1.0: @@ -16961,8 +8594,6 @@ snapshots: semver: 7.7.4 validate-npm-package-license: 3.0.4 - normalize-path@3.0.0: {} - npm-bundled@4.0.0: dependencies: npm-normalize-package-bin: 4.0.0 @@ -17085,22 +8716,6 @@ snapshots: transitivePeerDependencies: - debug - obj-multiplex@1.0.0: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - readable-stream: 2.3.8 - - ofetch@1.5.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.3 - - on-exit-leak-free@0.2.0: {} - - on-headers@1.1.0: {} - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -17126,12 +8741,6 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openapi-fetch@0.13.8: - dependencies: - openapi-typescript-helpers: 0.0.15 - - openapi-typescript-helpers@0.0.15: {} - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -17152,21 +8761,6 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ox@0.11.3(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - ox@0.12.4(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 @@ -17197,51 +8791,6 @@ snapshots: transitivePeerDependencies: - zod - ox@0.13.1(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - - ox@0.14.29(typescript@5.9.3)(zod@3.22.4): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - - ox@0.14.29(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - ox@0.14.29(typescript@5.9.3)(zod@4.3.6): dependencies: '@adraffy/ens-normalize': 1.11.1 @@ -17257,64 +8806,6 @@ snapshots: transitivePeerDependencies: - zod - ox@0.6.7(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - - ox@0.6.9(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - - ox@0.9.17(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - - ox@0.9.17(typescript@5.9.3)(zod@4.3.6): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - p-finally@1.0.0: {} p-limit@1.3.0: @@ -17452,8 +8943,6 @@ snapshots: path-exists@4.0.0: {} - path-is-inside@1.0.2: {} - path-key@3.1.1: {} path-parse@1.0.7: {} @@ -17463,18 +8952,10 @@ snapshots: lru-cache: 11.2.7 minipass: 7.1.3 - path-to-regexp@3.3.0: {} - - path-to-regexp@6.3.0: {} - path-type@3.0.0: dependencies: pify: 3.0.0 - pathe@2.0.3: {} - - pathval@2.0.1: {} - pend@1.2.0: {} picocolors@1.1.1: {} @@ -17491,66 +8972,10 @@ snapshots: pify@5.0.0: {} - pino-abstract-transport@0.5.0: - dependencies: - duplexify: 4.1.3 - split2: 4.2.0 - - pino-std-serializers@4.0.0: {} - - pino@7.11.0: - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 0.2.0 - pino-abstract-transport: 0.5.0 - pino-std-serializers: 4.0.0 - process-warning: 1.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.1.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 2.8.0 - thread-stream: 0.15.2 - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - pkijs@3.3.3: - dependencies: - '@noble/hashes': 1.8.0 - asn1js: 3.0.7 - bytestreamjs: 2.0.1 - pvtsutils: 1.3.6 - pvutils: 1.1.5 - tslib: 2.8.1 - - pngjs@5.0.0: {} - - pony-cause@2.1.11: {} - - porto@0.2.35(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)): - dependencies: - '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) - hono: 4.12.9 - idb-keyval: 6.2.2 - mipd: 0.0.7(typescript@5.9.3) - ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - zod: 4.3.6 - zustand: 5.0.12(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - optionalDependencies: - '@tanstack/react-query': 5.95.2(react@18.3.1) - react: 18.3.1 - typescript: 5.9.3 - wagmi: 2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) - transitivePeerDependencies: - - '@types/react' - - immer - - use-sync-external-store - - possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -17585,10 +9010,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - preact@10.24.2: {} - - preact@10.29.0: {} - prelude-ls@1.2.1: {} prettier@3.8.1: {} @@ -17605,8 +9026,6 @@ snapshots: process-nextick-args@2.0.1: {} - process-warning@1.0.0: {} - proggy@3.0.0: {} promise-all-reject-late@1.0.1: {} @@ -17629,8 +9048,6 @@ snapshots: protocols@2.0.2: {} - proxy-compare@2.6.0: {} - proxy-from-env@1.1.0: {} pump@3.0.4: @@ -17640,62 +9057,14 @@ snapshots: punycode@2.3.1: {} - pvtsutils@1.3.6: - dependencies: - tslib: 2.8.1 - - pvutils@1.1.5: {} - - qrcode@1.5.3: - dependencies: - dijkstrajs: 1.0.3 - encode-utf8: 1.0.3 - pngjs: 5.0.0 - yargs: 15.4.1 - - qrcode@1.5.4: - dependencies: - dijkstrajs: 1.0.3 - pngjs: 5.0.0 - yargs: 15.4.1 - - query-string@7.1.3: - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - - quick-format-unescaped@4.0.4: {} - quick-lru@4.0.1: {} - radix3@1.1.2: {} - - range-parser@1.2.0: {} - - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - react-apple-signin-auth@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 - react-hook-form@7.72.0(react@18.3.1): - dependencies: - react: 18.3.1 - react-is@18.3.1: {} react-reconciler@0.29.2(react@18.3.1): @@ -17704,37 +9073,8 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-refresh@0.17.0: {} - react-refresh@0.9.0: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.28)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.28 - - react-remove-scroll@2.7.2(@types/react@18.3.28)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.28)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.28)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.28)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - - react-style-singleton@2.2.3(@types/react@18.3.28)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.28 - react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -17787,10 +9127,6 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - readdirp@5.0.0: {} - - real-require@0.1.0: {} - recast@0.23.9: dependencies: ast-types: 0.16.1 @@ -17804,15 +9140,6 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - registry-auth-token@3.3.2: - dependencies: - rc: 1.2.8 - safe-buffer: 5.2.1 - - registry-url@3.1.0: - dependencies: - rc: 1.2.8 - remotion@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -17822,8 +9149,6 @@ snapshots: require-from-string@2.0.2: {} - require-main-filename@2.0.0: {} - resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -17868,50 +9193,6 @@ snapshots: glob: 13.0.6 package-json-from-dist: 1.0.1 - rollup@4.59.0: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.59.0 - '@rollup/rollup-android-arm64': 4.59.0 - '@rollup/rollup-darwin-arm64': 4.59.0 - '@rollup/rollup-darwin-x64': 4.59.0 - '@rollup/rollup-freebsd-arm64': 4.59.0 - '@rollup/rollup-freebsd-x64': 4.59.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 - '@rollup/rollup-linux-arm-musleabihf': 4.59.0 - '@rollup/rollup-linux-arm64-gnu': 4.59.0 - '@rollup/rollup-linux-arm64-musl': 4.59.0 - '@rollup/rollup-linux-loong64-gnu': 4.59.0 - '@rollup/rollup-linux-loong64-musl': 4.59.0 - '@rollup/rollup-linux-ppc64-gnu': 4.59.0 - '@rollup/rollup-linux-ppc64-musl': 4.59.0 - '@rollup/rollup-linux-riscv64-gnu': 4.59.0 - '@rollup/rollup-linux-riscv64-musl': 4.59.0 - '@rollup/rollup-linux-s390x-gnu': 4.59.0 - '@rollup/rollup-linux-x64-gnu': 4.59.0 - '@rollup/rollup-linux-x64-musl': 4.59.0 - '@rollup/rollup-openbsd-x64': 4.59.0 - '@rollup/rollup-openharmony-arm64': 4.59.0 - '@rollup/rollup-win32-arm64-msvc': 4.59.0 - '@rollup/rollup-win32-ia32-msvc': 4.59.0 - '@rollup/rollup-win32-x64-gnu': 4.59.0 - '@rollup/rollup-win32-x64-msvc': 4.59.0 - fsevents: 2.3.3 - - rpc-websockets@9.3.7: - dependencies: - '@swc/helpers': 0.5.20 - '@types/uuid': 10.0.0 - '@types/ws': 8.18.1 - buffer: 6.0.3 - eventemitter3: 5.0.1 - uuid: 11.1.0 - ws: 8.20.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - bufferutil: 4.1.0 - utf-8-validate: 6.0.6 - run-applescript@7.1.0: {} run-async@4.0.6: {} @@ -17924,14 +9205,6 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safe-stable-stringify@2.5.0: {} - safer-buffer@2.1.2: {} scheduler@0.23.2: @@ -17955,89 +9228,15 @@ snapshots: semver@5.7.2: {} - semver@6.3.1: {} - semver@7.5.3: dependencies: lru-cache: 6.0.0 semver@7.7.2: {} - semver@7.7.4: {} - - serve-handler@6.1.6: - dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 3.3.0 - range-parser: 1.2.0 - - serve@14.2.5: - dependencies: - '@zeit/schemas': 2.36.0 - ajv: 8.12.0 - arg: 5.0.2 - boxen: 7.0.0 - chalk: 5.0.1 - chalk-template: 0.4.0 - clipboardy: 3.0.0 - compression: 1.8.1 - is-port-reachable: 4.0.0 - serve-handler: 6.1.6 - update-check: 1.5.4 - transitivePeerDependencies: - - supports-color - - set-blocking@2.0.0: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - - sharp@0.34.5: - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.7.4 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + semver@7.7.4: {} + + set-blocking@2.0.0: {} shebang-command@2.0.0: dependencies: @@ -18047,8 +9246,6 @@ snapshots: shell-quote@1.8.3: {} - siginfo@2.0.0: {} - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -18093,24 +9290,6 @@ snapshots: smart-buffer@4.2.0: {} - socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6): - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3 - engine.io-client: 6.6.4(bufferutil@4.1.0)(utf-8-validate@6.0.6) - socket.io-parser: 4.2.6 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - socket.io-parser@4.2.6: - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 @@ -18124,10 +9303,6 @@ snapshots: ip-address: 10.1.0 smart-buffer: 4.2.0 - sonic-boom@2.8.0: - dependencies: - atomic-sleep: 1.0.0 - sort-keys@2.0.0: dependencies: is-plain-obj: 1.1.0 @@ -18161,8 +9336,6 @@ snapshots: spdx-license-ids@3.0.23: {} - split-on-first@1.1.0: {} - split2@3.2.2: dependencies: readable-stream: 3.6.2 @@ -18189,20 +9362,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - stackback@0.0.2: {} - - std-env@3.10.0: {} - - stream-chain@2.2.5: {} - - stream-json@1.9.1: - dependencies: - stream-chain: 2.2.5 - - stream-shift@1.0.3: {} - - strict-uri-encode@2.0.0: {} - string-argv@0.3.2: {} string-width@4.2.3: @@ -18211,12 +9370,6 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.2.0 - string-width@7.2.0: dependencies: emoji-regex: 10.6.0 @@ -18254,18 +9407,10 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-json-comments@2.0.1: {} - - style-loader@4.0.0(webpack@5.96.1(postcss@8.5.6)): + style-loader@4.0.0(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)): dependencies: webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) - superstruct@1.0.4: {} - - superstruct@2.0.2: {} - - supports-color@10.2.2: {} - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -18276,12 +9421,6 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tailwind-merge@3.5.0: {} - - tailwindcss@4.2.1: {} - - tailwindcss@4.2.2: {} - tapable@2.3.0: {} tar-stream@2.2.0: @@ -18320,14 +9459,8 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-encoding-utf-8@1.0.2: {} - text-extensions@1.9.0: {} - thread-stream@0.15.2: - dependencies: - real-require: 0.1.0 - through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -18337,10 +9470,6 @@ snapshots: tiny-invariant@1.3.3: {} - tinybench@2.9.0: {} - - tinyexec@0.3.2: {} - tinyexec@1.0.2: {} tinyglobby@0.2.12: @@ -18353,26 +9482,12 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - tinypool@1.1.1: {} - - tinyrainbow@2.0.0: {} - - tinyspy@3.0.2: {} - tmp@0.2.5: {} - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - tr46@0.0.3: {} - tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -18393,8 +9508,6 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - tslib@2.7.0: {} tslib@2.8.1: {} @@ -18414,11 +9527,6 @@ snapshots: transitivePeerDependencies: - supports-color - tweetnacl-sealedbox-js@1.2.0: - dependencies: - blakejs: 1.2.1 - tweetnacl: 1.0.3 - tweetnacl@1.0.3: {} type-check@0.4.0: @@ -18433,16 +9541,8 @@ snapshots: type-fest@0.8.1: {} - type-fest@2.19.0: {} - type-fest@4.41.0: {} - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - typedarray@0.0.6: {} typescript-eslint@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3): @@ -18458,34 +9558,13 @@ snapshots: typescript@5.9.3: {} - ufo@1.6.3: {} - uglify-js@3.19.3: optional: true - uint8arrays@3.1.0: - dependencies: - multiformats: 9.9.0 - - uncrypto@0.1.3: {} - undici-types@6.19.8: {} undici-types@6.21.0: {} - undici-types@7.18.2: - optional: true - - undici-types@7.24.6: {} - - undici@7.18.2: {} - - undici@7.22.0: {} - - unenv@2.0.0-rc.24: - dependencies: - pathe: 2.0.3 - unique-filename@5.0.0: dependencies: unique-slug: 6.0.0 @@ -18522,19 +9601,6 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.5(idb-keyval@6.2.2): - dependencies: - anymatch: 3.1.3 - chokidar: 5.0.0 - destr: 2.0.5 - h3: 1.15.10 - lru-cache: 11.2.7 - node-fetch-native: 1.6.7 - ofetch: 1.5.1 - ufo: 1.6.3 - optionalDependencies: - idb-keyval: 6.2.2 - upath@2.0.1: {} update-browserslist-db@1.2.3(browserslist@4.28.1): @@ -18543,42 +9609,10 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-check@1.5.4: - dependencies: - registry-auth-token: 3.3.2 - registry-url: 3.1.0 - uri-js@4.4.1: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@18.3.28)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.28 - - use-sidecar@1.1.3(@types/react@18.3.28)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.28 - - use-sync-external-store@1.2.0(react@18.3.1): - dependencies: - react: 18.3.1 - - use-sync-external-store@1.4.0(react@18.3.1): - dependencies: - react: 18.3.1 - - utf-8-validate@5.0.10: - dependencies: - node-gyp-build: 4.8.4 - utf-8-validate@6.0.6: dependencies: node-gyp-build: 4.8.4 @@ -18586,24 +9620,8 @@ snapshots: util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.2 - is-typed-array: 1.1.15 - which-typed-array: 1.1.20 - - uuid@10.0.0: {} - uuid@11.1.0: {} - uuid@13.0.0: {} - - uuid@8.3.2: {} - - uuid@9.0.1: {} - valid-url@1.0.9: {} validate-npm-package-license@3.0.4: @@ -18613,34 +9631,6 @@ snapshots: validate-npm-package-name@6.0.2: {} - valtio@1.13.2(@types/react@18.3.28)(react@18.3.1): - dependencies: - derive-valtio: 0.1.0(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1)) - proxy-compare: 2.6.0 - use-sync-external-store: 1.2.0(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - react: 18.3.1 - - vary@1.1.2: {} - - viem@2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.6.2 - '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@5.9.3)(zod@3.25.76) - isows: 1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.6.7(typescript@5.9.3)(zod@3.25.76) - ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): dependencies: '@noble/curves': 1.9.7 @@ -18675,40 +9665,6 @@ snapshots: - utf-8-validate - zod - viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4): - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) - isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.14.29(typescript@5.9.3)(zod@3.22.4) - ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.14.29(typescript@5.9.3)(zod@3.25.76) - ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6): dependencies: '@noble/curves': 1.9.7 @@ -18726,117 +9682,6 @@ snapshots: - utf-8-validate - zod - vite-node@3.1.4(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1): - dependencies: - esbuild: 0.21.5 - postcss: 8.5.6 - rollup: 4.59.0 - optionalDependencies: - '@types/node': 25.3.3 - fsevents: 2.3.3 - lightningcss: 1.32.0 - terser: 5.46.1 - - vitest@3.1.4(@types/debug@4.1.13)(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1): - dependencies: - '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.1.4 - '@vitest/snapshot': 3.1.4 - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 - chai: 5.3.3 - debug: 4.4.3 - expect-type: 1.3.0 - magic-string: 0.30.21 - pathe: 2.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 5.4.21(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - vite-node: 3.1.4(@types/node@25.3.3)(lightningcss@1.32.0)(terser@5.46.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.13 - '@types/node': 25.3.3 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76): - dependencies: - '@tanstack/react-query': 5.95.2(react@18.3.1) - '@wagmi/connectors': 6.2.0(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.95.2)(@tanstack/react-query@5.95.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.95.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) - viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@tanstack/query-core' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - debug - - encoding - - expo-auth-session - - expo-crypto - - expo-web-browser - - fastestsmallesttextencoderdecoder - - immer - - ioredis - - react-native - - supports-color - - uploadthing - - utf-8-validate - - zod - walk-up-path@4.0.0: {} watchpack@2.5.1: @@ -18848,10 +9693,6 @@ snapshots: dependencies: defaults: 1.0.4 - webextension-polyfill@0.10.0: {} - - webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} webpack-sources@3.5.0: {} @@ -18895,29 +9736,12 @@ snapshots: - postcss - uglify-js - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 - which-module@2.0.1: {} - - which-typed-array@1.1.20: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -18930,19 +9754,10 @@ snapshots: dependencies: isexe: 4.0.0 - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - wide-align@1.1.5: dependencies: string-width: 4.2.3 - widest-line@4.0.1: - dependencies: - string-width: 5.1.2 - widest-line@5.0.0: dependencies: string-width: 7.2.0 @@ -18951,31 +9766,6 @@ snapshots: wordwrap@1.0.0: {} - workerd@1.20260305.0: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260305.0 - '@cloudflare/workerd-darwin-arm64': 1.20260305.0 - '@cloudflare/workerd-linux-64': 1.20260305.0 - '@cloudflare/workerd-linux-arm64': 1.20260305.0 - '@cloudflare/workerd-windows-64': 1.20260305.0 - - wrangler@4.69.0(@cloudflare/workers-types@4.20260317.1)(bufferutil@4.1.0)(utf-8-validate@6.0.6): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.14.0(unenv@2.0.0-rc.24)(workerd@1.20260305.0) - blake3-wasm: 2.1.5 - esbuild: 0.27.3 - miniflare: 4.20260305.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.24 - workerd: 1.20260305.0 - optionalDependencies: - '@cloudflare/workers-types': 4.20260317.1 - fsevents: 2.3.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -18988,12 +9778,6 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.2.0 - wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 @@ -19033,11 +9817,6 @@ snapshots: type-fest: 0.4.1 write-json-file: 3.2.0 - ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6): - optionalDependencies: - bufferutil: 4.1.0 - utf-8-validate: 6.0.6 - ws@8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6): optionalDependencies: bufferutil: 4.1.0 @@ -19067,47 +9846,20 @@ snapshots: dependencies: is-wsl: 3.1.1 - xmlhttprequest-ssl@2.1.2: {} - xtend@4.0.2: {} - y18n@4.0.3: {} - y18n@5.0.8: {} - yallist@3.1.1: {} - yallist@4.0.0: {} yallist@5.0.0: {} yaml@2.8.2: {} - yargs-parser@18.1.3: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} - yargs-parser@22.0.0: {} - - yargs@15.4.1: - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - yargs@16.2.0: dependencies: cliui: 7.0.4 @@ -19128,15 +9880,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yargs@18.0.0: - dependencies: - cliui: 9.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - string-width: 7.2.0 - y18n: 5.0.8 - yargs-parser: 22.0.0 - yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 @@ -19148,41 +9891,9 @@ snapshots: yoga-layout@3.2.1: {} - youch-core@0.3.3: - dependencies: - '@poppinss/exception': 1.2.3 - error-stack-parser-es: 1.0.5 - - youch@4.1.0-beta.10: - dependencies: - '@poppinss/colors': 4.1.6 - '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.14 - cookie: 1.1.1 - youch-core: 0.3.3 - zod@3.22.3: {} - zod@3.22.4: {} - zod@3.25.76: {} - zod@4.3.6: {} - - zustand@5.0.0(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): - optionalDependencies: - '@types/react': 18.3.28 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) - - zustand@5.0.12(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): - optionalDependencies: - '@types/react': 18.3.28 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) - - zustand@5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): - optionalDependencies: - '@types/react': 18.3.28 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + zod@4.3.6: + optional: true diff --git a/tsconfig.json b/tsconfig.json index 69e0152..eb081c3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,9 +2,5 @@ "extends": ["@tsconfig/node24", "@tsconfig/node-ts"], "compilerOptions": { "noEmit": true, "resolveJsonModule": true }, "files": [], - "references": [ - { "path": "packages/polygon-agent-cli" }, - { "path": "packages/connector-ui" }, - { "path": "packages/shared" } - ] + "references": [{ "path": "packages/polygon-agent-cli" }] } From d10c1ce2652a12d972ca962c1f6b2f16fdf0caf7 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 10 Jun 2026 18:02:22 +0530 Subject: [PATCH 03/79] docs(cli): update skills + README for OMS V3 email-login wallet Remove all references to the removed wallet create / browser approval / --contract scoping / connector-ui flow across SKILL.md files and README. Document wallet login (email OTP), setup --oms-* credentials, the call command, and the no-permission-scoping V3 model. --- packages/polygon-agent-cli/README.md | 95 ++++++------- .../skills/polygon-defi/SKILL.md | 96 ++++--------- skills/SKILL.md | 134 +++++++----------- skills/polygon-defi/SKILL.md | 97 +++---------- skills/polygon-discovery/SKILL.md | 8 +- skills/polygon-polymarket/SKILL.md | 4 +- 6 files changed, 152 insertions(+), 282 deletions(-) diff --git a/packages/polygon-agent-cli/README.md b/packages/polygon-agent-cli/README.md index 283a297..8855276 100644 --- a/packages/polygon-agent-cli/README.md +++ b/packages/polygon-agent-cli/README.md @@ -32,7 +32,7 @@ Polygon Agent CLI gives AI agents everything they need to operate onchain: -- **Create and manage wallets** define allowances, session limits, and contract permissions in order to transact securely. Mitigates risk of prompt injection attacks. Private keys never leave the device and have to be exposed to your agent's context. +- **Create and manage wallets** email-login embedded smart wallets — no private keys to manage and no keys exposed to your agent's context. - **Send tokens, swap, bridge or any action** pay in any token for any onchain action. Built-in swapping, bridging, deposits, DeFi primitives, and more. - **Register agent identity** and build reputation via ERC-8004 - **Integrated APIs** query cross-chain balances, transaction history and or query nodes via dedicated RPCs @@ -74,25 +74,23 @@ pnpm polygon-agent --help Once installed via skills or npm, run the following. If running from source, prefix `polygon-agent` commands with `pnpm` and run them from the root of the repository (e.g., `pnpm polygon-agent setup --name "MyAgent"`). ```bash -# 1. Setup: creates EOA, authenticates, gets project access key -polygon-agent setup --name "MyAgent" +# 1. Setup: save your Sequence Builder credentials (persisted to ~/.polygon-agent/builder.json) +polygon-agent setup --oms-publishable-key --oms-project-id -# 2. Set your access key -export SEQUENCE_PROJECT_ACCESS_KEY= +# 2. Log in to your embedded wallet via email OTP (start + complete in one invocation) +polygon-agent wallet login --email you@example.com +# A one-time code is emailed to you; enter it at the prompt, +# or pipe it in: echo 123456 | polygon-agent wallet login --email you@example.com -# 3. Create a wallet (opens browser, auto-waits for approval) -polygon-agent wallet create - -# 4. Fund the wallet +# 3. Fund the wallet polygon-agent fund -# 5. Start operating (SEQUENCE_INDEXER_ACCESS_KEY is the same as your project access key) -export SEQUENCE_INDEXER_ACCESS_KEY=$SEQUENCE_PROJECT_ACCESS_KEY +# 4. Start operating polygon-agent balances polygon-agent send --to 0x... --amount 1.0 polygon-agent swap --from USDC --to USDT --amount 5 -# 6. Register your agent on-chain +# 5. Register your agent on-chain polygon-agent agent register --name "MyAgent" ``` @@ -110,11 +108,11 @@ The CLI is built on three pillars to enable end to end onchain payments with you | Capability | What it does | CLI command | | ----------- | ------------------------------------------------------------------------------------------- | ------------------------------- | -| **Wallets** | Session-based smart contract wallets (Account Abstraction) with scoped spending permissions | `wallet create`, `wallet list` | +| **Wallets** | Email-login embedded smart wallets (Account Abstraction), chain-agnostic address | `wallet login`, `wallet list` | | **RPCs** | Load balanced RPCs cross-chain for onchain interactions and node queries | Used internally by all commands | | **Indexer** | Token balance queries and transaction history across ERC-20/721/1155 | `balances` | -Wallet sessions are created through a secure handshake between the CLI, the Connector UI, and the Sequence Ecosystem Wallet. Session permissions let you cap spending per token, whitelist contracts, and set time-based expiry and to mitigate against prompt injection attacks. +Wallets are created and unlocked via email OTP. The embedded wallet can call any contract and spend any amount it holds — there is no contract whitelist or per-token spend limit. The wallet address is the same across every supported chain, and sessions last about a week before you re-run `wallet login`. ### Trails: Swapping, Bridging, and DeFi Actions @@ -134,7 +132,7 @@ Native contracts for agent identity, reputation, and emerging payment standards. | --------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------ | | **ERC-8004** | Register agents as ERC-721 NFTs with metadata and on-chain reputation | `agent register`, `agent reputation`, `agent feedback` | | **x402** | HTTP-native micropayment protocol for agentic payments to your favorite services | `x402-pay` | -| **Native Apps** | Direct interaction with smart contracts | Via `--contract` whitelisting | +| **Native Apps** | Direct interaction with any smart contract | `call` | **ERC-8004 contracts on Polygon:** @@ -162,11 +160,12 @@ See [`SKILL.md`](skills/SKILL.md) for the full agent-consumable reference and [` ### Setup & Wallets ```bash -polygon-agent setup --name # Create EOA + project -polygon-agent wallet create # Create wallet (auto-wait) -polygon-agent wallet create --no-wait # Manual approval flow +polygon-agent setup --oms-publishable-key --oms-project-id # Save Builder credentials +polygon-agent wallet login --email [--name ] [--code ] # Log in via email OTP +polygon-agent wallet logout [--name ] # Log out of a wallet polygon-agent wallet list # Show all wallets -polygon-agent wallet address # Show wallet address +polygon-agent wallet address [--name ] # Show wallet address (same on every chain) +polygon-agent wallet remove [--name ] # Remove a stored wallet polygon-agent fund # Open funding widget ``` @@ -181,11 +180,14 @@ polygon-agent send --symbol USDC --to 0x... --amount 10 --broadcast polygon-agent swap --from USDC --to USDT --amount 5 --broadcast polygon-agent withdraw --position --amount max [--chain ] # dry-run; add --broadcast polygon-agent withdraw --position --amount 0.5 --chain mainnet --broadcast # partial (underlying units) +polygon-agent call --to 0x... --data 0x... [--value ] [--prefer-native-fee] [--broadcast] # arbitrary contract call ``` **`withdraw`** exits **Aave v3** positions using your **aToken** address (`POOL()` + `UNDERLYING_ASSET_ADDRESS()` → `Pool.withdraw`), or **ERC-4626** vaults (e.g. Morpho) via `redeem`. Dry-run prints `poolAddress` / `vault` and calldata. -For **`--broadcast`**, the session must allow the **pool or vault** and (on that chain) **fee / underlying ERC-20** touches — use `wallet create --chain --contract --contract `. If your default session is Polygon but you transact on **mainnet**, create or extend a **mainnet** session for that chain. +The embedded wallet can call any contract on any chain, so no pre-authorization is needed — just ensure the wallet holds a little POL or USDC for gas on the target chain. To transact on a chain other than Polygon, pass `--chain ` on the command itself. + +**`call`** sends a raw transaction to any contract. The relayer takes its gas fee in USDC or POL, whichever the wallet can afford; for a native-only wallet, pass `--prefer-native-fee`. ### Agent Registry (ERC-8004) @@ -203,46 +205,43 @@ polygon-agent agent reviews --agent-id | Wallet name | `main` | `--name ` | | Chain | `polygon` | `--chain ` | | Multi-chain balances | — | `--chains ` (comma-separated, max 20; overrides `--chain`) | -| Wallet create | Auto-wait for approval | `--no-wait` | | Broadcast | Dry-run (preview) | `--broadcast` | --- ## Environment Variables -**One key covers everything:** `SEQUENCE_INDEXER_ACCESS_KEY` and `TRAILS_API_KEY` are the same value as `SEQUENCE_PROJECT_ACCESS_KEY`: +**Required credentials** come from the [Sequence Builder](https://sequence.build) dashboard. Pass them to `setup` (which persists them to `~/.polygon-agent/builder.json`), or export them: ```bash -export SEQUENCE_PROJECT_ACCESS_KEY= -export SEQUENCE_INDEXER_ACCESS_KEY=$SEQUENCE_PROJECT_ACCESS_KEY -export TRAILS_API_KEY=$SEQUENCE_PROJECT_ACCESS_KEY +export SEQUENCE_PUBLISHABLE_KEY= +export SEQUENCE_OMS_PROJECT_ID= ``` **Optional:** -| Variable | Default | Description | -| ---------------------------------- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `SEQUENCE_ECOSYSTEM_CONNECTOR_URL` | `https://agentconnect.polygon.technology/` | URL of the Connector UI that users open in a browser to approve wallet sessions. Override to point at a local dev server (`http://localhost:4444`) or a custom deployment. | -| `SEQUENCE_DAPP_ORIGIN` | `https://agentconnect.polygon.technology` | Origin passed to the wallet during session creation. Identifies which dapp is requesting access. Override only if running the connector under a different domain. | +| Variable | Default | Description | +| ----------------- | ------- | ---------------------------------------------------------------------------- | +| `TRAILS_API_KEY` | — | Optional Trails API key for higher rate limits on swap / bridge / earn calls. | --- ## Security -- **Keys never leave the device.** Credentials are encrypted at rest in `~/.polygon-agent/`. Importantly, keys don't have to be exposed to the agent's context. -- **Session permissions are scoped.** Per-session spending limits, contract whitelists, and 24-hour expiry. +- **No keys to manage.** The embedded wallet is unlocked via email OTP — there are no private keys exposed to the agent's context. Credentials are stored in `~/.polygon-agent/`. +- **Sessions expire.** Wallet sessions last about a week, after which you re-run `wallet login`. --- ## Troubleshooting -| Issue | Fix | -| ------------------------------------- | ----------------------------------- | -| `Missing SEQUENCE_PROJECT_ACCESS_KEY` | Run `setup` first | -| Session expired | Re-run `wallet create` | -| Insufficient funds | Run `fund` to top up your wallet | -| Transaction failed | Omit `--broadcast` to dry-run first | -| Callback timeout | Increase with `--timeout 600` | +| Issue | Fix | +| ------------------------------------------- | ------------------------------------------------ | +| Missing Builder credentials | Run `setup` with `--oms-publishable-key` / `--oms-project-id`, or export `SEQUENCE_PUBLISHABLE_KEY` / `SEQUENCE_OMS_PROJECT_ID` | +| Not logged in | Run `wallet login --email ` | +| Session expired | Re-run `wallet login --email ` | +| Insufficient funds / can't pay gas | Run `fund`; for a native-only wallet pass `--prefer-native-fee` on `call` | +| Transaction failed | Omit `--broadcast` to dry-run first | --- @@ -254,9 +253,6 @@ pnpm install # CLI (via root script) pnpm polygon-agent --help - -# Connector UI -cd packages/connector-ui && pnpm dev ``` ### Project Structure @@ -264,15 +260,14 @@ cd packages/connector-ui && pnpm dev ```text polygon-agent-cli/ ├── packages/ -│ ├── polygon-agent-cli/ # CLI package (@polygonlabs/agent-cli) -│ │ ├── src/ # TypeScript source -│ │ │ ├── index.ts # yargs entry point -│ │ │ ├── commands/ # Command modules (setup, wallet, operations, agent) -│ │ │ ├── lib/ # Shared utils (storage, ethauth, tokens, dapp-client) -│ │ │ └── types.d.ts # Ambient declarations for untyped deps -│ │ ├── contracts/ # ERC-8004 ABIs -│ │ └── skills/ # Agent-friendly docs (SKILL.md, QUICKSTART.md) -│ └── connector-ui/ # React app, wallet connect bridge +│ └── polygon-agent-cli/ # CLI package (@polygonlabs/agent-cli) +│ ├── src/ # TypeScript source +│ │ ├── index.ts # yargs entry point +│ │ ├── commands/ # Command modules (setup, wallet, operations, agent) +│ │ ├── lib/ # Shared utils (storage, ethauth, tokens) +│ │ └── types.d.ts # Ambient declarations for untyped deps +│ ├── contracts/ # ERC-8004 ABIs +│ └── skills/ # Agent-friendly docs (SKILL.md, QUICKSTART.md) ├── pnpm-workspace.yaml └── package.json ``` diff --git a/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md b/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md index cce137e..6b970a1 100644 --- a/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md +++ b/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md @@ -5,6 +5,18 @@ description: DeFi operations on Polygon using the Polygon Agent CLI. Covers same # Polygon DeFi Skill +## Session Prerequisites + +**Before any DeFi operation, the wallet must be logged in.** The embedded wallet can call any contract and spend any amount it holds — there is no contract whitelist and no per-token spend limit, so no special setup is needed for deposits, swaps, or withdrawals. If the user is not logged in, log in now: + +```bash +polygon-agent wallet login --email you@example.com +``` + +This starts and completes an email OTP flow in a single invocation: a one-time code is sent to the address and entered at the interactive prompt (or piped in, e.g. `echo 123456 | polygon-agent wallet login --email you@example.com`). The wallet address is the same across all chains. Sessions last about a week — if calls start failing with an expired-session error, just re-run `wallet login`. + +--- + ## Swap Tokens (Same-Chain) ```bash @@ -56,7 +68,7 @@ All request fields are optional — omit any you don't need to filter on. ### Fetch (agent code) -The API key is the project access key already available to the agent (`SEQUENCE_PROJECT_ACCESS_KEY`). +No API key is required for this public endpoint (an optional `TRAILS_API_KEY` can be set for higher rate limits). ```typescript const res = await fetch('https://trails-api.sequence.app/rpc/Trails/GetEarnPools', { @@ -108,7 +120,9 @@ interface PoolTokenInfo { Pool discovery uses `TrailsApi.getEarnPools` — picks the most liquid pool (highest TVL) for the asset. Only Polygon mainnet (chainId 137) is supported. No hardcoded addresses — the pool is resolved at runtime. -**Gas requirement:** The wallet needs POL for gas, or a session created with `--usdc-limit` to enable USDC paymaster. If the wallet has no POL, create the session with `--usdc-limit 5`. When USDC paymaster is active and the deposit amount would consume the full balance, the CLI auto-reserves 0.05 USDC for gas and prints a note. +**Gas requirement:** The relayer pays gas in USDC or POL, whichever the wallet can afford — so the only requirement is that the wallet holds the funds being deposited plus a little POL or USDC for gas. When the deposit amount would consume the full USDC balance, the CLI auto-reserves a small amount for gas and prints a note. + +The embedded wallet can call any contract, so deposits work without pre-authorizing the token or pool contract — just dry-run, then broadcast: ```bash # Dry-run — shows pool name, APY, TVL, and deposit address before committing @@ -146,62 +160,13 @@ polygon-agent withdraw --position --amount 0.5 --chain mainnet --broadc polygon-agent withdraw --position --amount max --chain polygon --broadcast ``` -### Session Prerequisites for DeFi - -Before running deposits, swaps, or withdrawals, create the wallet session with `--defi` so the relevant token and vault contracts are whitelisted: - -```bash -polygon-agent wallet create --defi -``` - -Without `--defi`, only USDC and USDC.e are whitelisted by default. The `--defi` flag adds USDT, WETH, and all supported yield vault addresses (Aave and Morpho on Polygon mainnet). - -**Same chain as the transaction:** if you use `withdraw --chain mainnet`, create or refresh the session with **`wallet create --chain mainnet --defi`**. Include **`--contract`** for the **underlying ERC-20** on that chain (e.g. mainnet USDC `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`) since `--defi` only covers Polygon mainnet contracts. Tight **`--usdc-limit`** can block fee/helper transfers — omit or relax for yield exits. - -### Session Whitelisting - -A deposit sends **two transactions**: an ERC-20 `approve()` on the token contract, then the pool deposit call. Both contracts must be whitelisted in the session. If the deposit is rejected with a session permission error: - -```bash -# 1. Dry-run first — output includes both addresses under `transactions[0].to` (token) and `depositAddress` (pool) -polygon-agent deposit --asset USDC --amount 0.3 -# → note the token contract address (e.g. USDC: 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359) -# → note the depositAddress (e.g. Aave V3: 0x794a61358d6845594f94dc1db02a252b5b4814ad) - -# 2. Re-create wallet session with DeFi contracts whitelisted (covers both token and vault) -polygon-agent wallet create --defi - -# 3. Retry -polygon-agent deposit --asset USDC --amount 0.3 --broadcast -``` - -To add a contract not covered by `--defi`, use `--contract` alongside it: - -```bash -polygon-agent wallet create --defi --contract -``` - -### Yield Vault Contract Whitelist - -The following contracts are included when `--defi` is passed: - -#### Polygon Mainnet (chainId 137) - -| Protocol | Asset | Address | -|----------|-------|---------| -| Aave V3 Pool (all markets) | USDC, USDT, WETH, WMATIC… | `0x794a61358d6845594f94dc1db02a252b5b4814ad` | -| Morpho Compound USDC | USDC | `0x781fb7f6d845e3be129289833b04d43aa8558c42` | -| Morpho Compound WETH | WETH | `0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf` | -| Morpho Compound POL | POL | `0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2` | +The embedded wallet can call the pool or vault on any chain, so no contract authorization is needed — just make sure the wallet holds a little POL or USDC on that chain for gas. To withdraw on a chain other than Polygon, pass `--chain mainnet` (or another supported chain) on the `withdraw` command itself. --- ## Full DeFi Flow Example ```bash -# 0. Create session with DeFi contracts whitelisted -polygon-agent wallet create --defi --usdc-limit 5 - # 1. Check balances polygon-agent balances @@ -219,21 +184,19 @@ polygon-agent swap --from USDC --to USDC --amount 0.5 --to-chain arbitrum --broa --- -## wallet create — Key Options +## Arbitrary Contract Calls -| Flag | Purpose | -|------|---------| -| `--defi` | Whitelist DeFi contracts (USDT, WETH, yield vaults on Polygon mainnet). Required for swaps and deposits. | -| `--usdc-limit ` | Enable USDC gas paymaster. Required when the wallet has no POL. Recommended: `--usdc-limit 5`. | -| `--force` | Replace an existing session without prompting. By default, re-creating a session is blocked if one already exists — the old wallet balance is not accessible from a new session. | -| `--contract ` | Whitelist an additional contract (repeatable). Use this if a deposit is rejected due to a missing contract permission. | +For any operation not covered by the dedicated commands, use `call` to send a raw transaction to any contract (the embedded wallet can call anything): ```bash -# New session for DeFi operations (swaps, deposits) with USDC gas paymaster -polygon-agent wallet create --defi --usdc-limit 5 +# Dry-run an arbitrary call +polygon-agent call --to 0x... --data 0x... + +# With an attached native value, then broadcast +polygon-agent call --to 0x... --data 0x... --value 0.1 --broadcast -# Replace an existing session -polygon-agent wallet create --defi --force --usdc-limit 5 +# For a native-only wallet, force the relayer to take its fee in POL +polygon-agent call --to 0x... --data 0x... --prefer-native-fee --broadcast ``` --- @@ -242,10 +205,9 @@ polygon-agent wallet create --defi --force --usdc-limit 5 | Error | Cause | Fix | |-------|-------|-----| +| `Not logged in` / no wallet found | No active wallet session | Run `polygon-agent wallet login --email ` | +| Session expired | Sessions last about a week | Re-run `polygon-agent wallet login --email ` | | `Insufficient : wallet has X` | Balance too low for the requested deposit amount | Run `polygon-agent balances` and adjust `--amount` | -| `Wallet has no POL for gas` | No native gas and no USDC paymaster | Fund with POL (`polygon-agent fund`) or re-create session with `--usdc-limit 5` | -| `Transaction rejected by relay` | Session permissions missing for pool or token contract | Re-create with `--defi` or add `--contract ` for a specific address | -| `Unable to pay gas` | No usable fee token found | Fund with POL or add `--usdc-limit 5` to session | -| `Wallet already exists` | Re-creating would orphan the old session | Use `--force` only after confirming old wallet funds are swept or unneeded | +| `Unable to pay gas` / `Wallet has no POL for gas` | Wallet can't cover the relayer fee in USDC or POL | Fund the wallet with a little POL or USDC; for a native-only wallet, pass `--prefer-native-fee` on `call` | | `Protocol X not yet supported` | Trails returned a protocol other than aave/morpho | Use `polygon-agent swap` to obtain the yield-bearing token manually | | `swap`: no route found | Insufficient liquidity for the pair | Try a different amount or token pair | diff --git a/skills/SKILL.md b/skills/SKILL.md index fb425df..5800211 100644 --- a/skills/SKILL.md +++ b/skills/SKILL.md @@ -25,29 +25,34 @@ npm install -g @polygonlabs/agent-cli@latest # upgrade ## Architecture +The CLI uses the **Sequence V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). The agent authenticates with an **email one-time passcode** via `wallet login`; the wallet is created/activated server-side and the session credential is stored encrypted on disk. There is no browser-approval step, relay, or on-chain permission scoping. + | Wallet | Created by | Purpose | Fund? | |--------|-----------|---------|-------| -| EOA | `setup` | Auth with Sequence Builder | NO | -| Ecosystem Wallet | `wallet create` | Primary spending wallet | YES | +| Embedded wallet (V3) | `wallet login --email ` | Primary spending wallet | YES | + +The wallet address is deterministic per email identity and the **same across all EVM chains**. Sessions last ~1 week before re-login is needed. ## Environment Variables -### Access key — one key, many names +### OMS credentials (required) -`SEQUENCE_PROJECT_ACCESS_KEY`, `SEQUENCE_INDEXER_ACCESS_KEY`, and `TRAILS_API_KEY` are **all the same key** — the Sequence project access key created during `setup`. The CLI treats them as aliases and falls back through all of them automatically. +`wallet login` and on-chain reads need two values from the [Sequence Builder](https://sequence.build) dashboard: -After `setup` runs the key is stored in `~/.polygon-agent/builder.json`. Every CLI invocation bootstraps it into the environment — no `export` is needed. In a fresh agent session with no environment variables set, simply run commands and the CLI reads credentials from disk. +| Variable | Description | +|----------|-------------| +| `SEQUENCE_PUBLISHABLE_KEY` | OMS publishable key (safe in client) | +| `SEQUENCE_OMS_PROJECT_ID` | OMS project id (e.g. `proj_...`) | -Only set these manually to override the stored value (e.g. to point at a different project): +Set them via env, or persist once with `setup` so every command reads them from `~/.polygon-agent/builder.json`: ```bash -export SEQUENCE_PROJECT_ACCESS_KEY= # also covers TRAILS_API_KEY and indexer calls +polygon-agent setup --oms-publishable-key --oms-project-id ``` ### Optional overrides | Variable | Default | |----------|---------| -| `SEQUENCE_ECOSYSTEM_CONNECTOR_URL` | `https://agentconnect.polygon.technology` | -| `SEQUENCE_DAPP_ORIGIN` | Same as connector URL origin | +| `SEQUENCE_PROJECT_ACCESS_KEY` | Used only as the Trails API key for DeFi earn-pool lookups (optional) | | `TRAILS_TOKEN_MAP_JSON` | Token-directory lookup | | `POLYGON_AGENT_DEBUG_FETCH` | Off — logs HTTP to `~/.polygon-agent/fetch-debug.log` | | `POLYGON_AGENT_DEBUG_FEE` | Off — dumps fee options to stderr | @@ -55,30 +60,20 @@ export SEQUENCE_PROJECT_ACCESS_KEY= # also covers TRAILS_API_KEY and index ## Complete Setup Flow ```bash -# Step 1: Setup (creates EOA + Sequence project, stores access key to disk) -polygon-agent setup --name "MyAgent" -# → saves privateKey (not shown again), eoaAddress, accessKey to ~/.polygon-agent/builder.json -# → all subsequent commands auto-load the access key from disk — no export needed - -# Step 2: Create ecosystem wallet (opens browser, waits for 6-digit code) -# Aave V3 Pool is auto-whitelisted in all sessions. For Morpho or other DeFi vaults, -# add --contract flags as needed. -polygon-agent wallet create --usdc-limit 50 --native-limit 5 \ - --contract 0xc2132D05D31c914a87C6611C10748AEb04B58e8F \ - --contract 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619 \ - --contract 0x781fb7f6d845e3be129289833b04d43aa8558c42 \ - --contract 0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf \ - --contract 0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2 -# → opens https://agentconnect.polygon.technology/link?rid=&... -# → user approves in browser, browser shows a 6-digit code -# → enter the 6-digit code in the terminal when prompted -# → session saved to ~/.polygon-agent/wallets/main.json -# → notify the user and send them to https://agentconnect.polygon.technology/?rid= -# so they can fund their wallet with access to the session +# Step 1: Save OMS credentials (from the Sequence Builder dashboard) +polygon-agent setup --oms-publishable-key --oms-project-id +# → stores publishableKey + omsProjectId to ~/.polygon-agent/builder.json +# → all subsequent commands auto-load them from disk — no export needed + +# Step 2: Log in (email OTP — start + code entry happen in ONE invocation) +polygon-agent wallet login --email you@example.com +# → sends a 6-digit code to the email +# → enter the code at the prompt (or pipe it: `echo 123456 | polygon-agent wallet login --email ...`) +# → session saved to ~/.polygon-agent/oms/main/; prints the walletAddress # Step 3: Fund wallet polygon-agent fund -# → reads walletAddress from session, builds Trails widget URL with toAddress= +# → reads walletAddress from the session, builds the Trails widget URL with toAddress= # → ALWAYS run this command to get the URL — never construct it manually or hardcode any address # → send the returned `fundingUrl` to the user; `walletAddress` in the output confirms the recipient @@ -106,7 +101,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin > **IMPORTANT — x402 calls:** If the user asks to use x402 to fetch data (Twitter/X profiles, web search, news, AI images, code review, etc.), follow these steps in order before making any request: > > 1. Fetch and read the discovery skill: `GET https://agentconnect.polygon.technology/polygon-discovery/SKILL.md` -> 2. Run `polygon-agent wallet list` — if no wallet exists, run through the wallet creation flow: `polygon-agent setup` (if not already done), then `polygon-agent wallet create` to open a browser session and establish a secure encrypted wallet session. Enter the 6-digit code when prompted, then fund the wallet before continuing. +> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key --oms-project-id ` (if not already done), then `polygon-agent wallet login --email ` and enter the 6-digit code when prompted, then fund the wallet before continuing. > 3. Run `polygon-agent balances` — confirm USDC is available before proceeding; x402 calls will fail with an EOA funding error if the wallet is empty > > Do not guess endpoints or search the web for x402 providers. The discovery skill documents the correct, working endpoints with exact URL formats. @@ -117,20 +112,18 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin ### Setup ```bash -polygon-agent setup --name [--force] +polygon-agent setup [--name ] [--force] + [--oms-publishable-key ] [--oms-project-id ] # save OMS credentials ``` ### Wallet -Valid `--chain` values: `polygon` (default/mainnet), `amoy` (Polygon testnet), `mainnet` (Ethereum), `arbitrum`, `optimism`, `base`. ERC-8004 agent operations only support `polygon`. +Valid `--chain` values for operations: `polygon` (default/mainnet), `amoy` (Polygon testnet), `mainnet` (Ethereum), `arbitrum`, `optimism`, `base`. ERC-8004 agent operations only support `polygon`. The embedded wallet address is the same on every chain. ```bash -polygon-agent wallet create [--name ] [--chain polygon] [--timeout ] [--print-url] - [--native-limit ] [--usdc-limit ] [--usdt-limit ] - [--token-limit ] # repeatable - [--usdc-to --usdc-amount ] # one-off scoped transfer - [--contract ] # whitelist contract (repeatable) -polygon-agent wallet import --code <6-digit-code> --rid [--name ] -polygon-agent wallet import --ciphertext '|@' [--name ] # legacy +polygon-agent wallet login --email [--name ] [--code ] +# start + complete happen in ONE invocation (the OTP is tied to this process). +# Interactive: prompts for the code. Automation: `echo | polygon-agent wallet login --email `. +polygon-agent wallet logout [--name ] # clears the local session polygon-agent wallet list polygon-agent wallet address [--name ] polygon-agent wallet remove [--name ] @@ -166,35 +159,18 @@ polygon-agent agent feedback --agent-id --value [--tag1 ] [--tag ## Key Behaviors - **Dry-run by default** — all write commands require `--broadcast` to execute -- **Smart defaults** — `--wallet main`, `--chain polygon`, auto-wait on `wallet create` +- **Smart defaults** — `--wallet main`, `--chain polygon` - **`balances --chains`** — comma-separated chains (max 20); two or more return JSON with `multiChain: true` and a `chains` array (same wallet address on each) -- **Fee preference** — auto-selects USDC over native POL when both available +- **Fee preference** — auto-selects USDC over native POL when both available; the relayer pays gas in whichever fee token the wallet can afford - **`fund`** — returns `https://wallet.polygon.technology` as the `fundingUrl`. Always run `polygon-agent fund` to get the URL and wallet address — never hardcode or construct manually. -- **`deposit`** — picks highest-TVL pool via Trails `getEarnPools` and deposits directly. Aave V3 Pool (`0x794a61358d6845594f94dc1db02a252b5b4814ad`) is auto-whitelisted in all sessions. Full deposit reference: https://agentconnect.polygon.technology/polygon-defi/SKILL.md -- **Gas reserve** — when using `deposit` or any command that spends tokens, always reserve at least 0.1 USDC or 0.1 POL in the wallet for gas. Never attempt to spend the full balance. The `deposit` command enforces a 0.1 reserve automatically, but the agent must apply the same rule when constructing amounts for `send`, `swap`, or direct contract calls. -- **`withdraw`** — `--position` = aToken or ERC-4626 vault; `--amount` = `max` or underlying units (Aave / vault). Dry-run JSON includes `poolAddress` / `vault`. Broadcast needs session on the **same chain** as `--chain`, with pool/vault + underlying token whitelisted where the relayer touches them -- **`x402-pay`** — probes endpoint for 402, smart wallet funds builder EOA with exact token amount, EOA signs EIP-3009 payment. Chain auto-detected from 402 response +- **`deposit`** — picks highest-TVL pool via Trails `getEarnPools` and deposits directly. Full deposit reference: https://agentconnect.polygon.technology/polygon-defi/SKILL.md +- **Gas reserve** — when using `deposit` or any command that spends tokens, always reserve at least 0.1 USDC or 0.1 POL in the wallet for gas. Never attempt to spend the full balance. The `deposit` command enforces a 0.1 reserve automatically, but the agent must apply the same rule when constructing amounts for `send`, `swap`, or `call`. +- **`withdraw`** — `--position` = aToken or ERC-4626 vault; `--amount` = `max` or underlying units (Aave / vault). Dry-run JSON includes `poolAddress` / `vault`. +- **`x402-pay`** — probes endpoint for 402, the wallet funds a builder EOA with the exact token amount, the EOA signs the EIP-3009 payment. Chain auto-detected from the 402 response +- **`call`** — submit arbitrary pre-encoded calldata: `polygon-agent call --to --data 0x... [--value ] [--prefer-native-fee] [--broadcast]`. The wallet can call any contract (no permission scoping in the V3 model) - **`send-native --direct`** — bypasses ValueForwarder contract for direct EOA transfer -- **Session permissions** — without `--usdc-limit` etc., session gets bare-bones defaults and may not transact -- **Session expiry** — 6 months from creation -- **One-pass session setup** — if the user's intent involves DeFi (deposit, yield, swap, Aave, Morpho), include any additional contracts (Morpho vaults etc.) in the initial `wallet create` call. Never create a bare session and then ask the user to re-approve when a deposit is later attempted. - -## Wallet Creation Flow (v2 Relay) - -`wallet create` uses a Cloudflare Durable Object relay and a 6-digit out-of-band code — no cloudflared tunnel required. The browser encrypts the approved session with an X25519 key negotiated via the relay; the 6-digit code is the decryption key entered in the terminal. - -**`--print-url` flag:** Use this in headless or non-interactive environments (CI, remote shells) where `wallet create` can't block waiting for the code. The CLI prints the approval URL and exits immediately. Complete the flow separately: -```bash -polygon-agent wallet import --code <6-digit-code> --rid -``` - -## CRITICAL: Wallet Approval URL - -When `wallet create` outputs a URL in the `url` or `approvalUrl` field, send the **complete, untruncated URL** to the user. The URL contains the relay request ID required for session approval. - -- Do NOT shorten, summarize, or add `...` to the URL -- Do NOT split the URL across multiple messages -- Output the raw URL exactly as returned by the CLI +- **No permission scoping** — the V3 embedded wallet can call any contract and spend any amount it holds; there are no per-contract whitelists or spend limits. Guard spending in agent logic, not at the wallet layer. +- **Session expiry** — ~1 week from login; on expiry, re-run `wallet login` ## Presenting Results to the User @@ -208,7 +184,7 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | `deposit` | Summary: amount, asset, protocol, pool address. If broadcast, show tx hash + explorer link. | | `withdraw` | Summary: `kind` (aave / erc4626), position, amount, pool or vault. If broadcast, show tx hash + explorer link. | | `fund` | Show the `fundingUrl` as a clickable link with a brief instruction to open it. | -| `wallet create` / `wallet list` | Wallet name, truncated address, chain in a small table or bullet list. | +| `wallet login` / `wallet list` | Wallet name, truncated address, chain in a small table or bullet list. | | `agent register` | Show agent name and tx hash as a code span with Polygonscan link. Remind user to retrieve `agentId` from the Registered event on the Logs tab. | | `agent wallet` | Show `agentId`, wallet address, and whether a wallet is set. | | `agent metadata` | Show `agentId`, key, and decoded value. | @@ -224,17 +200,11 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | Issue | Fix | |-------|-----| -| `Builder configured already` | Add `--force` | -| `Missing SEQUENCE_PROJECT_ACCESS_KEY` | Run `setup` first | -| `Missing wallet` | `wallet list`, re-run `wallet create` | -| `Session expired` | Re-run `wallet create` (6-month expiry) | -| `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has funds | -| `Timed out waiting for wallet approval` | Add `--timeout 600` | -| `Invalid code: hash mismatch` | Wrong 6-digit code entered — retry (3 attempts allowed) | -| `Relay request not found` | Session expired or already used — re-run `wallet create` (or `wallet create --print-url`) | -| Deposit session rejected | Re-create wallet with `--contract --contract ` (both required: token approve + pool call) | -| `withdraw` / broadcast: wrong chain or session rejects | Use `wallet create --chain ` and `--contract` for pool/vault + underlying ERC-20 on that chain; omit tight `--usdc-limit` if it blocks fee transfers | -| `Stored explicit session is missing pk` | Re-link: `wallet import --code …` after `wallet create` | +| `OMS credentials not configured` | Run `setup --oms-publishable-key --oms-project-id ` (or set `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID`) | +| `Wallet not found` | `wallet list`, then `wallet login --email ` | +| Session expired (`OMS_SESSION_EXPIRED`) | Re-run `wallet login --email ` (~1-week lifetime) | +| `No pending email auth attempt` | The OTP must be entered in the same `wallet login` invocation that sent it — re-run `wallet login` | +| `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has POL or a fee token. For native-only wallets, add `--prefer-native-fee` on `call` | | Wrong recipient in Trails widget | Run `polygon-agent fund` (do not construct the URL manually) | | `x402-pay`: no 402 response | Endpoint doesn't require x402 payment, or URL is wrong | | `x402-pay`: payment token mismatch | Chain/token in the 402 response differs from wallet — check `--wallet` points to the right chain | @@ -243,8 +213,8 @@ CLI commands output JSON (non-TTY). After running a command, always render the r ## File Structure ``` ~/.polygon-agent/ -├── .encryption-key # AES-256-GCM key (auto-generated, 0600) -├── builder.json # EOA privateKey (encrypted), eoaAddress, accessKey, projectId -├── wallets/.json # walletAddress, session, chainId, chain -└── requests/.json # Pending wallet creation requests (deleted after successful import) +├── .encryption-key # AES-256-GCM key (auto-generated, 0600) +├── builder.json # publishableKey, omsProjectId, polymarket/EOA keys (encrypted) +├── wallets/.json # OMS wallet pointer: walletAddress, loginMethod, email +└── oms// # OMS SDK session storage + encrypted credential key ``` diff --git a/skills/polygon-defi/SKILL.md b/skills/polygon-defi/SKILL.md index 56aa7f2..f8bcb5c 100644 --- a/skills/polygon-defi/SKILL.md +++ b/skills/polygon-defi/SKILL.md @@ -7,25 +7,13 @@ description: DeFi operations on Polygon using the Polygon Agent CLI. Covers same ## Session Prerequisites -**Before any DeFi operation, the wallet session must include the token contracts and pool contracts.** If the user does not yet have a session, or has an older session that predates this list, create one now — do not wait until a deposit fails: +**Before any DeFi operation, the wallet must be logged in.** The embedded wallet can call any contract and spend any amount it holds — there is no contract whitelist and no per-token spend limit, so no special setup is needed for deposits, swaps, or withdrawals. If the user is not logged in, log in now: ```bash -polygon-agent wallet create --usdc-limit 50 \ - --contract 0xc2132D05D31c914a87C6611C10748AEb04B58e8F \ - --contract 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619 \ - --contract 0x781fb7f6d845e3be129289833b04d43aa8558c42 \ - --contract 0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf \ - --contract 0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2 +polygon-agent wallet login --email you@example.com ``` -**Aave V3 Pool (`0x794a61358d6845594f94dc1db02a252b5b4814ad`) is auto-whitelisted in every session** — no `--contract` flag needed for it. The above command adds: -- USDT: `0xc2132D05D31c914a87C6611C10748AEb04B58e8F` -- WETH: `0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619` -- Morpho Compound USDC: `0x781fb7f6d845e3be129289833b04d43aa8558c42` -- Morpho Compound WETH: `0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf` -- Morpho Compound POL: `0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2` - -If the user already has a session but deposit/swap calls are rejected with a permission error, re-create the session with the above command to pick up all current contracts. +This starts and completes an email OTP flow in a single invocation: a one-time code is sent to the address and entered at the interactive prompt (or piped in, e.g. `echo 123456 | polygon-agent wallet login --email you@example.com`). The wallet address is the same across all chains. Sessions last about a week — if calls start failing with an expired-session error, just re-run `wallet login`. --- @@ -80,7 +68,7 @@ All request fields are optional — omit any you don't need to filter on. ### Fetch (agent code) -The API key is the project access key already available to the agent (`SEQUENCE_PROJECT_ACCESS_KEY`). +No API key is required for this public endpoint (an optional `TRAILS_API_KEY` can be set for higher rate limits). ```typescript const res = await fetch('https://trails-api.sequence.app/rpc/Trails/GetEarnPools', { @@ -132,22 +120,9 @@ interface PoolTokenInfo { Pool discovery uses `TrailsApi.getEarnPools` — picks the most liquid pool (highest TVL) for the asset on the requested chain. No hardcoded addresses — the pool is resolved at runtime. Supported chains: Polygon, Base, Arbitrum, Optimism, Ethereum mainnet (any chain Trails indexes). -**Gas requirement:** The wallet needs POL for gas, or a session created with `--usdc-limit` to enable USDC paymaster. If the wallet has no POL, create the session with `--usdc-limit 50`. The CLI always reserves 0.1 USDC for gas — never deposit the full balance. If the requested amount would leave less than 0.1 USDC, the CLI auto-reduces the deposit and prints a note. - -**Session setup:** The wallet session must whitelist the token contract and the pool deposit contract, or the relay will reject the transaction with a 400 error. Run a dry-run first to get the exact addresses, then create (or re-create) the session with both contracts: - -```bash -# 1. Dry-run to discover the token address and pool depositAddress -polygon-agent deposit --asset USDC --amount 1 - -# 2. Create session with those contracts whitelisted (prevents 400 permission error on broadcast) -polygon-agent wallet create --usdc-limit 50 --contract --contract - -# 3. Broadcast -polygon-agent deposit --asset USDC --amount 1 --broadcast -``` +**Gas requirement:** The relayer pays gas in USDC or POL, whichever the wallet can afford — so the only requirement is that the wallet holds the funds being deposited plus a little POL or USDC for gas. The CLI always reserves 0.1 USDC for gas — never deposit the full balance. If the requested amount would leave less than 0.1 USDC, the CLI auto-reduces the deposit and prints a note. -Omitting `--contract` for the deposit pool is the most common cause of a "Request aborted" (code 1005) error on broadcast. +The embedded wallet can call any contract, so deposits work without pre-authorizing the token or pool contract — just dry-run, then broadcast: ```bash # Dry-run — shows pool name, APY, TVL, and deposit address before committing @@ -185,42 +160,7 @@ polygon-agent withdraw --position --amount 0.5 --chain mainnet --broadc polygon-agent withdraw --position --amount max --chain polygon --broadcast ``` -Whitelist the **pool** (Aave) or **vault** contract on the session if the wallet rejects the call (`polygon-agent wallet create --contract `). - -**Same chain as the transaction:** if you use `withdraw --chain mainnet`, create or refresh the session with **`wallet create --chain mainnet`** (not only Polygon defaults). Include **`--contract`** for the **pool** and for the **underlying ERC-20** on that chain (e.g. mainnet USDC `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`) so fee / helper transfers are allowed. Tight **`--usdc-limit`** can block those — omit or relax for yield exits. - -### Session Whitelisting - -If the deposit is rejected with a session permission error, both the token contract and the pool deposit contract must be whitelisted in the session: - -```bash -# 1. Dry-run first — output includes both addresses under `transactions[0].to` (token) and `depositAddress` (pool) -polygon-agent deposit --asset USDC --amount 0.3 -# → note the token contract address (e.g. USDC: 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359) -# → note the depositAddress (e.g. Aave V3: 0x794a61358d6845594f94dc1db02a252b5b4814ad) - -# 2. Re-create wallet session with BOTH contracts whitelisted -polygon-agent wallet create --contract --contract - -# 3. Retry -polygon-agent deposit --asset USDC --amount 0.3 --broadcast -``` - -Contracts auto-whitelisted in every session (no `--contract` flag needed): -- USDC: `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` -- USDC.e: `0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174` -- Aave V3 Pool: `0x794a61358d6845594f94dc1db02a252b5b4814ad` - -### Yield Vault Contract Whitelist - -#### Polygon Mainnet (chainId 137) - -| Protocol | Asset | Address | -|----------|-------|---------| -| Aave V3 Pool (all markets) | USDC, USDT, WETH, WMATIC… | `0x794a61358d6845594f94dc1db02a252b5b4814ad` | -| Morpho Compound USDC | USDC | `0x781fb7f6d845e3be129289833b04d43aa8558c42` | -| Morpho Compound WETH | WETH | `0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf` | -| Morpho Compound POL | POL | `0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2` | +The embedded wallet can call the pool or vault on any chain, so no contract authorization is needed — just make sure the wallet holds a little POL or USDC on that chain for gas. To withdraw on a chain other than Polygon, pass `--chain mainnet` (or another supported chain) on the `withdraw` command itself. --- @@ -244,16 +184,19 @@ polygon-agent swap --from USDC --to USDC --amount 0.5 --to-chain arbitrum --broa --- -## wallet create — Key Options +## Arbitrary Contract Calls -| Flag | Purpose | -|------|---------| -| `--usdc-limit ` | Enable USDC gas paymaster. Required when the wallet has no POL. Recommended: `--usdc-limit 50`. | -| `--contract ` | Whitelist an additional contract (repeatable). Use this if a deposit is rejected due to a missing contract permission. | +For any operation not covered by the dedicated commands, use `call` to send a raw transaction to any contract (the embedded wallet can call anything): ```bash -# New session with USDC gas enabled -polygon-agent wallet create --usdc-limit 50 +# Dry-run an arbitrary call +polygon-agent call --to 0x... --data 0x... + +# With an attached native value, then broadcast +polygon-agent call --to 0x... --data 0x... --value 0.1 --broadcast + +# For a native-only wallet, force the relayer to take its fee in POL +polygon-agent call --to 0x... --data 0x... --prefer-native-fee --broadcast ``` --- @@ -262,9 +205,9 @@ polygon-agent wallet create --usdc-limit 50 | Error | Cause | Fix | |-------|-------|-----| +| `Not logged in` / no wallet found | No active wallet session | Run `polygon-agent wallet login --email ` | +| Session expired | Sessions last about a week | Re-run `polygon-agent wallet login --email ` | | `Insufficient : wallet has X` | Balance too low for the requested deposit amount | Run `polygon-agent balances` and adjust `--amount` | -| `Wallet has no POL for gas` | No native gas and no USDC paymaster | Fund with POL (`polygon-agent fund`) or re-create session with `--usdc-limit 50` | -| `Transaction rejected by relay` | Session permissions missing for pool or token contract | Re-create with `--contract --contract ` | -| `Unable to pay gas` | No usable fee token found | Fund with POL or add `--usdc-limit 50` to session | +| `Unable to pay gas` / `Wallet has no POL for gas` | Wallet can't cover the relayer fee in USDC or POL | Fund the wallet with a little POL or USDC; for a native-only wallet, pass `--prefer-native-fee` on `call` | | `Protocol X not yet supported` | Trails returned a protocol other than aave/morpho | Use `polygon-agent swap` to obtain the yield-bearing token manually | | `swap`: no route found | Insufficient liquidity for the pair | Try a different amount or token pair | diff --git a/skills/polygon-discovery/SKILL.md b/skills/polygon-discovery/SKILL.md index 7fb390d..7e43a5f 100644 --- a/skills/polygon-discovery/SKILL.md +++ b/skills/polygon-discovery/SKILL.md @@ -22,11 +22,11 @@ Before running any `x402-pay` command, verify the wallet session exists and is f polygon-agent wallet list ``` -**If no wallet is listed**, the smart session has not been created. Run through the complete setup flow before proceeding: +**If no wallet is listed**, log in before proceeding: -1. `polygon-agent setup --name "MyAgent"` — creates EOA and Sequence project -2. `polygon-agent wallet create --usdc-limit 100` — opens browser for session approval; enter the 6-digit code when prompted -3. `polygon-agent wallet address` — get address, then fund via https://agentconnect.polygon.technology +1. `polygon-agent setup --oms-publishable-key --oms-project-id ` — saves OMS credentials (from the Sequence Builder dashboard) +2. `polygon-agent wallet login --email ` — email OTP; enter the 6-digit code when prompted +3. `polygon-agent wallet address` — get the address, then fund it (`polygon-agent fund`) 4. `polygon-agent balances` — confirm USDC is available before calling any x402 endpoint **If a wallet exists but `balances` shows 0 USDC**, direct the user to fund it via the UI — `x402-pay` will fail with an EOA funding error otherwise. diff --git a/skills/polygon-polymarket/SKILL.md b/skills/polygon-polymarket/SKILL.md index b5c8e62..71932cf 100644 --- a/skills/polygon-polymarket/SKILL.md +++ b/skills/polygon-polymarket/SKILL.md @@ -335,8 +335,8 @@ When deciding whether to sell: | `Market has no tokenIds` | Closed market | Check `endDate` — market resolved | | `orderStatus: "unmatched"` on FOK | No liquidity at market price | Try `--fak` for partial fill, or `--price 0.x` for limit order | | `invalid amount for a marketable BUY order ($X), min size: $1` | Amount below CLOB minimum | Use at least $1. If pUSD was already funded, retry with `--skip-fund` | -| `Wallet not found: main` | No Sequence wallet | Run `polygon-agent wallet create` | -| `No signer supported for call` | Wallet session missing USDC.e whitelist | Re-create wallet session: `polygon-agent wallet create --name main` | +| `Wallet not found: main` | Not logged in | Run `polygon-agent wallet login --email ` | +| Session expired (`OMS_SESSION_EXPIRED`) | Login session lapsed (~1 week) | Re-run `polygon-agent wallet login --email ` | | Approvals tx reverts after V2 migration | V1 approvals — wrong exchange contracts | Re-run `polygon-agent polymarket approve --broadcast` for V2 contracts | --- From 2faa524ca7c886a9057e441f2f23bd9b89e89ddb Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Tue, 16 Jun 2026 11:56:41 +0530 Subject: [PATCH 04/79] refactor(cli): remove stale legacy guidance from deposit/withdraw/setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop the dead "re-create with wallet create --contract" notes and the Sapient-era error handling ("No signer supported", session-permission rejection) from deposit and withdraw — these referred to the removed dapp-client permission-scoping model and can't occur on the OMS path. Deposit/withdraw now submit through runOmsTx directly; OMS session errors are handled in the primitive. Also fix the setup TTY hint to point at `wallet login` instead of the removed `wallet create`. --- .../src/commands/operations.ts | 94 ++++++------------- .../src/commands/setup-ui.tsx | 4 +- packages/polygon-agent-cli/src/lib/storage.ts | 25 ++++- 3 files changed, 52 insertions(+), 71 deletions(-) diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index c0d8a94..4f6573a 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -965,7 +965,10 @@ export const swapCommand: CommandModule = { const { TrailsApi, TradeType } = await import('@0xtrails/api'); const trailsApiKey = - process.env.TRAILS_API_KEY || (await loadBuilderConfig())?.accessKey || ''; + process.env.TRAILS_API_KEY || + process.env.SEQUENCE_PROJECT_ACCESS_KEY || + (await loadBuilderConfig())?.accessKey || + ''; const trails = new TrailsApi(trailsApiKey, { hostname: process.env.TRAILS_API_HOSTNAME }); @@ -1175,7 +1178,10 @@ export const depositCommand: CommandModule = { const { TrailsApi } = await import('@0xtrails/api'); const trailsApiKey = - process.env.TRAILS_API_KEY || (await loadBuilderConfig())?.accessKey || ''; + process.env.TRAILS_API_KEY || + process.env.SEQUENCE_PROJECT_ACCESS_KEY || + (await loadBuilderConfig())?.accessKey || + ''; const trails = new TrailsApi(trailsApiKey, { hostname: process.env.TRAILS_API_HOSTNAME }); @@ -1369,7 +1375,7 @@ export const depositCommand: CommandModule = { chainId, chain: network.name, transactions, - note: `Re-run with --broadcast to submit the deposit. If session rejects the call, re-create with: polygon-agent wallet create --contract ${asset.address} --contract ${pool.depositAddress}` + note: `Submits as two transactions (approve + supply) — non-atomic. Re-run with --broadcast to submit. Ensure the wallet holds ${assetSymbol} plus a little POL or USDC for gas.` }, bigintReplacer, 2 @@ -1378,45 +1384,14 @@ export const depositCommand: CommandModule = { return; } - let result; - try { - result = await runDappClientTx({ - walletName, - chainId, - transactions, - broadcast, - preferNativeFee: false - }); - } catch (txErr) { - const txMsg = (txErr as Error).message || ''; - if (txMsg.includes('No signer supported')) { - throw new Error( - `Session does not permit calls to ${pool.depositAddress} (${pool.protocol} pool) or ${asset.address} (${assetSymbol} approve). ` + - `Re-create the wallet session with: polygon-agent wallet create --contract ${asset.address} --contract ${pool.depositAddress}\n` + - `Original error: ${txMsg}` - ); - } - if (txMsg.includes('Identity signers not found') || txMsg.includes('signers not found')) { - throw new Error( - `Wallet has no POL for gas and no USDC paymaster is configured. ` + - `Fund with POL: polygon-agent fund\n` + - `Or enable USDC gas: polygon-agent wallet create --usdc-limit 5\n` + - `Original error: ${txMsg}` - ); - } - if ( - txMsg.includes('Request aborted') || - txMsg.includes('AbortedError') || - txMsg.includes('code 1005') - ) { - throw new Error( - `Transaction rejected by relay — likely a session permission issue. ` + - `Re-create the wallet session: polygon-agent wallet create --contract ${asset.address} --contract ${pool.depositAddress}\n` + - `Original error: ${txMsg}` - ); - } - throw txErr; - } + // NON-ATOMIC: deposit submits approve + supply sequentially via runOmsTx. + const result = await runDappClientTx({ + walletName, + chainId, + transactions, + broadcast, + preferNativeFee: false + }); console.log( JSON.stringify( @@ -1650,7 +1625,10 @@ export const withdrawCommand: CommandModule = { const { TrailsApi } = await import('@0xtrails/api'); const trailsApiKey = - process.env.TRAILS_API_KEY || process.env.SEQUENCE_PROJECT_ACCESS_KEY || ''; + process.env.TRAILS_API_KEY || + process.env.SEQUENCE_PROJECT_ACCESS_KEY || + (await loadBuilderConfig())?.accessKey || + ''; const trails = new TrailsApi(trailsApiKey, { hostname: process.env.TRAILS_API_HOSTNAME }); @@ -1878,8 +1856,6 @@ export const withdrawCommand: CommandModule = { }; } - const targetContract = kind === 'aave' ? (summary.poolAddress as string) : positionAddr; - if (!broadcast) { console.log( JSON.stringify( @@ -1893,7 +1869,7 @@ export const withdrawCommand: CommandModule = { kind, ...summary, transactions, - note: `Re-run with --broadcast to submit. If the session rejects the call, re-create the wallet with the pool/vault whitelisted: polygon-agent wallet create --contract ${targetContract}` + note: `Re-run with --broadcast to submit. Ensure the wallet holds a little POL or USDC for gas.` }, bigintReplacer, 2 @@ -1902,25 +1878,13 @@ export const withdrawCommand: CommandModule = { return; } - let result; - try { - result = await runDappClientTx({ - walletName, - chainId, - transactions, - broadcast, - preferNativeFee: false - }); - } catch (txErr) { - if ((txErr as Error).message?.includes('No signer supported')) { - throw new Error( - `Session does not permit calls to ${targetContract}. ` + - `Re-create the wallet session with: polygon-agent wallet create --contract ${targetContract}\n` + - `Original error: ${(txErr as Error).message}` - ); - } - throw txErr; - } + const result = await runDappClientTx({ + walletName, + chainId, + transactions, + broadcast, + preferNativeFee: false + }); console.log( JSON.stringify( diff --git a/packages/polygon-agent-cli/src/commands/setup-ui.tsx b/packages/polygon-agent-cli/src/commands/setup-ui.tsx index 6d79a7d..be991ed 100644 --- a/packages/polygon-agent-cli/src/commands/setup-ui.tsx +++ b/packages/polygon-agent-cli/src/commands/setup-ui.tsx @@ -186,14 +186,14 @@ export function SetupUI({ name, force }: { name: string; force: boolean }) { - Next: polygon-agent wallet create + Next: polygon-agent wallet login --email <addr> )} {phase === 'existing' && result && ( Already configured - Next: polygon-agent wallet create + Next: polygon-agent wallet login --email <addr> )} {phase === 'error' && } diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index a1b5b95..3fb6833 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -232,10 +232,27 @@ export function loadOmsConfig(): OmsConfig | null { /** Populate OMS env vars from builder.json at startup. */ export function bootstrapOmsConfig(): void { const cfg = loadOmsConfig(); - if (!cfg) return; - if (!process.env.SEQUENCE_PUBLISHABLE_KEY) - process.env.SEQUENCE_PUBLISHABLE_KEY = cfg.publishableKey; - if (!process.env.SEQUENCE_OMS_PROJECT_ID) process.env.SEQUENCE_OMS_PROJECT_ID = cfg.omsProjectId; + if (cfg) { + if (!process.env.SEQUENCE_PUBLISHABLE_KEY) + process.env.SEQUENCE_PUBLISHABLE_KEY = cfg.publishableKey; + if (!process.env.SEQUENCE_OMS_PROJECT_ID) + process.env.SEQUENCE_OMS_PROJECT_ID = cfg.omsProjectId; + } + + // Also bootstrap the Sequence project access key (used by Trails swap/bridge + // and the indexer) from builder.json into the env, if present — env always + // wins. This is separate from the OMS wallet credentials above. + if (!process.env.SEQUENCE_PROJECT_ACCESS_KEY) { + const configPath = path.join(STORAGE_DIR, 'builder.json'); + if (fs.existsSync(configPath)) { + try { + const data = JSON.parse(fs.readFileSync(configPath, 'utf8')); + if (data.accessKey) process.env.SEQUENCE_PROJECT_ACCESS_KEY = data.accessKey as string; + } catch { + // ignore malformed config + } + } + } } export async function saveOmsWalletPointer(name: string, pointer: OmsWalletPointer): Promise { From 5d7ef47ced8bbdbd5ff16a1bf2362a33375fab7e Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 29 Jun 2026 15:32:12 +0530 Subject: [PATCH 05/79] feat(cli): upgrade Sequence SDK to 0.1.0-alpha.4 --- packages/polygon-agent-cli/package.json | 2 +- .../src/commands/operations-ui.tsx | 18 ++++++++---------- .../src/commands/operations.ts | 15 +++++++++------ .../polygon-agent-cli/src/lib/oms-client.ts | 6 +++--- packages/polygon-agent-cli/src/lib/storage.ts | 18 ++++++++++-------- pnpm-lock.yaml | 10 +++++----- 6 files changed, 36 insertions(+), 33 deletions(-) diff --git a/packages/polygon-agent-cli/package.json b/packages/polygon-agent-cli/package.json index 749e330..95c4b4c 100644 --- a/packages/polygon-agent-cli/package.json +++ b/packages/polygon-agent-cli/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "@0xsequence/network": "^2.3.40", - "@0xsequence/typescript-sdk": "0.1.0-alpha.2", + "@0xsequence/typescript-sdk": "0.1.0-alpha.4", "@0xtrails/api": "^0.10.4", "@polymarket/clob-client-v2": "^1.0.0", "@polymarket/sdk": "^6.0.1", diff --git a/packages/polygon-agent-cli/src/commands/operations-ui.tsx b/packages/polygon-agent-cli/src/commands/operations-ui.tsx index 443559e..be6418b 100644 --- a/packages/polygon-agent-cli/src/commands/operations-ui.tsx +++ b/packages/polygon-agent-cli/src/commands/operations-ui.tsx @@ -54,24 +54,22 @@ export function BalancesUI({ walletName, chainOverride }: BalancesUIProps) { if (!omsNetwork) throw new Error(`Unsupported chain for OMS indexer: ${network.chainId}`); const oms = getOmsClient(walletName); - const [nativeRes, tokenRes] = await Promise.all([ - oms.indexer.getNativeTokenBalance({ network: omsNetwork, walletAddress: addr }), - oms.indexer.getTokenBalances({ - network: omsNetwork, - walletAddress: addr, - includeMetadata: true - }) - ]); + // SDK 0.1.0-alpha.4: one getBalances call returns native + tokens. + const res = await oms.indexer.getBalances({ + walletAddress: addr, + networks: [omsNetwork], + includeMetadata: true + }); const rows: BalanceEntry[] = [ { symbol: nativeSymbol, - balance: formatUnits(BigInt(nativeRes?.balance || '0'), nativeDecimals), + balance: formatUnits(BigInt(res.nativeBalances?.[0]?.balance || '0'), nativeDecimals), address: '(native)' } ]; - for (const b of (tokenRes?.balances || []) as TokenBalance[]) { + for (const b of (res.balances || []) as TokenBalance[]) { const sym = b.contractInfo?.symbol || 'ERC20'; const dec = b.contractInfo?.decimals ?? 18; const tokenAddr = b.contractAddress ? shortAddr(b.contractAddress) : ''; diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index 4f6573a..922837d 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -134,12 +134,15 @@ async function fetchBalancesRowsForChain( if (!omsNetwork) throw new Error(`Unsupported chain for OMS indexer: ${network.chainId}`); const oms = getOmsClient(walletName); - const [nativeRes, tokenRes] = await Promise.all([ - oms.indexer.getNativeTokenBalance({ network: omsNetwork, walletAddress }), - oms.indexer.getTokenBalances({ network: omsNetwork, walletAddress, includeMetadata: true }) - ]); + // SDK 0.1.0-alpha.4 unified the two indexer calls into getBalances, returning + // { nativeBalances, balances } for the requested network(s). + const res = await oms.indexer.getBalances({ + walletAddress, + networks: [omsNetwork], + includeMetadata: true + }); - const nativeWei = nativeRes?.balance || '0'; + const nativeWei = res.nativeBalances?.[0]?.balance || '0'; const native: BalanceRowJson[] = [ { type: 'native', @@ -148,7 +151,7 @@ async function fetchBalancesRowsForChain( } ]; - const erc20: BalanceRowJson[] = (tokenRes?.balances || []) + const erc20: BalanceRowJson[] = (res.balances || []) .filter((b: TokenBalance) => !!b.contractAddress) .map((b: TokenBalance) => ({ type: 'erc20' as const, diff --git a/packages/polygon-agent-cli/src/lib/oms-client.ts b/packages/polygon-agent-cli/src/lib/oms-client.ts index 42e1393..93bd8a2 100644 --- a/packages/polygon-agent-cli/src/lib/oms-client.ts +++ b/packages/polygon-agent-cli/src/lib/oms-client.ts @@ -22,8 +22,8 @@ export function getOmsClient(walletName: string): OMSClient { const cfg = loadOmsConfig(); if (!cfg) { throw new Error( - 'OMS credentials not configured. Set SEQUENCE_PUBLISHABLE_KEY + SEQUENCE_OMS_PROJECT_ID ' + - '(or run `polygon-agent setup`). Get them from the Sequence Builder dashboard.' + 'OMS credentials not configured. Set SEQUENCE_PUBLISHABLE_KEY ' + + '(or run `polygon-agent setup`). Get it from the Sequence Builder dashboard.' ); } @@ -31,9 +31,9 @@ export function getOmsClient(walletName: string): OMSClient { loadOrCreateCredentialKey(walletName) ); + // SDK 0.1.0-alpha.4: the publishableKey alone identifies the project. const oms = new OMSClient({ publishableKey: cfg.publishableKey, - projectId: cfg.omsProjectId, storage: new FileStorageManager(walletName), credentialSigner }); diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index 3fb6833..b2521a2 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -21,12 +21,13 @@ export interface BuilderConfig { /** * OMS (Sequence V3 "Open Money Stack") credentials for the typescript-sdk path. - * publishableKey + omsProjectId come from the Sequence Builder dashboard. - * Stored alongside builder.json so `wallet login` and tx submission can read them. + * As of SDK 0.1.0-alpha.4 the publishableKey alone identifies the project; + * omsProjectId is retained as optional for backward compat / display only. + * Stored alongside builder.json so `wallet login` and tx submission can read it. */ export interface OmsConfig { publishableKey: string; - omsProjectId: string; + omsProjectId?: string; } /** Pointer record for an OMS wallet (the SDK persists the real session in its StorageManager). */ @@ -211,17 +212,18 @@ export async function saveOmsConfig(config: OmsConfig): Promise { * Returns null if neither key is available. */ export function loadOmsConfig(): OmsConfig | null { + // SDK 0.1.0-alpha.4: only the publishableKey is required (it identifies the + // project). omsProjectId is read if present but no longer mandatory. const envPk = process.env.SEQUENCE_PUBLISHABLE_KEY; const envProj = process.env.SEQUENCE_OMS_PROJECT_ID; - if (envPk && envProj) return { publishableKey: envPk, omsProjectId: envProj }; + if (envPk) return { publishableKey: envPk, omsProjectId: envProj }; const configPath = path.join(STORAGE_DIR, 'builder.json'); if (fs.existsSync(configPath)) { try { const data = JSON.parse(fs.readFileSync(configPath, 'utf8')); - const publishableKey = envPk ?? data.publishableKey; - const omsProjectId = envProj ?? data.omsProjectId; - if (publishableKey && omsProjectId) return { publishableKey, omsProjectId }; + const publishableKey = data.publishableKey; + if (publishableKey) return { publishableKey, omsProjectId: data.omsProjectId }; } catch { // ignore malformed config } @@ -235,7 +237,7 @@ export function bootstrapOmsConfig(): void { if (cfg) { if (!process.env.SEQUENCE_PUBLISHABLE_KEY) process.env.SEQUENCE_PUBLISHABLE_KEY = cfg.publishableKey; - if (!process.env.SEQUENCE_OMS_PROJECT_ID) + if (!process.env.SEQUENCE_OMS_PROJECT_ID && cfg.omsProjectId) process.env.SEQUENCE_OMS_PROJECT_ID = cfg.omsProjectId; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21e08c0..6a91d46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,8 +61,8 @@ importers: specifier: ^2.3.40 version: 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) '@0xsequence/typescript-sdk': - specifier: 0.1.0-alpha.2 - version: 0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + specifier: 0.1.0-alpha.4 + version: 0.1.0-alpha.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) '@0xtrails/api': specifier: ^0.10.4 version: 0.10.4 @@ -170,8 +170,8 @@ packages: peerDependencies: ethers: '>=6' - '@0xsequence/typescript-sdk@0.1.0-alpha.2': - resolution: {integrity: sha512-sRg+j1z+EHunnGxR934xOTtWTifyhA4seu88KBBS/9Dxap9uGt0e1bdO+v84m2XeP1GF8qLdlkFYQVAey02AjQ==} + '@0xsequence/typescript-sdk@0.1.0-alpha.4': + resolution: {integrity: sha512-l1xi8OXgcwQ05HeNqt11TFLddGI6NIZ5ObKe930kgAnM4UcLTZ1DNf+bvKQoRQ16hEZUJDS5nE0BkI85vdYGDQ==} '@0xsequence/utils@2.3.41': resolution: {integrity: sha512-wikEOiYxfq+Iqsfb9JF6xHnpyXHaUre+2FUQpk3teo7/FXy0xtHdzxtfbhGn5/EcMnlSErk1nt6isrcxlkkHuQ==} @@ -4786,7 +4786,7 @@ snapshots: '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@0xsequence/typescript-sdk@0.1.0-alpha.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + '@0xsequence/typescript-sdk@0.1.0-alpha.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': dependencies: viem: 2.52.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) transitivePeerDependencies: From 8f14fda319b523fe1aceb253134609d74a2b4e3e Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Tue, 30 Jun 2026 22:20:13 +0530 Subject: [PATCH 06/79] feat(cli): add browser login via Google OIDC (wallet login-browser) Add a `wallet login-browser` subcommand that signs in with Google through the SDK's OIDC + PKCE redirect flow, using a short-lived localhost callback server. The resulting session persists identically to email login, so balances, tx and address resume with no re-login. The funding step is chained after a successful login (skip with --no-fund). - oidc-callback-server.ts: loopback server that captures the single callback URL - oms-client.ts: pass the mandatory redirectAuthStorage; SEQUENCE_OIDC_RELAY_URI override - oms-storage.ts: FileStorageManager subdir arg, isolating transient OIDC state - storage.ts: widen loginMethod to email|oidc|google; email now optional - operations.ts: extract showFunding so `fund` and post-login reuse one path This is the same-machine flow (browser and CLI co-located). Remote login over a relay is a follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/commands/operations.ts | 71 ++++++--- .../polygon-agent-cli/src/commands/wallet.ts | 138 +++++++++++++++++- .../src/lib/oidc-callback-server.ts | 118 +++++++++++++++ .../polygon-agent-cli/src/lib/oms-client.ts | 16 ++ .../polygon-agent-cli/src/lib/oms-storage.ts | 8 +- packages/polygon-agent-cli/src/lib/storage.ts | 11 +- 6 files changed, 330 insertions(+), 32 deletions(-) create mode 100644 packages/polygon-agent-cli/src/lib/oidc-callback-server.ts diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index 922837d..47b0478 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -320,6 +320,52 @@ export const balancesCommand: CommandModule = { } }; +// The wallet funding page (Trails on-ramp + swap). Single source of truth so +// the `fund` command and the post-login step show the same thing. +export const FUNDING_URL = 'https://wallet.polygon.technology'; + +/** + * Show the funding step for a wallet: an Ink panel in a TTY, JSON otherwise. + * Reused by the standalone `fund` command and chained after browser login. + * When `openBrowser` is set (and interactive), also open the funding page so the + * user is taken straight there after login — the URL is still shown as fallback. + */ +export async function showFunding( + walletName: string, + walletAddress: string, + chainId = 137, + opts?: { openBrowser?: boolean } +): Promise { + if (opts?.openBrowser && isTTY()) { + try { + const { default: open } = await import('open'); + await open(FUNDING_URL); + } catch { + // open() can fail in headless/odd environments — the URL panel below is the fallback. + } + } + if (isTTY()) { + await inkRender( + React.createElement(FundUI, { walletName, walletAddress, chainId, fundingUrl: FUNDING_URL }) + ); + } else { + console.log( + JSON.stringify( + { + ok: true, + walletName, + walletAddress, + chainId, + fundingUrl: FUNDING_URL, + message: `Visit ${FUNDING_URL} to fund your wallet (${walletAddress}).` + }, + null, + 2 + ) + ); + } +} + // --- fund --- export const fundCommand: CommandModule = { command: 'fund', @@ -336,30 +382,7 @@ export const fundCommand: CommandModule = { ); } - const walletAddress = session.walletAddress; - const chainId = 137; - const fundingUrl = `https://wallet.polygon.technology`; - - if (isTTY()) { - await inkRender( - React.createElement(FundUI, { walletName, walletAddress, chainId, fundingUrl }) - ); - } else { - console.log( - JSON.stringify( - { - ok: true, - walletName, - walletAddress, - chainId, - fundingUrl, - message: `Visit ${fundingUrl} to fund your wallet (${walletAddress}).` - }, - null, - 2 - ) - ); - } + await showFunding(walletName, session.walletAddress); } catch (error) { console.error( JSON.stringify( diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 14fff8a..4ff4310 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -2,7 +2,8 @@ import type { CommandModule } from 'yargs'; import React from 'react'; -import { getOmsClient } from '../lib/oms-client.ts'; +import { startOidcCallbackServer } from '../lib/oidc-callback-server.ts'; +import { getOmsClient, oidcRelayRedirectUri } from '../lib/oms-client.ts'; import { listWallets, deleteWallet, @@ -11,6 +12,7 @@ import { deleteOmsWallet } from '../lib/storage.ts'; import { isTTY, inkRender } from '../ui/render.js'; +import { showFunding } from './operations.ts'; import { WalletListUI, WalletAddressUI } from './wallet-ui.js'; // Compact JSON output for AI agent consumers (single line, no stack traces) @@ -77,6 +79,101 @@ async function handleLogin(argv: LoginArgs): Promise { } } +// --- Subcommand: wallet login-browser (Sequence V3 OIDC browser auth) --- +interface BrowserLoginArgs { + name: string; + provider: string; + port: number; + timeout: number; + force: boolean; + fund: boolean; +} + +async function handleBrowserLogin(argv: BrowserLoginArgs): Promise { + const { name, provider } = argv; + + if (provider !== 'google') { + jsonOut({ + ok: false, + error: `Unsupported provider "${provider}". Only "google" is wired today.` + }); + process.exit(1); + } + + try { + const oms = getOmsClient(name); + + // Short-circuit if already logged in (the SDK restores the session from + // storage on construction). startOidcRedirectAuth would clearSession(), so + // re-login is opt-in via --force. + if (!argv.force && oms.wallet.walletAddress) { + jsonOut({ + ok: true, + walletName: name, + walletAddress: oms.wallet.walletAddress, + alreadyLoggedIn: true + }); + return; + } + + // 1) Stand up the loopback callback server first, so we have the redirectUri + // before asking the SDK to build the auth URL. + const server = await startOidcCallbackServer({ + port: argv.port, + timeoutMs: argv.timeout * 1000 + }); + + try { + // 2) Build the OIDC authorization URL. Google only sees the relay's HTTPS + // callback; our localhost redirectUri rides inside the signed state. + const relay = oidcRelayRedirectUri(); + const { url } = await oms.wallet.startOidcRedirectAuth({ + provider, + redirectUri: server.redirectUri, + ...(relay ? { relayRedirectUri: relay } : {}) + }); + + // 3) Always print the URL (copy-paste fallback if the browser won't open), + // then try to open it. + process.stderr.write(`\nOpen this URL to sign in:\n${url}\n\n`); + try { + const { default: open } = await import('open'); + await open(url); + } catch { + // open() can fail in headless/odd environments — the URL is already printed. + } + if (isTTY()) { + process.stderr.write('Waiting for browser login… (Ctrl-C to cancel)\n'); + } + + // 4) Wait for the relay→localhost callback, then complete the exchange. + const callbackUrl = await server.waitForCallbackUrl; + const result = await oms.wallet.completeOidcRedirectAuth({ callbackUrl }); + const walletAddress = result.walletAddress; + + await saveOmsWalletPointer(name, { + walletAddress, + loginMethod: 'google', + createdAt: new Date().toISOString() + }); + + jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'google' }); + + // Chain the funding step right after a successful login: open the funding + // page in the browser (interactive only) and show the URL panel. Skip with + // --no-fund (e.g. for headless/scripted callers). + if (argv.fund !== false) { + await showFunding(name, walletAddress, 137, { openBrowser: true }); + } + } finally { + server.close(); + } + } catch (error) { + jsonOut({ ok: false, error: (error as Error).message }); + process.exit(1); + } +} + // --- Subcommand: wallet logout --- interface LogoutArgs { name: string; @@ -201,7 +298,7 @@ async function handleRemove(argv: RemoveArgs): Promise { // --- Main wallet command --- export const walletCommand: CommandModule = { command: 'wallet', - describe: 'Manage wallets (login, logout, list, address, remove)', + describe: 'Manage wallets (login, login-browser, logout, list, address, remove)', builder: (yargs) => yargs .command({ @@ -225,6 +322,43 @@ export const walletCommand: CommandModule = { }), handler: (argv) => handleLogin(argv as unknown as LoginArgs) }) + .command({ + command: 'login-browser', + describe: 'Log in via browser (Google) instead of email OTP', + builder: (y) => + y + .option('name', { + type: 'string', + default: 'main', + describe: 'Wallet name' + }) + .option('provider', { + type: 'string', + default: 'google', + describe: 'OIDC provider (only "google" is supported today)' + }) + .option('port', { + type: 'number', + default: 8765, + describe: 'Localhost callback port (must match the relay allowlist; default 8765)' + }) + .option('timeout', { + type: 'number', + default: 180, + describe: 'Seconds to wait for the browser login before giving up' + }) + .option('force', { + type: 'boolean', + default: false, + describe: 'Re-login even if a session already exists' + }) + .option('fund', { + type: 'boolean', + default: true, + describe: 'Show the funding step after login (use --no-fund to skip)' + }), + handler: (argv) => handleBrowserLogin(argv as unknown as BrowserLoginArgs) + }) .command({ command: 'logout', describe: 'Log out and clear the local Sequence V3 session', diff --git a/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts b/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts new file mode 100644 index 0000000..a96ff32 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts @@ -0,0 +1,118 @@ +// Short-lived localhost callback server for the browser OIDC login flow. +// +// The OMS OIDC redirect sends the user to Google; after login the relay bounces +// the browser back to a loopback URL we host here. We capture that single +// callback request, hand the full URL back to the caller (who passes it to +// completeOidcRedirectAuth), serve a "you can close this tab" page, and shut +// down. The server binds to 127.0.0.1 on an ephemeral port and `unref()`s so it +// never keeps the CLI process alive on its own. + +import type { AddressInfo } from 'node:net'; + +import http from 'node:http'; + +export interface OidcCallbackServer { + /** The loopback redirect URI to pass to startOidcRedirectAuth. */ + redirectUri: string; + /** Resolves with the full callback URL once the browser hits /callback. */ + waitForCallbackUrl: Promise; + /** Idempotently stop the server. */ + close(): void; +} + +const SUCCESS_HTML = `Login complete + +

You're signed in

+

Login complete. You can close this tab and return to your terminal.

`; + +const ERROR_HTML = `Login failed + +

Login failed

+

Something went wrong. Return to your terminal for details.

`; + +/** + * Start the loopback callback server. Resolves once it's listening, with the + * derived redirectUri and a promise that fires on the callback. + * + * @param opts.port Explicit port, or 0/undefined for an OS-assigned one. + * @param opts.timeoutMs Reject waitForCallbackUrl if no callback arrives in time. + */ +export function startOidcCallbackServer(opts: { + port?: number; + timeoutMs: number; +}): Promise { + return new Promise((resolveServer, rejectServer) => { + let settled = false; + let resolveUrl!: (url: string) => void; + let rejectUrl!: (err: Error) => void; + const waitForCallbackUrl = new Promise((res, rej) => { + resolveUrl = res; + rejectUrl = rej; + }); + + const server = http.createServer((req, res) => { + const path = (req.url ?? '').split('?')[0]; + // Ignore favicon/prefetch and anything that isn't the callback so a stray + // browser request doesn't prematurely resolve the flow. + if (path !== '/callback') { + res.statusCode = 204; + res.end(); + return; + } + const isError = (req.url ?? '').includes('error='); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/html; charset=utf-8'); + res.end(isError ? ERROR_HTML : SUCCESS_HTML, () => { + // Resolve with the full absolute URL the SDK expects (it parses + // code/state/error from the query string). + const port = (server.address() as AddressInfo).port; + if (!settled) { + settled = true; + resolveUrl(`http://localhost:${port}${req.url}`); + } + close(); + }); + }); + + const timer = setTimeout(() => { + if (!settled) { + settled = true; + rejectUrl(new Error('Browser login timed out. Re-run, or use `wallet login --email`.')); + close(); + } + }, opts.timeoutMs); + + let closed = false; + function close(): void { + if (closed) return; + closed = true; + clearTimeout(timer); + server.close(); + } + + server.on('error', (err) => { + // Surface listen errors (e.g. EADDRINUSE on an explicit --port) clearly. + if (!settled) { + settled = true; + rejectUrl(err); + } + rejectServer(err); + }); + + server.listen(opts.port ?? 0, '127.0.0.1', () => { + const port = (server.address() as AddressInfo).port; + server.unref(); // never block process exit on the listener + resolveServer({ + redirectUri: `http://localhost:${port}/callback`, + waitForCallbackUrl, + close + }); + }); + }); +} diff --git a/packages/polygon-agent-cli/src/lib/oms-client.ts b/packages/polygon-agent-cli/src/lib/oms-client.ts index 93bd8a2..54b799a 100644 --- a/packages/polygon-agent-cli/src/lib/oms-client.ts +++ b/packages/polygon-agent-cli/src/lib/oms-client.ts @@ -32,12 +32,28 @@ export function getOmsClient(walletName: string): OMSClient { ); // SDK 0.1.0-alpha.4: the publishableKey alone identifies the project. + // `redirectAuthStorage` is REQUIRED for the OIDC browser flow: in Node the SDK + // has no sessionStorage to fall back to and throws without it. We back it with + // a separate file store so the transient pending-auth state is isolated from + // the session store (and the email-login/tx paths simply ignore it). const oms = new OMSClient({ publishableKey: cfg.publishableKey, storage: new FileStorageManager(walletName), + redirectAuthStorage: new FileStorageManager(walletName, 'redirect-store'), credentialSigner }); cache.set(walletName, oms); return oms; } + +/** + * The OIDC relay redirect URI. Google only ever sees this (pre-registered) HTTPS + * callback; the relay bounces the auth code back to our localhost. Overridable + * via SEQUENCE_OIDC_RELAY_URI so production can point at a non-staging relay + * without a code change. When unset, the SDK's built-in default is used (pass + * undefined and the provider default applies). + */ +export function oidcRelayRedirectUri(): string | undefined { + return process.env.SEQUENCE_OIDC_RELAY_URI || undefined; +} diff --git a/packages/polygon-agent-cli/src/lib/oms-storage.ts b/packages/polygon-agent-cli/src/lib/oms-storage.ts index ae78df1..7c0dd10 100644 --- a/packages/polygon-agent-cli/src/lib/oms-storage.ts +++ b/packages/polygon-agent-cli/src/lib/oms-storage.ts @@ -25,13 +25,15 @@ function keyToFile(dir: string, key: string): string { /** * Synchronous, encrypted, file-backed StorageManager scoped to one wallet name. - * Each entry is an AES-256-GCM blob written under /store/. + * Each entry is an AES-256-GCM blob written under //. + * `subdir` defaults to 'store' (the session store); the OIDC redirect flow uses + * a separate 'redirect-store' so its transient pending state stays isolated. */ export class FileStorageManager implements StorageManager { private dir: string; - constructor(walletName: string) { - this.dir = path.join(omsWalletDir(walletName), 'store'); + constructor(walletName: string, subdir = 'store') { + this.dir = path.join(omsWalletDir(walletName), subdir); if (!fs.existsSync(this.dir)) fs.mkdirSync(this.dir, { recursive: true, mode: 0o700 }); } diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index b2521a2..1d2a3a0 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -30,11 +30,15 @@ export interface OmsConfig { omsProjectId?: string; } +/** How a wallet session was established. */ +export type OmsLoginMethod = 'email' | 'oidc' | 'google'; + /** Pointer record for an OMS wallet (the SDK persists the real session in its StorageManager). */ export interface OmsWalletPointer { walletAddress: string; - loginMethod: 'email'; - email: string; + loginMethod: OmsLoginMethod; + // Present for email login; OIDC/Google may not always return an email. + email?: string; createdAt: string; } @@ -268,7 +272,8 @@ export async function loadOmsWalletPointer(name: string): Promise Date: Tue, 30 Jun 2026 22:20:44 +0530 Subject: [PATCH 07/79] feat(oidc-relay): add OIDC handoff relay worker for remote CLI login A small Cloudflare Worker + Durable Object that lets the CLI complete browser login from any machine, including a remote server where a localhost callback can't be reached. The browser is redirected to the relay with the OAuth code+state; the CLI polls for them and finishes the exchange itself. The PKCE verifier never leaves the CLI, so the relay alone cannot complete a login. Sessions are keyed by the OIDC state, single-use, with a 10-minute TTL. Not yet wired into the CLI: the --remote poll path lands once Sequence allowlists the relay's /api/oidc/cb as a redirect target. Deploy with `npx wrangler` (kept out of the workspace dep graph to satisfy the repo's trust policy). Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/oidc-relay/package.json | 18 ++++ packages/oidc-relay/src/relay.ts | 170 ++++++++++++++++++++++++++++++ packages/oidc-relay/tsconfig.json | 14 +++ packages/oidc-relay/wrangler.toml | 43 ++++++++ pnpm-lock.yaml | 14 +++ 5 files changed, 259 insertions(+) create mode 100644 packages/oidc-relay/package.json create mode 100644 packages/oidc-relay/src/relay.ts create mode 100644 packages/oidc-relay/tsconfig.json create mode 100644 packages/oidc-relay/wrangler.toml diff --git a/packages/oidc-relay/package.json b/packages/oidc-relay/package.json new file mode 100644 index 0000000..f090f68 --- /dev/null +++ b/packages/oidc-relay/package.json @@ -0,0 +1,18 @@ +{ + "name": "@polygonlabs/oidc-relay", + "version": "0.0.0", + "private": true, + "type": "module", + "description": "Public OIDC handoff relay (Cloudflare Worker) so the CLI can complete browser login from any machine, local or remote.", + "scripts": { + "deploy": "npx -y wrangler@3 deploy", + "deploy:staging": "npx -y wrangler@3 deploy --env staging", + "deploy:production": "npx -y wrangler@3 deploy --env production", + "dev": "npx -y wrangler@3 dev", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20240712.0", + "typescript": "^5.9.3" + } +} diff --git a/packages/oidc-relay/src/relay.ts b/packages/oidc-relay/src/relay.ts new file mode 100644 index 0000000..e1d7267 --- /dev/null +++ b/packages/oidc-relay/src/relay.ts @@ -0,0 +1,170 @@ +// OIDC handoff relay (Cloudflare Worker + Durable Object). +// +// Purpose: let a CLI on ANY machine (including a remote server / openclaw) finish +// a browser OIDC login. Google can only redirect to a fixed public HTTPS URL and +// a localhost callback can't be reached when the browser is on a different +// machine than the CLI. So this relay sits at a public URL: it captures the +// OAuth `code`+`state` when the browser is redirected here, and the CLI POLLS for +// them, so there is no localhost dependency and it works local and remote alike. +// +// Security: the relay only ever sees `code`+`state`. The PKCE `code_verifier` and +// the wallet credential never leave the CLI, so a code alone cannot complete the +// login. Entries are short-lived (TTL) and the result is one-time read. +// +// Sessions are keyed by the OIDC `state` the CLI already holds (returned by +// startOidcRedirectAuth). That keeps the redirect target a single stable URL with +// no dynamic query, so the upstream relay only has to allowlist one path. +// +// Endpoints (all under /api/oidc): +// POST /register { state } (CLI: arm a handoff for this state) +// GET /cb?code&state (or ?error&state) (browser: the redirect lands here) +// GET /poll?state -> { status, code?, state?, error? } (CLI: poll for result) + +const SESSION_TTL_MS = 10 * 60 * 1000; // 10 minutes to complete the login + +interface Env { + OIDC_RELAY: DurableObjectNamespace; +} + +function cors(res: Response): Response { + const h = new Headers(res.headers); + h.set('Access-Control-Allow-Origin', '*'); + h.set('Access-Control-Allow-Methods', 'GET,POST,OPTIONS'); + h.set('Access-Control-Allow-Headers', 'Content-Type'); + return new Response(res.body, { status: res.status, headers: h }); +} +function json(data: unknown, status = 200): Response { + return cors(Response.json(data, { status })); +} + +// `state` is the SDK's base64url-encoded OIDC state. Bound it so a junk query +// can't be used to address arbitrary Durable Objects, and reject anything that +// isn't the shape we expect before using it as a DO name. +function validState(s: string | null): s is string { + return typeof s === 'string' && s.length > 0 && s.length <= 4096 && /^[A-Za-z0-9_-]+$/.test(s); +} + +const DONE_HTML = `Login complete + +

You're signed in

+

Login complete. You can close this tab and return to your terminal.

`; + +const FAIL_HTML = DONE_HTML.replace("You're signed in", 'Login failed').replace( + 'Login complete. You can close this tab and return to your terminal.', + 'Something went wrong. Return to your terminal for details.' +); + +// --- Durable Object: one instance per OIDC `state` --- +export class OidcHandoff { + private state: DurableObjectState; + constructor(state: DurableObjectState) { + this.state = state; + } + + async fetch(request: Request): Promise { + const url = new URL(request.url); + const op = url.pathname; // internal path set by the router below + + if (op === '/register') { + await this.state.storage.put('status', 'pending'); + await this.state.storage.setAlarm(Date.now() + SESSION_TTL_MS); + return new Response(null, { status: 204 }); + } + + if (op === '/capture') { + const code = url.searchParams.get('code'); + const state = url.searchParams.get('state'); + const error = url.searchParams.get('error'); + const status = await this.state.storage.get('status'); + if (!status) return new Response('unknown or expired login', { status: 404 }); + if (error) { + await this.state.storage.put({ status: 'error', error }); + return new Response(FAIL_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); + } + if (!code || !state) return new Response('missing code or state', { status: 400 }); + await this.state.storage.put({ status: 'ready', code, state }); + return new Response(DONE_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); + } + + if (op === '/poll') { + const status = await this.state.storage.get('status'); + if (!status) return Response.json({ status: 'expired' }); + if (status === 'ready') { + const [code, state] = await Promise.all([ + this.state.storage.get('code'), + this.state.storage.get('state') + ]); + await this.state.storage.deleteAll(); // one-time read + return Response.json({ status: 'ready', code, state }); + } + if (status === 'error') { + const error = await this.state.storage.get('error'); + await this.state.storage.deleteAll(); + return Response.json({ status: 'error', error }); + } + return Response.json({ status: 'pending' }); + } + + return new Response('not found', { status: 404 }); + } + + // TTL: drop the entry if the login never completes. + async alarm(): Promise { + await this.state.storage.deleteAll(); + } +} + +// --- Worker entry / router --- +// Cloudflare Workers require a default export (the module's fetch handler), so +// the repo-wide "prefer named exports" rule doesn't apply to this entry point. +// eslint-disable-next-line import-x/no-default-export +export default { + async fetch(request: Request, env: Env): Promise { + const url = new URL(request.url); + if (request.method === 'OPTIONS') return cors(new Response(null, { status: 204 })); + + // POST /api/oidc/register { state } -> arm the DO for this state. + // The CLI already holds `state` from startOidcRedirectAuth, so there is no + // separate request id: the state IS the handle. + if (request.method === 'POST' && url.pathname === '/api/oidc/register') { + let body: unknown; + try { + body = await request.json(); + } catch { + return json({ error: 'invalid json' }, 400); + } + const state = (body as { state?: unknown } | null)?.state; + if (!validState(typeof state === 'string' ? state : null)) { + return json({ error: 'invalid state' }, 400); + } + const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state as string)); + await stub.fetch(new Request('https://do/register', { method: 'POST' })); + return cors(new Response(null, { status: 204 })); + } + + // GET /api/oidc/cb?code=...&state=... (the browser's redirect target). + // Serves HTML to the browser, so it is NOT CORS-wrapped. + if (request.method === 'GET' && url.pathname === '/api/oidc/cb') { + const state = url.searchParams.get('state'); + if (!validState(state)) return new Response('missing or invalid state', { status: 400 }); + const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state)); + const inner = new URL('https://do/capture'); + inner.search = url.search; // forward code/state/error + return stub.fetch(new Request(inner.toString())); + } + + // GET /api/oidc/poll?state=... (CLI polls for the result) + if (request.method === 'GET' && url.pathname === '/api/oidc/poll') { + const state = url.searchParams.get('state'); + if (!validState(state)) return json({ status: 'error', error: 'invalid state' }, 400); + const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state)); + const res = await stub.fetch(new Request('https://do/poll')); + return cors(res); + } + + return new Response('not found', { status: 404 }); + } +}; diff --git a/packages/oidc-relay/tsconfig.json b/packages/oidc-relay/tsconfig.json new file mode 100644 index 0000000..2e58d63 --- /dev/null +++ b/packages/oidc-relay/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "es2022", + "moduleResolution": "bundler", + "lib": ["es2023"], + "types": ["@cloudflare/workers-types"], + "strict": true, + "skipLibCheck": true, + "noEmit": true, + "esModuleInterop": true + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/oidc-relay/wrangler.toml b/packages/oidc-relay/wrangler.toml new file mode 100644 index 0000000..e78f4ca --- /dev/null +++ b/packages/oidc-relay/wrangler.toml @@ -0,0 +1,43 @@ +name = "oidc-relay" +compatibility_date = "2024-09-23" +workers_dev = true +send_metrics = false + +main = "src/relay.ts" + +[[durable_objects.bindings]] +name = "OIDC_RELAY" +class_name = "OidcHandoff" + +[[migrations]] +tag = "v1" +new_classes = ["OidcHandoff"] + +# Staging: a workers.dev URL is fine to start; swap to a custom domain for prod. +[env.staging] +name = "oidc-relay-staging" +workers_dev = true + +[[env.staging.durable_objects.bindings]] +name = "OIDC_RELAY" +class_name = "OidcHandoff" + +[[env.staging.migrations]] +tag = "v1" +new_classes = ["OidcHandoff"] + +[env.production] +name = "oidc-relay-production" +workers_dev = false +# Set a custom domain for production and have Sequence allowlist its /api/oidc/cb +# as a redirect target on their relay (Google only ever sees Sequence's relay, so +# no Google-client change is needed). Same allowlist add as localhost:8765 was. +# routes = [{ pattern = "oidc-relay.polygon.technology", custom_domain = true }] + +[[env.production.durable_objects.bindings]] +name = "OIDC_RELAY" +class_name = "OidcHandoff" + +[[env.production.migrations]] +tag = "v1" +new_classes = ["OidcHandoff"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a91d46..a7c8c2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,6 +55,15 @@ importers: specifier: ^5.8.3 version: 5.9.3 + packages/oidc-relay: + devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20240712.0 + version: 4.20260629.1 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + packages/polygon-agent-cli: dependencies: '@0xsequence/network': @@ -212,6 +221,9 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@cloudflare/workers-types@4.20260629.1': + resolution: {integrity: sha512-5vq2ErIFVRSQ8Dcw5YOeEoBdZBudqBjHFKTWD3SBGiJR5hD1+/86aRUV/DTpEK9sXXCGOTGgpWBGlPSlW7djVg==} + '@commitlint/cli@20.4.2': resolution: {integrity: sha512-YjYSX2yj/WsVoxh9mNiymfFS2ADbg2EK4+1WAsMuckwKMCqJ5PDG0CJU/8GvmHWcv4VRB2V02KqSiecRksWqZQ==} engines: {node: '>=v18'} @@ -4830,6 +4842,8 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@cloudflare/workers-types@4.20260629.1': {} + '@commitlint/cli@20.4.2(@types/node@22.19.13)(typescript@5.9.3)': dependencies: '@commitlint/format': 20.4.0 From 66ef7f3c96dbf5dbe0a3cb3d7430b56167749c23 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 00:44:51 +0530 Subject: [PATCH 08/79] ci: add Cloudflare deploy workflow for the oidc-relay worker --- .github/workflows/deploy-oidc-relay.yml | 72 +++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/deploy-oidc-relay.yml diff --git a/.github/workflows/deploy-oidc-relay.yml b/.github/workflows/deploy-oidc-relay.yml new file mode 100644 index 0000000..8673108 --- /dev/null +++ b/.github/workflows/deploy-oidc-relay.yml @@ -0,0 +1,72 @@ +name: Deploy OIDC Relay to Cloudflare + +# Mirrors the connector-ui deploy: merge to `staging-branch` -> deploy the staging +# worker; merge to `main` -> deploy production. The relay has no build step and +# no runtime deps, so we deploy it straight with wrangler (run via npx because +# wrangler is intentionally NOT a workspace dependency — see packages/oidc-relay). +# Reuses the same Cloudflare credentials as connector-ui (CF_WORKER_* org/env +# secrets) and the same staging/production GitHub environments. + +on: + push: + branches: + - main + - staging-branch + paths: + - 'packages/oidc-relay/**' + - '.github/workflows/deploy-oidc-relay.yml' + workflow_dispatch: + inputs: + environment: + description: Environment to deploy + type: choice + options: + - staging + - production + default: staging + +permissions: + contents: read + +jobs: + deploy-staging: + name: Deploy (staging) + if: github.ref == 'refs/heads/staging-branch' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'staging') + runs-on: ubuntu-latest + environment: staging + defaults: + run: + working-directory: packages/oidc-relay + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version-file: .nvmrc + + - name: Deploy to staging + run: npx -y wrangler@3 deploy --env staging + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CF_WORKER_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_WORKER_ACCOUNT_ID }} + + deploy-production: + name: Deploy (production) + if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'production') + runs-on: ubuntu-latest + environment: production + defaults: + run: + working-directory: packages/oidc-relay + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version-file: .nvmrc + + - name: Deploy to production + run: npx -y wrangler@3 deploy --env production + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CF_WORKER_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_WORKER_ACCOUNT_ID }} From 2d4bf7ab3a55e0d16fb8d7a5181c4de51f63cbc6 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 11:24:49 +0530 Subject: [PATCH 09/79] ci: deploy oidc-relay from the staging branch --- .github/workflows/deploy-oidc-relay.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-oidc-relay.yml b/.github/workflows/deploy-oidc-relay.yml index 8673108..86f1a6e 100644 --- a/.github/workflows/deploy-oidc-relay.yml +++ b/.github/workflows/deploy-oidc-relay.yml @@ -1,6 +1,6 @@ name: Deploy OIDC Relay to Cloudflare -# Mirrors the connector-ui deploy: merge to `staging-branch` -> deploy the staging +# Mirrors the connector-ui deploy: merge to `staging` -> deploy the staging # worker; merge to `main` -> deploy production. The relay has no build step and # no runtime deps, so we deploy it straight with wrangler (run via npx because # wrangler is intentionally NOT a workspace dependency — see packages/oidc-relay). @@ -11,7 +11,7 @@ on: push: branches: - main - - staging-branch + - staging paths: - 'packages/oidc-relay/**' - '.github/workflows/deploy-oidc-relay.yml' @@ -31,7 +31,7 @@ permissions: jobs: deploy-staging: name: Deploy (staging) - if: github.ref == 'refs/heads/staging-branch' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'staging') + if: github.ref == 'refs/heads/staging' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'staging') runs-on: ubuntu-latest environment: staging defaults: From 39f8867d055a95b46bb28e9d741a6e259756bc14 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 11:33:34 +0530 Subject: [PATCH 10/79] feat(oidc-relay): add /health liveness endpoint --- packages/oidc-relay/src/relay.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/oidc-relay/src/relay.ts b/packages/oidc-relay/src/relay.ts index e1d7267..57c38db 100644 --- a/packages/oidc-relay/src/relay.ts +++ b/packages/oidc-relay/src/relay.ts @@ -126,6 +126,11 @@ export default { const url = new URL(request.url); if (request.method === 'OPTIONS') return cors(new Response(null, { status: 204 })); + // GET / or /health -> liveness check (confirm the worker is deployed/reachable). + if (request.method === 'GET' && (url.pathname === '/' || url.pathname === '/health')) { + return json({ ok: true, service: 'oidc-relay' }); + } + // POST /api/oidc/register { state } -> arm the DO for this state. // The CLI already holds `state` from startOidcRedirectAuth, so there is no // separate request id: the state IS the handle. From 6e9d8586aa04b30c3b1e1ecc08872162d03fac11 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 19:08:12 +0530 Subject: [PATCH 11/79] feat(cli): add --remote browser login via the OIDC handoff relay --- .changeset/oms-browser-login.md | 2 +- .../polygon-agent-cli/src/commands/wallet.ts | 143 ++++++++++++------ .../src/lib/oidc-relay-client.ts | 64 ++++++++ .../polygon-agent-cli/src/lib/oms-client.ts | 13 ++ 4 files changed, 171 insertions(+), 51 deletions(-) create mode 100644 packages/polygon-agent-cli/src/lib/oidc-relay-client.ts diff --git a/.changeset/oms-browser-login.md b/.changeset/oms-browser-login.md index 4129062..17afc58 100644 --- a/.changeset/oms-browser-login.md +++ b/.changeset/oms-browser-login.md @@ -4,4 +4,4 @@ Add `wallet login-browser`: browser-based wallet login via Google OIDC (PKCE redirect flow) as an alternative to email OTP, with the funding step chained after a successful login. Sessions persist identically to email login, so downstream commands resume unchanged. -Also adds a self-hosted OIDC handoff relay worker (`packages/oidc-relay`) that will let the CLI complete browser login from a remote machine where a localhost callback can't be reached. The CLI `--remote` path that consumes it lands in a follow-up, once the relay's callback URL is allowlisted upstream. +Supports both a local loopback callback and a `--remote` path for headless/remote hosts where the browser can't reach localhost, backed by a self-hosted OIDC handoff relay worker (`packages/oidc-relay`, deployed to Cloudflare via GitHub Actions). The relay only ever carries the OAuth code+state; the PKCE verifier never leaves the CLI. diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 4ff4310..7c651e7 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -3,7 +3,8 @@ import type { CommandModule } from 'yargs'; import React from 'react'; import { startOidcCallbackServer } from '../lib/oidc-callback-server.ts'; -import { getOmsClient, oidcRelayRedirectUri } from '../lib/oms-client.ts'; +import { registerRelaySession, pollRelayForCallback } from '../lib/oidc-relay-client.ts'; +import { getOmsClient, oidcRelayRedirectUri, oidcRelayBaseUrl } from '../lib/oms-client.ts'; import { listWallets, deleteWallet, @@ -87,6 +88,72 @@ interface BrowserLoginArgs { timeout: number; force: boolean; fund: boolean; + remote: boolean; + relayUrl?: string; +} + +// Print the auth URL (copy-paste fallback) and try to open it in a browser. +async function announceAuthUrl(url: string): Promise { + process.stderr.write(`\nOpen this URL to sign in:\n${url}\n\n`); + try { + const { default: open } = await import('open'); + await open(url); + } catch { + // open() can fail in headless/remote environments — the URL is already printed. + } + if (isTTY()) { + process.stderr.write('Waiting for browser login… (Ctrl-C to cancel)\n'); + } +} + +// Drive the OIDC redirect flow and return the callback URL to complete with. +// Two paths, both ending in a URL carrying ?code&state: +// - remote: start OIDC pointed at OUR public relay's /api/oidc/cb, register the +// handoff for this `state`, open the URL, then POLL the relay for code+state. +// Works when the browser and CLI are on different machines. +// - local: a short-lived loopback server; the relay bounces the browser to it. +// Google only ever sees the Sequence relay (relayRedirectUri); our redirectUri +// rides inside the signed state either way. +async function obtainBrowserCallbackUrl( + oms: ReturnType, + provider: 'google', + argv: BrowserLoginArgs +): Promise { + const seqRelay = oidcRelayRedirectUri(); + + if (argv.remote) { + const relayBase = argv.relayUrl?.replace(/\/+$/, '') || oidcRelayBaseUrl(); + if (!relayBase) { + throw new Error( + 'Remote login needs a relay URL. Set POLYGON_AGENT_OIDC_RELAY or pass --relay-url.' + ); + } + const { url, state } = await oms.wallet.startOidcRedirectAuth({ + provider, + redirectUri: `${relayBase}/api/oidc/cb`, + ...(seqRelay ? { relayRedirectUri: seqRelay } : {}) + }); + await registerRelaySession(relayBase, state); + await announceAuthUrl(url); + const cb = await pollRelayForCallback(relayBase, state, { timeoutMs: argv.timeout * 1000 }); + return `${relayBase}/api/oidc/cb?code=${encodeURIComponent(cb.code)}&state=${encodeURIComponent(cb.state)}`; + } + + const server = await startOidcCallbackServer({ + port: argv.port, + timeoutMs: argv.timeout * 1000 + }); + try { + const { url } = await oms.wallet.startOidcRedirectAuth({ + provider, + redirectUri: server.redirectUri, + ...(seqRelay ? { relayRedirectUri: seqRelay } : {}) + }); + await announceAuthUrl(url); + return await server.waitForCallbackUrl; + } finally { + server.close(); + } } async function handleBrowserLogin(argv: BrowserLoginArgs): Promise { @@ -116,57 +183,23 @@ async function handleBrowserLogin(argv: BrowserLoginArgs): Promise { return; } - // 1) Stand up the loopback callback server first, so we have the redirectUri - // before asking the SDK to build the auth URL. - const server = await startOidcCallbackServer({ - port: argv.port, - timeoutMs: argv.timeout * 1000 - }); - - try { - // 2) Build the OIDC authorization URL. Google only sees the relay's HTTPS - // callback; our localhost redirectUri rides inside the signed state. - const relay = oidcRelayRedirectUri(); - const { url } = await oms.wallet.startOidcRedirectAuth({ - provider, - redirectUri: server.redirectUri, - ...(relay ? { relayRedirectUri: relay } : {}) - }); - - // 3) Always print the URL (copy-paste fallback if the browser won't open), - // then try to open it. - process.stderr.write(`\nOpen this URL to sign in:\n${url}\n\n`); - try { - const { default: open } = await import('open'); - await open(url); - } catch { - // open() can fail in headless/odd environments — the URL is already printed. - } - if (isTTY()) { - process.stderr.write('Waiting for browser login… (Ctrl-C to cancel)\n'); - } - - // 4) Wait for the relay→localhost callback, then complete the exchange. - const callbackUrl = await server.waitForCallbackUrl; - const result = await oms.wallet.completeOidcRedirectAuth({ callbackUrl }); - const walletAddress = result.walletAddress; + const callbackUrl = await obtainBrowserCallbackUrl(oms, provider, argv); + const result = await oms.wallet.completeOidcRedirectAuth({ callbackUrl }); + const walletAddress = result.walletAddress; - await saveOmsWalletPointer(name, { - walletAddress, - loginMethod: 'google', - createdAt: new Date().toISOString() - }); + await saveOmsWalletPointer(name, { + walletAddress, + loginMethod: 'google', + createdAt: new Date().toISOString() + }); - jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'google' }); + jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'google' }); - // Chain the funding step right after a successful login: open the funding - // page in the browser (interactive only) and show the URL panel. Skip with - // --no-fund (e.g. for headless/scripted callers). - if (argv.fund !== false) { - await showFunding(name, walletAddress, 137, { openBrowser: true }); - } - } finally { - server.close(); + // Chain the funding step right after a successful login: open the funding + // page in the browser (interactive only) and show the URL panel. Skip with + // --no-fund (e.g. for headless/scripted callers). + if (argv.fund !== false) { + await showFunding(name, walletAddress, 137, { openBrowser: true }); } } catch (error) { jsonOut({ ok: false, error: (error as Error).message }); @@ -340,7 +373,7 @@ export const walletCommand: CommandModule = { .option('port', { type: 'number', default: 8765, - describe: 'Localhost callback port (must match the relay allowlist; default 8765)' + describe: 'Localhost callback port for the local (non-remote) flow; default 8765' }) .option('timeout', { type: 'number', @@ -356,6 +389,16 @@ export const walletCommand: CommandModule = { type: 'boolean', default: true, describe: 'Show the funding step after login (use --no-fund to skip)' + }) + .option('remote', { + type: 'boolean', + default: false, + describe: + 'Remote/headless: use the public OIDC relay + polling instead of a localhost callback (needs POLYGON_AGENT_OIDC_RELAY or --relay-url)' + }) + .option('relay-url', { + type: 'string', + describe: 'Relay base URL for --remote (overrides POLYGON_AGENT_OIDC_RELAY)' }), handler: (argv) => handleBrowserLogin(argv as unknown as BrowserLoginArgs) }) diff --git a/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts b/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts new file mode 100644 index 0000000..1c98fa1 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts @@ -0,0 +1,64 @@ +// Client for the public OIDC handoff relay (packages/oidc-relay), used by the +// `wallet login-browser --remote` path. When the CLI runs on a machine whose +// localhost the browser can't reach (a remote server / openclaw), we can't use a +// loopback callback. Instead we register a handoff keyed by the OIDC `state`, the +// browser is redirected to the relay's public callback, and the CLI polls for the +// captured `code`+`state`. +// +// The relay only ever sees `code`+`state`; the PKCE verifier and wallet credential +// never leave this process, so the relay alone cannot complete a login. + +interface RelayCallback { + code: string; + state: string; +} + +const sleep = (ms: number): Promise => new Promise((resolve) => setTimeout(resolve, ms)); + +/** + * Arm a handoff for this OIDC `state` so the relay tracks it (and /poll returns + * `pending` until the browser callback lands). Call right after startOidcRedirectAuth. + */ +export async function registerRelaySession(relayBase: string, state: string): Promise { + const res = await fetch(`${relayBase}/api/oidc/register`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ state }) + }); + if (!res.ok && res.status !== 204) { + throw new Error( + `Relay register failed (${res.status}). Check POLYGON_AGENT_OIDC_RELAY / --relay-url.` + ); + } +} + +/** + * Poll the relay until the browser callback arrives, then return the `code`+`state`. + * Throws on provider error, an expired/unknown session, or timeout. + */ +export async function pollRelayForCallback( + relayBase: string, + state: string, + opts: { timeoutMs: number; intervalMs?: number } +): Promise { + const intervalMs = opts.intervalMs ?? 2000; + const deadline = Date.now() + opts.timeoutMs; + while (Date.now() < deadline) { + const res = await fetch(`${relayBase}/api/oidc/poll?state=${encodeURIComponent(state)}`); + if (!res.ok) throw new Error(`Relay poll failed (${res.status})`); + const data = (await res.json()) as { + status: string; + code?: string; + state?: string; + error?: string; + }; + if (data.status === 'ready') { + if (!data.code || !data.state) throw new Error('Relay returned "ready" without code/state'); + return { code: data.code, state: data.state }; + } + if (data.status === 'error') throw new Error(data.error || 'Login failed at the provider'); + if (data.status === 'expired') throw new Error('Relay session expired before login completed'); + await sleep(intervalMs); + } + throw new Error('Timed out waiting for browser login. Re-run, or use `wallet login --email`.'); +} diff --git a/packages/polygon-agent-cli/src/lib/oms-client.ts b/packages/polygon-agent-cli/src/lib/oms-client.ts index 54b799a..df4900d 100644 --- a/packages/polygon-agent-cli/src/lib/oms-client.ts +++ b/packages/polygon-agent-cli/src/lib/oms-client.ts @@ -57,3 +57,16 @@ export function getOmsClient(walletName: string): OMSClient { export function oidcRelayRedirectUri(): string | undefined { return process.env.SEQUENCE_OIDC_RELAY_URI || undefined; } + +/** + * Base URL of OUR OIDC handoff relay (packages/oidc-relay), used by the `--remote` + * browser-login path when a localhost callback can't be reached. This is a + * DIFFERENT relay from oidcRelayRedirectUri(): that one overrides the Sequence + * relay Google redirects to; this is our public bounce target the CLI polls. + * Read from POLYGON_AGENT_OIDC_RELAY; the `--relay-url` flag overrides per-run. + * Trailing slash trimmed so callers can append `/api/oidc/...` cleanly. + */ +export function oidcRelayBaseUrl(): string | undefined { + const v = process.env.POLYGON_AGENT_OIDC_RELAY; + return v ? v.replace(/\/+$/, '') : undefined; +} From efc12b6696e3dbea82738ecc4a258aa124003188 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 19:08:41 +0530 Subject: [PATCH 12/79] fix(oidc-relay): serve a neutral page when the callback is reused --- packages/oidc-relay/src/relay.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/oidc-relay/src/relay.ts b/packages/oidc-relay/src/relay.ts index 57c38db..4452461 100644 --- a/packages/oidc-relay/src/relay.ts +++ b/packages/oidc-relay/src/relay.ts @@ -57,6 +57,14 @@ const FAIL_HTML = DONE_HTML.replace("You're signed in", 'Login failed').replace( 'Something went wrong. Return to your terminal for details.' ); +// Shown when the callback is hit again after the CLI already consumed the +// one-time session (a browser refresh/duplicate) or after it expired. Login is +// driven from the terminal, so this is neutral, not an error. +const CLOSE_HTML = DONE_HTML.replace("You're signed in", 'All set').replace( + 'Login complete. You can close this tab and return to your terminal.', + 'This sign-in link has already been used. Check your terminal — you can close this tab.' +); + // --- Durable Object: one instance per OIDC `state` --- export class OidcHandoff { private state: DurableObjectState; @@ -79,7 +87,11 @@ export class OidcHandoff { const state = url.searchParams.get('state'); const error = url.searchParams.get('error'); const status = await this.state.storage.get('status'); - if (!status) return new Response('unknown or expired login', { status: 404 }); + // No session: the CLI already consumed it (refresh/duplicate callback) or it + // expired. Serve a neutral page instead of a scary error — the terminal is + // the source of truth for success/failure. + if (!status) + return new Response(CLOSE_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); if (error) { await this.state.storage.put({ status: 'error', error }); return new Response(FAIL_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); From 1634f3373b9003ed9e483a70178076b938fb4799 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 20:49:49 +0530 Subject: [PATCH 13/79] refactor(cli)!: make Google browser login the only wallet login (remove email OTP) --- .changeset/oms-browser-login.md | 6 +- CLAUDE.md | 6 +- packages/polygon-agent-cli/README.md | 22 +-- .../skills/polygon-defi/SKILL.md | 8 +- .../polygon-agent-cli/src/commands/wallet.ts | 94 +------------ packages/polygon-agent-cli/src/lib/storage.ts | 11 +- skills/SKILL.md | 30 ++--- skills/polygon-agent-cli/SKILL.md | 126 +++++++----------- skills/polygon-defi/SKILL.md | 8 +- skills/polygon-discovery/SKILL.md | 2 +- skills/polygon-polymarket/SKILL.md | 4 +- 11 files changed, 103 insertions(+), 214 deletions(-) diff --git a/.changeset/oms-browser-login.md b/.changeset/oms-browser-login.md index 17afc58..4678b97 100644 --- a/.changeset/oms-browser-login.md +++ b/.changeset/oms-browser-login.md @@ -1,7 +1,7 @@ --- -"@polygonlabs/agent-cli": minor +"@polygonlabs/agent-cli": major --- -Add `wallet login-browser`: browser-based wallet login via Google OIDC (PKCE redirect flow) as an alternative to email OTP, with the funding step chained after a successful login. Sessions persist identically to email login, so downstream commands resume unchanged. +Wallet login is now Google browser login only. `wallet login` opens a Google sign-in in the browser (OIDC + PKCE) and creates/unlocks the Sequence V3 embedded wallet, with the funding step chained after. Add `--remote` for headless/remote hosts where the browser and CLI are on different machines — it uses a self-hosted OIDC handoff relay (`packages/oidc-relay`, deployed to Cloudflare via GitHub Actions) that only ever carries the OAuth code+state; the PKCE verifier never leaves the CLI. -Supports both a local loopback callback and a `--remote` path for headless/remote hosts where the browser can't reach localhost, backed by a self-hosted OIDC handoff relay worker (`packages/oidc-relay`, deployed to Cloudflare via GitHub Actions). The relay only ever carries the OAuth code+state; the PKCE verifier never leaves the CLI. +BREAKING: the email-OTP login (`wallet login --email` / `--code`) has been removed so there is a single login flow. Sessions and all downstream commands are unchanged, and existing sessions keep working until they expire. diff --git a/CLAUDE.md b/CLAUDE.md index 9866e3a..4a771de 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,8 +13,8 @@ This is a pnpm workspace monorepo. The primary package is: - `packages/polygon-agent-cli/` — CLI tool for on-chain agent operations on Polygon Wallets use the Sequence V3 embedded-wallet model (`@0xsequence/typescript-sdk`, -`OMSClient`): the CLI authenticates directly via email OTP (`wallet login`) and -holds the credential on disk. There is no browser-approval connector UI or relay. +`OMSClient`): the CLI authenticates via Google browser login (`wallet login`) and +holds the credential on disk. Static assets (ABI JSON in `contracts/`, Claude skills in `skills/`) are published with the CLI package but are not source code. @@ -34,6 +34,6 @@ published with the CLI package but are not source code. ## Wallet auth (Sequence V3 / OMS) -- `polygon-agent wallet login --email ` — email OTP; start+complete happen in one process (the pending-auth commitment is in-memory only). Session persists ~1 week under `~/.polygon-agent/oms//`. +- `polygon-agent wallet login` — logs in with Google in the browser; prints/opens a Google sign-in URL, and once you sign in the embedded wallet is created/unlocked. Add `--remote` for headless hosts (uses a public OIDC relay; needs `POLYGON_AGENT_OIDC_RELAY` or `--relay-url`). Other flags: `--name ` (default "main"), `--no-fund`, `--force`. Session persists ~1 week under `~/.polygon-agent/oms//`. - Requires `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID` (from Sequence Builder), via env or `builder.json` (set with `setup --oms-publishable-key/--oms-project-id`). - `lib/tx-dispatch.ts` `runTx` is the single tx primitive (wraps `runOmsTx`). All commands submit through it. diff --git a/packages/polygon-agent-cli/README.md b/packages/polygon-agent-cli/README.md index 8855276..81c82a0 100644 --- a/packages/polygon-agent-cli/README.md +++ b/packages/polygon-agent-cli/README.md @@ -32,7 +32,7 @@ Polygon Agent CLI gives AI agents everything they need to operate onchain: -- **Create and manage wallets** email-login embedded smart wallets — no private keys to manage and no keys exposed to your agent's context. +- **Create and manage wallets** Google-login embedded smart wallets, no private keys to manage and no keys exposed to your agent's context. - **Send tokens, swap, bridge or any action** pay in any token for any onchain action. Built-in swapping, bridging, deposits, DeFi primitives, and more. - **Register agent identity** and build reputation via ERC-8004 - **Integrated APIs** query cross-chain balances, transaction history and or query nodes via dedicated RPCs @@ -77,10 +77,10 @@ Once installed via skills or npm, run the following. If running from source, pre # 1. Setup: save your Sequence Builder credentials (persisted to ~/.polygon-agent/builder.json) polygon-agent setup --oms-publishable-key --oms-project-id -# 2. Log in to your embedded wallet via email OTP (start + complete in one invocation) -polygon-agent wallet login --email you@example.com -# A one-time code is emailed to you; enter it at the prompt, -# or pipe it in: echo 123456 | polygon-agent wallet login --email you@example.com +# 2. Log in to your embedded wallet with Google in the browser +polygon-agent wallet login +# Opens a Google sign-in URL; after you sign in, the embedded wallet is created/unlocked. +# On a headless/remote host add --remote (uses a public OIDC relay). # 3. Fund the wallet polygon-agent fund @@ -108,11 +108,11 @@ The CLI is built on three pillars to enable end to end onchain payments with you | Capability | What it does | CLI command | | ----------- | ------------------------------------------------------------------------------------------- | ------------------------------- | -| **Wallets** | Email-login embedded smart wallets (Account Abstraction), chain-agnostic address | `wallet login`, `wallet list` | +| **Wallets** | Google-login embedded smart wallets (Account Abstraction), chain-agnostic address | `wallet login`, `wallet list` | | **RPCs** | Load balanced RPCs cross-chain for onchain interactions and node queries | Used internally by all commands | | **Indexer** | Token balance queries and transaction history across ERC-20/721/1155 | `balances` | -Wallets are created and unlocked via email OTP. The embedded wallet can call any contract and spend any amount it holds — there is no contract whitelist or per-token spend limit. The wallet address is the same across every supported chain, and sessions last about a week before you re-run `wallet login`. +Wallets are created and unlocked via Google browser login. The embedded wallet can call any contract and spend any amount it holds; there is no contract whitelist or per-token spend limit. The wallet address is the same across every supported chain, and sessions last about a week before you re-run `wallet login`. ### Trails: Swapping, Bridging, and DeFi Actions @@ -161,7 +161,7 @@ See [`SKILL.md`](skills/SKILL.md) for the full agent-consumable reference and [` ```bash polygon-agent setup --oms-publishable-key --oms-project-id # Save Builder credentials -polygon-agent wallet login --email [--name ] [--code ] # Log in via email OTP +polygon-agent wallet login [--name ] [--remote] [--no-fund] [--force] # Log in with Google in the browser (add --remote for headless hosts) polygon-agent wallet logout [--name ] # Log out of a wallet polygon-agent wallet list # Show all wallets polygon-agent wallet address [--name ] # Show wallet address (same on every chain) @@ -228,7 +228,7 @@ export SEQUENCE_OMS_PROJECT_ID= ## Security -- **No keys to manage.** The embedded wallet is unlocked via email OTP — there are no private keys exposed to the agent's context. Credentials are stored in `~/.polygon-agent/`. +- **No keys to manage.** The embedded wallet is unlocked via Google browser login; there are no private keys exposed to the agent's context. Credentials are stored in `~/.polygon-agent/`. - **Sessions expire.** Wallet sessions last about a week, after which you re-run `wallet login`. --- @@ -238,8 +238,8 @@ export SEQUENCE_OMS_PROJECT_ID= | Issue | Fix | | ------------------------------------------- | ------------------------------------------------ | | Missing Builder credentials | Run `setup` with `--oms-publishable-key` / `--oms-project-id`, or export `SEQUENCE_PUBLISHABLE_KEY` / `SEQUENCE_OMS_PROJECT_ID` | -| Not logged in | Run `wallet login --email ` | -| Session expired | Re-run `wallet login --email ` | +| Not logged in | Run `polygon-agent wallet login` | +| Session expired | Run `polygon-agent wallet login` | | Insufficient funds / can't pay gas | Run `fund`; for a native-only wallet pass `--prefer-native-fee` on `call` | | Transaction failed | Omit `--broadcast` to dry-run first | diff --git a/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md b/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md index 6b970a1..2481e8b 100644 --- a/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md +++ b/packages/polygon-agent-cli/skills/polygon-defi/SKILL.md @@ -10,10 +10,10 @@ description: DeFi operations on Polygon using the Polygon Agent CLI. Covers same **Before any DeFi operation, the wallet must be logged in.** The embedded wallet can call any contract and spend any amount it holds — there is no contract whitelist and no per-token spend limit, so no special setup is needed for deposits, swaps, or withdrawals. If the user is not logged in, log in now: ```bash -polygon-agent wallet login --email you@example.com +polygon-agent wallet login ``` -This starts and completes an email OTP flow in a single invocation: a one-time code is sent to the address and entered at the interactive prompt (or piped in, e.g. `echo 123456 | polygon-agent wallet login --email you@example.com`). The wallet address is the same across all chains. Sessions last about a week — if calls start failing with an expired-session error, just re-run `wallet login`. +This logs in with Google in the browser: the command prints/opens a Google sign-in URL, and after you sign in the embedded wallet is created/unlocked. On a headless/remote host add `--remote` (uses a public OIDC relay). The wallet address is the same across all chains. Sessions last about a week; if calls start failing with an expired-session error, just re-run `wallet login`. --- @@ -205,8 +205,8 @@ polygon-agent call --to 0x... --data 0x... --prefer-native-fee --broadcast | Error | Cause | Fix | |-------|-------|-----| -| `Not logged in` / no wallet found | No active wallet session | Run `polygon-agent wallet login --email ` | -| Session expired | Sessions last about a week | Re-run `polygon-agent wallet login --email ` | +| `Not logged in` / no wallet found | No active wallet session | Run `polygon-agent wallet login` | +| Session expired | Sessions last about a week | Run `polygon-agent wallet login` | | `Insufficient : wallet has X` | Balance too low for the requested deposit amount | Run `polygon-agent balances` and adjust `--amount` | | `Unable to pay gas` / `Wallet has no POL for gas` | Wallet can't cover the relayer fee in USDC or POL | Fund the wallet with a little POL or USDC; for a native-only wallet, pass `--prefer-native-fee` on `call` | | `Protocol X not yet supported` | Trails returned a protocol other than aave/morpho | Use `polygon-agent swap` to obtain the yield-bearing token manually | diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 7c651e7..98f4de4 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -21,67 +21,8 @@ function jsonOut(data: Record): void { console.log(JSON.stringify(data)); } -// Read a line from stdin (for interactive OTP entry). -function readLine(promptText: string): Promise { - return new Promise((resolve) => { - process.stderr.write(promptText); - const onData = (chunk: Buffer) => { - process.stdin.off('data', onData); - process.stdin.pause(); - resolve(chunk.toString('utf8').trim()); - }; - process.stdin.resume(); - process.stdin.on('data', onData); - }); -} - -// --- Subcommand: wallet login (Sequence V3 email auth) --- +// --- Subcommand: wallet login (Google OIDC browser flow — the only login) --- interface LoginArgs { - name: string; - email: string; - code?: string; -} - -async function handleLogin(argv: LoginArgs): Promise { - const name = argv.name; - const email = argv.email; - - try { - if (!email) throw new Error('--email is required'); - - const oms = getOmsClient(name); - - // startEmailAuth + completeEmailAuth must happen in the same process — the - // pending-auth commitment is held in memory, not persisted. So we send the - // OTP, then obtain the code (either --code or an interactive stdin prompt). - await oms.wallet.startEmailAuth({ email }); - - let code = argv.code; - if (!code) { - process.stderr.write(`OTP sent to ${email}. `); - code = await readLine('Enter the 6-digit code: '); - } - if (!code) throw new Error('No OTP code provided'); - - const result = await oms.wallet.completeEmailAuth({ code }); - const walletAddress = result.walletAddress; - - await saveOmsWalletPointer(name, { - walletAddress, - loginMethod: 'email', - email, - createdAt: new Date().toISOString() - }); - - jsonOut({ ok: true, walletName: name, walletAddress, loginMethod: 'email' }); - } catch (error) { - jsonOut({ ok: false, error: (error as Error).message }); - process.exit(1); - } -} - -// --- Subcommand: wallet login-browser (Sequence V3 OIDC browser auth) --- -interface BrowserLoginArgs { name: string; provider: string; port: number; @@ -117,7 +58,7 @@ async function announceAuthUrl(url: string): Promise { async function obtainBrowserCallbackUrl( oms: ReturnType, provider: 'google', - argv: BrowserLoginArgs + argv: LoginArgs ): Promise { const seqRelay = oidcRelayRedirectUri(); @@ -156,7 +97,7 @@ async function obtainBrowserCallbackUrl( } } -async function handleBrowserLogin(argv: BrowserLoginArgs): Promise { +async function handleLogin(argv: LoginArgs): Promise { const { name, provider } = argv; if (provider !== 'google') { @@ -276,7 +217,7 @@ async function handleAddress(argv: AddressArgs): Promise { try { const pointer = await loadOmsWalletPointer(name); if (!pointer) { - throw new Error(`Wallet not found: ${name}. Run: polygon-agent wallet login --email `); + throw new Error(`Wallet not found: ${name}. Run: polygon-agent wallet login`); } if (!isTTY()) { @@ -331,33 +272,12 @@ async function handleRemove(argv: RemoveArgs): Promise { // --- Main wallet command --- export const walletCommand: CommandModule = { command: 'wallet', - describe: 'Manage wallets (login, login-browser, logout, list, address, remove)', + describe: 'Manage wallets (login, logout, list, address, remove)', builder: (yargs) => yargs .command({ command: 'login', - describe: 'Log in with email (Sequence V3 embedded wallet)', - builder: (y) => - y - .option('name', { - type: 'string', - default: 'main', - describe: 'Wallet name' - }) - .option('email', { - type: 'string', - demandOption: true, - describe: 'Email address to authenticate with' - }) - .option('code', { - type: 'string', - describe: 'OTP code (only if obtained out-of-band in this same session)' - }), - handler: (argv) => handleLogin(argv as unknown as LoginArgs) - }) - .command({ - command: 'login-browser', - describe: 'Log in via browser (Google) instead of email OTP', + describe: 'Log in with Google in the browser (add --remote for headless/remote hosts)', builder: (y) => y .option('name', { @@ -400,7 +320,7 @@ export const walletCommand: CommandModule = { type: 'string', describe: 'Relay base URL for --remote (overrides POLYGON_AGENT_OIDC_RELAY)' }), - handler: (argv) => handleBrowserLogin(argv as unknown as BrowserLoginArgs) + handler: (argv) => handleLogin(argv as unknown as LoginArgs) }) .command({ command: 'logout', diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index 1d2a3a0..451299d 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -30,15 +30,13 @@ export interface OmsConfig { omsProjectId?: string; } -/** How a wallet session was established. */ -export type OmsLoginMethod = 'email' | 'oidc' | 'google'; +/** How a wallet session was established. Browser (Google OIDC) is the only login flow. */ +export type OmsLoginMethod = 'google'; /** Pointer record for an OMS wallet (the SDK persists the real session in its StorageManager). */ export interface OmsWalletPointer { walletAddress: string; loginMethod: OmsLoginMethod; - // Present for email login; OIDC/Google may not always return an email. - email?: string; createdAt: string; } @@ -272,8 +270,9 @@ export async function loadOmsWalletPointer(name: string): Promise` | Primary spending wallet | YES | +| Embedded wallet (V3) | `wallet login` | Primary spending wallet | YES | -The wallet address is deterministic per email identity and the **same across all EVM chains**. Sessions last ~1 week before re-login is needed. +The wallet address is the **same across all EVM chains**. Sessions last ~1 week before re-login is needed. ## Environment Variables @@ -65,10 +65,11 @@ polygon-agent setup --oms-publishable-key --oms-project-id # → stores publishableKey + omsProjectId to ~/.polygon-agent/builder.json # → all subsequent commands auto-load them from disk — no export needed -# Step 2: Log in (email OTP — start + code entry happen in ONE invocation) -polygon-agent wallet login --email you@example.com -# → sends a 6-digit code to the email -# → enter the code at the prompt (or pipe it: `echo 123456 | polygon-agent wallet login --email ...`) +# Step 2: Log in with Google in the browser +polygon-agent wallet login +# → prints/opens a Google sign-in URL +# → after the user signs in, the embedded wallet is created/unlocked +# → on a headless/remote host add --remote (uses a public OIDC relay) # → session saved to ~/.polygon-agent/oms/main/; prints the walletAddress # Step 3: Fund wallet @@ -101,7 +102,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin > **IMPORTANT — x402 calls:** If the user asks to use x402 to fetch data (Twitter/X profiles, web search, news, AI images, code review, etc.), follow these steps in order before making any request: > > 1. Fetch and read the discovery skill: `GET https://agentconnect.polygon.technology/polygon-discovery/SKILL.md` -> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key --oms-project-id ` (if not already done), then `polygon-agent wallet login --email ` and enter the 6-digit code when prompted, then fund the wallet before continuing. +> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key --oms-project-id ` (if not already done), then `polygon-agent wallet login` and sign in with Google in the browser, then fund the wallet before continuing. > 3. Run `polygon-agent balances` — confirm USDC is available before proceeding; x402 calls will fail with an EOA funding error if the wallet is empty > > Do not guess endpoints or search the web for x402 providers. The discovery skill documents the correct, working endpoints with exact URL formats. @@ -120,9 +121,9 @@ polygon-agent setup [--name ] [--force] Valid `--chain` values for operations: `polygon` (default/mainnet), `amoy` (Polygon testnet), `mainnet` (Ethereum), `arbitrum`, `optimism`, `base`. ERC-8004 agent operations only support `polygon`. The embedded wallet address is the same on every chain. ```bash -polygon-agent wallet login --email [--name ] [--code ] -# start + complete happen in ONE invocation (the OTP is tied to this process). -# Interactive: prompts for the code. Automation: `echo | polygon-agent wallet login --email `. +polygon-agent wallet login [--name ] [--remote] [--no-fund] [--force] +# Logs in with Google in the browser: prints/opens a Google sign-in URL; after sign-in the wallet is created/unlocked. +# Add --remote on headless/remote hosts (uses a public OIDC relay; needs POLYGON_AGENT_OIDC_RELAY or --relay-url). polygon-agent wallet logout [--name ] # clears the local session polygon-agent wallet list polygon-agent wallet address [--name ] @@ -201,9 +202,8 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | Issue | Fix | |-------|-----| | `OMS credentials not configured` | Run `setup --oms-publishable-key --oms-project-id ` (or set `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID`) | -| `Wallet not found` | `wallet list`, then `wallet login --email ` | -| Session expired (`OMS_SESSION_EXPIRED`) | Re-run `wallet login --email ` (~1-week lifetime) | -| `No pending email auth attempt` | The OTP must be entered in the same `wallet login` invocation that sent it — re-run `wallet login` | +| `Wallet not found` | `wallet list`, then `polygon-agent wallet login` | +| Session expired (`OMS_SESSION_EXPIRED`) | Run `polygon-agent wallet login` (~1-week lifetime) | | `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has POL or a fee token. For native-only wallets, add `--prefer-native-fee` on `call` | | Wrong recipient in Trails widget | Run `polygon-agent fund` (do not construct the URL manually) | | `x402-pay`: no 402 response | Endpoint doesn't require x402 payment, or URL is wrong | @@ -215,6 +215,6 @@ CLI commands output JSON (non-TTY). After running a command, always render the r ~/.polygon-agent/ ├── .encryption-key # AES-256-GCM key (auto-generated, 0600) ├── builder.json # publishableKey, omsProjectId, polymarket/EOA keys (encrypted) -├── wallets/.json # OMS wallet pointer: walletAddress, loginMethod, email +├── wallets/.json # OMS wallet pointer: walletAddress, loginMethod └── oms// # OMS SDK session storage + encrypted credential key ``` diff --git a/skills/polygon-agent-cli/SKILL.md b/skills/polygon-agent-cli/SKILL.md index 091e05f..74eba8c 100644 --- a/skills/polygon-agent-cli/SKILL.md +++ b/skills/polygon-agent-cli/SKILL.md @@ -25,29 +25,35 @@ npm install -g @polygonlabs/agent-cli@latest # upgrade ## Architecture +The CLI uses the **Sequence V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). The agent authenticates with **Google browser login** via `wallet login`; the command prints/opens a Google sign-in URL, and once the user signs in the wallet is created/unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. + | Wallet | Created by | Purpose | Fund? | |--------|-----------|---------|-------| -| EOA | `setup` | Auth with Sequence Builder | NO | -| Ecosystem Wallet | `wallet create` | Primary spending wallet | YES | +| Embedded wallet (V3) | `wallet login` | Primary spending wallet | YES | + +The wallet address is the **same across all EVM chains**. Sessions last ~1 week before re-login is needed. ## Environment Variables -### Access key — one key, many names +### OMS credentials (required) -`SEQUENCE_PROJECT_ACCESS_KEY`, `SEQUENCE_INDEXER_ACCESS_KEY`, and `TRAILS_API_KEY` are **all the same key** — the Sequence project access key created during `setup`. The CLI treats them as aliases and falls back through all of them automatically. +`wallet login` and on-chain reads need two values from the [Sequence Builder](https://sequence.build) dashboard: -After `setup` runs the key is stored in `~/.polygon-agent/builder.json`. Every CLI invocation bootstraps it into the environment — no `export` is needed. In a fresh agent session with no environment variables set, simply run commands and the CLI reads credentials from disk. +| Variable | Description | +|----------|-------------| +| `SEQUENCE_PUBLISHABLE_KEY` | OMS publishable key (safe in client) | +| `SEQUENCE_OMS_PROJECT_ID` | OMS project id (e.g. `proj_...`) | -Only set these manually to override the stored value (e.g. to point at a different project): +Set them via env, or persist once with `setup` so every command reads them from `~/.polygon-agent/builder.json`: ```bash -export SEQUENCE_PROJECT_ACCESS_KEY= # also covers TRAILS_API_KEY and indexer calls +polygon-agent setup --oms-publishable-key --oms-project-id ``` ### Optional overrides | Variable | Default | |----------|---------| -| `SEQUENCE_ECOSYSTEM_CONNECTOR_URL` | `https://agentconnect.polygon.technology` | -| `SEQUENCE_DAPP_ORIGIN` | Same as connector URL origin | +| `POLYGON_AGENT_OIDC_RELAY` | Public OIDC relay URL used by `wallet login --remote` on headless hosts | +| `SEQUENCE_PROJECT_ACCESS_KEY` | Used only as the Trails API key for DeFi earn-pool lookups (optional) | | `TRAILS_TOKEN_MAP_JSON` | Token-directory lookup | | `POLYGON_AGENT_DEBUG_FETCH` | Off — logs HTTP to `~/.polygon-agent/fetch-debug.log` | | `POLYGON_AGENT_DEBUG_FEE` | Off — dumps fee options to stderr | @@ -55,26 +61,17 @@ export SEQUENCE_PROJECT_ACCESS_KEY= # also covers TRAILS_API_KEY and index ## Complete Setup Flow ```bash -# Step 1: Setup (creates EOA + Sequence project, stores access key to disk) -polygon-agent setup --name "MyAgent" -# → saves privateKey (not shown again), eoaAddress, accessKey to ~/.polygon-agent/builder.json -# → all subsequent commands auto-load the access key from disk — no export needed - -# Step 2: Create ecosystem wallet (opens browser, waits for 6-digit code) -# Aave V3 Pool is auto-whitelisted in all sessions. For Morpho or other DeFi vaults, -# add --contract flags as needed. -polygon-agent wallet create --usdc-limit 50 --native-limit 5 \ - --contract 0xc2132D05D31c914a87C6611C10748AEb04B58e8F \ - --contract 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619 \ - --contract 0x781fb7f6d845e3be129289833b04d43aa8558c42 \ - --contract 0xf5c81d25ee174d83f1fd202ca94ae6070d073ccf \ - --contract 0x3f33f9f7e2d7cfbcbdf8ea8b870a6e3d449664c2 -# → opens https://agentconnect.polygon.technology/link?rid=&... -# → user approves in browser, browser shows a 6-digit code -# → enter the 6-digit code in the terminal when prompted -# → session saved to ~/.polygon-agent/wallets/main.json -# → notify the user and send them to https://agentconnect.polygon.technology/?rid= -# so they can fund their wallet with access to the session +# Step 1: Save OMS credentials (from the Sequence Builder dashboard) +polygon-agent setup --oms-publishable-key --oms-project-id +# → stores publishableKey + omsProjectId to ~/.polygon-agent/builder.json +# → all subsequent commands auto-load them from disk — no export needed + +# Step 2: Log in with Google in the browser +polygon-agent wallet login +# → prints/opens a Google sign-in URL +# → after the user signs in, the embedded wallet is created/unlocked +# → on a headless/remote host add --remote (uses a public OIDC relay) +# → session saved to ~/.polygon-agent/oms/main/; prints the walletAddress # Step 3: Fund wallet polygon-agent fund @@ -106,7 +103,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin > **IMPORTANT — x402 calls:** If the user asks to use x402 to fetch data (Twitter/X profiles, web search, news, AI images, code review, etc.), follow these steps in order before making any request: > > 1. Fetch and read the discovery skill: `GET https://agentconnect.polygon.technology/polygon-discovery/SKILL.md` -> 2. Run `polygon-agent wallet list` — if no wallet exists, run through the wallet creation flow: `polygon-agent setup` (if not already done), then `polygon-agent wallet create` to open a browser session and establish a secure encrypted wallet session. Enter the 6-digit code when prompted, then fund the wallet before continuing. +> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key --oms-project-id ` (if not already done), then `polygon-agent wallet login` and sign in with Google in the browser, then fund the wallet before continuing. > 3. Run `polygon-agent balances` — confirm USDC is available before proceeding; x402 calls will fail with an EOA funding error if the wallet is empty > > Do not guess endpoints or search the web for x402 providers. The discovery skill documents the correct, working endpoints with exact URL formats. @@ -117,20 +114,18 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin ### Setup ```bash -polygon-agent setup --name [--force] +polygon-agent setup [--name ] [--force] + [--oms-publishable-key ] [--oms-project-id ] # save OMS credentials ``` ### Wallet -Valid `--chain` values: `polygon` (default/mainnet), `amoy` (Polygon testnet), `mainnet` (Ethereum), `arbitrum`, `optimism`, `base`. ERC-8004 agent operations only support `polygon`. +Valid `--chain` values for operations: `polygon` (default/mainnet), `amoy` (Polygon testnet), `mainnet` (Ethereum), `arbitrum`, `optimism`, `base`. ERC-8004 agent operations only support `polygon`. The embedded wallet address is the same on every chain. ```bash -polygon-agent wallet create [--name ] [--chain polygon] [--timeout ] [--print-url] - [--native-limit ] [--usdc-limit ] [--usdt-limit ] - [--token-limit ] # repeatable - [--usdc-to --usdc-amount ] # one-off scoped transfer - [--contract ] # whitelist contract (repeatable) -polygon-agent wallet import --code <6-digit-code> --rid [--name ] -polygon-agent wallet import --ciphertext '|@' [--name ] # legacy +polygon-agent wallet login [--name ] [--remote] [--no-fund] [--force] +# Logs in with Google in the browser: prints/opens a Google sign-in URL; after sign-in the wallet is created/unlocked. +# Add --remote on headless/remote hosts (uses a public OIDC relay; needs POLYGON_AGENT_OIDC_RELAY or --relay-url). +polygon-agent wallet logout [--name ] # clears the local session polygon-agent wallet list polygon-agent wallet address [--name ] polygon-agent wallet remove [--name ] @@ -166,35 +161,17 @@ polygon-agent agent feedback --agent-id --value [--tag1 ] [--tag ## Key Behaviors - **Dry-run by default** — all write commands require `--broadcast` to execute -- **Smart defaults** — `--wallet main`, `--chain polygon`, auto-wait on `wallet create` +- **Smart defaults** — `--wallet main`, `--chain polygon` - **`balances --chains`** — comma-separated chains (max 20); two or more return JSON with `multiChain: true` and a `chains` array (same wallet address on each) -- **Fee preference** — auto-selects USDC over native POL when both available +- **Fee preference** — auto-selects USDC over native POL when both available; the relayer pays gas in whichever fee token the wallet can afford - **`fund`** — returns `https://wallet.polygon.technology` as the `fundingUrl`. Always run `polygon-agent fund` to get the URL and wallet address — never hardcode or construct manually. -- **`deposit`** — picks highest-TVL pool via Trails `getEarnPools` and deposits directly. Aave V3 Pool (`0x794a61358d6845594f94dc1db02a252b5b4814ad`) is auto-whitelisted in all sessions. Full deposit reference: https://agentconnect.polygon.technology/polygon-defi/SKILL.md +- **`deposit`** — picks highest-TVL pool via Trails `getEarnPools` and deposits directly. Full deposit reference: https://agentconnect.polygon.technology/polygon-defi/SKILL.md - **Gas reserve** — when using `deposit` or any command that spends tokens, always reserve at least 0.1 USDC or 0.1 POL in the wallet for gas. Never attempt to spend the full balance. The `deposit` command enforces a 0.1 reserve automatically, but the agent must apply the same rule when constructing amounts for `send`, `swap`, or direct contract calls. -- **`withdraw`** — `--position` = aToken or ERC-4626 vault; `--amount` = `max` or underlying units (Aave / vault). Dry-run JSON includes `poolAddress` / `vault`. Broadcast needs session on the **same chain** as `--chain`, with pool/vault + underlying token whitelisted where the relayer touches them +- **`withdraw`** — `--position` = aToken or ERC-4626 vault; `--amount` = `max` or underlying units (Aave / vault). Dry-run JSON includes `poolAddress` / `vault`. - **`x402-pay`** — probes endpoint for 402, smart wallet funds builder EOA with exact token amount, EOA signs EIP-3009 payment. Chain auto-detected from 402 response - **`send-native --direct`** — bypasses ValueForwarder contract for direct EOA transfer -- **Session permissions** — without `--usdc-limit` etc., session gets bare-bones defaults and may not transact -- **Session expiry** — 6 months from creation -- **One-pass session setup** — if the user's intent involves DeFi (deposit, yield, swap, Aave, Morpho), include any additional contracts (Morpho vaults etc.) in the initial `wallet create` call. Never create a bare session and then ask the user to re-approve when a deposit is later attempted. - -## Wallet Creation Flow (v2 Relay) - -`wallet create` uses a Cloudflare Durable Object relay and a 6-digit out-of-band code — no cloudflared tunnel required. The browser encrypts the approved session with an X25519 key negotiated via the relay; the 6-digit code is the decryption key entered in the terminal. - -**`--print-url` flag:** Use this in headless or non-interactive environments (CI, remote shells) where `wallet create` can't block waiting for the code. The CLI prints the approval URL and exits immediately. Complete the flow separately: -```bash -polygon-agent wallet import --code <6-digit-code> --rid -``` - -## CRITICAL: Wallet Approval URL - -When `wallet create` outputs a URL in the `url` or `approvalUrl` field, send the **complete, untruncated URL** to the user. The URL contains the relay request ID required for session approval. - -- Do NOT shorten, summarize, or add `...` to the URL -- Do NOT split the URL across multiple messages -- Output the raw URL exactly as returned by the CLI +- **No permission scoping** — the V3 embedded wallet can call any contract and spend any amount it holds; there are no per-contract whitelists or spend limits. Guard spending in agent logic, not at the wallet layer. +- **Session expiry** — ~1 week from login; on expiry, re-run `wallet login` ## Presenting Results to the User @@ -208,7 +185,7 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | `deposit` | Summary: amount, asset, protocol, pool address. If broadcast, show tx hash + explorer link. | | `withdraw` | Summary: `kind` (aave / erc4626), position, amount, pool or vault. If broadcast, show tx hash + explorer link. | | `fund` | Show the `fundingUrl` as a clickable link with a brief instruction to open it. | -| `wallet create` / `wallet list` | Wallet name, truncated address, chain in a small table or bullet list. | +| `wallet login` / `wallet list` | Wallet name, truncated address, chain in a small table or bullet list. | | `agent register` | Show agent name and tx hash as a code span with Polygonscan link. Remind user to retrieve `agentId` from the Registered event on the Logs tab. | | `agent wallet` | Show `agentId`, wallet address, and whether a wallet is set. | | `agent metadata` | Show `agentId`, key, and decoded value. | @@ -224,17 +201,10 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | Issue | Fix | |-------|-----| -| `Builder configured already` | Add `--force` | -| `Missing SEQUENCE_PROJECT_ACCESS_KEY` | Run `setup` first | -| `Missing wallet` | `wallet list`, re-run `wallet create` | -| `Session expired` | Re-run `wallet create` (6-month expiry) | -| `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has funds | -| `Timed out waiting for wallet approval` | Add `--timeout 600` | -| `Invalid code: hash mismatch` | Wrong 6-digit code entered — retry (3 attempts allowed) | -| `Relay request not found` | Session expired or already used — re-run `wallet create` (or `wallet create --print-url`) | -| Deposit session rejected | Re-create wallet with `--contract --contract ` (both required: token approve + pool call) | -| `withdraw` / broadcast: wrong chain or session rejects | Use `wallet create --chain ` and `--contract` for pool/vault + underlying ERC-20 on that chain; omit tight `--usdc-limit` if it blocks fee transfers | -| `Stored explicit session is missing pk` | Re-link: `wallet import --code …` after `wallet create` | +| `OMS credentials not configured` | Run `setup --oms-publishable-key --oms-project-id ` (or set `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID`) | +| `Wallet not found` | `wallet list`, then `polygon-agent wallet login` | +| Session expired (`OMS_SESSION_EXPIRED`) | Run `polygon-agent wallet login` (~1-week lifetime) | +| `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has POL or a fee token. For native-only wallets, add `--prefer-native-fee` on `call` | | Wrong recipient in Trails widget | Run `polygon-agent fund` (do not construct the URL manually) | | `x402-pay`: no 402 response | Endpoint doesn't require x402 payment, or URL is wrong | | `x402-pay`: payment token mismatch | Chain/token in the 402 response differs from wallet — check `--wallet` points to the right chain | @@ -244,7 +214,7 @@ CLI commands output JSON (non-TTY). After running a command, always render the r ``` ~/.polygon-agent/ ├── .encryption-key # AES-256-GCM key (auto-generated, 0600) -├── builder.json # EOA privateKey (encrypted), eoaAddress, accessKey, projectId -├── wallets/.json # walletAddress, session, chainId, chain -└── requests/.json # Pending wallet creation requests (deleted after successful import) +├── builder.json # publishableKey, omsProjectId (encrypted) +├── wallets/.json # OMS wallet pointer: walletAddress, loginMethod +└── oms// # OMS SDK session storage + encrypted credential key ``` diff --git a/skills/polygon-defi/SKILL.md b/skills/polygon-defi/SKILL.md index f8bcb5c..71eeae9 100644 --- a/skills/polygon-defi/SKILL.md +++ b/skills/polygon-defi/SKILL.md @@ -10,10 +10,10 @@ description: DeFi operations on Polygon using the Polygon Agent CLI. Covers same **Before any DeFi operation, the wallet must be logged in.** The embedded wallet can call any contract and spend any amount it holds — there is no contract whitelist and no per-token spend limit, so no special setup is needed for deposits, swaps, or withdrawals. If the user is not logged in, log in now: ```bash -polygon-agent wallet login --email you@example.com +polygon-agent wallet login ``` -This starts and completes an email OTP flow in a single invocation: a one-time code is sent to the address and entered at the interactive prompt (or piped in, e.g. `echo 123456 | polygon-agent wallet login --email you@example.com`). The wallet address is the same across all chains. Sessions last about a week — if calls start failing with an expired-session error, just re-run `wallet login`. +This logs in with Google in the browser: the command prints/opens a Google sign-in URL, and after you sign in the embedded wallet is created/unlocked. On a headless/remote host add `--remote` (uses a public OIDC relay). The wallet address is the same across all chains. Sessions last about a week; if calls start failing with an expired-session error, just re-run `wallet login`. --- @@ -205,8 +205,8 @@ polygon-agent call --to 0x... --data 0x... --prefer-native-fee --broadcast | Error | Cause | Fix | |-------|-------|-----| -| `Not logged in` / no wallet found | No active wallet session | Run `polygon-agent wallet login --email ` | -| Session expired | Sessions last about a week | Re-run `polygon-agent wallet login --email ` | +| `Not logged in` / no wallet found | No active wallet session | Run `polygon-agent wallet login` | +| Session expired | Sessions last about a week | Run `polygon-agent wallet login` | | `Insufficient : wallet has X` | Balance too low for the requested deposit amount | Run `polygon-agent balances` and adjust `--amount` | | `Unable to pay gas` / `Wallet has no POL for gas` | Wallet can't cover the relayer fee in USDC or POL | Fund the wallet with a little POL or USDC; for a native-only wallet, pass `--prefer-native-fee` on `call` | | `Protocol X not yet supported` | Trails returned a protocol other than aave/morpho | Use `polygon-agent swap` to obtain the yield-bearing token manually | diff --git a/skills/polygon-discovery/SKILL.md b/skills/polygon-discovery/SKILL.md index 7e43a5f..a33d315 100644 --- a/skills/polygon-discovery/SKILL.md +++ b/skills/polygon-discovery/SKILL.md @@ -25,7 +25,7 @@ polygon-agent wallet list **If no wallet is listed**, log in before proceeding: 1. `polygon-agent setup --oms-publishable-key --oms-project-id ` — saves OMS credentials (from the Sequence Builder dashboard) -2. `polygon-agent wallet login --email ` — email OTP; enter the 6-digit code when prompted +2. `polygon-agent wallet login` — logs in with Google in the browser; sign in when the Google URL opens (add `--remote` on headless hosts) 3. `polygon-agent wallet address` — get the address, then fund it (`polygon-agent fund`) 4. `polygon-agent balances` — confirm USDC is available before calling any x402 endpoint diff --git a/skills/polygon-polymarket/SKILL.md b/skills/polygon-polymarket/SKILL.md index 71932cf..fa419fd 100644 --- a/skills/polygon-polymarket/SKILL.md +++ b/skills/polygon-polymarket/SKILL.md @@ -335,8 +335,8 @@ When deciding whether to sell: | `Market has no tokenIds` | Closed market | Check `endDate` — market resolved | | `orderStatus: "unmatched"` on FOK | No liquidity at market price | Try `--fak` for partial fill, or `--price 0.x` for limit order | | `invalid amount for a marketable BUY order ($X), min size: $1` | Amount below CLOB minimum | Use at least $1. If pUSD was already funded, retry with `--skip-fund` | -| `Wallet not found: main` | Not logged in | Run `polygon-agent wallet login --email ` | -| Session expired (`OMS_SESSION_EXPIRED`) | Login session lapsed (~1 week) | Re-run `polygon-agent wallet login --email ` | +| `Wallet not found: main` | Not logged in | Run `polygon-agent wallet login` | +| Session expired (`OMS_SESSION_EXPIRED`) | Login session lapsed (~1 week) | Run `polygon-agent wallet login` | | Approvals tx reverts after V2 migration | V1 approvals — wrong exchange contracts | Re-run `polygon-agent polymarket approve --broadcast` for V2 contracts | --- From 9723bc6924c7ce46754ca6d052110dbbece7172c Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Wed, 1 Jul 2026 21:37:20 +0530 Subject: [PATCH 14/79] feat(cli): open funding page for humans after login, stay CLI-only when headless --- .changeset/oms-browser-login.md | 4 +- .../src/commands/operations.ts | 59 +++++++------------ .../src/commands/polymarket.ts | 4 +- .../polygon-agent-cli/src/commands/wallet.ts | 2 +- .../src/lib/oidc-callback-server.ts | 2 +- .../src/lib/oidc-relay-client.ts | 2 +- packages/polygon-agent-cli/src/lib/oms-tx.ts | 4 +- 7 files changed, 29 insertions(+), 48 deletions(-) diff --git a/.changeset/oms-browser-login.md b/.changeset/oms-browser-login.md index 4678b97..10e3a9f 100644 --- a/.changeset/oms-browser-login.md +++ b/.changeset/oms-browser-login.md @@ -2,6 +2,8 @@ "@polygonlabs/agent-cli": major --- -Wallet login is now Google browser login only. `wallet login` opens a Google sign-in in the browser (OIDC + PKCE) and creates/unlocks the Sequence V3 embedded wallet, with the funding step chained after. Add `--remote` for headless/remote hosts where the browser and CLI are on different machines — it uses a self-hosted OIDC handoff relay (`packages/oidc-relay`, deployed to Cloudflare via GitHub Actions) that only ever carries the OAuth code+state; the PKCE verifier never leaves the CLI. +Wallet login is now Google browser login only. `wallet login` opens a Google sign-in in the browser (OIDC + PKCE) and creates/unlocks the Sequence V3 embedded wallet. Add `--remote` for headless/remote hosts where the browser and CLI are on different machines — it uses a self-hosted OIDC handoff relay (`packages/oidc-relay`, deployed to Cloudflare via GitHub Actions) that only ever carries the OAuth code+state; the PKCE verifier never leaves the CLI. + +The funding step is chained after a successful login: on a human's machine (including under Claude Code or another harness) it opens the funding page (`wallet.polygon.technology`) in the browser; on a headless/remote host it just returns the funding URL + wallet address on the CLI. Skip it with `--no-fund`. BREAKING: the email-OTP login (`wallet login --email` / `--code`) has been removed so there is a single login flow. Sessions and all downstream commands are unchanged, and existing sessions keep working until they expire. diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index 47b0478..b755eba 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -204,9 +204,7 @@ export const balancesCommand: CommandModule = { try { const pointer = await loadOmsWalletPointer(walletName); if (!pointer) { - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); } const walletAddress = pointer.walletAddress; @@ -266,9 +264,7 @@ export const balancesCommand: CommandModule = { try { const pointer = await loadOmsWalletPointer(walletName); if (!pointer) { - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); } const chainSpec = (argv.chain as string) || 'polygon'; @@ -334,14 +330,18 @@ export async function showFunding( walletName: string, walletAddress: string, chainId = 137, - opts?: { openBrowser?: boolean } + opts?: { openBrowser?: boolean; remote?: boolean } ): Promise { - if (opts?.openBrowser && isTTY()) { + // Human path (local terminal, or under Claude Code / a harness where stdout is + // piped so there is no TTY): open the funding page. Headless or --remote (the + // browser is on another machine): skip it and just surface the URL + address on + // the CLI. open() no-ops/throws on a GUI-less host, so attempting it is safe. + if (opts?.openBrowser && !opts?.remote) { try { const { default: open } = await import('open'); await open(FUNDING_URL); } catch { - // open() can fail in headless/odd environments — the URL panel below is the fallback. + // open() can fail on a headless host — the URL/panel below is the fallback. } } if (isTTY()) { @@ -357,7 +357,7 @@ export async function showFunding( walletAddress, chainId, fundingUrl: FUNDING_URL, - message: `Visit ${FUNDING_URL} to fund your wallet (${walletAddress}).` + message: `Fund wallet ${walletAddress} at ${FUNDING_URL} (send POL or USDC to that address).` }, null, 2 @@ -377,12 +377,10 @@ export const fundCommand: CommandModule = { try { const session = await loadOmsWalletPointer(walletName); if (!session) { - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); } - await showFunding(walletName, session.walletAddress); + await showFunding(walletName, session.walletAddress, 137, { openBrowser: true }); } catch (error) { console.error( JSON.stringify( @@ -496,9 +494,7 @@ async function handleSendNative(argv: { }> { const session = await loadOmsWalletPointer(walletName); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const network = resolveNetwork((argv.chain as string) || 'polygon'); const decimals = network.nativeToken?.decimals ?? 18; @@ -535,9 +531,7 @@ async function handleSendNative(argv: { try { const session = await loadOmsWalletPointer(walletName); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const network = resolveNetwork((argv.chain as string) || 'polygon'); const decimals = network.nativeToken?.decimals ?? 18; @@ -689,9 +683,7 @@ async function handleSendToken(argv: { }> { const session = await loadOmsWalletPointer(walletName); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const network = resolveNetwork((argv.chain as string) || 'polygon'); let token = tokenAddress; @@ -838,10 +830,7 @@ async function handleCall(argv: { } const session = await loadOmsWalletPointer(walletName); - if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + if (!session) throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const network = resolveNetwork(argv.chain || 'polygon'); const decimals = network.nativeToken?.decimals ?? 18; @@ -955,9 +944,7 @@ export const swapCommand: CommandModule = { try { const session = await loadOmsWalletPointer(walletName); if (!session) { - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); } const originNetwork = resolveNetwork((argv.chain as string) || 'polygon'); @@ -1185,9 +1172,7 @@ export const depositCommand: CommandModule = { try { const session = await loadOmsWalletPointer(walletName); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const network = resolveNetwork((argv.chain as string) || 'polygon'); const { chainId } = network; @@ -1622,9 +1607,7 @@ export const withdrawCommand: CommandModule = { try { const session = await loadOmsWalletPointer(walletName); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const network = resolveNetwork((argv.chain as string) || 'polygon'); const { chainId } = network; @@ -1986,9 +1969,7 @@ export const x402PayCommand: CommandModule = { loadBuilderConfig() ]); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); if (!builderConfig?.privateKey) throw new Error('Builder EOA not found. Run: polygon-agent setup'); diff --git a/packages/polygon-agent-cli/src/commands/polymarket.ts b/packages/polygon-agent-cli/src/commands/polymarket.ts index 4f14b00..1d234c2 100644 --- a/packages/polygon-agent-cli/src/commands/polymarket.ts +++ b/packages/polygon-agent-cli/src/commands/polymarket.ts @@ -325,9 +325,7 @@ async function handleClobBuy(argv: { loadPolymarketKey() ]); if (!session) - throw new Error( - `Wallet not found: ${walletName}. Run: polygon-agent wallet login --email ` - ); + throw new Error(`Wallet not found: ${walletName}. Run: polygon-agent wallet login`); const { privateKeyToAccount } = await import('viem/accounts'); const account = privateKeyToAccount(privateKey as `0x${string}`); diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 98f4de4..019a471 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -140,7 +140,7 @@ async function handleLogin(argv: LoginArgs): Promise { // page in the browser (interactive only) and show the URL panel. Skip with // --no-fund (e.g. for headless/scripted callers). if (argv.fund !== false) { - await showFunding(name, walletAddress, 137, { openBrowser: true }); + await showFunding(name, walletAddress, 137, { openBrowser: true, remote: argv.remote }); } } catch (error) { jsonOut({ ok: false, error: (error as Error).message }); diff --git a/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts b/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts index a96ff32..122a95e 100644 --- a/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts +++ b/packages/polygon-agent-cli/src/lib/oidc-callback-server.ts @@ -83,7 +83,7 @@ export function startOidcCallbackServer(opts: { const timer = setTimeout(() => { if (!settled) { settled = true; - rejectUrl(new Error('Browser login timed out. Re-run, or use `wallet login --email`.')); + rejectUrl(new Error('Browser login timed out. Re-run, or use `wallet login`.')); close(); } }, opts.timeoutMs); diff --git a/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts b/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts index 1c98fa1..3fb7a62 100644 --- a/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts +++ b/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts @@ -60,5 +60,5 @@ export async function pollRelayForCallback( if (data.status === 'expired') throw new Error('Relay session expired before login completed'); await sleep(intervalMs); } - throw new Error('Timed out waiting for browser login. Re-run, or use `wallet login --email`.'); + throw new Error('Timed out waiting for browser login. Re-run, or use `wallet login`.'); } diff --git a/packages/polygon-agent-cli/src/lib/oms-tx.ts b/packages/polygon-agent-cli/src/lib/oms-tx.ts index cec3d82..420e70c 100644 --- a/packages/polygon-agent-cli/src/lib/oms-tx.ts +++ b/packages/polygon-agent-cli/src/lib/oms-tx.ts @@ -72,7 +72,7 @@ export async function runOmsTx(params: OmsTxParams): Promise { const walletAddress = oms.wallet.walletAddress; if (!walletAddress) { throw new Error( - `No active session for wallet '${walletName}'. Run: polygon-agent wallet login --email ` + `No active session for wallet '${walletName}'. Run: polygon-agent wallet login` ); } @@ -118,7 +118,7 @@ export async function runOmsTx(params: OmsTxParams): Promise { ) { throw new Error( `Session expired or missing for wallet '${walletName}'. ` + - `Run: polygon-agent wallet login --email ` + `Run: polygon-agent wallet login` ); } throw e; From ac92f69374aa16d42cecfb3fdeac26be80d4a3c0 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 6 Jul 2026 17:05:22 +0530 Subject: [PATCH 15/79] feat(cli): route funding by wallet balance (funded -> dashboard, empty -> funding) --- .../src/commands/operations-ui.tsx | 16 ++++-- .../src/commands/operations.ts | 52 ++++++++++++++----- packages/polygon-agent-cli/src/lib/indexer.ts | 49 +++++++++++++++++ 3 files changed, 101 insertions(+), 16 deletions(-) create mode 100644 packages/polygon-agent-cli/src/lib/indexer.ts diff --git a/packages/polygon-agent-cli/src/commands/operations-ui.tsx b/packages/polygon-agent-cli/src/commands/operations-ui.tsx index be6418b..fa9d7cf 100644 --- a/packages/polygon-agent-cli/src/commands/operations-ui.tsx +++ b/packages/polygon-agent-cli/src/commands/operations-ui.tsx @@ -253,9 +253,10 @@ export interface FundUIProps { walletAddress: string; chainId: number; fundingUrl: string; + funded?: boolean; } -export function FundUI({ walletName, walletAddress, chainId, fundingUrl }: FundUIProps) { +export function FundUI({ walletName, walletAddress, chainId, fundingUrl, funded }: FundUIProps) { const { exit } = useApp(); useEffect(() => { @@ -264,11 +265,12 @@ export function FundUI({ walletName, walletAddress, chainId, fundingUrl }: FundU return ( -
+
+ - open in browser to fund wallet + + {funded ? 'open your wallet dashboard' : 'open in browser to fund wallet'} + {fundingUrl} - swap any token to your wallet via Trails + + {funded + ? 'view balances and manage your wallet' + : 'add funds via card, exchange, or any token (Trails)'} + ); diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index b755eba..dc8ba2f 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -6,6 +6,7 @@ import type { TokenBalance } from '@0xsequence/typescript-sdk'; import { findNetworkById } from '@0xsequence/typescript-sdk'; +import { isWalletFunded } from '../lib/indexer.ts'; import { getOmsClient } from '../lib/oms-client.ts'; import { loadOmsWalletPointer, loadBuilderConfig } from '../lib/storage.ts'; import { resolveErc20BySymbol } from '../lib/token-directory.ts'; @@ -318,13 +319,23 @@ export const balancesCommand: CommandModule = { // The wallet funding page (Trails on-ramp + swap). Single source of truth so // the `fund` command and the post-login step show the same thing. +// wallet.polygon.technology — the fallback funding page and the dashboard's +// "open wallet" link. Our hosted funding/dashboard page (POLYGON_AGENT_FUNDING_UI) +// is preferred when set. export const FUNDING_URL = 'https://wallet.polygon.technology'; +/** Base URL of our hosted funding/dashboard page (which reads ?wallet&chain&view). */ +function fundingUiBase(): string | undefined { + const v = process.env.POLYGON_AGENT_FUNDING_UI; + return v ? v.replace(/\/+$/, '') : undefined; +} + /** - * Show the funding step for a wallet: an Ink panel in a TTY, JSON otherwise. - * Reused by the standalone `fund` command and chained after browser login. - * When `openBrowser` is set (and interactive), also open the funding page so the - * user is taken straight there after login — the URL is still shown as fallback. + * Post-login funding step, balance-aware. Checks the wallet's USD balance via the + * Sequence indexer and routes: funded (>0) -> dashboard, empty -> funding. On a + * human's machine (local, incl. under Claude Code / a harness) it opens the page; + * headless or --remote just returns the URL + balance on the CLI. Skipped by + * --no-fund. Falls back to wallet.polygon.technology if no hosted page is configured. */ export async function showFunding( walletName: string, @@ -332,21 +343,34 @@ export async function showFunding( chainId = 137, opts?: { openBrowser?: boolean; remote?: boolean } ): Promise { - // Human path (local terminal, or under Claude Code / a harness where stdout is - // piped so there is no TTY): open the funding page. Headless or --remote (the - // browser is on another machine): skip it and just surface the URL + address on - // the CLI. open() no-ops/throws on a GUI-less host, so attempting it is safe. + const funded = await isWalletFunded(walletName, walletAddress, chainId); + const view = funded ? 'dashboard' : 'fund'; + + const base = fundingUiBase(); + const url = base ? `${base}/?wallet=${walletAddress}&chain=${chainId}&view=${view}` : FUNDING_URL; + + // Human path (local, incl. under Claude Code / a harness where stdout is piped + // so there is no TTY): open the page. Headless or --remote (browser elsewhere): + // skip it and surface the URL + balance on the CLI. open() no-ops/throws on a + // GUI-less host, so attempting it is safe. if (opts?.openBrowser && !opts?.remote) { try { const { default: open } = await import('open'); - await open(FUNDING_URL); + await open(url); } catch { // open() can fail on a headless host — the URL/panel below is the fallback. } } + if (isTTY()) { await inkRender( - React.createElement(FundUI, { walletName, walletAddress, chainId, fundingUrl: FUNDING_URL }) + React.createElement(FundUI, { + walletName, + walletAddress, + chainId, + fundingUrl: url, + funded + }) ); } else { console.log( @@ -356,8 +380,12 @@ export async function showFunding( walletName, walletAddress, chainId, - fundingUrl: FUNDING_URL, - message: `Fund wallet ${walletAddress} at ${FUNDING_URL} (send POL or USDC to that address).` + funded, + view, + url, + message: funded + ? `Wallet ${walletAddress} is funded. Dashboard: ${url}` + : `Fund wallet ${walletAddress} (no balance yet). Add funds: ${url}` }, null, 2 diff --git a/packages/polygon-agent-cli/src/lib/indexer.ts b/packages/polygon-agent-cli/src/lib/indexer.ts new file mode 100644 index 0000000..88598c0 --- /dev/null +++ b/packages/polygon-agent-cli/src/lib/indexer.ts @@ -0,0 +1,49 @@ +// Funded check for the post-login funding step: does the wallet hold any balance +// (native or tokens) on the chain? Routes funded -> dashboard, empty -> funding. +// +// Uses the OMS SDK's own indexer (`oms.indexer.getBalances`, the same call the +// `balances` command uses), which authenticates with the wallet's session — so it +// needs no separate indexer access key and won't misreport a funded wallet as +// empty. Any error returns false so callers fall through to the funding page +// rather than erroring. + +import { findNetworkById } from '@0xsequence/typescript-sdk'; + +import { getOmsClient } from './oms-client.ts'; + +function toBigInt(v: unknown): bigint { + try { + return BigInt((v as string | undefined) || '0'); + } catch { + return 0n; + } +} + +/** True if the wallet holds any native or token balance on `chainId`. */ +export async function isWalletFunded( + walletName: string, + walletAddress: string, + chainId = 137 +): Promise { + try { + const network = findNetworkById(chainId); + if (!network) return false; + + const oms = getOmsClient(walletName); + const res = await oms.indexer.getBalances({ + walletAddress, + networks: [network], + includeMetadata: true + }); + + if (toBigInt(res.nativeBalances?.[0]?.balance) > 0n) return true; + for (const b of res.balances ?? []) { + if (toBigInt((b as { balance?: string }).balance) > 0n) return true; + } + return false; + } catch { + // Session expired / indexer error / unsupported chain: treat as empty so we + // show funding rather than throwing. + return false; + } +} From b1ba1cd2edbae0c507a76f52d4b0a9e1465de477 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 6 Jul 2026 17:29:58 +0530 Subject: [PATCH 16/79] feat(agentconnect-ui): funding + dashboard page (view-routed), deployed to the agentconnect domain --- .changeset/oms-browser-login.md | 2 +- .github/workflows/deploy-agentconnect-ui.yml | 100 + packages/agentconnect-ui/.env.example | 10 + packages/agentconnect-ui/.gitignore | 7 + packages/agentconnect-ui/eslint.config.js | 10 + packages/agentconnect-ui/index.html | 19 + packages/agentconnect-ui/package.json | 38 + .../public/polygon-logo-full.webp | Bin 0 -> 46394 bytes .../agentconnect-ui/public/polygon-logo.png | Bin 0 -> 7351 bytes .../agentconnect-ui/public/polygon-logo.svg | 3 + packages/agentconnect-ui/src/App.css | 28 + packages/agentconnect-ui/src/App.tsx | 153 + .../src/components/FundingScreen.tsx | 122 + packages/agentconnect-ui/src/config.ts | 4 + packages/agentconnect-ui/src/index.css | 90 + packages/agentconnect-ui/src/indexer.ts | 101 + packages/agentconnect-ui/src/main.tsx | 15 + packages/agentconnect-ui/src/vite-env.d.ts | 1 + packages/agentconnect-ui/tsconfig.app.json | 25 + packages/agentconnect-ui/tsconfig.json | 4 + packages/agentconnect-ui/tsconfig.node.json | 22 + packages/agentconnect-ui/vite.config.ts | 11 + packages/agentconnect-ui/worker.mjs | 21 + packages/agentconnect-ui/wrangler.toml | 40 + pnpm-lock.yaml | 13083 +++++++++++++--- 25 files changed, 11339 insertions(+), 2570 deletions(-) create mode 100644 .github/workflows/deploy-agentconnect-ui.yml create mode 100644 packages/agentconnect-ui/.env.example create mode 100644 packages/agentconnect-ui/.gitignore create mode 100644 packages/agentconnect-ui/eslint.config.js create mode 100644 packages/agentconnect-ui/index.html create mode 100644 packages/agentconnect-ui/package.json create mode 100644 packages/agentconnect-ui/public/polygon-logo-full.webp create mode 100644 packages/agentconnect-ui/public/polygon-logo.png create mode 100644 packages/agentconnect-ui/public/polygon-logo.svg create mode 100644 packages/agentconnect-ui/src/App.css create mode 100644 packages/agentconnect-ui/src/App.tsx create mode 100644 packages/agentconnect-ui/src/components/FundingScreen.tsx create mode 100644 packages/agentconnect-ui/src/config.ts create mode 100644 packages/agentconnect-ui/src/index.css create mode 100644 packages/agentconnect-ui/src/indexer.ts create mode 100644 packages/agentconnect-ui/src/main.tsx create mode 100644 packages/agentconnect-ui/src/vite-env.d.ts create mode 100644 packages/agentconnect-ui/tsconfig.app.json create mode 100644 packages/agentconnect-ui/tsconfig.json create mode 100644 packages/agentconnect-ui/tsconfig.node.json create mode 100644 packages/agentconnect-ui/vite.config.ts create mode 100644 packages/agentconnect-ui/worker.mjs create mode 100644 packages/agentconnect-ui/wrangler.toml diff --git a/.changeset/oms-browser-login.md b/.changeset/oms-browser-login.md index 10e3a9f..2f38c59 100644 --- a/.changeset/oms-browser-login.md +++ b/.changeset/oms-browser-login.md @@ -4,6 +4,6 @@ Wallet login is now Google browser login only. `wallet login` opens a Google sign-in in the browser (OIDC + PKCE) and creates/unlocks the Sequence V3 embedded wallet. Add `--remote` for headless/remote hosts where the browser and CLI are on different machines — it uses a self-hosted OIDC handoff relay (`packages/oidc-relay`, deployed to Cloudflare via GitHub Actions) that only ever carries the OAuth code+state; the PKCE verifier never leaves the CLI. -The funding step is chained after a successful login: on a human's machine (including under Claude Code or another harness) it opens the funding page (`wallet.polygon.technology`) in the browser; on a headless/remote host it just returns the funding URL + wallet address on the CLI. Skip it with `--no-fund`. +The funding step is chained after a successful login and is balance-aware: the CLI checks the wallet balance (via the OMS indexer) and routes a funded wallet to a dashboard, an empty one to funding, on a hosted page (`packages/agentconnect-ui`, served at the agentconnect domain; falls back to `wallet.polygon.technology`). On a human's machine (including under Claude Code or another harness) it opens the page in the browser; on a headless/remote host it just returns the URL + wallet address on the CLI. Skip it with `--no-fund`. BREAKING: the email-OTP login (`wallet login --email` / `--code`) has been removed so there is a single login flow. Sessions and all downstream commands are unchanged, and existing sessions keep working until they expire. diff --git a/.github/workflows/deploy-agentconnect-ui.yml b/.github/workflows/deploy-agentconnect-ui.yml new file mode 100644 index 0000000..e6abd6c --- /dev/null +++ b/.github/workflows/deploy-agentconnect-ui.yml @@ -0,0 +1,100 @@ +name: Deploy agentconnect UI to Cloudflare + +# Builds the funding/dashboard SPA and deploys it to the agentconnect domain +# (replacing the retired connector-ui): merge to `staging-branch` -> staging, +# merge to `main` -> production. wrangler runs via npx (not a workspace dep, to +# respect the repo trust policy); the `[assets]` worker serves the built SPA and +# the wrangler.toml v2 migration drops connector-ui's SessionRelay Durable Object. +# Reuses the same CF_WORKER_* + VITE_* secrets/environments as connector-ui. + +on: + push: + branches: + - main + - staging-branch + paths: + - 'packages/agentconnect-ui/**' + - '.github/workflows/deploy-agentconnect-ui.yml' + workflow_dispatch: + inputs: + environment: + description: Environment to deploy + type: choice + options: + - staging + - production + default: staging + +permissions: + contents: read + +jobs: + deploy-staging: + name: Deploy (staging) + if: github.ref == 'refs/heads/staging-branch' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'staging') + runs-on: ubuntu-latest + environment: staging + defaults: + run: + working-directory: packages/agentconnect-ui + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + + - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version-file: .nvmrc + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + working-directory: . + + - name: Build + run: pnpm run build + env: + VITE_TRAILS_API_KEY: ${{ secrets.VITE_TRAILS_API_KEY }} + VITE_INDEXER_ACCESS_KEY: ${{ secrets.VITE_INDEXER_ACCESS_KEY }} + VITE_PROJECT_ACCESS_KEY: ${{ secrets.VITE_PROJECT_ACCESS_KEY }} + + - name: Deploy to staging + run: npx -y wrangler@4 deploy --env staging + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CF_WORKER_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_WORKER_ACCOUNT_ID }} + + deploy-production: + name: Deploy (production) + if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'production') + runs-on: ubuntu-latest + environment: production + defaults: + run: + working-directory: packages/agentconnect-ui + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + + - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version-file: .nvmrc + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + working-directory: . + + - name: Build + run: pnpm run build + env: + VITE_TRAILS_API_KEY: ${{ secrets.VITE_TRAILS_API_KEY }} + VITE_INDEXER_ACCESS_KEY: ${{ secrets.VITE_INDEXER_ACCESS_KEY }} + VITE_PROJECT_ACCESS_KEY: ${{ secrets.VITE_PROJECT_ACCESS_KEY }} + + - name: Deploy to production + run: npx -y wrangler@4 deploy --env production + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CF_WORKER_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_WORKER_ACCOUNT_ID }} diff --git a/packages/agentconnect-ui/.env.example b/packages/agentconnect-ui/.env.example new file mode 100644 index 0000000..421e804 --- /dev/null +++ b/packages/agentconnect-ui/.env.example @@ -0,0 +1,10 @@ +# Copy to .env and fill values. + +# Trails widget API key (Fund onramp widget). +VITE_TRAILS_API_KEY= + +# Sequence indexer access key — used to show the USD balance in the dashboard. +VITE_INDEXER_ACCESS_KEY= + +# Fallback used as the indexer access key if VITE_INDEXER_ACCESS_KEY is unset. +VITE_PROJECT_ACCESS_KEY= diff --git a/packages/agentconnect-ui/.gitignore b/packages/agentconnect-ui/.gitignore new file mode 100644 index 0000000..7e9371f --- /dev/null +++ b/packages/agentconnect-ui/.gitignore @@ -0,0 +1,7 @@ +node_modules/ +dist/ +.wrangler/ +.env +.env.* +!.env.example +.DS_Store diff --git a/packages/agentconnect-ui/eslint.config.js b/packages/agentconnect-ui/eslint.config.js new file mode 100644 index 0000000..238dc2d --- /dev/null +++ b/packages/agentconnect-ui/eslint.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'eslint/config'; + +import { frontend, recommended, typescript } from '@polygonlabs/apps-team-lint'; + +export default defineConfig([ + ...recommended({ globals: 'browser' }), + ...typescript({ tsconfigRootDir: import.meta.dirname }), + ...frontend(), + { ignores: ['dist/**'] } +]); diff --git a/packages/agentconnect-ui/index.html b/packages/agentconnect-ui/index.html new file mode 100644 index 0000000..7128ddb --- /dev/null +++ b/packages/agentconnect-ui/index.html @@ -0,0 +1,19 @@ + + + + + + + + + + Polygon Agent — Wallet + + +
+ + + diff --git a/packages/agentconnect-ui/package.json b/packages/agentconnect-ui/package.json new file mode 100644 index 0000000..ef95141 --- /dev/null +++ b/packages/agentconnect-ui/package.json @@ -0,0 +1,38 @@ +{ + "name": "@polygonlabs/agentconnect-ui", + "private": true, + "version": "0.0.0", + "type": "module", + "description": "Wallet funding + dashboard UI for Polygon Agent CLI (login happens in the CLI)", + "repository": { + "type": "git", + "url": "https://github.com/0xPolygon/polygon-agent-cli", + "directory": "packages/agentconnect-ui" + }, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "preview": "vite preview", + "typecheck": "tsc --noEmit", + "lint": "eslint .", + "deploy:staging": "npx -y wrangler@4 deploy --env staging", + "deploy:production": "npx -y wrangler@4 deploy --env production" + }, + "dependencies": { + "0xtrails": "^0.14.0", + "@0xsequence/wallet-primitives": "3.0.0-beta.16", + "lucide-react": "^0.564.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tailwindcss": "^4" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4", + "@tailwindcss/vite": "^4.1.18", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "typescript": "^5", + "vite": "^5.4.0" + } +} diff --git a/packages/agentconnect-ui/public/polygon-logo-full.webp b/packages/agentconnect-ui/public/polygon-logo-full.webp new file mode 100644 index 0000000000000000000000000000000000000000..5c50d0b2fdbc31d399e1c6e7e4d1a63effb5531b GIT binary patch literal 46394 zcmV*^Kr6peNk&F8wEzHDMM6+kP&il$0000O000302LO)&06|PpNb`LF00I9eBuMc8 zcxyzY?m3LxNK(|!KkS2ngLgzsKz=3?U6gcG6}pWa(M1wDb(%OW44%|i_3u&bgTy_B zoYM9{t@o5yTdHt}CMd6Tq;LBtiM7zTJ-L_e8`5p!?Ppa9cim z&SDOwU~c>+bk)CB*yS>I3*>Q{XH*W>e9%W-_Ofc}J|6d~_*yhoxtRg!#L{7YFC8+4!>ck0_ zxMV70U}sxp{Q8gcLR98TS15)aJB}8OU1(-}cZUHe-Q4HYq0bMWp_#FZ&1m;*)eD8p zT~0(~qniVRu?5X@@>OdBG8Z`&V4=&W&1}~#Y}`SkY+I5+n-DbcpZRiqiywrG+6 zSy7=fmo*VAc;Pq(Gp29GFaEd~oX$;6fIi2(LGPJKANkfXeIX)qNmCJg=S7;2%w}w7 z`|CRbqH{x&La@ROGz-jXH1eOTI21b9Ggn~oliJD1?3!`%*-Jo*xtoc@z=PkXMP}JN z-#%^_MCV>60_^m7#mbmz3&v-+gg|AkWag zbqmJHe^>-k$Xv$MVd#%vW;A2=&B%$r8U)q3iV0-1`)GmnXwmrizP+Gx4O0=Uc;h5i zk+m5Et6MgNh|CR46d3ZG(X_}~^^ueRwG32cu3uW9*KVKEVr0!)G>$ubKDc7;UgDrz z-4$rY8a6Y&wEG~GIu|cdtn`;@jK;e540nF7fXZCDR59e#&loG#cnF;IpW%SWT)3Q~ z*IsYXys_5JM~?aJ5J(|&+0qhitKUXiWbMZo`Q9$`Na5zHrGn)yox*5rgl3Ts?f}ub zX9+Ou7a!0^Hbx6g&Gn(<)je4PwxmZbwAwU0&W^AYyIq9l3pl)teA}IHH+|wJIYYhD4 zv;`m{bD>fdtaxulAJ}NE-NGk7FCaSCsX}zvxzlOE*mPqwKC-!kb90q)4nq(6h|!Eq z*o^kKbs&YzJxYNcA7hMc%oaH64@*OI?oa~7TK}EODzZt3$d3+GKxD2@s=(miPhs$E z*wI^jeuo0$=JMnmdLR5186z9F1!K5+1(ibQ;-n>d@9;RyjE&rkjF&D5)wwpQVzqzJ zA{%@(zH;n*a56V05yiq6e$Eis=*^owy$v8T*Ci+Dwcpz`Z*2M@aLRofLRIIgCNT!qWDE=suMao{q!j6U>^NGmdZ2mZ=wA(n6f*aqLNVfq zQH*A+N2@HnvpXP)nTiNjym}&is0Y%F{CukcD0D7CqR>5FWi(?=#>n@7y%1C|s{+~f zUT?wbfwai#t}PwhT!OIae?5b-Ce1kgA1gu?9h4G-cKw8ARu5#XIQEK_F*hJV-}9!? z2i9aX<3k%c6pD^JhlNj@K*pLNtH3cQ!_ECivG^CPBJ0rt`R;gHxZ ze@hCI5#&7#_Ea%p$j* z7K$NfOgHm3mo%&BKRgH!MK)CxOJ6sYG0YV$Mvgss7*qr~6@l#ZNV|EP>zNtt?;F4= zvMYjKhmU47o2!{wq zLU)U(D+@uV7iHn3sfoI>EYQ`iEDDvLcIsSF7J{zUqAXNqe?*J25OlVdg;VJ+3Z7qG zGzd^ZzMTlRdBx0IH;NW*4gh4H!6TMkZS76A-)ZLq4nKU?owna(?NygvVpt!{C}ruS zVTl%PC1&1h@B)i1zv?<0Y`ODJJMDbfVMpw~!%n+?Yu&Y1S#F8pgGz^Nzb6eE4BA?zP*VTYh`Jr57GCsKiWNS-9C3aYdT~fc6=- z*b1w!v)PV2@3`BcKiFZ{Z?C)h@=Gl^&|yYxE3_NPJg5J6Rfr(-q8N7E`wX$0L|g#? z^R2tx5occiz>8zq!8rQUCvUp&ggw5uY#RU+P8*ZDQUIX$QtNF0ljASG?!K2loIqoT z1a_3kTA`Qf(f3;=-ANjHy?5AN6> zg&_Y+iEao6lppl zn5kQRpWpxG?$^Kc{6_QDOuhHjOoQ1Z>*}S^8Ch$uikn6&ktA=3IHNf2a@bL5ddggZuc|) z``YNhnMPmD=&KoxGmj%5x$dN$7s8Ap-8B}CBTpEDqChQ58+xtu5Y1u}t5FpIve?15 zzBAEC#`enl5Y0HNW-$a`wFk~P;msS4U&#RwmBu1YFynyl|L(spjhxOIg zhs|OP!B_2-amMh)Tlbu`_Xr38aoVuDOGVYGp!3zKilo(8MO6Sm7TfXcN8kE7aK_l) zUilEBnXxlt2*J0vd(Id?fAQ)QckT@VL{)NEkKzD8H#_a=Pp6Y)Y_EKXX2w}Hi@{gz z6=$6C{v)TXsQ^T!J0?W7|9M_WA*f5IDEE4c46$Je7T9*XG`C+J(qhg5ZA%~U_{2yu zRz5~{X$;;Q$uRwe6IYoBK&eeciUL46c+1nC8DEj4h02E*dC_9!+N(fdf!rhRzH`h5Tt+TCJ-({I@b zDuNmn74$u2lm*|cO6*B9CTP3{uBBWFx6lu72qbCI*qUb1IO9`Ct=$(=Xwz_Q0`yt^ z@PB_nBT0*9Y;}tZA!NR;0IN+qq@kIIK3F!BUL88HyCeISBf$^~00? z`RoLKqjiwqIPu-v&O7S+%k_dl3u!&QfR&}_xmm{40rPHs?h}(p+Kf!u%#6lY&fH;9 zKwP%g{hYxP41BX?RM3CBD<;rrW^8RUGjhu9JNJV)={7Or*kgvGP}HzE!B%(DXpJh; zn4q+0MdK}eXgfx zs*zVa)T`h?dM3IRq~$~a2$nzS$_GC)lJu1iF`BW1W-$g|wR6Vyw;ww1$BRJ#h_u*+ z^h_~u^Gt~Vz-FhvFo}$nF^?9!v3m2u?FIl4$53#6cIk+(;jpxP?fLIbnoKA@wGOK$koF<4DFT zGP4$aAZ_}^%k_qo(rgrqzQ~Y_@#l530V9))JPNHXr9gXcblSU-qDYS`+1A4D~#pFnuH|ExSq;bN(w(AEJ+Mv`yw|JFCZ%jJ|Bj4R;9u(T`!B_U^ z1yR(x2(a;u6KUN7T4LC#lV}#1L5qz1^tkzyBCfl&5Y?< zG~dK z{usSyPD8M_cY+h?#`t=EG{rWYKKths+r7i+ncLv`)vpVv){QuUZ2#1B2G3eFA6PxV zDrtUyL0JX$-%g?JLm#&yhYdzcG?8Een-; zkwRqkdubMobs2+^&u!NRrwv6g-&eF$j8k?-Q5TBEKVnS6^OtBtOBRa$+doIMV9cd? zGfp{v5Ja1gI<)QZERDffmlkMzexLqO*I>k9se2g%^BW^aZUCn}pTuGHI~k36w#e}Z z73%85IjnSEJI#!BYR15SuB1{l69_I!hZQfYj}nKImO|vnwc%PpoM5X*8EM9>nvu`% zHUy;**O)8;TRa=^Q_YUYF1Z=G_9v?2JNcKotYen92}X*D)|$ zH80dP5gbmRjORalL2BYxY-bwpl!7i-!3Hlz`p9et<9pjdwV9}5>HkLh$hr=Jyk|+M zYZ~gX^wadloLk__OF*T8Xn|tw1tCu6>^Thm7ei$3Ef~-41(!Vs-Sh)mFxI!l$kE>` zq-Y+BB|l|M#W;55dJqh_ojwWjRCHZ|0Vh?Akr}rb>Hp9lr8EyIq}PF8GX`UQTa5hr z#J(t-g$TAC&tS}a;3uoXH4i6P`J(Bs?K3Y*os;LV-~%*c4O-yE1zhF|3_W8a%~}}&@EFvhVqG&!qgt%X#9@_t8KW`t7Ww!p(8eJSi~WaYtb2>RVMR!j zP$_@vY0Q7%M;k*Mh6sin_bDs02X<(K&bf0~^<@UuWaPi*h2%^G>pVkmtbc3gJKHIw zVW7a4(`l&~pYL4@z_00pD?fvjqm;t+B6i~z0PQCfRP_;3vCX9w)072 z9Y&7Z2HGT46g$1b=ou%*cB5 z9Jw;IF=!#!;I6(e~nTm?m@q`;6XXr4{c2i`RVg*FP5 zIErTJoLdLLHZ-Of`TBxgBPEu+hZb3vA@H&RaE(C}i$2T{*c3zHb@M@`35eiiPLHh1 zz>ijfHiSa4$f=$djWe|v`Pom0z!h`c6idC&$XfM$b7d4+5{K1aW{7N#G4iADppZtP zSoRafRE!_?gJe%|Z6Xy3Kawy1?N$(pa~V4=n<10E#~6Ot;9U89D7&CA8iIgZBQK#(J&z?_Q94 z69Ja}+f-J89k<{)=G+m0>YOq`|7+>3ei-=tqR`AZ3_RakVDpT|%lkkZ1mK=ZC-S{z zpm`I;gN!K{<4;ha)5YQVXo2Xs3zdc*e*&Zs()Jp*80){Bg#}CK>~uSsGen0y&e>>V_718nnJt(QD7w z8Kbe&qZyyyu@?%R6XvjcWyX4L=jBc$BLzm>!C-8tfp4vWqDd??naO(I(i@Vs62~)I z3dZwLptD8r2YO>Io96?=AhlLt*;g5i&D0{_S`Mzh(Ek@>X{=x4^nKv!N<}vPFU^cy zY8H9>dVt6rFU7i3S>J(w7UWa0)T1;u*TA>efNKmu@ehVnA}4JEmoq`X`{(8XIZ$qQmn#?wQL--0g5^jQ7rVAsf>|b9s|c*vIInA z&X!`4=NapZ#)BcbD6qzB3~aK2?|ui`7!==Pv_#m>pF?w2V4Gl;#{KAghvR9i@yN5_ zY7D!4!N4Z#`TEjuH3i(rx((w zu)!Cs*lYtweG6rC81XzqDv>V@gJeu`Dl4Y3Go+KGz%en@ngt$#vZh3_+av}y+rZbC zhSZT@zB8=07RKy}WQ;ur?2Ge&;4I$RDMHvWo%P1keO zx6sxQP~aF=sW5PpoGBK5gE0l;rvuU14#zPVYdywk+o7l>DY5%h1~%Qmx0ivdp%S}K zGpjB0{0>~LNC~&X4Wvc3uo>fZo6UnZnM0*m`zuD)yXOOgpy@emI+~HqH}cDG!8HVj zjYl)45_t(SuGo^EDS94{&UVl7bj}p|-N(qfuXu?-Qgc}C3r03!;}_qCHUkv+4}B`ekwY^E z{X1g{W?=(p=LpvLkdd_?cylk*kYdLPjBLVzZ!Zg1Hx4JWVx1fR)(f>Mf&)1iM){A24j~Hu>oc0}PJ*WuQd(zBDCK-eA-CZE!<}@kR zAI~Oe{Av|QQV#PyNYAG1`QGX%8Ua*ZV@$>P5L~|YV3Ov!9}0A)INU_fW;k_oxSCNc zIf{`@Iq-$~p|t|Nkb(7Xe0Bu12Bc6d|Bs3mm~05fr?x2J+#DsrJohj*0Y*ML4^mbP zzK5R8+4GI1;2MF$xlGph#gfo$Jw!_(@Tp%QWdXv?1~G5oNvNn_GRPP=LaCxy&GDsUXl8Uc;JMv;z4@oz>pY0vuyLz)1v z@RVdo9)luJf)&T5;dv1Xbf#jrsf-Q5B2PzACl13OV_=gu{!K+{Lon>N1`zqd>d@RN ziXC5~MPuq_9CyZ0sLU~PSbsDlo5G~;qew>a8ycH+;6EIi0q&=z68LBV$x?~)XiU&J z_FHhBp;&4hBb#F6wE>(&&!!c_58-M;vFvNK24K;z1I?E>!SFN2GJ0k*M#iVV1y!9h^sVV;je+ev zHI)+EOlI>U!~Q55!Mq>S5@E&DQ0Az>HWO(nkOy~;;si!ENzZ-jLvT3FnieC+ZU$Em zB~G9<0Y*O1hHMv#en0t=F&Oh1jN$s#(b;oY(CZOKHb=9tF(d`WlCROTc}IS=F^c+w z;ODGT34Cc`XogCh$%+XYM-M`07T9Jgtx*`?=!2SYShtxZ04TV_lDG-2(Dn22t6+^AlY%)lipIGtq$p!D9&KC#_`s?r~^TH z0|T46@k|u?Q!MrdV`CV*0wg=4g5D>OVF=7}6>0tYP@uU1l?7C)$kJiJY=ITqaad?D%9fZ|u<^=zj-8*I5k4S)4j% z?AWnmzmELo7-M!AczZuc>!8ow49u%pjGV@-(<{;#b}(>Nnels zdNPgQ9AmW17$41BZ=6YE7g~(QnTD?(zv=I1|LJ!>JL;(4p7Yo1pZLN!(-eZ7us}}6V88V)YM2ac*_g} zzuiKDLl~IVSQ*JUWz6H3|K^9AEkA6&p)<}qZ1HdJam-)t`(Uak$tq@r6;FZG9WdWl z$rvYX3zrp<_h|{3@fRr3QBhpU$jrvdNQNn+AH3?fKiP8Sh3B7l=+L1<=U-^W@9cTP zrFVQXshuQ!ur9O6wX-IQvl%Tbp)!)y)c5Z_=kT4syZrFs^9~(4biVl)Uu*jVPQCG| z@zacC@G&bi9*rVjZ|jg(89Og}BW?Pp51+p4%EO2BZ7T#b71!2p$O0Q4{;!v&1~OJL zCy^g649S2iFy!>9v}o+mJ^b@LRzH6RW#-^dgHkJ zPuOfA1T#uUF>_t^r~iJ3X2CMThXi#e*eF^mfiEop%}9Z(7@5R%aOkL@*A4W{X$ZzI zZ#rtV5;K>M&HxDJ-|fuDr_n;}8so_L$TQ6QDl>Gd zs4GM;=)0%BL8Dn0kUZ$Dd;y2jGnYnV`>h8p3qT8%89G&50if^tCqBkVvs@Vcci?jM z>Y~qflF|6c!E2Nd=LB6Tt`w9T{dEdyxgaMl21!X&vCOq&83KDm=zvdXon_I;NB3OV zLCR9m#ZnZ4a?R5}BV)|SJQzP3 z1gSSD4q%lCEB>>DWTV9XG)utv0y-|}a|=T*EShn`nd=S&iqfI0r6>U`xb5vUi?J&n zIXz>Gd_~KI89Du|)%!t;(xHn*O9cjh@86!Zmvm7K*Od zLeaM3MKlYR32v2?3I-naIiqJ?&hf#avD1PvJo)`LKnjOe6fG1O@rN&H!7{2(tsL#G+X+{2hD#f3Cx(Y)Ej%a#OCI6*5);Q+V%Kc+K; zJTP!SbS>$nQ|Q@Yi?kQF?+q!Opf#ls!D_bz3zmsXp~+~0zB@ikGh@$)zXLZiuv5*` zKeS5$h@y2xAz10^DGZj0$T8o7>pI24Z!t29p8n~*0H_FBRuqC2uKbcdWMb?VDC$iV z=g}v^ia&wm!ePzPj0qUO9s%hPa1|{R(eulTmIg!xtt%=3*1T&X+hZq@#zb2{u*BF* z#K>`%F9n4PT2~Z;Xj$s7Y{LZD0+VMBLFIBVNnt6`5Jx9f$`N|kVI6m z){UNKtkF3<|HP)F89T)SU)ikfQX>gMbUfjmuQv)k|#iOM22bXaNyJ{hCu}_FM>hWOtqMWace=75MaSG zN76^u>KvYHa2h>3(ITgvu@KZDMJ+JsH|>mh2z+gEXjchFjAIs!ymEOI4k=2Bem@?` zXc;hTUk|R{M2bfk5;3-~lM6w=+ZYnC$W7qTQHM*IM>Bq~M}HK8B(=nl!$#4plTz)v z0^b>z1&bVeP>Dj2qB<=6$7!@27(bgIlBJHD@#F1#Nr5Dtx+5ktrbpu`C=*aXe*6hz zF!rGM8}96s82QR34y7Q`Qn2NR^p*p9?%xWh(lTI?Qx7cQ1c|D{s<$!5^yqn+L%pHE z5yn)FXCjk=RT!C|=YvC`9T5!qkd}jJyk=3j0?C#R%im6mH6nt4uwwc#@`*J?3M49R zitoP95Ywaak7&!2bsz@bu>uN*MAc#ScW9Pevj&$`D@dxW5MF( zgW(kEs>9%GX)yJ8CRpfGS~8#J0{B%L zfrp?(M@t;dEO<^i3~+*k#R-m`YQ8=kHlIdIFIe@LL2!a})uGp4X)(RXcb0)>se{p~ zGkU=Zk`={LPcT?&fzJ`6ghekdz;IPl8@0YTEDC@v2cGeF}qT~**5 z8k0BkmyUoFq%5NN?&tJ5xE5Wl2gRjK*MAS1hu&|~5{Ud{4Y-bov^_}AI|< zt75G;7_BA*ZCBAV`M|IC0t88m2#%RxAvsn&5oPuwC+!Cnq%4ZQ*V0>Jkzaos?vxZ5 ze*8FEWF61px#d2_4tc)02Am*u0S+F=n1RS&plcONeZZKUk;g#=$vdogKVx!a`>K$7 z6KoWcF}wFe5Mt{C_)#>C9?XtW&?f!pJyV4n3nXD7bp*-?vpYGD+}pcMGQIL7ph zZr4 zLn1~Vjxs&L{GZX1ctr#qRV?~CLu%3UG=W1V3+;6-qt(J9)0uqW8%x0sAK>tz3yjB?cXJiN(mitnx{o$j|^G|Eb>BuLng&xm&uIj@l3cbD6lJo zB^LSRrf3sn(xJ~)tSl`We~qHv6pM|ar9sb|;3T;Mhr}evUqd@#H?}izi~K!Qkxg|t zgS7l9PGs_tuP+HjCPgvt!;FbBaJ{U>IBicjK^7erc#8oQ_}s!Rq7HoyAH`_K`d&{5 zE%1*81lbh9?h_ePGrl)+ZK~5E?(ky#YzDi3h@YN-u$fscFLkx)-Z$zgXnAu?{kW0m? zUoxf?`Sn_@A%a~VW{j-$C0XP}s)C#<_MF0)+~gflbedv~skF3=eorWJD(H0+EiJRS z6N*|xfgR~B4OaYRdJZdnz?gvXYIIz%5Ik z+}*^$q$5YIhXQ#mu5u=bY>DY4=nb?311 z$Bbz(@Q+B`VS{OA2~<1*f{qWF#IysSTM`Z#mJ-)8HuJQ1L2=bg01JXi2f!8xENk zEI*!>Er*S!(Nglfdk`c`fZR)KoSD3 zq$Lpe>_BLT95x(7ODOQ^c_H}{wEdG+rUZkYU`)u^z7GoIy2QSWmJTak29fMUzP|`G zLy9HdVMv8$n|6*Ag5_^xw8-W-B39c#k!^~Jjzz8ymmA}Rp^z*&to1o#Dv?KZf++eN_$Do~Sx(3}a^AcN`aMlc$oS4+ zNGFsym7eK({sm4l28V6iY3W4XgrepYThJ#GIcfvAgzlpyaW@1VRxI=aLpp)4E(As1 z9Uf)O)W2v6MIHb_&K-_s%AQ9<@^d+IUEnVa>73Ca5n!{&+F3>RII+N=K#+C8_Dni* z<<1cFy*;JK_eMaGb5UHvDy7#3K;uWpDv)gLI+d2pWgU=0u>93i83XIl;v6;4|Mtxt zppVg#+PO0v)*8i_4*3fd$h*UOBN>x1PTUqny+Ls@t7M*E5SmDd<7jMsG7CFFkaxik8PXyB0=bENuy3}Yc!e<$<2|!hD25(BiZL4N zF_=|z(9F0qN@QNJ4MRf4KcEvGcA>X~KI@C@m-t&k4E!D1YR+N3QH*I=^$kEg8=npi*z5_&0qTtat`Q zk|?m!)hXT1T@O@V47|%p!k|HOr z3eA>a<0_qJzDc0i_?Ez6tVgrR7q(yhN(S1TG2^t|Q6T#cJ26^9U-jvjV8GoB$rwKx zQUg%@jp+uyz9h8XP+*^mmPX{LrJzYToW_c+?|Eg}8H(kI56_ZciVf`K0; z6!Z8w&K=?m3#-oUzA5 zk$*wI+vyXUwhp9Yi+o8-#`7Qu>TsEaBByMDqUIFyzsZ;eJ@4azNsFwjI*H2r%#Y(-^{>uaN^#i;4waVoZmp!gT~VJfVuG zLs5r46SbqvF4KgeSNdWG0h9u5LflmEBLn;>e9TccVhZWvu%+7W6$&g1t zQHO0fk1-wo5-uZ=@2&usF~Mp{sbI~^r!g99G8muSy*E@aQ&E&#-|Fe-a2YQ`O_sPK zA>&mjI(98%D#mGBp{NDLq8~G+;(7Z3)Exx(rNd)V5G*{J)_RenH-+nz-nTQR68PBs z(0UNXUG#Yo^nHRMo$>Rd9u*smqorcJ4n;-+ALs+g+Je()sfeKeDPJ%|)}xv6!=KF$ zrPRk)6|td>)FL6ojLOIE+M}Uidj>f znvU@bxVk`z!)cbxU$y=OeQ%^s!)W`WY%Nhd$(R7!SM0Q3r$hd{P6S(ptO(>vR;g6n z7mE7)J!2va`~%uDGJ4(2DfUf=HEHCu(-uYH(522{(bLD1HoGJO+3XHaZ=CI^cqv5c z!`;T1it$L49r-sc6^5Olwc)VlNXA4W@9R~6aM+L0l3>NZ!AVOwe0w~t^^8yVM&}C7 zPsTWYEohxAI6X51@1jq{IAtBU+7N6>pNi+-P-Y|Y)5W1#bJ&6HO(vMdTh<0t(Z%Y3 zb#9}@XtP18z|ixj(+4K|Qh|q~M2#N9kO(VYgtl38csij;gHWF$`W!dtf^^nx34Ki~MwPXy*V=CUh6HR&Zrj99AF4m`KG7pi&!x zfe$bw68PK#(0sgAKr*)}V`B+{Zyq%eB4|w!!SLUF!VqR}q(HCjpJAji<)?aeQD~hk zK8BWv=k-vT6~Tzl6S|;Q9F8!iyG9dm*l08@jlc&6Lt3c7-VD}yo_~NyXMLW~`E~OP z#;k0}Xo& zvB{A8LFz>CJ%+4o$BJnhCvJ(NKH%_^WFo& z6H&!{=Zs|ZoQ=8yZKxA>Iej95PYr|4io@2E5?TvVBZ7s-CbVx8fWz@jHSk2Vuwu!N z7+cTt&fbvD5iBw>p)KoXamI`&_DLr4qgCK)q`=mUmWFZ4cTqH`HO4YFj~I+E?$ie7 z(DF{vXaD!f7-vIN(YEiKw8}X9L>`T@MxZ#B?a92k4BV^~*t@PR41w!qrKE-4l9ug^nD{R3hITTsMy= zW4x##;IFBW+zQe%=<_IJ>qWk`2(;7In39ekfLav{|CE*w;P>>2c;1Qie<0!j5b^03M})N=`>>&o7C6q*UdJJmPX`fYtCAUQ)x^y z@SZ+(b6G-HHUq)hjENYphPH}e@pdL?{2K~%vf{h#Ow{;MpStOH4?{Kt#T5*RL|%rr zIuZ20hdz;Z9*d&;#*F^vjUkGp6}@)4m(i?lBwr$!=Y;p@BQx2gK3fD@Cl2e6XH4bm zjXQE4V=`B`x;c@l8t-ii17D$~@@WZand4}!XPmYPr1Q2(=+)kJ)B8VJ>HVK%jHjZk z6~)!8k~sygyC$0PnJwE;DiU{!{y+PYF zSnSnw{5BoAkv@@%KZDfF)(Jh|7*_h4F^$0gwu)l&X=(ff(gpj)bZ#!{#$8OGkpYjT zGi67(T4}?{^vPTVNH>fH&q)^z1VoTU5y7VSv~zlW2yVGy4Mi!Laf*db{hAhxvth<3 zYG>%9^oa!i0OhRRl+fPLnproY_ZxyJ{>&UO zW(582O(t?@6tf@>cO}!#t>9{A)r7ui2q>{T&62RdqfxekpwCN;trvKnp!3tZRBGqK ztjzmvI$y5^t(6i-Fj^X(H}>g%F*823lY)4j?xjzHp11Xdv_OF$RaZ}SiE+&pWICrJg42UIz$AS)|w$BIpwr@p_-ODxb5F$jK&<#>Dah-h9)$65TqHv z;kHyFUm6N&fgjUb%SFDs0$i8um(a~c-4vJ4u5CA|Tg(Fey}PtQQM(x<&G`He`=gMA zRI$;GG&AP8=g5~3Gz7s0o{0u--F1RK|D|WkdtQPPU8vYIq;r2+H}l-YFnhM+)b21N zKRIdu3dL*%EpYnX8v`O~h$t35b1Y+IuIF@Y)S$j-4glVxrD41dU9MQgqP3iH(zYnN zW~=s8jBm_SH+^oIJu9)Vb$eMbR=-^kTA+^eMtaY&*DM5al7I@_Pd|)SG2cz<`r2{- ztvy!UvYX~$#x%%@1G)_OIRjfh@>wXl<~!5V`Lu7{41SKW87x*iKVo-Rh@5uIT7W2K zLuk?Xp>+cMCNJ~c$dF1rxL!o@cUFnC^K>Y> zF`}n`Y8Qbj>b)+=5XqO6z4t#`?;kfF#NLF4ruK+cV(-1F(V}Q;izte=)F#x5*sZ;3 zX;F$AwX0HUhEk&?YOk8L$9>-S_Ye4f?mVtv@;J$L&biKYUFS8P&*!T#roulFf*~C) zG^EBoiAHRyZ@SjIH)vaX{Z3UIW1?*Pc%#hj%GhWnMt7lhP9MiN=t=+Tk=Y+x-NumK zLXFX7alS+Kp+2vMJV>}fG_Kxkk}Bx8Vd0?fe`f-m8ihCtWI76&7cjR!S|ZZ$HKIq2 zC-L7@nSd9`eL+(H5>vjXUsmd^2w;G(6mb2yg}3;CJ(}WbAO$RP#U`Bp*7|Q0m`AUg zW?Q)X4rS;R`CY*?I}?yXrYhrz2i{5$6J6k{zasJK_YGWXxhQpc#Wg#(d+JW1vYLhB z9dpkYHEz4MQqt|$uW~d&nWXJ;bsnMrbaybzuy$) zTM+_uJz6j~w8}Pz@1Vwzql#>Z#CU(!uzum}2j-LUJs3`jw~pxG7tY#Y9sCUpgUD1% zY|SNXH`t&hpBI=eoZF?(w7Eu_d!S zyYUO~QHsqNgv75F)}k3k-^jpWXwO=r3>(k(A5!iBo)INNnaSC29AFxYBxt$me8e}u z?06)C`6S5SaHl@v&#|%eZlPC-$x~}@<2dauaOq@*2fTn#3y zA-M>~k@Is+q}Q}~I^v4eZ^K93;q#^}P4{B}ineq&|E+w|w&!WzJ+l&0t2=_b|455I z6$eBi#DSQaQ(m1IhMh6*t8jMm{iw}hYX^T|8x8Y2RIeD+EVjNj(UqEfBNyx_j@G{? znRI;{b7m%bV=%3yG)qQfPeW5~(hzNgTF0WG5x+EzmK~ngIZPR0#oR7D%~2wQBQA*( zPv9G07G@XS18tu1h|xA4+(1>*Ys}}aF;j*(a-)*L|6v2@!HQBswI{vlP^_PODkp~= zv59$8SyzMo=sw6?1K&pD235=*&}ad=ztN;XspjHR8(6!=O>PIA0nF z#ImH%s52pA=AB$tZ4APnh#n4R8TK0Csq43VUPvzeaODD=oZVYE7rV__<(T&GS>Wjo z_Og2s1JDP_3&AO@prHBTtYPM!;(uIg=TI$VjLLUl0vIJ|c({;|2|N>{I`5qb$&-$q|!!v-J%Y#HKp4RYJoqU-UFRO1qNoq2jgYtYv9I zg7t6o$&t_B9;BkWDAT$-iHcJD!~gXbpb@7|31CS|#J zveW&~hifPuQFnXjDSx(i%_3yx+ynVxTy2mt{B+8VIXxxb^5r9py^#YHN zmXJec2-B~JKm+(K6w9nbEQkv-TUpIT)i4MaGL8gWi>+Zywoq+)IlmK)(T^BHEC47Q zUoKMN(4T(-MEkI99xVFYC>PyMi$@eI=b~?#&a{xUYyVip0KgKuaYp_nVD-y~1)>(s zL=P3Uc)V}Z{wyZevtgR;Dds2D`s=KZI|;j1WH=1ZL&(vIgmq<6@P?b+#3;G1w*ks7 z44>F|PY)+azZMUhV=qV_*L8KL_Uq2Y65o2A3%y4f0=TSV6fvq_QVa>qJzR+-{I?y9 zBU$LRry0$Eee1G1Zu6FCu=GJx0=Qe+>Zp8Z_RZe55vek#5DFO~C_?hhxp`4}%4t_} zvKNWP=oD7`=zZcQG>v;CdXph6H%aGjVhJn610gwq$<${y_mo9vy!;Q&d<(wY9*?EG zpd+yUC;Gc@~*~UgO zxOB4>6JLq+zoM_?^E2p7VS$atcQrrEA(@00U~8I3%j?Ihif zb5f8p>XrBNLy6Ixr)6Mt{>GKWQ_wk-6bKeYVMq&*sFtpqW<`L`K*w;3$x^vT_wpSH zf*6iQVN3FL24*jw_$~=)V@_8V#`n8sN`X3pz3}9TH-wIsK`uz8`9g>_IGdYoafzQB zz&?axxLJYjm^U5zLKk3HAhY=mv)+ao-bxHyB#%9cme*KxCd`}v=q5TeUXywLkZ`-yGzO;R zeGAUWd?A98{eF%N+D?CDGPp*r%yl&89u&w&C5`4Oc*^IbvPJ%xehxj+ zx7R;{SzWwB6nFju@1yMtT0s`zp%hjHe`ZJv^I>Zu_nQYwM0DhJDz_GExTZyF&kxIn z_2P9)tn*c0cRFN{CM1=8f(0rYuQ3_MOXVV(xs+5FFSiX+9Oc$T zL2|&B7*JXChWeMbQ9SF5s1?K7Zj@~!Ye61^%5em8hfh}kp#2aER1j%}TjMu|iw*uj z16z=5$c{`fPzk+ldy*8o9M@ag^wa~I>?%k&5O(XQSz}Q`fB?DA$bU8|FHBi#_n&0;BVcVDZ zB|XE7c=Rb#Rq89>ACf89*Hh(&Li_D+idFne_9nfk;5p@>{(7^e%B~D%l>0XMI*s|S zp%glj!W_;t@mF&AtT820#m=j*3y2s#4+yT((wdmYD7 zHaE|BoE4?#XofPKPN->&oBp^)91bE9LavMK%z8cJeZR=UpYpGT-%w$eweslpBcphQ}ZQ5vxi^0o(~;3yjqKQ?v`I~E*5^{aP$)GEk=?l)H|}CT?eF0ivi9?n5Y=H z?FFm!J<>_e*E2IIWF&`|m<&KDg@_S^IW2HT$w*y+`E8#N?qLDqe+M~Le>|Lynl)P{ zb{i^si>#v+_V6vt-?`x>&-??T4}vDUc>&v!5mY(vh*fIVN&C~B>V+E0gs&(u!;WK~Ox+vcvQOmr$`uw62-ig#5>xaYk%ik$Z(B&Lxo`Vw10x^F#G&x^MB zy2Ff>_B&1ZwEp-IiM-tkB>r5-=J{P)rBfyfe%qmUvK6?aImc3m4B$MR;M9kx_^5J( z`E+@DgtZiChuZSp1tJ`n#{MjCbCS?n8P6qdop^ zU7u7@8aK?a{?(wT7OIr!Oij;-XIB|yCi+j-xspxL6Xd1xUvBJP>Ga_7WHR_j<{EriFa+vfnHR@=`tj{IENV zN$gC8P{%uk`pkCksLh+9Y?^}Zjp>(@i8cm!SRbbPm;pkWaY8$rUaDhvPn}?bv6<0RI=YbLm~jIZ@t z7_N^lw*OQke%##vv7hfski6$~4NY`E|HrNJICAwztnAD8B@2&74?ek?yS({&+{QL8 z8`jSF@CME2WNsnduy%!qRxsAk_*4VEum<*rJ&XV_KsA-z&ALjm@v1yD6?yZ+8`I>K zQ@m9QPxakjbi8cXTQXr`BwGI99<{gpIwSX4^-^Cm&F>*3-519rhm#EBLcCt6gA+4d zZaEMV2EMp{b?h;PX8&?Fd*1QK?a&=B@Ba+K=4-u0O7`|v0HvWc3^J99AA>f@gJY!{ z9})^vP-vC6_%UAI%6ZzD^yg*j^9KOp^5AHEy`H3ZKKt|PEfRv{U5CqLcVnferuy{k zQek0#d?1lz#wC6cXz?2I{+OPa!qKd&{zrdme+ARHBYY0u!s`}l2?vM9v+_u-W?U)s zh);`(&osK{S%Z~S{p%uk^*sS+IuwrlC)!Y$XX;dg%(?t;pnnqhrogwp*&8t~S|1nm zqyaQky~_w&0-v}&Y`B;)>W^Rpoy2Y_EkV-UAu5?I>+0||_oE1=8})`*bg68NA**)n zuT2_b<$XtaX%2{dJYd$A2RTQrdj^g?IMYZ|NX%~N!mp0dvv{en^p0hkx=HwNWL>Q; zQ;g=aF*_5C2EG`umUVq_hGqx!GIOnQGbb*r$bdH_a-EOc4K_h4ohP>qGl~4B0%0WS za;n%5epAnBoSkSc9tT$pM6gb++|w1{Y>buViv0v2HoD~(&YL4AAFs5CQ1L0bSO}oH zPp0vq=r0B$1`82Hf>^)>aU;88y@52SWeI(Jc!45$l}03ZvIhYWa0-rM%>@X2ZhMEg zHslW5*YG@zc}CrYPF6_2LO1s~G&^j`F6FicdULEawY;Kv=^?sZK+^g#P7psqOGNs_ zFp5R|ODndT^rwH1v3Nf1_5!sn5Ghpj`*d1;%(eQM>Q6jDi6nW1Ro>IhV*Mo(!RU_&B#tG_InCY@gU)9iWef~*G?jUU@M#c-my#pMLZjv4I zjGxFim^ERE8K%u_ZV5XC0$-sc)eECouwc2SM|+=MQ5rzEq(`1|MU~$P*~i{78hn^H zZsTV{DrLW=_p|L5TV>ZUeTXk3BwI6{mrYE;mJmFvWyxgTt=!2m@I9-|ci-P3A8t$f?VIwt+kJ&S+>U6w9$`V3UA|eh>ycs++V#@4A9dH7^J>d)4A3qt)6uK} zG*m;copuwj>v-kMWoq?2fg(EVWlCHh4f~EZn&Y;W&Bc~nC|4xz&Y9A8L8xLBvSGj~ z>eYvdhv-JmHX|t{9vfVuohdSjMY1_yVJ~J%MrGYUX(HD8d>i^`a;E>n@hK61IBDE} z$%QFE0d36?ZyskW{RAAFTJTcaqW^D~e=HdfT~Y&A^Iyz4CWzKg&ddTre&KB#^3GV? zZGdfUpx;QSeV}8MEWJ4Oh^(7s%;_!_>-iyUlv($k$UW7YLkesLSoCyJ$AK@AgC(mfX70wA zZMJHG+tFNJv72m?T4Ts1<4Oc)`zfw8S>K;MsJi>n-)gYb_sfb8%8a+bwSx5NKbjB^CNU+c zPivtQPx34iESF0^@+U4@MXh+Ltc(dasx=mZ7=Yf<4s%)sZ%F|Vdg%@HA*h+#9^aSQ zC}IXjb{hV|2V&)Q-|R1~bOYoQ}h0DWJ|wMOJ~Q>(ygJD@}M z&&zif^{H{5VJ!@{d)!o>ib)^Il<8ym1g#${=Ax|0QmTYl&*Kox(%ws19&&6mWL=*W z1ji75IzpiDI!)nxDTg@Ypg9%L3^U;=Sz#%I{6eG#gSoW7?W|P8Fz=B5BKhjy+8G84 zkkIV+IymM_O9}jYBe7JH_3G|}@-b+l&E-?OhWAdb7`8;+#h*WK)eRHVNo9DsnnR*R zFeUKW85n5oqH^cpI2q+4jT}Glkrpw3IFi!YC!QHCK;CUYlgPVkyhMj7U4N!w%hyj| z^UM8Bah7@TYghATwuBN-k9!~=>MCDCCvFsl&ocTC`{^*uS-X~9x+W&ax_14MPJ498 z{X|IXeu{Jg-#1mCEAH73vf*et`bX}qJ>sEADnRn)XBY42=SU;eDVICGZ{74!;1-<+ z-HWvfthM`jk9c5+Xd*sqyz9ZaCOeBE4CX#v8E{+sY3-;UmX>$F-nAI;E8CM*Z}JWC zBs%|9JJ5R|`t$zif@7uEzk`8-Tc)JaGg+?ZdXI-4vKCPi)7o~-lf72>=LiVEErE$XANSUW&iasc-NR1tdmEpl1 za4e1R5wZbkzGn@88cTdLtT&4>ZAHZ(DSUOW_4aj7eC$qrkL;{h`#>`N)pFo<^TBDd zz!++~JIiuWkXkc{426EWdECeF)Df|t{`*{uS~>&@`BvXPppP5nI7!5xyQd2R%5BOP z-C2*Qf01J*S++F1ZMfZw-=8FQH<`X`Ta~kVEr*;`HbraoXre1oEeCC#;(X+hfluCe zL(n7Q56R&^#A4!QI`*W)zuvz~7c|XT0c0`WQ>C`Z{H4+v0jZOE>4lgaWRM)BmJUCn z*Z|kRpz{dnpCaZPa@tj8cf&{0BP0jVrimy7kn?|nY=B16a4Ga@8^VnP#xa z9p}Hi;qkIAAG?C=C1oiRlxe&wh`LlX2L`dM&b!_6mH2apQbcD#CiUkqHwH%0XQ$AZ z6uT<<_V`?RsI)V%053w3*6O0jo?H?lF&*($okmnZ<8(bRX$ z8o5G5YT}rVZKEZ9tWmqchy2x%Jxv$ls-aI$4C1jqC(7YRrY?NQUqLeu(v1;n7vQ+b z_dQ+ZL0Yy{r2g5u16H)`;dDAA%v)cx1e?=2l&jZOK zE$R?IB55g5XX(i7X5Tx4%UKM=$u4NHjf_zHYnFyqZ1+P)3I_!P=}Ko1yOw^pp2_7% zni=Du?0(Tn@HpXBFL$+|^&WGKF00q~7Yn0-y>RWWFq_eb2T=A@Kd(F zhYM~bGonP0n2Y%L#$Sx(fK6Nop_PGgP?w4#;}Sc`r%bP#hPf4GLsH+xYgSTB8FU#7 zK$hBEtO&KknONE`;&AeJ%<>m$ALFwv=VOaviMdG0I8LaBY`=@{CzAX(-d0o~`N$3p zu&O*XEfStoYD2QP+|G4}mY=TQhHx6$#(E+&v?0E`&~5gE5}YX^D=}iPIr@wUPKA|E z0%BWCrM}<2SG5)-a^1P0S1>K-I9MwiEDbWT31!dRL(eft%l7irNGyFSN6Tgj2fVW%znz9upwNMaLc@83N|j6fiIGKsN2G%4D@dL+(P8TIE z%Epw$g1-`N>83@g?Y<4>$?GDN-U?`zKvZ1h#t@*+9LeSn!csXaA>}dr((xe4wPs zyp-u(!ZG#}i-Mz@{10Y`o`kiQWI}LH@i#C5_I(IIhfK0@Oa5x?C@~vsw571hGpSS= zIgjO%5vm=K#_2+MO(UstIEUQ^&6hUc=qDAKd_XqLoY5Nocnwc-Zj~uPO%TCH(}{T^ zi_62lTKmDRs^(^HFm!uXk%Bwl)U@`+=N7B)V|XKb$z0HaB#|qEQ+%dNJA@QBjrj*` z8~q1NaX(nW?YA9WY5PPus0CF-Kygml2Z9Kk4RvZ^zJ$01_%~0~-?ue#i%a=tTv3sQ zf%Q0NeAp^imKgLx+Br$!HeEjifZjP)ly(`7?%AUCYZBOUlG&2cS{`yBc(2z}m7%R% zY+gV&#)q!Hh26*cN+rgYH(3iUstB7Ip7P=8@$RKWl5@%DScYML@-AYCnnr&nuXX|w zR4xp$IKo*@-LPv{jO7!5DhI3P|6TSGHd(rhd$w%&zAErJM4Vj{kZpFT4%xR zg<1EAD2{B==8_`1sGN+8$9iKwo(5gW`IFpCqX`3QlKAm@mAq0j)wG*lKtejhY>!V} zqBVk8$+*-NcK~*=8(r-@wBjvj5+%~P)PNo3d>^$|?mUsDY6znQ#q~@cKl_z!qyet~ zCcq%NE9ZwuQIWI5CvayNS_CqztE+Y%n3&sT**ABThtXl zShecsl`^P-Uwv_pZL?b$P+Y;pfO>}u#|rp%qb&)e2PAM(;0X=^w5$6{&X?LVL_Pqu zW+7S9mSiFLK^G-b1Tqk+GZ4>qtP{Ug*`qPew!x)qH$$dV{>V(p$9lma$ODEyI4g#a z@`5)Y^>|5C&qu749AYY-p`Q*Cdb<(Iu6r2b$P(vpM2rbv;oogp7`@P-z95j04HPtO zWcpxCJkIqbbKmgtvo_~*OVfC_b!p(WTx4g-=me!~+h59`N-Wt#lnRc^VXXHu_$^bO zYB75DROuGPGx@0BJ-4bkvpTYXO%o7&wL`M znKgDi)(`gV(26YNr|b6*RkgZL{=7HSxgjQ*pAqT%y(FIK{nRN*j9D=E?kQ~%=1FlM zo}9vB(-gK_>fWFr%h21>U`?{J-T%6%uMN)H+?;PY)Z2AG9K=#KZ(-)3L^hzk#<>S+QcV)(iL5yv^~ltZ1YcmluW zm}%UnZge!}*{^n7C&Jh%b(ng~AOQ*gNGhfsyEvHN5sz6aJ9BSbg5dbbG#Y+%hUwl% zF2$Sa+%iNnx{Zn2s@O<(1gpn0)l0#BWh<4za}uVP>eMt!dm=f###wA?zq}dpib#_U zRMyL9hUR0a9$P_r$ud8U4?g}fh&{el2c^=`y-8D4xXktRhpvwwX&jZ6%C0Z_ zkSLLq)P8z;W+Vh<+5P!H)F*g|G(xlX^mRIP2>7r3RoW+QnB?>=4c*1_R?4DJ+`?Q=c}!UYUGM=SV` z6vYkwygdIcrA()uwGQR7#M~-I`HD`gQa&f%>OvKRRlgPFwVSMNJ6Nd0+vDodP;Bws z4H2|B{y?E(GU}c~bu63K5{zG;+xnWMH2GA5v;TpvI&7oG%prR7Ewr?$%|^l`_~NA< zoe829EcyjDQw%o)SQ_8E&wt6@PNT7mt7gz*(YN9(_~ayxR&1#4No?R7{DSjQK+8uz zSUyvaaj=o{Uiwj)alb-KwN(g(w|?}Q_{RkLnf1lvQk_MZfI7x^O3 zlXE!Vte8;Ks0GmsWp!(SO02hQ>=7rT0cU!2TO^D>K7*iF13!73T?47mc|r4N5-x_N zCOo|HjcH;V1BMLF1Cl^(j(dl>OB&?VgizoIJq3{e$$0CG$zT4vX*yRX2WDt!?rCIp zHwaLbhvcxSgCpOVhUH6h)!|o2_%|1w60h=o5ozhy&d_w5gEZc`{V_+oYJ_yb_ zyahM4iRjbL4@t7p^KRJJtRww6#0s zZp!Rm8p$A&PLF$Ws1Ft_H|N!|Ri6&C5U39A4%+<3N^FGjsEf0PH^tFKl#jXLR*Jhs zyzbn#98MH`)t|!>muHHixkeI!_hPMz*rFDHPFb@Z73e_p^RF{C<%M72%18T3rMPia zp7KVIoA>Ezw%QDGf}e~M1SrZ-QU$3P7wRgF=%AHb?@BmCI~O?fiDkKVJ4s0Hr}Ae0 zC52!v{Jm3DZQCBFq~EPu0#g?#q~fJADk`m=j6j(SBmb_f z&xR99%VR=0%Bx(*=oWdiJ1s88p z;1eEq%UY{CLOUYN?_U8aNGBb_0`l_6+yCmOTlYTljZ<;XlclAfJ1Rkx6xx<4-ra2l z2D%;f64Eb9nlmg7aU(Z8U{aV0MU8TdB8$dnI=8xf16`9}OgfDqbI_=F{`pjU-);@!U(XO_Yk_2;+ub8 z>@nNlbbB&C6)4M_C`CU~__Pa20%~B1oDS}dYl4m=tR8gBkfeU-d*@_tWxT9W;X)UY zL6;IOchMhhnpEz)B0FwUpFONTCja+CeR#uM8v}}a&3~epbY$;_IC0#P24wA^)t9DQ zUXV7W1T2B-{XG&mc#sRkWa^u5yk|u?tx>dF7pg)IwNwGDZXBV$MOfM!w+QAX>f~XE# z`9ZkX<>b`g=FYjxg+4s<+xuI;pcgL@g>BC_{mQpHCQ7_WK_~#JOv>V6`u2@es$L20 zKXKApf~<~;=a)X|#4ADgV=l2#M`%pZ|bPc z`{O&>AyTZ-CApJvSY(KYQgr%{GWC{I5-e-tvp*n4mcd_QtqV!yg-=&le$EHZZqJ_- zCM2mktUGEUo>?+VyE0mK%QcDBO`5cF`i;3~UR);4cAh5PeA2NWlR)NXZ1;v9y$WWk&!vkfh8E`-@i+SkxkC$Q;QAQBElKm9!l<_y~4ynQ+_^y1f5 zVw0WkdSO`DTG)e{b|22ck_w8?-ue2}c|OZQW_OHOj0#uT5*0Z5d3e^IKwueT6FwEemWOBk2Q(Lg504fEoy#0`!PdFaIS znRjxMF&gM-OYAmrN(8M0ibz@d>6pLrs(;8D9anT(sdyivW79YkG;O80YN0c#B4q6X z5u;r!ODz5;zytUHJObtUR!uUL-xG>`ml7UT(xEf)UnsiH%W9wwPPGcS)V+2M-@laW z$;YMhSroS_d#@y_kOpym@1=Ry2GXgnRDTgrRYLDVsP;)~B5pM;eN#_ghWk9w+Xqdg z_q`BvPDK4S9&oI=SNr~HgoF4Vy=`hT_ zfcILSLKu+8I~e~7#oAok*ZO6l2-y|Bj8#FC`az4LRu^JVKUfFyh-G(`jvhqOq>67< zMl@jJ{Y zPpT5knF1mN0T+>nI^=XT6P{y)P5<_c8;F7xjD~vwbPp8x*7BHQWMcien_OK2v z!=EyDi>{ySq$8`kum3RtOk4wS$4BXgm^`Pxtr0_dfd{X)u4e-SzHf&#zJ$lF4f?$wbWG}t1eY$z2!>w zcJp+UVGSl>TSbZUH)%OgiqKz;0~y&VC#lwPh&}z&c0FMEhdAghDzDaWJ5ICq-#r(K zt&kCs8Lnyb!;TCVX1WW0!$G3XSXQ9e5?=oFg%-DoqCj-f#a^bgchxs2R_;*qg-1Nh z>NE~Wn6K)*vC9LA{MME7-qNI2X2`jTe%R$esT0=B^DD2mQEN`pqlVHJd$HfwZT6E< zjBB<-HvtzU?R_*>z`qpUM0F8Y5P!u)=eJ>aXuHXoip719F`4DKEiT+kD(!stMVF&V zv(v(S7!JCLmImC5^e_FQ3cZTg4rLz&vc^pbpzuy(F86RKvvnk-!@ z|MtDgiG`;nGyX*G##8cM2!-s;3+NmlMs*f-iSRyyU}HddO+)-crBEp6j4o2H7ImH)~T}G9Vk;p=IuPpPGb)6 zQ}^SJODwDUQA<(t>xr7XoextwCEnJ#hr+>8rWY^qHy=pv?k&Kd7Nc4t=CV%qQWRVP zZL{;x-Zf{HQR34D(;%&U;pgM$`kXe&fbj0EwIaITb^Pq|Iqte0qfNKV7-&@fI@`v1 z{>IQJsi%_qt_AbA1F9aGmlA@Hz*)yw{9!Q%uqsEY6zIQ-9W?1DRP_@S7OKz@6jx0~ zKJv`8%49M&@-zw;&N(`b&zG17G^MymGeYu^#!9=%Sv|K)tj{~|tyOdAC*)lu%fu9% zumN?h0FukZrn=7PqX#AB?gmi78mej%p;7M|y+ojf$>RBgqLd%nuIcp9tmf$knc`=Y zAm6o5LnLK3DkIxbt6{VDE zo8?KMQ{UZhv*vm>6Y<4yl!#LzXM&{q_Zsge-f1b5oFxutK!q)a5AO0)#jVSr<>j)v% zkSIiamtc&BR5?{ukel=Y&cd0HFQO&QxT+2K+6c+Ok4jF2Hu-*?)o3S|K&EXY4~6PhssZYB^`5iG;MR+N1E;e!Z|pS=h>y2u6kD zA69mjA#r4Tj#_x_C^3cNsuu%5cv{${y)pcN10#mBEZdIF-aaX?8)y3 z4P7vHwL*GHLHfHCtV-TYVz%S;4!Fu2(X5fzY|MFm821=XbtyqixTIt(E4K85HH6A{ zjCcd&u-nf`de$eZ%R$}^3uAFuBv%Rb^hZEBt(h5O|1OYGvIe|HP%h^7bvpg4aaZ7S zmN02Y{R;zq*KE~%v<_lxUZC9uhyDm}sf^t>Jj14Z ze6L>@dhu;XHS8a0`K^O`-sFpE%5eFE7{R#<)S(40+iW|cTsNGH>X6F<&2f_Pu};AC z^|WBDe4LitGqmYrGt1d#cs)U3_16( zu*=oxVxE(Eso3@z=63<2R6m^2g?LeMsT>>WT$Xwi5_iF__J9ae5VKLc?^-6qmr(V= z{szxl3|)%+ubwUlZ>Kf+2LbJ0zpgdlFRmw4wKa|CN*Rt0jQFJF*{5PaC`rOHZ735syb(JCRtP~T3fINloA&K(SCXfPZp z?=dn@-b0<9#i17#ytqo%{{A)H;{fW#%pOc67ab@5mny0pB8*Di1wSb)XVbbzk-Eca zrw;x-|Bunr&A9$gf5kE&>2Uh3ek|%a-GT+)RNkL7GRg^5X!iKGmhK@at;)9xuM;oDF7Rd zXU+T_m8Xxr3xywR``+tn(v8tO9ED7sB?ujAWhnpSmanqRY&TO$3rHw}Y~RC=!qu!T z?JWuCv4_zWgzyD$D2Jmy&u*{dXi#L29eOgN>dz@%Bu7?>H6fEz>T3`NZEx2`tUa1I zS3ulKX3LbCS*res+N8v0@ncu`zt|!-WU=+~zJYZ83_@zIuF(+v)@mAvGjKAq|R;hwD}&ohXOCV?Y&bW5rH!j{X`AJiy0_8mK0FsEO9HRSW)wOMQVQo zQG5A*!HngCKHp)q5*v@rrkAOia)voOBSxMXQUrxyoU+5ykbVyMfXx>yk$+E)Jk_1k zQakmwMLN{dJ{D)~ZOJkof-GYjt9Od=Pu*BgCy7FfBCkJ^TxA;)6jMHHp#dd-6kqDX zS6RzL8b3^!9u|p3xUupGULs%W3!N0U27Z&gGjcsR4l;B4w94kRSlhQAti__D(@RNq z^_W;}MFecp9;6UQ^?9>r(T9q;I)DqtUR1Jk2V3lD-CH9YOBIxY0p(u4keqccsQPnQ z?hn!)4J|DA22H032}GcnBZ`i7w!7u1657IbDvI3R$sf)vP}&Zf13DB0b$N{!VJ~1E zN(C9(y=tZEQjk6kXSSO!Q-9J#m#n@ML3nnWqLA6~OJ(C3x(lQ2^Z88Sjt-dAQrSok zij=!Q15)wqkvb-dWy$h~+AMFr8ab(Sy! zzF)ffRyZU%_(5_dZJCxV&7_TEx%KWiSIHc-J!6h5DzAjl4HT@phE)+u6OFu-cA~6nhPS1;y`JD1kno8i5qa!c;)CI6 z{sY5swi)22B)Ok%c*hW%?1qCNTJuO_p52Aw(G}tfk{El*99GSv61lT-S#+Eh{Ub&P zv|4yC;Q_BzUdSdDkP;8vO1(#LDCOU$ZYZ8sM1Sx(B6r!fp?uZyPAhLWJ?MVQ((b!8;i1K~wje?m+Sn0` zoCNY3O<{_}CJ47WK@;?yZ+NED8-~&jLSQ4fARcGPg znv#e%F4!s>c%RXmiJp-;GvRJJsxIbV`IWip)PVZG?uea5XNLdp1kcFD_Dm;10UHrWkGf}@e zY1>-wIDEj*w{-7MuA_7wWWU!ZA^G}=vPdgqcKM52`Lh+|Tr7jLv{WvCE&>OQlpFqW zf)5{=dA7d5&*c?eLSC=fokKqwlGWWdEl5uMM?%m-+H(CP;^ysPN|4a`6W=X+j++X| z_j|cwFOO`hLgFrT>yOL}+rt({enP8=LBo_miXvbo6;o>6ozrETC~lsU>z8Ss&q%mR zBD3jjuFlo2$7zpMPxl4w@4WrkBfCEEVm{=o<3ZB(`d?}h~; z?Y;0gAnI~&T_z;)PSg3qmEOh0D{s})8{c53p}xEwf_`)BXlSzEZ#Y15&uh6(36-MOAWNxbBp(mECYC+KkH6--y1Y!kpuhCqQv-e*`ZMVAGVzG@QtEu{ z66m|2sDJTJiL-v0&}ChZF#4(|#ig$HfKISCP_f)9wnX{U`hj4gZ2bS;u(LB;u?EQ# zvz!)EZK7ZK+i9phj9wc2?;ZT#U&c<5X+8m6+I7Ll-C8|66>PT!!_Z-Ryh@S*e9X<#onSRg$k@V~a%7d5(*@TvksUrQ0zz2u)GJ(Yc;%}Y-36#8;{b}#1t zwRvuIYJ`a=#dA93bBl2l&92Sp+!ZF7V66LX70>BDtE=j=_ZE-%|8JxJn#L9FTW%WG zuv2)Mee;7TFJqF`y-K;m@h)}$`&eh%_0LY3XfsWBf9IT1y?;{4X52kc1OL*!yxwvT zkevQs$J%h{^_%f_Selcu@zYIEzqd`~xyMVk&c8JO>ljlDbmFvd)Tx1=>zcjTdgQJ! z{&>W6D0%Xh{Qo$0?r%aKDph1J-q>57|Md5jZRN}Dl1IU^XH1fj7266I3(Ga8z+Czt zrjBdARxE2y#n*Zm(gJxI$|?|RCwuZ5=uhmLNNAkPMBQ?AL`mlU$LTVX@nZS^eXO$* z?8!fkVmVSK-xE%mT^Z#3z+u1Uri3|a#e99Yi|4+1np z2BuR$ymgO!}V}*Z;Qw+ebhq z4t7JM{Hyz{CTbH_%N)5+M*m-~2iWiKNG%>?pEOh-h<`Gwl1@CYN>!!IqIvbsOxx!A z|FNrtyUfo8h5k=v?;M>;(DV&oak5D^_Qtkt+vdi$ZCe{Vn`C3#HaE6y`+BqYbARW1 z|9sv#J<~OP`qY`}Uv+m)S659@Hv3$@@=&JmXwjpmLICVVA^!g!F7vdTyD)kl1nQNO zTei|BQNBLCoLBGvOe9}($^SCxsIu7-Jo9(z6xxM4j$Z(MS2oE?Y%pJvhB8I|9}3<2CbC zAJ4Y6!BMau`>1juiHfgQWxSMZRhA6&oEpVXR}J?u890Yh%A2^*-1TO>UalvkQ?W#o z`h6JvQ^{)^?>B1wZIQRVIuuobynhyEn(_v}Naf(*pmU)0 z-pd-Z%beFuFYKc5c`|n>deJVwcF);X zlSk7w5mc%J@th&Eej8&6Um*MJrwq#lbid{F+TFLxst$*y!d0Dg-P`nQQrSn=7~(58 zsBAQ< zONu8aCt_Jp35Baa}(gajKO-`3$Ag^si8_rYV zKq(cAj6Hbm;?2I8iawJyD4s8)y6Q^shVegh3J;?!(Z3__tR5ed)0`izwQx|=WM5{0 ztdmA}-&`Y_#gzPLAc&>)@a?0H)u*qCuK<)OB;po-`0@C{<%HpdJxRqoJu%uOL)R~( zqMqxG@N}Y98RR$8S2)=V+7+$3W>daEi{MW;Vp}+wbV?Fyg94tHh=)ZCm`a<4Tg99K zB(dNk3Jz9<5Ndlj08L)?mI}9*byAbi?_t`U5|5o}=JBkF(rqwTmK=FT(%au++VFZb zGmLn(nFR(NU)RcM?Dnkv1}sQzHquuRwZ8n8NC;hm7xty^C2F{$G+vO$z~u8lyi--_ zGqA@4_C1#UZO!19CnH6kO!(*>aWoykMeE=#2bdzk%|k?_^dZwGiLGgUJsHv=DyzRha>< zFZA!0-M_FC{1lP;Ox=(-`nzWQyUB-up*;@MtD3T7`w)#hpdeG=%_jnzuSf{++wb#3 z_72VMz=85&v6t77A%IP#hiAj-%UTr5I=eYDEJ#ULmxx!4^3-v`xRzF*%npN^GmQisN(&ww2*JlfSIS0Ezb1cSSjY z8C|XzOcYXNhdfw(Qc~pbJG586L|8$$udf` zZQDp~Rg+1kiKus)b>-Zzvn`AhQoL|3?O?i*UWkcVcL;bRuP>lnO?{Z}=rjjh?Wr3k zZkiw;XvAbGIUA)N-aUMwOY~U+%IYumgQmYl%~+pQ3EG5E|GUKwILjv}%d_e<_p^0B zE;BwRtDw{eL$H=_MjLDKa(LNtuGm#~e=KVqCiTb^ms#+oIOLJ<@2Ec{%Kkcr@K)o? zf2FaedfY*~?jMkqPCX>if3DUg+jlO?%~5>*?5d`pKmY_RH;&1iS7pDP$8%BUVyH6Y zX-98q#Xb7Km)e`5@7J~lse6F7-z1(VU4?m7+_B;Q7>=cFr|FOSG)BQQJ4Y8p&9}go zHhKt*#2qYl?(4&wx$a%Gl-{i*A^Ru@JXw}z!CMQzksMfPBsDZRx)N4ubBPZgS?2=dy99OA=^B)W~@*R2V3_ncO}N_qb#=>D&OKE z)DH54cOMnsl!}TCYy%Pas{44`B2*QHXcm}&l`(yCA>v_&E5FatGj^A z5u}~Sh>dr<0k`%J0&Y>}uar z2+h(Cha-5?%zY=vOn=;*W`WtIjq=@Jp2hy?42vE_K9SBG+hQUYF4L-@1UXM-=aa1a z&#%k{KYQ<_g~DcBse>;_W6_y+-eRZzi~uz`cdD!hXA!4oiP7Vwp!R+fPFzFxt{Cnu zTSdA6OSGI?l+xjLptlUdXO)|Q;f9X7vwvyiEOpWpk@#VJ`yih-I&SPaxQtD|fzen_ zPSCHW1V$$_*V8a&nFYVhVBXAC!?)2+`Uk(tECLik+aghcn9B%8^a*EQZjRtImzo-x zI(z_sh}U1(A*D7H?vfU+>gn=_edNFbQ|)?WzL8|WXV^H_t4idE4I>O>9_dsy$S+ge z?)%)X)1>e!0DLl3_haV0lhytR9a?M3Ea z+y}pH4Jw!^%2F!2p2wIvk)<#XI}aXo`OY(0U=qEe1wIAYjw3>i3&lYtC40qW)&NCq zx5lyV`%G#K{#B!e6Q*fmFP@Iw6SrAM8SqtHbuzLN^N=P~1kdvkj-8qCup8@LzJD}D zqn^$u=k!zZJIdcD6&?`vM)N!{D9My&JIpB>>5llVu@3{F1H=}*gKIG--HFaXgKs$b({fsoH+WI)o7z|BQSM?!$_lcaKt2@nl<3mS`GYSpmf6Py2BggsjIE zI!NI_>;}iM4~>1VgVizM<^1FASH8jLQ+)wHd~;3Gr%$)K_0Zu@MgYXYp5`uT?UOg) zf3ne8xFea_)(=ySZ;loO97Ba&N%Sdgvwe0_?!B`NXQRh*5xacHY72={t3QCq)+r0Z zuTqM>c*TR-6}Y9d)Opy&9dH$!=EU#$k~{#H&K@FG0*FSIus9=4`9XV|5pxNQMt-BL zv#gqPOxKR#Aw*&{TvRvJ$UGt^N~u&E^tzZ|&wH|-rI6PpGvh4=yffj;vZX%Ss~U60 zt0qAuUr?_d=IR)C`(bD~w2)qw5V6XG~r zVfEH;SDB^qC~?1XAFs_nOB>XVUQkAvsKOf?krL}j#O1MPbB`fWN9AU0ZCMbR8o?1G z+?{vyyiqD4^Kvlm^aI+50!vudPeXm>i7j~H0a~)zGD&##Z&dtLmK#&JCjLKyscPK$ zd^qX#P!TFGZ&C>Z*ln{iVxoYV5Xm*TSE~xo02yi*W%eI#-35y-J2;ttQEv_mTU`{L zzhQiE!S+9BvSKlj`SMQwIaLbl{!t538j47Uc=h~=yoNMxzp%%T$S!>qkltQW)sBE& zY*?>&`v>)L@HS<`m_c2y&l}VYn+lrWkvf0nB`17zE<9h8X5@Si;Eofk{OV)1ByhR; zG9)V7S;p4Fen4Rs#3~!Lg-1c+jauNL)?OMkun{G9c3vjwA~rH>WmCxzAzW*^xlReT zi{}@PFF>INI`Rb~955&fJMAFD@Qo^V&!B8&LoqB-ii|vlpo(hRERaST-y6T=oHBU- zti5&(S^k%yM{GD&8j4nW5t=pL*)xVG+%CjWRyR^h_!jB!jA=vJgLJm0yZ)Mw zmz}vJ33V&YA0F;RK!88;--wU@7aBzTQPH*U z>X94kn{;_Z`Nv_|qEI=C8|@qRCsEl9%3U0?JDx8qbVyR)UlTUWG*%# zl5pM;vbHIfm>=5aPxgc9SSjj>Tm28DXiqod#kYlp@xWpHkhcsRP}9(uT9r=Fz;Y4V z@hBdP9W!pfi)t>az6GFf$_Yh~6b2XFsKk@JPy4u;HC%F_6E75llRffkzwdB7z^~?&3yOa{5FJI0%Q`{QGWpc9>&%8#^1#8&1C^g|5sVbAaH7kh%QX=S!6 zjrZ8IXDfD(npdB8uA`$Os@vsol4_l&BA1z3i^86bj^Q<8@f8lXJRo^r863qU)r~!g zH(Q$7`yhnWRruYFkoCyGLG{5Ir*8dC!>j94wF`t=g{~%1r{04v3Y_(Ezfk-15?q^X1|rRyL;o;O4WC8xRlnB|kd(lY-~y&1nL3zpg2aQ>3@-2m z?ae)a^VzYgT{6bdYn_6z01-)mfDK(zPt~@L>`O6pKJPiA%O7MLgWoR-71XY$@CON3)Gl`R*UvSzVW24oSRaKRU3)Noz{7p zG}?|qkwvUPQP4kXe}XW9R|&OTZCk_Euw|*miX0BxBd^&_kdRyeg9+|(T1Z#cK zG&_;&;xL2Hbfml9N(G%?6g-^KOgSQu24KJY_Y2NN>UMV>V9n_|K*)2@bggUq+h`0SJKJ_rEx|nJf=Fj`2gc)>kVHd2#psdpVm%$pJNI8td0b4btteT{CCA*Qb86#+!wqiuL zqHj~9+Em+DaWKbIz^{FN1<#6kIbW~5qZHV*phFz_x0yat>zf0)Cj9;qvygoTj}chv z-&hs1Q`XmcsLIc1nMd?X;d>mY(@1kdRhk2G$RYAHr_9+Ysc#ex_$za}Q1{3jD!YLe z?6V0h*vzMWz3Z@3uBImR0oY)vMz?Tb+-veV5<372uKeu!EYn#YdV)M>E>|4d8ytHP zdv=A}R$&2S#g|I50RnX@jK!0fHobpMFz{{{SjguRh&dehe=Dg-6J;b}zM)); zkFc$72VUlp;;wa%mFm__;&9?zX-5*m>Dx#_b;GwP7}?uq`cLoKw!pAG0``;FRnS;l z&Z5=;B-R?u7s)AKM5Zh8jDT5Azi{ot<#0CPkkB$jgw%uA%H9qsn_oiSUd2vj8@?Q#ok1`&t03it|OUTWAx zxt%^2*rIPpCZZJ>ksdRF7F3ykJsh+6nzG|gO6rI)tsJx3l`NTv49U@%;GJ{rvbH9aPRkGtBwH&-bg^z2OAVxHUL zOxn@#NG${e*h~tvQ16+5FtFoGf5l8aE&bd|)MigW=2kUER3`>(hkQWhV(fdaB)2MlI?c~ePifnkwpBHqvdp5LB4>ZPH2HQVEI?q z9k!Ov&TdQtD435>$D_JBrL5^3CtLA686qQ~Lo9r6M&4E{)6}mGzxMk9eojyFRezXq zMTr&L6vFESLo(8)I+{#f=LUk%E?dUwuN9N2pYDeh9vg&8AQ|lH}b&~kP49Ln8fD9xmtm1=UJIC9di5@od%gK^Y=;y?kqnTno(jH zf+#zFE+c-~+mPVuo-Zlo!Z6b3Q457e27UdGW)Uvf+)>!NXn;YA8PqX$SUta?OYv<( zJq7$roqT;{ENe;##Ruv-ji;6}ABd?yqeBjg>D}K%O-y8mu_V6~qI7&}S<>$gDpT zI)q4VQvTR4`&fTzc1Q`ZpU__Iq~U zgK;`Vj0#rHR-NRP$g6oYBZ9UDul%_1)b?RP%9*5V-9{;?O5jC9cBuY308Mu5o<@s( zNV=(dI*qOAJJeeU|518gdMM(dt;*QI*ysf!RCz7UUn*}=2#zv50&;r+Fm!@90uNhlY3(w3>M%}+p?m2IKW&+XW?GL=g80Z}q*5rANa1FA1N zHo7JGtVa8I02_<})pNuQ7C$a2bh`Jqy!{jr&sR_jeJO`uwk%Z#AO@fhgNFJ-j+RD> zVw-n#WpLktbVR#-BnLpmB0P7(@E^nIckLr<11Jwv60W$H6Db$0zsC4OHzmS%%!D^k z4IP9c4F(Fje+vBeWCODb)j<}CBP>-e;`Y@5CeNOq$-t``9Tw;55@z`UZDz9CFX%0X zDfOE=;UlI)QWQnmL$u(2z%XU`5s?;CI2uh;4P%QF#o;Y%*fUsmT&yH>>7x{ zSIP${@dJHJKsoU-CAi_S0qI>=)H9 zj<0TpEC3%*!QabVTjx-+2`)KF8?U%GLvGUT@6~7kFN4o0CTwS0u*I}^U{Y8~ghX$E z%w#2y!uzs^G=lnQr7`%e3Zs&l*`6+S2KgbiP&rbiGjFj=77IQ+hA1x~6^Gw{*sIIm;rAo0 zhW)Pm>_>BIF(DXvhw-GvA@|IBDx%6qvKGawJ{nKyx!+=2pjYt6WjF}?dWLOd)M^PS(BE+Njk{R8ug-hmnVCS8lY=y zZ=(q>K?3H<^}*TR_wc=W2Xm?-J z2a_eL%)#j$jD#YQ6HwjJ2bVv9C)8_vTx-(%jU^7*WKDXJqb`u^k7!B%aFbT8F#i1B zWAxX{>u_ljSd=gjTF3YfA$FK=q`s z=nMpi_p%e~Gy5RZ<*XLlIkODQ`vF`GbD;;!p-tH8D7J$UBj##C?7Xq_%U685stD^N zfWacH{>14&LUw&9Bjmni^TtD&t+BC9OLM)QSb(jRb^Bi0{pwp#Wm_Y}^6U%0oIhv= z&b^N-g=AZS8NP&+R4sUBSqtF)?hW(?b}tZPAO%KZP_vF(P5c3Y02K8sL1XQ~++X~KYwxD_I0HQ=aMbWt7uSEirA?;a2<$7WSiaf= zK;j?8f*oUB8+EhenjvTV3y~l?2t_#rWWv^zKD`$tA-yJwT7h@S*Wrv}V*W?9QU0EC7f$J{ zG$I1{_=n~kx@43~9BsjFLj1p%gk^X)0hheY{8QtT!Q(AkdBEm%n;cDO5-DaiaDem7 zU($JpcE9ko>+HdvlnE1T)ERu*2p0l8h}{(!8yb-{^eFnVXK0MqnNCUD`)!BbO@d2? z3Yul}UbM_pTh$A2W-SZ*4B4q<6D&{Rwsc0JbJ(=|d~cx&x=3u6@Z} z(nt$#J)zqtKCrV=(GM*}b^Hd{#ILOCeh%NFf}4zTW3LK3s3xT>Le4yy&mV47yTH<; z5#i!g+@ydaxwxTaVy&x0AM7oWZO`92FTH-ZSQY^y~0RySpa;B_VS7f59KTu1qcmryN$z`4%fvO44R-xFyw9Xa^*|fImaEwhk`#FaM!a+_L~Kb z@yr;l^+N;m`-4XoBl?g>R&q*+hoEf?pln-zE5waC&HI ztQtwSW80Nhlyb;|?Gur>MMlod@}@C(TY*o9Sk~>w?79p$JgIm{fBWg?jX#Vs&T|k= zCrtY%_LiskDSR|%MIm#56c?RGaH(PWrvNcE)S7e2DpW_tr0@@D_a3hXGhBbQ9$A}% z0GYJXc5q37PX_QFvjNBZnUQ0w)xY#8x$josQZIu&U!Z~3xb5nHE$Cm{whQT-2ZraZ z(2ZRjnH!)tPUa@WhWL*cfr>w1E?Wka`?AzVBHd*=>XR*yI)67k2B zpW?H~m_#`%n^5@Ge}zbIoni5HQFSo0Ae%Atu6mQkY6*R~oHCt5o?^#PvcI^GAbhf| zwJ{Nj4{XqP*q%C*2lYTL23H?@27v+dFu>p1Wt-H6fJFV^u5v1ek(Y^L_ZeK zH$ZHnwNL<)q(qdjXztCqcj)t&JtjUJO~WA$CY7W(=VBVv?)rb`MyO!rZ8qNwDYd-V zw_SFRc8zP_oN5=|+(e|e83)8_Ano_dAhdX5HUAci%H>8S(zP);dmk;`w|V>IY8qIu z!8R`A=>$?6q#|5mv@T`6J62zphXW>?V9%&^l`a|`m1fh@h+l@P*FCF`x`qMh7Ce}L z^5>j_p_n!!2E=Iwa|4~`8t&Iyifn}G2qvW!b_2^!xS&7iK9loRjE>|OGZi6EOy-oQ z5Yn!&pUdY*Fhf2opa1-%{R6x*PcN$JP9capz)*zt|JSRCD2_3^N^v65g_8{Th%DW2 zqcN}LGRXC}t)v=-SmZ&+0!_8idx~qAd*7 zGgdP;VrsY4qS$25Mv5adt^|sY*Nz6UmT1>}bf9$*M^G_i3p-7W8Vg!4#?7`$cC5}wIbF?LZxVa+xELO}a;=NF|BuKj9(uTGXP zG67?C_sTD09P21mPo&+zIFfEbwr6u>vC#s~2E3DRQ3pjLgK)$ zu}E`ntx|lxgbmsWxnE}#Qu;Gj$lvhV9R1@9P5^*;0kX$?=tdR)`}KHIA{F0t6l(&2(6Uq?NYPBiffmBG7Q{-{!Z3P0n z(5L2SUajo1x$&e5e=2TC1Ap@=AKk>g!W-9dJo9NHa>l1!eBdOzB+y-~4wh|aGRzig z;fC)nYySsM{rh#!#P@FnD|4B+9b$&$v3z6qyq)q>qjm1Rk4niHcpv7`o<+02wS4U# zRlZ3pG*Q6ixm#cJNJ28o4g8?(t%H0ptYujPBCkd2-49CApj`Rmm20e`^4}&L`+{FP z7ci^A)}8U%mFO15R11=Xw?~=$5-<(XGNrvtp%KBU%=N}(K-sxZUz*-JiG84=&v z;b5yJY{uX@S980+ej zw@)_Qd407n3O!Fs87pBe!C<(D9E;-xBC$x8^)&cT0dAR?!N@ed@XLk9e?11#?}~f) zL5Q85#19{*1DD)jlvzRbtE}b@h(Y~eXV6f-qzxqPV21nSFe?PY4;ZyT!ulP%TGDG; zK6t3nCtnhu%BxoDM?)wYOYKsr^_?_{ryTi6&MN%AwTwJpE>m;*Dbie2vf(@Rpd8z=LlVO57U#Z7$jzsj;a_+->|TsyUr9UD}a zqkqG@OODIsCF@@dYYBiIf*2ZP<8B^%qR013KOwbpL`+^gobx$K`fgy`ba#^QTH?B*pP$TEc@%K zBV2Gx3rZieun%P*H-~|i+( zX6VyIf}{hv%Bt@CUK}2W*%fcX>}SwxTp&lU$mY!)y#E7$fat}n>g}ff4k9&t)}22Z2NRI?d>>O zD@Ubfl62)tMo%xrkeZBUr<^Wg`a^g0-uW|2(_x8wsdI5BDmRO3>-?~`yjNO=L6={j z++@2Mc>dg|Ql$?xv1K71BmP`n7amZ(zM7DkxY_3DT+Vhlo?^R}gzL9_#?#(tMLch^oJd&8;#5IYej%1j z$;?mwiX4;UwX*l`?*{x?K5Bo&tbT;@pQ&mRjWNdtM8YeVSj4>GC&0PI@?GtxA1nzQ z&HO_eo`Sbz;dH)`zF3Tu;jCo51sb_)<8?G^dN%P*yRIr@!XSn6y7Pm+7ksECrE#_G z06UM6R)V~zYyf?JiZHskb$b)+iH4o@ie?Zcj`D9=alhog$qy~vVzHlN4?gr@giCx! z*SA$o>cW)on9XRQde`OWX2&ommxRK5CB9xad(+#JLJLEz2XF68oCw8@C%=w0?i7os zR4G_{4D|6oF94q1^HFGkTcD?9EfKG?Pk~ICgb7#$gnQ+YW;0D<097zG4nh41wa3Eb zs%WV*?|>ZX3`j-1I*2S-k1qRI_sL_Vq3$`%tPLg7?;Q#~FdVv+*24WK&4WdU?*zuL zhJGyA(r$45y*(rj;<3EkcTs4wiJI07wH!I2m;+mq#UMiyudaQAZlBKG6;|r?4|_SN z;+N&v0|_QU_u%IZQ})bwrjTp*?yE<4-OiV>7Lmzqv36=0PGHt|KMZS2{o3K`hFEBI_JsSp@nTh%GSOz=eBHfH?2MLaO*xj+T}!5J0H z$OeB~G?CQlC}r*W1Wr(RReSgOC_=jhrk2VO%M7h}g%p_}DI*k;jn745)k~qd&rBc_ zp=NGU%SG3QnBe_`Usk2p65WkqMT@+jbfn=13eN0X*o4R2Xri{Prx+Z56E8b;E5lY9 zBM-<{5SP@qV-R_A7t_?&RVIAH?HQhX7n4I`G8OYGolL?RmyRlAm~`>sKvK1m=2!bqfJms}d9IXF*pj1$m((Ek@yznBU6+ZBE{G zV0ZV`3wywTBKiy}C4-wVzD^oBbYZIUe>WxnGK)G{xx)FO<~Wk89TmU!Y1rbbvR74G znL1*=yFhn(6(wKar@q)y<$mT^Y{KJjYRJioQ6}H&>g$GVpxL|$0QT5V#v43y*b-Tt zr`clP^H6XAyB3FkkWvk36<1 zqLLMFqT!9mz7OjikXl`Le7|Sj2>2uoC8W|I)mCZ(4W=rX6+duA_*jj3hK*q1WSd#= zE_b*NosG&~tDM8u zAt~1OFL$>v1pp)^zZ}fI?jQlkAYg!hj%NQ(Y!Hb5sy3@|EK;J!~Yx-U)O(p{=XdZ%b5)d0RC0Nz{JP^lJGw?$QK7d-hay(85ltF{)ZzF X`1QG$_dgu}JsjA7>Hqk_eew7|0K9Xn literal 0 HcmV?d00001 diff --git a/packages/agentconnect-ui/public/polygon-logo.png b/packages/agentconnect-ui/public/polygon-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4c66bc39249351dca39135e30571d29559302186 GIT binary patch literal 7351 zcmeHM`9IWa`~S=mBVpu(P&3lWb4nT2Ah8WM9UTCEIX@F=GbLJ)QGB&+GO41K;lt$Lr;X`=0B*?(4pm_w~N-Pu$59 zmU0`_HbM|2cg*U@X$XSTB>yNWFth1HvlawtP>&rkvkisK4j5mu>nf>P@E4iKqBkQ6 zY9m3mjn9|54?ZpGh_BoC56@G-A5lB~$ZX5^zdb8FfXFjfF}OueC^-G;;Vt94NWbVP z_xaHa+s3-#Pq7gz+b7bOL?1{qTbcVGnF))!R`}H65X#z`Ck(fHJe(pbFD46?re08-nAl&V!d-_KB zfHnj(+SyoTQ$)!j2k7RzMcD3Z3-{OAv`zAZ$Aycm0~Bi2YYb{&7X)+M*I3o0!uKzm z=*m@n=pAD}p71Gtp5mAoGurzg)I*-M4;X=ViuhBE2XreY;F)Ee-=A2k z*l9jLBPs>zqmbB|*kXU6o{z}93I-?*dhajKC$vRt;Z8OUC){VG8cC|Eco+(I#HEKf zeQ%XWk^%!{mSlU0YX&eRolRMq5KPMN!bR(eWpUU!0@?!jcav2jWpqo54)9ex86Z{E=*$`E)<+eA(^hKYZExi7q7fjlhy54xrT$_Xm@oF z7PnjMWq65XnYo@Aa~20&qA(+rvyXOnRu5cl$%6YmfsozTbXcW70{bQvV5q`l0g;F7 zz%ioT5cLj+@{{7U$7y*=G>CP3RruyPh+P#Jr~_Yr^9Ly(Ra?a6>{q_A7fpk#fk`L$ zh_gK44z-&vg71A59%Gf3*v=puFS;k*h)M#k^k5bE&PdlqYC}<qn^`PC%YVj1wAU`?tjl8H31~mfn+?MnKV$n;8KnYd|~v} zh&s4T!v7~hf*wLhqgtN7dahejY=MC1_?E0Oy0BWXZasXAkN9c?LlwJ5w=IgJ=bbF0 z+n)7QT1Ru*`)`&pRAmXW9)+g~NG#ik zF`?2`5qr<4fzBCuNWnM#GkU1GRg@IdrKlOoUv+A%3%Uj&9Vfnwr9NK4pUc8CU3(Pz zyDgR0?K5V@EmEX%-vou$XFX$6(K&7-$c2P^kpbWGY*JaB3GLlNq3Yc+S+BK^NMbss z?`)jw%Qjd$yDn!0+EDS&(LD|Kl$b@_0kxKhE4d+~17`*zD;Hc~y)2Y!#!-u_dymzR z1Nrj=v{6lgE2t+jHzuWe`}>z6xgHwft1YEtrP__T+srZ|5@|3s9gBRuuq1MT(nx{w zx|7Eye*(IX9GsyWa-M%NmoEyebhzfqF8ssDTjQy$C0# za$eE{d~;A{td`nI!4_#8wo4gv|EHqXq_Eno^Bx-FhL+_Yf)SpUXjOSFcbaMLviM`< z{5?Tm^h!G$9AOx6poq;hsy>S<1bTF6+P->kJ3zAe&-w7h6h&N(et-4Cb%A<@U@&<2stHN$fBBYXIipJV z{wnioHgxNzHSF+dMXIGwu)Qu$Oc6FssVSw-!@mq6(VOE%9j2~fC1GK{ewW9P^GpBf z5PPHt7e(f@d?nhg_Y!PxZq>DCs0=R`qiPAx5hW|rjdjq#_mE~(Y+Vjqs3( z!1c95nkH3?j#tc4#N`J|#G82oJST2F_v#KvOKMgc9+aR&oO~H-H2t~5p4$7(1))>A z1*)=$plI;RgKl2hqqOeNFGKcFBS@A%DktBqX%Ggq%n3hDK!t3+Bbn#SJo?oZn$dsS)PAno>&7wZKl0UVd` z&y<(io!9^)ZP%u;FEJ)U{HU)r4i#q=AB!Gpd%@hVEJeb?P;wo`piUbc1TVUdm_}fc zFf}4%{?2b1z-10+OK=FbW>SVox^?J>H2RZCTLFx10!OR4pJbK7YQm7%#FI0^hLU}* z?U4HeFe2J7iy@LU40Tvp*Bi9pCvvx_QR>gfsFQ zy{Djz<4COEZ9D<$JptA2x>_wq%SY1+W&Yg-FwkQxG|Zd_8eMimXSaO=u=-{U6qE!- z{|NNoih`oo5B`pu_Pj*fDtZali#) zv|X4hFP+7!m&?l+LkF1KHOuB}?K_US*B3ExL<8a16F%L%J_is484lnG`b*1^Yt7fE ze6Q$;f6_#;^{6@RGWl1|xFv>qHtAMRk-2vDR)Pt1G3Grf@p$z~+S+DXkU4Urb^N8u zgOt)2^G?3A)S)&^O%A2A))$HfJG-V zcDW2@b&S6U$0jD`Po4*qcD+EBdjF}e~{bznlF5_EB^NU(jLxQanpwBIC4OL&v}-Dg(YPE)8}D>Hjvu& z4&7AjwBh`C^3=WU6e=zZFrjk|)=`2sF#BQ0w00BFgu0v?)}!AJF>+1U9EN zJ*|4ea{cH(I#PYz(p~nsy-I)d=9CFXc^G8YqvMb{qMpua;OM5N{gfhGeiZdFd?j~k z=Oyx5+GSB|@C>!Ht3t47P<$PVR-9^~V^&qPh6OpMr&hmSx44-B_Q$|bTDY8vKGKtw z-H%r;Jl?esu3nr9MQbLkD=`mJ>;;VTddjBNg{ASeF$xz`)7C{UTb}{6GCgoc-ga#YIcEuMCHWUG+>iNxq3R0qD4;%|GFFSPBQsyV0hjDIAmX=M~XrI#XrE>pCS0pQ(S2& z3YGPG!V;hiR&jXwRoSc6y0&c;>eC$%%qqLO^PEFLHt{Za2>6{bVHpfZ(++yD0v6g_ zMqPggJTl02M(FaW$_d|&0wPAQ26+j(qpkwL!ZPkoP0Tw_!&#ewR6L##Y6?RUwd-RI z_+t7pUk?kxNQM+@;T52<6TsafI0@UxAa#3cLQyMUoM9=Mk5vo^e{IlMMdX5~io7AA z{v-%IF{_7neGTk=@U#gh`0RKxo}dazrayO8)aPSxs$gYf;e_-%K+IJQS*5j?WQdT( zF1~m~_y&+KSsXxbS|%@CJ@Gz-bbo2O{>5wwrqESUGYL*`qmGU_coWQLc+{&?sN_GS z4_*f&?2OPX5O80qm)1?s$N9hR18{nqgJ5 zPk&e?&kFS=>CJZ6ldq|Z+rjeUBlryN1Xj8S+SVwMA zi5#F~zKp7=(vn30%`WIT6ZR~(HmkHsT7{cM)vdb_(&{&=-5jTtu#sSO0_3PilL9LE zf1jild!h~-x2$pA+NvfB2InFNmQ~!r<#MrSINN3H%M;i9{Qiu{Mt-$}BwV2EfTR33 z({PaDKfsmsetTp@o`%WmqC&i-bz*8ts%sv|iCHBYjtI`Grm9EMd3!~XrLD_!PX1v1 zE8`d;A6jX^({M;V`Q(DoCmqwWEER@Hg!gN;7YKGF^(VQ*-)XhkL|$#64oOYnnKt%r zijfckwA=TcbJA+E>pH(3s?&wD%T(M86KQ9U>_Cnx;_kBAM%_^F0ZCc&L1yFBjl zybI<&Ocj8uma?{6KwhG;rvWY)Sp;}I=meveXo@(WD5==nK3AFsS{%xz&1|_6<}sq+ zelQ&}zy29eYzr0d>bZW0L*FP=`TMQz_23sogQ@e3bnw_(4I*If%NvJ6WZ11ll+mj@k<# zqcOCsxvLS701_zby*7kB_DL}+a|XMRp7wfmtOzRf!3Vi%?^54AMc?q39-lpjR~%CX z?05k}!i)C40jx~5O5UkzLIsp91x1{sp=uAwX>^w8DW;M0S{XtaE+1ZeYa4O$Ru}H$uF79fgRqI0ry3t|a0`OrUKI-~CA zT4bay7l=P)^4l+R1l8#g>vpUs%E_^bg224iB1zd_=~d%+()1N+K`j?vCCb)bv1PoD z5g|NT0T(XTX;Zq$t5aF`<}01@-LBd~y;jigh6|a|p%Hc3Hcz$~M={h@U)ZU~Nn#Uc zS7o$cXJJ)BAmY!{^p$8qc8NM#@R+tD53j9?W%^z_#K|9L@<)2KDNk%~^01~32;4@% zhnylF`4uqcjXZw6dUkwzy0oja?CK%Gs_o>L#WJh+8r4-WyzqoycoU__`-dm=*& zO;(kqY|E+wSV0e{d?P4?3jYacX19VL2Jl}$uvqyBivIR3$DwR^BxzJYyXor!b!tPI z(tJc(GaXYi4&r<2ulIwkd8!MIbhmUdY(5;2+Ggs|BuJu3KtxRqL%nSv^*nzS?>VrODuB7e-a2m?ARoJz5bl=%U$=@LTHuLV zYC}Sl0U6$O7f_DYYS4uBX~Rl1Hd;?P+1GOgchP=$;$NbEu9zdX>l%i=9y;M$Q8=rYmwN$nC`rg?*% z_DiSC=m2ce57q%U2HH57I(@tk^!&v#=X4j44s1AFayP2W<;rsRWo`bq10*H24VSY@ z1mP$K*2{10bm*pIh@dr0W^^#-9XN+^Aac0CCNS9wCSOvMW2SvwJh~KUe6R^w@mdp$ zyGNQca3<_5u$F?v?qqa)QwL~xw3mmDMpt9KQs8tPo*7y_+dJ|OPBf4qT9K;0$$Zg- zG#RMcyQ$0eo`Ziz|1!9iL(Oj;Ajs + + diff --git a/packages/agentconnect-ui/src/App.css b/packages/agentconnect-ui/src/App.css new file mode 100644 index 0000000..3124935 --- /dev/null +++ b/packages/agentconnect-ui/src/App.css @@ -0,0 +1,28 @@ +* { + font-family: 'Fustat', 'Inter', ui-sans-serif, system-ui, sans-serif; +} + +.btn-press:active { + transform: scale(0.98); +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +@keyframes scale-in { + from { + opacity: 0; + transform: scale(0.97); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.animate-scale-in { + animation: scale-in 0.18s ease-out both; +} diff --git a/packages/agentconnect-ui/src/App.tsx b/packages/agentconnect-ui/src/App.tsx new file mode 100644 index 0000000..9f3fd01 --- /dev/null +++ b/packages/agentconnect-ui/src/App.tsx @@ -0,0 +1,153 @@ +import './App.css'; + +import { AlertCircle, Plus } from 'lucide-react'; +import { useEffect, useMemo, useState } from 'react'; + +import { FundingScreen } from './components/FundingScreen.js'; +import { fetchTotalUsdBalance } from './indexer'; + +type View = 'fund' | 'dashboard'; + +const WALLET_URL = 'https://wallet.polygon.technology'; + +// Shared logo header used on every screen. +function LogoBadge() { + return ( +
+ Polygon + + >_ agent + +
+ ); +} + +// ── Minimal dashboard: short address, add funds, best-effort USD balance ── +function Dashboard({ + walletAddress, + chainId, + onAddFunds +}: { + walletAddress: string; + chainId: number; + onAddFunds: () => void; +}) { + const [totalUsd, setTotalUsd] = useState(null); + + useEffect(() => { + let active = true; + setTotalUsd(null); + fetchTotalUsdBalance(walletAddress, chainId) + .then((v) => { + if (active) setTotalUsd(v); + }) + .catch(() => { + if (active) setTotalUsd(null); + }); + return () => { + active = false; + }; + }, [walletAddress, chainId]); + + const shortAddr = `${walletAddress.slice(0, 6)}..${walletAddress.slice(-4)}`; + + return ( +
+ + +
+
+
+
+ {totalUsd === null ? ( + $— + ) : ( + `$${totalUsd.toLocaleString('en-US', { + minimumFractionDigits: 2, + maximumFractionDigits: 2 + })}` + )} +
+
+
+ {walletAddress} +
+
+ +
+
+
+ ); +} + +// ── Centered notice shown when opened without a wallet param ── +function MissingWalletNotice() { + return ( +
+
+ +
+
+ +

+ Open this page from the polygon-agent CLI. +

+
+
+ ); +} + +// ── Main App ── +function App() { + const params = useMemo(() => new URLSearchParams(window.location.search), []); + const walletAddress = params.get('wallet') || ''; + const chainId = Number(params.get('chain') || '137'); + + const initialView: View = params.get('view') === 'fund' ? 'fund' : 'dashboard'; + const [view, setView] = useState(initialView); + + if (!walletAddress) { + return ; + } + + if (view === 'fund') { + return ( +
+
+ +
+ setView('dashboard')} + /> +
+ ); + } + + return ( + setView('fund')} /> + ); +} + +export { App }; diff --git a/packages/agentconnect-ui/src/components/FundingScreen.tsx b/packages/agentconnect-ui/src/components/FundingScreen.tsx new file mode 100644 index 0000000..6023382 --- /dev/null +++ b/packages/agentconnect-ui/src/components/FundingScreen.tsx @@ -0,0 +1,122 @@ +import { Fund } from '0xtrails/widget'; + +import { trailsApiKey } from '../config'; + +interface FundingScreenProps { + walletAddress: string; + chainId: number; + onSkip: () => void; +} + +const USDC_POLYGON = '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'; + +const trailsTheme: Record = { + '--trails-font-family': "'Fustat', 'Inter', ui-sans-serif, system-ui, sans-serif", + + '--trails-border-radius-widget': '24px', + '--trails-border-radius-button': '12px', + '--trails-border-radius-input': '12px', + '--trails-border-radius-dropdown': '16px', + '--trails-border-radius-container': '16px', + '--trails-border-radius-list': '16px', + + '--trails-widget-border': '1px solid #c8cfe1', + '--trails-shadow': '0 2px 8px rgba(20,22,53,0.06)', + + '--trails-primary': '#141635', + '--trails-primary-hover': '#1e2155', + '--trails-primary-disabled': '#929eba', + '--trails-primary-disabled-text': 'rgba(255,255,255,0.5)', + + '--trails-bg-primary': '#ffffff', + '--trails-bg-secondary': '#f5f6fb', + '--trails-bg-tertiary': '#eef0f8', + '--trails-bg-card': '#ffffff', + + '--trails-text-primary': '#141635', + '--trails-text-secondary': '#64708f', + '--trails-text-tertiary': '#64708f', + '--trails-text-muted': '#929eba', + + '--trails-border-primary': '#c8cfe1', + '--trails-border-secondary': '#c8cfe1', + '--trails-border-tertiary': '#eef0f8', + + '--trails-hover-bg': '#f5f6fb', + '--trails-focus-ring': 'rgba(124,58,237,0.15)', + + '--trails-input-bg': '#f5f6fb', + '--trails-input-border': '#c8cfe1', + '--trails-input-text': '#141635', + '--trails-input-placeholder': '#929eba', + '--trails-input-focus-border': '#7c3aed', + '--trails-input-focus-ring': 'rgba(124,58,237,0.12)', + + '--trails-dropdown-bg': '#ffffff', + '--trails-dropdown-border': '#c8cfe1', + '--trails-dropdown-text': '#141635', + '--trails-dropdown-hover-bg': '#f5f6fb', + '--trails-dropdown-selected-bg': '#f5f6fb', + '--trails-dropdown-selected-text': '#141635', + + '--trails-list-bg': '#ffffff', + '--trails-list-border': '#c8cfe1', + '--trails-list-hover-bg': '#f5f6fb' +}; + +export function FundingScreen({ walletAddress, chainId, onSkip }: FundingScreenProps) { + return ( +
+ {/* Card */} +
+
+ {/* Headline + subtext */} +
+

+ Fund your agent wallet +

+

+ Deposit funds with a wallet, credit card, or exchange to access paid services. +

+
+ + { + console.log('onDestinationConfirmation:', { + txHash, + chainId: confirmChainId, + sessionId + }); + setTimeout(onSkip, 3000); + }} + /> +
+
+ + +
+ ); +} diff --git a/packages/agentconnect-ui/src/config.ts b/packages/agentconnect-ui/src/config.ts new file mode 100644 index 0000000..bcf26a4 --- /dev/null +++ b/packages/agentconnect-ui/src/config.ts @@ -0,0 +1,4 @@ +// Configured via VITE_* secrets (per-environment values set in GitHub Environments). + +// Trails widget API key (used by the Fund onramp widget). +export const trailsApiKey = (import.meta.env.VITE_TRAILS_API_KEY as string | undefined) ?? ''; diff --git a/packages/agentconnect-ui/src/index.css b/packages/agentconnect-ui/src/index.css new file mode 100644 index 0000000..cf53361 --- /dev/null +++ b/packages/agentconnect-ui/src/index.css @@ -0,0 +1,90 @@ +@import 'tailwindcss'; + +@theme { + --color-poly: #8247e5; + --color-poly-light: #9b6dea; + --color-poly-dark: #6b35c4; + + --color-surface: #ffffff; + --color-surface-hover: #f9f9fc; + --color-surface-elevated: #f3f4f8; + --color-page: #eeeef5; + + --color-border: #e5e5f0; + --color-border-hover: #d1d1e0; + + --color-text-primary: #0f0f1a; + --color-text-secondary: #6b7280; + --color-text-muted: #9ca3af; + + --color-success: #16a34a; + --color-success-bg: #dcfce7; + --color-error: #dc2626; + --color-error-glow: rgba(220, 38, 38, 0.08); + + --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; + --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace; + + --animate-fade-in: fade-in 0.4s ease-out forwards; + --animate-slide-up: slide-up 0.4s ease-out forwards; + --animate-scale-in: scale-in 0.3s ease-out forwards; +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes slide-up { + from { + opacity: 0; + transform: translateY(12px); + } + to { + opacity: 1; + transform: translateY(0); + } +} +@keyframes scale-in { + from { + opacity: 0; + transform: scale(0.97); + } + to { + opacity: 1; + transform: scale(1); + } +} +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +body { + margin: 0; + background: #eeeef5; + min-height: 100vh; + font-family: var(--font-sans); + color: #0f0f1a; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +#root { + width: 100%; +} + +::-webkit-scrollbar { + width: 6px; +} +::-webkit-scrollbar-track { + background: transparent; +} +::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.12); + border-radius: 3px; +} diff --git a/packages/agentconnect-ui/src/indexer.ts b/packages/agentconnect-ui/src/indexer.ts new file mode 100644 index 0000000..d845b87 --- /dev/null +++ b/packages/agentconnect-ui/src/indexer.ts @@ -0,0 +1,101 @@ +import { Network } from '@0xsequence/wallet-primitives'; + +// Chain-specific Sequence Indexer base URL pattern. +// The polygon indexer is at polygon-indexer.sequence.app; other chains follow -indexer.sequence.app +const DEFAULT_INDEXER_BASE = 'https://{chain}-indexer.sequence.app/rpc/Indexer'; + +function getIndexerAccessKey(): string | undefined { + return ( + (import.meta.env.VITE_INDEXER_ACCESS_KEY as string | undefined) || + (import.meta.env.VITE_POLYGON_INDEXER_ACCESS_KEY as string | undefined) || + // Fall back to project access key — they're often the same value + (import.meta.env.VITE_PROJECT_ACCESS_KEY as string | undefined) || + undefined + ); +} + +/** Returns the chain slug used in the Sequence indexer hostname (e.g. "polygon", "mainnet"). */ +function chainSlug(chainId: number): string { + // Sequence indexer host uses the network name; look it up or fall back to numeric id. + try { + const net = Network.getNetworkFromChainId(chainId); + if (net?.name) return net.name.toLowerCase(); + } catch { + // ignore + } + return String(chainId); +} + +/** Build the indexer base URL for a given chain. Respects VITE_INDEXER_URL override. */ +function indexerBase(chainId: number): string { + const override = import.meta.env.VITE_INDEXER_URL as string | undefined; + if (override) return override.replace(/\/+$/, ''); + const slug = chainSlug(chainId); + return DEFAULT_INDEXER_BASE.replace('{chain}', slug); +} + +/** Fetch total USD portfolio value using the chain-specific Sequence Indexer. */ +export async function fetchTotalUsdBalance(walletAddress: string, chainId = 137): Promise { + const accessKey = getIndexerAccessKey(); + if (!accessKey) { + console.warn( + '[indexer] No access key found — set VITE_INDEXER_ACCESS_KEY or VITE_PROJECT_ACCESS_KEY' + ); + return 0; + } + + const base = indexerBase(chainId); + const headers: Record = { + 'Content-Type': 'application/json', + 'X-Access-Key': accessKey + }; + + let total = 0; + + // 1. ERC20 token balances + try { + const tokenRes = await fetch(`${base}/GetTokenBalances`, { + method: 'POST', + headers, + body: JSON.stringify({ + accountAddress: walletAddress, + includeMetadata: true + }) + }); + + if (tokenRes.ok) { + const tokenData = (await tokenRes.json()) as { balances?: { balanceUSD?: string }[] }; + for (const b of tokenData?.balances ?? []) { + const v = parseFloat(b?.balanceUSD ?? '0'); + if (Number.isFinite(v) && v > 0) total += v; + } + } else { + console.warn('[indexer] GetTokenBalances failed:', tokenRes.status); + } + } catch (err) { + console.warn('[indexer] GetTokenBalances error:', err); + } + + // 2. Native token balance + try { + const nativeRes = await fetch(`${base}/GetNativeTokenBalance`, { + method: 'POST', + headers, + body: JSON.stringify({ + accountAddress: walletAddress + }) + }); + + if (nativeRes.ok) { + const nativeData = (await nativeRes.json()) as { balance?: { balanceUSD?: string } }; + const v = parseFloat(nativeData?.balance?.balanceUSD ?? '0'); + if (Number.isFinite(v) && v > 0) total += v; + } else { + console.warn('[indexer] GetNativeTokenBalance failed:', nativeRes.status); + } + } catch (err) { + console.warn('[indexer] GetNativeTokenBalance error:', err); + } + + return total; +} diff --git a/packages/agentconnect-ui/src/main.tsx b/packages/agentconnect-ui/src/main.tsx new file mode 100644 index 0000000..b3e80b2 --- /dev/null +++ b/packages/agentconnect-ui/src/main.tsx @@ -0,0 +1,15 @@ +import { TrailsProvider } from '0xtrails/widget'; +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import { App } from './App.tsx'; +import './index.css'; +import { trailsApiKey } from './config.ts'; + +createRoot(document.getElementById('root')!).render( + + + + + +); diff --git a/packages/agentconnect-ui/src/vite-env.d.ts b/packages/agentconnect-ui/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/agentconnect-ui/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/agentconnect-ui/tsconfig.app.json b/packages/agentconnect-ui/tsconfig.app.json new file mode 100644 index 0000000..390225b --- /dev/null +++ b/packages/agentconnect-ui/tsconfig.app.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "types": ["@cloudflare/workers-types"], + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/packages/agentconnect-ui/tsconfig.json b/packages/agentconnect-ui/tsconfig.json new file mode 100644 index 0000000..d32ff68 --- /dev/null +++ b/packages/agentconnect-ui/tsconfig.json @@ -0,0 +1,4 @@ +{ + "files": [], + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] +} diff --git a/packages/agentconnect-ui/tsconfig.node.json b/packages/agentconnect-ui/tsconfig.node.json new file mode 100644 index 0000000..0d3d714 --- /dev/null +++ b/packages/agentconnect-ui/tsconfig.node.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/agentconnect-ui/vite.config.ts b/packages/agentconnect-ui/vite.config.ts new file mode 100644 index 0000000..7006f31 --- /dev/null +++ b/packages/agentconnect-ui/vite.config.ts @@ -0,0 +1,11 @@ +import tailwindcss from '@tailwindcss/vite'; +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react(), tailwindcss()], + server: { + port: 4444 + } +}); diff --git a/packages/agentconnect-ui/worker.mjs b/packages/agentconnect-ui/worker.mjs new file mode 100644 index 0000000..bc94180 --- /dev/null +++ b/packages/agentconnect-ui/worker.mjs @@ -0,0 +1,21 @@ +// packages/agentconnect-ui/worker.mjs +// Serves the built SPA from the ASSETS binding with single-page-application fallback. +export default { + async fetch(request, env) { + const url = new URL(request.url); + + if (!env.ASSETS) { + return new Response('ASSETS binding is missing', { status: 500 }); + } + + // SPA fallback: serve index.html for non-file paths. + const res = await env.ASSETS.fetch(request); + if (res.status !== 404) return res; + + if (/\.[a-z0-9]+$/i.test(url.pathname)) return res; + + const indexUrl = new URL(request.url); + indexUrl.pathname = '/index.html'; + return env.ASSETS.fetch(new Request(indexUrl.toString(), request)); + } +}; diff --git a/packages/agentconnect-ui/wrangler.toml b/packages/agentconnect-ui/wrangler.toml new file mode 100644 index 0000000..929a9df --- /dev/null +++ b/packages/agentconnect-ui/wrangler.toml @@ -0,0 +1,40 @@ +name = "agentconnect" +compatibility_date = "2024-07-04" +workers_dev = false +preview_urls = false +send_metrics = false +placement = { mode = "smart" } + +main = "worker.mjs" + +[assets] +directory = "./dist" +binding = "ASSETS" +not_found_handling = "single-page-application" + +# Drop the old SessionRelay Durable Object carried over from connector-ui. +[[migrations]] +tag = "v2" +deleted_classes = ["SessionRelay"] + +[env.staging] +name = "agentconnect-staging" + +routes = [ + { pattern = "agentconnect.staging.polygon.technology", custom_domain = true } +] + +[[env.staging.migrations]] +tag = "v2" +deleted_classes = ["SessionRelay"] + +[env.production] +name = "agentconnect-production" + +routes = [ + { pattern = "agentconnect.polygon.technology", custom_domain = true } +] + +[[env.production.migrations]] +tag = "v2" +deleted_classes = ["SessionRelay"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9edf87..aaee17b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ importers: version: 20.4.2 '@polygonlabs/apps-team-lint': specifier: ^2.0.0 - version: 2.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + version: 2.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) '@tsconfig/node-ts': specifier: ^23.6.4 version: 23.6.4 @@ -38,7 +38,7 @@ importers: version: 9.2.1 eslint: specifier: ^10.0.0 - version: 10.0.3(jiti@2.6.1) + version: 10.0.3(jiti@2.7.0) husky: specifier: ^9.1.7 version: 9.1.7 @@ -55,6 +55,49 @@ importers: specifier: ^5.8.3 version: 5.9.3 + packages/agentconnect-ui: + dependencies: + 0xtrails: + specifier: ^0.14.0 + version: 0.14.0(0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@0xsequence/api@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(bs58@4.0.1)(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) + '@0xsequence/wallet-primitives': + specifier: 3.0.0-beta.16 + version: 3.0.0-beta.16(typescript@5.9.3)(zod@3.25.76) + lucide-react: + specifier: ^0.564.0 + version: 0.564.0(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + tailwindcss: + specifier: ^4 + version: 4.3.2 + devDependencies: + '@cloudflare/workers-types': + specifier: ^4 + version: 4.20260317.1 + '@tailwindcss/vite': + specifier: ^4.1.18 + version: 4.3.2(vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1)) + '@types/react': + specifier: ^18.3.3 + version: 18.3.28 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.7(@types/react@18.3.28) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.7.0(vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1)) + typescript: + specifier: ^5 + version: 5.9.3 + vite: + specifier: ^5.4.0 + version: 5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + packages/oidc-relay: devDependencies: '@cloudflare/workers-types': @@ -158,27 +201,155 @@ importers: packages: + 0xsequence@2.3.44: + resolution: {integrity: sha512-MzX9a4BiFQsGapEDKqp6dFHblSfyXPKnD90s7zkKIQjWm6D9KZ5PTO/77mdCFjhQitVeTkXbq8bPRjwXBddKtA==} + peerDependencies: + ethers: '>=6' + + 0xtrails@0.14.0: + resolution: {integrity: sha512-SpzYYIkutXhnltveZRL+hRexuQLgUJXe0bSTTdCiYd8IdWkNyJP+wk3s+lOJQ15yaYsSoQTOCyxyZAgllNIuzw==} + peerDependencies: + '@tanstack/react-query': ^5.90.20 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + viem: ^2.41.0 + wagmi: ^2.19.0 + '@0xsequence/abi@2.3.41': resolution: {integrity: sha512-CMiuW/5HiNxB0jpVBEUZfVkwXgeiT9HbsUy/7FL/8XWv9rLM5mE9Y6fj4QAH/jaRnvGfG4iDcCbq05+PQ/q5Rw==} + '@0xsequence/abi@2.3.44': + resolution: {integrity: sha512-/rRv9mmCpDQH4qGBa6cUBcl3CTKVpLetqIUMVX/mei40SdR/nUcg1eCuRtkcVIEc8mgJ+Pz+LBe2EzAqeUAivA==} + + '@0xsequence/account@2.3.44': + resolution: {integrity: sha512-kj7RlMQSFMMUcK/vzHS6XRIolkeb03YRAnq4ypyymL77PcXt6k3PsvjejgwB9H8UYpPN2MRVKJkvK+FC2bHbNw==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/api@2.3.44': + resolution: {integrity: sha512-Ifg0Bzk/sK+Rvcc2OWcu8PyE/ksC+SuKJxLzPs3JKVkOfKZ1TMlFOvp+J4rdUL5xNuNVrO1xe99s/jABdpxoUg==} + + '@0xsequence/api@3.0.12': + resolution: {integrity: sha512-1hLNDh4BFbjFgdfNtnpQGLZMj9+aTDyJEmDHtxnNsuyEKhkpG7AVy6iXmr+s0BjvT3kYk545QwxPURshlTm13A==} + + '@0xsequence/auth@2.3.44': + resolution: {integrity: sha512-Vcln/2NzgS8Gr++SOkUwmWXEx0y4KE5NSbayva36l97LMnM27xMuu76nH6mzbyxHg3yu7sfDZ5iHRy5O3HGXrA==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/connect@5.4.8': + resolution: {integrity: sha512-Hv+fLQ3Ets2319bSnMMhBbWsFdXXjkl5tmYwC1gbrOUju84yvqhC3eIrDdA1F6VaQFaf9Ttxu1yROeCKuzZLrw==} + peerDependencies: + 0xsequence: '>= 2.3.38' + '@0xsequence/hooks': 5.4.8 + '@databeat/tracker': ^0.9.3 + '@react-oauth/google': ^0.11.1 + '@tanstack/react-query': '>= 5' + ethers: '>=6.13.0' + react: '>= 17' + react-apple-signin-auth: ^1.1.0 + react-dom: '>= 17' + viem: '>= 2.28.0' + wagmi: '>= 2.15.0' + '@0xsequence/core@2.3.41': resolution: {integrity: sha512-ibZ71pF0qkRjBXt7XiZLoP7THJn8d8M6MLKYE1u713g8iqmYT4ITlXWIGdO2T2noveSMw9YVCuJGkkh/PJ4PTw==} peerDependencies: ethers: '>=6' + '@0xsequence/core@2.3.44': + resolution: {integrity: sha512-MYJoSZ0057Kseb+q4WaHNwWYOoVSaf7LnHOoq5OS525jiHj7zYl9mVIveooG0MrEcSe6q+FRu0AWEa7c5KbA4g==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/design-system@2.1.11': + resolution: {integrity: sha512-wfuY9v2dNQxw9qAYyflwcKzuiiVqm4qqn2Jkoyw/CqxODcqQ3orUsGxjnbyvCWOwvHbH908c4LOZj/TBI6T0Fw==} + peerDependencies: + motion: '>= 12' + react: '>= 17' + react-dom: '>= 17' + + '@0xsequence/ethauth@1.0.0': + resolution: {integrity: sha512-piihXzbS8Sq7P670a+GyTm3igTJL3Ts6pqjJcC0Sv86yqeK6QD0pzJP4APP+/IQa5k+0s2l1SeZwMjR7gSPtCA==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/guard@2.3.44': + resolution: {integrity: sha512-3AkPXIyour4orjZNrcAbDBE/YywP2qVLVqA8uBsc6gSa3htGE21sCvT1smCDxiSM0eSIPdz1ozwdj58vdUR4vA==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/hooks@5.4.11': + resolution: {integrity: sha512-lAP+ryL1yXkMXKDWOVtEBMVnEM3Vm+Zob4fJkqcaSn7X9Mrhwiofrt923SHbk4a2S3pN6TQThM/vRMgzIOB8+g==} + peerDependencies: + '@0xsequence/api': '>=2.3.43' + '@0xsequence/indexer': '>=2.3.43' + '@0xsequence/metadata': '>=2.3.43' + '@0xsequence/network': '>=2.3.43' + '@tanstack/react-query': '>= 5' + react: '>= 17' + viem: '>= 2.44.0' + '@0xsequence/indexer@2.3.41': resolution: {integrity: sha512-zAclbFgafj9O8+t4x7UmyNQu359SHY32aOGRQWsl5E7TvrfgPrAfDMW8Rfsu++fNwEhIgOt5gkL0kbyvUGKtLQ==} + '@0xsequence/indexer@2.3.44': + resolution: {integrity: sha512-aNNvnkzjSFTjoFGp9UXdQgpG/F126r/frvsD+8nPS62eAOx2puuKEmy0/EKrervfGxVeqA8rcWc9phcLykGyZQ==} + + '@0xsequence/indexer@3.0.12': + resolution: {integrity: sha512-kgiu6hX23WTInluD6HqkR7WCKRAfQyPTimau+GeKHYiYh7WG0U3R6N00i5CJU3TUpHDqt+eVF5isK2fp2F8VXA==} + + '@0xsequence/metadata@2.3.44': + resolution: {integrity: sha512-Y+0U9V3OwHFjuh/GfF8WY/+Q/w9iZUHOBvb8kMwrHxqCyYXgOl1latLbzR/4E8rttrEqo51JRCvZA9lhMnraBA==} + + '@0xsequence/metadata@3.0.12': + resolution: {integrity: sha512-q7hP1UyXeHUufJgKMVr6UGkmmaugDVyM3u/sjZLBDzLgT6GNqu9Ss07c5E8eGeJmoSLwnwhRZyY5biah41sxMg==} + + '@0xsequence/migration@2.3.44': + resolution: {integrity: sha512-pXoBSQj5620m3KJVpkubg1/pGxihYmh5O1QcfDP5qpU77MSyGNdb0PvSY2WZoWRyHHNxa/sRyJ+Stv8eXPeOcQ==} + peerDependencies: + ethers: '>=6' + '@0xsequence/network@2.3.41': resolution: {integrity: sha512-SV7Nytyfa/K3EAToaLHH8hclq9i9Da+dcnsu5UDYQ9rNr1K79N7aG69bshQV6f0j0c+mMiXqkmyBZOYlv72n/g==} peerDependencies: ethers: '>=6' + '@0xsequence/network@2.3.44': + resolution: {integrity: sha512-nrRaJZbD3nGSuo4OtAy3xiAiCFCrQCiDXoJg8VWqVNCOA10r7LwyRGIs7v7cwr0/WjGLarqShkuogoPmgXakwA==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/provider@2.3.44': + resolution: {integrity: sha512-+/LHbTJgOotbRQF5TgqBk8hrEZsp1lsr26YlSx62qNcJD5Nkr3dNco/M3/ND1ZHkGS5wqlu7mFjY/0bWrPNxfg==} + peerDependencies: + ethers: '>=6' + '@0xsequence/relayer@2.3.41': resolution: {integrity: sha512-Ol21c5JPX/Sb35fENrAUagnyRYr3ckxuLNjdSECgC+9OUZzbbZpTbHBzyE35Bw8oCjqi19Y046/m8IOGRf4NjQ==} peerDependencies: ethers: '>=6' + '@0xsequence/relayer@2.3.44': + resolution: {integrity: sha512-Q8RukXpj94/G1SWP/xnRzL+BAlCJH7DmvsWbhJKED+RNVSE2xeFagD2F8zHGYu4nZgnGJpLFjBfgdcx1PiAFtA==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/replacer@2.3.44': + resolution: {integrity: sha512-cCVHQ/QVNQTGiyENhkIWTe6eYsCAnTtX9b8stx8Cde1FYcyG7mc6t5dPrezaA8KQg6qJIreIdg3UR1IPHBUEhw==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/sessions@2.3.44': + resolution: {integrity: sha512-IM7UWIW6eHuUohRXy78h8AwJtTlBAK4ODPQ0HBeaRqpI2NcShkWM2NhSawgqzZ3LBKwtFDl82VlM71ReIiHugw==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/signhub@2.3.44': + resolution: {integrity: sha512-gv75IoRFhEbhpBCpJ/TR0fUmfBfn/gf9Lvdsy3fLVIFMsm5x9krzbCC1rbmGyFSX/aijuFsnLN2rdJaR0wRM2g==} + peerDependencies: + ethers: '>=6' + '@0xsequence/typescript-sdk@0.1.0-alpha.4': resolution: {integrity: sha512-l1xi8OXgcwQ05HeNqt11TFLddGI6NIZ5ObKe930kgAnM4UcLTZ1DNf+bvKQoRQ16hEZUJDS5nE0BkI85vdYGDQ==} @@ -187,9 +358,36 @@ packages: peerDependencies: ethers: '>=6' + '@0xsequence/utils@2.3.44': + resolution: {integrity: sha512-gB3QgkR3hnF8Q9d5MnsvTAZ3u/Gwfh9D3eP8ayRiLNpqzkATBGhaPO72w0DYdU5b+ZO9+8sPpqLUw25ZeIKYhg==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/waas@2.3.44': + resolution: {integrity: sha512-WpP6JBjhs4LOD7oA5xFZDgaPoWMCkc1TN3DrtBBX4cgB+T/F3DNHXwc29Ou2Bm01/l7SabPAOcAKwXoXLrH70A==} + peerDependencies: + ethers: '>=6' + + '@0xsequence/wallet-primitives@3.0.0-beta.16': + resolution: {integrity: sha512-iwweQtEo/6sA6VBSVTQggdwKRvYoJOaRBrB+1trp05ULq4+rtvS+BG4mPfZQN86RWy93MYwCF1znsDon69u6wQ==} + + '@0xsequence/wallet-primitives@3.0.0-beta.19': + resolution: {integrity: sha512-YJmwI9ECnidGVmSeKKiCdkaZ5MUg7+awHdG7+tW6U2gXGlY+8gJ5yNy8jX+GwoR6kMsWZh+ZuKFBUSqQjntYOQ==} + + '@0xsequence/wallet@2.3.44': + resolution: {integrity: sha512-rpQ9Iy9MwHc6UjX8ZJGCnofe6xPI41LtpTxphht6sWyegZb/G19XOBBadqLqFEwGqyE2rBt2Lh7X9/9Fg2xjyw==} + peerDependencies: + ethers: '>=6' + '@0xtrails/api@0.10.4': resolution: {integrity: sha512-jjGYCxWvZxoox2kzEjVJSgmuy9LBKSxs1ZcEkGageJ6ggvOlN4H35H6kSouDkycz5uTyRsH3O+4qW6nxy9niBQ==} + '@0xtrails/api@0.14.0': + resolution: {integrity: sha512-xV2SDqljJH+4yMTSCGALbJR5DfTUGGsT5cqFHCcZilaJjkBft/jEBK57e9CnuAUF/C7nbx9ZOGR8xQ0taayqSw==} + + '@0xtrails/wallet-registry@0.2.0': + resolution: {integrity: sha512-Vm1IyIzQ+p3QBU/1reBB4vP5dYlnurv86YHGgaciyAMuaFTLb1GBefr67trOQWfiS5iyZXlJldbLxVxSAwc33g==} + '@adraffy/ens-normalize@1.10.1': resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} @@ -204,27 +402,113 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.24.1': resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-transform-react-jsx-self@7.29.7': + resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.29.7': + resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/runtime@7.29.2': resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + + '@base-org/account@2.4.0': + resolution: {integrity: sha512-A4Umpi8B9/pqR78D1Yoze4xHyQaujioVRqqO3d6xuDFw9VRtjg6tK3bPlwE0aW+nVH/ntllCpPa2PbI8Rnjcug==} + '@changesets/apply-release-plan@7.1.1': resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} @@ -283,6 +567,15 @@ packages: '@cloudflare/workers-types@4.20260317.1': resolution: {integrity: sha512-+G4eVwyCpm8Au1ex8vQBCuA9wnwqetz4tPNRoB/53qvktERWBRMQnrtvC1k584yRE3emMThtuY0gWshvSJ++PQ==} + '@coinbase/cdp-sdk@1.51.2': + resolution: {integrity: sha512-o4IEwXbyAjfhPQWoFBuqnV1JQGLk4NlUVMzH/ur4voPSjYZvlYFVuOoE/eEcsoPFN28xaWTBvqebwncQL8h8fQ==} + + '@coinbase/wallet-sdk@3.9.3': + resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} + + '@coinbase/wallet-sdk@4.3.6': + resolution: {integrity: sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==} + '@commitlint/cli@20.4.2': resolution: {integrity: sha512-YjYSX2yj/WsVoxh9mNiymfFS2ADbg2EK4+1WAsMuckwKMCqJ5PDG0CJU/8GvmHWcv4VRB2V02KqSiecRksWqZQ==} engines: {node: '>=v18'} @@ -360,6 +653,15 @@ packages: resolution: {integrity: sha512-aO5l99BQJ0X34ft8b0h7QFkQlqxC6e7ZPVmBKz13xM9O8obDaM1Cld4sQlJDXXU/VFuUzQ30mVtHjVz74TuStw==} engines: {node: '>=v18'} + '@databeat/tracker@0.9.3': + resolution: {integrity: sha512-eGsiNU/CRFujcNtUUqvBiqveCs6S6SiAhalXPDodbk74d3FzvLqHDn5k6WfOEJIhrP3CbYgfMXL0nk51s/rQsg==} + + '@ecies/ciphers@0.2.6': + resolution: {integrity: sha512-patgsRPKGkhhoBjETV4XxD0En4ui5fbX0hzayqI3M8tvNMGUoUvmyYAIWwlxBc1KX5cturfqByYdj5bYGRpN9g==} + engines: {bun: '>=1', deno: '>=2.7.10', node: '>=16'} + peerDependencies: + '@noble/ciphers': ^1.0.0 + '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} @@ -369,6 +671,18 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emotion/is-prop-valid@1.4.0': + resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.0': resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} engines: {node: '>=18'} @@ -387,6 +701,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.0': resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} engines: {node: '>=18'} @@ -405,6 +725,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.0': resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} engines: {node: '>=18'} @@ -423,6 +749,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.0': resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} engines: {node: '>=18'} @@ -441,6 +773,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.0': resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} engines: {node: '>=18'} @@ -459,6 +797,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.0': resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} engines: {node: '>=18'} @@ -477,6 +821,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.0': resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} engines: {node: '>=18'} @@ -495,6 +845,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.0': resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} engines: {node: '>=18'} @@ -513,6 +869,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.0': resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} engines: {node: '>=18'} @@ -531,6 +893,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.0': resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} engines: {node: '>=18'} @@ -549,6 +917,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.0': resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} engines: {node: '>=18'} @@ -567,6 +941,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.0': resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} engines: {node: '>=18'} @@ -585,6 +965,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.0': resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} engines: {node: '>=18'} @@ -603,6 +989,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.0': resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} engines: {node: '>=18'} @@ -621,6 +1013,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.0': resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} engines: {node: '>=18'} @@ -639,6 +1037,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.0': resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} engines: {node: '>=18'} @@ -657,6 +1061,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.25.0': resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} engines: {node: '>=18'} @@ -693,6 +1103,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.0': resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} engines: {node: '>=18'} @@ -729,6 +1145,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.0': resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} engines: {node: '>=18'} @@ -759,6 +1181,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.0': resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} engines: {node: '>=18'} @@ -777,6 +1205,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.0': resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} engines: {node: '>=18'} @@ -795,6 +1229,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.0': resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} engines: {node: '>=18'} @@ -813,6 +1253,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.0': resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} engines: {node: '>=18'} @@ -861,6 +1307,22 @@ packages: resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@ethereumjs/common@3.2.0': + resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} + + '@ethereumjs/rlp@4.0.1': + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + + '@ethereumjs/tx@4.2.0': + resolution: {integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==} + engines: {node: '>=14'} + + '@ethereumjs/util@8.1.0': + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + '@ethersproject/abi@5.8.0': resolution: {integrity: sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==} @@ -951,6 +1413,26 @@ packages: '@ethersproject/wordlists@5.8.0': resolution: {integrity: sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/react-dom@2.1.8': + resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + + '@gemini-wallet/core@0.3.2': + resolution: {integrity: sha512-Z4aHi3ECFf5oWYWM3F1rW83GJfB9OvhBYPTmb5q+VyK3uvzvS48lwo+jwh2eOoCRWEuT/crpb9Vwp2QaS5JqgQ==} + peerDependencies: + viem: '>=2.0.0' + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -979,6 +1461,9 @@ packages: '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -992,22 +1477,125 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@lit-labs/ssr-dom-shim@1.6.0': + resolution: {integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==} + + '@lit/reactive-element@2.1.2': + resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@meshconnect/node-api@2.0.27': + resolution: {integrity: sha512-D1MEfDUE9NHPuzwVQ91HkNe4Y/vmORNyj1CWHzoXUxH/pMIrcxnhYf2O5skRCNpLR1ABYXV6KDaSr6zgTg4cgw==} - '@noble/ciphers@1.3.0': - resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} - engines: {node: ^14.21.3 || >=16} + '@meshconnect/uwc-bridge-parent@1.1.1': + resolution: {integrity: sha512-Hx5ft4hEn50VUALZe06zcSzqBh6KUl5A1AGzy1AtCF3wVkRR/gpO4FJB3M1u1YapmEEGG6C6LW7LnUk58dzW/Q==} - '@noble/curves@1.9.7': - resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} - engines: {node: ^14.21.3 || >=16} + '@meshconnect/web-link-sdk@3.7.1': + resolution: {integrity: sha512-DP6rXP9uiKio4G130h9vySur9CB0xdbvXvvIKyeMFk8MMs4YEe6uY6aZhHTNNmyE58sNTqlrD/clP30lixDk3w==} + + '@metamask/eth-json-rpc-provider@1.0.1': + resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} + engines: {node: '>=14.0.0'} + + '@metamask/json-rpc-engine@7.3.3': + resolution: {integrity: sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==} + engines: {node: '>=16.0.0'} + + '@metamask/json-rpc-engine@8.0.2': + resolution: {integrity: sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==} + engines: {node: '>=16.0.0'} + + '@metamask/json-rpc-middleware-stream@7.0.2': + resolution: {integrity: sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==} + engines: {node: '>=16.0.0'} + + '@metamask/object-multiplex@2.1.0': + resolution: {integrity: sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==} + engines: {node: ^16.20 || ^18.16 || >=20} + + '@metamask/onboarding@1.0.1': + resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} + + '@metamask/providers@16.1.0': + resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} + engines: {node: ^18.18 || >=20} + + '@metamask/rpc-errors@6.4.0': + resolution: {integrity: sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==} + engines: {node: '>=16.0.0'} + + '@metamask/rpc-errors@7.0.2': + resolution: {integrity: sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==} + engines: {node: ^18.20 || ^20.17 || >=22} + + '@metamask/safe-event-emitter@2.0.0': + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + + '@metamask/safe-event-emitter@3.1.2': + resolution: {integrity: sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==} + engines: {node: '>=12.0.0'} + + '@metamask/sdk-analytics@0.0.5': + resolution: {integrity: sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==} + deprecated: No longer maintained, superseded by @metamask/connect-analytics + + '@metamask/sdk-communication-layer@0.33.1': + resolution: {integrity: sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==} + deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect + peerDependencies: + cross-fetch: ^4.0.0 + eciesjs: '*' + eventemitter2: ^6.4.9 + readable-stream: ^3.6.2 + socket.io-client: ^4.5.1 + + '@metamask/sdk-install-modal-web@0.32.1': + resolution: {integrity: sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==} + deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect + + '@metamask/sdk@0.33.1': + resolution: {integrity: sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==} + deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect + + '@metamask/superstruct@3.3.0': + resolution: {integrity: sha512-P/MwKoAIHGgMz7gnfIV9jP0wG8f/bCHooy5LPfYWzoyV9FrcHB/9Ai/spIOa6jRmoSr+R6etWvulTakDfwCbrA==} + engines: {node: '>=16.0.0'} + + '@metamask/utils@11.11.0': + resolution: {integrity: sha512-0nF2CWjWQr/m0Y2t2lJnBTU1/CZPPTvKvcESLplyWe/tyeb8zFOi/FeneDmaFnML6LYRIGZU6f+xR0jKAIUZfw==} + engines: {node: ^18.18 || ^20.14 || >=22} + + '@metamask/utils@5.0.2': + resolution: {integrity: sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==} + engines: {node: '>=14.0.0'} + + '@metamask/utils@8.5.0': + resolution: {integrity: sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==} + engines: {node: '>=16.0.0'} + + '@metamask/utils@9.3.0': + resolution: {integrity: sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==} + engines: {node: '>=16.0.0'} + + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + + '@noble/ciphers@1.2.1': + resolution: {integrity: sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} @@ -1028,6 +1616,98 @@ packages: '@package-json/types@0.0.12': resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@paulmillr/qr@0.2.1': + resolution: {integrity: sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==} + deprecated: 'Switch to "qr" (new package name) for security updates: npm install qr' + '@polygonlabs/apps-team-lint@2.0.2': resolution: {integrity: sha512-vMfjNcPQpR8WEXt+/YG781Ktym82XPrKkGwfgqLBk53Gx18VBzO113wZuFvvpKHZXg8lzqSIY8UgJowcJUaxtw==} peerDependencies: @@ -1053,3470 +1733,8674 @@ packages: '@ethersproject/providers': ^5.0.14 '@ethersproject/solidity': ^5.0.7 - '@remotion/bundler@4.0.290': - resolution: {integrity: sha512-nE9BZKcldoHQ2Z26+vq0MUnt1Hj8UnRyt7wNlwPpTOz0IzUnaPpii99vMlUL64krqkNLGW80V5kcABViODaM+g==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@radix-ui/number@1.1.2': + resolution: {integrity: sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==} - '@remotion/cli@4.0.290': - resolution: {integrity: sha512-1uagTi1+JSfMmF52+4+5LbHD/+MoJvTEuB7V7cCI8xthYpWjgkyGIola235EfqnzwIoN6pQUOBZHH2fQZuLK7Q==} - hasBin: true - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - '@remotion/compositor-darwin-arm64@4.0.290': - resolution: {integrity: sha512-GRo1E2M2i82WDMX2t2CB1GwfoWRu7iX7WDiwOH8g1Ro5jEH8SW2Ike3wqJNrohAriISm8x+/3gKYmYUps8p/Sw==} - cpu: [arm64] - os: [darwin] + '@radix-ui/primitive@1.1.4': + resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} - '@remotion/compositor-darwin-x64@4.0.290': - resolution: {integrity: sha512-gEQEcDBRtm6b2nW7kDwJdFWG8XipLhb7AP7WFO+u7OwFr9YmSDYCDIz4GnL8XMrvzDAwDmzj6zgJkP+v3jgirw==} - cpu: [x64] - os: [darwin] + '@radix-ui/react-arrow@1.1.11': + resolution: {integrity: sha512-Kdil9BB1rIFC/khmf4hC35bn8701AJcizTU7G7cUbEbk5XqqbjDuHW60uUfKqO5WojjZcbAW51Q7P0hRmMLw8A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/compositor-linux-arm64-gnu@4.0.290': - resolution: {integrity: sha512-OAxfdm2HyiTJCCnkJjAU9bJBqdw62g+NwapSD0/KwVPfXRWV/2zN+LW1ToanQ96HdVtNGwXryTv4FO0HO2IlOA==} - cpu: [arm64] - os: [linux] - libc: [glibc] + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/compositor-linux-arm64-musl@4.0.290': - resolution: {integrity: sha512-oo52TZX343ZuGCX+JeJpmPjSTLe9hCV6UlxjAJZhNzjkihUDFU9twa7jwE2ktZDsRAgvIxrs18xwQN8hLFxHUQ==} - cpu: [arm64] - os: [linux] - libc: [musl] + '@radix-ui/react-aspect-ratio@1.1.11': + resolution: {integrity: sha512-IUAhIVpBUvP5NNICjlaB1OFmtRLGqQqTF3ZOSGPoq3XeLXRFtHiWTRxSVEULgOd9GQR2c7tsYqDnhUennapZnw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/compositor-linux-x64-gnu@4.0.290': - resolution: {integrity: sha512-IoHvGiqUZqmdUCSr8s5/EFwcZa3v0x7PHD3fxr73xZyddXDla1soFiXQO1xQzH7C5LmuEx1ekoQhxcx8oFRf0A==} - cpu: [x64] - os: [linux] - libc: [glibc] + '@radix-ui/react-checkbox@1.3.6': + resolution: {integrity: sha512-eUEUoGMDpfkgHWSE97ZZaUJtzR1M7EKnNIpD1Q16+8JR9NWghcaqMulx9PuCQ720w0UclfYn6FEbCdd5Hx087g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/compositor-linux-x64-musl@4.0.290': - resolution: {integrity: sha512-QN++ycuoeeeSLGrOA/MJ2onkqMRm0FaHh/6dh60dVK9wjWoMDrzZL1V8fPX075SyWVL01SN7bzTyotwaUJrMxg==} - cpu: [x64] - os: [linux] - libc: [musl] + '@radix-ui/react-collapsible@1.1.15': + resolution: {integrity: sha512-8A1zibu5skAQ+UVbaeNH5hVMibiFCRJzgMuM14LTWGttnTZKQL9jwYnhAbHRuxrtCqPXa4JvvnVUq1pTNgyZYw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/compositor-win32-x64-msvc@4.0.290': - resolution: {integrity: sha512-acRUOIeswQuJ74tKnuziwZIUcsQ6isQpwYUla0CiFrC9MVdbTFlt37eyvmkgXXkCartPWlFptfDYDv9li6mBmA==} - cpu: [x64] - os: [win32] + '@radix-ui/react-collection@1.1.11': + resolution: {integrity: sha512-djW9+zeg137KQdlPtmE8xnaD+K2rcXXMWFrSg0hsmYZ6HRbdTA7tDHFgpaW9+huWVEu0RCabL+985T4TA0BE7g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/media-parser@4.0.290': - resolution: {integrity: sha512-u3/nRI7ghf0Cnci2DrbHrdHLIW7GFCaV5qVNT6IzOqdpVmwiS9sz3jAM85r7wrMKfed2QqVbKsRaLSY3MGA0RQ==} + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@remotion/media-utils@4.0.290': - resolution: {integrity: sha512-VbBy7NtcLm/jG9c2nq2DYSMIx6AI+EyX/66EQ57txnMIuR/OSdx2j0PoMg/lyAl1RzZp8k/epBKTcod420y2PQ==} + '@radix-ui/react-compose-refs@1.1.3': + resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@remotion/player@4.0.290': - resolution: {integrity: sha512-RsOSm3NOGwyRz11nRqfgFs0Mx7pWrXnHCcmWWUy5iaPKEbt8sCPsO4tVN5Ceogh0QdesoC3FGNeD/iGYk46e+A==} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@remotion/renderer@4.0.290': - resolution: {integrity: sha512-/yNFkY5L/4jOmvgMqAmAa+qXenRilJrSWWDMdLFta2znXIE2m8NGZzQo9MlE7I+N1DcdZ2W+vrka01Epf7HIgQ==} + '@radix-ui/react-context@1.1.4': + resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@remotion/streaming@4.0.290': - resolution: {integrity: sha512-i043W/aXDG2ffOhMqxj9DjzCegzraH+WaiAZ8wMihXWkkYz83r2RgN+w+Zb1a10MM3VG1U2dgZ2QYymu3SEq+w==} + '@radix-ui/react-dialog@1.1.18': + resolution: {integrity: sha512-apa28mldjMgORmE6g/w3sCcA0Y9UAVeeDVoozN4i7kOw12mLl9RBchfzK3Nn6qxOWjrZhK1Lfy7f07kyzxtnBw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/studio-server@4.0.290': - resolution: {integrity: sha512-r+iSKai3gkvnx0d0QE6/YYmwAM3L8C4AJz4ITkw4txtBNbrOWJds8abbBCNs/zmfVLflsft+V0Y76vW9a/7HZA==} + '@radix-ui/react-direction@1.1.2': + resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@remotion/studio-shared@4.0.290': - resolution: {integrity: sha512-CU5aGCzVUEadOb2XqG0gs/rUl5W8UIZVakNjZQcBVUXRq81fyOPCKvrBQHxwA2zWTiyMmvgKAm9LEuozVzAY2A==} + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/studio@4.0.290': - resolution: {integrity: sha512-Wf78/DCCmO+Ck4IWyVBzcWQVMubIbArxZUFgc/45owF0d7d3W3iKV/rs0deUAWkHTcR4mI+47ha2e3vDRdOMhQ==} + '@radix-ui/react-dismissable-layer@1.1.14': + resolution: {integrity: sha512-4lUhWTWAjbDIqFrAPWJ3WqBOpO5YchVZ88X3nh6H9Lu5AFi5nCUeTPj3D8FSDmabmFeRe9ME0BDA4MwKTha5GQ==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@remotion/zod-types@4.0.290': - resolution: {integrity: sha512-3VSLK8ycb76fMXxFELaQ5EMSbQIL4iRrcPRr+6eKothchF+Bm8C2IlB2dqTZMj5W/3AP71qv4vBizi8ZgHjhTg==} + '@radix-ui/react-dropdown-menu@2.1.19': + resolution: {integrity: sha512-HZccBkbK0LOi8nYKIp5jll/zIRW0cCOmG6WWyqsSpmXCU+ZlcBbTqIwlBvPCu886C5RVu6c/kHV7xSP8IgYNHw==} peerDependencies: - zod: 3.22.3 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@scure/base@1.2.6': - resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} + '@radix-ui/react-focus-guards@1.1.4': + resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@scure/bip32@1.7.0': - resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} + '@radix-ui/react-focus-scope@1.1.11': + resolution: {integrity: sha512-Mn88Vg2whaRocGJNOH+DKFqYm6ySFPQaiwHNxZPyjn99B52KAEJWWY9NP83+nWdk2HM3rdov+STu9AG471Rt9w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@scure/bip39@1.6.0': - resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@simple-libs/stream-utils@1.2.0': - resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==} - engines: {node: '>=18'} - - '@spruceid/siwe-parser@2.1.2': - resolution: {integrity: sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==} + '@radix-ui/react-id@1.1.2': + resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@stablelib/binary@1.0.1': - resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + '@radix-ui/react-menu@2.1.19': + resolution: {integrity: sha512-Mht9BVd1AIsNFVQr4KG3bIK7XQn5IXF0TL/2ObsrzOdc1loaly/+kBDL5roSCYn8j8XZkvpOD0WYLz2FQtH1Eg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@stablelib/int@1.0.1': - resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@stablelib/random@1.0.2': - resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + '@radix-ui/react-popper@1.3.2': + resolution: {integrity: sha512-3QXNeMkdshed1MR3LNoiCirBywRFPkD8ETJa/HlPuLwSajaQixf2ro+isoDNJlGABg9ug41XuZpINZJIle4XWg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@stablelib/wipe@1.0.1': - resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + '@radix-ui/react-portal@1.1.13': + resolution: {integrity: sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@tsconfig/node-ts@23.6.4': - resolution: {integrity: sha512-37BMJvNQZ+vTgd1xG2TGBkJ6ENeT4eO4Wh2CHrnn0IwH7ybLFCzh4Uc//kc7UIvqiRac4uGdIc1meKOjMSlKzw==} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@tsconfig/node24@24.0.4': - resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@radix-ui/react-presence@1.1.6': + resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/conventional-commits-parser@5.0.2': - resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@radix-ui/react-primitive@2.1.7': + resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@radix-ui/react-progress@1.1.11': + resolution: {integrity: sha512-KqiGJcFaZDc+BvveAgU3ZhACg2MvSUDrCBx4lRR/ZVRNal0bvt8lBpvnSkep9heeOuF8Qfw3fszLDX4OpQ2NVw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@radix-ui/react-radio-group@1.4.2': + resolution: {integrity: sha512-W8Uo9riHnlzLLWy+r2mVHUyuEWqD/+be4PZzbEvaGoFSBDHkm+GYWjtcE6u3AmPKNyfanWpnVfpZ2GqPCdzzsw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@radix-ui/react-roving-focus@1.1.14': + resolution: {integrity: sha512-8Qcnx9447tx/aCBgw6Jenfqg4Skq+vqab9mCBmuGNipIS5YXvL275wbKEu7+ICYHIlAPgCduUMJH1XOYewKF6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@radix-ui/react-select@2.3.2': + resolution: {integrity: sha512-brXD6C/V0fVK0DDbscLVw6LsXrjQ+ay8jdOBaN+tLb4vsHsAMm6Gt6eT77wHX1Eq8GPtD5rJ+RxFtfDozsb4+Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@types/node@22.19.13': - resolution: {integrity: sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==} + '@radix-ui/react-slot@1.3.0': + resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@types/node@22.7.5': - resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@radix-ui/react-switch@1.3.2': + resolution: {integrity: sha512-tgRBI3DdNwAJYE4BBZyZcz/HRRCvAsPkRvG1wvKc+41tBGMxPn/a87T/wikXAvyDypNQ9kaZwHbeZe+veHCGpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@radix-ui/react-tabs@1.1.16': + resolution: {integrity: sha512-v3Ab2l7z6U7tRB4xA0IyKdq0OsqaO1o9ZjsIEoKKnSZ/l96mZz8aCTX0NCXw+YVHJXr8Km4d+Mn6/Q8YjXa+gw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + '@radix-ui/react-toast@1.2.18': + resolution: {integrity: sha512-YNEnTHV47hPep+U0QvVM02OJNka9uygREc+k4Nh5VSZBg4MmE+myI442x3hCGfRpX7N2WSSYSJKws4gE+Z8lgg==} peerDependencies: - '@types/react': ^18.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/react@18.3.28': - resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@types/yargs@17.0.35': - resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@radix-ui/react-use-callback-ref@1.1.2': + resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-controllable-state@1.2.3': + resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==} peerDependencies: - '@typescript-eslint/parser': ^8.56.1 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-effect-event@0.0.3': + resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-layout-effect@1.1.2': + resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-previous@1.1.2': + resolution: {integrity: sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-rect@1.1.2': + resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] + '@radix-ui/react-use-size@1.1.2': + resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-visually-hidden@1.2.7': + resolution: {integrity: sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@radix-ui/rect@1.1.2': + resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==} + + '@react-oauth/google@0.11.1': + resolution: {integrity: sha512-tywZisXbsdaRBVbEu0VX6dRbOSL2I6DgY97woq5NMOOOz+xtDsm418vqq+Vx10KMtra3kdHMRMf0hXLWrk2RMg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/bundler@4.0.290': + resolution: {integrity: sha512-nE9BZKcldoHQ2Z26+vq0MUnt1Hj8UnRyt7wNlwPpTOz0IzUnaPpii99vMlUL64krqkNLGW80V5kcABViODaM+g==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/cli@4.0.290': + resolution: {integrity: sha512-1uagTi1+JSfMmF52+4+5LbHD/+MoJvTEuB7V7cCI8xthYpWjgkyGIola235EfqnzwIoN6pQUOBZHH2fQZuLK7Q==} + hasBin: true + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/compositor-darwin-arm64@4.0.290': + resolution: {integrity: sha512-GRo1E2M2i82WDMX2t2CB1GwfoWRu7iX7WDiwOH8g1Ro5jEH8SW2Ike3wqJNrohAriISm8x+/3gKYmYUps8p/Sw==} + cpu: [arm64] + os: [darwin] + + '@remotion/compositor-darwin-x64@4.0.290': + resolution: {integrity: sha512-gEQEcDBRtm6b2nW7kDwJdFWG8XipLhb7AP7WFO+u7OwFr9YmSDYCDIz4GnL8XMrvzDAwDmzj6zgJkP+v3jgirw==} + cpu: [x64] + os: [darwin] + + '@remotion/compositor-linux-arm64-gnu@4.0.290': + resolution: {integrity: sha512-OAxfdm2HyiTJCCnkJjAU9bJBqdw62g+NwapSD0/KwVPfXRWV/2zN+LW1ToanQ96HdVtNGwXryTv4FO0HO2IlOA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@remotion/compositor-linux-arm64-musl@4.0.290': + resolution: {integrity: sha512-oo52TZX343ZuGCX+JeJpmPjSTLe9hCV6UlxjAJZhNzjkihUDFU9twa7jwE2ktZDsRAgvIxrs18xwQN8hLFxHUQ==} cpu: [arm64] + os: [linux] + libc: [musl] + + '@remotion/compositor-linux-x64-gnu@4.0.290': + resolution: {integrity: sha512-IoHvGiqUZqmdUCSr8s5/EFwcZa3v0x7PHD3fxr73xZyddXDla1soFiXQO1xQzH7C5LmuEx1ekoQhxcx8oFRf0A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@remotion/compositor-linux-x64-musl@4.0.290': + resolution: {integrity: sha512-QN++ycuoeeeSLGrOA/MJ2onkqMRm0FaHh/6dh60dVK9wjWoMDrzZL1V8fPX075SyWVL01SN7bzTyotwaUJrMxg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@remotion/compositor-win32-x64-msvc@4.0.290': + resolution: {integrity: sha512-acRUOIeswQuJ74tKnuziwZIUcsQ6isQpwYUla0CiFrC9MVdbTFlt37eyvmkgXXkCartPWlFptfDYDv9li6mBmA==} + cpu: [x64] + os: [win32] + + '@remotion/media-parser@4.0.290': + resolution: {integrity: sha512-u3/nRI7ghf0Cnci2DrbHrdHLIW7GFCaV5qVNT6IzOqdpVmwiS9sz3jAM85r7wrMKfed2QqVbKsRaLSY3MGA0RQ==} + + '@remotion/media-utils@4.0.290': + resolution: {integrity: sha512-VbBy7NtcLm/jG9c2nq2DYSMIx6AI+EyX/66EQ57txnMIuR/OSdx2j0PoMg/lyAl1RzZp8k/epBKTcod420y2PQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/player@4.0.290': + resolution: {integrity: sha512-RsOSm3NOGwyRz11nRqfgFs0Mx7pWrXnHCcmWWUy5iaPKEbt8sCPsO4tVN5Ceogh0QdesoC3FGNeD/iGYk46e+A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/renderer@4.0.290': + resolution: {integrity: sha512-/yNFkY5L/4jOmvgMqAmAa+qXenRilJrSWWDMdLFta2znXIE2m8NGZzQo9MlE7I+N1DcdZ2W+vrka01Epf7HIgQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/streaming@4.0.290': + resolution: {integrity: sha512-i043W/aXDG2ffOhMqxj9DjzCegzraH+WaiAZ8wMihXWkkYz83r2RgN+w+Zb1a10MM3VG1U2dgZ2QYymu3SEq+w==} + + '@remotion/studio-server@4.0.290': + resolution: {integrity: sha512-r+iSKai3gkvnx0d0QE6/YYmwAM3L8C4AJz4ITkw4txtBNbrOWJds8abbBCNs/zmfVLflsft+V0Y76vW9a/7HZA==} + + '@remotion/studio-shared@4.0.290': + resolution: {integrity: sha512-CU5aGCzVUEadOb2XqG0gs/rUl5W8UIZVakNjZQcBVUXRq81fyOPCKvrBQHxwA2zWTiyMmvgKAm9LEuozVzAY2A==} + + '@remotion/studio@4.0.290': + resolution: {integrity: sha512-Wf78/DCCmO+Ck4IWyVBzcWQVMubIbArxZUFgc/45owF0d7d3W3iKV/rs0deUAWkHTcR4mI+47ha2e3vDRdOMhQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@remotion/zod-types@4.0.290': + resolution: {integrity: sha512-3VSLK8ycb76fMXxFELaQ5EMSbQIL4iRrcPRr+6eKothchF+Bm8C2IlB2dqTZMj5W/3AP71qv4vBizi8ZgHjhTg==} + peerDependencies: + zod: 3.22.3 + + '@reown/appkit-common@1.7.8': + resolution: {integrity: sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==} + + '@reown/appkit-controllers@1.7.8': + resolution: {integrity: sha512-IdXlJlivrlj6m63VsGLsjtPHHsTWvKGVzWIP1fXZHVqmK+rZCBDjCi9j267Rb9/nYRGHWBtlFQhO8dK35WfeDA==} + + '@reown/appkit-pay@1.7.8': + resolution: {integrity: sha512-OSGQ+QJkXx0FEEjlpQqIhT8zGJKOoHzVnyy/0QFrl3WrQTjCzg0L6+i91Ad5Iy1zb6V5JjqtfIFpRVRWN4M3pw==} + + '@reown/appkit-polyfills@1.7.8': + resolution: {integrity: sha512-W/kq786dcHHAuJ3IV2prRLEgD/2iOey4ueMHf1sIFjhhCGMynMkhsOhQMUH0tzodPqUgAC494z4bpIDYjwWXaA==} + + '@reown/appkit-scaffold-ui@1.7.8': + resolution: {integrity: sha512-RCeHhAwOrIgcvHwYlNWMcIDibdI91waaoEYBGw71inE0kDB8uZbE7tE6DAXJmDkvl0qPh+DqlC4QbJLF1FVYdQ==} + + '@reown/appkit-ui@1.7.8': + resolution: {integrity: sha512-1hjCKjf6FLMFzrulhl0Y9Vb9Fu4royE+SXCPSWh4VhZhWqlzUFc7kutnZKx8XZFVQH4pbBvY62SpRC93gqoHow==} + + '@reown/appkit-utils@1.7.8': + resolution: {integrity: sha512-8X7UvmE8GiaoitCwNoB86pttHgQtzy4ryHZM9kQpvjQ0ULpiER44t1qpVLXNM4X35O0v18W0Dk60DnYRMH2WRw==} + peerDependencies: + valtio: 1.13.2 + + '@reown/appkit-wallet@1.7.8': + resolution: {integrity: sha512-kspz32EwHIOT/eg/ZQbFPxgXq0B/olDOj3YMu7gvLEFz4xyOFd/wgzxxAXkp5LbG4Cp++s/elh79rVNmVFdB9A==} + + '@reown/appkit@1.7.8': + resolution: {integrity: sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA==} + + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + cpu: [arm] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} cpu: [arm] os: [linux] + libc: [glibc] - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} cpu: [arm] os: [linux] + libc: [musl] - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} cpu: [arm64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} cpu: [arm64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} cpu: [ppc64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} cpu: [riscv64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} cpu: [riscv64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} cpu: [s390x] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} cpu: [x64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} cpu: [x64] os: [linux] libc: [musl] - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + cpu: [x64] + os: [openbsd] - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} cpu: [x64] os: [win32] - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + cpu: [x64] + os: [win32] - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + '@safe-global/safe-apps-provider@0.18.6': + resolution: {integrity: sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q==} - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + '@safe-global/safe-apps-sdk@9.1.0': + resolution: {integrity: sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==} - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + '@safe-global/safe-gateway-typescript-sdk@3.23.1': + resolution: {integrity: sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw==} + engines: {node: '>=16'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + '@scure/base@1.2.6': + resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + '@scure/bip32@1.6.2': + resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + '@scure/bip32@1.7.0': + resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@x402/core@2.5.0': - resolution: {integrity: sha512-nUr8HW8WhkU1DvrpUfsRvALy5NF8UWKoFezZOtX61mohxp2lWZpJ2GnvscxDM8nmBAbtIollmksd5z5pj8InXw==} + '@scure/bip39@1.5.4': + resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} - '@x402/evm@2.5.0': - resolution: {integrity: sha512-MBSTQZwLobMVcmYO7itOMJRkxfHstsDyr7F94o9Rk/Oinz0kjvCe4DFgZmFXyz3nQUgQFmDVgTK5KIzfYR5uIA==} + '@scure/bip39@1.6.0': + resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} - '@x402/extensions@2.5.0': - resolution: {integrity: sha512-e7IQShbGUM/XQmzI8DQh2tX/k2XDUGI9DNF+ij2NHUyPEqAt5/mJCwOlaxS/60FWFdfFRfWjTsqaoS7Z8WLi+A==} + '@simple-libs/stream-utils@1.2.0': + resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==} + engines: {node: '>=18'} - '@x402/fetch@2.5.0': - resolution: {integrity: sha512-D2jH3bn0nf8w9Jg3Vxo+6reE6Z9GickzkSIw+udITJFvsrGOpfjZvhcTeflLcthCODk4Nuu9Oe8x7Q3NLUdaRQ==} + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + '@solana-program/system@0.10.0': + resolution: {integrity: sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g==} + peerDependencies: + '@solana/kit': ^5.0 - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@solana-program/token@0.9.0': + resolution: {integrity: sha512-vnZxndd4ED4Fc56sw93cWZ2djEeeOFxtaPS8SPf5+a+JZjKA/EnKqzbE1y04FuMhIVrLERQ8uR8H2h72eZzlsA==} + peerDependencies: + '@solana/kit': ^5.0 - abitype@1.2.3: - resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} + '@solana/accounts@5.5.1': + resolution: {integrity: sha512-TfOY9xixg5rizABuLVuZ9XI2x2tmWUC/OoN556xwfDlhBHBjKfszicYYOyD6nbFmwTGYarCmyGIdteXxTXIdhQ==} + engines: {node: '>=20.18.0'} peerDependencies: - typescript: '>=5.0.4' - zod: ^3.22.0 || ^4.0.0 + typescript: ^5.0.0 peerDependenciesMeta: typescript: optional: true - zod: - optional: true - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + '@solana/addresses@5.5.1': + resolution: {integrity: sha512-5xoah3Q9G30HQghu/9BiHLb5pzlPKRC3zydQDmE3O9H//WfayxTFppsUDCL6FjYUHqj/wzK6CWHySglc2RkpdA==} + engines: {node: '>=20.18.0'} peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true + '@solana/assertions@5.5.1': + resolution: {integrity: sha512-YTCSWAlGwSlVPnWtWLm3ukz81wH4j2YaCveK+TjpvUU88hTy6fmUqxi0+hvAMAe4zKXpJyj3Az7BrLJRxbIm4Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} - aes-js@4.0.0-beta.5: - resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + '@solana/codecs-core@2.3.0': + resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + '@solana/codecs-core@5.5.1': + resolution: {integrity: sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw==} + engines: {node: '>=20.18.0'} peerDependencies: - ajv: ^8.0.0 + typescript: ^5.0.0 peerDependenciesMeta: - ajv: + typescript: optional: true - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + '@solana/codecs-data-structures@5.5.1': + resolution: {integrity: sha512-97bJWGyUY9WvBz3mX1UV3YPWGDTez6btCfD0ip3UVEXJbItVuUiOkzcO5iFDUtQT5riKT6xC+Mzl+0nO76gd0w==} + engines: {node: '>=20.18.0'} peerDependencies: - ajv: ^6.9.1 + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + '@solana/codecs-numbers@2.3.0': + resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} + engines: {node: '>=20.18.0'} peerDependencies: - ajv: ^8.8.2 + typescript: '>=5.3.3' - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + '@solana/codecs-numbers@5.5.1': + resolution: {integrity: sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + '@solana/codecs-strings@5.5.1': + resolution: {integrity: sha512-7klX4AhfHYA+uKKC/nxRGP2MntbYQCR3N6+v7bk1W/rSxYuhNmt+FN8aoThSZtWIKwN6BEyR1167ka8Co1+E7A==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: ^5.0.0 + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + '@solana/codecs@5.5.1': + resolution: {integrity: sha512-Vea29nJub/bXjfzEV7ZZQ/PWr1pYLZo3z0qW0LQL37uKKVzVFRQlwetd7INk3YtTD3xm9WUYr7bCvYUk3uKy2g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ansi-escapes@7.3.0: - resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} - engines: {node: '>=18'} + '@solana/errors@2.3.0': + resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.3.3' - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + '@solana/errors@5.5.1': + resolution: {integrity: sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} + '@solana/fast-stable-stringify@5.5.1': + resolution: {integrity: sha512-Ni7s2FN33zTzhTFgRjEbOVFO+UAmK8qi3Iu0/GRFYK4jN696OjKHnboSQH/EacQ+yGqS54bfxf409wU5dsLLCw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + '@solana/functional@5.5.1': + resolution: {integrity: sha512-tTHoJcEQq3gQx5qsdsDJ0LEJeFzwNpXD80xApW9o/PPoCNimI3SALkZl+zNW8VnxRrV3l3yYvfHWBKe/X3WG3w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} + '@solana/instruction-plans@5.5.1': + resolution: {integrity: sha512-7z3CB7YMcFKuVvgcnNY8bY6IsZ8LG61Iytbz7HpNVGX2u1RthOs1tRW8luTzSG1MPL0Ox7afyAVMYeFqSPHnaQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - apg-js@4.4.0: - resolution: {integrity: sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==} + '@solana/instructions@5.5.1': + resolution: {integrity: sha512-h0G1CG6S+gUUSt0eo6rOtsaXRBwCq1+Js2a+Ps9Bzk9q7YHNFA75/X0NWugWLgC92waRp66hrjMTiYYnLBoWOQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + '@solana/keys@5.5.1': + resolution: {integrity: sha512-KRD61cL7CRL+b4r/eB9dEoVxIf/2EJ1Pm1DmRYhtSUAJD2dJ5Xw8QFuehobOGm9URqQ7gaQl+Fkc1qvDlsWqKg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + '@solana/kit@5.5.1': + resolution: {integrity: sha512-irKUGiV2yRoyf+4eGQ/ZeCRxa43yjFEL1DUI5B0DkcfZw3cr0VJtVJnrG8OtVF01vT0OUfYOcUn6zJW5TROHvQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + '@solana/nominal-types@5.5.1': + resolution: {integrity: sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + '@solana/offchain-messages@5.5.1': + resolution: {integrity: sha512-g+xHH95prTU+KujtbOzj8wn+C7ZNoiLhf3hj6nYq3MTyxOXtBEysguc97jJveUZG0K97aIKG6xVUlMutg5yxhw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + '@solana/options@5.5.1': + resolution: {integrity: sha512-eo971c9iLNLmk+yOFyo7yKIJzJ/zou6uKpy6mBuyb/thKtS/haiKIc3VLhyTXty3OH2PW8yOlORJnv4DexJB8A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + '@solana/plugin-core@5.5.1': + resolution: {integrity: sha512-VUZl30lDQFJeiSyNfzU1EjYt2QZvoBFKEwjn1lilUJw7KgqD5z7mbV7diJhT+dLFs36i0OsjXvq5kSygn8YJ3A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + '@solana/programs@5.5.1': + resolution: {integrity: sha512-7U9kn0Jsx1NuBLn5HRTFYh78MV4XN145Yc3WP/q5BlqAVNlMoU9coG5IUTJIG847TUqC1lRto3Dnpwm6T4YRpA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + '@solana/promises@5.5.1': + resolution: {integrity: sha512-T9lfuUYkGykJmppEcssNiCf6yiYQxJkhiLPP+pyAc2z84/7r3UVIb2tNJk4A9sucS66pzJnVHZKcZVGUUp6wzA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} + '@solana/rpc-api@5.5.1': + resolution: {integrity: sha512-XWOQQPhKl06Vj0xi3RYHAc6oEQd8B82okYJ04K7N0Vvy3J4PN2cxeK7klwkjgavdcN9EVkYCChm2ADAtnztKnA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - baseline-browser-mapping@2.10.0: - resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} - engines: {node: '>=6.0.0'} - hasBin: true + '@solana/rpc-parsed-types@5.5.1': + resolution: {integrity: sha512-HEi3G2nZqGEsa3vX6U0FrXLaqnUCg4SKIUrOe8CezD+cSFbRTOn3rCLrUmJrhVyXlHoQVaRO9mmeovk31jWxJg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + '@solana/rpc-spec-types@5.5.1': + resolution: {integrity: sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + '@solana/rpc-spec@5.5.1': + resolution: {integrity: sha512-m3LX2bChm3E3by4mQrH4YwCAFY57QBzuUSWqlUw7ChuZ+oLLOq7b2czi4i6L4Vna67j3eCmB3e+4tqy1j5wy7Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + '@solana/rpc-subscriptions-api@5.5.1': + resolution: {integrity: sha512-5Oi7k+GdeS8xR2ly1iuSFkAv6CZqwG0Z6b1QZKbEgxadE1XGSDrhM2cn59l+bqCozUWCqh4c/A2znU/qQjROlw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - bn.js@4.12.3: - resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} + '@solana/rpc-subscriptions-channel-websocket@5.5.1': + resolution: {integrity: sha512-7tGfBBrYY8TrngOyxSHoCU5shy86iA9SRMRrPSyBhEaZRAk6dnbdpmUTez7gtdVo0BCvh9nzQtUycKWSS7PnFQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - bn.js@5.2.3: - resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} + '@solana/rpc-subscriptions-spec@5.5.1': + resolution: {integrity: sha512-iq+rGq5fMKP3/mKHPNB6MC8IbVW41KGZg83Us/+LE3AWOTWV1WT20KT2iH1F1ik9roi42COv/TpoZZvhKj45XQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} - engines: {node: 18 || 20 || >=22} + '@solana/rpc-subscriptions@5.5.1': + resolution: {integrity: sha512-CTMy5bt/6mDh4tc6vUJms9EcuZj3xvK0/xq8IQ90rhkpYvate91RjBP+egvjgSayUg9yucU9vNuUpEjz4spM7w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + '@solana/rpc-transformers@5.5.1': + resolution: {integrity: sha512-OsWqLCQdcrRJKvHiMmwFhp9noNZ4FARuMkHT5us3ustDLXaxOjF0gfqZLnMkulSLcKt7TGXqMhBV+HCo7z5M8Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + '@solana/rpc-transport-http@5.5.1': + resolution: {integrity: sha512-yv8GoVSHqEV0kUJEIhkdOVkR2SvJ6yoWC51cJn2rSV7plr6huLGe0JgujCmB7uZhhaLbcbP3zxXxu9sOjsi7Fg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - browser-or-node@3.0.0: - resolution: {integrity: sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==} + '@solana/rpc-types@5.5.1': + resolution: {integrity: sha512-bibTFQ7PbHJJjGJPmfYC2I+/5CRFS4O2p9WwbFraX1Keeel+nRrt/NBXIy8veP5AEn2sVJIyJPpWBRpCx1oATA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + '@solana/rpc@5.5.1': + resolution: {integrity: sha512-ku8zTUMrkCWci66PRIBC+1mXepEnZH/q1f3ck0kJZ95a06bOTl5KU7HeXWtskkyefzARJ5zvCs54AD5nxjQJ+A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + '@solana/signers@5.5.1': + resolution: {integrity: sha512-FY0IVaBT2kCAze55vEieR6hag4coqcuJ31Aw3hqRH7mv6sV8oqwuJmUrx+uFwOp1gwd5OEAzlv6N4hOOple4sQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - bufferutil@4.1.0: - resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} - engines: {node: '>=6.14.2'} + '@solana/subscribable@5.5.1': + resolution: {integrity: sha512-9K0PsynFq0CsmK1CDi5Y2vUIJpCqkgSS5yfDN0eKPgHqEptLEaia09Kaxc90cSZDZU5mKY/zv1NBmB6Aro9zQQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + '@solana/sysvars@5.5.1': + resolution: {integrity: sha512-k3Quq87Mm+geGUu1GWv6knPk0ALsfY6EKSJGw9xUJDHzY/RkYSBnh0RiOrUhtFm2TDNjOailg8/m0VHmi3reFA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + '@solana/transaction-confirmation@5.5.1': + resolution: {integrity: sha512-j4mKlYPHEyu+OD7MBt3jRoX4ScFgkhZC6H65on4Fux6LMScgivPJlwnKoZMnsgxFgWds0pl+BYzSiALDsXlYtw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + '@solana/transaction-messages@5.5.1': + resolution: {integrity: sha512-aXyhMCEaAp3M/4fP0akwBBQkFPr4pfwoC5CLDq999r/FUwDax2RE/h4Ic7h2Xk+JdcUwsb+rLq85Y52hq84XvQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - caniuse-lite@1.0.30001775: - resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==} + '@solana/transactions@5.5.1': + resolution: {integrity: sha512-8hHtDxtqalZ157pnx6p8k10D7J/KY/biLzfgh9R09VNLLY3Fqi7kJvJCr7M2ik3oRll56pxhraAGCC9yIT6eOA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + '@solana/wallet-adapter-base@0.9.27': + resolution: {integrity: sha512-kXjeNfNFVs/NE9GPmysBRKQ/nf+foSaq3kfVSeMcO/iVgigyRmB551OjU3WyAolLG/1jeEfKLqF9fKwMCRkUqg==} + engines: {node: '>=20'} + peerDependencies: + '@solana/web3.js': ^1.98.0 - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + '@solana/wallet-standard-chains@1.1.2': + resolution: {integrity: sha512-EZobEGclDBAFplpJC5F3d/s8Xnlqc5isNKuPrd5o9ZPZ7tWN84O0e68yIZ8MAOj9V7ieRadNiHtql7uIXCTyXg==} + engines: {node: '>=22'} - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + '@solana/wallet-standard-features@1.4.0': + resolution: {integrity: sha512-f0tAdqwM2aL6CiFbIgt9h5zKFp+mgY/iNGwoxPMTj9VSTeQj7d1GGSmWhZw0XWoZ4N/1tnKTKmYFq+Dyq08jRw==} + engines: {node: '>=22'} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} + '@solana/wallet-standard-util@1.1.3': + resolution: {integrity: sha512-aweR5y5FjYaeS9TkoqAWERFpGUj2MJepsDhcekCuoPLcNCquJL85Nsnuy01tBybspN5+Y09SWkxwsODOFGSfkg==} + engines: {node: '>=22'} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + '@solana/wallet-standard-wallet-adapter-base@1.1.5': + resolution: {integrity: sha512-dbk+4mJAsZ1a2R/v5/Qvp6SleviuSNWd9LnuQ0ekH0HRRJTOWyTBJsdQsVDdAymdPnLAaIN5J10ni1CT2Z+ERg==} + engines: {node: '>=22'} + peerDependencies: + '@solana/web3.js': ^1.98.0 + bs58: ^6.0.0 - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + '@solana/web3.js@1.98.4': + resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} + '@spruceid/siwe-parser@2.1.2': + resolution: {integrity: sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + '@stablelib/binary@1.0.1': + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} - cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + '@stablelib/int@1.0.1': + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} - cli-truncate@5.2.0: - resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} - engines: {node: '>=20'} + '@stablelib/random@1.0.2': + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + '@stablelib/wipe@1.0.1': + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} - code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + '@swc/helpers@0.5.23': + resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + '@tailwindcss/cli@4.3.2': + resolution: {integrity: sha512-Fzt+HrIZHDlkRYKdLMBeufaroaPvwCBG70sMLdmurdeadNMO/LxbmT8Sbb+P83ep0iAlAImettb7Y+rO+37rXw==} + hasBin: true - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + '@tailwindcss/node@4.3.2': + resolution: {integrity: sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + '@tailwindcss/oxide-android-arm64@4.3.2': + resolution: {integrity: sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + '@tailwindcss/oxide-darwin-arm64@4.3.2': + resolution: {integrity: sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} + '@tailwindcss/oxide-darwin-x64@4.3.2': + resolution: {integrity: sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + '@tailwindcss/oxide-freebsd-x64@4.3.2': + resolution: {integrity: sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] - comment-parser@1.4.5: - resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} - engines: {node: '>= 12.0.0'} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + resolution: {integrity: sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] - compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + resolution: {integrity: sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] - concurrently@9.2.1: - resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} - engines: {node: '>=18'} - hasBin: true + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + resolution: {integrity: sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] - conventional-changelog-angular@8.2.0: - resolution: {integrity: sha512-4YB1zEXqB17oBI8yRsAs1T+ZhbdsOgJqkl6Trz+GXt/eKf1e4jnA0oW+sOd9BEENzEViuNW0DNoFFjSf3CeC5Q==} - engines: {node: '>=18'} + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + resolution: {integrity: sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] - conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + resolution: {integrity: sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] - conventional-changelog-conventionalcommits@9.2.0: - resolution: {integrity: sha512-fCf+ODjseueTV09wVBoC0HXLi3OyuBJ+HfE3L63Khxqnr99f9nUcnQh3a15lCWHlGLihyZShW/mVVkBagr9JvQ==} - engines: {node: '>=18'} + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + resolution: {integrity: sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + resolution: {integrity: sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] - conventional-commits-parser@6.3.0: - resolution: {integrity: sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg==} - engines: {node: '>=18'} - hasBin: true + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + resolution: {integrity: sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] - convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + '@tailwindcss/oxide@4.3.2': + resolution: {integrity: sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==} + engines: {node: '>= 20'} - cosmiconfig-typescript-loader@6.2.0: - resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} - engines: {node: '>=v18'} + '@tailwindcss/vite@4.3.2': + resolution: {integrity: sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==} peerDependencies: - '@types/node': '*' - cosmiconfig: '>=9' - typescript: '>=5' + vite: ^5.2.0 || ^6 || ^7 || ^8 - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + '@tanstack/query-core@5.101.2': + resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + '@tanstack/query-persist-client-core@5.101.2': + resolution: {integrity: sha512-rgMsbvBVpSPDUsprC9FYxojdG0Q1LH6yq1i3DXz2aps4VEqv2l4Msj3YDqIifU3xkl/DrYe9YWntZAJLrM6xTg==} - css-loader@5.2.7: - resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} - engines: {node: '>= 10.13.0'} + '@tanstack/react-query@5.101.2': + resolution: {integrity: sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg==} peerDependencies: - webpack: ^4.27.0 || ^5.0.0 + react: ^18 || ^19 - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + '@tanstack/react-virtual@3.14.5': + resolution: {integrity: sha512-4EKRXh7zBLkbKbFmG3AUVkircuHd+7OdT1pocJSepxtfBd3qnrJgJ5rtPkRYyo9fmyVb2+pI2xPy5oYvMLQy6A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + '@tanstack/virtual-core@3.17.3': + resolution: {integrity: sha512-8Np/TFELpI0ySuJoVmjvOrQYXH/8sTX0Biv9szhFhY39xOdAAY+smrMxjxOum/ux3eM8MUJQsEJ0/R0UpvC8dw==} - dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} + '@tsconfig/node-ts@23.6.4': + resolution: {integrity: sha512-37BMJvNQZ+vTgd1xG2TGBkJ6ENeT4eO4Wh2CHrnn0IwH7ybLFCzh4Uc//kc7UIvqiRac4uGdIc1meKOjMSlKzw==} - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + '@tsconfig/node24@24.0.4': + resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} - engines: {node: '>=18'} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} - engines: {node: '>=18'} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + '@types/conventional-commits-parser@5.0.2': + resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - dotenv@9.0.2: - resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} - engines: {node: '>=10'} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - electron-to-chromium@1.5.302: - resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} - - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} + '@types/lodash@4.17.24': + resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - enhanced-resolve@5.20.0: - resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} - engines: {node: '>=10.13.0'} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + '@types/node@22.19.13': + resolution: {integrity: sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} + '@types/react@18.3.28': + resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - es-toolkit@1.33.0: - resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - esbuild@0.25.0: - resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} - engines: {node: '>=18'} - hasBin: true + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} - engines: {node: '>=18'} - hasBin: true + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - esbuild@0.28.0: - resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} - engines: {node: '>=18'} - hasBin: true + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=7.0.0' + typescript: '>=4.8.4 <6.0.0' - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - eslint-import-resolver-typescript@4.4.4: - resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} - engines: {node: ^16.17.0 || >=18.6.0} + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true + typescript: '>=4.8.4 <6.0.0' - eslint-plugin-import-x@4.16.2: - resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/utils': ^8.56.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true + typescript: '>=4.8.4 <6.0.0' - eslint-plugin-perfectionist@5.6.0: - resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} - engines: {node: ^20.0.0 || >=22.0.0} - peerDependencies: - eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] - eslint@10.0.3: - resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + libc: [musl] - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + libc: [musl] - ethers@5.8.0: - resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + libc: [glibc] - ethers@6.16.0: - resolution: {integrity: sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} engines: {node: '>=14.0.0'} + cpu: [wasm32] - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true + '@wagmi/connectors@6.2.0': + resolution: {integrity: sha512-2NfkbqhNWdjfibb4abRMrn7u6rPjEGolMfApXss6HCDVt9AW2oVC6k8Q5FouzpJezElxLJSagWz9FW1zaRlanA==} + peerDependencies: + '@wagmi/core': 2.22.1 + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + '@wagmi/core@2.22.1': + resolution: {integrity: sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==} + peerDependencies: + '@tanstack/query-core': '>=5.0.0' + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + '@tanstack/query-core': + optional: true + typescript: + optional: true - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} + '@wallet-standard/app@1.1.1': + resolution: {integrity: sha512-WDGwoByhP5gwHH01r5EaLgQdLVkACPCdOMQhmhn8rsm10h/siSgTorShzBxrn0ExSPof+Lu+C3TfgqBrPa1xoQ==} + engines: {node: '>=22'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + '@wallet-standard/base@1.1.1': + resolution: {integrity: sha512-gggIHTtxicF9XFMQ12DkfS6NAG92Ak795JeSA7f2whAQ6Y3AkMWWuCMxSZXG2NIPN42kEaZSNVjqMsJRaJRxMQ==} + engines: {node: '>=22'} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + '@wallet-standard/features@1.1.1': + resolution: {integrity: sha512-aCWYmVeSCGViyEU5k7GMoW8zxE4Gs+C1s1Pp2XLesvSNlnZ4PMES9HUnTB3hl0b3RVj7C61yze3IWyrncqg4MA==} + engines: {node: '>=22'} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + '@wallet-standard/wallet@1.1.1': + resolution: {integrity: sha512-8WiRPaKk/wNNRZhB2eVhpR/JW7/aqTCMoZhgVUCujuzDmxxmGvsosMxdCG4NAdYkoyozAHCX8/xLtlWUn5mNdQ==} + engines: {node: '>=22'} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + '@walletconnect/core@2.21.0': + resolution: {integrity: sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==} + engines: {node: '>=18'} - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + '@walletconnect/core@2.21.1': + resolution: {integrity: sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==} + engines: {node: '>=18'} - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true + '@walletconnect/environment@1.0.1': + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + '@walletconnect/ethereum-provider@2.21.1': + resolution: {integrity: sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + '@walletconnect/events@1.0.1': + resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + '@walletconnect/heartbeat@1.2.2': + resolution: {integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + '@walletconnect/jsonrpc-http-connection@1.0.8': + resolution: {integrity: sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + '@walletconnect/jsonrpc-provider@1.0.14': + resolution: {integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==} - flatted@3.3.4: - resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + '@walletconnect/jsonrpc-types@1.0.4': + resolution: {integrity: sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} + '@walletconnect/jsonrpc-utils@1.0.8': + resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} + + '@walletconnect/jsonrpc-ws-connection@1.0.16': + resolution: {integrity: sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==} + + '@walletconnect/keyvaluestorage@1.1.1': + resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} peerDependencies: - debug: '*' + '@react-native-async-storage/async-storage': 1.x peerDependenciesMeta: - debug: + '@react-native-async-storage/async-storage': optional: true - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + '@walletconnect/logger@2.1.2': + resolution: {integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==} - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + '@walletconnect/relay-api@1.0.11': + resolution: {integrity: sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==} - fs-monkey@1.0.3: - resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + '@walletconnect/relay-auth@1.1.0': + resolution: {integrity: sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==} - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] + '@walletconnect/safe-json@1.0.2': + resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + '@walletconnect/sign-client@2.21.0': + resolution: {integrity: sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + '@walletconnect/sign-client@2.21.1': + resolution: {integrity: sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' - get-east-asian-width@1.5.0: - resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} - engines: {node: '>=18'} + '@walletconnect/time@1.0.2': + resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + '@walletconnect/types@2.21.0': + resolution: {integrity: sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + '@walletconnect/types@2.21.1': + resolution: {integrity: sha512-UeefNadqP6IyfwWC1Yi7ux+ljbP2R66PLfDrDm8izmvlPmYlqRerJWJvYO4t0Vvr9wrG4Ko7E0c4M7FaPKT/sQ==} - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + '@walletconnect/universal-provider@2.21.0': + resolution: {integrity: sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + '@walletconnect/universal-provider@2.21.1': + resolution: {integrity: sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + '@walletconnect/utils@2.21.0': + resolution: {integrity: sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==} - git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. - hasBin: true + '@walletconnect/utils@2.21.1': + resolution: {integrity: sha512-VPZvTcrNQCkbGOjFRbC24mm/pzbRMUq2DSQoiHlhh0X1U7ZhuIrzVtAoKsrzu6rqjz0EEtGxCr3K1TGRqDG4NA==} - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + '@walletconnect/window-getters@1.0.1': + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + '@walletconnect/window-metadata@1.0.1': + resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - globals@17.4.0: - resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} - engines: {node: '>=18'} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - human-id@4.1.3: - resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} - hasBin: true + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} - engines: {node: '>=0.10.0'} + '@x402/core@2.5.0': + resolution: {integrity: sha512-nUr8HW8WhkU1DvrpUfsRvALy5NF8UWKoFezZOtX61mohxp2lWZpJ2GnvscxDM8nmBAbtIollmksd5z5pj8InXw==} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + '@x402/evm@2.5.0': + resolution: {integrity: sha512-MBSTQZwLobMVcmYO7itOMJRkxfHstsDyr7F94o9Rk/Oinz0kjvCe4DFgZmFXyz3nQUgQFmDVgTK5KIzfYR5uIA==} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + '@x402/extensions@2.5.0': + resolution: {integrity: sha512-e7IQShbGUM/XQmzI8DQh2tX/k2XDUGI9DNF+ij2NHUyPEqAt5/mJCwOlaxS/60FWFdfFRfWjTsqaoS7Z8WLi+A==} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} + '@x402/fetch@2.5.0': + resolution: {integrity: sha512-D2jH3bn0nf8w9Jg3Vxo+6reE6Z9GickzkSIw+udITJFvsrGOpfjZvhcTeflLcthCODk4Nuu9Oe8x7Q3NLUdaRQ==} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - ink-spinner@5.0.0: - resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} - engines: {node: '>=14.16'} + abitype@1.0.6: + resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} peerDependencies: - ink: '>=4.0.0' - react: '>=18.0.0' + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true - ink@5.2.1: - resolution: {integrity: sha512-BqcUyWrG9zq5HIwW6JcfFHsIYebJkWWb4fczNah1goUO0vv5vneIlfwuS85twyJ5hYR/y18FlAYUxrO9ChIWVg==} - engines: {node: '>=18'} + abitype@1.0.8: + resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} peerDependencies: - '@types/react': '>=18.0.0' - react: '>=18.0.0' - react-devtools-core: ^4.19.1 + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 peerDependenciesMeta: - '@types/react': + typescript: optional: true - react-devtools-core: + zod: optional: true - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + abitype@1.2.3: + resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} hasBin: true - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true + aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} - is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 - is-in-ci@1.0.0: - resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} - engines: {node: '>=18'} - hasBin: true + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} + engines: {node: '>=18'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - is-wsl@3.1.1: - resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} - engines: {node: '>=16'} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} - isows@1.0.7: - resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} - peerDependencies: - ws: '*' + apg-js@4.4.0: + resolution: {integrity: sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==} - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} - hasBin: true + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - js-base64@3.7.8: - resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true + async-mutex@0.2.6: + resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + auto-bind@5.0.1: + resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + axios-retry@4.5.0: + resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==} + peerDependencies: + axios: 0.x || 1.x - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + axios@1.13.6: + resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + axios@1.16.0: + resolution: {integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + axios@1.18.0: + resolution: {integrity: sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + base-x@3.0.11: + resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + base-x@5.0.1: + resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==} - lint-staged@16.3.2: - resolution: {integrity: sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==} - engines: {node: '>=20.17'} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} hasBin: true - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} + bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - loader-runner@4.3.2: - resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + big.js@6.2.2: + resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + bn.js@4.12.3: + resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} - lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + bn.js@5.2.3: + resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} - lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} - lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} - lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} + browser-or-node@3.0.0: + resolution: {integrity: sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} + bs58@6.0.0: + resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} - memfs@3.4.3: - resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} - engines: {node: '>= 4.0.0'} + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + bufferutil@4.1.0: + resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} + engines: {node: '>=6.14.2'} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + caniuse-lite@1.0.30001775: + resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==} - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} - engines: {node: 18 || 20 || >=22} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - minimist@1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - natural-orderby@5.0.0: - resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + cli-truncate@5.2.0: + resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} + engines: {node: '>=20'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} - open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} - engines: {node: '>=18'} + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - ox@0.12.4: - resolution: {integrity: sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} - ox@0.14.29: - resolution: {integrity: sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true + comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + comment-parser@1.4.5: + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + engines: {node: '>= 12.0.0'} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} + concurrently@9.2.1: + resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} + engines: {node: '>=18'} + hasBin: true - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + conventional-changelog-angular@8.2.0: + resolution: {integrity: sha512-4YB1zEXqB17oBI8yRsAs1T+ZhbdsOgJqkl6Trz+GXt/eKf1e4jnA0oW+sOd9BEENzEViuNW0DNoFFjSf3CeC5Q==} + engines: {node: '>=18'} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + conventional-changelog-conventionalcommits@9.2.0: + resolution: {integrity: sha512-fCf+ODjseueTV09wVBoC0HXLi3OyuBJ+HfE3L63Khxqnr99f9nUcnQh3a15lCWHlGLihyZShW/mVVkBagr9JvQ==} + engines: {node: '>=18'} - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + conventional-commits-parser@6.3.0: + resolution: {integrity: sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg==} + engines: {node: '>=18'} + hasBin: true - patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + cookie-es@1.2.3: + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + cosmiconfig-typescript-loader@6.2.0: + resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} + engines: {node: '>=v18'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=9' + typescript: '>=5' - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + cross-fetch@4.1.0: + resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} + css-loader@5.2.7: + resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} + engines: {node: '>= 10.13.0'} peerDependencies: - postcss: ^8.1.0 + webpack: ^4.27.0 || ^5.0.0 - postcss-selector-parser@7.1.4: - resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} + hasBin: true - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} - engines: {node: '>=14'} - hasBin: true + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} - pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} - react-reconciler@0.29.2: - resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.3.1 + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} - react-refresh@0.9.0: - resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} - engines: {node: '>=0.10.0'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - remotion@4.0.290: - resolution: {integrity: sha512-htwe74xP6et06V+xjCGH8hID0f3DEdSUKEu6oCUYYZUcE1gytEwhvubQyMGXH54uPfztV+jRZnWZnSSpXKxYBg==} + derive-valtio@0.1.0: + resolution: {integrity: sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + valtio: '*' - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} - run-applescript@7.1.0: - resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} - engines: {node: '>=18'} + dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + eciesjs@0.4.18: + resolution: {integrity: sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + electron-to-chromium@1.5.302: + resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} - schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} - engines: {node: '>= 10.13.0'} - - scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - - semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} - engines: {node: '>=10'} - hasBin: true + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} - engines: {node: '>= 0.4'} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + engine.io-client@6.6.6: + resolution: {integrity: sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + enhanced-resolve@5.20.0: + resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} + engines: {node: '>=10.13.0'} - siwe@2.3.2: - resolution: {integrity: sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==} - peerDependencies: - ethers: ^5.6.8 || ^6.0.8 + enhanced-resolve@5.21.6: + resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} + engines: {node: '>=10.13.0'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} - slice-ansi@7.1.2: - resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} - slice-ansi@8.0.0: - resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} - engines: {node: '>=20'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - source-map@0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - deprecated: The work that was done in this beta branch won't be included in future versions + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} + es-toolkit@1.33.0: + resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} + hasBin: true - string-width@8.2.0: - resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} - engines: {node: '>=20'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.2.0: - resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} - engines: {node: '>=12'} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} + engines: {node: '>=18'} + hasBin: true - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - style-loader@4.0.0: - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.27.0 - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} - engines: {node: '>=6'} - - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' - terser-webpack-plugin@5.6.1: - resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} - engines: {node: '>= 10.13.0'} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: - '@minify-html/node': '*' - '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' - esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' - uglify-js: '*' - webpack: ^5.1.0 + unrs-resolver: ^1.0.0 peerDependenciesMeta: - '@minify-html/node': - optional: true - '@swc/core': - optional: true - '@swc/css': - optional: true - '@swc/html': - optional: true - clean-css: - optional: true - cssnano: - optional: true - csso: - optional: true - esbuild: + unrs-resolver: optional: true - html-minifier-terser: + + eslint-import-resolver-typescript@4.4.4: + resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} + engines: {node: ^16.17.0 || >=18.6.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: optional: true - lightningcss: + eslint-plugin-import-x: optional: true - postcss: + + eslint-plugin-import-x@4.16.2: + resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/utils': ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + eslint-import-resolver-node: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': optional: true - uglify-js: + eslint-import-resolver-node: optional: true - terser@5.46.1: - resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} - engines: {node: '>=10'} - hasBin: true - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + eslint-plugin-perfectionist@5.6.0: + resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} + engines: {node: ^20.0.0 || >=22.0.0} + peerDependencies: + eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} - engines: {node: '>=18'} + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + eslint@10.0.3: + resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true - - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} - engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.8.4' - - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} - engines: {node: '>=18.0.0'} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + eth-block-tracker@7.1.0: + resolution: {integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==} + engines: {node: '>=14.0.0'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + eth-json-rpc-filters@6.0.1: + resolution: {integrity: sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==} + engines: {node: '>=14.0.0'} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} + eth-query@2.1.2: + resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + eth-rpc-errors@4.0.3: + resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + + ethers@5.8.0: + resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} + + ethers@6.16.0: + resolution: {integrity: sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==} + engines: {node: '>=14.0.0'} + + eventemitter2@6.4.9: + resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + extension-port-stream@3.0.0: + resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} + engines: {node: '>=12.0.0'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} - utf-8-validate@6.0.6: - resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} - engines: {node: '>=6.14.2'} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} - valid-url@1.0.9: - resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - viem@2.46.3: - resolution: {integrity: sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - viem@2.53.1: - resolution: {integrity: sha512-FhfJ/SW73CVosiyVLmIMVgKDRKYV1AGCLzZoHYvmNayyVff63Qi1ocPCk59LqC/cNw244RbBJjHnmxqXkE7NpA==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} - watchpack@2.5.2: - resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} - engines: {node: '>=10.13.0'} + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} - webpack-sources@3.5.0: - resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} - engines: {node: '>=10.13.0'} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - webpack@5.96.1: - resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} - engines: {node: '>=10.13.0'} - hasBin: true + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: - webpack-cli: '*' + picomatch: ^3 || ^4 peerDependenciesMeta: - webpack-cli: + picomatch: optional: true - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} - widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} engines: {node: '>=0.10.0'} - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + flatted@3.3.4: + resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} - engines: {node: '>=10.0.0'} + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + debug: '*' peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: + debug: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + engines: {node: '>=4.0'} peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + debug: '*' peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: + debug: optional: true - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + framer-motion@12.42.2: + resolution: {integrity: sha512-5XY9luDiu0oHfHBjpDthFMh0ES+122w6p/papSJBweMkO8Sn+PW2QaEgRblQBpWFnuvZS5qvarpt/hO2pjGmnw==} peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: + '@emotion/is-prop-valid': optional: true - - ws@8.20.0: - resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: + react: optional: true - utf-8-validate: + react-dom: optional: true - ws@8.20.1: - resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} - wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-monkey@1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + fuse.js@7.4.2: + resolution: {integrity: sha512-LVbzjD4WA6UP5B1UnP8wuaXJiLnqMdM/E4fiJXTJ5haJ5b/MBNsK29h2fm6swEoQaVQjvYFWKLE2RanyZIoRVQ==} + engines: {node: '>=10'} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.5.0: + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globals@17.4.0: + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - yoga-layout@3.2.1: - resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} - zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + h3@1.15.11: + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} -snapshots: + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - '@0xsequence/abi@2.3.41': {} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} - '@0xsequence/core@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.41 - '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} - '@0xsequence/indexer@2.3.41': {} + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - '@0xsequence/network@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/indexer': 2.3.41 - '@0xsequence/relayer': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - '@0xsequence/relayer@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - '@0xsequence/abi': 2.3.41 - '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - '@0xsequence/typescript-sdk@0.1.0-alpha.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod + hono@4.12.27: + resolution: {integrity: sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q==} + engines: {node: '>=16.9.0'} - '@0xsequence/utils@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': - dependencies: - ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - js-base64: 3.7.8 + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} - '@0xtrails/api@0.10.4': {} + human-id@4.1.3: + resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} + hasBin: true - '@adraffy/ens-normalize@1.10.1': {} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - '@adraffy/ens-normalize@1.11.1': {} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - '@alcalzone/ansi-tokenize@0.1.3': - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} - '@babel/helper-string-parser@7.27.1': {} + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 - '@babel/helper-validator-identifier@7.28.5': {} + idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} - '@babel/parser@7.24.1': - dependencies: - '@babel/types': 7.29.0 + idb-keyval@6.2.6: + resolution: {integrity: sha512-FY64UEhw+5liMzMQ1R9Mw6AF0+wyBrg1CIA1z4CjI/EvT5ty/SvQcWZgd8s9sgaNhX10Y8UzScTh89tEAls5nA==} - '@babel/runtime@7.29.2': {} + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - '@changesets/apply-release-plan@7.1.1': - dependencies: - '@changesets/config': 3.1.4 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.7.4 + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} - '@changesets/assemble-release-plan@6.0.10': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.7.4 + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} - '@changesets/cli@2.31.0(@types/node@22.19.13)': + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ink-spinner@5.0.0: + resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} + engines: {node: '>=14.16'} + peerDependencies: + ink: '>=4.0.0' + react: '>=18.0.0' + + ink@5.2.1: + resolution: {integrity: sha512-BqcUyWrG9zq5HIwW6JcfFHsIYebJkWWb4fczNah1goUO0vv5vneIlfwuS85twyJ5hYR/y18FlAYUxrO9ChIWVg==} + engines: {node: '>=18'} + peerDependencies: + '@types/react': '>=18.0.0' + react: '>=18.0.0' + react-devtools-core: ^4.19.1 + peerDependenciesMeta: + '@types/react': + optional: true + react-devtools-core: + optional: true + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-in-ci@1.0.0: + resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} + engines: {node: '>=18'} + hasBin: true + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + isows@1.0.6: + resolution: {integrity: sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==} + peerDependencies: + ws: '*' + + isows@1.0.7: + resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} + peerDependencies: + ws: '*' + + jayson@4.3.0: + resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==} + engines: {node: '>=8'} + hasBin: true + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + jose@6.2.3: + resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-canonicalize@1.2.0: + resolution: {integrity: sha512-TTdjBvqrqJKSADlEsY5rWbx8/1tOrVlTR/aSLU8N2VSInCTffP0p+byYB8Es+OmL4ZOeEftjUdvV+eJeSzJC/Q==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-rpc-engine@6.1.0: + resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} + engines: {node: '>=10.0.0'} + + json-rpc-random-id@1.0.1: + resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} + + keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@16.3.2: + resolution: {integrity: sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==} + engines: {node: '>=20.17'} + hasBin: true + + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} + engines: {node: '>=20.0.0'} + + lit-element@4.2.2: + resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} + + lit-html@3.3.3: + resolution: {integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==} + + lit@3.3.0: + resolution: {integrity: sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==} + + loader-runner@4.3.2: + resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@11.5.1: + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lucide-react@0.563.0: + resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide-react@0.564.0: + resolution: {integrity: sha512-JJ8GVTQqFwuliifD48U6+h7DXEHdkhJ/E87kksGByII3qHxtPciVb8T8woQONHBQgHVOl7rSMrrip3SeVNy7Fg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + + memfs@3.4.3: + resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} + engines: {node: '>= 4.0.0'} + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + + minimist@1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mipd@0.0.7: + resolution: {integrity: sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + motion-dom@12.42.2: + resolution: {integrity: sha512-5gIMWLp/PycBtJRJWRgjxke5n8dlvkSn2DrYW+tr3XcqAZY1xZh6BJyooJXCM8wdfM7wfMjkBJNLge1CKPUIRA==} + + motion-utils@12.39.0: + resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==} + + motion@12.34.0: + resolution: {integrity: sha512-01Sfa/zgsD/di8zA/uFW5Eb7/SPXoGyUfy+uMRMW5Spa8j0z/UbfQewAYvPMYFCXRlyD6e5aLHh76TxeeJD+RA==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + obj-multiplex@1.0.0: + resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + openapi-fetch@0.13.8: + resolution: {integrity: sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==} + + openapi-typescript-helpers@0.0.15: + resolution: {integrity: sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + ox@0.12.4: + resolution: {integrity: sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + ox@0.13.1: + resolution: {integrity: sha512-S6XU/Chz7HSSlAp7KYZigW8iwSyfS9M+GKTbyDQuZDsqC8S8GUFB2bLBLLB2SfHw8eE2MfymQazVXoLNljLycg==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + ox@0.14.29: + resolution: {integrity: sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + ox@0.6.7: + resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + ox@0.6.9: + resolution: {integrity: sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + ox@0.9.17: + resolution: {integrity: sha512-rKAnhzhRU3Xh3hiko+i1ZxywZ55eWQzeS/Q4HRKLx2PqfHOolisZHErSsJVipGlmQKHW5qwOED/GighEw9dbLg==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + patch-console@2.0.0: + resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + + pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + + pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + + pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + hasBin: true + + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + + pony-cause@2.1.11: + resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==} + engines: {node: '>=12.0.0'} + + porto@0.2.35: + resolution: {integrity: sha512-gu9FfjjvvYBgQXUHWTp6n3wkTxVtEcqFotM7i3GEZeoQbvLGbssAicCz6hFZ8+xggrJWwi/RLmbwNra50SMmUQ==} + hasBin: true + peerDependencies: + '@tanstack/react-query': '>=5.59.0' + '@wagmi/core': '>=2.16.3' + expo-auth-session: '>=7.0.8' + expo-crypto: '>=15.0.7' + expo-web-browser: '>=15.0.8' + react: '>=18' + react-native: '>=0.81.4' + typescript: '>=5.4.0' + viem: '>=2.37.0' + wagmi: '>=2.0.0' + peerDependenciesMeta: + '@tanstack/react-query': + optional: true + expo-auth-session: + optional: true + expo-crypto: + optional: true + expo-web-browser: + optional: true + react: + optional: true + react-native: + optional: true + typescript: + optional: true + wagmi: + optional: true + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-selector-parser@7.1.4: + resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + preact@10.24.2: + resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} + + preact@10.29.4: + resolution: {integrity: sha512-GMpwh9+NJ8tSmqwIaVyFRQkiKfBEzQ+k7r7tle4W+kaJ+7wJiB9hFz9BixAomMtenPPSBfM4bZhXozGxhf0uFQ==} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proxy-compare@2.6.0: + resolution: {integrity: sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + react-apple-signin-auth@1.2.1: + resolution: {integrity: sha512-xRX7F28H4y8SyBL0vRP3kXh/aifU0K2lomarWxW/Twxfbhp6Vd56I+cZmmAsEa2AI1CyML84xvedriARju1a/w==} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-hook-form@7.81.0: + resolution: {integrity: sha512-ocbmr2p5KBMoAfj4WCUvped33lVi1Kd5DuDUvQDnB6VEAacOjPI/jMbtDdbhco4y9ct4xUuCmMY0b/C9L0QHjw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-reconciler@0.29.2: + resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.3.1 + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + + react-refresh@0.9.0: + resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + engines: {node: '>= 4'} + + remotion@4.0.290: + resolution: {integrity: sha512-htwe74xP6et06V+xjCGH8hID0f3DEdSUKEu6oCUYYZUcE1gytEwhvubQyMGXH54uPfztV+jRZnWZnSSpXKxYBg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rpc-websockets@9.3.9: + resolution: {integrity: sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA==} + + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + + scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + sha.js@2.4.12: + resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} + engines: {node: '>= 0.10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + siwe@2.3.2: + resolution: {integrity: sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==} + peerDependencies: + ethers: ^5.6.8 || ^6.0.8 + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} + + slice-ansi@8.0.0: + resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} + engines: {node: '>=20'} + + socket.io-client@4.8.3: + resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.6: + resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==} + engines: {node: '>=10.0.0'} + + sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions + + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} + engines: {node: '>=12.0.0'} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stream-chain@2.2.5: + resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} + + stream-json@1.9.1: + resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string-width@8.2.0: + resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} + engines: {node: '>=20'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + style-loader@4.0.0: + resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.27.0 + + superstruct@1.0.4: + resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} + engines: {node: '>=14.0.0'} + + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + tailwind-merge@3.6.0: + resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} + + tailwindcss@4.3.2: + resolution: {integrity: sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + terser-webpack-plugin@5.6.1: + resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@minify-html/node': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true + uglify-js: + optional: true + + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} + engines: {node: '>=10'} + hasBin: true + + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typescript-eslint@8.56.1: + resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + uint8arrays@3.1.0: + resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici-types@7.28.0: + resolution: {integrity: sha512-LJAfY+2w6HGeT8d8J1wNQsUGUEGio6NWWpwdwurQe4f6oojzCFuGLizl1KSve4irsTxyLly1QhEeE6iapdaIvQ==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6 || ^7 || ^8 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1 || ^2 || ^3 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + utf-8-validate@6.0.6: + resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} + engines: {node: '>=6.14.2'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + uuid@14.0.1: + resolution: {integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==} + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + valid-url@1.0.9: + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} + + valtio@1.13.2: + resolution: {integrity: sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + + viem@2.23.2: + resolution: {integrity: sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + viem@2.46.3: + resolution: {integrity: sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + viem@2.53.1: + resolution: {integrity: sha512-FhfJ/SW73CVosiyVLmIMVgKDRKYV1AGCLzZoHYvmNayyVff63Qi1ocPCk59LqC/cNw244RbBJjHnmxqXkE7NpA==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + wagmi@2.19.5: + resolution: {integrity: sha512-RQUfKMv6U+EcSNNGiPbdkDtJwtuFxZWLmvDiQmjjBgkuPulUwDJsKhi7gjynzJdsx2yDqhHCXkKsbbfbIsHfcQ==} + peerDependencies: + '@tanstack/react-query': '>=5.0.0' + react: '>=18' + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true + + watchpack@2.5.2: + resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} + engines: {node: '>=10.13.0'} + + webextension-polyfill@0.10.0: + resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-sources@3.5.0: + resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} + engines: {node: '>=10.13.0'} + + webpack@5.96.1: + resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.11: + resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.20.1: + resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoga-layout@3.2.1: + resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} + + zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + + zustand@5.0.0: + resolution: {integrity: sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + + zustand@5.0.14: + resolution: {integrity: sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + + zustand@5.0.3: + resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + +snapshots: + + 0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)): + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/account': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/api': 2.3.44 + '@0xsequence/auth': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/guard': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/indexer': 2.3.44 + '@0xsequence/metadata': 2.3.44 + '@0xsequence/migration': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/provider': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/relayer': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/sessions': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/signhub': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/wallet': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + 0xtrails@0.14.0(0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@0xsequence/api@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(bs58@4.0.1)(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76): + dependencies: + '@0xsequence/connect': 5.4.8(9524d20f2d229702e245bfce2f88d319) + '@0xsequence/hooks': 5.4.11(@0xsequence/api@3.0.12)(@0xsequence/indexer@3.0.12)(@0xsequence/metadata@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.101.2(react@18.3.1))(react@18.3.1)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@0xsequence/indexer': 3.0.12 + '@0xsequence/metadata': 3.0.12 + '@0xsequence/wallet-primitives': 3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76) + '@0xtrails/api': 0.14.0 + '@0xtrails/wallet-registry': 0.2.0 + '@databeat/tracker': 0.9.3 + '@emotion/is-prop-valid': 1.4.0 + '@meshconnect/web-link-sdk': 3.7.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/query-persist-client-core': 5.101.2 + '@tanstack/react-query': 5.101.2(react@18.3.1) + '@tanstack/react-virtual': 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + lucide-react: 0.563.0(react@18.3.1) + motion: 12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ox: 0.13.1(typescript@5.9.3)(zod@3.25.76) + qrcode: 1.5.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) + transitivePeerDependencies: + - 0xsequence + - '@0xsequence/api' + - '@0xsequence/network' + - '@react-oauth/google' + - '@types/react' + - '@types/react-dom' + - bs58 + - bufferutil + - debug + - encoding + - ethers + - react-apple-signin-auth + - supports-color + - typescript + - utf-8-validate + - zod + + '@0xsequence/abi@2.3.41': {} + + '@0xsequence/abi@2.3.44': {} + + '@0xsequence/account@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/migration': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/relayer': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/sessions': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/wallet': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/api@2.3.44': {} + + '@0xsequence/api@3.0.12': {} + + '@0xsequence/auth@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/account': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/api': 2.3.44 + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/ethauth': 1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/indexer': 2.3.44 + '@0xsequence/metadata': 2.3.44 + '@0xsequence/migration': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/sessions': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/signhub': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/wallet': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/connect@5.4.8(9524d20f2d229702e245bfce2f88d319)': + dependencies: + 0xsequence: 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/api': 3.0.12 + '@0xsequence/auth': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/design-system': 2.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@0xsequence/ethauth': 1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/hooks': 5.4.11(@0xsequence/api@3.0.12)(@0xsequence/indexer@3.0.12)(@0xsequence/metadata@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.101.2(react@18.3.1))(react@18.3.1)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@0xsequence/indexer': 2.3.41 + '@0xsequence/metadata': 2.3.44 + '@0xsequence/network': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/provider': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/waas': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@databeat/tracker': 0.9.3 + '@react-oauth/google': 0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tailwindcss/cli': 4.3.2 + '@tanstack/react-query': 5.101.2(react@18.3.1) + clsx: 2.1.1 + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + fuse.js: 7.4.2 + motion: 12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-apple-signin-auth: 1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + tailwindcss: 4.3.2 + uuid: 10.0.0 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) + transitivePeerDependencies: + - '@emotion/is-prop-valid' + - '@types/react' + - '@types/react-dom' + + '@0xsequence/core@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.41 + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/core@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/design-system@2.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-aspect-ratio': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-checkbox': 1.3.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collapsible': 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.18(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.1.19(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-progress': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-radio-group': 1.4.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 2.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-switch': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': 1.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toast': 1.2.18(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + class-variance-authority: 0.7.1 + clsx: 2.1.1 + motion: 12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-hook-form: 7.81.0(react@18.3.1) + tailwind-merge: 3.6.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + '@0xsequence/ethauth@1.0.0(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + js-base64: 3.7.8 + + '@0xsequence/guard@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/account': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/signhub': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/hooks@5.4.11(@0xsequence/api@3.0.12)(@0xsequence/indexer@3.0.12)(@0xsequence/metadata@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.101.2(react@18.3.1))(react@18.3.1)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': + dependencies: + '@0xsequence/api': 3.0.12 + '@0xsequence/indexer': 3.0.12 + '@0xsequence/metadata': 3.0.12 + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@tanstack/react-query': 5.101.2(react@18.3.1) + react: 18.3.1 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + + '@0xsequence/indexer@2.3.41': {} + + '@0xsequence/indexer@2.3.44': {} + + '@0xsequence/indexer@3.0.12': {} + + '@0xsequence/metadata@2.3.44': {} + + '@0xsequence/metadata@3.0.12': {} + + '@0xsequence/migration@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/wallet': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/network@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/indexer': 2.3.41 + '@0xsequence/relayer': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/indexer': 2.3.44 + '@0xsequence/relayer': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/provider@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/account': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/auth': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/migration': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/relayer': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/wallet': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@databeat/tracker': 0.9.3 + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + eventemitter2: 6.4.9 + webextension-polyfill: 0.10.0 + + '@0xsequence/relayer@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.41 + '@0xsequence/core': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/relayer@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/replacer@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/sessions@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/migration': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/replacer': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + idb: 7.1.1 + + '@0xsequence/signhub@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xsequence/typescript-sdk@0.1.0-alpha.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + dependencies: + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + + '@0xsequence/utils@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + js-base64: 3.7.8 + + '@0xsequence/utils@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + js-base64: 3.7.8 + + '@0xsequence/waas@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + idb: 7.1.1 + json-canonicalize: 1.2.0 + jwt-decode: 4.0.0 + + '@0xsequence/wallet-primitives@3.0.0-beta.16(typescript@5.9.3)(zod@3.25.76)': + dependencies: + ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) + transitivePeerDependencies: + - typescript + - zod + + '@0xsequence/wallet-primitives@3.0.0-beta.19(typescript@5.9.3)(zod@3.25.76)': + dependencies: + ox: 0.9.17(typescript@5.9.3)(zod@3.25.76) + transitivePeerDependencies: + - typescript + - zod + + '@0xsequence/wallet@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@0xsequence/abi': 2.3.44 + '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/network': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/relayer': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/signhub': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@0xsequence/utils': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + '@0xtrails/api@0.10.4': {} + + '@0xtrails/api@0.14.0': {} + + '@0xtrails/wallet-registry@0.2.0': {} + + '@adraffy/ens-normalize@1.10.1': {} + + '@adraffy/ens-normalize@1.11.1': {} + + '@alcalzone/ansi-tokenize@0.1.3': + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 4.0.0 + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.7': {} + + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.7': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/parser@7.24.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/runtime@7.29.2': {} + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/traverse@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@base-org/account@2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@coinbase/cdp-sdk': 1.51.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@noble/hashes': 1.8.0 + clsx: 1.2.1 + eventemitter3: 5.0.1 + idb-keyval: 6.2.1 + ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) + preact: 10.24.2 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - fastestsmallesttextencoderdecoder + - immer + - react + - typescript + - use-sync-external-store + - utf-8-validate + - zod + + '@changesets/apply-release-plan@7.1.1': + dependencies: + '@changesets/config': 3.1.4 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.4 + + '@changesets/assemble-release-plan@6.0.10': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.4 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.31.0(@types/node@22.19.13)': + dependencies: + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.4 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@inquirer/external-editor': 1.0.3(@types/node@22.19.13) + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + enquirer: 2.4.1 + fs-extra: 7.0.1 + mri: 1.2.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.4 + spawndamnit: 3.0.1 + term-size: 2.2.1 + transitivePeerDependencies: + - '@types/node' + + '@changesets/config@3.1.4': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.4': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.4 + + '@changesets/get-release-plan@4.0.16': + dependencies: + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.3': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 4.1.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.7': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.3 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.3 + prettier: 2.8.8 + + '@cloudflare/workers-types@4.20260317.1': {} + + '@coinbase/cdp-sdk@1.51.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana-program/system': 0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana-program/token': 0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + abitype: 1.0.6(typescript@5.9.3)(zod@3.25.76) + axios: 1.16.0 + axios-retry: 4.5.0(axios@1.16.0) + bs58: 6.0.0 + jose: 6.2.3 + md5: 2.3.0 + uncrypto: 0.1.3 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - debug + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@coinbase/wallet-sdk@3.9.3': + dependencies: + bn.js: 5.2.3 + buffer: 6.0.3 + clsx: 1.2.1 + eth-block-tracker: 7.1.0 + eth-json-rpc-filters: 6.0.1 + eventemitter3: 5.0.1 + keccak: 3.0.4 + preact: 10.29.4 + sha.js: 2.4.12 + transitivePeerDependencies: + - supports-color + + '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@noble/hashes': 1.8.0 + clsx: 1.2.1 + eventemitter3: 5.0.1 + idb-keyval: 6.2.1 + ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) + preact: 10.24.2 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - immer + - react + - typescript + - use-sync-external-store + - utf-8-validate + - zod + + '@commitlint/cli@20.4.2(@types/node@22.19.13)(typescript@5.9.3)': + dependencies: + '@commitlint/format': 20.4.0 + '@commitlint/lint': 20.4.2 + '@commitlint/load': 20.4.0(@types/node@22.19.13)(typescript@5.9.3) + '@commitlint/read': 20.4.0 + '@commitlint/types': 20.4.0 + tinyexec: 1.0.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-conventional@20.4.2': + dependencies: + '@commitlint/types': 20.4.0 + conventional-changelog-conventionalcommits: 9.2.0 + + '@commitlint/config-validator@20.4.0': + dependencies: + '@commitlint/types': 20.4.0 + ajv: 8.18.0 + + '@commitlint/ensure@20.4.1': + dependencies: + '@commitlint/types': 20.4.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@20.0.0': {} + + '@commitlint/format@20.4.0': + dependencies: + '@commitlint/types': 20.4.0 + picocolors: 1.1.1 + + '@commitlint/is-ignored@20.4.1': + dependencies: + '@commitlint/types': 20.4.0 + semver: 7.7.4 + + '@commitlint/lint@20.4.2': + dependencies: + '@commitlint/is-ignored': 20.4.1 + '@commitlint/parse': 20.4.1 + '@commitlint/rules': 20.4.2 + '@commitlint/types': 20.4.0 + + '@commitlint/load@20.4.0(@types/node@22.19.13)(typescript@5.9.3)': + dependencies: + '@commitlint/config-validator': 20.4.0 + '@commitlint/execute-rule': 20.0.0 + '@commitlint/resolve-extends': 20.4.0 + '@commitlint/types': 20.4.0 + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@22.19.13)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) + is-plain-obj: 4.1.0 + lodash.mergewith: 4.6.2 + picocolors: 1.1.1 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@20.4.0': {} + + '@commitlint/parse@20.4.1': + dependencies: + '@commitlint/types': 20.4.0 + conventional-changelog-angular: 8.2.0 + conventional-commits-parser: 6.3.0 + + '@commitlint/read@20.4.0': + dependencies: + '@commitlint/top-level': 20.4.0 + '@commitlint/types': 20.4.0 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + tinyexec: 1.0.2 + + '@commitlint/resolve-extends@20.4.0': + dependencies: + '@commitlint/config-validator': 20.4.0 + '@commitlint/types': 20.4.0 + global-directory: 4.0.1 + import-meta-resolve: 4.2.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + + '@commitlint/rules@20.4.2': + dependencies: + '@commitlint/ensure': 20.4.1 + '@commitlint/message': 20.4.0 + '@commitlint/to-lines': 20.0.0 + '@commitlint/types': 20.4.0 + + '@commitlint/to-lines@20.0.0': {} + + '@commitlint/top-level@20.4.0': + dependencies: + escalade: 3.2.0 + + '@commitlint/types@19.8.1': + dependencies: + '@types/conventional-commits-parser': 5.0.2 + chalk: 5.6.2 + + '@commitlint/types@20.4.0': + dependencies: + conventional-commits-parser: 6.3.0 + picocolors: 1.1.1 + + '@databeat/tracker@0.9.3': + dependencies: + '@noble/hashes': 1.8.0 + + '@ecies/ciphers@0.2.6(@noble/ciphers@1.3.0)': + dependencies: + '@noble/ciphers': 1.3.0 + + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emotion/is-prop-valid@1.4.0': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.25.0': + optional: true + + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/aix-ppc64@0.28.0': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.25.0': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.28.0': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.25.0': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-arm@0.28.0': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.25.0': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/android-x64@0.28.0': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.25.0': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.28.0': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.25.0': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.28.0': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.25.0': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.28.0': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.25.0': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.28.0': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.25.0': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.28.0': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.25.0': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-arm@0.28.0': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.25.0': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.28.0': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.25.0': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.28.0': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.25.0': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.28.0': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.25.0': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.28.0': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.25.0': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.28.0': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.25.0': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.28.0': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.25.0': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/linux-x64@0.28.0': + optional: true + + '@esbuild/netbsd-arm64@0.25.0': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.28.0': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.25.0': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.28.0': + optional: true + + '@esbuild/openbsd-arm64@0.25.0': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.28.0': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.25.0': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.28.0': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.28.0': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.25.0': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.28.0': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.25.0': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.28.0': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.25.0': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.28.0': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.25.0': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + + '@esbuild/win32-x64@0.28.0': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.7.0))': + dependencies: + eslint: 10.0.3(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.23.3': + dependencies: + '@eslint/object-schema': 3.0.3 + debug: 4.4.3 + minimatch: 10.2.4 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.5.3': + dependencies: + '@eslint/core': 1.1.1 + + '@eslint/core@1.1.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/object-schema@3.0.3': {} + + '@eslint/plugin-kit@0.6.1': + dependencies: + '@eslint/core': 1.1.1 + levn: 0.4.1 + + '@ethereumjs/common@3.2.0': + dependencies: + '@ethereumjs/util': 8.1.0 + crc-32: 1.2.2 + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/tx@4.2.0': + dependencies: + '@ethereumjs/common': 3.2.0 + '@ethereumjs/rlp': 4.0.1 + '@ethereumjs/util': 8.1.0 + ethereum-cryptography: 2.2.1 + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.2.1 + micro-ftch: 0.3.1 + + '@ethersproject/abi@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/abstract-provider@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 + + '@ethersproject/abstract-signer@5.8.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + + '@ethersproject/address@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp': 5.8.0 + + '@ethersproject/base64@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + + '@ethersproject/basex@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/properties': 5.8.0 + + '@ethersproject/bignumber@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + bn.js: 5.2.3 + + '@ethersproject/bytes@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/constants@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + + '@ethersproject/contracts@5.8.0': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 + + '@ethersproject/hash@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/hdnode@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wordlists': 5.8.0 + + '@ethersproject/json-wallets@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + + '@ethersproject/keccak256@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.8.0': {} + + '@ethersproject/networks@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/pbkdf2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/sha2': 5.8.0 + + '@ethersproject/properties@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 + bech32: 1.1.4 + ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/random@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/rlp@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/sha2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + hash.js: 1.1.7 + + '@ethersproject/signing-key@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + bn.js: 5.2.3 + elliptic: 6.6.1 + hash.js: 1.1.7 + + '@ethersproject/solidity@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/strings@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/transactions@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + + '@ethersproject/units@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/wallet@5.8.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/json-wallets': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wordlists': 5.8.0 + + '@ethersproject/web@5.8.0': + dependencies: + '@ethersproject/base64': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/wordlists@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@floating-ui/core@1.7.5': dependencies: - '@changesets/apply-release-plan': 7.1.1 - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.4 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/get-release-plan': 4.0.16 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@22.19.13) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.7.4 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' + '@floating-ui/utils': 0.2.11 - '@changesets/config@3.1.4': + '@floating-ui/dom@1.7.6': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/logger': 0.1.1 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 - '@changesets/errors@0.2.0': + '@floating-ui/react-dom@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - extendable-error: 0.1.7 + '@floating-ui/dom': 1.7.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@changesets/get-dependents-graph@2.1.4': + '@floating-ui/utils@0.2.11': {} + + '@gemini-wallet/core@0.3.2(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.7.4 + '@metamask/rpc-errors': 7.0.2 + eventemitter3: 5.0.1 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - supports-color - '@changesets/get-release-plan@4.0.16': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': dependencies: - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/config': 3.1.4 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 - '@changesets/get-version-range-type@0.4.0': {} + '@humanwhocodes/module-importer@1.0.1': {} - '@changesets/git@3.0.4': + '@humanwhocodes/retry@0.4.3': {} + + '@inquirer/external-editor@1.0.3(@types/node@22.19.13)': dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 22.19.13 - '@changesets/logger@0.1.1': + '@jridgewell/gen-mapping@0.3.13': dependencies: - picocolors: 1.1.1 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@changesets/parse@0.4.3': + '@jridgewell/remapping@2.3.5': dependencies: - '@changesets/types': 6.1.0 - js-yaml: 4.1.1 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@changesets/pre@2.0.2': + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@changesets/read@0.6.7': + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.3 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@changesets/should-skip-package@0.1.2': + '@lit-labs/ssr-dom-shim@1.6.0': {} + + '@lit/reactive-element@2.1.2': dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 + '@lit-labs/ssr-dom-shim': 1.6.0 - '@changesets/types@4.1.0': {} + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.29.2 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 - '@changesets/types@6.1.0': {} + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.29.2 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 - '@changesets/write@0.4.0': + '@meshconnect/node-api@2.0.27': dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.1.3 - prettier: 2.8.8 + axios: 1.18.0 + transitivePeerDependencies: + - debug + - supports-color - '@cloudflare/workers-types@4.20260317.1': {} + '@meshconnect/uwc-bridge-parent@1.1.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana/wallet-standard-wallet-adapter-base': 1.1.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@4.0.1) + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@wallet-standard/app': 1.1.1 + '@wallet-standard/base': 1.1.1 + comlink: 4.4.2 + transitivePeerDependencies: + - bs58 + - bufferutil + - encoding + - typescript + - utf-8-validate - '@commitlint/cli@20.4.2(@types/node@22.19.13)(typescript@5.9.3)': + '@meshconnect/web-link-sdk@3.7.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: - '@commitlint/format': 20.4.0 - '@commitlint/lint': 20.4.2 - '@commitlint/load': 20.4.0(@types/node@22.19.13)(typescript@5.9.3) - '@commitlint/read': 20.4.0 - '@commitlint/types': 20.4.0 - tinyexec: 1.0.2 - yargs: 17.7.2 + '@meshconnect/node-api': 2.0.27 + '@meshconnect/uwc-bridge-parent': 1.1.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) transitivePeerDependencies: - - '@types/node' + - bs58 + - bufferutil + - debug + - encoding + - supports-color - typescript + - utf-8-validate - '@commitlint/config-conventional@19.8.1': + '@metamask/eth-json-rpc-provider@1.0.1': dependencies: - '@commitlint/types': 19.8.1 - conventional-changelog-conventionalcommits: 7.0.2 + '@metamask/json-rpc-engine': 7.3.3 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 5.0.2 + transitivePeerDependencies: + - supports-color - '@commitlint/config-conventional@20.4.2': + '@metamask/json-rpc-engine@7.3.3': dependencies: - '@commitlint/types': 20.4.0 - conventional-changelog-conventionalcommits: 9.2.0 + '@metamask/rpc-errors': 6.4.0 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 8.5.0 + transitivePeerDependencies: + - supports-color - '@commitlint/config-validator@20.4.0': + '@metamask/json-rpc-engine@8.0.2': dependencies: - '@commitlint/types': 20.4.0 - ajv: 8.18.0 + '@metamask/rpc-errors': 6.4.0 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 8.5.0 + transitivePeerDependencies: + - supports-color - '@commitlint/ensure@20.4.1': + '@metamask/json-rpc-middleware-stream@7.0.2': dependencies: - '@commitlint/types': 20.4.0 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 + '@metamask/json-rpc-engine': 8.0.2 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 8.5.0 + readable-stream: 3.6.2 + transitivePeerDependencies: + - supports-color - '@commitlint/execute-rule@20.0.0': {} + '@metamask/object-multiplex@2.1.0': + dependencies: + once: 1.4.0 + readable-stream: 3.6.2 - '@commitlint/format@20.4.0': + '@metamask/onboarding@1.0.1': dependencies: - '@commitlint/types': 20.4.0 - picocolors: 1.1.1 + bowser: 2.14.1 - '@commitlint/is-ignored@20.4.1': + '@metamask/providers@16.1.0': dependencies: - '@commitlint/types': 20.4.0 - semver: 7.7.4 + '@metamask/json-rpc-engine': 8.0.2 + '@metamask/json-rpc-middleware-stream': 7.0.2 + '@metamask/object-multiplex': 2.1.0 + '@metamask/rpc-errors': 6.4.0 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 8.5.0 + detect-browser: 5.3.0 + extension-port-stream: 3.0.0 + fast-deep-equal: 3.1.3 + is-stream: 2.0.1 + readable-stream: 3.6.2 + webextension-polyfill: 0.10.0 + transitivePeerDependencies: + - supports-color - '@commitlint/lint@20.4.2': + '@metamask/rpc-errors@6.4.0': dependencies: - '@commitlint/is-ignored': 20.4.1 - '@commitlint/parse': 20.4.1 - '@commitlint/rules': 20.4.2 - '@commitlint/types': 20.4.0 + '@metamask/utils': 9.3.0 + fast-safe-stringify: 2.1.1 + transitivePeerDependencies: + - supports-color - '@commitlint/load@20.4.0(@types/node@22.19.13)(typescript@5.9.3)': + '@metamask/rpc-errors@7.0.2': dependencies: - '@commitlint/config-validator': 20.4.0 - '@commitlint/execute-rule': 20.0.0 - '@commitlint/resolve-extends': 20.4.0 - '@commitlint/types': 20.4.0 - cosmiconfig: 9.0.0(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.2.0(@types/node@22.19.13)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) - is-plain-obj: 4.1.0 - lodash.mergewith: 4.6.2 - picocolors: 1.1.1 + '@metamask/utils': 11.11.0 + fast-safe-stringify: 2.1.1 transitivePeerDependencies: - - '@types/node' - - typescript + - supports-color - '@commitlint/message@20.4.0': {} + '@metamask/safe-event-emitter@2.0.0': {} - '@commitlint/parse@20.4.1': + '@metamask/safe-event-emitter@3.1.2': {} + + '@metamask/sdk-analytics@0.0.5': dependencies: - '@commitlint/types': 20.4.0 - conventional-changelog-angular: 8.2.0 - conventional-commits-parser: 6.3.0 + openapi-fetch: 0.13.8 + + '@metamask/sdk-communication-layer@0.33.1(cross-fetch@4.1.0)(eciesjs@0.4.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))': + dependencies: + '@metamask/sdk-analytics': 0.0.5 + bufferutil: 4.1.0 + cross-fetch: 4.1.0 + date-fns: 2.30.0 + debug: 4.3.4 + eciesjs: 0.4.18 + eventemitter2: 6.4.9 + readable-stream: 3.6.2 + socket.io-client: 4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + utf-8-validate: 5.0.10 + uuid: 8.3.2 + transitivePeerDependencies: + - supports-color + + '@metamask/sdk-install-modal-web@0.32.1': + dependencies: + '@paulmillr/qr': 0.2.1 + + '@metamask/sdk@0.33.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)': + dependencies: + '@babel/runtime': 7.29.2 + '@metamask/onboarding': 1.0.1 + '@metamask/providers': 16.1.0 + '@metamask/sdk-analytics': 0.0.5 + '@metamask/sdk-communication-layer': 0.33.1(cross-fetch@4.1.0)(eciesjs@0.4.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + '@metamask/sdk-install-modal-web': 0.32.1 + '@paulmillr/qr': 0.2.1 + bowser: 2.14.1 + cross-fetch: 4.1.0 + debug: 4.3.4 + eciesjs: 0.4.18 + eth-rpc-errors: 4.0.3 + eventemitter2: 6.4.9 + obj-multiplex: 1.0.0 + pump: 3.0.4 + readable-stream: 3.6.2 + socket.io-client: 4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + tslib: 2.8.1 + util: 0.12.5 + uuid: 8.3.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@metamask/superstruct@3.3.0': {} + + '@metamask/utils@11.11.0': + dependencies: + '@ethereumjs/tx': 4.2.0 + '@metamask/superstruct': 3.3.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@types/debug': 4.1.13 + '@types/lodash': 4.17.24 + debug: 4.4.3 + lodash: 4.18.1 + pony-cause: 2.1.11 + semver: 7.7.4 + uuid: 9.0.1 + transitivePeerDependencies: + - supports-color + + '@metamask/utils@5.0.2': + dependencies: + '@ethereumjs/tx': 4.2.0 + '@types/debug': 4.1.13 + debug: 4.4.3 + semver: 7.7.4 + superstruct: 1.0.4 + transitivePeerDependencies: + - supports-color - '@commitlint/read@20.4.0': + '@metamask/utils@8.5.0': dependencies: - '@commitlint/top-level': 20.4.0 - '@commitlint/types': 20.4.0 - git-raw-commits: 4.0.0 - minimist: 1.2.8 - tinyexec: 1.0.2 + '@ethereumjs/tx': 4.2.0 + '@metamask/superstruct': 3.3.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@types/debug': 4.1.13 + debug: 4.4.3 + pony-cause: 2.1.11 + semver: 7.7.4 + uuid: 9.0.1 + transitivePeerDependencies: + - supports-color - '@commitlint/resolve-extends@20.4.0': + '@metamask/utils@9.3.0': dependencies: - '@commitlint/config-validator': 20.4.0 - '@commitlint/types': 20.4.0 - global-directory: 4.0.1 - import-meta-resolve: 4.2.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 + '@ethereumjs/tx': 4.2.0 + '@metamask/superstruct': 3.3.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@types/debug': 4.1.13 + debug: 4.4.3 + pony-cause: 2.1.11 + semver: 7.7.4 + uuid: 9.0.1 + transitivePeerDependencies: + - supports-color - '@commitlint/rules@20.4.2': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@commitlint/ensure': 20.4.1 - '@commitlint/message': 20.4.0 - '@commitlint/to-lines': 20.0.0 - '@commitlint/types': 20.4.0 + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true - '@commitlint/to-lines@20.0.0': {} + '@noble/ciphers@1.2.1': {} - '@commitlint/top-level@20.4.0': - dependencies: - escalade: 3.2.0 + '@noble/ciphers@1.3.0': {} - '@commitlint/types@19.8.1': + '@noble/curves@1.9.7': dependencies: - '@types/conventional-commits-parser': 5.0.2 - chalk: 5.6.2 + '@noble/hashes': 1.8.0 - '@commitlint/types@20.4.0': - dependencies: - conventional-commits-parser: 6.3.0 - picocolors: 1.1.1 + '@noble/hashes@1.8.0': {} - '@emnapi/core@1.8.1': + '@nodelib/fs.scandir@2.1.5': dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - optional: true + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 - '@emnapi/runtime@1.8.1': - dependencies: - tslib: 2.8.1 - optional: true + '@nodelib/fs.stat@2.0.5': {} - '@emnapi/wasi-threads@1.1.0': + '@nodelib/fs.walk@1.2.8': dependencies: - tslib: 2.8.1 - optional: true + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 - '@esbuild/aix-ppc64@0.25.0': - optional: true + '@package-json/types@0.0.12': {} - '@esbuild/aix-ppc64@0.27.3': + '@parcel/watcher-android-arm64@2.5.1': optional: true - '@esbuild/aix-ppc64@0.28.0': + '@parcel/watcher-darwin-arm64@2.5.1': optional: true - '@esbuild/android-arm64@0.25.0': + '@parcel/watcher-darwin-x64@2.5.1': optional: true - '@esbuild/android-arm64@0.27.3': + '@parcel/watcher-freebsd-x64@2.5.1': optional: true - '@esbuild/android-arm64@0.28.0': + '@parcel/watcher-linux-arm-glibc@2.5.1': optional: true - '@esbuild/android-arm@0.25.0': + '@parcel/watcher-linux-arm-musl@2.5.1': optional: true - '@esbuild/android-arm@0.27.3': + '@parcel/watcher-linux-arm64-glibc@2.5.1': optional: true - '@esbuild/android-arm@0.28.0': + '@parcel/watcher-linux-arm64-musl@2.5.1': optional: true - '@esbuild/android-x64@0.25.0': + '@parcel/watcher-linux-x64-glibc@2.5.1': optional: true - '@esbuild/android-x64@0.27.3': + '@parcel/watcher-linux-x64-musl@2.5.1': optional: true - '@esbuild/android-x64@0.28.0': + '@parcel/watcher-win32-arm64@2.5.1': optional: true - '@esbuild/darwin-arm64@0.25.0': + '@parcel/watcher-win32-ia32@2.5.1': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@parcel/watcher-win32-x64@2.5.1': optional: true - '@esbuild/darwin-arm64@0.28.0': - optional: true + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + + '@paulmillr/qr@0.2.1': {} + + '@polygonlabs/apps-team-lint@2.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@commitlint/config-conventional': 19.8.1 + eslint: 10.0.3(jiti@2.7.0) + eslint-config-prettier: 10.1.8(eslint@10.0.3(jiti@2.7.0)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)))(eslint@10.0.3(jiti@2.7.0)) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)) + eslint-plugin-perfectionist: 5.6.0(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) + globals: 17.4.0 + typescript-eslint: 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@typescript-eslint/utils' + - eslint-import-resolver-node + - eslint-plugin-import + - supports-color - '@esbuild/darwin-x64@0.25.0': - optional: true + '@polymarket/clob-client-v2@1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + dependencies: + '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@ethersproject/wallet': 5.8.0 + axios: 1.13.6 + browser-or-node: 3.0.0 + tslib: 2.8.1 + viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - debug + - typescript + - utf-8-validate + - zod - '@esbuild/darwin-x64@0.27.3': - optional: true + '@polymarket/sdk@6.0.1(@ethersproject/abi@5.8.0)(@ethersproject/address@5.8.0)(@ethersproject/bignumber@5.8.0)(@ethersproject/constants@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/keccak256@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@ethersproject/solidity@5.8.0)': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/contracts': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@ethersproject/solidity': 5.8.0 - '@esbuild/darwin-x64@0.28.0': - optional: true + '@radix-ui/number@1.1.2': {} - '@esbuild/freebsd-arm64@0.25.0': - optional: true + '@radix-ui/primitive@1.1.3': {} - '@esbuild/freebsd-arm64@0.27.3': - optional: true + '@radix-ui/primitive@1.1.4': {} - '@esbuild/freebsd-arm64@0.28.0': - optional: true + '@radix-ui/react-arrow@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/freebsd-x64@0.25.0': - optional: true + '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/freebsd-x64@0.27.3': - optional: true + '@radix-ui/react-aspect-ratio@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-checkbox@1.3.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-collapsible@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/freebsd-x64@0.28.0': - optional: true + '@radix-ui/react-collection@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-arm64@0.25.0': - optional: true + '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-arm64@0.27.3': - optional: true + '@radix-ui/react-compose-refs@1.1.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-arm64@0.28.0': - optional: true + '@radix-ui/react-context@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-arm@0.25.0': - optional: true + '@radix-ui/react-context@1.1.4(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-arm@0.27.3': - optional: true + '@radix-ui/react-dialog@1.1.18(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-arm@0.28.0': - optional: true + '@radix-ui/react-direction@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-ia32@0.25.0': - optional: true + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-ia32@0.27.3': - optional: true + '@radix-ui/react-dismissable-layer@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-ia32@0.28.0': - optional: true + '@radix-ui/react-dropdown-menu@2.1.19(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-menu': 2.1.19(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-loong64@0.25.0': - optional: true + '@radix-ui/react-focus-guards@1.1.4(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-focus-scope@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-id@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-id@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-menu@2.1.19(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-popper': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-popper@1.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/rect': 1.1.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-loong64@0.27.3': - optional: true + '@radix-ui/react-portal@1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-loong64@0.28.0': - optional: true + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-mips64el@0.25.0': - optional: true + '@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-mips64el@0.27.3': - optional: true + '@radix-ui/react-presence@1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-mips64el@0.28.0': - optional: true + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-ppc64@0.25.0': - optional: true + '@radix-ui/react-primitive@2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-ppc64@0.27.3': - optional: true + '@radix-ui/react-progress@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-radio-group@1.4.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-roving-focus@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-select@2.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/number': 1.1.2 + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-popper': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-ppc64@0.28.0': - optional: true + '@radix-ui/react-slot@1.2.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-riscv64@0.25.0': - optional: true + '@radix-ui/react-slot@1.3.0(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-riscv64@0.27.3': - optional: true + '@radix-ui/react-switch@1.3.2(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-tabs@1.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-toast@1.2.18(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/linux-riscv64@0.28.0': - optional: true + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-s390x@0.25.0': - optional: true + '@radix-ui/react-use-callback-ref@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-s390x@0.27.3': - optional: true + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-s390x@0.28.0': - optional: true + '@radix-ui/react-use-controllable-state@1.2.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-x64@0.25.0': - optional: true + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-x64@0.27.3': - optional: true + '@radix-ui/react-use-effect-event@0.0.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/linux-x64@0.28.0': - optional: true + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/netbsd-arm64@0.25.0': - optional: true + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/netbsd-arm64@0.27.3': - optional: true + '@radix-ui/react-use-layout-effect@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/netbsd-arm64@0.28.0': - optional: true + '@radix-ui/react-use-previous@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/netbsd-x64@0.25.0': - optional: true + '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/netbsd-x64@0.27.3': - optional: true + '@radix-ui/react-use-rect@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/netbsd-x64@0.28.0': - optional: true + '@radix-ui/react-use-size@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/openbsd-arm64@0.25.0': - optional: true + '@radix-ui/react-use-size@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@esbuild/openbsd-arm64@0.27.3': - optional: true + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/openbsd-arm64@0.28.0': - optional: true + '@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@esbuild/openbsd-x64@0.25.0': - optional: true + '@radix-ui/rect@1.1.1': {} - '@esbuild/openbsd-x64@0.27.3': - optional: true + '@radix-ui/rect@1.1.2': {} - '@esbuild/openbsd-x64@0.28.0': - optional: true + '@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@esbuild/openharmony-arm64@0.27.3': - optional: true + '@remotion/bundler@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + css-loader: 5.2.7(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)) + esbuild: 0.25.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-refresh: 0.9.0 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + source-map: 0.7.3 + style-loader: 4.0.0(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)) + webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli - '@esbuild/openharmony-arm64@0.28.0': - optional: true + '@remotion/cli@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-server': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + dotenv: 9.0.2 + minimist: 1.2.6 + prompts: 2.4.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli - '@esbuild/sunos-x64@0.25.0': + '@remotion/compositor-darwin-arm64@4.0.290': optional: true - '@esbuild/sunos-x64@0.27.3': + '@remotion/compositor-darwin-x64@4.0.290': optional: true - '@esbuild/sunos-x64@0.28.0': + '@remotion/compositor-linux-arm64-gnu@4.0.290': optional: true - '@esbuild/win32-arm64@0.25.0': + '@remotion/compositor-linux-arm64-musl@4.0.290': optional: true - '@esbuild/win32-arm64@0.27.3': + '@remotion/compositor-linux-x64-gnu@4.0.290': optional: true - '@esbuild/win32-arm64@0.28.0': + '@remotion/compositor-linux-x64-musl@4.0.290': optional: true - '@esbuild/win32-ia32@0.25.0': + '@remotion/compositor-win32-x64-msvc@4.0.290': optional: true - '@esbuild/win32-ia32@0.27.3': - optional: true + '@remotion/media-parser@4.0.290': {} - '@esbuild/win32-ia32@0.28.0': - optional: true + '@remotion/media-utils@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@esbuild/win32-x64@0.25.0': - optional: true + '@remotion/player@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@esbuild/win32-x64@0.27.3': - optional: true + '@remotion/renderer@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + dependencies: + '@remotion/streaming': 4.0.290 + execa: 5.1.1 + extract-zip: 2.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + source-map: 0.8.0-beta.0 + ws: 8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + '@remotion/compositor-darwin-arm64': 4.0.290 + '@remotion/compositor-darwin-x64': 4.0.290 + '@remotion/compositor-linux-arm64-gnu': 4.0.290 + '@remotion/compositor-linux-arm64-musl': 4.0.290 + '@remotion/compositor-linux-x64-gnu': 4.0.290 + '@remotion/compositor-linux-x64-musl': 4.0.290 + '@remotion/compositor-win32-x64-msvc': 4.0.290 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - '@esbuild/win32-x64@0.28.0': - optional: true + '@remotion/streaming@4.0.290': {} - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.6.1))': + '@remotion/studio-server@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': dependencies: - eslint: 10.0.3(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 + '@babel/parser': 7.24.1 + '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + memfs: 3.4.3 + open: 8.4.2 + recast: 0.23.9 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + semver: 7.5.3 + source-map: 0.7.3 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - bufferutil + - clean-css + - cssnano + - csso + - html-minifier-terser + - lightningcss + - postcss + - react + - react-dom + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli - '@eslint-community/regexpp@4.12.2': {} + '@remotion/studio-shared@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom - '@eslint/config-array@0.23.3': + '@remotion/studio@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': dependencies: - '@eslint/object-schema': 3.0.3 - debug: 4.4.3 - minimatch: 10.2.4 + '@remotion/media-parser': 4.0.290 + '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) + '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@remotion/zod-types': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3) + memfs: 3.4.3 + open: 8.4.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + semver: 7.5.3 + source-map: 0.7.3 + zod: 3.22.3 transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate - '@eslint/config-helpers@0.5.3': + '@remotion/zod-types@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3)': dependencies: - '@eslint/core': 1.1.1 + remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + zod: 3.22.3 + transitivePeerDependencies: + - react + - react-dom - '@eslint/core@1.1.1': + '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4)': dependencies: - '@types/json-schema': 7.0.15 + big.js: 6.2.2 + dayjs: 1.11.13 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod - '@eslint/object-schema@3.0.3': {} + '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + big.js: 6.2.2 + dayjs: 1.11.13 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod - '@eslint/plugin-kit@0.6.1': + '@reown/appkit-controllers@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: - '@eslint/core': 1.1.1 - levn: 0.4.1 + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - zod - '@ethersproject/abi@5.8.0': + '@reown/appkit-pay@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + lit: 3.3.0 + valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - zod - '@ethersproject/abstract-provider@5.8.0': + '@reown/appkit-polyfills@1.7.8': dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/web': 5.8.0 + buffer: 6.0.3 - '@ethersproject/abstract-signer@5.8.0': + '@reown/appkit-scaffold-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + lit: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - valtio + - zod - '@ethersproject/address@5.8.0': + '@reown/appkit-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/rlp': 5.8.0 + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + lit: 3.3.0 + qrcode: 1.5.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - zod - '@ethersproject/base64@5.8.0': + '@reown/appkit-utils@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': dependencies: - '@ethersproject/bytes': 5.8.0 + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-polyfills': 1.7.8 + '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@walletconnect/logger': 2.1.2 + '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - zod - '@ethersproject/basex@5.8.0': + '@reown/appkit-wallet@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/properties': 5.8.0 + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4) + '@reown/appkit-polyfills': 1.7.8 + '@walletconnect/logger': 2.1.2 + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + + '@reown/appkit@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-pay': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-polyfills': 1.7.8 + '@reown/appkit-scaffold-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@walletconnect/types': 2.21.0 + '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + bs58: 6.0.0 + valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - zod + + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/rollup-android-arm-eabi@4.62.2': + optional: true + + '@rollup/rollup-android-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-x64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + optional: true - '@ethersproject/bignumber@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - bn.js: 5.2.3 + '@rollup/rollup-linux-ppc64-musl@4.62.2': + optional: true - '@ethersproject/bytes@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + optional: true - '@ethersproject/constants@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 + '@rollup/rollup-linux-riscv64-musl@4.62.2': + optional: true - '@ethersproject/contracts@5.8.0': - dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/transactions': 5.8.0 + '@rollup/rollup-linux-s390x-gnu@4.62.2': + optional: true - '@ethersproject/hash@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 + '@rollup/rollup-linux-x64-gnu@4.62.2': + optional: true - '@ethersproject/hdnode@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/wordlists': 5.8.0 + '@rollup/rollup-linux-x64-musl@4.62.2': + optional: true - '@ethersproject/json-wallets@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 + '@rollup/rollup-openbsd-x64@4.62.2': + optional: true - '@ethersproject/keccak256@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - js-sha3: 0.8.0 + '@rollup/rollup-openharmony-arm64@4.62.2': + optional: true - '@ethersproject/logger@5.8.0': {} + '@rollup/rollup-win32-arm64-msvc@4.62.2': + optional: true - '@ethersproject/networks@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 + '@rollup/rollup-win32-ia32-msvc@4.62.2': + optional: true - '@ethersproject/pbkdf2@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/sha2': 5.8.0 + '@rollup/rollup-win32-x64-gnu@4.62.2': + optional: true - '@ethersproject/properties@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 + '@rollup/rollup-win32-x64-msvc@4.62.2': + optional: true - '@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)': + '@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/web': 5.8.0 - bech32: 1.1.4 - ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + events: 3.3.0 transitivePeerDependencies: - bufferutil + - typescript - utf-8-validate + - zod - '@ethersproject/random@5.8.0': + '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 + '@safe-global/safe-gateway-typescript-sdk': 3.23.1 + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod - '@ethersproject/rlp@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 + '@safe-global/safe-gateway-typescript-sdk@3.23.1': {} - '@ethersproject/sha2@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - hash.js: 1.1.7 + '@scure/base@1.1.9': {} - '@ethersproject/signing-key@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - bn.js: 5.2.3 - elliptic: 6.6.1 - hash.js: 1.1.7 + '@scure/base@1.2.6': {} - '@ethersproject/solidity@5.8.0': + '@scure/bip32@1.4.0': dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/strings': 5.8.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.1.9 - '@ethersproject/strings@5.8.0': + '@scure/bip32@1.6.2': dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 - '@ethersproject/transactions@5.8.0': + '@scure/bip32@1.7.0': dependencies: - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/signing-key': 5.8.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 - '@ethersproject/units@5.8.0': + '@scure/bip39@1.3.0': dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.1.9 - '@ethersproject/wallet@5.8.0': + '@scure/bip39@1.5.4': dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/json-wallets': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/wordlists': 5.8.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 - '@ethersproject/web@5.8.0': + '@scure/bip39@1.6.0': dependencies: - '@ethersproject/base64': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 - '@ethersproject/wordlists@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 + '@simple-libs/stream-utils@1.2.0': {} - '@humanfs/core@0.19.1': {} + '@socket.io/component-emitter@3.1.2': {} - '@humanfs/node@0.16.7': + '@solana-program/system@0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - - '@humanwhocodes/module-importer@1.0.1': {} + '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@humanwhocodes/retry@0.4.3': {} + '@solana-program/token@0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': + dependencies: + '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@inquirer/external-editor@1.0.3(@types/node@22.19.13)': + '@solana/accounts@5.5.1(typescript@5.9.3)': dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) optionalDependencies: - '@types/node': 22.19.13 + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@jridgewell/gen-mapping@0.3.13': + '@solana/addresses@5.5.1(typescript@5.9.3)': dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} + '@solana/assertions': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@jridgewell/source-map@0.3.11': + '@solana/assertions@5.5.1(typescript@5.9.3)': dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/sourcemap-codec@1.5.5': {} + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@jridgewell/trace-mapping@0.3.31': + '@solana/buffer-layout@4.0.1': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + buffer: 6.0.3 - '@manypkg/find-root@1.1.0': + '@solana/codecs-core@2.3.0(typescript@5.9.3)': dependencies: - '@babel/runtime': 7.29.2 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 - '@manypkg/get-packages@1.1.3': + '@solana/codecs-core@5.5.1(typescript@5.9.3)': dependencies: - '@babel/runtime': 7.29.2 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@napi-rs/wasm-runtime@0.2.12': + '@solana/codecs-data-structures@5.5.1(typescript@5.9.3)': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 - optional: true + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@noble/ciphers@1.3.0': {} + '@solana/codecs-numbers@2.3.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 2.3.0(typescript@5.9.3) + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 - '@noble/curves@1.9.7': + '@solana/codecs-numbers@5.5.1(typescript@5.9.3)': dependencies: - '@noble/hashes': 1.8.0 + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@noble/hashes@1.8.0': {} + '@solana/codecs-strings@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@nodelib/fs.scandir@2.1.5': + '@solana/codecs@5.5.1(typescript@5.9.3)': dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/options': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@nodelib/fs.stat@2.0.5': {} + '@solana/errors@2.3.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 14.0.3 + typescript: 5.9.3 - '@nodelib/fs.walk@1.2.8': + '@solana/errors@5.5.1(typescript@5.9.3)': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + chalk: 5.6.2 + commander: 14.0.2 + optionalDependencies: + typescript: 5.9.3 - '@package-json/types@0.0.12': {} + '@solana/fast-stable-stringify@5.5.1(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 - '@polygonlabs/apps-team-lint@2.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@commitlint/config-conventional': 19.8.1 - eslint: 10.0.3(jiti@2.6.1) - eslint-config-prettier: 10.1.8(eslint@10.0.3(jiti@2.6.1)) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)))(eslint@10.0.3(jiti@2.6.1)) - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)) - eslint-plugin-perfectionist: 5.6.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - globals: 17.4.0 - typescript-eslint: 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@solana/functional@5.5.1(typescript@5.9.3)': optionalDependencies: typescript: 5.9.3 - transitivePeerDependencies: - - '@typescript-eslint/utils' - - eslint-import-resolver-node - - eslint-plugin-import - - supports-color - '@polymarket/clob-client-v2@1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + '@solana/instruction-plans@5.5.1(typescript@5.9.3)': dependencies: - '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@ethersproject/wallet': 5.8.0 - axios: 1.13.6 - browser-or-node: 3.0.0 - tslib: 2.8.1 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/instructions': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/promises': 5.5.1(typescript@5.9.3) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + '@solana/transactions': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - bufferutil - - debug - - typescript - - utf-8-validate - - zod + - fastestsmallesttextencoderdecoder - '@polymarket/sdk@6.0.1(@ethersproject/abi@5.8.0)(@ethersproject/address@5.8.0)(@ethersproject/bignumber@5.8.0)(@ethersproject/constants@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/keccak256@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@ethersproject/solidity@5.8.0)': + '@solana/instructions@5.5.1(typescript@5.9.3)': dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/contracts': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@ethersproject/solidity': 5.8.0 + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@remotion/bundler@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@solana/keys@5.5.1(typescript@5.9.3)': dependencies: - '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - css-loader: 5.2.7(webpack@5.96.1(postcss@8.5.6)) - esbuild: 0.25.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-refresh: 0.9.0 - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - source-map: 0.7.3 - style-loader: 4.0.0(webpack@5.96.1(postcss@8.5.6)) - webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + '@solana/assertions': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/accounts': 5.5.1(typescript@5.9.3) + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/instruction-plans': 5.5.1(typescript@5.9.3) + '@solana/instructions': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/offchain-messages': 5.5.1(typescript@5.9.3) + '@solana/plugin-core': 5.5.1(typescript@5.9.3) + '@solana/programs': 5.5.1(typescript@5.9.3) + '@solana/rpc': 5.5.1(typescript@5.9.3) + '@solana/rpc-api': 5.5.1(typescript@5.9.3) + '@solana/rpc-parsed-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-subscriptions': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + '@solana/signers': 5.5.1(typescript@5.9.3) + '@solana/sysvars': 5.5.1(typescript@5.9.3) + '@solana/transaction-confirmation': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + '@solana/transactions': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js + - fastestsmallesttextencoderdecoder - utf-8-validate - - webpack-cli - '@remotion/cli@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@solana/nominal-types@5.5.1(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/offchain-messages@5.5.1(typescript@5.9.3)': dependencies: - '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-server': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - dotenv: 9.0.2 - minimist: 1.2.6 - prompts: 2.4.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli - - '@remotion/compositor-darwin-arm64@4.0.290': - optional: true + - fastestsmallesttextencoderdecoder - '@remotion/compositor-darwin-x64@4.0.290': - optional: true + '@solana/options@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@remotion/compositor-linux-arm64-gnu@4.0.290': - optional: true + '@solana/plugin-core@5.5.1(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 - '@remotion/compositor-linux-arm64-musl@4.0.290': - optional: true + '@solana/programs@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@remotion/compositor-linux-x64-gnu@4.0.290': - optional: true + '@solana/promises@5.5.1(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 - '@remotion/compositor-linux-x64-musl@4.0.290': - optional: true + '@solana/rpc-api@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/rpc-parsed-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec': 5.5.1(typescript@5.9.3) + '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + '@solana/transactions': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@remotion/compositor-win32-x64-msvc@4.0.290': - optional: true + '@solana/rpc-parsed-types@5.5.1(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 - '@remotion/media-parser@4.0.290': {} + '@solana/rpc-spec-types@5.5.1(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 - '@remotion/media-utils@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@solana/rpc-spec@5.5.1(typescript@5.9.3)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@remotion/player@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@solana/rpc-subscriptions-api@5.5.1(typescript@5.9.3)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) + '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + '@solana/transactions': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@remotion/renderer@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@solana/rpc-subscriptions-channel-websocket@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: - '@remotion/streaming': 4.0.290 - execa: 5.1.1 - extract-zip: 2.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - source-map: 0.8.0-beta.0 - ws: 8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) + '@solana/subscribable': 5.5.1(typescript@5.9.3) + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: - '@remotion/compositor-darwin-arm64': 4.0.290 - '@remotion/compositor-darwin-x64': 4.0.290 - '@remotion/compositor-linux-arm64-gnu': 4.0.290 - '@remotion/compositor-linux-arm64-musl': 4.0.290 - '@remotion/compositor-linux-x64-gnu': 4.0.290 - '@remotion/compositor-linux-x64-musl': 4.0.290 - '@remotion/compositor-win32-x64-msvc': 4.0.290 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - - supports-color - utf-8-validate - '@remotion/streaming@4.0.290': {} - - '@remotion/studio-server@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@solana/rpc-subscriptions-spec@5.5.1(typescript@5.9.3)': dependencies: - '@babel/parser': 7.24.1 - '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - memfs: 3.4.3 - open: 8.4.2 - recast: 0.23.9 - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.3 - source-map: 0.7.3 + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/promises': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + '@solana/subscribable': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/fast-stable-stringify': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/promises': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-subscriptions-api': 5.5.1(typescript@5.9.3) + '@solana/rpc-subscriptions-channel-websocket': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) + '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + '@solana/subscribable': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - react - - react-dom - - supports-color - - uglify-js + - fastestsmallesttextencoderdecoder - utf-8-validate - - webpack-cli - '@remotion/studio-shared@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@solana/rpc-transformers@5.5.1(typescript@5.9.3)': dependencies: - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - react - - react-dom + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + undici-types: 7.28.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-types@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/fast-stable-stringify': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/rpc-api': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec': 5.5.1(typescript@5.9.3) + '@solana/rpc-spec-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-transformers': 5.5.1(typescript@5.9.3) + '@solana/rpc-transport-http': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/instructions': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + '@solana/offchain-messages': 5.5.1(typescript@5.9.3) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + '@solana/transactions': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/subscribable@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/errors': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 - '@remotion/studio@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@solana/sysvars@5.5.1(typescript@5.9.3)': dependencies: - '@remotion/media-parser': 4.0.290 - '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/zod-types': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3) - memfs: 3.4.3 - open: 8.4.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.3 - source-map: 0.7.3 - zod: 3.22.3 + '@solana/accounts': 5.5.1(typescript@5.9.3) + '@solana/codecs': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/promises': 5.5.1(typescript@5.9.3) + '@solana/rpc': 5.5.1(typescript@5.9.3) + '@solana/rpc-subscriptions': 5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + '@solana/transactions': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - - supports-color + - fastestsmallesttextencoderdecoder - utf-8-validate - '@remotion/zod-types@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3)': - dependencies: - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - zod: 3.22.3 + '@solana/transaction-messages@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/instructions': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - react - - react-dom + - fastestsmallesttextencoderdecoder + + '@solana/transactions@5.5.1(typescript@5.9.3)': + dependencies: + '@solana/addresses': 5.5.1(typescript@5.9.3) + '@solana/codecs-core': 5.5.1(typescript@5.9.3) + '@solana/codecs-data-structures': 5.5.1(typescript@5.9.3) + '@solana/codecs-numbers': 5.5.1(typescript@5.9.3) + '@solana/codecs-strings': 5.5.1(typescript@5.9.3) + '@solana/errors': 5.5.1(typescript@5.9.3) + '@solana/functional': 5.5.1(typescript@5.9.3) + '@solana/instructions': 5.5.1(typescript@5.9.3) + '@solana/keys': 5.5.1(typescript@5.9.3) + '@solana/nominal-types': 5.5.1(typescript@5.9.3) + '@solana/rpc-types': 5.5.1(typescript@5.9.3) + '@solana/transaction-messages': 5.5.1(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder - '@scure/base@1.2.6': {} + '@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': + dependencies: + '@solana/wallet-standard-features': 1.4.0 + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@wallet-standard/base': 1.1.1 + '@wallet-standard/features': 1.1.1 + eventemitter3: 5.0.1 - '@scure/bip32@1.7.0': + '@solana/wallet-standard-chains@1.1.2': + dependencies: + '@wallet-standard/base': 1.1.1 + + '@solana/wallet-standard-features@1.4.0': + dependencies: + '@wallet-standard/base': 1.1.1 + '@wallet-standard/features': 1.1.1 + + '@solana/wallet-standard-util@1.1.3': dependencies: '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 + '@solana/wallet-standard-chains': 1.1.2 + '@solana/wallet-standard-features': 1.4.0 - '@scure/bip39@1.6.0': + '@solana/wallet-standard-wallet-adapter-base@1.1.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@4.0.1)': dependencies: - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana/wallet-standard-chains': 1.1.2 + '@solana/wallet-standard-features': 1.4.0 + '@solana/wallet-standard-util': 1.1.3 + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@wallet-standard/app': 1.1.1 + '@wallet-standard/base': 1.1.1 + '@wallet-standard/features': 1.1.1 + '@wallet-standard/wallet': 1.1.1 + bs58: 4.0.1 - '@simple-libs/stream-utils@1.2.0': {} + '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@babel/runtime': 7.29.2 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@solana/buffer-layout': 4.0.1 + '@solana/codecs-numbers': 2.3.0(typescript@5.9.3) + agentkeepalive: 4.6.0 + bn.js: 5.2.3 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + node-fetch: 2.7.0 + rpc-websockets: 9.3.9 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate '@spruceid/siwe-parser@2.1.2': dependencies: @@ -4538,6 +10422,107 @@ snapshots: '@stablelib/wipe@1.0.1': {} + '@swc/helpers@0.5.23': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/cli@4.3.2': + dependencies: + '@parcel/watcher': 2.5.1 + '@tailwindcss/node': 4.3.2 + '@tailwindcss/oxide': 4.3.2 + enhanced-resolve: 5.21.6 + mri: 1.2.0 + picocolors: 1.1.1 + tailwindcss: 4.3.2 + + '@tailwindcss/node@4.3.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.21.6 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.2 + + '@tailwindcss/oxide-android-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide@4.3.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-x64': 4.3.2 + '@tailwindcss/oxide-freebsd-x64': 4.3.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-x64-musl': 4.3.2 + '@tailwindcss/oxide-wasm32-wasi': 4.3.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.2 + + '@tailwindcss/vite@4.3.2(vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1))': + dependencies: + '@tailwindcss/node': 4.3.2 + '@tailwindcss/oxide': 4.3.2 + tailwindcss: 4.3.2 + vite: 5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + + '@tanstack/query-core@5.101.2': {} + + '@tanstack/query-persist-client-core@5.101.2': + dependencies: + '@tanstack/query-core': 5.101.2 + + '@tanstack/react-query@5.101.2(react@18.3.1)': + dependencies: + '@tanstack/query-core': 5.101.2 + react: 18.3.1 + + '@tanstack/react-virtual@3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/virtual-core': 3.17.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@tanstack/virtual-core@3.17.3': {} + '@tsconfig/node-ts@23.6.4': {} '@tsconfig/node24@24.0.4': {} @@ -4547,10 +10532,39 @@ snapshots: tslib: 2.8.1 optional: true + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.24.1 + '@babel/types': 7.29.0 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.24.1 + '@babel/types': 7.29.0 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.19.13 + '@types/conventional-commits-parser@5.0.2': dependencies: '@types/node': 22.19.13 + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -4565,8 +10579,14 @@ snapshots: '@types/estree@1.0.8': {} + '@types/estree@1.0.9': {} + '@types/json-schema@7.0.15': {} + '@types/lodash@4.17.24': {} + + '@types/ms@2.1.0': {} + '@types/node@12.20.55': {} '@types/node@22.19.13': @@ -4588,6 +10608,18 @@ snapshots: '@types/prop-types': 15.7.15 csstype: 3.2.3 + '@types/trusted-types@2.0.7': {} + + '@types/uuid@10.0.0': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 22.19.13 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.19.13 + '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.35': @@ -4599,15 +10631,15 @@ snapshots: '@types/node': 22.19.13 optional: true - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.56.1 - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -4615,14 +10647,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -4645,13 +10677,13 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -4674,13 +10706,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.7.0)) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -4726,28 +10758,659 @@ snapshots: '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1))': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + transitivePeerDependencies: + - supports-color + + '@wagmi/connectors@6.2.0(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76)': + dependencies: + '@base-org/account': 2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) + '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) + '@gemini-wallet/core': 0.3.2(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@metamask/sdk': 0.33.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + '@walletconnect/ethereum-provider': 2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + cbw-sdk: '@coinbase/wallet-sdk@3.9.3' + porto: 0.2.35(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@tanstack/react-query' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - debug + - encoding + - expo-auth-session + - expo-crypto + - expo-web-browser + - fastestsmallesttextencoderdecoder + - immer + - ioredis + - react + - react-native + - supports-color + - uploadthing + - use-sync-external-store + - utf-8-validate + - wagmi + - zod + + '@wagmi/core@2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))': + dependencies: + eventemitter3: 5.0.1 + mipd: 0.0.7(typescript@5.9.3) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + zustand: 5.0.0(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + optionalDependencies: + '@tanstack/query-core': 5.101.2 + typescript: 5.9.3 + transitivePeerDependencies: + - '@types/react' + - immer + - react + - use-sync-external-store + + '@wallet-standard/app@1.1.1': + dependencies: + '@wallet-standard/base': 1.1.1 + + '@wallet-standard/base@1.1.1': {} + + '@wallet-standard/features@1.1.1': + dependencies: + '@wallet-standard/base': 1.1.1 + + '@wallet-standard/wallet@1.1.1': + dependencies: + '@wallet-standard/base': 1.1.1 + + '@walletconnect/core@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.1.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.21.0 + '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/window-getters': 1.0.1 + es-toolkit: 1.33.0 + events: 3.3.0 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod + + '@walletconnect/core@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.1.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.21.1 + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/window-getters': 1.0.1 + es-toolkit: 1.33.0 + events: 3.3.0 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod + + '@walletconnect/environment@1.0.1': + dependencies: + tslib: 1.14.1 + + '@walletconnect/ethereum-provider@2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@reown/appkit': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/jsonrpc-http-connection': 1.0.8 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/types': 2.21.1 + '@walletconnect/universal-provider': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - react + - typescript + - uploadthing + - utf-8-validate + - zod + + '@walletconnect/events@1.0.1': + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + + '@walletconnect/heartbeat@1.2.2': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/time': 1.0.2 + events: 3.3.0 + + '@walletconnect/jsonrpc-http-connection@1.0.8': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + cross-fetch: 3.2.0 + events: 3.3.0 + transitivePeerDependencies: + - encoding + + '@walletconnect/jsonrpc-provider@1.0.14': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + + '@walletconnect/jsonrpc-types@1.0.4': + dependencies: + events: 3.3.0 + keyvaluestorage-interface: 1.0.0 + + '@walletconnect/jsonrpc-utils@1.0.8': + dependencies: + '@walletconnect/environment': 1.0.1 + '@walletconnect/jsonrpc-types': 1.0.4 + tslib: 1.14.1 + + '@walletconnect/jsonrpc-ws-connection@1.0.16(bufferutil@4.1.0)(utf-8-validate@6.0.6)': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@walletconnect/keyvaluestorage@1.1.1': + dependencies: + '@walletconnect/safe-json': 1.0.2 + idb-keyval: 6.2.6 + unstorage: 1.17.5(idb-keyval@6.2.6) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - ioredis + - uploadthing + + '@walletconnect/logger@2.1.2': + dependencies: + '@walletconnect/safe-json': 1.0.2 + pino: 7.11.0 + + '@walletconnect/relay-api@1.0.11': + dependencies: + '@walletconnect/jsonrpc-types': 1.0.4 + + '@walletconnect/relay-auth@1.1.0': + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + uint8arrays: 3.1.0 + + '@walletconnect/safe-json@1.0.2': + dependencies: + tslib: 1.14.1 + + '@walletconnect/sign-client@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@walletconnect/core': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.21.0 + '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod + + '@walletconnect/sign-client@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@walletconnect/core': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.21.1 + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod + + '@walletconnect/time@1.0.2': + dependencies: + tslib: 1.14.1 - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true + '@walletconnect/types@2.21.0': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - ioredis + - uploadthing + + '@walletconnect/types@2.21.1': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - ioredis + - uploadthing + + '@walletconnect/universal-provider@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/jsonrpc-http-connection': 1.0.8 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/sign-client': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/types': 2.21.0 + '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + es-toolkit: 1.33.0 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true + '@walletconnect/universal-provider@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/jsonrpc-http-connection': 1.0.8 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + '@walletconnect/types': 2.21.1 + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + es-toolkit: 1.33.0 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - encoding + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod - '@unrs/resolver-binding-wasm32-wasi@1.11.1': + '@walletconnect/utils@2.21.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true + '@noble/ciphers': 1.2.1 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.1.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.21.0 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + bs58: 6.0.0 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.0 + viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true + '@walletconnect/utils@2.21.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)': + dependencies: + '@noble/ciphers': 1.2.1 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.1.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.21.1 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + bs58: 6.0.0 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.0 + viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - ioredis + - typescript + - uploadthing + - utf-8-validate + - zod - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - optional: true + '@walletconnect/window-getters@1.0.1': + dependencies: + tslib: 1.14.1 - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true + '@walletconnect/window-metadata@1.0.1': + dependencies: + '@walletconnect/window-getters': 1.0.1 + tslib: 1.14.1 '@webassemblyjs/ast@1.14.1': dependencies: @@ -4870,6 +11533,21 @@ snapshots: '@xtuc/long@4.2.2': {} + abitype@1.0.6(typescript@5.9.3)(zod@3.25.76): + optionalDependencies: + typescript: 5.9.3 + zod: 3.25.76 + + abitype@1.0.8(typescript@5.9.3)(zod@3.25.76): + optionalDependencies: + typescript: 5.9.3 + zod: 3.25.76 + + abitype@1.2.3(typescript@5.9.3)(zod@3.22.4): + optionalDependencies: + typescript: 5.9.3 + zod: 3.22.4 + abitype@1.2.3(typescript@5.9.3)(zod@3.25.76): optionalDependencies: typescript: 5.9.3 @@ -4890,6 +11568,16 @@ snapshots: aes-js@4.0.0-beta.5: {} + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + ajv-formats@2.1.1(ajv@8.18.0): optionalDependencies: ajv: 8.18.0 @@ -4933,6 +11621,11 @@ snapshots: ansi-styles@6.2.3: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + apg-js@4.4.0: {} argparse@1.0.10: @@ -4941,6 +11634,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + array-ify@1.0.0: {} array-union@2.1.0: {} @@ -4949,10 +11646,25 @@ snapshots: dependencies: tslib: 2.8.1 + async-mutex@0.2.6: + dependencies: + tslib: 2.8.1 + asynckit@0.4.0: {} + atomic-sleep@1.0.0: {} + auto-bind@5.0.1: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axios-retry@4.5.0(axios@1.16.0): + dependencies: + axios: 1.16.0 + is-retry-allowed: 2.2.0 + axios@1.13.6: dependencies: follow-redirects: 1.15.11 @@ -4961,8 +11673,34 @@ snapshots: transitivePeerDependencies: - debug + axios@1.16.0: + dependencies: + follow-redirects: 1.16.0 + form-data: 4.0.5 + proxy-from-env: 2.1.0 + transitivePeerDependencies: + - debug + + axios@1.18.0: + dependencies: + follow-redirects: 1.16.0 + form-data: 4.0.5 + https-proxy-agent: 5.0.1 + proxy-from-env: 2.1.0 + transitivePeerDependencies: + - debug + - supports-color + balanced-match@4.0.4: {} + base-x@3.0.11: + dependencies: + safe-buffer: 5.2.1 + + base-x@5.0.1: {} + + base64-js@1.5.1: {} + baseline-browser-mapping@2.10.0: {} bech32@1.1.4: {} @@ -4973,10 +11711,20 @@ snapshots: big.js@5.2.2: {} + big.js@6.2.2: {} + bn.js@4.12.3: {} bn.js@5.2.3: {} + borsh@0.7.0: + dependencies: + bn.js: 5.2.3 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + bowser@2.14.1: {} + brace-expansion@5.0.4: dependencies: balanced-match: 4.0.4 @@ -4997,14 +11745,26 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) + bs58@4.0.1: + dependencies: + base-x: 3.0.11 + + bs58@6.0.0: + dependencies: + base-x: 5.0.1 + buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bufferutil@4.1.0: dependencies: node-gyp-build: 4.8.4 - optional: true bundle-name@4.1.0: dependencies: @@ -5015,8 +11775,22 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + callsites@3.1.0: {} + camelcase@5.3.1: {} + caniuse-lite@1.0.30001775: {} chalk@4.1.2: @@ -5028,8 +11802,18 @@ snapshots: chardet@2.1.1: {} + charenc@0.0.2: {} + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chrome-trace-event@1.0.4: {} + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + cli-boxes@3.0.0: {} cli-cursor@4.0.0: @@ -5052,12 +11836,22 @@ snapshots: slice-ansi: 8.0.0 string-width: 8.2.0 + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clsx@1.2.1: {} + + clsx@2.1.1: {} + code-excerpt@4.0.0: dependencies: convert-to-spaces: 2.0.1 @@ -5074,6 +11868,10 @@ snapshots: dependencies: delayed-stream: 1.0.0 + comlink@4.4.2: {} + + commander@14.0.2: {} + commander@14.0.3: {} commander@2.20.3: {} @@ -5111,8 +11909,14 @@ snapshots: '@simple-libs/stream-utils': 1.2.0 meow: 13.2.0 + convert-source-map@2.0.0: {} + convert-to-spaces@2.0.1: {} + cookie-es@1.2.3: {} + + core-util-is@1.0.3: {} + cosmiconfig-typescript-loader@6.2.0(@types/node@22.19.13)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: '@types/node': 22.19.13 @@ -5129,13 +11933,33 @@ snapshots: optionalDependencies: typescript: 5.9.3 + crc-32@1.2.2: {} + + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-fetch@4.1.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - css-loader@5.2.7(webpack@5.96.1(postcss@8.5.6)): + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + + crypt@0.0.2: {} + + css-loader@5.2.7(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) loader-utils: 2.0.4 @@ -5155,10 +11979,24 @@ snapshots: dargs@8.1.0: {} + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.29.2 + + dayjs@1.11.13: {} + + debug@4.3.4: + dependencies: + ms: 2.1.2 + debug@4.4.3: dependencies: ms: 2.1.3 + decamelize@1.2.0: {} + + decode-uri-component@0.2.2: {} + deep-is@0.1.4: {} default-browser-id@5.0.1: {} @@ -5168,14 +12006,40 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.1 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + define-lazy-prop@2.0.0: {} define-lazy-prop@3.0.0: {} + defu@6.1.7: {} + + delay@5.0.0: {} + delayed-stream@1.0.0: {} + derive-valtio@0.1.0(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1)): + dependencies: + valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + + destr@2.0.5: {} + + detect-browser@5.3.0: {} + detect-indent@6.1.0: {} + detect-libc@1.0.3: {} + + detect-libc@2.1.2: {} + + detect-node-es@1.1.0: {} + + dijkstrajs@1.0.3: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -5194,6 +12058,20 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexify@4.1.3: + dependencies: + end-of-stream: 1.4.5 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + + eciesjs@0.4.18: + dependencies: + '@ecies/ciphers': 0.2.6(@noble/ciphers@1.3.0) + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + electron-to-chromium@1.5.302: {} elliptic@6.6.1: @@ -5212,15 +12090,36 @@ snapshots: emojis-list@3.0.0: {} + encode-utf8@1.0.3: {} + end-of-stream@1.4.5: dependencies: once: 1.4.0 + engine.io-client@6.6.6(bufferutil@4.1.0)(utf-8-validate@6.0.6): + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + engine.io-parser: 5.2.3 + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + enhanced-resolve@5.20.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 + enhanced-resolve@5.21.6: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -5253,6 +12152,38 @@ snapshots: es-toolkit@1.33.0: {} + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.0: optionalDependencies: '@esbuild/aix-ppc64': 0.25.0 @@ -5345,9 +12276,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.0.3(jiti@2.6.1)): + eslint-config-prettier@10.1.8(eslint@10.0.3(jiti@2.7.0)): dependencies: - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: @@ -5356,10 +12287,10 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)))(eslint@10.0.3(jiti@2.6.1)): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)))(eslint@10.0.3(jiti@2.7.0)): dependencies: debug: 4.4.3 - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 @@ -5367,17 +12298,17 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.56.1 comment-parser: 1.4.5 debug: 4.4.3 - eslint: 10.0.3(jiti@2.6.1) + eslint: 10.0.3(jiti@2.7.0) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.2.4 @@ -5385,14 +12316,14 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) transitivePeerDependencies: - supports-color - eslint-plugin-perfectionist@5.6.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@5.6.0(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.3(jiti@2.6.1) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) + eslint: 10.0.3(jiti@2.7.0) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -5414,9 +12345,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.0.3(jiti@2.6.1): + eslint@10.0.3(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.3 '@eslint/config-helpers': 0.5.3 @@ -5447,7 +12378,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.6.1 + jiti: 2.7.0 transitivePeerDependencies: - supports-color @@ -5473,6 +12404,40 @@ snapshots: esutils@2.0.3: {} + eth-block-tracker@7.1.0: + dependencies: + '@metamask/eth-json-rpc-provider': 1.0.1 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 5.0.2 + json-rpc-random-id: 1.0.1 + pify: 3.0.0 + transitivePeerDependencies: + - supports-color + + eth-json-rpc-filters@6.0.1: + dependencies: + '@metamask/safe-event-emitter': 3.1.2 + async-mutex: 0.2.6 + eth-query: 2.1.2 + json-rpc-engine: 6.1.0 + pify: 5.0.0 + + eth-query@2.1.2: + dependencies: + json-rpc-random-id: 1.0.1 + xtend: 4.0.2 + + eth-rpc-errors@4.0.3: + dependencies: + fast-safe-stringify: 2.1.1 + + ethereum-cryptography@2.2.1: + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + ethers@5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): dependencies: '@ethersproject/abi': 5.8.0 @@ -5522,6 +12487,8 @@ snapshots: - bufferutil - utf-8-validate + eventemitter2@6.4.9: {} + eventemitter3@5.0.1: {} events@3.3.0: {} @@ -5540,6 +12507,11 @@ snapshots: extendable-error@0.1.7: {} + extension-port-stream@3.0.0: + dependencies: + readable-stream: 3.6.2 + webextension-polyfill: 0.10.0 + extract-zip@2.0.1: dependencies: debug: 4.4.3 @@ -5550,6 +12522,8 @@ snapshots: transitivePeerDependencies: - supports-color + eyes@0.1.8: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -5564,6 +12538,12 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-redact@3.5.0: {} + + fast-safe-stringify@2.1.1: {} + + fast-stable-stringify@1.0.0: {} + fast-uri@3.1.0: {} fastq@1.20.1: @@ -5586,6 +12566,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + filter-obj@1.1.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -5605,6 +12587,12 @@ snapshots: follow-redirects@1.15.11: {} + follow-redirects@1.16.0: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + form-data@4.0.5: dependencies: asynckit: 0.4.0 @@ -5613,6 +12601,16 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + framer-motion@12.42.2(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + motion-dom: 12.42.2 + motion-utils: 12.39.0 + tslib: 2.8.1 + optionalDependencies: + '@emotion/is-prop-valid': 1.4.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -5632,6 +12630,12 @@ snapshots: function-bind@1.1.2: {} + fuse.js@7.4.2: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} get-east-asian-width@1.5.0: {} @@ -5649,6 +12653,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -5699,8 +12705,24 @@ snapshots: graceful-fs@4.2.11: {} + h3@1.15.11: + dependencies: + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.4 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 + has-flag@4.0.0: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -5722,10 +12744,23 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + hono@4.12.27: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + human-id@4.1.3: {} human-signals@2.1.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + husky@9.1.7: {} iconv-lite@0.7.2: @@ -5736,6 +12771,14 @@ snapshots: dependencies: postcss: 8.5.6 + idb-keyval@6.2.1: {} + + idb-keyval@6.2.6: {} + + idb@7.1.1: {} + + ieee754@1.2.1: {} + ignore@5.3.2: {} ignore@7.0.5: {} @@ -5794,12 +12837,23 @@ snapshots: - bufferutil - utf-8-validate + iron-webcrypto@1.2.1: {} + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + is-arrayish@0.2.1: {} + is-buffer@1.1.6: {} + is-bun-module@2.0.0: dependencies: semver: 7.7.4 + is-callable@1.2.7: {} + is-docker@2.2.1: {} is-docker@3.0.0: {} @@ -5814,6 +12868,14 @@ snapshots: dependencies: get-east-asian-width: 1.5.0 + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -5830,12 +12892,25 @@ snapshots: is-plain-obj@4.1.0: {} + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-retry-allowed@2.2.0: {} + is-stream@2.0.1: {} is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.22 + is-windows@1.0.2: {} is-wsl@2.2.0: @@ -5846,8 +12921,20 @@ snapshots: dependencies: is-inside-container: 1.0.0 + isarray@1.0.0: {} + + isarray@2.0.5: {} + isexe@2.0.0: {} + isomorphic-ws@4.0.1(ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)): + dependencies: + ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + isows@1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)): + dependencies: + ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + isows@1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)): dependencies: ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -5856,6 +12943,24 @@ snapshots: dependencies: ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + json-stringify-safe: 5.0.1 + stream-json: 1.9.1 + uuid: 8.3.2 + ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + jest-worker@27.5.1: dependencies: '@types/node': 22.19.13 @@ -5864,6 +12969,10 @@ snapshots: jiti@2.6.1: {} + jiti@2.7.0: {} + + jose@6.2.3: {} + js-base64@3.7.8: {} js-sha3@0.8.0: {} @@ -5879,26 +12988,49 @@ snapshots: dependencies: argparse: 2.0.1 + jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-canonicalize@1.2.0: {} + json-parse-even-better-errors@2.3.1: {} + json-rpc-engine@6.1.0: + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + eth-rpc-errors: 4.0.3 + + json-rpc-random-id@1.0.1: {} + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-safe@5.0.1: {} + json5@2.2.3: {} jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 + jwt-decode@4.0.0: {} + + keccak@3.0.4: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.4 + readable-stream: 3.6.2 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + keyvaluestorage-interface@1.0.0: {} + kleur@3.0.3: {} levn@0.4.1: @@ -5906,6 +13038,55 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + lines-and-columns@1.2.4: {} lint-staged@16.3.2: @@ -5926,6 +13107,22 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 + lit-element@4.2.2: + dependencies: + '@lit-labs/ssr-dom-shim': 1.6.0 + '@lit/reactive-element': 2.1.2 + lit-html: 3.3.3 + + lit-html@3.3.3: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.3.0: + dependencies: + '@lit/reactive-element': 2.1.2 + lit-element: 4.2.2 + lit-html: 3.3.3 + loader-runner@4.3.2: {} loader-utils@2.0.4: @@ -5956,6 +13153,8 @@ snapshots: lodash.upperfirst@4.3.1: {} + lodash@4.18.1: {} + log-update@6.1.0: dependencies: ansi-escapes: 7.3.0 @@ -5968,12 +13167,36 @@ snapshots: dependencies: js-tokens: 4.0.0 + lru-cache@11.5.1: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + lru-cache@6.0.0: dependencies: yallist: 4.0.0 + lucide-react@0.563.0(react@18.3.1): + dependencies: + react: 18.3.1 + + lucide-react@0.564.0(react@18.3.1): + dependencies: + react: 18.3.1 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + math-intrinsics@1.1.0: {} + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + memfs@3.4.3: dependencies: fs-monkey: 1.0.3 @@ -5986,6 +13209,8 @@ snapshots: merge2@1.4.1: {} + micro-ftch@0.3.1: {} + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -6013,10 +13238,33 @@ snapshots: minimist@1.2.8: {} + mipd@0.0.7(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + + motion-dom@12.42.2: + dependencies: + motion-utils: 12.39.0 + + motion-utils@12.39.0: {} + + motion@12.34.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + framer-motion: 12.42.2(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@emotion/is-prop-valid': 1.4.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + mri@1.2.0: {} + ms@2.1.2: {} + ms@2.1.3: {} + multiformats@9.9.0: {} + nanoid@3.3.11: {} napi-postinstall@0.3.4: {} @@ -6027,15 +13275,42 @@ snapshots: neo-async@2.6.2: {} - node-gyp-build@4.8.4: - optional: true + node-addon-api@2.0.2: {} + + node-addon-api@7.1.1: {} + + node-fetch-native@1.6.7: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.4: {} + + node-mock-http@1.0.4: {} node-releases@2.0.27: {} + normalize-path@3.0.0: {} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 + obj-multiplex@1.0.0: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + readable-stream: 2.3.8 + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + on-exit-leak-free@0.2.0: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -6061,6 +13336,12 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + openapi-fetch@0.13.8: + dependencies: + openapi-typescript-helpers: 0.0.15 + + openapi-typescript-helpers@0.0.15: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -6102,6 +13383,51 @@ snapshots: transitivePeerDependencies: - zod + ox@0.13.1(typescript@5.9.3)(zod@3.25.76): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.14.29(typescript@5.9.3)(zod@3.22.4): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.14.29(typescript@5.9.3)(zod@3.25.76): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + ox@0.14.29(typescript@5.9.3)(zod@4.3.6): dependencies: '@adraffy/ens-normalize': 1.11.1 @@ -6117,6 +13443,64 @@ snapshots: transitivePeerDependencies: - zod + ox@0.6.7(typescript@5.9.3)(zod@3.25.76): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.6.9(typescript@5.9.3)(zod@3.25.76): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.9.17(typescript@5.9.3)(zod@3.25.76): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.9.17(typescript@5.9.3)(zod@4.3.6): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -6172,8 +13556,59 @@ snapshots: picomatch@4.0.3: {} + pify@3.0.0: {} + pify@4.0.1: {} + pify@5.0.0: {} + + pino-abstract-transport@0.5.0: + dependencies: + duplexify: 4.1.3 + split2: 4.2.0 + + pino-std-serializers@4.0.0: {} + + pino@7.11.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 2.8.0 + thread-stream: 0.15.2 + + pngjs@5.0.0: {} + + pony-cause@2.1.11: {} + + porto@0.2.35(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76)): + dependencies: + '@wagmi/core': 2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + hono: 4.12.27 + idb-keyval: 6.2.6 + mipd: 0.0.7(typescript@5.9.3) + ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + zod: 4.3.6 + zustand: 5.0.14(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + optionalDependencies: + '@tanstack/react-query': 5.101.2(react@18.3.1) + react: 18.3.1 + typescript: 5.9.3 + wagmi: 2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76) + transitivePeerDependencies: + - '@types/react' + - immer + - use-sync-external-store + + possible-typed-array-names@1.1.0: {} + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -6208,29 +13643,70 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + preact@10.24.2: {} + + preact@10.29.4: {} + prelude-ls@1.2.1: {} prettier@2.8.8: {} prettier@3.8.1: {} + process-nextick-args@2.0.1: {} + + process-warning@1.0.0: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + proxy-compare@2.6.0: {} + proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} + pump@3.0.4: dependencies: end-of-stream: 1.4.5 once: 1.4.0 - punycode@2.3.1: {} + punycode@2.3.1: {} + + qrcode@1.5.3: + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + + quansync@0.2.11: {} + + query-string@7.1.3: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + + queue-microtask@1.2.3: {} + + quick-format-unescaped@4.0.4: {} - quansync@0.2.11: {} + radix3@1.1.2: {} - queue-microtask@1.2.3: {} + react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-dom@18.3.1(react@18.3.1): dependencies: @@ -6238,14 +13714,47 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-hook-form@7.81.0(react@18.3.1): + dependencies: + react: 18.3.1 + react-reconciler@0.29.2(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 + react-refresh@0.17.0: {} + react-refresh@0.9.0: {} + react-remove-scroll-bar@2.3.8(@types/react@18.3.28)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + react-remove-scroll@2.7.2(@types/react@18.3.28)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.28)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.28)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.28)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + + react-style-singleton@2.2.3(@types/react@18.3.28)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -6257,6 +13766,26 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@5.0.0: {} + + real-require@0.1.0: {} + recast@0.23.9: dependencies: ast-types: 0.16.1 @@ -6274,6 +13803,8 @@ snapshots: require-from-string@2.0.2: {} + require-main-filename@2.0.0: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -6294,6 +13825,50 @@ snapshots: rfdc@1.4.1: {} + rollup@4.62.2: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 + fsevents: 2.3.3 + + rpc-websockets@9.3.9: + dependencies: + '@swc/helpers': 0.5.23 + '@types/uuid': 10.0.0 + '@types/ws': 8.18.1 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 14.0.1 + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + run-applescript@7.1.0: {} run-parallel@1.2.0: @@ -6304,6 +13879,18 @@ snapshots: dependencies: tslib: 2.8.1 + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-stable-stringify@2.5.0: {} + safer-buffer@2.1.2: {} scheduler@0.23.2: @@ -6325,12 +13912,31 @@ snapshots: scrypt-js@3.0.1: {} + semver@6.3.1: {} + semver@7.5.3: dependencies: lru-cache: 6.0.0 semver@7.7.4: {} + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + sha.js@2.4.12: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -6370,6 +13976,28 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6): + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + engine.io-client: 6.6.6(bufferutil@4.1.0)(utf-8-validate@6.0.6) + socket.io-parser: 4.2.6 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.6: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + sonic-boom@2.8.0: + dependencies: + atomic-sleep: 1.0.0 + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -6390,6 +14018,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + split-on-first@1.1.0: {} + split2@4.2.0: {} sprintf-js@1.0.3: {} @@ -6400,6 +14030,16 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stream-chain@2.2.5: {} + + stream-json@1.9.1: + dependencies: + stream-chain: 2.2.5 + + stream-shift@1.0.3: {} + + strict-uri-encode@2.0.0: {} + string-argv@0.3.2: {} string-width@4.2.3: @@ -6419,6 +14059,14 @@ snapshots: get-east-asian-width: 1.5.0 strip-ansi: 7.2.0 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -6431,10 +14079,14 @@ snapshots: strip-final-newline@2.0.0: {} - style-loader@4.0.0(webpack@5.96.1(postcss@8.5.6)): + style-loader@4.0.0(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)): dependencies: webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) + superstruct@1.0.4: {} + + superstruct@2.0.2: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -6443,8 +14095,14 @@ snapshots: dependencies: has-flag: 4.0.0 + tailwind-merge@3.6.0: {} + + tailwindcss@4.3.2: {} + tapable@2.3.0: {} + tapable@2.3.3: {} + term-size@2.2.1: {} terser-webpack-plugin@5.6.1(esbuild@0.25.0)(postcss@8.5.6)(webpack@5.96.1(postcss@8.5.6)): @@ -6465,6 +14123,12 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + text-encoding-utf-8@1.0.2: {} + + thread-stream@0.15.2: + dependencies: + real-require: 0.1.0 + tiny-invariant@1.3.3: {} tinyexec@1.0.2: {} @@ -6474,10 +14138,18 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + tr46@0.0.3: {} + tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -6488,6 +14160,8 @@ snapshots: dependencies: typescript: 5.9.3 + tslib@1.14.1: {} + tslib@2.7.0: {} tslib@2.8.1: {} @@ -6507,23 +14181,39 @@ snapshots: type-fest@4.41.0: {} - typescript-eslint@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3): + typed-array-buffer@1.0.3: dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typescript-eslint@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.3(jiti@2.6.1) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3) + eslint: 10.0.3(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color typescript@5.9.3: {} + ufo@1.6.4: {} + + uint8arrays@3.1.0: + dependencies: + multiformats: 9.9.0 + + uncrypto@0.1.3: {} + undici-types@6.19.8: {} undici-types@6.21.0: {} + undici-types@7.28.0: {} + universalify@0.1.2: {} unrs-resolver@1.11.1: @@ -6550,6 +14240,19 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + unstorage@1.17.5(idb-keyval@6.2.6): + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.11 + lru-cache: 11.5.1 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.4 + optionalDependencies: + idb-keyval: 6.2.6 + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -6560,6 +14263,33 @@ snapshots: dependencies: punycode: 2.3.1 + use-callback-ref@1.3.3(@types/react@18.3.28)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + use-sidecar@1.1.3(@types/react@18.3.28)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + use-sync-external-store@1.2.0(react@18.3.1): + dependencies: + react: 18.3.1 + + use-sync-external-store@1.4.0(react@18.3.1): + dependencies: + react: 18.3.1 + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + utf-8-validate@6.0.6: dependencies: node-gyp-build: 4.8.4 @@ -6567,8 +14297,50 @@ snapshots: util-deprecate@1.0.2: {} + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.2 + is-typed-array: 1.1.15 + which-typed-array: 1.1.22 + + uuid@10.0.0: {} + + uuid@14.0.1: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + valid-url@1.0.9: {} + valtio@1.13.2(@types/react@18.3.28)(react@18.3.1): + dependencies: + derive-valtio: 0.1.0(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1)) + proxy-compare: 2.6.0 + use-sync-external-store: 1.2.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + react: 18.3.1 + + viem@2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.9.3)(zod@3.25.76) + isows: 1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ox: 0.6.7(typescript@5.9.3)(zod@3.25.76) + ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): dependencies: '@noble/curves': 1.9.7 @@ -6603,6 +14375,40 @@ snapshots: - utf-8-validate - zod + viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4): + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) + isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ox: 0.14.29(typescript@5.9.3)(zod@3.22.4) + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + isows: 1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + ox: 0.14.29(typescript@5.9.3)(zod@3.25.76) + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6): dependencies: '@noble/curves': 1.9.7 @@ -6620,10 +14426,70 @@ snapshots: - utf-8-validate - zod + vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.62.2 + optionalDependencies: + '@types/node': 22.19.13 + fsevents: 2.3.3 + lightningcss: 1.32.0 + terser: 5.46.1 + + wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76): + dependencies: + '@tanstack/react-query': 5.101.2(react@18.3.1) + '@wagmi/connectors': 6.2.0(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@tanstack/query-core' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - debug + - encoding + - expo-auth-session + - expo-crypto + - expo-web-browser + - fastestsmallesttextencoderdecoder + - immer + - ioredis + - react-native + - supports-color + - uploadthing + - utf-8-validate + - zod + watchpack@2.5.2: dependencies: graceful-fs: 4.2.11 + webextension-polyfill@0.10.0: {} + + webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} webpack-sources@3.5.0: {} @@ -6667,12 +14533,29 @@ snapshots: - postcss - uglify-js + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 + which-module@2.0.1: {} + + which-typed-array@1.1.22: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 @@ -6683,6 +14566,12 @@ snapshots: word-wrap@1.2.5: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -6697,6 +14586,11 @@ snapshots: wrappy@1.0.2: {} + ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + ws@8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6): optionalDependencies: bufferutil: 4.1.0 @@ -6722,18 +14616,50 @@ snapshots: bufferutil: 4.1.0 utf-8-validate: 6.0.6 + ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + wsl-utils@0.1.0: dependencies: is-wsl: 3.1.1 + xmlhttprequest-ssl@2.1.2: {} + + xtend@4.0.2: {} + + y18n@4.0.3: {} + y18n@5.0.8: {} + yallist@3.1.1: {} + yallist@4.0.0: {} yaml@2.8.2: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -6755,7 +14681,26 @@ snapshots: zod@3.22.3: {} + zod@3.22.4: {} + zod@3.25.76: {} - zod@4.3.6: - optional: true + zod@4.3.6: {} + + zustand@5.0.0(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + optionalDependencies: + '@types/react': 18.3.28 + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + + zustand@5.0.14(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + optionalDependencies: + '@types/react': 18.3.28 + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + + zustand@5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + optionalDependencies: + '@types/react': 18.3.28 + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) From bd2ab1b4407c9befad36310b0e7ddb239c9fffa5 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 6 Jul 2026 17:36:06 +0530 Subject: [PATCH 17/79] ci(agentconnect-ui): deploy from the staging branch --- .github/workflows/deploy-agentconnect-ui.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-agentconnect-ui.yml b/.github/workflows/deploy-agentconnect-ui.yml index e6abd6c..da4c7be 100644 --- a/.github/workflows/deploy-agentconnect-ui.yml +++ b/.github/workflows/deploy-agentconnect-ui.yml @@ -1,7 +1,7 @@ name: Deploy agentconnect UI to Cloudflare # Builds the funding/dashboard SPA and deploys it to the agentconnect domain -# (replacing the retired connector-ui): merge to `staging-branch` -> staging, +# (replacing the retired connector-ui): merge to `staging` -> staging, # merge to `main` -> production. wrangler runs via npx (not a workspace dep, to # respect the repo trust policy); the `[assets]` worker serves the built SPA and # the wrangler.toml v2 migration drops connector-ui's SessionRelay Durable Object. @@ -11,7 +11,7 @@ on: push: branches: - main - - staging-branch + - staging paths: - 'packages/agentconnect-ui/**' - '.github/workflows/deploy-agentconnect-ui.yml' @@ -31,7 +31,7 @@ permissions: jobs: deploy-staging: name: Deploy (staging) - if: github.ref == 'refs/heads/staging-branch' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'staging') + if: github.ref == 'refs/heads/staging' || (github.event_name == 'workflow_dispatch' && inputs.environment == 'staging') runs-on: ubuntu-latest environment: staging defaults: From a980498e0ed79ace18f921c3b86a813de73d5c7c Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 6 Jul 2026 17:50:40 +0530 Subject: [PATCH 18/79] feat(agentconnect-ui): replicate full dashboard content from connector-ui --- packages/agentconnect-ui/src/App.tsx | 252 ++++++++++++++++++++++++++- 1 file changed, 250 insertions(+), 2 deletions(-) diff --git a/packages/agentconnect-ui/src/App.tsx b/packages/agentconnect-ui/src/App.tsx index 9f3fd01..2ff5c80 100644 --- a/packages/agentconnect-ui/src/App.tsx +++ b/packages/agentconnect-ui/src/App.tsx @@ -1,6 +1,17 @@ import './App.css'; -import { AlertCircle, Plus } from 'lucide-react'; +import type { ElementType } from 'react'; + +import { + AlertCircle, + ArrowLeftRight, + BarChart2, + Copy, + Plus, + Target, + TrendingUp, + Twitter +} from 'lucide-react'; import { useEffect, useMemo, useState } from 'react'; import { FundingScreen } from './components/FundingScreen.js'; @@ -9,6 +20,76 @@ import { fetchTotalUsdBalance } from './indexer'; type View = 'fund' | 'dashboard'; const WALLET_URL = 'https://wallet.polygon.technology'; +const SKILL_URL = 'https://agentconnect.polygon.technology/SKILL.md'; + +const AGENTS: { + id: string; + label: string; + color: string; + terminalPrefix: string; + buildCommand: (display: string) => string; +}[] = [ + { + id: 'claude', + label: 'Claude', + color: '#D97706', + terminalPrefix: 'claude', + buildCommand: (display) => `claude "Read ${SKILL_URL} and ${display}"` + }, + { + id: 'codex', + label: 'Codex', + color: '#10A37F', + terminalPrefix: 'codex', + buildCommand: (display) => `codex "Read ${SKILL_URL} and ${display}"` + }, + { + id: 'openclaw', + label: 'Openclaw', + color: '#8B5CF6', + terminalPrefix: 'clawhub', + buildCommand: (display) => `npx clawhub@latest run "Read ${SKILL_URL} and ${display}"` + }, + { + id: 'hermes', + label: 'Hermes', + color: '#EC4899', + terminalPrefix: 'hermes', + buildCommand: (display) => `hermes "Read ${SKILL_URL} and ${display}"` + } +]; + +const USE_CASES: { label: string; display: string; icon: ElementType }[] = [ + { + label: 'Read Twitter/X profiles & tweets', + display: + 'Use x402 to read a Twitter/X profile and recent tweets. Get follower counts, recent tweets, and engagement metrics.', + icon: Twitter + }, + { + label: 'Score a sales lead', + display: + 'Score any company domain as a B2B sales lead. Get a 0–100 score and A–F grade from various signals.', + icon: BarChart2 + }, + { + label: 'Make a bet on polymarket', + display: 'Make a bet on a Polymarket market. Get the latest market prices and outcomes.', + icon: Target + }, + { + label: 'Bridge assets cross-chain', + display: + 'Bridge some USDC from Polygon to Base using the cheapest available route. Confirm the arrival and report the final balance on both chains.', + icon: ArrowLeftRight + }, + { + label: 'Automate yield strategies', + display: + 'Deposit USDC into the highest-yield active lending vault on Polygon and report the APY and pool address. Then set up a daily cron job to automatically re-evaluate and deposit into the best vault each morning.', + icon: TrendingUp + } +]; // Shared logo header used on every screen. function LogoBadge() { @@ -22,7 +103,7 @@ function LogoBadge() { ); } -// ── Minimal dashboard: short address, add funds, best-effort USD balance ── +// ── Dashboard: balance header, use-case picker + terminal, learn-more cards ── function Dashboard({ walletAddress, chainId, @@ -33,6 +114,9 @@ function Dashboard({ onAddFunds: () => void; }) { const [totalUsd, setTotalUsd] = useState(null); + const [selectedUseCase, setSelectedUseCase] = useState(0); + const [selectedAgent, setSelectedAgent] = useState('claude'); + const [copied, setCopied] = useState(false); useEffect(() => { let active = true; @@ -53,6 +137,7 @@ function Dashboard({ return (
+ {/* Nav */}
); From 470afe320bbdccf4c8e77204beeeecb819565947 Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 6 Jul 2026 19:09:11 +0530 Subject: [PATCH 19/79] feat(agentconnect-ui): section nav bar (DeFi/Polymarket, Services, Search) + agentic-services card --- packages/agentconnect-ui/src/App.tsx | 173 +++++++++++++++++++-------- 1 file changed, 126 insertions(+), 47 deletions(-) diff --git a/packages/agentconnect-ui/src/App.tsx b/packages/agentconnect-ui/src/App.tsx index 2ff5c80..a21540c 100644 --- a/packages/agentconnect-ui/src/App.tsx +++ b/packages/agentconnect-ui/src/App.tsx @@ -5,12 +5,20 @@ import type { ElementType } from 'react'; import { AlertCircle, ArrowLeftRight, - BarChart2, Copy, + Cpu, + Database, + FileText, + Globe, + Inbox, + Newspaper, Plus, + Search, + Send, + Server, + Sparkles, Target, - TrendingUp, - Twitter + TrendingUp } from 'lucide-react'; import { useEffect, useMemo, useState } from 'react'; @@ -59,35 +67,95 @@ const AGENTS: { } ]; -const USE_CASES: { label: string; display: string; icon: ElementType }[] = [ +type UseCase = { label: string; display: string; icon: ElementType }; +const SECTIONS: { name: string; items: UseCase[] }[] = [ { - label: 'Read Twitter/X profiles & tweets', - display: - 'Use x402 to read a Twitter/X profile and recent tweets. Get follower counts, recent tweets, and engagement metrics.', - icon: Twitter + name: 'DeFi & Polymarket', + items: [ + { + label: 'Make a bet on Polymarket', + display: 'Make a bet on a Polymarket market. Get the latest market prices and outcomes.', + icon: Target + }, + { + label: 'Bridge assets cross-chain', + display: + 'Bridge some USDC from Polygon to Base using the cheapest available route. Confirm the arrival and report the final balance on both chains.', + icon: ArrowLeftRight + }, + { + label: 'Automate yield strategies', + display: + 'Deposit USDC into the highest-yield active lending vault on Polygon and report the APY and pool address. Then set up a daily cron job to automatically re-evaluate and deposit into the best vault each morning.', + icon: TrendingUp + } + ] }, { - label: 'Score a sales lead', - display: - 'Score any company domain as a B2B sales lead. Get a 0–100 score and A–F grade from various signals.', - icon: BarChart2 + name: 'Services', + items: [ + { + label: 'Query any chain (QuickNode)', + display: + 'Use QuickNode RPC over x402 to query on-chain data across 60+ chains with no API key — get the latest Polygon block number and an account balance.', + icon: Server + }, + { + label: 'Wallet & token analytics (Allium)', + display: + "Use Allium over x402 to pull a wallet's balances, PnL, transaction history, and token prices across chains.", + icon: Database + }, + { + label: 'Give your agent an inbox (AgentMail)', + display: + 'Create an email inbox for your agent with AgentMail over x402, then send, receive, and read messages.', + icon: Inbox + }, + { + label: 'Run LLM inference (Llama)', + display: + 'Run inference over x402 with Meta Llama on NVIDIA NIM — Llama 3.3 70B for chat and Llama 3.2 90B Vision for images.', + icon: Cpu + }, + { + label: 'Send an email (Resend)', + display: 'Send a transactional email programmatically via Resend over x402.', + icon: Send + } + ] }, { - label: 'Make a bet on polymarket', - display: 'Make a bet on a Polymarket market. Get the latest market prices and outcomes.', - icon: Target - }, - { - label: 'Bridge assets cross-chain', - display: - 'Bridge some USDC from Polygon to Base using the cheapest available route. Confirm the arrival and report the final balance on both chains.', - icon: ArrowLeftRight - }, - { - label: 'Automate yield strategies', - display: - 'Deposit USDC into the highest-yield active lending vault on Polygon and report the APY and pool address. Then set up a daily cron job to automatically re-evaluate and deposit into the best vault each morning.', - icon: TrendingUp + name: 'Search', + items: [ + { + label: 'Scrape a webpage (Firecrawl)', + display: 'Scrape any webpage with Firecrawl over x402 and get clean, LLM-ready markdown.', + icon: FileText + }, + { + label: 'Google search (SearchAPI)', + display: 'Run a Google search via SearchAPI over x402 and get structured JSON results.', + icon: Search + }, + { + label: 'Cloud browser (Browserbase)', + display: + 'Spin up a cloud browser session with Browserbase over x402 for web automation and agent browsing.', + icon: Globe + }, + { + label: 'AI web search (Exa)', + display: + 'Run an AI-native web search with Exa over x402 to get contextually relevant sources and highlights.', + icon: Sparkles + }, + { + label: 'Top headlines (NewsAPI)', + display: 'Get top news headlines by country, category, or keyword via NewsAPI over x402.', + icon: Newspaper + } + ] } ]; @@ -114,10 +182,13 @@ function Dashboard({ onAddFunds: () => void; }) { const [totalUsd, setTotalUsd] = useState(null); + const [selectedSection, setSelectedSection] = useState(0); const [selectedUseCase, setSelectedUseCase] = useState(0); const [selectedAgent, setSelectedAgent] = useState('claude'); const [copied, setCopied] = useState(false); + const items = SECTIONS[selectedSection].items; + useEffect(() => { let active = true; setTotalUsd(null); @@ -188,12 +259,32 @@ function Dashboard({
+ {/* Section nav bar */} +
+ {SECTIONS.map((section, i) => ( + + ))} +
+ {/* Use cases + terminal */}
{/* Left: use cases */}
- {USE_CASES.map((uc, i) => { + {items.map((uc, i) => { const Icon = uc.icon; return (
{/* Right: terminal */} @@ -240,7 +314,7 @@ function Dashboard({ {AGENTS.find((a) => a.id === selectedAgent)?.terminalPrefix} {' "'} - {USE_CASES[selectedUseCase].display}" + {items[selectedUseCase].display}"
{/* Agent selector chips */} @@ -276,7 +350,7 @@ function Dashboard({ onClick={() => { const agent = AGENTS.find((a) => a.id === selectedAgent)!; void navigator.clipboard - .writeText(agent.buildCommand(USE_CASES[selectedUseCase].display)) + .writeText(agent.buildCommand(items[selectedUseCase].display)) .then(() => { setCopied(true); setTimeout(() => setCopied(false), 2000); @@ -304,6 +378,11 @@ function Dashboard({ title: 'Docs', desc: 'Full CLI reference, quickstart guide, and architecture docs to get your agent onchain fast.', href: 'https://docs.polygon.technology/payment-services/agentic-payments/polygon-agent-cli' + }, + { + title: 'Agentic Services', + desc: 'Browse the x402 services catalog your agent can pay for — RPC, on-chain data, search, inference, and email.', + href: 'https://agentic-services.polygon.technology/discover' } ].map((card) => ( Date: Mon, 6 Jul 2026 19:22:04 +0530 Subject: [PATCH 20/79] fix(agentconnect-ui): point Services/Search copied prompts at agentic-services skill --- packages/agentconnect-ui/src/App.tsx | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/agentconnect-ui/src/App.tsx b/packages/agentconnect-ui/src/App.tsx index a21540c..dacde45 100644 --- a/packages/agentconnect-ui/src/App.tsx +++ b/packages/agentconnect-ui/src/App.tsx @@ -29,48 +29,52 @@ type View = 'fund' | 'dashboard'; const WALLET_URL = 'https://wallet.polygon.technology'; const SKILL_URL = 'https://agentconnect.polygon.technology/SKILL.md'; +// x402 services catalog skill — Services/Search prompts point the agent here so it +// knows which service routes to call (not the agentconnect/CLI skill). +const AGENTIC_SERVICES_SKILL_URL = 'https://agentic-services.polygon.technology/SKILL.md'; const AGENTS: { id: string; label: string; color: string; terminalPrefix: string; - buildCommand: (display: string) => string; + buildCommand: (display: string, skillUrl: string) => string; }[] = [ { id: 'claude', label: 'Claude', color: '#D97706', terminalPrefix: 'claude', - buildCommand: (display) => `claude "Read ${SKILL_URL} and ${display}"` + buildCommand: (display, skillUrl) => `claude "Read ${skillUrl} and ${display}"` }, { id: 'codex', label: 'Codex', color: '#10A37F', terminalPrefix: 'codex', - buildCommand: (display) => `codex "Read ${SKILL_URL} and ${display}"` + buildCommand: (display, skillUrl) => `codex "Read ${skillUrl} and ${display}"` }, { id: 'openclaw', label: 'Openclaw', color: '#8B5CF6', terminalPrefix: 'clawhub', - buildCommand: (display) => `npx clawhub@latest run "Read ${SKILL_URL} and ${display}"` + buildCommand: (display, skillUrl) => `npx clawhub@latest run "Read ${skillUrl} and ${display}"` }, { id: 'hermes', label: 'Hermes', color: '#EC4899', terminalPrefix: 'hermes', - buildCommand: (display) => `hermes "Read ${SKILL_URL} and ${display}"` + buildCommand: (display, skillUrl) => `hermes "Read ${skillUrl} and ${display}"` } ]; type UseCase = { label: string; display: string; icon: ElementType }; -const SECTIONS: { name: string; items: UseCase[] }[] = [ +const SECTIONS: { name: string; skillUrl: string; items: UseCase[] }[] = [ { name: 'DeFi & Polymarket', + skillUrl: SKILL_URL, items: [ { label: 'Make a bet on Polymarket', @@ -93,6 +97,7 @@ const SECTIONS: { name: string; items: UseCase[] }[] = [ }, { name: 'Services', + skillUrl: AGENTIC_SERVICES_SKILL_URL, items: [ { label: 'Query any chain (QuickNode)', @@ -127,6 +132,7 @@ const SECTIONS: { name: string; items: UseCase[] }[] = [ }, { name: 'Search', + skillUrl: AGENTIC_SERVICES_SKILL_URL, items: [ { label: 'Scrape a webpage (Firecrawl)', @@ -350,7 +356,12 @@ function Dashboard({ onClick={() => { const agent = AGENTS.find((a) => a.id === selectedAgent)!; void navigator.clipboard - .writeText(agent.buildCommand(items[selectedUseCase].display)) + .writeText( + agent.buildCommand( + items[selectedUseCase].display, + SECTIONS[selectedSection].skillUrl + ) + ) .then(() => { setCopied(true); setTimeout(() => setCopied(false), 2000); From 5cd2f4bfda9ac45320fc5ae496c70414810fb80f Mon Sep 17 00:00:00 2001 From: AkshatGada Date: Mon, 6 Jul 2026 21:13:17 +0530 Subject: [PATCH 21/79] refactor(agentconnect-ui): drop provider names from labels, remove em dashes from content --- packages/agentconnect-ui/src/App.tsx | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/agentconnect-ui/src/App.tsx b/packages/agentconnect-ui/src/App.tsx index dacde45..8ea08f1 100644 --- a/packages/agentconnect-ui/src/App.tsx +++ b/packages/agentconnect-ui/src/App.tsx @@ -29,7 +29,7 @@ type View = 'fund' | 'dashboard'; const WALLET_URL = 'https://wallet.polygon.technology'; const SKILL_URL = 'https://agentconnect.polygon.technology/SKILL.md'; -// x402 services catalog skill — Services/Search prompts point the agent here so it +// x402 services catalog skill: Services/Search prompts point the agent here so it // knows which service routes to call (not the agentconnect/CLI skill). const AGENTIC_SERVICES_SKILL_URL = 'https://agentic-services.polygon.technology/SKILL.md'; @@ -100,31 +100,31 @@ const SECTIONS: { name: string; skillUrl: string; items: UseCase[] }[] = [ skillUrl: AGENTIC_SERVICES_SKILL_URL, items: [ { - label: 'Query any chain (QuickNode)', + label: 'Query any chain', display: - 'Use QuickNode RPC over x402 to query on-chain data across 60+ chains with no API key — get the latest Polygon block number and an account balance.', + 'Use QuickNode RPC over x402 to query on-chain data across 60+ chains with no API key. Get the latest Polygon block number and an account balance.', icon: Server }, { - label: 'Wallet & token analytics (Allium)', + label: 'Wallet & token analytics', display: "Use Allium over x402 to pull a wallet's balances, PnL, transaction history, and token prices across chains.", icon: Database }, { - label: 'Give your agent an inbox (AgentMail)', + label: 'Give your agent an inbox', display: 'Create an email inbox for your agent with AgentMail over x402, then send, receive, and read messages.', icon: Inbox }, { - label: 'Run LLM inference (Llama)', + label: 'Run LLM inference', display: - 'Run inference over x402 with Meta Llama on NVIDIA NIM — Llama 3.3 70B for chat and Llama 3.2 90B Vision for images.', + 'Run inference over x402 with Meta Llama on NVIDIA NIM: Llama 3.3 70B for chat and Llama 3.2 90B Vision for images.', icon: Cpu }, { - label: 'Send an email (Resend)', + label: 'Send an email', display: 'Send a transactional email programmatically via Resend over x402.', icon: Send } @@ -135,29 +135,29 @@ const SECTIONS: { name: string; skillUrl: string; items: UseCase[] }[] = [ skillUrl: AGENTIC_SERVICES_SKILL_URL, items: [ { - label: 'Scrape a webpage (Firecrawl)', + label: 'Scrape a webpage', display: 'Scrape any webpage with Firecrawl over x402 and get clean, LLM-ready markdown.', icon: FileText }, { - label: 'Google search (SearchAPI)', + label: 'Google search', display: 'Run a Google search via SearchAPI over x402 and get structured JSON results.', icon: Search }, { - label: 'Cloud browser (Browserbase)', + label: 'Cloud browser', display: 'Spin up a cloud browser session with Browserbase over x402 for web automation and agent browsing.', icon: Globe }, { - label: 'AI web search (Exa)', + label: 'AI web search', display: 'Run an AI-native web search with Exa over x402 to get contextually relevant sources and highlights.', icon: Sparkles }, { - label: 'Top headlines (NewsAPI)', + label: 'Top headlines', display: 'Get top news headlines by country, category, or keyword via NewsAPI over x402.', icon: Newspaper } @@ -234,7 +234,7 @@ function Dashboard({
{totalUsd === null ? ( - $— + $0.00 ) : ( `$${totalUsd.toLocaleString('en-US', { minimumFractionDigits: 2, @@ -392,7 +392,7 @@ function Dashboard({ }, { title: 'Agentic Services', - desc: 'Browse the x402 services catalog your agent can pay for — RPC, on-chain data, search, inference, and email.', + desc: 'Browse the x402 services catalog your agent can pay for: RPC, on-chain data, search, inference, and email.', href: 'https://agentic-services.polygon.technology/discover' } ].map((card) => ( From 8a4f3b5866eb6c3de998917514880345119cc69d Mon Sep 17 00:00:00 2001 From: James Lawton Date: Mon, 13 Jul 2026 10:58:48 +0100 Subject: [PATCH 22/79] docs: browser login via agentconnect-ui design spec --- .../specs/2026-07-13-browser-login-design.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 docs/superpowers/specs/2026-07-13-browser-login-design.md diff --git a/docs/superpowers/specs/2026-07-13-browser-login-design.md b/docs/superpowers/specs/2026-07-13-browser-login-design.md new file mode 100644 index 0000000..383260c --- /dev/null +++ b/docs/superpowers/specs/2026-07-13-browser-login-design.md @@ -0,0 +1,113 @@ +# Browser login via agentconnect-ui + +Date: 2026-07-13 +Status: approved + +## Problem + +`polygon-agent wallet login` prints a raw Google sign-in URL. There is no branding, no method choice, and the local/remote split leaks into the UX (`--remote` plus a relay URL for headless hosts). The Sequence SDK supports email OTP auth, but the CLI never wired it up. + +## Decision summary + +- A branded login page on agentconnect-ui becomes the default `wallet login` experience for all logins, local and remote alike. +- The user picks Google or email on the page. Email OTP entry happens on the page, not in the terminal. +- After a successful login the page shows a success state that points the user to wallet.polygon.technology. +- Architecture is device-flow pairing (approach A): the CLI keeps all key material and drives the SDK auth locally; the page is only an input surface; the relay carries a short-lived two-way session. + +Rejected alternatives: a thin wrapper page (cannot do email on the page) and browser-owned auth with session handoff (would move credential material through the relay, and the SDK does not support re-binding a session to another signer). + +## Architecture + +Three components, all existing packages: + +1. `packages/oidc-relay`: gains a second Durable Object class, `LoginSession`, alongside the untouched `OidcHandoff`. Carries the pairing session between browser and CLI. +2. `packages/agentconnect-ui`: gains a `/login` SPA route. Session id arrives in the URL fragment so it never reaches server logs. +3. `packages/polygon-agent-cli`: `handleLogin` becomes an action loop that polls the relay for user input and drives the SDK locally. + +The PKCE verifier, the credential signer key, and the wallet session never leave the CLI process. This matches the existing `--remote` security model. + +## Relay protocol + +New routes under `/api/login`, backed by the `LoginSession` DO (one instance per session id). Session ids are CLI-generated, 128-bit crypto-random, base64url. Validation mirrors the existing `validState` guard. TTL is 10 minutes via the alarm, same as `OidcHandoff`. + +| Route | Caller | Purpose | +|---|---|---| +| `POST /api/login/register {session}` | CLI | Arm a session | +| `POST /api/login/action {session, action}` | Browser | Send user input | +| `GET /api/login/next-action?session=` | CLI | Poll for the oldest unconsumed action (one-time read per action) | +| `POST /api/login/status {session, status, ...}` | CLI | Publish current state | +| `GET /api/login/status?session=` | Browser | Poll state (repeat-readable, survives page refresh) | + +Actions: `{type:'google'}`, `{type:'email', email}`, `{type:'otp', code}`, `{type:'cancel'}`. + +Statuses: `awaiting-method`, `auth-url` (+url), `otp-sent`, `otp-invalid` (+attemptsLeft), `done` (+walletAddress), `error` (+message). + +One-time action reads prevent OTP replay. The final `done` or `error` status stays readable until TTL so a refreshed page still resolves. + +### OidcHandoff change + +`POST /api/oidc/register` accepts an optional `returnTo` URL. After capturing `code`+`state`, the callback 302s the browser to `returnTo` (the branded login page) instead of serving the bare `DONE_HTML`. When `returnTo` is absent, behavior is unchanged, which keeps the `--local` fallback and any old CLI versions working. `returnTo` is validated as an https URL on an allowlisted host (the agentconnect UI domains) before being stored. + +The Sequence-allowlisted redirect URI (`/api/oidc/cb`) is untouched, so no Google client or Sequence relay change is needed. + +## Flows + +### Google + +1. CLI registers session S, prints and opens `https://agentconnect.polygon.technology/login#S`. +2. Page polls status (`awaiting-method`), user clicks Continue with Google, page posts `{type:'google'}`. +3. CLI sees the action, calls `startOidcRedirectAuth` pointed at the relay `/api/oidc/cb`, registers the OidcHandoff with `returnTo = login#S`, publishes `auth-url`. +4. Page redirects to the auth URL. Google, then the Sequence relay, then our relay callback captures code+state and 302s back to the login page. +5. CLI polls the existing `/api/oidc/poll`, calls `completeOidcRedirectAuth`, saves the wallet pointer (`loginMethod: 'google'`), publishes `done` with the wallet address. +6. Page shows success and links to wallet.polygon.technology. + +### Email + +1. Same session setup. User enters their email address, page posts `{type:'email', email}`. +2. CLI calls `startEmailAuth({email})`, publishes `otp-sent`. +3. Page shows the code input. User types the code from their inbox, page posts `{type:'otp', code}`. +4. CLI calls `completeEmailAuth({code})`. Bad code: publish `otp-invalid` with attempts remaining, page re-prompts. Success: save pointer (`loginMethod: 'email'`), publish `done`. + +## CLI changes + +- `wallet login` defaults to the browser flow. It requires a relay and UI base URL; production values ship as baked-in defaults, overridable via `POLYGON_AGENT_OIDC_RELAY` (existing) and a new `POLYGON_AGENT_LOGIN_UI`. +- `--local` preserves today's loopback flow (raw Google URL, localhost callback). It is also the suggested remedy when session registration fails because the relay is unreachable; the CLI fails fast with that hint rather than auto-falling back. +- `--remote` becomes a deprecated no-op with a notice, since the default flow already works remotely. `--relay-url` still overrides the relay. +- `--provider` only applies to `--local`; in the browser flow the method choice lives on the page. +- Post-login funding: the CLI no longer auto-opens the funding URL when login came through the page (the success page directs the user onward). It still prints the funding panel; `--no-fund` still suppresses it. The `--local` path keeps today's behavior. +- The action loop is factored into a function that takes a relay client and an OMS client so it can be unit-tested with fakes. + +## Security notes + +- Key material: PKCE verifier and credential signer key stay in the CLI process, unchanged from today. +- The email address and the OTP transit the relay over TLS, are one-time read, live at most 10 minutes, and are useless without the CLI's in-flight SDK auth attempt. +- Session id is unguessable (128-bit) and carried in the URL fragment. +- `returnTo` is host-allowlisted to prevent open-redirect abuse of the callback. +- Sessions are purged on completion; actions cannot be replayed. + +## Error handling + +- Session TTL expiry: CLI times out with the same message shape as today; the page shows a link-expired state telling the user to re-run `polygon-agent wallet login`. +- Provider errors at Google flow through the existing error capture, surface as CLI errors, and are published as `status: error` for the page. +- OTP retry: bounded by the SDK's attempt limit. `attemptsLeft` is optional in the `otp-invalid` status; the page shows it when the SDK reports it, and shows a terminal error state once attempts are exhausted. +- Cancel on the page ends the CLI command with a non-zero exit and a clear message. + +## Deploy prerequisites + +- Enable the relay's production custom domain (currently commented out in `packages/oidc-relay/wrangler.toml`) and have Sequence allowlist its `/api/oidc/cb` as a redirect target (same allowlist add as was done for staging). +- Deploy the `/login` route to agentconnect staging and production. +- Ship the CLI with the production relay and UI URLs as defaults. + +## Testing + +- Relay: handler-level tests for the `LoginSession` DO (register, action queue one-time reads, status repeat reads, TTL purge, invalid session ids), mirroring how `OidcHandoff` is covered. +- CLI: unit tests of the action loop with fake relay and OMS clients (google happy path, email happy path, bad OTP retry, cancel, timeout, relay unreachable). +- UI: component-level tests of the login state machine (method choice, OTP retry, expired, error, success). +- End to end: manual run against agentconnect.staging.polygon.technology and the staging relay before flipping the CLI default. + +## Out of scope + +- Deleting the legacy loopback path (kept as `--local`). +- Any change to wallet.polygon.technology itself; the success page only links to it. +- Additional OIDC providers; the page offers Google and email only. +- Renaming the oidc-relay package, even though it now carries more than OIDC. From 432139818f5672ec2b7102e30d7f7331aba3306b Mon Sep 17 00:00:00 2001 From: James Lawton Date: Mon, 13 Jul 2026 11:35:50 +0100 Subject: [PATCH 23/79] docs: browser login implementation plan --- .../plans/2026-07-13-browser-login.md | 1997 +++++++++++++++++ 1 file changed, 1997 insertions(+) create mode 100644 docs/superpowers/plans/2026-07-13-browser-login.md diff --git a/docs/superpowers/plans/2026-07-13-browser-login.md b/docs/superpowers/plans/2026-07-13-browser-login.md new file mode 100644 index 0000000..1f5c37c --- /dev/null +++ b/docs/superpowers/plans/2026-07-13-browser-login.md @@ -0,0 +1,1997 @@ +# Browser Login via agentconnect-ui Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Make `polygon-agent wallet login` open a branded login page on agentconnect-ui where the user picks Google or email; the CLI drives the SDK auth locally and a relay session carries user input from the page to the CLI. + +**Architecture:** Device-flow pairing. The CLI generates a random session id, registers it with the oidc-relay worker (new `LoginSession` Durable Object), and opens `https://agentconnect.polygon.technology/login#`. The page posts user actions (google / email+address / otp code / cancel) to the relay; the CLI polls for them, runs `startOidcRedirectAuth`/`completeOidcRedirectAuth` or `startEmailAuth`/`completeEmailAuth` locally, and publishes status back for the page to render. Keys and the PKCE verifier never leave the CLI. Spec: `docs/superpowers/specs/2026-07-13-browser-login-design.md`. + +**Tech Stack:** TypeScript, Cloudflare Workers + Durable Objects (oidc-relay), React 18 + Vite (agentconnect-ui), yargs CLI, `@0xsequence/typescript-sdk` 0.1.0-alpha.4, vitest (new, per package). + +## Global Constraints + +- Dev environment is Node 24 (`.nvmrc`); published CLI supports Node 20+, TS compiled to es2023. +- Run the CLI from source with `tsx packages/polygon-agent-cli/src/index.ts` (never `node` directly on `.ts`). +- Conventional commit messages (`feat:`, `fix:`, `docs:`, `test:` with package scope). Never add a `Co-Authored-By` trailer. +- The pre-commit hook runs `pnpm -r run typecheck`; every commit must typecheck across all packages. +- No em dashes in any user-facing copy (UI text, CLI messages, docs). Sentence case for headings and labels. +- The canonical skill file is `packages/polygon-agent-cli/skills/SKILL.md`; never edit the root or connector-ui copies. +- Session ids and OIDC state are base64url; validate before using as Durable Object names. +- Vitest is new to this repo: each package that gains tests adds `"test": "vitest run"` and a `vitest` devDependency; the root `test` script (`pnpm -r --if-present run test`) picks them up automatically. + +## Protocol reference (used by Tasks 1, 4, 6) + +These two types are duplicated verbatim in each package (no shared workspace package exists; `packages/shared` is untracked dist-only debris, do not use it): + +```ts +export type LoginAction = + | { type: 'google' } + | { type: 'email'; email: string } + | { type: 'otp'; code: string } + | { type: 'cancel' }; + +export type LoginStatus = + | { status: 'awaiting-method' } + | { status: 'auth-url'; url: string } + | { status: 'otp-sent' } + | { status: 'otp-invalid'; attemptsLeft?: number } + | { status: 'done'; walletAddress: string } + | { status: 'error'; message: string }; +``` + +HTTP surface added to the relay (all JSON, CORS-wrapped like the existing `/api/oidc` routes): + +| Route | Caller | Behavior | +|---|---|---| +| `POST /api/login/register {session}` | CLI | Arm the session, status becomes `awaiting-method`, 10 min TTL alarm. 204. | +| `POST /api/login/action {session, action}` | Browser | Store as the single pending action (latest wins). 204, or 404-shaped `{error:'expired'}` / `{error:'finished'}` JSON with status 410. | +| `GET /api/login/next-action?session=` | CLI | `{state:'action', action}` (one-time read), `{state:'pending'}`, or `{state:'expired'}`. | +| `POST /api/login/status {session, status...}` | CLI | Store status blob (repeat-readable). 204. | +| `GET /api/login/status?session=` | Browser | The stored `LoginStatus`, or `{status:'expired'}`. | + +--- + +### Task 1: Relay LoginSession core logic with tests + +**Files:** +- Create: `packages/oidc-relay/src/login-session.ts` +- Test: `packages/oidc-relay/src/login-session.test.ts` +- Modify: `packages/oidc-relay/package.json` (vitest devDep + test script) + +**Interfaces:** +- Consumes: nothing (pure logic over a storage interface). +- Produces: `LoginSessionCore` class with `register()`, `submitAction(action): Promise<{ok: boolean; error?: 'expired'|'finished'}>`, `nextAction(): Promise<{state:'expired'}|{state:'pending'}|{state:'action'; action: LoginAction}>`, `setStatus(status)`, `getStatus(): Promise`; `SessionStore` interface; `LoginAction`/`LoginStatus` types (exact shapes above). Task 2 wraps this in the Durable Object. + +- [ ] **Step 1: Add vitest to the oidc-relay package** + +In `packages/oidc-relay/package.json`, add to `scripts`: + +```json +"test": "vitest run" +``` + +and to `devDependencies`: + +```json +"vitest": "^3.0.0" +``` + +Run: `pnpm install` + +- [ ] **Step 2: Write the failing tests** + +Create `packages/oidc-relay/src/login-session.test.ts`: + +```ts +import { describe, expect, it } from 'vitest'; + +import { LoginSessionCore, type SessionStore } from './login-session.ts'; + +function memoryStore(): SessionStore { + const map = new Map(); + return { + get: async (key: string) => map.get(key) as T | undefined, + put: async (entries) => { + for (const [k, v] of Object.entries(entries)) map.set(k, v); + }, + delete: async (key) => map.delete(key), + deleteAll: async () => map.clear() + }; +} + +describe('LoginSessionCore', () => { + it('reports expired before register', async () => { + const core = new LoginSessionCore(memoryStore()); + expect(await core.getStatus()).toEqual({ status: 'expired' }); + expect(await core.nextAction()).toEqual({ state: 'expired' }); + expect(await core.submitAction({ type: 'google' })).toEqual({ ok: false, error: 'expired' }); + }); + + it('register arms the session with awaiting-method', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + expect(await core.getStatus()).toEqual({ status: 'awaiting-method' }); + expect(await core.nextAction()).toEqual({ state: 'pending' }); + }); + + it('actions are one-time reads', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.submitAction({ type: 'email', email: 'a@b.co' }); + expect(await core.nextAction()).toEqual({ + state: 'action', + action: { type: 'email', email: 'a@b.co' } + }); + expect(await core.nextAction()).toEqual({ state: 'pending' }); + }); + + it('a newer action replaces an unconsumed one (latest wins)', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.submitAction({ type: 'google' }); + await core.submitAction({ type: 'cancel' }); + expect(await core.nextAction()).toEqual({ state: 'action', action: { type: 'cancel' } }); + }); + + it('status round-trips and is repeat-readable', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.setStatus({ status: 'otp-sent' }); + expect(await core.getStatus()).toEqual({ status: 'otp-sent' }); + expect(await core.getStatus()).toEqual({ status: 'otp-sent' }); + }); + + it('rejects actions after a terminal status', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.setStatus({ status: 'done', walletAddress: '0xabc' }); + expect(await core.submitAction({ type: 'otp', code: '123456' })).toEqual({ + ok: false, + error: 'finished' + }); + expect(await core.getStatus()).toEqual({ status: 'done', walletAddress: '0xabc' }); + }); + + it('deleteAll expires everything (alarm behavior)', async () => { + const store = memoryStore(); + const core = new LoginSessionCore(store); + await core.register(); + await store.deleteAll(); + expect(await core.getStatus()).toEqual({ status: 'expired' }); + }); +}); +``` + +- [ ] **Step 3: Run tests to verify they fail** + +Run: `pnpm --filter @polygonlabs/oidc-relay test` +Expected: FAIL, cannot resolve `./login-session.ts`. + +- [ ] **Step 4: Implement the core** + +Create `packages/oidc-relay/src/login-session.ts`: + +```ts +// Pairing-session logic for the browser login flow. Pure logic over a minimal +// storage interface so it is unit-testable without the Workers runtime; the +// Durable Object wrapper lives in relay.ts wiring (Task 2). +// +// One pending action slot, latest wins: the page waits for a status change +// before offering the next input, so at most one action is meaningfully in +// flight; a second submit (double click, cancel during OTP) should replace, +// not queue. Actions are one-time reads so an OTP can never be replayed. + +export type LoginAction = + | { type: 'google' } + | { type: 'email'; email: string } + | { type: 'otp'; code: string } + | { type: 'cancel' }; + +export type LoginStatus = + | { status: 'awaiting-method' } + | { status: 'auth-url'; url: string } + | { status: 'otp-sent' } + | { status: 'otp-invalid'; attemptsLeft?: number } + | { status: 'done'; walletAddress: string } + | { status: 'error'; message: string }; + +export interface SessionStore { + get(key: string): Promise; + put(entries: Record): Promise; + delete(key: string): Promise; + deleteAll(): Promise; +} + +export class LoginSessionCore { + constructor(private readonly store: SessionStore) {} + + async register(): Promise { + await this.store.put({ armed: true, status: { status: 'awaiting-method' } }); + } + + async submitAction(action: LoginAction): Promise<{ ok: boolean; error?: 'expired' | 'finished' }> { + if (!(await this.store.get('armed'))) return { ok: false, error: 'expired' }; + const status = await this.store.get('status'); + if (status && (status.status === 'done' || status.status === 'error')) { + return { ok: false, error: 'finished' }; + } + await this.store.put({ pendingAction: action }); + return { ok: true }; + } + + async nextAction(): Promise< + { state: 'expired' } | { state: 'pending' } | { state: 'action'; action: LoginAction } + > { + if (!(await this.store.get('armed'))) return { state: 'expired' }; + const action = await this.store.get('pendingAction'); + if (!action) return { state: 'pending' }; + await this.store.delete('pendingAction'); + return { state: 'action', action }; + } + + async setStatus(status: LoginStatus): Promise { + await this.store.put({ status }); + } + + async getStatus(): Promise { + if (!(await this.store.get('armed'))) return { status: 'expired' }; + return (await this.store.get('status')) ?? { status: 'expired' }; + } +} +``` + +- [ ] **Step 5: Run tests to verify they pass** + +Run: `pnpm --filter @polygonlabs/oidc-relay test` +Expected: 7 passed. + +- [ ] **Step 6: Typecheck and commit** + +```bash +pnpm --filter @polygonlabs/oidc-relay typecheck +git add packages/oidc-relay/src/login-session.ts packages/oidc-relay/src/login-session.test.ts packages/oidc-relay/package.json pnpm-lock.yaml +git commit -m "feat(oidc-relay): LoginSession core for browser login pairing" +``` + +--- + +### Task 2: Relay LoginSession Durable Object, routes, and wrangler migration + +**Files:** +- Modify: `packages/oidc-relay/src/relay.ts` (router additions near the end; DO export) +- Modify: `packages/oidc-relay/src/login-session.ts` (append DO wrapper) +- Modify: `packages/oidc-relay/wrangler.toml` (binding + v2 migrations, all envs) + +**Interfaces:** +- Consumes: `LoginSessionCore`, `LoginAction` from Task 1; `cors`/`json` helpers already in `relay.ts`. +- Produces: the five `/api/login/*` HTTP routes exactly as in the protocol reference table. Tasks 4 and 7 call them. + +- [ ] **Step 1: Append the DO wrapper to `login-session.ts`** + +Add at the end of `packages/oidc-relay/src/login-session.ts`: + +```ts +const SESSION_TTL_MS = 10 * 60 * 1000; // matches OidcHandoff + +function doStore(storage: DurableObjectStorage): SessionStore { + return { + get: (key) => storage.get(key), + put: (entries) => storage.put(entries), + delete: (key) => storage.delete(key), + deleteAll: () => storage.deleteAll() + }; +} + +// --- Durable Object: one instance per login session id --- +export class LoginSession { + private readonly core: LoginSessionCore; + constructor(private readonly state: DurableObjectState) { + this.core = new LoginSessionCore(doStore(state.storage)); + } + + async fetch(request: Request): Promise { + const url = new URL(request.url); + const op = url.pathname; // internal path set by the router in relay.ts + + if (op === '/register') { + await this.core.register(); + await this.state.storage.setAlarm(Date.now() + SESSION_TTL_MS); + return new Response(null, { status: 204 }); + } + if (op === '/action') { + const action = (await request.json()) as LoginAction; + const result = await this.core.submitAction(action); + if (!result.ok) return Response.json({ error: result.error }, { status: 410 }); + return new Response(null, { status: 204 }); + } + if (op === '/next-action') { + return Response.json(await this.core.nextAction()); + } + if (op === '/set-status') { + await this.core.setStatus(await request.json()); + return new Response(null, { status: 204 }); + } + if (op === '/get-status') { + return Response.json(await this.core.getStatus()); + } + return new Response('not found', { status: 404 }); + } + + async alarm(): Promise { + await this.state.storage.deleteAll(); + } +} +``` + +- [ ] **Step 2: Route `/api/login/*` in `relay.ts`** + +In `packages/oidc-relay/src/relay.ts`: + +Add to the imports at the top of the file: + +```ts +import { LoginSession, type LoginAction } from './login-session.ts'; + +export { LoginSession }; +``` + +Add `LOGIN_SESSION: DurableObjectNamespace;` to the `Env` interface: + +```ts +interface Env { + OIDC_RELAY: DurableObjectNamespace; + LOGIN_SESSION: DurableObjectNamespace; +} +``` + +Add validators next to `validState` (session ids are 16 to 64 base64url chars; the CLI generates 22): + +```ts +function validSession(s: string | null): s is string { + return typeof s === 'string' && /^[A-Za-z0-9_-]{16,64}$/.test(s); +} + +// Shape-check browser-submitted actions before they reach the DO. +function validAction(a: unknown): a is LoginAction { + if (typeof a !== 'object' || a === null) return false; + const t = (a as { type?: unknown }).type; + if (t === 'google' || t === 'cancel') return true; + if (t === 'email') { + const email = (a as { email?: unknown }).email; + return typeof email === 'string' && email.length >= 3 && email.length <= 320 && email.includes('@'); + } + if (t === 'otp') { + const code = (a as { code?: unknown }).code; + return typeof code === 'string' && code.length >= 4 && code.length <= 16; + } + return false; +} +``` + +Add routes inside the default export's `fetch`, before the final `return new Response('not found', ...)`: + +```ts + // --- Browser-login pairing sessions (/api/login/*) --- + const loginStub = (session: string) => + env.LOGIN_SESSION.get(env.LOGIN_SESSION.idFromName(session)); + + // POST /api/login/register { session } -> arm a pairing session (CLI). + if (request.method === 'POST' && url.pathname === '/api/login/register') { + let body: { session?: unknown }; + try { + body = (await request.json()) as { session?: unknown }; + } catch { + return json({ error: 'invalid json' }, 400); + } + const session = typeof body.session === 'string' ? body.session : null; + if (!validSession(session)) return json({ error: 'invalid session' }, 400); + await loginStub(session).fetch(new Request('https://do/register', { method: 'POST' })); + return cors(new Response(null, { status: 204 })); + } + + // POST /api/login/action { session, action } -> browser submits user input. + if (request.method === 'POST' && url.pathname === '/api/login/action') { + let body: { session?: unknown; action?: unknown }; + try { + body = (await request.json()) as { session?: unknown; action?: unknown }; + } catch { + return json({ error: 'invalid json' }, 400); + } + const session = typeof body.session === 'string' ? body.session : null; + if (!validSession(session) || !validAction(body.action)) { + return json({ error: 'invalid request' }, 400); + } + const res = await loginStub(session).fetch( + new Request('https://do/action', { + method: 'POST', + body: JSON.stringify(body.action) + }) + ); + return cors(res); + } + + // GET /api/login/next-action?session= -> CLI polls for user input (one-time read). + if (request.method === 'GET' && url.pathname === '/api/login/next-action') { + const session = url.searchParams.get('session'); + if (!validSession(session)) return json({ error: 'invalid session' }, 400); + return cors(await loginStub(session).fetch(new Request('https://do/next-action'))); + } + + // POST /api/login/status { session, ...LoginStatus } -> CLI publishes state. + if (request.method === 'POST' && url.pathname === '/api/login/status') { + let body: { session?: unknown; status?: unknown }; + try { + body = (await request.json()) as { session?: unknown; status?: unknown }; + } catch { + return json({ error: 'invalid json' }, 400); + } + const session = typeof body.session === 'string' ? body.session : null; + if (!validSession(session) || typeof body.status !== 'object' || body.status === null) { + return json({ error: 'invalid request' }, 400); + } + await loginStub(session).fetch( + new Request('https://do/set-status', { + method: 'POST', + body: JSON.stringify(body.status) + }) + ); + return cors(new Response(null, { status: 204 })); + } + + // GET /api/login/status?session= -> browser polls state (repeat-readable). + if (request.method === 'GET' && url.pathname === '/api/login/status') { + const session = url.searchParams.get('session'); + if (!validSession(session)) return json({ status: 'error', message: 'invalid session' }, 400); + return cors(await loginStub(session).fetch(new Request('https://do/get-status'))); + } +``` + +Note: the CLI sends the status blob nested under `status` and the worker forwards only that blob, so the DO stores a bare `LoginStatus`. + +- [ ] **Step 3: Add the DO binding and migration to `wrangler.toml`** + +In `packages/oidc-relay/wrangler.toml`, add a binding block after each existing `OIDC_RELAY` binding (top level, `env.staging`, `env.production`): + +```toml +[[durable_objects.bindings]] +name = "LOGIN_SESSION" +class_name = "LoginSession" +``` + +(and the `[[env.staging.durable_objects.bindings]]` / `[[env.production.durable_objects.bindings]]` equivalents), plus a v2 migration after each v1 migration block: + +```toml +[[migrations]] +tag = "v2" +new_classes = ["LoginSession"] +``` + +(again per env: `[[env.staging.migrations]]`, `[[env.production.migrations]]`). + +- [ ] **Step 4: Typecheck and verify with wrangler dev** + +```bash +pnpm --filter @polygonlabs/oidc-relay typecheck +``` + +Then start the worker locally and exercise the protocol end to end: + +```bash +cd packages/oidc-relay && npx -y wrangler@3 dev --port 8788 & +sleep 8 +S=abcdefghijklmnop123456 +curl -s -X POST localhost:8788/api/login/register -H 'content-type: application/json' -d "{\"session\":\"$S\"}" -o /dev/null -w '%{http_code}\n' # 204 +curl -s "localhost:8788/api/login/status?session=$S" # {"status":"awaiting-method"} +curl -s -X POST localhost:8788/api/login/action -H 'content-type: application/json' -d "{\"session\":\"$S\",\"action\":{\"type\":\"google\"}}" -o /dev/null -w '%{http_code}\n' # 204 +curl -s "localhost:8788/api/login/next-action?session=$S" # {"state":"action","action":{"type":"google"}} +curl -s "localhost:8788/api/login/next-action?session=$S" # {"state":"pending"} +curl -s -X POST localhost:8788/api/login/status -H 'content-type: application/json' -d "{\"session\":\"$S\",\"status\":{\"status\":\"done\",\"walletAddress\":\"0xabc\"}}" -o /dev/null -w '%{http_code}\n' # 204 +curl -s "localhost:8788/api/login/status?session=$S" # {"status":"done","walletAddress":"0xabc"} +curl -s "localhost:8788/api/login/status?session=nope" # 400 +kill %1 +``` + +Expected: outputs as annotated. + +- [ ] **Step 5: Commit** + +```bash +git add packages/oidc-relay/src/relay.ts packages/oidc-relay/src/login-session.ts packages/oidc-relay/wrangler.toml +git commit -m "feat(oidc-relay): /api/login pairing routes backed by LoginSession DO" +``` + +--- + +### Task 3: Relay OidcHandoff returnTo redirect + +**Files:** +- Modify: `packages/oidc-relay/src/relay.ts` (OidcHandoff register/capture, register route) +- Create: `packages/oidc-relay/src/return-to.ts` +- Test: `packages/oidc-relay/src/return-to.test.ts` + +**Interfaces:** +- Consumes: existing `OidcHandoff` DO and `/api/oidc/register` route. +- Produces: `POST /api/oidc/register` accepts optional `returnTo`; after capture the browser is 302-redirected there instead of getting `DONE_HTML`. `validReturnTo(raw: unknown): raw is string` exported from `return-to.ts`. Task 4's CLI client sends `returnTo`. + +- [ ] **Step 1: Write the failing validator tests** + +Create `packages/oidc-relay/src/return-to.test.ts`: + +```ts +import { describe, expect, it } from 'vitest'; + +import { validReturnTo } from './return-to.ts'; + +describe('validReturnTo', () => { + it('accepts the production and staging login pages over https', () => { + expect(validReturnTo('https://agentconnect.polygon.technology/login#abc')).toBe(true); + expect(validReturnTo('https://agentconnect.staging.polygon.technology/login#abc')).toBe(true); + }); + it('accepts localhost over http for local dev', () => { + expect(validReturnTo('http://localhost:5173/login#abc')).toBe(true); + expect(validReturnTo('http://127.0.0.1:5173/login#abc')).toBe(true); + }); + it('rejects http on non-local hosts', () => { + expect(validReturnTo('http://agentconnect.polygon.technology/login')).toBe(false); + }); + it('rejects other hosts', () => { + expect(validReturnTo('https://evil.example.com/login')).toBe(false); + expect(validReturnTo('https://agentconnect.polygon.technology.evil.com/login')).toBe(false); + }); + it('rejects non-URLs, non-strings, and oversized values', () => { + expect(validReturnTo('not a url')).toBe(false); + expect(validReturnTo(42)).toBe(false); + expect(validReturnTo(`https://agentconnect.polygon.technology/${'a'.repeat(2050)}`)).toBe(false); + }); +}); +``` + +Run: `pnpm --filter @polygonlabs/oidc-relay test` +Expected: FAIL, cannot resolve `./return-to.ts`. + +- [ ] **Step 2: Implement the validator** + +Create `packages/oidc-relay/src/return-to.ts`: + +```ts +// Host allowlist for the post-capture redirect. Prevents the OIDC callback +// from being turned into an open redirect: only our login pages (plus +// localhost for dev) may be a returnTo target. + +const ALLOWED_HOSTS = new Set([ + 'agentconnect.polygon.technology', + 'agentconnect.staging.polygon.technology', + 'localhost', + '127.0.0.1' +]); + +export function validReturnTo(raw: unknown): raw is string { + if (typeof raw !== 'string' || raw.length === 0 || raw.length > 2048) return false; + let url: URL; + try { + url = new URL(raw); + } catch { + return false; + } + const isLocal = url.hostname === 'localhost' || url.hostname === '127.0.0.1'; + if (url.protocol !== 'https:' && !(isLocal && url.protocol === 'http:')) return false; + return ALLOWED_HOSTS.has(url.hostname); +} +``` + +Run: `pnpm --filter @polygonlabs/oidc-relay test` +Expected: PASS (12 tests total with Task 1's). + +- [ ] **Step 3: Thread returnTo through OidcHandoff** + +In `packages/oidc-relay/src/relay.ts`: + +Import the validator: + +```ts +import { validReturnTo } from './return-to.ts'; +``` + +In the `OidcHandoff` DO's `/register` op, store a `returnTo` passed via query (the router forwards it; empty means absent). Replace the existing `/register` block with: + +```ts + if (op === '/register') { + const returnTo = url.searchParams.get('returnTo'); + await this.state.storage.put('status', 'pending'); + if (returnTo) await this.state.storage.put('returnTo', returnTo); + await this.state.storage.setAlarm(Date.now() + SESSION_TTL_MS); + return new Response(null, { status: 204 }); + } +``` + +In the `/capture` op, redirect to `returnTo` when present. Replace the two terminal responses (`FAIL_HTML` and `DONE_HTML`) inside `/capture` so both consult it: + +```ts + if (op === '/capture') { + const code = url.searchParams.get('code'); + const state = url.searchParams.get('state'); + const error = url.searchParams.get('error'); + const status = await this.state.storage.get('status'); + if (!status) + return new Response(CLOSE_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); + const returnTo = await this.state.storage.get('returnTo'); + if (error) { + await this.state.storage.put({ status: 'error', error }); + // With a returnTo the branded page renders the failure (the CLI publishes + // an error status); without one, keep the legacy inline page. + if (returnTo) return Response.redirect(returnTo, 302); + return new Response(FAIL_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); + } + if (!code || !state) return new Response('missing code or state', { status: 400 }); + await this.state.storage.put({ status: 'ready', code, state }); + if (returnTo) return Response.redirect(returnTo, 302); + return new Response(DONE_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); + } +``` + +In the router's `POST /api/oidc/register` handler, validate and forward `returnTo`. Replace the stub-fetch line: + +```ts + const returnTo = (body as { returnTo?: unknown } | null)?.returnTo; + if (returnTo !== undefined && !validReturnTo(returnTo)) { + return json({ error: 'invalid returnTo' }, 400); + } + const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state as string)); + const inner = new URL('https://do/register'); + if (returnTo) inner.searchParams.set('returnTo', returnTo as string); + await stub.fetch(new Request(inner.toString(), { method: 'POST' })); + return cors(new Response(null, { status: 204 })); +``` + +Note: `/poll`'s `deleteAll()` on ready/error also drops `returnTo`, which is correct; a later duplicate callback gets `CLOSE_HTML` as today. + +- [ ] **Step 4: Typecheck, verify old behavior intact with wrangler dev** + +```bash +pnpm --filter @polygonlabs/oidc-relay typecheck +cd packages/oidc-relay && npx -y wrangler@3 dev --port 8788 & +sleep 8 +# Without returnTo: legacy HTML behavior. +curl -s -X POST localhost:8788/api/oidc/register -H 'content-type: application/json' -d '{"state":"legacystate123"}' -o /dev/null -w '%{http_code}\n' # 204 +curl -s "localhost:8788/api/oidc/cb?code=c1&state=legacystate123" | grep -o "You're signed in" # You're signed in +# With returnTo: 302 to the login page. +curl -s -X POST localhost:8788/api/oidc/register -H 'content-type: application/json' -d '{"state":"brandedstate123","returnTo":"https://agentconnect.polygon.technology/login#abc"}' -o /dev/null -w '%{http_code}\n' # 204 +curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' "localhost:8788/api/oidc/cb?code=c2&state=brandedstate123" # 302 https://agentconnect.polygon.technology/login#abc +# Bad returnTo rejected. +curl -s -X POST localhost:8788/api/oidc/register -H 'content-type: application/json' -d '{"state":"badstate1234","returnTo":"https://evil.example.com/"}' -o /dev/null -w '%{http_code}\n' # 400 +kill %1 +``` + +Expected: outputs as annotated. + +- [ ] **Step 5: Commit** + +```bash +git add packages/oidc-relay/src/relay.ts packages/oidc-relay/src/return-to.ts packages/oidc-relay/src/return-to.test.ts +git commit -m "feat(oidc-relay): optional returnTo redirect after OIDC capture" +``` + +--- + +### Task 4: CLI browser-login action loop with tests + +**Files:** +- Create: `packages/polygon-agent-cli/src/lib/browser-login.ts` +- Create: `packages/polygon-agent-cli/src/lib/login-relay-client.ts` +- Modify: `packages/polygon-agent-cli/src/lib/oidc-relay-client.ts` (returnTo param on `registerRelaySession`) +- Test: `packages/polygon-agent-cli/src/lib/browser-login.test.ts` +- Modify: `packages/polygon-agent-cli/package.json` (vitest devDep + test script) + +**Interfaces:** +- Consumes: relay HTTP routes from Tasks 2 and 3; SDK methods `startOidcRedirectAuth({provider, redirectUri, relayRedirectUri?}) -> {url, state}`, `completeOidcRedirectAuth({callbackUrl, walletSelection:'automatic'}) -> {walletAddress}`, `startEmailAuth({email}) -> void`, `completeEmailAuth({code, walletSelection:'automatic'}) -> {walletAddress}`. +- Produces: `runBrowserLogin(deps: BrowserLoginDeps, opts: BrowserLoginOpts): Promise<{walletAddress: string; loginMethod: 'google' | 'email'}>` and the `BrowserLoginDeps`/`BrowserLoginOpts` interfaces; `makeLoginRelay(relayBase: string): BrowserLoginDeps['relay']` from `login-relay-client.ts`. Task 5 wires these into `wallet login`. + +- [ ] **Step 1: Add vitest to the CLI package** + +In `packages/polygon-agent-cli/package.json`, add to `scripts`: + +```json +"test": "vitest run" +``` + +and to `devDependencies`: + +```json +"vitest": "^3.0.0" +``` + +Run: `pnpm install` + +- [ ] **Step 2: Write the failing tests** + +Create `packages/polygon-agent-cli/src/lib/browser-login.test.ts`: + +```ts +import { describe, expect, it } from 'vitest'; + +import { + runBrowserLogin, + type BrowserLoginDeps, + type BrowserLoginOpts, + type LoginAction, + type LoginStatus +} from './browser-login.ts'; + +// A scripted fake: nextAction() pops the queue (null = pending tick), and every +// published status is recorded for assertions. +function makeFakes(actionQueue: Array) { + const statuses: LoginStatus[] = []; + const calls: string[] = []; + let time = 0; + + const deps: BrowserLoginDeps = { + relay: { + registerSession: async () => { + calls.push('registerSession'); + }, + nextAction: async () => (actionQueue.length > 0 ? (actionQueue.shift() ?? null) : null), + setStatus: async (_s, status) => { + statuses.push(status); + }, + registerOidcHandoff: async (state, returnTo) => { + calls.push(`registerOidcHandoff:${state}:${returnTo}`); + }, + pollOidcCallback: async () => ({ code: 'CODE1', state: 'STATE1' }) + }, + wallet: { + startOidcRedirectAuth: async () => ({ url: 'https://accounts.google.com/auth', state: 'STATE1' }), + completeOidcRedirectAuth: async (p) => { + calls.push(`completeOidc:${p.callbackUrl}`); + return { walletAddress: '0xW' }; + }, + startEmailAuth: async (p) => { + calls.push(`startEmail:${p.email}`); + }, + completeEmailAuth: async (p) => { + calls.push(`completeEmail:${p.code}`); + if (p.code === 'BAD') throw new Error('invalid code'); + return { walletAddress: '0xW' }; + } + }, + announce: async (url) => { + calls.push(`announce:${url}`); + }, + sleep: async () => { + time += 1000; + }, + now: () => time, + randomSessionId: () => 'sessionid12345678' + }; + return { deps, statuses, calls }; +} + +const OPTS: BrowserLoginOpts = { + relayBase: 'https://relay.test', + uiBase: 'https://ui.test', + timeoutMs: 60_000 +}; + +describe('runBrowserLogin', () => { + it('completes the google flow', async () => { + const { deps, statuses, calls } = makeFakes([{ type: 'google' }]); + const result = await runBrowserLogin(deps, OPTS); + + expect(result).toEqual({ walletAddress: '0xW', loginMethod: 'google' }); + expect(calls).toContain('announce:https://ui.test/login#sessionid12345678'); + expect(calls).toContain('registerOidcHandoff:STATE1:https://ui.test/login#sessionid12345678'); + expect(calls).toContain('completeOidc:https://relay.test/api/oidc/cb?code=CODE1&state=STATE1'); + expect(statuses).toEqual([ + { status: 'auth-url', url: 'https://accounts.google.com/auth' }, + { status: 'done', walletAddress: '0xW' } + ]); + }); + + it('completes the email flow', async () => { + const { deps, statuses, calls } = makeFakes([ + { type: 'email', email: 'a@b.co' }, + { type: 'otp', code: '123456' } + ]); + const result = await runBrowserLogin(deps, OPTS); + + expect(result).toEqual({ walletAddress: '0xW', loginMethod: 'email' }); + expect(calls).toContain('startEmail:a@b.co'); + expect(calls).toContain('completeEmail:123456'); + expect(statuses).toEqual([{ status: 'otp-sent' }, { status: 'done', walletAddress: '0xW' }]); + }); + + it('publishes otp-invalid and accepts a retried code', async () => { + const { deps, statuses } = makeFakes([ + { type: 'email', email: 'a@b.co' }, + { type: 'otp', code: 'BAD' }, + { type: 'otp', code: '123456' } + ]); + const result = await runBrowserLogin(deps, OPTS); + + expect(result.loginMethod).toBe('email'); + expect(statuses).toEqual([ + { status: 'otp-sent' }, + { status: 'otp-invalid', attemptsLeft: 2 }, + { status: 'done', walletAddress: '0xW' } + ]); + }); + + it('fails after three bad codes', async () => { + const { deps, statuses } = makeFakes([ + { type: 'email', email: 'a@b.co' }, + { type: 'otp', code: 'BAD' }, + { type: 'otp', code: 'BAD' }, + { type: 'otp', code: 'BAD' } + ]); + await expect(runBrowserLogin(deps, OPTS)).rejects.toThrow(/too many invalid codes/i); + expect(statuses.at(-1)).toMatchObject({ status: 'error' }); + }); + + it('throws when the user cancels on the page', async () => { + const { deps, statuses } = makeFakes([{ type: 'cancel' }]); + await expect(runBrowserLogin(deps, OPTS)).rejects.toThrow(/cancelled/i); + expect(statuses.at(-1)).toMatchObject({ status: 'error' }); + }); + + it('times out when no action ever arrives', async () => { + const { deps } = makeFakes([]); + await expect(runBrowserLogin(deps, { ...OPTS, timeoutMs: 5000 })).rejects.toThrow(/timed out/i); + }); + + it('propagates a relay registration failure', async () => { + const { deps } = makeFakes([]); + deps.relay.registerSession = async () => { + throw new Error('Relay register failed (503)'); + }; + await expect(runBrowserLogin(deps, OPTS)).rejects.toThrow(/Relay register failed/); + }); +}); +``` + +Run: `pnpm --filter @polygonlabs/agent-cli test` +Expected: FAIL, cannot resolve `./browser-login.ts`. + +- [ ] **Step 3: Implement the loop** + +Create `packages/polygon-agent-cli/src/lib/browser-login.ts`: + +```ts +// The browser-login action loop: the branded page (agentconnect-ui /login) is +// the input surface, the relay carries user actions here, and this process +// drives the actual SDK auth so keys and the PKCE verifier never leave the +// machine. Pure orchestration over injected deps so it is unit-testable. + +export type LoginAction = + | { type: 'google' } + | { type: 'email'; email: string } + | { type: 'otp'; code: string } + | { type: 'cancel' }; + +export type LoginStatus = + | { status: 'awaiting-method' } + | { status: 'auth-url'; url: string } + | { status: 'otp-sent' } + | { status: 'otp-invalid'; attemptsLeft?: number } + | { status: 'done'; walletAddress: string } + | { status: 'error'; message: string }; + +export interface BrowserLoginDeps { + relay: { + registerSession(session: string): Promise; + nextAction(session: string): Promise; + setStatus(session: string, status: LoginStatus): Promise; + registerOidcHandoff(state: string, returnTo: string): Promise; + pollOidcCallback(state: string, timeoutMs: number): Promise<{ code: string; state: string }>; + }; + wallet: { + startOidcRedirectAuth(p: { + provider: 'google'; + redirectUri: string; + relayRedirectUri?: string; + }): Promise<{ url: string; state: string }>; + completeOidcRedirectAuth(p: { + callbackUrl: string; + walletSelection: 'automatic'; + }): Promise<{ walletAddress: string }>; + startEmailAuth(p: { email: string }): Promise; + completeEmailAuth(p: { + code: string; + walletSelection: 'automatic'; + }): Promise<{ walletAddress: string }>; + }; + announce(url: string): Promise; + sleep(ms: number): Promise; + now(): number; + randomSessionId(): string; +} + +export interface BrowserLoginOpts { + relayBase: string; + uiBase: string; + seqRelay?: string; + timeoutMs: number; + pollIntervalMs?: number; +} + +const MAX_OTP_ATTEMPTS = 3; + +export async function runBrowserLogin( + deps: BrowserLoginDeps, + opts: BrowserLoginOpts +): Promise<{ walletAddress: string; loginMethod: 'google' | 'email' }> { + const { relay, wallet } = deps; + const interval = opts.pollIntervalMs ?? 2000; + const session = deps.randomSessionId(); + const pageUrl = `${opts.uiBase}/login#${session}`; + const deadline = deps.now() + opts.timeoutMs; + + await relay.registerSession(session); + await deps.announce(pageUrl); + + // Publish a terminal error so the page does not sit on a spinner, then throw. + const fail = async (message: string): Promise => { + try { + await relay.setStatus(session, { status: 'error', message }); + } catch { + // Best-effort: the CLI error below is the source of truth. + } + throw new Error(message); + }; + + let otpFailures = 0; + + while (deps.now() < deadline) { + const action = await relay.nextAction(session); + if (!action) { + await deps.sleep(interval); + continue; + } + + if (action.type === 'cancel') { + return fail('Login cancelled in the browser.'); + } + + if (action.type === 'google') { + const { url, state } = await wallet.startOidcRedirectAuth({ + provider: 'google', + redirectUri: `${opts.relayBase}/api/oidc/cb`, + ...(opts.seqRelay ? { relayRedirectUri: opts.seqRelay } : {}) + }); + await relay.registerOidcHandoff(state, pageUrl); + await relay.setStatus(session, { status: 'auth-url', url }); + try { + const cb = await relay.pollOidcCallback(state, Math.max(deadline - deps.now(), 1)); + const callbackUrl = `${opts.relayBase}/api/oidc/cb?code=${encodeURIComponent(cb.code)}&state=${encodeURIComponent(cb.state)}`; + const result = await wallet.completeOidcRedirectAuth({ + callbackUrl, + walletSelection: 'automatic' + }); + await relay.setStatus(session, { status: 'done', walletAddress: result.walletAddress }); + return { walletAddress: result.walletAddress, loginMethod: 'google' }; + } catch (error) { + return fail((error as Error).message); + } + } + + if (action.type === 'email') { + try { + await wallet.startEmailAuth({ email: action.email }); + otpFailures = 0; + await relay.setStatus(session, { status: 'otp-sent' }); + } catch (error) { + return fail((error as Error).message); + } + continue; + } + + // action.type === 'otp' + try { + const result = await wallet.completeEmailAuth({ + code: action.code, + walletSelection: 'automatic' + }); + await relay.setStatus(session, { status: 'done', walletAddress: result.walletAddress }); + return { walletAddress: result.walletAddress, loginMethod: 'email' }; + } catch { + otpFailures += 1; + if (otpFailures >= MAX_OTP_ATTEMPTS) { + return fail('Login failed: too many invalid codes.'); + } + await relay.setStatus(session, { + status: 'otp-invalid', + attemptsLeft: MAX_OTP_ATTEMPTS - otpFailures + }); + } + } + + return fail('Timed out waiting for browser login. Re-run, or use `wallet login --local`.'); +} +``` + +- [ ] **Step 4: Run tests to verify they pass** + +Run: `pnpm --filter @polygonlabs/agent-cli test` +Expected: 7 passed. + +- [ ] **Step 5: Implement the HTTP relay client** + +Create `packages/polygon-agent-cli/src/lib/login-relay-client.ts`: + +```ts +// HTTP client for the relay's /api/login pairing routes (packages/oidc-relay). +// Produces the `relay` dependency for runBrowserLogin; the OIDC handoff pieces +// reuse the existing oidc-relay-client functions. + +import type { BrowserLoginDeps, LoginAction, LoginStatus } from './browser-login.ts'; +import { pollRelayForCallback, registerRelaySession } from './oidc-relay-client.ts'; + +export function makeLoginRelay(relayBase: string): BrowserLoginDeps['relay'] { + return { + async registerSession(session: string): Promise { + const res = await fetch(`${relayBase}/api/login/register`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ session }) + }); + if (!res.ok && res.status !== 204) { + throw new Error( + `Relay register failed (${res.status}). Check POLYGON_AGENT_OIDC_RELAY / --relay-url, or use --local.` + ); + } + }, + + async nextAction(session: string): Promise { + const res = await fetch( + `${relayBase}/api/login/next-action?session=${encodeURIComponent(session)}` + ); + if (!res.ok) throw new Error(`Relay poll failed (${res.status})`); + const data = (await res.json()) as { state: string; action?: LoginAction }; + if (data.state === 'expired') { + throw new Error('Login session expired before completion. Re-run `wallet login`.'); + } + return data.state === 'action' && data.action ? data.action : null; + }, + + async setStatus(session: string, status: LoginStatus): Promise { + const res = await fetch(`${relayBase}/api/login/status`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ session, status }) + }); + if (!res.ok && res.status !== 204) throw new Error(`Relay status update failed (${res.status})`); + }, + + registerOidcHandoff(state: string, returnTo: string): Promise { + return registerRelaySession(relayBase, state, returnTo); + }, + + pollOidcCallback(state: string, timeoutMs: number): Promise<{ code: string; state: string }> { + return pollRelayForCallback(relayBase, state, { timeoutMs }); + } + }; +} +``` + +- [ ] **Step 6: Add the returnTo parameter to `registerRelaySession`** + +In `packages/polygon-agent-cli/src/lib/oidc-relay-client.ts`, change the signature and body of `registerRelaySession`: + +```ts +export async function registerRelaySession( + relayBase: string, + state: string, + returnTo?: string +): Promise { + const res = await fetch(`${relayBase}/api/oidc/register`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify(returnTo ? { state, returnTo } : { state }) + }); + if (!res.ok && res.status !== 204) { + throw new Error( + `Relay register failed (${res.status}). Check POLYGON_AGENT_OIDC_RELAY / --relay-url.` + ); + } +} +``` + +(The existing call site in `wallet.ts` passes two arguments and is unaffected.) + +- [ ] **Step 7: Typecheck, test, commit** + +```bash +pnpm --filter @polygonlabs/agent-cli typecheck && pnpm --filter @polygonlabs/agent-cli test +git add packages/polygon-agent-cli/src/lib/browser-login.ts packages/polygon-agent-cli/src/lib/browser-login.test.ts packages/polygon-agent-cli/src/lib/login-relay-client.ts packages/polygon-agent-cli/src/lib/oidc-relay-client.ts packages/polygon-agent-cli/package.json pnpm-lock.yaml +git commit -m "feat(cli): browser-login action loop and login relay client" +``` + +--- + +### Task 5: Wire browser login into `wallet login` and update docs + +**Files:** +- Modify: `packages/polygon-agent-cli/src/lib/oms-client.ts` (baked-in defaults, `loginUiBaseUrl`) +- Modify: `packages/polygon-agent-cli/src/commands/wallet.ts` (flags, handleLogin) +- Modify: `packages/polygon-agent-cli/README.md` (login section) +- Modify: `packages/polygon-agent-cli/skills/SKILL.md` (login section; this is the canonical copy) +- Modify: `CLAUDE.md` (wallet auth section) + +**Interfaces:** +- Consumes: `runBrowserLogin`, `makeLoginRelay` (Task 4); existing `announceAuthUrl`, `saveOmsWalletPointer`, `showFunding`, `getOmsClient`, `startOidcCallbackServer`. +- Produces: `wallet login` defaults to the browser flow; `--local` keeps the loopback flow; `oidcRelayBaseUrl(): string` (now never undefined) and `loginUiBaseUrl(): string` exported from `oms-client.ts`. + +- [ ] **Step 1: Bake in default relay and UI URLs** + +In `packages/polygon-agent-cli/src/lib/oms-client.ts`, replace `oidcRelayBaseUrl` and add `loginUiBaseUrl`: + +```ts +// Production defaults for the browser-login flow. The relay custom domain and +// the Sequence allowlist entry for its /api/oidc/cb are deploy prerequisites +// (see docs/superpowers/specs/2026-07-13-browser-login-design.md). Override per +// environment with POLYGON_AGENT_OIDC_RELAY / POLYGON_AGENT_LOGIN_UI. +const DEFAULT_OIDC_RELAY = 'https://oidc-relay.polygon.technology'; +const DEFAULT_LOGIN_UI = 'https://agentconnect.polygon.technology'; + +/** + * Base URL of OUR OIDC handoff + login relay (packages/oidc-relay). Read from + * POLYGON_AGENT_OIDC_RELAY with a production default; `--relay-url` overrides + * per-run. Trailing slash trimmed so callers can append `/api/...` cleanly. + */ +export function oidcRelayBaseUrl(): string { + const v = process.env.POLYGON_AGENT_OIDC_RELAY; + return v ? v.replace(/\/+$/, '') : DEFAULT_OIDC_RELAY; +} + +/** Base URL of the agentconnect login page. POLYGON_AGENT_LOGIN_UI overrides. */ +export function loginUiBaseUrl(): string { + const v = process.env.POLYGON_AGENT_LOGIN_UI; + return v ? v.replace(/\/+$/, '') : DEFAULT_LOGIN_UI; +} +``` + +(Keep `oidcRelayRedirectUri()` as is.) + +- [ ] **Step 2: Rework `handleLogin` in `wallet.ts`** + +In `packages/polygon-agent-cli/src/commands/wallet.ts`: + +Update imports: + +```ts +import { randomBytes } from 'node:crypto'; + +import { runBrowserLogin } from '../lib/browser-login.ts'; +import { makeLoginRelay } from '../lib/login-relay-client.ts'; +import { startOidcCallbackServer } from '../lib/oidc-callback-server.ts'; +import { getOmsClient, loginUiBaseUrl, oidcRelayBaseUrl, oidcRelayRedirectUri } from '../lib/oms-client.ts'; +``` + +(`registerRelaySession`/`pollRelayForCallback` are no longer imported here; the old `--remote` branch goes away.) + +Update `LoginArgs`: + +```ts +interface LoginArgs { + name: string; + provider: string; + port: number; + timeout: number; + force: boolean; + fund: boolean; + local: boolean; + remote: boolean; + relayUrl?: string; +} +``` + +Replace `obtainBrowserCallbackUrl` with a loopback-only version (the relay-polling branch is superseded by the browser flow): + +```ts +// Legacy --local flow: a short-lived loopback server; the relay bounces the +// browser to it. Only works when the browser runs on this machine. +async function obtainLoopbackCallbackUrl( + oms: ReturnType, + provider: 'google', + argv: LoginArgs +): Promise { + const seqRelay = oidcRelayRedirectUri(); + const server = await startOidcCallbackServer({ + port: argv.port, + timeoutMs: argv.timeout * 1000 + }); + try { + const { url } = await oms.wallet.startOidcRedirectAuth({ + provider, + redirectUri: server.redirectUri, + ...(seqRelay ? { relayRedirectUri: seqRelay } : {}) + }); + await announceAuthUrl(url); + return await server.waitForCallbackUrl; + } finally { + server.close(); + } +} +``` + +Replace `handleLogin` with: + +```ts +async function handleLogin(argv: LoginArgs): Promise { + try { + const oms = getOmsClient(argv.name); + + // Short-circuit if already logged in (the SDK restores the session from + // storage on construction). Starting a new auth would clearSession(), so + // re-login is opt-in via --force. + if (!argv.force && oms.wallet.walletAddress) { + jsonOut({ + ok: true, + walletName: argv.name, + walletAddress: oms.wallet.walletAddress, + alreadyLoggedIn: true + }); + return; + } + + let walletAddress: string; + let loginMethod: string; + + if (argv.local) { + if (argv.provider !== 'google') { + throw new Error(`Unsupported provider "${argv.provider}". Only "google" works with --local.`); + } + const callbackUrl = await obtainLoopbackCallbackUrl(oms, 'google', argv); + const result = await oms.wallet.completeOidcRedirectAuth({ + callbackUrl, + walletSelection: 'automatic' + }); + walletAddress = result.walletAddress; + loginMethod = 'google'; + } else { + if (argv.remote) { + process.stderr.write('--remote is deprecated: the default login already works remotely.\n'); + } + const relayBase = argv.relayUrl?.replace(/\/+$/, '') || oidcRelayBaseUrl(); + const result = await runBrowserLogin( + { + relay: makeLoginRelay(relayBase), + wallet: oms.wallet, + announce: announceAuthUrl, + sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)), + now: () => Date.now(), + randomSessionId: () => randomBytes(16).toString('base64url') + }, + { + relayBase, + uiBase: loginUiBaseUrl(), + seqRelay: oidcRelayRedirectUri(), + timeoutMs: argv.timeout * 1000 + } + ); + walletAddress = result.walletAddress; + loginMethod = result.loginMethod; + } + + await saveOmsWalletPointer(argv.name, { + walletAddress, + loginMethod, + createdAt: new Date().toISOString() + }); + + jsonOut({ ok: true, walletName: argv.name, walletAddress, loginMethod }); + + // Funding: the login page's success screen already directs the user onward, + // so the browser flow only prints the panel; --local keeps opening the page. + if (argv.fund !== false) { + await showFunding(argv.name, walletAddress, 137, { openBrowser: argv.local }); + } + } catch (error) { + jsonOut({ ok: false, error: (error as Error).message }); + process.exit(1); + } +} +``` + +Type note: `oms.wallet` satisfies `BrowserLoginDeps['wallet']` structurally (the SDK methods accept supersets of the params and return supersets of the results). If tsc complains about the overloaded `completeEmailAuth`/`completeOidcRedirectAuth`, wrap the two methods explicitly: + +```ts + wallet: { + startOidcRedirectAuth: (p) => oms.wallet.startOidcRedirectAuth(p), + completeOidcRedirectAuth: (p) => oms.wallet.completeOidcRedirectAuth(p), + startEmailAuth: (p) => oms.wallet.startEmailAuth(p), + completeEmailAuth: (p) => oms.wallet.completeEmailAuth(p) + }, +``` + +- [ ] **Step 3: Update the yargs login builder** + +In the `wallet login` command builder in `wallet.ts`: + +- `describe` for `login`: `'Log in in the browser (choose Google or email on the login page)'` +- `provider` option describe: `'OIDC provider for --local (the browser flow picks the method on the page)'` +- `timeout` default: `600`, describe: `'Seconds to wait for the browser login before giving up'` +- `remote` option describe: `'(deprecated) the default flow already works remotely'` +- Add after the `remote` option: + +```ts + .option('local', { + type: 'boolean', + default: false, + describe: + 'Legacy loopback flow: raw Google URL + localhost callback (browser must be on this machine)' + }) +``` + +- `relay-url` describe: `'Relay base URL (overrides POLYGON_AGENT_OIDC_RELAY)'` + +- [ ] **Step 4: Typecheck, test, and smoke-check the fallback** + +```bash +pnpm --filter @polygonlabs/agent-cli typecheck && pnpm --filter @polygonlabs/agent-cli test +tsx packages/polygon-agent-cli/src/index.ts wallet login --help +``` + +Expected: help shows `--local`, `--remote` marked deprecated, timeout default 600. + +Smoke-check the browser flow against the local relay from Task 2 (no real login, just the announce + poll wiring): + +```bash +cd packages/oidc-relay && npx -y wrangler@3 dev --port 8788 & +sleep 8 +cd ../.. +POLYGON_AGENT_OIDC_RELAY=http://localhost:8788 POLYGON_AGENT_LOGIN_UI=http://localhost:5173 \ + timeout 15 tsx packages/polygon-agent-cli/src/index.ts wallet login --name plan-smoke --timeout 10 --no-fund +kill %1 +``` + +Expected: prints `Open this URL to sign in:` with `http://localhost:5173/login#<22-char id>`, then times out after ~10s with `{"ok":false,"error":"Timed out waiting for browser login. Re-run, or use `wallet login --local`."}`. (Requires `SEQUENCE_PUBLISHABLE_KEY` configured, as any login does. Clean up with `rm -rf ~/.polygon-agent/oms/plan-smoke ~/.polygon-agent/wallets/plan-smoke.json` if created.) + +- [ ] **Step 5: Update docs** + +- `packages/polygon-agent-cli/README.md`: in the wallet login section, describe the new default (browser page with Google or email, works local and remote), the `--local` fallback, the `--remote` deprecation, and the `POLYGON_AGENT_LOGIN_UI` env var. +- `packages/polygon-agent-cli/skills/SKILL.md`: update the `wallet login` command description the same way (canonical copy only). +- `CLAUDE.md` (repo root): update the "Wallet auth (OMS V3)" bullet: login opens the agentconnect login page by default (Google or email chosen there); `--local` is the loopback fallback; `--remote` deprecated. + +No em dashes in any of the new copy. + +- [ ] **Step 6: Commit** + +```bash +git add packages/polygon-agent-cli/src/commands/wallet.ts packages/polygon-agent-cli/src/lib/oms-client.ts packages/polygon-agent-cli/README.md packages/polygon-agent-cli/skills/SKILL.md CLAUDE.md +git commit -m "feat(cli): wallet login defaults to the agentconnect browser flow" +``` + +--- + +### Task 6: UI login state machine with tests + +**Files:** +- Create: `packages/agentconnect-ui/src/login/machine.ts` +- Test: `packages/agentconnect-ui/src/login/machine.test.ts` +- Modify: `packages/agentconnect-ui/package.json` (vitest devDep + test script) + +**Interfaces:** +- Consumes: nothing (pure reducer). +- Produces: `MachineState`, `MachineEvent`, `reduce(state, event): MachineState`, `initialState`; `RelayStatus` type (LoginStatus plus `{status:'expired'}`). Task 7's component drives this. + +- [ ] **Step 1: Add vitest to agentconnect-ui** + +In `packages/agentconnect-ui/package.json`, add to `scripts`: + +```json +"test": "vitest run" +``` + +and to `devDependencies`: + +```json +"vitest": "^3.0.0" +``` + +Run: `pnpm install` + +- [ ] **Step 2: Write the failing tests** + +Create `packages/agentconnect-ui/src/login/machine.test.ts`: + +```ts +import { describe, expect, it } from 'vitest'; + +import { initialState, reduce, type MachineState } from './machine.ts'; + +describe('login machine', () => { + it('google: method -> google-wait -> success', () => { + let s: MachineState = initialState; + s = reduce(s, { type: 'choose-google' }); + expect(s).toEqual({ kind: 'google-wait' }); + s = reduce(s, { type: 'status', status: { status: 'done', walletAddress: '0xW' } }); + expect(s).toEqual({ kind: 'success', walletAddress: '0xW' }); + }); + + it('email: full path with an otp retry', () => { + let s: MachineState = initialState; + s = reduce(s, { type: 'choose-email' }); + expect(s).toEqual({ kind: 'email-entry' }); + s = reduce(s, { type: 'submit-email', email: 'a@b.co' }); + expect(s).toEqual({ kind: 'email-wait', email: 'a@b.co' }); + s = reduce(s, { type: 'status', status: { status: 'otp-sent' } }); + expect(s).toEqual({ kind: 'otp-entry', email: 'a@b.co' }); + s = reduce(s, { type: 'submit-otp', code: '111111' }); + expect(s).toEqual({ kind: 'otp-wait', email: 'a@b.co' }); + s = reduce(s, { type: 'status', status: { status: 'otp-invalid', attemptsLeft: 2 } }); + expect(s).toEqual({ kind: 'otp-entry', email: 'a@b.co', attemptsLeft: 2, invalid: true }); + s = reduce(s, { type: 'submit-otp', code: '222222' }); + s = reduce(s, { type: 'status', status: { status: 'done', walletAddress: '0xW' } }); + expect(s).toEqual({ kind: 'success', walletAddress: '0xW' }); + }); + + it('expired and error statuses are terminal from any state', () => { + expect(reduce(initialState, { type: 'status', status: { status: 'expired' } })).toEqual({ + kind: 'expired' + }); + expect( + reduce({ kind: 'otp-wait', email: 'a@b.co' }, { type: 'status', status: { status: 'error', message: 'boom' } }) + ).toEqual({ kind: 'failed', message: 'boom' }); + }); + + it('reconciles a refreshed page from the polled status', () => { + // After a refresh the page is back at `method`; the poll snaps it forward. + expect(reduce(initialState, { type: 'status', status: { status: 'otp-sent' } })).toEqual({ + kind: 'otp-entry', + email: '' + }); + expect( + reduce(initialState, { type: 'status', status: { status: 'done', walletAddress: '0xW' } }) + ).toEqual({ kind: 'success', walletAddress: '0xW' }); + }); + + it('back returns from email entry to method choice', () => { + expect(reduce({ kind: 'email-entry' }, { type: 'back' })).toEqual({ kind: 'method' }); + }); + + it('awaiting-method and stale statuses do not regress the ui', () => { + expect( + reduce({ kind: 'email-entry' }, { type: 'status', status: { status: 'awaiting-method' } }) + ).toEqual({ kind: 'email-entry' }); + // auth-url is handled as a side effect (redirect); state is unchanged. + expect( + reduce({ kind: 'google-wait' }, { type: 'status', status: { status: 'auth-url', url: 'https://x' } }) + ).toEqual({ kind: 'google-wait' }); + }); +}); +``` + +Run: `pnpm --filter @polygonlabs/agentconnect-ui test` +Expected: FAIL, cannot resolve `./machine.ts`. + +- [ ] **Step 3: Implement the machine** + +Create `packages/agentconnect-ui/src/login/machine.ts`: + +```ts +// Pure state machine for the /login page. The component polls the relay and +// feeds statuses in as events alongside user input; side effects (posting +// actions, redirecting to the auth url) live in the component, not here. + +export type LoginStatus = + | { status: 'awaiting-method' } + | { status: 'auth-url'; url: string } + | { status: 'otp-sent' } + | { status: 'otp-invalid'; attemptsLeft?: number } + | { status: 'done'; walletAddress: string } + | { status: 'error'; message: string }; + +export type RelayStatus = LoginStatus | { status: 'expired' }; + +export type MachineState = + | { kind: 'method' } + | { kind: 'google-wait' } + | { kind: 'email-entry' } + | { kind: 'email-wait'; email: string } + | { kind: 'otp-entry'; email: string; invalid?: boolean; attemptsLeft?: number } + | { kind: 'otp-wait'; email: string } + | { kind: 'success'; walletAddress: string } + | { kind: 'expired' } + | { kind: 'failed'; message: string }; + +export type MachineEvent = + | { type: 'status'; status: RelayStatus } + | { type: 'choose-google' } + | { type: 'choose-email' } + | { type: 'submit-email'; email: string } + | { type: 'submit-otp'; code: string } + | { type: 'back' }; + +export const initialState: MachineState = { kind: 'method' }; + +function emailOf(state: MachineState): string { + return 'email' in state ? state.email : ''; +} + +export function reduce(state: MachineState, event: MachineEvent): MachineState { + if (event.type === 'status') { + const s = event.status; + // Terminal statuses win from anywhere. + if (s.status === 'expired') return { kind: 'expired' }; + if (s.status === 'error') return { kind: 'failed', message: s.message }; + if (s.status === 'done') return { kind: 'success', walletAddress: s.walletAddress }; + // otp-sent snaps forward (also reconciles a refreshed page). + if (s.status === 'otp-sent') { + if (state.kind === 'otp-entry' || state.kind === 'otp-wait') return state; + return { kind: 'otp-entry', email: emailOf(state) }; + } + if (s.status === 'otp-invalid' && state.kind === 'otp-wait') { + return { kind: 'otp-entry', email: state.email, invalid: true, attemptsLeft: s.attemptsLeft }; + } + // awaiting-method and auth-url never regress the ui. + return state; + } + + switch (event.type) { + case 'choose-google': + return state.kind === 'method' ? { kind: 'google-wait' } : state; + case 'choose-email': + return state.kind === 'method' ? { kind: 'email-entry' } : state; + case 'submit-email': + return state.kind === 'email-entry' ? { kind: 'email-wait', email: event.email } : state; + case 'submit-otp': + return state.kind === 'otp-entry' ? { kind: 'otp-wait', email: state.email } : state; + case 'back': + return state.kind === 'email-entry' ? { kind: 'method' } : state; + } +} +``` + +- [ ] **Step 4: Run tests to verify they pass** + +Run: `pnpm --filter @polygonlabs/agentconnect-ui test` +Expected: 6 passed. + +- [ ] **Step 5: Typecheck and commit** + +```bash +pnpm --filter @polygonlabs/agentconnect-ui typecheck +git add packages/agentconnect-ui/src/login/machine.ts packages/agentconnect-ui/src/login/machine.test.ts packages/agentconnect-ui/package.json pnpm-lock.yaml +git commit -m "feat(agentconnect-ui): login page state machine" +``` + +--- + +### Task 7: LoginPage component, route, and config + +**Files:** +- Create: `packages/agentconnect-ui/src/login/LoginPage.tsx` +- Modify: `packages/agentconnect-ui/src/App.tsx` (route on `/login`, export `LogoBadge`) +- Modify: `packages/agentconnect-ui/src/config.ts` (relay URL) +- Modify: `packages/agentconnect-ui/.env.example` (document `VITE_OIDC_RELAY_URL`) + +**Interfaces:** +- Consumes: `reduce`/`initialState`/types from Task 6; relay routes from Task 2; `LogoBadge` from `App.tsx`. +- Produces: `LoginPage` component rendered when `window.location.pathname === '/login'`. + +- [ ] **Step 1: Add the relay URL to config** + +In `packages/agentconnect-ui/src/config.ts`, append: + +```ts +// oidc-relay base URL for the /login pairing session (per-environment secret). +export const oidcRelayUrl = + (import.meta.env.VITE_OIDC_RELAY_URL as string | undefined) ?? + 'https://oidc-relay.polygon.technology'; +``` + +Add to `packages/agentconnect-ui/.env.example`: + +``` +VITE_OIDC_RELAY_URL=https://oidc-relay.polygon.technology +``` + +- [ ] **Step 2: Export `LogoBadge` from App.tsx** + +In `packages/agentconnect-ui/src/App.tsx`, find the `LogoBadge` function component and add `export` to its declaration (`function LogoBadge` becomes `export function LogoBadge`), leaving its body unchanged. + +- [ ] **Step 3: Create the LoginPage component** + +Create `packages/agentconnect-ui/src/login/LoginPage.tsx`. Follow the existing visual language of App.tsx: `#f5f6fb` page background, `#141635` primary, white cards with `rounded-2xl` and the same shadow treatment, `LogoBadge` fixed top-center. All copy in sentence case, no em dashes. + +```tsx +import { useCallback, useEffect, useRef, useState } from 'react'; + +import { LogoBadge } from '../App.js'; +import { oidcRelayUrl } from '../config'; +import { + initialState, + reduce, + type MachineEvent, + type MachineState, + type RelayStatus +} from './machine.js'; + +const WALLET_URL = 'https://wallet.polygon.technology'; +const POLL_MS = 1500; + +type LoginAction = + | { type: 'google' } + | { type: 'email'; email: string } + | { type: 'otp'; code: string } + | { type: 'cancel' }; + +async function postAction(session: string, action: LoginAction): Promise { + await fetch(`${oidcRelayUrl}/api/login/action`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ session, action }) + }); +} + +async function fetchStatus(session: string): Promise { + const res = await fetch(`${oidcRelayUrl}/api/login/status?session=${encodeURIComponent(session)}`); + if (!res.ok) return { status: 'expired' }; + return (await res.json()) as RelayStatus; +} + +const TERMINAL: MachineState['kind'][] = ['success', 'expired', 'failed']; + +export function LoginPage() { + const session = window.location.hash.slice(1); + const [state, setState] = useState(initialState); + const dispatch = useCallback((event: MachineEvent) => { + setState((s) => reduce(s, event)); + }, []); + const redirected = useRef(false); + + // Poll the relay for CLI-published status; redirect once when the auth url + // arrives (a side effect the reducer deliberately does not model). + useEffect(() => { + if (!session || TERMINAL.includes(state.kind)) return; + const timer = setInterval(() => { + void fetchStatus(session).then((status) => { + if (status.status === 'auth-url' && !redirected.current && state.kind === 'google-wait') { + redirected.current = true; + window.location.assign(status.url); + return; + } + dispatch({ type: 'status', status }); + }); + }, POLL_MS); + return () => clearInterval(timer); + }, [session, state.kind, dispatch]); + + if (!session) { + return ( + +

No login session

+

+ Open this page from the polygon-agent CLI: run + polygon-agent wallet login + in your terminal. +

+
+ ); + } + + return {renderState(state, session, dispatch)}; +} + +function Shell({ children }: { children: React.ReactNode }) { + return ( +
+
+ +
+
+ {children} +
+
+ ); +} + +function renderState( + state: MachineState, + session: string, + dispatch: (e: MachineEvent) => void +) { + switch (state.kind) { + case 'method': + return ( + { + void postAction(session, { type: 'google' }); + dispatch({ type: 'choose-google' }); + }} + onEmail={() => dispatch({ type: 'choose-email' })} + onCancel={() => { + // The CLI consumes the cancel, publishes an error status, and exits; + // the next poll moves this page to the failed state. + void postAction(session, { type: 'cancel' }); + }} + /> + ); + case 'google-wait': + return ; + case 'email-entry': + return ( + { + void postAction(session, { type: 'email', email }); + dispatch({ type: 'submit-email', email }); + }} + onBack={() => dispatch({ type: 'back' })} + /> + ); + case 'email-wait': + return ; + case 'otp-entry': + return ( + { + void postAction(session, { type: 'otp', code }); + dispatch({ type: 'submit-otp', code }); + }} + /> + ); + case 'otp-wait': + return ; + case 'success': + return ( +
+ ); + case 'expired': + return ( +
+

This link has expired

+

+ Run polygon-agent wallet login again + to get a fresh link. +

+
+ ); + case 'failed': + return ( +
+

Sign in failed

+

{state.message}

+

Check your terminal for details and re-run the login.

+
+ ); + } +} + +function MethodChoice({ + onGoogle, + onEmail, + onCancel +}: { + onGoogle: () => void; + onEmail: () => void; + onCancel: () => void; +}) { + return ( +
+

Sign in to your agent wallet

+

+ This connects the polygon-agent CLI in your terminal. +

+ + + +
+ ); +} + +function EmailForm({ onSubmit, onBack }: { onSubmit: (email: string) => void; onBack: () => void }) { + const [email, setEmail] = useState(''); + return ( +
{ + e.preventDefault(); + if (email.includes('@')) onSubmit(email.trim()); + }} + > +

Sign in with email

+ setEmail(e.target.value)} + placeholder="you@example.com" + className="mt-6 w-full rounded-xl border border-[#c8cfe1] px-4 py-3 text-sm text-[#141635] outline-none focus:border-[#141635]" + /> + + +
+ ); +} + +function OtpForm({ + invalid, + attemptsLeft, + onSubmit +}: { + invalid?: boolean; + attemptsLeft?: number; + onSubmit: (code: string) => void; +}) { + const [code, setCode] = useState(''); + return ( +
{ + e.preventDefault(); + if (code.trim().length >= 4) onSubmit(code.trim()); + }} + > +

Enter your code

+

We sent a one-time code to your email.

+ {invalid && ( +

+ That code didn't work{typeof attemptsLeft === 'number' ? ` (${attemptsLeft} attempts left)` : ''}. Try again. +

+ )} + setCode(e.target.value)} + placeholder="123456" + className="mt-6 w-full rounded-xl border border-[#c8cfe1] px-4 py-3 text-center text-lg tracking-[0.3em] text-[#141635] outline-none focus:border-[#141635]" + /> + +
+ ); +} + +function Waiting({ text }: { text: string }) { + return ( +
+
+

{text}

+
+ ); +} +``` + +`LogoBadge` takes no props (it renders the Polygon logo plus the `>_ agent` chip at `App.tsx:169`); the import works once Step 2's `export` keyword is added. + +- [ ] **Step 4: Route `/login` in App.tsx** + +In `packages/agentconnect-ui/src/App.tsx`, add the import: + +```tsx +import { LoginPage } from './login/LoginPage.js'; +``` + +and at the top of the `App` function body (before the `params` memo): + +```tsx + if (window.location.pathname === '/login') { + return ; + } +``` + +- [ ] **Step 5: Typecheck, lint, and verify in the browser** + +```bash +pnpm --filter @polygonlabs/agentconnect-ui typecheck && pnpm --filter @polygonlabs/agentconnect-ui lint +``` + +Manual verification against the local relay: + +```bash +cd packages/oidc-relay && npx -y wrangler@3 dev --port 8788 & +cd ../agentconnect-ui && VITE_OIDC_RELAY_URL=http://localhost:8788 pnpm dev & +sleep 8 +# Register a session like the CLI would: +curl -s -X POST localhost:8788/api/login/register -H 'content-type: application/json' -d '{"session":"uitest1234567890"}' -o /dev/null +``` + +Open `http://localhost:5173/login#uitest1234567890`: +- Method choice renders with both buttons. +- Click "Continue with email", submit an address, page shows the waiting spinner. +- Simulate the CLI: `curl -s -X POST localhost:8788/api/login/status -H 'content-type: application/json' -d '{"session":"uitest1234567890","status":{"status":"otp-sent"}}'` and the OTP input appears. +- Simulate completion: `curl -s -X POST localhost:8788/api/login/status -H 'content-type: application/json' -d '{"session":"uitest1234567890","status":{"status":"done","walletAddress":"0xabc"}}'` and the success screen appears with the wallet.polygon.technology button. +- `http://localhost:5173/login` (no hash) shows the "No login session" notice. +- Fresh session + "Cancel this login": `curl -s "localhost:8788/api/login/next-action?session="` returns the cancel action (this is what the CLI consumes). +- `http://localhost:5173/?wallet=0xabc` still renders the dashboard (route untouched). + +Kill both dev servers when done. + +- [ ] **Step 6: Commit** + +```bash +git add packages/agentconnect-ui/src/login/LoginPage.tsx packages/agentconnect-ui/src/App.tsx packages/agentconnect-ui/src/config.ts packages/agentconnect-ui/.env.example +git commit -m "feat(agentconnect-ui): /login page for the browser login flow" +``` + +--- + +### Task 8: Staging end-to-end and production checklist + +**Files:** +- No new source files; deploys and verification. Possible small fixes discovered here get their own commits. + +**Interfaces:** +- Consumes: everything above. +- Produces: verified staging flow; a ticked production checklist. + +- [ ] **Step 1: Deploy the relay and UI to staging** + +```bash +pnpm --filter @polygonlabs/oidc-relay deploy:staging +pnpm --filter @polygonlabs/agentconnect-ui deploy:staging +``` + +Note the staging relay URL (workers.dev) from the wrangler output. The staging UI build must have `VITE_OIDC_RELAY_URL` set to it (GitHub Environments secret, or build locally with the env var before deploying). + +- [ ] **Step 2: End-to-end Google login (human in the loop)** + +```bash +POLYGON_AGENT_OIDC_RELAY=https://oidc-relay-staging..workers.dev \ +POLYGON_AGENT_LOGIN_UI=https://agentconnect.staging.polygon.technology \ + tsx packages/polygon-agent-cli/src/index.ts wallet login --name e2e-google --force --no-fund +``` + +Verify: the printed URL opens the branded page; Continue with Google round-trips through Google and lands back on the page; page shows the success state with the wallet address and the wallet.polygon.technology button; the CLI prints `{"ok":true,...,"loginMethod":"google"}`. + +- [ ] **Step 3: End-to-end email login (human in the loop)** + +Same command with `--name e2e-email`. On the page choose email, enter a real inbox, type the received code. Verify one deliberate wrong code first: the page shows the invalid-code message with attempts left, then the right code succeeds and the CLI prints `loginMethod":"email"`. + +- [ ] **Step 4: Regression-check the fallback and expiry** + +- `wallet login --local --name e2e-local --no-fund`: old loopback flow works unchanged. +- Start a login, wait 10+ minutes without touching the page, confirm the CLI times out cleanly and the page shows the expired state on next poll. +- Clean up test wallets: `wallet remove --name e2e-google` etc. + +- [ ] **Step 5: Production checklist (record ticks in the PR description)** + +- [ ] Enable the relay production custom domain in `packages/oidc-relay/wrangler.toml` (uncomment/set `routes`, e.g. `oidc-relay.polygon.technology`) and deploy. +- [ ] Ask Sequence to allowlist `https://oidc-relay.polygon.technology/api/oidc/cb` as a redirect target (same process as the staging/localhost adds). +- [ ] Confirm the CLI defaults in `oms-client.ts` match the deployed domains. +- [ ] Set `VITE_OIDC_RELAY_URL` in the production GitHub Environment and deploy agentconnect production. +- [ ] Full production smoke: one Google login, one email login, from a machine that is not the deploy machine. From d2bb87dd47389ac8081284888b45e2c83cef7e14 Mon Sep 17 00:00:00 2001 From: James Lawton Date: Mon, 13 Jul 2026 11:38:32 +0100 Subject: [PATCH 24/79] chore: carry in-flight staging changes before browser-login work --- .claude-plugin/plugin.json | 2 +- CLAUDE.md | 6 +- packages/polygon-agent-cli/README.md | 17 +- .../src/commands/operations.ts | 2 +- .../src/commands/polymarket.ts | 2 +- .../polygon-agent-cli/src/commands/setup.ts | 14 +- .../polygon-agent-cli/src/commands/wallet.ts | 4 +- packages/polygon-agent-cli/src/index.ts | 2 +- .../polygon-agent-cli/src/lib/oms-client.ts | 6 +- .../polygon-agent-cli/src/lib/polymarket.ts | 4 +- packages/polygon-agent-cli/src/lib/storage.ts | 6 +- .../polygon-agent-cli/src/lib/tx-dispatch.ts | 2 +- packages/polygon-agent-cli/src/lib/utils.ts | 6 +- pnpm-lock.yaml | 1449 +---------------- skills/SKILL.md | 29 +- skills/polygon-agent-cli/SKILL.md | 29 +- skills/polygon-discovery/SKILL.md | 2 +- skills/polygon-polymarket/SKILL.md | 8 +- 18 files changed, 116 insertions(+), 1474 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 3ce2674..0c08303 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "polygon-agent-cli", - "description": "Polygon Agent toolkit. Session-based smart contract wallets (Sequence), token ops (send/swap/bridge/deposit via Trails), DeFi yield (Aave v3, ERC-4626 vaults), x402 micropayments and the Bazaar service catalog, ERC-8004 on-chain identity + reputation, and Polymarket trading. Single CLI entry point (polygon-agent), AES-256-GCM encrypted storage.", + "description": "Polygon Agent toolkit. Session-based smart contract wallets (OMS), token ops (send/swap/bridge/deposit via Trails), DeFi yield (Aave v3, ERC-4626 vaults), x402 micropayments and the Bazaar service catalog, ERC-8004 on-chain identity + reputation, and Polymarket trading. Single CLI entry point (polygon-agent), AES-256-GCM encrypted storage.", "version": "0.2.0", "author": { "name": "Polygon Labs" diff --git a/CLAUDE.md b/CLAUDE.md index 4a771de..a2d7e6a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,7 +12,7 @@ This is a pnpm workspace monorepo. The primary package is: - `packages/polygon-agent-cli/` — CLI tool for on-chain agent operations on Polygon -Wallets use the Sequence V3 embedded-wallet model (`@0xsequence/typescript-sdk`, +Wallets use the OMS (Open Money Stack) V3 embedded-wallet model (`@0xsequence/typescript-sdk`, `OMSClient`): the CLI authenticates via Google browser login (`wallet login`) and holds the credential on disk. @@ -32,8 +32,8 @@ published with the CLI package but are not source code. - `packages/polygon-agent-cli/src/lib/` — shared utilities (storage, oms-client, oms-tx, oms-storage, tx-dispatch, token-directory, ethauth) - `packages/polygon-agent-cli/src/types.d.ts` — ambient declarations for untyped dependencies -## Wallet auth (Sequence V3 / OMS) +## Wallet auth (OMS V3) - `polygon-agent wallet login` — logs in with Google in the browser; prints/opens a Google sign-in URL, and once you sign in the embedded wallet is created/unlocked. Add `--remote` for headless hosts (uses a public OIDC relay; needs `POLYGON_AGENT_OIDC_RELAY` or `--relay-url`). Other flags: `--name ` (default "main"), `--no-fund`, `--force`. Session persists ~1 week under `~/.polygon-agent/oms//`. -- Requires `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID` (from Sequence Builder), via env or `builder.json` (set with `setup --oms-publishable-key/--oms-project-id`). +- Requires `SEQUENCE_PUBLISHABLE_KEY` (from the OMS Builder dashboard), via env or `builder.json` (set with `setup --oms-publishable-key`). `--oms-project-id` is accepted but optional — the SDK identifies the project from the publishable key alone. - `lib/tx-dispatch.ts` `runTx` is the single tx primitive (wraps `runOmsTx`). All commands submit through it. diff --git a/packages/polygon-agent-cli/README.md b/packages/polygon-agent-cli/README.md index 81c82a0..e2d058d 100644 --- a/packages/polygon-agent-cli/README.md +++ b/packages/polygon-agent-cli/README.md @@ -16,7 +16,7 @@ - [Overview](#overview) - [Quickstart](#quickstart) - [Core Components](#core-components) - - [Sequence: Wallet Infrastructure](#sequence-wallet-infrastructure) + - [OMS: Wallet Infrastructure](#oms-wallet-infrastructure) - [Trails: Swapping, Bridging, and onchain actions](#trails-swapping-bridging-and-defi-actions) - [Onchain Identity](#onchain-agentic-identity) - [Plugins & Skills](#plugins--skills) @@ -74,8 +74,8 @@ pnpm polygon-agent --help Once installed via skills or npm, run the following. If running from source, prefix `polygon-agent` commands with `pnpm` and run them from the root of the repository (e.g., `pnpm polygon-agent setup --name "MyAgent"`). ```bash -# 1. Setup: save your Sequence Builder credentials (persisted to ~/.polygon-agent/builder.json) -polygon-agent setup --oms-publishable-key --oms-project-id +# 1. Setup: save your OMS Builder publishable key (persisted to ~/.polygon-agent/builder.json) +polygon-agent setup --oms-publishable-key # 2. Log in to your embedded wallet with Google in the browser polygon-agent wallet login @@ -102,9 +102,9 @@ polygon-agent agent register --name "MyAgent" The CLI is built on three pillars to enable end to end onchain payments with your agents. -### Sequence: Wallet Infrastructure +### OMS: Wallet Infrastructure -[Sequence](https://sequence.xyz) powers all wallet operations, RPC access, and indexing. +[OMS (Open Money Stack)](https://sequence.xyz) powers all wallet operations, RPC access, and indexing. | Capability | What it does | CLI command | | ----------- | ------------------------------------------------------------------------------------------- | ------------------------------- | @@ -160,7 +160,7 @@ See [`SKILL.md`](skills/SKILL.md) for the full agent-consumable reference and [` ### Setup & Wallets ```bash -polygon-agent setup --oms-publishable-key --oms-project-id # Save Builder credentials +polygon-agent setup --oms-publishable-key # Save OMS Builder credentials polygon-agent wallet login [--name ] [--remote] [--no-fund] [--force] # Log in with Google in the browser (add --remote for headless hosts) polygon-agent wallet logout [--name ] # Log out of a wallet polygon-agent wallet list # Show all wallets @@ -211,11 +211,10 @@ polygon-agent agent reviews --agent-id ## Environment Variables -**Required credentials** come from the [Sequence Builder](https://sequence.build) dashboard. Pass them to `setup` (which persists them to `~/.polygon-agent/builder.json`), or export them: +**Required credential** comes from the [OMS Builder](https://sequence.build) dashboard. Pass it to `setup` (which persists it to `~/.polygon-agent/builder.json`), or export it: ```bash export SEQUENCE_PUBLISHABLE_KEY= -export SEQUENCE_OMS_PROJECT_ID= ``` **Optional:** @@ -237,7 +236,7 @@ export SEQUENCE_OMS_PROJECT_ID= | Issue | Fix | | ------------------------------------------- | ------------------------------------------------ | -| Missing Builder credentials | Run `setup` with `--oms-publishable-key` / `--oms-project-id`, or export `SEQUENCE_PUBLISHABLE_KEY` / `SEQUENCE_OMS_PROJECT_ID` | +| Missing OMS Builder credential | Run `setup` with `--oms-publishable-key`, or export `SEQUENCE_PUBLISHABLE_KEY` | | Not logged in | Run `polygon-agent wallet login` | | Session expired | Run `polygon-agent wallet login` | | Insufficient funds / can't pay gas | Run `fund`; for a native-only wallet pass `--prefer-native-fee` on `call` | diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index dc8ba2f..8624d2b 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -332,7 +332,7 @@ function fundingUiBase(): string | undefined { /** * Post-login funding step, balance-aware. Checks the wallet's USD balance via the - * Sequence indexer and routes: funded (>0) -> dashboard, empty -> funding. On a + * OMS indexer and routes: funded (>0) -> dashboard, empty -> funding. On a * human's machine (local, incl. under Claude Code / a harness) it opens the page; * headless or --remote just returns the URL + balance on the CLI. Skipped by * --no-fund. Falls back to wallet.polygon.technology if no hosted page is configured. diff --git a/packages/polygon-agent-cli/src/commands/polymarket.ts b/packages/polygon-agent-cli/src/commands/polymarket.ts index 1d234c2..48ebc3e 100644 --- a/packages/polygon-agent-cli/src/commands/polymarket.ts +++ b/packages/polygon-agent-cli/src/commands/polymarket.ts @@ -1,5 +1,5 @@ // Polymarket CLI commands -// Architecture: Sequence smart wallet → Polymarket proxy wallet → CLOB +// Architecture: OMS smart wallet → Polymarket proxy wallet → CLOB // - `approve`: sets on-chain approvals on proxy wallet (one-time) // - `clob-buy`: funds proxy wallet from smart wallet, then places CLOB BUY order // - CLOB orders: maker=proxyWallet, signer=EOA, signatureType=POLY_PROXY diff --git a/packages/polygon-agent-cli/src/commands/setup.ts b/packages/polygon-agent-cli/src/commands/setup.ts index acd14a9..9ce6b7e 100644 --- a/packages/polygon-agent-cli/src/commands/setup.ts +++ b/packages/polygon-agent-cli/src/commands/setup.ts @@ -32,27 +32,29 @@ export const setupCommand: CommandModule = { }) .option('oms-publishable-key', { type: 'string', - describe: 'Sequence V3 OMS publishable key (from Sequence Builder dashboard)' + describe: 'OMS (Open Money Stack) publishable key (from the OMS Builder dashboard)' }) .option('oms-project-id', { type: 'string', - describe: 'Sequence V3 OMS project id (e.g. proj_...)' + describe: 'OMS project id (e.g. proj_...) — optional, legacy display field only' }), handler: async (argv) => { const name = argv.name || generateAgentName(); - // If OMS credentials are supplied, persist them (independent of the legacy - // builder/access-key flow). Used by the V3 `wallet login` path. + // If an OMS publishable key is supplied, persist it (independent of the legacy + // builder/access-key flow). Used by the V3 `wallet login` path. The project id + // is optional legacy metadata — the SDK identifies the project from the + // publishable key alone. const omsPk = argv['oms-publishable-key']; const omsProj = argv['oms-project-id']; - if (omsPk && omsProj) { + if (omsPk) { await saveOmsConfig({ publishableKey: omsPk, omsProjectId: omsProj }); if (!isTTY()) { console.log( JSON.stringify( { ok: true, - message: 'OMS (Sequence V3) credentials saved to ~/.polygon-agent/builder.json' + message: 'OMS credentials saved to ~/.polygon-agent/builder.json' }, null, 2 diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 019a471..a79beab 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -53,7 +53,7 @@ async function announceAuthUrl(url: string): Promise { // handoff for this `state`, open the URL, then POLL the relay for code+state. // Works when the browser and CLI are on different machines. // - local: a short-lived loopback server; the relay bounces the browser to it. -// Google only ever sees the Sequence relay (relayRedirectUri); our redirectUri +// Google only ever sees the OMS relay (relayRedirectUri); our redirectUri // rides inside the signed state either way. async function obtainBrowserCallbackUrl( oms: ReturnType, @@ -324,7 +324,7 @@ export const walletCommand: CommandModule = { }) .command({ command: 'logout', - describe: 'Log out and clear the local Sequence V3 session', + describe: 'Log out and clear the local OMS V3 session', builder: (y) => y.option('name', { type: 'string', diff --git a/packages/polygon-agent-cli/src/index.ts b/packages/polygon-agent-cli/src/index.ts index cc7b4f4..ecde84c 100644 --- a/packages/polygon-agent-cli/src/index.ts +++ b/packages/polygon-agent-cli/src/index.ts @@ -28,7 +28,7 @@ import { bootstrapOmsConfig } from './lib/storage.ts'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '..', 'package.json'), 'utf8')); -// Auto-load OMS (Sequence V3) credentials from builder.json if not already in env +// Auto-load OMS V3 credentials from builder.json if not already in env bootstrapOmsConfig(); // Legacy aliases — hidden commands that map to the new structure diff --git a/packages/polygon-agent-cli/src/lib/oms-client.ts b/packages/polygon-agent-cli/src/lib/oms-client.ts index df4900d..3100793 100644 --- a/packages/polygon-agent-cli/src/lib/oms-client.ts +++ b/packages/polygon-agent-cli/src/lib/oms-client.ts @@ -1,4 +1,4 @@ -// OMSClient factory — builds a per-process, per-wallet Sequence V3 client backed +// OMSClient factory — builds a per-process, per-wallet OMS V3 client backed // by file storage + a persisted credential signer, so sessions survive restarts. import { EthereumPrivateKeyCredentialSigner, OMSClient } from '@0xsequence/typescript-sdk'; @@ -23,7 +23,7 @@ export function getOmsClient(walletName: string): OMSClient { if (!cfg) { throw new Error( 'OMS credentials not configured. Set SEQUENCE_PUBLISHABLE_KEY ' + - '(or run `polygon-agent setup`). Get it from the Sequence Builder dashboard.' + '(or run `polygon-agent setup`). Get it from the OMS Builder dashboard.' ); } @@ -61,7 +61,7 @@ export function oidcRelayRedirectUri(): string | undefined { /** * Base URL of OUR OIDC handoff relay (packages/oidc-relay), used by the `--remote` * browser-login path when a localhost callback can't be reached. This is a - * DIFFERENT relay from oidcRelayRedirectUri(): that one overrides the Sequence + * DIFFERENT relay from oidcRelayRedirectUri(): that one overrides the OMS * relay Google redirects to; this is our public bounce target the CLI polls. * Read from POLYGON_AGENT_OIDC_RELAY; the `--relay-url` flag overrides per-run. * Trailing slash trimmed so callers can append `/api/oidc/...` cleanly. diff --git a/packages/polygon-agent-cli/src/lib/polymarket.ts b/packages/polygon-agent-cli/src/lib/polymarket.ts index 4f7ecec..0071fbe 100644 --- a/packages/polygon-agent-cli/src/lib/polymarket.ts +++ b/packages/polygon-agent-cli/src/lib/polymarket.ts @@ -1,8 +1,8 @@ // Polymarket integration library — CLOB V2 // Covers: Gamma API (market discovery), CLOB V2 API (trading via @polymarket/clob-client-v2), on-chain ops // -// Architecture: Sequence smart wallet → Polymarket proxy wallet → CLOB -// - Sequence smart wallet funds the Polymarket proxy wallet (USDC.e transfer) +// Architecture: OMS smart wallet → Polymarket proxy wallet → CLOB +// - OMS smart wallet funds the Polymarket proxy wallet (USDC.e transfer) // - Proxy wallet wraps USDC.e → pUSD via CollateralOnramp before trading // - EOA calls proxy.execute([approve, wrap]) to run on-chain ops FROM the proxy wallet // - CLOB orders use maker=proxyWallet, signer=EOA, signatureType=POLY_PROXY diff --git a/packages/polygon-agent-cli/src/lib/storage.ts b/packages/polygon-agent-cli/src/lib/storage.ts index 451299d..080d724 100644 --- a/packages/polygon-agent-cli/src/lib/storage.ts +++ b/packages/polygon-agent-cli/src/lib/storage.ts @@ -20,7 +20,7 @@ export interface BuilderConfig { } /** - * OMS (Sequence V3 "Open Money Stack") credentials for the typescript-sdk path. + * OMS (Open Money Stack) V3 credentials for the typescript-sdk path. * As of SDK 0.1.0-alpha.4 the publishableKey alone identifies the project; * omsProjectId is retained as optional for backward compat / display only. * Stored alongside builder.json so `wallet login` and tx submission can read it. @@ -182,7 +182,7 @@ export async function loadPolymarketKey(): Promise { ); } -// ─── OMS (Sequence V3 / typescript-sdk) config + session storage ────────────── +// ─── OMS (Open Money Stack V3 / typescript-sdk) config + session storage ────── /** Directory holding the OMS SDK's per-wallet storage + credential key. */ export function omsWalletDir(name: string): string { @@ -243,7 +243,7 @@ export function bootstrapOmsConfig(): void { process.env.SEQUENCE_OMS_PROJECT_ID = cfg.omsProjectId; } - // Also bootstrap the Sequence project access key (used by Trails swap/bridge + // Also bootstrap the OMS project access key (used by Trails swap/bridge // and the indexer) from builder.json into the env, if present — env always // wins. This is separate from the OMS wallet credentials above. if (!process.env.SEQUENCE_PROJECT_ACCESS_KEY) { diff --git a/packages/polygon-agent-cli/src/lib/tx-dispatch.ts b/packages/polygon-agent-cli/src/lib/tx-dispatch.ts index 9a2f9bc..e1ac8e6 100644 --- a/packages/polygon-agent-cli/src/lib/tx-dispatch.ts +++ b/packages/polygon-agent-cli/src/lib/tx-dispatch.ts @@ -1,4 +1,4 @@ -// Transaction dispatch — submits via the OMS (Sequence V3) primitive. +// Transaction dispatch — submits via the OMS V3 primitive. // // Command call sites import `runTx` from here. (Kept as a thin indirection so // call sites don't import oms-tx directly, leaving room for future routing.) diff --git a/packages/polygon-agent-cli/src/lib/utils.ts b/packages/polygon-agent-cli/src/lib/utils.ts index e2fd6b1..9d78027 100644 --- a/packages/polygon-agent-cli/src/lib/utils.ts +++ b/packages/polygon-agent-cli/src/lib/utils.ts @@ -79,14 +79,14 @@ export function getIndexerUrl(): string { ); } -/** Get RPC URL for a network via Sequence nodes */ +/** Get RPC URL for a network via OMS nodes */ export function getRpcUrl(network: NetworkMetadata): string { const accessKey = process.env.SEQUENCE_PROJECT_ACCESS_KEY || ''; return `https://nodes.sequence.app/${network.name}/${accessKey}`; } // Public RPC fallbacks per chain — used for read-only calls (e.g. tx receipt -// polling) when no Sequence project access key is available (the OMS path uses +// polling) when no OMS project access key is available (the OMS path uses // publishableKey/projectId, not a nodes.sequence.app access key). const PUBLIC_RPC_BY_CHAIN_ID: Record = { 137: 'https://polygon-rpc.com', @@ -99,7 +99,7 @@ const PUBLIC_RPC_BY_CHAIN_ID: Record = { }; /** - * Read-only RPC URL. Prefers the Sequence nodes endpoint when a project access + * Read-only RPC URL. Prefers the OMS nodes endpoint when a project access * key is configured; otherwise falls back to a public RPC for the chain. Safe * for both the legacy (dapp-client) and OMS (typescript-sdk) paths. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aaee17b..30f7e85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,7 +59,7 @@ importers: dependencies: 0xtrails: specifier: ^0.14.0 - version: 0.14.0(0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@0xsequence/api@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(bs58@4.0.1)(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) + version: 0.14.0(0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@0xsequence/api@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(bs58@6.0.0)(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) '@0xsequence/wallet-primitives': specifier: 3.0.0-beta.16 version: 3.0.0-beta.16(typescript@5.9.3)(zod@3.25.76) @@ -171,34 +171,6 @@ importers: specifier: ^0.28.0 version: 0.28.0 - packages/remotion-video: - dependencies: - '@remotion/cli': - specifier: 4.0.290 - version: 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/renderer': - specifier: 4.0.290 - version: 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - remotion: - specifier: 4.0.290 - version: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - devDependencies: - '@types/react': - specifier: ^18.3.3 - version: 18.3.28 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) - typescript: - specifier: ^5.8.3 - version: 5.9.3 - packages: 0xsequence@2.3.44: @@ -683,12 +655,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.0': - resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} @@ -707,12 +673,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.0': - resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} @@ -731,12 +691,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.0': - resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.27.3': resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} @@ -755,12 +709,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.0': - resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.27.3': resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} @@ -779,12 +727,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.0': - resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} @@ -803,12 +745,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.0': - resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.27.3': resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} @@ -827,12 +763,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.0': - resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} @@ -851,12 +781,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.0': - resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} @@ -875,12 +799,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.0': - resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} @@ -899,12 +817,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.0': - resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.27.3': resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} @@ -923,12 +835,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.0': - resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.27.3': resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} @@ -947,12 +853,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.0': - resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.27.3': resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} @@ -971,12 +871,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.0': - resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.27.3': resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} @@ -995,12 +889,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.0': - resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.27.3': resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} @@ -1019,12 +907,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.0': - resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.27.3': resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} @@ -1043,12 +925,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.0': - resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.27.3': resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} @@ -1067,12 +943,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.0': - resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.27.3': resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} @@ -1085,12 +955,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.0': - resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} @@ -1109,12 +973,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.0': - resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} @@ -1127,12 +985,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.0': - resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} @@ -1151,12 +1003,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.0': - resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} @@ -1187,12 +1033,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.0': - resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} @@ -1211,12 +1051,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.0': - resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} @@ -1235,12 +1069,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.0': - resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.27.3': resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} @@ -1259,12 +1087,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.0': - resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.27.3': resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} @@ -2360,99 +2182,6 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@remotion/bundler@4.0.290': - resolution: {integrity: sha512-nE9BZKcldoHQ2Z26+vq0MUnt1Hj8UnRyt7wNlwPpTOz0IzUnaPpii99vMlUL64krqkNLGW80V5kcABViODaM+g==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/cli@4.0.290': - resolution: {integrity: sha512-1uagTi1+JSfMmF52+4+5LbHD/+MoJvTEuB7V7cCI8xthYpWjgkyGIola235EfqnzwIoN6pQUOBZHH2fQZuLK7Q==} - hasBin: true - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/compositor-darwin-arm64@4.0.290': - resolution: {integrity: sha512-GRo1E2M2i82WDMX2t2CB1GwfoWRu7iX7WDiwOH8g1Ro5jEH8SW2Ike3wqJNrohAriISm8x+/3gKYmYUps8p/Sw==} - cpu: [arm64] - os: [darwin] - - '@remotion/compositor-darwin-x64@4.0.290': - resolution: {integrity: sha512-gEQEcDBRtm6b2nW7kDwJdFWG8XipLhb7AP7WFO+u7OwFr9YmSDYCDIz4GnL8XMrvzDAwDmzj6zgJkP+v3jgirw==} - cpu: [x64] - os: [darwin] - - '@remotion/compositor-linux-arm64-gnu@4.0.290': - resolution: {integrity: sha512-OAxfdm2HyiTJCCnkJjAU9bJBqdw62g+NwapSD0/KwVPfXRWV/2zN+LW1ToanQ96HdVtNGwXryTv4FO0HO2IlOA==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@remotion/compositor-linux-arm64-musl@4.0.290': - resolution: {integrity: sha512-oo52TZX343ZuGCX+JeJpmPjSTLe9hCV6UlxjAJZhNzjkihUDFU9twa7jwE2ktZDsRAgvIxrs18xwQN8hLFxHUQ==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@remotion/compositor-linux-x64-gnu@4.0.290': - resolution: {integrity: sha512-IoHvGiqUZqmdUCSr8s5/EFwcZa3v0x7PHD3fxr73xZyddXDla1soFiXQO1xQzH7C5LmuEx1ekoQhxcx8oFRf0A==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@remotion/compositor-linux-x64-musl@4.0.290': - resolution: {integrity: sha512-QN++ycuoeeeSLGrOA/MJ2onkqMRm0FaHh/6dh60dVK9wjWoMDrzZL1V8fPX075SyWVL01SN7bzTyotwaUJrMxg==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@remotion/compositor-win32-x64-msvc@4.0.290': - resolution: {integrity: sha512-acRUOIeswQuJ74tKnuziwZIUcsQ6isQpwYUla0CiFrC9MVdbTFlt37eyvmkgXXkCartPWlFptfDYDv9li6mBmA==} - cpu: [x64] - os: [win32] - - '@remotion/media-parser@4.0.290': - resolution: {integrity: sha512-u3/nRI7ghf0Cnci2DrbHrdHLIW7GFCaV5qVNT6IzOqdpVmwiS9sz3jAM85r7wrMKfed2QqVbKsRaLSY3MGA0RQ==} - - '@remotion/media-utils@4.0.290': - resolution: {integrity: sha512-VbBy7NtcLm/jG9c2nq2DYSMIx6AI+EyX/66EQ57txnMIuR/OSdx2j0PoMg/lyAl1RzZp8k/epBKTcod420y2PQ==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/player@4.0.290': - resolution: {integrity: sha512-RsOSm3NOGwyRz11nRqfgFs0Mx7pWrXnHCcmWWUy5iaPKEbt8sCPsO4tVN5Ceogh0QdesoC3FGNeD/iGYk46e+A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/renderer@4.0.290': - resolution: {integrity: sha512-/yNFkY5L/4jOmvgMqAmAa+qXenRilJrSWWDMdLFta2znXIE2m8NGZzQo9MlE7I+N1DcdZ2W+vrka01Epf7HIgQ==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/streaming@4.0.290': - resolution: {integrity: sha512-i043W/aXDG2ffOhMqxj9DjzCegzraH+WaiAZ8wMihXWkkYz83r2RgN+w+Zb1a10MM3VG1U2dgZ2QYymu3SEq+w==} - - '@remotion/studio-server@4.0.290': - resolution: {integrity: sha512-r+iSKai3gkvnx0d0QE6/YYmwAM3L8C4AJz4ITkw4txtBNbrOWJds8abbBCNs/zmfVLflsft+V0Y76vW9a/7HZA==} - - '@remotion/studio-shared@4.0.290': - resolution: {integrity: sha512-CU5aGCzVUEadOb2XqG0gs/rUl5W8UIZVakNjZQcBVUXRq81fyOPCKvrBQHxwA2zWTiyMmvgKAm9LEuozVzAY2A==} - - '@remotion/studio@4.0.290': - resolution: {integrity: sha512-Wf78/DCCmO+Ck4IWyVBzcWQVMubIbArxZUFgc/45owF0d7d3W3iKV/rs0deUAWkHTcR4mI+47ha2e3vDRdOMhQ==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@remotion/zod-types@4.0.290': - resolution: {integrity: sha512-3VSLK8ycb76fMXxFELaQ5EMSbQIL4iRrcPRr+6eKothchF+Bm8C2IlB2dqTZMj5W/3AP71qv4vBizi8ZgHjhTg==} - peerDependencies: - zod: 3.22.3 - '@reown/appkit-common@1.7.8': resolution: {integrity: sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==} @@ -3247,12 +2976,6 @@ packages: '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} @@ -3309,9 +3032,6 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.56.1': resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3611,51 +3331,6 @@ packages: '@walletconnect/window-metadata@1.0.1': resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@x402/core@2.5.0': resolution: {integrity: sha512-nUr8HW8WhkU1DvrpUfsRvALy5NF8UWKoFezZOtX61mohxp2lWZpJ2GnvscxDM8nmBAbtIollmksd5z5pj8InXw==} @@ -3668,12 +3343,6 @@ packages: '@x402/fetch@2.5.0': resolution: {integrity: sha512-D2jH3bn0nf8w9Jg3Vxo+6reE6Z9GickzkSIw+udITJFvsrGOpfjZvhcTeflLcthCODk4Nuu9Oe8x7Q3NLUdaRQ==} - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - abitype@1.0.6: resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} peerDependencies: @@ -3731,24 +3400,6 @@ packages: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -3803,10 +3454,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} - async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} @@ -3864,9 +3511,6 @@ packages: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - big.js@6.2.2: resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} @@ -3907,9 +3551,6 @@ packages: bs58@6.0.0: resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3965,10 +3606,6 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -4123,17 +3760,6 @@ packages: crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - css-loader@5.2.7: - resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.27.0 || ^5.0.0 - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -4189,10 +3815,6 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -4250,10 +3872,6 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@9.0.2: - resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} - engines: {node: '>=10'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4277,10 +3895,6 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - encode-utf8@1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} @@ -4294,10 +3908,6 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - enhanced-resolve@5.20.0: - resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.21.6: resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} engines: {node: '>=10.13.0'} @@ -4325,9 +3935,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -4350,11 +3957,6 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.0: - resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} @@ -4424,10 +4026,6 @@ packages: peerDependencies: eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - eslint-scope@9.1.2: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -4467,10 +4065,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -4513,10 +4107,6 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -4524,11 +4114,6 @@ packages: resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} engines: {node: '>=12.0.0'} - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - eyes@0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -4562,9 +4147,6 @@ packages: fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -4649,9 +4231,6 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs-monkey@1.0.3: - resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -4692,14 +4271,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - get-tsconfig@4.13.6: resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} @@ -4717,9 +4288,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} @@ -4779,10 +4347,6 @@ packages: resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -4795,12 +4359,6 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - idb-keyval@6.2.1: resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} @@ -4883,11 +4441,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4963,10 +4516,6 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - is-wsl@3.1.1: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} @@ -5000,10 +4549,6 @@ packages: engines: {node: '>=8'} hasBin: true - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -5087,10 +4632,6 @@ packages: keyvaluestorage-interface@1.0.0: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -5190,14 +4731,6 @@ packages: lit@3.3.0: resolution: {integrity: sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==} - loader-runner@4.3.2: - resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -5218,9 +4751,6 @@ packages: lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -5245,10 +4775,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lucide-react@0.563.0: resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} peerDependencies: @@ -5269,10 +4795,6 @@ packages: md5@2.3.0: resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} - memfs@3.4.3: - resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} - engines: {node: '>= 4.0.0'} - meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -5281,9 +4803,6 @@ packages: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -5321,9 +4840,6 @@ packages: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} - minimist@1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -5385,9 +4901,6 @@ packages: resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} engines: {node: '>=18'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-addon-api@2.0.2: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} @@ -5420,10 +4933,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - obj-multiplex@1.0.0: resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} @@ -5448,10 +4957,6 @@ packages: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - openapi-fetch@0.13.8: resolution: {integrity: sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==} @@ -5568,9 +5073,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -5648,37 +5150,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-selector-parser@7.1.4: - resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -5709,10 +5180,6 @@ packages: process-warning@1.0.0: resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - proxy-compare@2.6.0: resolution: {integrity: sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==} @@ -5783,10 +5250,6 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-refresh@0.9.0: - resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} - engines: {node: '>=0.10.0'} - react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -5840,16 +5303,6 @@ packages: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} - - remotion@4.0.290: - resolution: {integrity: sha512-htwe74xP6et06V+xjCGH8hID0f3DEdSUKEu6oCUYYZUcE1gytEwhvubQyMGXH54uPfztV+jRZnWZnSSpXKxYBg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5925,14 +5378,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} - engines: {node: '>= 10.13.0'} - scrypt-js@3.0.1: resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} @@ -5940,11 +5385,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -5981,9 +5421,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - siwe@2.3.2: resolution: {integrity: sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==} peerDependencies: @@ -6027,15 +5464,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - deprecated: The work that was done in this beta branch won't be included in future versions - spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} @@ -6105,16 +5533,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - style-loader@4.0.0: - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.27.0 - superstruct@1.0.4: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} @@ -6137,10 +5555,6 @@ packages: tailwindcss@4.3.2: resolution: {integrity: sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} - engines: {node: '>=6'} - tapable@2.3.3: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} @@ -6149,49 +5563,6 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser-webpack-plugin@5.6.1: - resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@minify-html/node': '*' - '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' - esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@minify-html/node': - optional: true - '@swc/core': - optional: true - '@swc/css': - optional: true - '@swc/html': - optional: true - clean-css: - optional: true - cssnano: - optional: true - csso: - optional: true - esbuild: - optional: true - html-minifier-terser: - optional: true - lightningcss: - optional: true - postcss: - optional: true - uglify-js: - optional: true - terser@5.46.1: resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} @@ -6203,9 +5574,6 @@ packages: thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinyexec@1.0.2: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} @@ -6225,9 +5593,6 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -6519,39 +5884,15 @@ packages: typescript: optional: true - watchpack@2.5.2: - resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} - engines: {node: '>=10.13.0'} - webextension-polyfill@0.10.0: resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webpack-sources@3.5.0: - resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} - engines: {node: '>=10.13.0'} - - webpack@5.96.1: - resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -6693,9 +6034,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.8.2: resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} @@ -6717,9 +6055,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -6727,9 +6062,6 @@ packages: yoga-layout@3.2.1: resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} - zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -6815,7 +6147,7 @@ snapshots: '@0xsequence/wallet': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - 0xtrails@0.14.0(0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@0xsequence/api@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(bs58@4.0.1)(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76): + 0xtrails@0.14.0(0xsequence@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@0xsequence/api@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(bs58@6.0.0)(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-apple-signin-auth@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76): dependencies: '@0xsequence/connect': 5.4.8(9524d20f2d229702e245bfce2f88d319) '@0xsequence/hooks': 5.4.11(@0xsequence/api@3.0.12)(@0xsequence/indexer@3.0.12)(@0xsequence/metadata@3.0.12)(@0xsequence/network@2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)))(@tanstack/react-query@5.101.2(react@18.3.1))(react@18.3.1)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)) @@ -6826,7 +6158,7 @@ snapshots: '@0xtrails/wallet-registry': 0.2.0 '@databeat/tracker': 0.9.3 '@emotion/is-prop-valid': 1.4.0 - '@meshconnect/web-link-sdk': 3.7.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@meshconnect/web-link-sdk': 3.7.1(bs58@6.0.0)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/query-persist-client-core': 5.101.2 '@tanstack/react-query': 5.101.2(react@18.3.1) @@ -7650,9 +6982,6 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.25.0': - optional: true - '@esbuild/aix-ppc64@0.27.3': optional: true @@ -7662,9 +6991,6 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.25.0': - optional: true - '@esbuild/android-arm64@0.27.3': optional: true @@ -7674,9 +7000,6 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.25.0': - optional: true - '@esbuild/android-arm@0.27.3': optional: true @@ -7686,9 +7009,6 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.25.0': - optional: true - '@esbuild/android-x64@0.27.3': optional: true @@ -7698,9 +7018,6 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.25.0': - optional: true - '@esbuild/darwin-arm64@0.27.3': optional: true @@ -7710,9 +7027,6 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.25.0': - optional: true - '@esbuild/darwin-x64@0.27.3': optional: true @@ -7722,9 +7036,6 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.25.0': - optional: true - '@esbuild/freebsd-arm64@0.27.3': optional: true @@ -7734,9 +7045,6 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.25.0': - optional: true - '@esbuild/freebsd-x64@0.27.3': optional: true @@ -7746,9 +7054,6 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.25.0': - optional: true - '@esbuild/linux-arm64@0.27.3': optional: true @@ -7758,9 +7063,6 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.25.0': - optional: true - '@esbuild/linux-arm@0.27.3': optional: true @@ -7770,9 +7072,6 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.25.0': - optional: true - '@esbuild/linux-ia32@0.27.3': optional: true @@ -7782,9 +7081,6 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.25.0': - optional: true - '@esbuild/linux-loong64@0.27.3': optional: true @@ -7794,9 +7090,6 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.25.0': - optional: true - '@esbuild/linux-mips64el@0.27.3': optional: true @@ -7806,9 +7099,6 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.25.0': - optional: true - '@esbuild/linux-ppc64@0.27.3': optional: true @@ -7818,9 +7108,6 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.25.0': - optional: true - '@esbuild/linux-riscv64@0.27.3': optional: true @@ -7830,9 +7117,6 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.25.0': - optional: true - '@esbuild/linux-s390x@0.27.3': optional: true @@ -7842,18 +7126,12 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.25.0': - optional: true - '@esbuild/linux-x64@0.27.3': optional: true '@esbuild/linux-x64@0.28.0': optional: true - '@esbuild/netbsd-arm64@0.25.0': - optional: true - '@esbuild/netbsd-arm64@0.27.3': optional: true @@ -7863,18 +7141,12 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.25.0': - optional: true - '@esbuild/netbsd-x64@0.27.3': optional: true '@esbuild/netbsd-x64@0.28.0': optional: true - '@esbuild/openbsd-arm64@0.25.0': - optional: true - '@esbuild/openbsd-arm64@0.27.3': optional: true @@ -7884,9 +7156,6 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.25.0': - optional: true - '@esbuild/openbsd-x64@0.27.3': optional: true @@ -7902,9 +7171,6 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.25.0': - optional: true - '@esbuild/sunos-x64@0.27.3': optional: true @@ -7914,9 +7180,6 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.25.0': - optional: true - '@esbuild/win32-arm64@0.27.3': optional: true @@ -7926,9 +7189,6 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.25.0': - optional: true - '@esbuild/win32-ia32@0.27.3': optional: true @@ -7938,9 +7198,6 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.25.0': - optional: true - '@esbuild/win32-x64@0.27.3': optional: true @@ -8311,6 +7568,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 + optional: true '@jridgewell/sourcemap-codec@1.5.5': {} @@ -8348,10 +7606,10 @@ snapshots: - debug - supports-color - '@meshconnect/uwc-bridge-parent@1.1.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + '@meshconnect/uwc-bridge-parent@1.1.1(bs58@6.0.0)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) - '@solana/wallet-standard-wallet-adapter-base': 1.1.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@4.0.1) + '@solana/wallet-standard-wallet-adapter-base': 1.1.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@6.0.0) '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) '@wallet-standard/app': 1.1.1 '@wallet-standard/base': 1.1.1 @@ -8363,10 +7621,10 @@ snapshots: - typescript - utf-8-validate - '@meshconnect/web-link-sdk@3.7.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + '@meshconnect/web-link-sdk@3.7.1(bs58@6.0.0)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@meshconnect/node-api': 2.0.27 - '@meshconnect/uwc-bridge-parent': 1.1.1(bs58@4.0.1)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@meshconnect/uwc-bridge-parent': 1.1.1(bs58@6.0.0)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) transitivePeerDependencies: - bs58 - bufferutil @@ -9253,241 +8511,52 @@ snapshots: '@types/react': 18.3.28 '@radix-ui/react-use-rect@1.1.2(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-use-size@1.1.1(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-use-size@1.1.2(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 - - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.28 - '@types/react-dom': 18.3.7(@types/react@18.3.28) - - '@radix-ui/rect@1.1.1': {} - - '@radix-ui/rect@1.1.2': {} - - '@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@remotion/bundler@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': - dependencies: - '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - css-loader: 5.2.7(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)) - esbuild: 0.25.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-refresh: 0.9.0 - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - source-map: 0.7.3 - style-loader: 4.0.0(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)) - webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli - - '@remotion/cli@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': - dependencies: - '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-server': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - dotenv: 9.0.2 - minimist: 1.2.6 - prompts: 2.4.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli - - '@remotion/compositor-darwin-arm64@4.0.290': - optional: true - - '@remotion/compositor-darwin-x64@4.0.290': - optional: true - - '@remotion/compositor-linux-arm64-gnu@4.0.290': - optional: true - - '@remotion/compositor-linux-arm64-musl@4.0.290': - optional: true - - '@remotion/compositor-linux-x64-gnu@4.0.290': - optional: true - - '@remotion/compositor-linux-x64-musl@4.0.290': - optional: true - - '@remotion/compositor-win32-x64-msvc@4.0.290': - optional: true + dependencies: + '@radix-ui/rect': 1.1.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@remotion/media-parser@4.0.290': {} + '@radix-ui/react-use-size@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 - '@remotion/media-utils@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-use-size@1.1.2(@types/react@18.3.28)(react@18.3.1)': dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 - '@remotion/player@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@remotion/renderer@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': + '@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@remotion/streaming': 4.0.290 - execa: 5.1.1 - extract-zip: 2.0.1 + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - source-map: 0.8.0-beta.0 - ws: 8.17.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: - '@remotion/compositor-darwin-arm64': 4.0.290 - '@remotion/compositor-darwin-x64': 4.0.290 - '@remotion/compositor-linux-arm64-gnu': 4.0.290 - '@remotion/compositor-linux-arm64-musl': 4.0.290 - '@remotion/compositor-linux-x64-gnu': 4.0.290 - '@remotion/compositor-linux-x64-musl': 4.0.290 - '@remotion/compositor-win32-x64-msvc': 4.0.290 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) - '@remotion/streaming@4.0.290': {} + '@radix-ui/rect@1.1.1': {} - '@remotion/studio-server@4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': - dependencies: - '@babel/parser': 7.24.1 - '@remotion/bundler': 4.0.290(bufferutil@4.1.0)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - memfs: 3.4.3 - open: 8.4.2 - recast: 0.23.9 - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.3 - source-map: 0.7.3 - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - bufferutil - - clean-css - - cssnano - - csso - - html-minifier-terser - - lightningcss - - postcss - - react - - react-dom - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli + '@radix-ui/rect@1.1.2': {} - '@remotion/studio-shared@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-oauth/google@0.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - react - - react-dom - - '@remotion/studio@4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6)': - dependencies: - '@remotion/media-parser': 4.0.290 - '@remotion/media-utils': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/player': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/renderer': 4.0.290(bufferutil@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.6) - '@remotion/studio-shared': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@remotion/zod-types': 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3) - memfs: 3.4.3 - open: 8.4.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.5.3 - source-map: 0.7.3 - zod: 3.22.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@remotion/zod-types@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@3.22.3)': - dependencies: - remotion: 4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - zod: 3.22.3 - transitivePeerDependencies: - - react - - react-dom '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4)': dependencies: @@ -10170,7 +9239,7 @@ snapshots: '@solana/functional': 5.5.1(typescript@5.9.3) '@solana/rpc-subscriptions-spec': 5.5.1(typescript@5.9.3) '@solana/subscribable': 5.5.1(typescript@5.9.3) - ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -10366,7 +9435,7 @@ snapshots: '@solana/wallet-standard-chains': 1.1.2 '@solana/wallet-standard-features': 1.4.0 - '@solana/wallet-standard-wallet-adapter-base@1.1.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@4.0.1)': + '@solana/wallet-standard-wallet-adapter-base@1.1.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(bs58@6.0.0)': dependencies: '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) '@solana/wallet-standard-chains': 1.1.2 @@ -10377,7 +9446,7 @@ snapshots: '@wallet-standard/base': 1.1.1 '@wallet-standard/features': 1.1.1 '@wallet-standard/wallet': 1.1.1 - bs58: 4.0.1 + bs58: 6.0.0 '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: @@ -10565,16 +9634,6 @@ snapshots: dependencies: '@types/ms': 2.1.0 - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@types/esrecurse@4.3.1': {} '@types/estree@1.0.8': {} @@ -10626,11 +9685,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 22.19.13 - optional: true - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -11412,82 +10466,6 @@ snapshots: '@walletconnect/window-getters': 1.0.1 tslib: 1.14.1 - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - '@x402/core@2.5.0': dependencies: zod: 3.25.76 @@ -11529,10 +10507,6 @@ snapshots: - typescript - utf-8-validate - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - abitype@1.0.6(typescript@5.9.3)(zod@3.25.76): optionalDependencies: typescript: 5.9.3 @@ -11578,19 +10552,6 @@ snapshots: dependencies: humanize-ms: 1.2.1 - ajv-formats@2.1.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - - ajv-keywords@3.5.2(ajv@6.14.0): - dependencies: - ajv: 6.14.0 - - ajv-keywords@5.1.0(ajv@8.18.0): - dependencies: - ajv: 8.18.0 - fast-deep-equal: 3.1.3 - ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 @@ -11642,10 +10603,6 @@ snapshots: array-union@2.1.0: {} - ast-types@0.16.1: - dependencies: - tslib: 2.8.1 - async-mutex@0.2.6: dependencies: tslib: 2.8.1 @@ -11709,8 +10666,6 @@ snapshots: dependencies: is-windows: 1.0.2 - big.js@5.2.2: {} - big.js@6.2.2: {} bn.js@4.12.3: {} @@ -11753,9 +10708,8 @@ snapshots: dependencies: base-x: 5.0.1 - buffer-crc32@0.2.13: {} - - buffer-from@1.1.2: {} + buffer-from@1.1.2: + optional: true buffer@6.0.3: dependencies: @@ -11808,8 +10762,6 @@ snapshots: dependencies: readdirp: 5.0.0 - chrome-trace-event@1.0.4: {} - class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -11959,22 +10911,6 @@ snapshots: crypt@0.0.2: {} - css-loader@5.2.7(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - loader-utils: 2.0.4 - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) - postcss-value-parser: 4.2.0 - schema-utils: 3.3.0 - semver: 7.7.4 - webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) - - cssesc@3.0.0: {} - csstype@3.2.3: {} dargs@8.1.0: {} @@ -12012,8 +10948,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - define-lazy-prop@2.0.0: {} - define-lazy-prop@3.0.0: {} defu@6.1.7: {} @@ -12050,8 +10984,6 @@ snapshots: dotenv@16.6.1: {} - dotenv@9.0.2: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -12088,8 +11020,6 @@ snapshots: emoji-regex@8.0.0: {} - emojis-list@3.0.0: {} - encode-utf8@1.0.3: {} end-of-stream@1.4.5: @@ -12110,11 +11040,6 @@ snapshots: engine.io-parser@5.2.3: {} - enhanced-resolve@5.20.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.0 - enhanced-resolve@5.21.6: dependencies: graceful-fs: 4.2.11 @@ -12137,8 +11062,6 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -12184,34 +11107,6 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.0 - '@esbuild/android-arm': 0.25.0 - '@esbuild/android-arm64': 0.25.0 - '@esbuild/android-x64': 0.25.0 - '@esbuild/darwin-arm64': 0.25.0 - '@esbuild/darwin-x64': 0.25.0 - '@esbuild/freebsd-arm64': 0.25.0 - '@esbuild/freebsd-x64': 0.25.0 - '@esbuild/linux-arm': 0.25.0 - '@esbuild/linux-arm64': 0.25.0 - '@esbuild/linux-ia32': 0.25.0 - '@esbuild/linux-loong64': 0.25.0 - '@esbuild/linux-mips64el': 0.25.0 - '@esbuild/linux-ppc64': 0.25.0 - '@esbuild/linux-riscv64': 0.25.0 - '@esbuild/linux-s390x': 0.25.0 - '@esbuild/linux-x64': 0.25.0 - '@esbuild/netbsd-arm64': 0.25.0 - '@esbuild/netbsd-x64': 0.25.0 - '@esbuild/openbsd-arm64': 0.25.0 - '@esbuild/openbsd-x64': 0.25.0 - '@esbuild/sunos-x64': 0.25.0 - '@esbuild/win32-arm64': 0.25.0 - '@esbuild/win32-ia32': 0.25.0 - '@esbuild/win32-x64': 0.25.0 - esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -12329,11 +11224,6 @@ snapshots: - supports-color - typescript - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 @@ -12398,8 +11288,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} esutils@2.0.3: {} @@ -12493,18 +11381,6 @@ snapshots: events@3.3.0: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - extendable-error@0.1.7: {} extension-port-stream@3.0.0: @@ -12512,16 +11388,6 @@ snapshots: readable-stream: 3.6.2 webextension-polyfill: 0.10.0 - extract-zip@2.0.1: - dependencies: - debug: 4.4.3 - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - eyes@0.1.8: {} fast-deep-equal@3.1.3: {} @@ -12550,10 +11416,6 @@ snapshots: dependencies: reusify: 1.1.0 - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -12623,8 +11485,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-monkey@1.0.3: {} - fsevents@2.3.3: optional: true @@ -12660,12 +11520,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stream@5.2.0: - dependencies: - pump: 3.0.4 - - get-stream@6.0.1: {} - get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -12684,8 +11538,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} - global-directory@4.0.1: dependencies: ini: 4.1.1 @@ -12755,8 +11607,6 @@ snapshots: human-id@4.1.3: {} - human-signals@2.1.0: {} - humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -12767,10 +11617,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - idb-keyval@6.2.1: {} idb-keyval@6.2.6: {} @@ -12854,8 +11700,6 @@ snapshots: is-callable@1.2.7: {} - is-docker@2.2.1: {} - is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -12913,10 +11757,6 @@ snapshots: is-windows@1.0.2: {} - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -12961,12 +11801,6 @@ snapshots: - bufferutil - utf-8-validate - jest-worker@27.5.1: - dependencies: - '@types/node': 22.19.13 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jiti@2.6.1: {} jiti@2.7.0: {} @@ -13031,8 +11865,6 @@ snapshots: keyvaluestorage-interface@1.0.0: {} - kleur@3.0.3: {} - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -13123,14 +11955,6 @@ snapshots: lit-element: 4.2.2 lit-html: 3.3.3 - loader-runner@4.3.2: {} - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -13147,8 +11971,6 @@ snapshots: lodash.snakecase@4.1.1: {} - lodash.sortby@4.7.0: {} - lodash.startcase@4.4.0: {} lodash.upperfirst@4.3.1: {} @@ -13173,10 +11995,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lucide-react@0.563.0(react@18.3.1): dependencies: react: 18.3.1 @@ -13197,16 +12015,10 @@ snapshots: crypt: 0.0.2 is-buffer: 1.1.6 - memfs@3.4.3: - dependencies: - fs-monkey: 1.0.3 - meow@12.1.1: {} meow@13.2.0: {} - merge-stream@2.0.0: {} - merge2@1.4.1: {} micro-ftch@0.3.1: {} @@ -13234,8 +12046,6 @@ snapshots: dependencies: brace-expansion: 5.0.4 - minimist@1.2.6: {} - minimist@1.2.8: {} mipd@0.0.7(typescript@5.9.3): @@ -13273,8 +12083,6 @@ snapshots: natural-orderby@5.0.0: {} - neo-async@2.6.2: {} - node-addon-api@2.0.2: {} node-addon-api@7.1.1: {} @@ -13293,10 +12101,6 @@ snapshots: normalize-path@3.0.0: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - obj-multiplex@1.0.0: dependencies: end-of-stream: 1.4.5 @@ -13330,12 +12134,6 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - openapi-fetch@0.13.8: dependencies: openapi-typescript-helpers: 0.0.15 @@ -13548,8 +12346,6 @@ snapshots: path-type@4.0.0: {} - pend@1.2.0: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -13609,34 +12405,6 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 7.1.4 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.4 - - postcss-modules-values@4.0.0(postcss@8.5.6): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - - postcss-selector-parser@7.1.4: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-value-parser@4.2.0: {} - postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -13657,11 +12425,6 @@ snapshots: process-warning@1.0.0: {} - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - proxy-compare@2.6.0: {} proxy-from-env@1.1.0: {} @@ -13726,8 +12489,6 @@ snapshots: react-refresh@0.17.0: {} - react-refresh@0.9.0: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 @@ -13786,19 +12547,6 @@ snapshots: real-require@0.1.0: {} - recast@0.23.9: - dependencies: - ast-types: 0.16.1 - esprima: 4.0.1 - source-map: 0.6.1 - tiny-invariant: 1.3.3 - tslib: 2.8.1 - - remotion@4.0.290(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -13897,27 +12645,10 @@ snapshots: dependencies: loose-envify: 1.4.0 - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.14.0 - ajv-keywords: 3.5.2(ajv@6.14.0) - - schema-utils@4.3.3: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.18.0 - ajv-formats: 2.1.1(ajv@8.18.0) - ajv-keywords: 5.1.0(ajv@8.18.0) - scrypt-js@3.0.1: {} semver@6.3.1: {} - semver@7.5.3: - dependencies: - lru-cache: 6.0.0 - semver@7.7.4: {} set-blocking@2.0.0: {} @@ -13949,8 +12680,6 @@ snapshots: signal-exit@4.1.0: {} - sisteransi@1.0.5: {} - siwe@2.3.2(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)): dependencies: '@spruceid/siwe-parser': 2.1.2 @@ -14004,14 +12733,10 @@ snapshots: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + optional: true - source-map@0.6.1: {} - - source-map@0.7.3: {} - - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 + source-map@0.6.1: + optional: true spawndamnit@3.0.1: dependencies: @@ -14077,12 +12802,6 @@ snapshots: strip-bom@3.0.0: {} - strip-final-newline@2.0.0: {} - - style-loader@4.0.0(webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6)): - dependencies: - webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) - superstruct@1.0.4: {} superstruct@2.0.2: {} @@ -14099,29 +12818,17 @@ snapshots: tailwindcss@4.3.2: {} - tapable@2.3.0: {} - tapable@2.3.3: {} term-size@2.2.1: {} - terser-webpack-plugin@5.6.1(esbuild@0.25.0)(postcss@8.5.6)(webpack@5.96.1(postcss@8.5.6)): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.46.1 - webpack: 5.96.1(esbuild@0.25.0)(postcss@8.5.6) - optionalDependencies: - esbuild: 0.25.0 - postcss: 8.5.6 - terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 + optional: true text-encoding-utf-8@1.0.2: {} @@ -14129,8 +12836,6 @@ snapshots: dependencies: real-require: 0.1.0 - tiny-invariant@1.3.3: {} - tinyexec@1.0.2: {} tinyglobby@0.2.15: @@ -14150,10 +12855,6 @@ snapshots: tr46@0.0.3: {} - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - tree-kill@1.2.2: {} ts-api-utils@2.4.0(typescript@5.9.3): @@ -14482,68 +13183,15 @@ snapshots: - utf-8-validate - zod - watchpack@2.5.2: - dependencies: - graceful-fs: 4.2.11 - webextension-polyfill@0.10.0: {} webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} - - webpack-sources@3.5.0: {} - - webpack@5.96.1(esbuild@0.25.0)(postcss@8.5.6): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - browserslist: 4.28.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.20.0 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.2 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.3.0 - terser-webpack-plugin: 5.6.1(esbuild@0.25.0)(postcss@8.5.6)(webpack@5.96.1(postcss@8.5.6)) - watchpack: 2.5.2 - webpack-sources: 3.5.0 - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - which-module@2.0.1: {} which-typed-array@1.1.22: @@ -14635,8 +13283,6 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - yaml@2.8.2: {} yargs-parser@18.1.3: @@ -14670,17 +13316,10 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - yocto-queue@0.1.0: {} yoga-layout@3.2.1: {} - zod@3.22.3: {} - zod@3.22.4: {} zod@3.25.76: {} diff --git a/skills/SKILL.md b/skills/SKILL.md index f2cab20..960d448 100644 --- a/skills/SKILL.md +++ b/skills/SKILL.md @@ -1,6 +1,6 @@ --- name: Polygon Agent -description: "Complete Polygon agent toolkit for on-chain operations on Polygon. Use this skill whenever helping an agent set up a wallet, check balances, send or swap tokens, bridge assets, deposit or withdraw from yield (Aave aTokens, ERC-4626 vaults), register on-chain identity, submit or query reputation/feedback, or make x402 micropayments. Covers the full lifecycle: Sequence smart contract wallets, Trails DeFi actions, ERC-8004 identity + reputation, x402 payments. Single CLI entry point (`polygon-agent`), AES-256-GCM encrypted storage." +description: "Complete Polygon agent toolkit for on-chain operations on Polygon. Use this skill whenever helping an agent set up a wallet, check balances, send or swap tokens, bridge assets, deposit or withdraw from yield (Aave aTokens, ERC-4626 vaults), register on-chain identity, submit or query reputation/feedback, or make x402 micropayments. Covers the full lifecycle: OMS smart contract wallets, Trails DeFi actions, ERC-8004 identity + reputation, x402 payments. Single CLI entry point (`polygon-agent`), AES-256-GCM encrypted storage." --- # Polygon Agentic CLI @@ -25,7 +25,7 @@ npm install -g @polygonlabs/agent-cli@latest # upgrade ## Architecture -The CLI uses the **Sequence V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). The agent authenticates with **Google browser login** via `wallet login`; the command prints/opens a Google sign-in URL, and once the user signs in the wallet is created/unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. +The CLI uses the **OMS (Open Money Stack) V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). The agent authenticates with **Google browser login** via `wallet login`; the command prints/opens a Google sign-in URL, and once the user signs in the wallet is created/unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. | Wallet | Created by | Purpose | Fund? | |--------|-----------|---------|-------| @@ -37,18 +37,19 @@ The wallet address is the **same across all EVM chains**. Sessions last ~1 week ### OMS credentials (required) -`wallet login` and on-chain reads need two values from the [Sequence Builder](https://sequence.build) dashboard: +`wallet login` and on-chain reads need one value from the [OMS Builder](https://sequence.build) dashboard: | Variable | Description | |----------|-------------| -| `SEQUENCE_PUBLISHABLE_KEY` | OMS publishable key (safe in client) | -| `SEQUENCE_OMS_PROJECT_ID` | OMS project id (e.g. `proj_...`) | +| `SEQUENCE_PUBLISHABLE_KEY` | OMS publishable key (safe in client) — identifies the project on its own | -Set them via env, or persist once with `setup` so every command reads them from `~/.polygon-agent/builder.json`: +Set it via env, or persist once with `setup` so every command reads it from `~/.polygon-agent/builder.json`: ```bash -polygon-agent setup --oms-publishable-key --oms-project-id +polygon-agent setup --oms-publishable-key ``` +`--oms-project-id ` is also accepted but optional — it's kept only as legacy display metadata. + ### Optional overrides | Variable | Default | |----------|---------| @@ -60,10 +61,10 @@ polygon-agent setup --oms-publishable-key --oms-project-id ## Complete Setup Flow ```bash -# Step 1: Save OMS credentials (from the Sequence Builder dashboard) -polygon-agent setup --oms-publishable-key --oms-project-id -# → stores publishableKey + omsProjectId to ~/.polygon-agent/builder.json -# → all subsequent commands auto-load them from disk — no export needed +# Step 1: Save OMS credentials (from the OMS Builder dashboard) +polygon-agent setup --oms-publishable-key +# → stores publishableKey to ~/.polygon-agent/builder.json +# → all subsequent commands auto-load it from disk — no export needed # Step 2: Log in with Google in the browser polygon-agent wallet login @@ -102,7 +103,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin > **IMPORTANT — x402 calls:** If the user asks to use x402 to fetch data (Twitter/X profiles, web search, news, AI images, code review, etc.), follow these steps in order before making any request: > > 1. Fetch and read the discovery skill: `GET https://agentconnect.polygon.technology/polygon-discovery/SKILL.md` -> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key --oms-project-id ` (if not already done), then `polygon-agent wallet login` and sign in with Google in the browser, then fund the wallet before continuing. +> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key ` (if not already done), then `polygon-agent wallet login` and sign in with Google in the browser, then fund the wallet before continuing. > 3. Run `polygon-agent balances` — confirm USDC is available before proceeding; x402 calls will fail with an EOA funding error if the wallet is empty > > Do not guess endpoints or search the web for x402 providers. The discovery skill documents the correct, working endpoints with exact URL formats. @@ -114,7 +115,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin ### Setup ```bash polygon-agent setup [--name ] [--force] - [--oms-publishable-key ] [--oms-project-id ] # save OMS credentials + [--oms-publishable-key ] [--oms-project-id ] # save OMS credentials (project id optional/legacy) ``` ### Wallet @@ -201,7 +202,7 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | Issue | Fix | |-------|-----| -| `OMS credentials not configured` | Run `setup --oms-publishable-key --oms-project-id ` (or set `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID`) | +| `OMS credentials not configured` | Run `setup --oms-publishable-key ` (or set `SEQUENCE_PUBLISHABLE_KEY`) | | `Wallet not found` | `wallet list`, then `polygon-agent wallet login` | | Session expired (`OMS_SESSION_EXPIRED`) | Run `polygon-agent wallet login` (~1-week lifetime) | | `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has POL or a fee token. For native-only wallets, add `--prefer-native-fee` on `call` | diff --git a/skills/polygon-agent-cli/SKILL.md b/skills/polygon-agent-cli/SKILL.md index 74eba8c..da82cda 100644 --- a/skills/polygon-agent-cli/SKILL.md +++ b/skills/polygon-agent-cli/SKILL.md @@ -1,6 +1,6 @@ --- name: polygon-agent-cli -description: "Complete Polygon agent toolkit for on-chain operations on Polygon. Use this skill whenever helping an agent set up a wallet, check balances, send or swap tokens, bridge assets, deposit or withdraw from yield (Aave aTokens, ERC-4626 vaults), register on-chain identity, submit or query reputation/feedback, or make x402 micropayments. Covers the full lifecycle: Sequence smart contract wallets, Trails DeFi actions, ERC-8004 identity + reputation, x402 payments. Single CLI entry point (`polygon-agent`), AES-256-GCM encrypted storage." +description: "Complete Polygon agent toolkit for on-chain operations on Polygon. Use this skill whenever helping an agent set up a wallet, check balances, send or swap tokens, bridge assets, deposit or withdraw from yield (Aave aTokens, ERC-4626 vaults), register on-chain identity, submit or query reputation/feedback, or make x402 micropayments. Covers the full lifecycle: OMS smart contract wallets, Trails DeFi actions, ERC-8004 identity + reputation, x402 payments. Single CLI entry point (`polygon-agent`), AES-256-GCM encrypted storage." --- # Polygon Agentic CLI @@ -25,7 +25,7 @@ npm install -g @polygonlabs/agent-cli@latest # upgrade ## Architecture -The CLI uses the **Sequence V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). The agent authenticates with **Google browser login** via `wallet login`; the command prints/opens a Google sign-in URL, and once the user signs in the wallet is created/unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. +The CLI uses the **OMS (Open Money Stack) V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). The agent authenticates with **Google browser login** via `wallet login`; the command prints/opens a Google sign-in URL, and once the user signs in the wallet is created/unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. | Wallet | Created by | Purpose | Fund? | |--------|-----------|---------|-------| @@ -37,18 +37,19 @@ The wallet address is the **same across all EVM chains**. Sessions last ~1 week ### OMS credentials (required) -`wallet login` and on-chain reads need two values from the [Sequence Builder](https://sequence.build) dashboard: +`wallet login` and on-chain reads need one value from the [OMS Builder](https://sequence.build) dashboard: | Variable | Description | |----------|-------------| -| `SEQUENCE_PUBLISHABLE_KEY` | OMS publishable key (safe in client) | -| `SEQUENCE_OMS_PROJECT_ID` | OMS project id (e.g. `proj_...`) | +| `SEQUENCE_PUBLISHABLE_KEY` | OMS publishable key (safe in client) — identifies the project on its own | -Set them via env, or persist once with `setup` so every command reads them from `~/.polygon-agent/builder.json`: +Set it via env, or persist once with `setup` so every command reads it from `~/.polygon-agent/builder.json`: ```bash -polygon-agent setup --oms-publishable-key --oms-project-id +polygon-agent setup --oms-publishable-key ``` +`--oms-project-id ` is also accepted but optional — it's kept only as legacy display metadata. + ### Optional overrides | Variable | Default | |----------|---------| @@ -61,10 +62,10 @@ polygon-agent setup --oms-publishable-key --oms-project-id ## Complete Setup Flow ```bash -# Step 1: Save OMS credentials (from the Sequence Builder dashboard) -polygon-agent setup --oms-publishable-key --oms-project-id -# → stores publishableKey + omsProjectId to ~/.polygon-agent/builder.json -# → all subsequent commands auto-load them from disk — no export needed +# Step 1: Save OMS credentials (from the OMS Builder dashboard) +polygon-agent setup --oms-publishable-key +# → stores publishableKey to ~/.polygon-agent/builder.json +# → all subsequent commands auto-load it from disk — no export needed # Step 2: Log in with Google in the browser polygon-agent wallet login @@ -103,7 +104,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin > **IMPORTANT — x402 calls:** If the user asks to use x402 to fetch data (Twitter/X profiles, web search, news, AI images, code review, etc.), follow these steps in order before making any request: > > 1. Fetch and read the discovery skill: `GET https://agentconnect.polygon.technology/polygon-discovery/SKILL.md` -> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key --oms-project-id ` (if not already done), then `polygon-agent wallet login` and sign in with Google in the browser, then fund the wallet before continuing. +> 2. Run `polygon-agent wallet list` — if no wallet exists, log in: `polygon-agent setup --oms-publishable-key ` (if not already done), then `polygon-agent wallet login` and sign in with Google in the browser, then fund the wallet before continuing. > 3. Run `polygon-agent balances` — confirm USDC is available before proceeding; x402 calls will fail with an EOA funding error if the wallet is empty > > Do not guess endpoints or search the web for x402 providers. The discovery skill documents the correct, working endpoints with exact URL formats. @@ -115,7 +116,7 @@ For specific workflows, fetch and load the relevant sub-skill **before attemptin ### Setup ```bash polygon-agent setup [--name ] [--force] - [--oms-publishable-key ] [--oms-project-id ] # save OMS credentials + [--oms-publishable-key ] [--oms-project-id ] # save OMS credentials (project id optional/legacy) ``` ### Wallet @@ -201,7 +202,7 @@ CLI commands output JSON (non-TTY). After running a command, always render the r | Issue | Fix | |-------|-----| -| `OMS credentials not configured` | Run `setup --oms-publishable-key --oms-project-id ` (or set `SEQUENCE_PUBLISHABLE_KEY` + `SEQUENCE_OMS_PROJECT_ID`) | +| `OMS credentials not configured` | Run `setup --oms-publishable-key ` (or set `SEQUENCE_PUBLISHABLE_KEY`) | | `Wallet not found` | `wallet list`, then `polygon-agent wallet login` | | Session expired (`OMS_SESSION_EXPIRED`) | Run `polygon-agent wallet login` (~1-week lifetime) | | `Fee option errors` | Set `POLYGON_AGENT_DEBUG_FEE=1`, ensure wallet has POL or a fee token. For native-only wallets, add `--prefer-native-fee` on `call` | diff --git a/skills/polygon-discovery/SKILL.md b/skills/polygon-discovery/SKILL.md index a33d315..3d5871d 100644 --- a/skills/polygon-discovery/SKILL.md +++ b/skills/polygon-discovery/SKILL.md @@ -24,7 +24,7 @@ polygon-agent wallet list **If no wallet is listed**, log in before proceeding: -1. `polygon-agent setup --oms-publishable-key --oms-project-id ` — saves OMS credentials (from the Sequence Builder dashboard) +1. `polygon-agent setup --oms-publishable-key ` — saves OMS credentials (from the OMS Builder dashboard) 2. `polygon-agent wallet login` — logs in with Google in the browser; sign in when the Google URL opens (add `--remote` on headless hosts) 3. `polygon-agent wallet address` — get the address, then fund it (`polygon-agent fund`) 4. `polygon-agent balances` — confirm USDC is available before calling any x402 endpoint diff --git a/skills/polygon-polymarket/SKILL.md b/skills/polygon-polymarket/SKILL.md index fa419fd..802f859 100644 --- a/skills/polygon-polymarket/SKILL.md +++ b/skills/polygon-polymarket/SKILL.md @@ -25,9 +25,9 @@ Every Polymarket user has three addresses. Do not confuse them: |------|-----------|---------| | EOA | Private key owner. Shown as `eoaAddress` in CLI output | Signs transactions and CLOB orders. Needs POL for gas only when running `approve` | | Proxy Wallet | Shown as `proxyWalletAddress` in CLI output. This is what Polymarket shows as "your address" in the UI | Holds pUSD and outcome tokens. The CLOB `maker` | -| Smart Wallet | The Sequence wallet (`polygon-agent wallet`) | Funds the proxy wallet with USDC.e per trade (auto-wrapped to pUSD) | +| Smart Wallet | The OMS wallet (`polygon-agent wallet`) | Funds the proxy wallet with USDC.e per trade (auto-wrapped to pUSD) | -**For trading:** USDC.e flows from the Sequence smart wallet → proxy wallet → auto-wrapped to pUSD → CLOB orders. The proxy wallet is the trading identity. +**For trading:** USDC.e flows from the OMS smart wallet → proxy wallet → auto-wrapped to pUSD → CLOB orders. The proxy wallet is the trading identity. --- @@ -196,7 +196,7 @@ polygon-agent polymarket clob-buy YES --price 0.45 -- ``` **How it works:** -1. Smart wallet transfers `usdcAmount` USDC.e to the proxy wallet (Sequence tx) +1. Smart wallet transfers `usdcAmount` USDC.e to the proxy wallet (OMS tx) 2. Proxy wallet wraps USDC.e → pUSD via CollateralOnramp (on-chain, EOA gas) 3. Posts CLOB BUY order: maker=proxy wallet, signer=EOA (off-chain, no gas) 4. Tokens arrive in proxy wallet on fill @@ -347,7 +347,7 @@ When deciding whether to sell: - **All commands are dry-run by default.** `approve`, `clob-buy`, `sell` do nothing without `--broadcast`. - **V2 approvals are required for all users.** V1 approvals on old exchange contracts do not carry over. Run `approve --broadcast` once after migration. - **`clob-buy` handles the full flow automatically:** transfers USDC.e from smart wallet → proxy wallet, wraps USDC.e → pUSD, then places the CLOB order (unless `--skip-fund`). -- **Positions live in the proxy wallet**, not the Sequence smart wallet. `positions` queries the proxy wallet. +- **Positions live in the proxy wallet**, not the OMS smart wallet. `positions` queries the proxy wallet. - **Sell is free.** No gas, no on-chain tx. Selling via CLOB is a signed off-chain message only. Proceeds are pUSD. - **`orderStatus: "matched"`** means the trade filled. `"unmatched"` means FOK failed (no liquidity). - **Fees are protocol-determined at match time.** Makers never pay fees — only takers. No `feeRateBps` on orders. From c6aa273e00d5f5699be0becee42f1aabaf45ef8d Mon Sep 17 00:00:00 2001 From: James Lawton Date: Mon, 13 Jul 2026 11:41:18 +0100 Subject: [PATCH 25/79] feat(oidc-relay): loginsession core for browser login pairing --- packages/oidc-relay/package.json | 4 +- packages/oidc-relay/src/login-session.test.ts | 79 +++++ packages/oidc-relay/src/login-session.ts | 68 ++++ packages/oidc-relay/tsconfig.json | 3 +- pnpm-lock.yaml | 312 ++++++++++++++++++ 5 files changed, 464 insertions(+), 2 deletions(-) create mode 100644 packages/oidc-relay/src/login-session.test.ts create mode 100644 packages/oidc-relay/src/login-session.ts diff --git a/packages/oidc-relay/package.json b/packages/oidc-relay/package.json index f090f68..880ddbe 100644 --- a/packages/oidc-relay/package.json +++ b/packages/oidc-relay/package.json @@ -9,10 +9,12 @@ "deploy:staging": "npx -y wrangler@3 deploy --env staging", "deploy:production": "npx -y wrangler@3 deploy --env production", "dev": "npx -y wrangler@3 dev", + "test": "vitest run", "typecheck": "tsc --noEmit" }, "devDependencies": { "@cloudflare/workers-types": "^4.20240712.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "vitest": "^3.0.0" } } diff --git a/packages/oidc-relay/src/login-session.test.ts b/packages/oidc-relay/src/login-session.test.ts new file mode 100644 index 0000000..675f40f --- /dev/null +++ b/packages/oidc-relay/src/login-session.test.ts @@ -0,0 +1,79 @@ +import { describe, expect, it } from 'vitest'; + +import type { SessionStore } from './login-session.ts'; + +import { LoginSessionCore } from './login-session.ts'; + +function memoryStore(): SessionStore { + const map = new Map(); + return { + get: async (key: string) => map.get(key) as T | undefined, + put: async (entries) => { + for (const [k, v] of Object.entries(entries)) map.set(k, v); + }, + delete: async (key) => map.delete(key), + deleteAll: async () => map.clear() + }; +} + +describe('LoginSessionCore', () => { + it('reports expired before register', async () => { + const core = new LoginSessionCore(memoryStore()); + expect(await core.getStatus()).toEqual({ status: 'expired' }); + expect(await core.nextAction()).toEqual({ state: 'expired' }); + expect(await core.submitAction({ type: 'google' })).toEqual({ ok: false, error: 'expired' }); + }); + + it('register arms the session with awaiting-method', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + expect(await core.getStatus()).toEqual({ status: 'awaiting-method' }); + expect(await core.nextAction()).toEqual({ state: 'pending' }); + }); + + it('actions are one-time reads', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.submitAction({ type: 'email', email: 'a@b.co' }); + expect(await core.nextAction()).toEqual({ + state: 'action', + action: { type: 'email', email: 'a@b.co' } + }); + expect(await core.nextAction()).toEqual({ state: 'pending' }); + }); + + it('a newer action replaces an unconsumed one (latest wins)', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.submitAction({ type: 'google' }); + await core.submitAction({ type: 'cancel' }); + expect(await core.nextAction()).toEqual({ state: 'action', action: { type: 'cancel' } }); + }); + + it('status round-trips and is repeat-readable', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.setStatus({ status: 'otp-sent' }); + expect(await core.getStatus()).toEqual({ status: 'otp-sent' }); + expect(await core.getStatus()).toEqual({ status: 'otp-sent' }); + }); + + it('rejects actions after a terminal status', async () => { + const core = new LoginSessionCore(memoryStore()); + await core.register(); + await core.setStatus({ status: 'done', walletAddress: '0xabc' }); + expect(await core.submitAction({ type: 'otp', code: '123456' })).toEqual({ + ok: false, + error: 'finished' + }); + expect(await core.getStatus()).toEqual({ status: 'done', walletAddress: '0xabc' }); + }); + + it('deleteAll expires everything (alarm behavior)', async () => { + const store = memoryStore(); + const core = new LoginSessionCore(store); + await core.register(); + await store.deleteAll(); + expect(await core.getStatus()).toEqual({ status: 'expired' }); + }); +}); diff --git a/packages/oidc-relay/src/login-session.ts b/packages/oidc-relay/src/login-session.ts new file mode 100644 index 0000000..92664cf --- /dev/null +++ b/packages/oidc-relay/src/login-session.ts @@ -0,0 +1,68 @@ +// Pairing-session logic for the browser login flow. Pure logic over a minimal +// storage interface so it is unit-testable without the Workers runtime; the +// Durable Object wrapper lives in relay.ts wiring (Task 2). +// +// One pending action slot, latest wins: the page waits for a status change +// before offering the next input, so at most one action is meaningfully in +// flight; a second submit (double click, cancel during OTP) should replace, +// not queue. Actions are one-time reads so an OTP can never be replayed. + +export type LoginAction = + | { type: 'google' } + | { type: 'email'; email: string } + | { type: 'otp'; code: string } + | { type: 'cancel' }; + +export type LoginStatus = + | { status: 'awaiting-method' } + | { status: 'auth-url'; url: string } + | { status: 'otp-sent' } + | { status: 'otp-invalid'; attemptsLeft?: number } + | { status: 'done'; walletAddress: string } + | { status: 'error'; message: string }; + +export interface SessionStore { + get(key: string): Promise; + put(entries: Record): Promise; + delete(key: string): Promise; + deleteAll(): Promise; +} + +export class LoginSessionCore { + constructor(private readonly store: SessionStore) {} + + async register(): Promise { + await this.store.put({ armed: true, status: { status: 'awaiting-method' } }); + } + + async submitAction( + action: LoginAction + ): Promise<{ ok: boolean; error?: 'expired' | 'finished' }> { + if (!(await this.store.get('armed'))) return { ok: false, error: 'expired' }; + const status = await this.store.get('status'); + if (status && (status.status === 'done' || status.status === 'error')) { + return { ok: false, error: 'finished' }; + } + await this.store.put({ pendingAction: action }); + return { ok: true }; + } + + async nextAction(): Promise< + { state: 'expired' } | { state: 'pending' } | { state: 'action'; action: LoginAction } + > { + if (!(await this.store.get('armed'))) return { state: 'expired' }; + const action = await this.store.get('pendingAction'); + if (!action) return { state: 'pending' }; + await this.store.delete('pendingAction'); + return { state: 'action', action }; + } + + async setStatus(status: LoginStatus): Promise { + await this.store.put({ status }); + } + + async getStatus(): Promise { + if (!(await this.store.get('armed'))) return { status: 'expired' }; + return (await this.store.get('status')) ?? { status: 'expired' }; + } +} diff --git a/packages/oidc-relay/tsconfig.json b/packages/oidc-relay/tsconfig.json index 2e58d63..8742235 100644 --- a/packages/oidc-relay/tsconfig.json +++ b/packages/oidc-relay/tsconfig.json @@ -8,7 +8,8 @@ "strict": true, "skipLibCheck": true, "noEmit": true, - "esModuleInterop": true + "esModuleInterop": true, + "allowImportingTsExtensions": true }, "include": ["src/**/*.ts"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30f7e85..2c03e7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,6 +106,9 @@ importers: typescript: specifier: ^5.9.3 version: 5.9.3 + vitest: + specifier: ^3.0.0 + version: 3.2.7(@types/debug@4.1.13)(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) packages/polygon-agent-cli: dependencies: @@ -2967,6 +2970,9 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -2976,6 +2982,9 @@ packages: '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} @@ -3200,6 +3209,35 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@vitest/expect@3.2.7': + resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==} + + '@vitest/mocker@3.2.7': + resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.7': + resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==} + + '@vitest/runner@3.2.7': + resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==} + + '@vitest/snapshot@3.2.7': + resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==} + + '@vitest/spy@3.2.7': + resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==} + + '@vitest/utils@3.2.7': + resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==} + '@wagmi/connectors@6.2.0': resolution: {integrity: sha512-2NfkbqhNWdjfibb4abRMrn7u6rPjEGolMfApXss6HCDVt9AW2oVC6k8Q5FouzpJezElxLJSagWz9FW1zaRlanA==} peerDependencies: @@ -3454,6 +3492,10 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} @@ -3565,6 +3607,10 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -3588,6 +3634,10 @@ packages: caniuse-lite@1.0.30001775: resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -3602,6 +3652,10 @@ packages: charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + engines: {node: '>= 16'} + chokidar@5.0.0: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} @@ -3800,6 +3854,10 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -3935,6 +3993,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -4069,6 +4130,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -4107,6 +4171,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + engines: {node: '>=12.0.0'} + extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -4569,6 +4637,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.2: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true @@ -4768,6 +4839,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lru-cache@11.5.1: resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} engines: {node: 20 || >=22} @@ -5073,6 +5147,13 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -5414,6 +5495,9 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5486,6 +5570,12 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stream-chain@2.2.5: resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} @@ -5533,6 +5623,9 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + superstruct@1.0.4: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} @@ -5574,6 +5667,12 @@ packages: thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyexec@1.0.2: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} @@ -5582,6 +5681,18 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + to-buffer@1.2.2: resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} engines: {node: '>= 0.4'} @@ -5842,6 +5953,11 @@ packages: typescript: optional: true + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite@5.4.21: resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5873,6 +5989,34 @@ packages: terser: optional: true + vitest@3.2.7: + resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.7 + '@vitest/ui': 3.2.7 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + wagmi@2.19.5: resolution: {integrity: sha512-RQUfKMv6U+EcSNNGiPbdkDtJwtuFxZWLmvDiQmjjBgkuPulUwDJsKhi7gjynzJdsx2yDqhHCXkKsbbfbIsHfcQ==} peerDependencies: @@ -5905,6 +6049,11 @@ packages: engines: {node: '>= 8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + widest-line@5.0.0: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} @@ -9622,6 +9771,11 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/connect@3.4.38': dependencies: '@types/node': 22.19.13 @@ -9634,6 +9788,8 @@ snapshots: dependencies: '@types/ms': 2.1.0 + '@types/deep-eql@4.0.2': {} + '@types/esrecurse@4.3.1': {} '@types/estree@1.0.8': {} @@ -9847,6 +10003,48 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/expect@3.2.7': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.7(vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1))': + dependencies: + '@vitest/spy': 3.2.7 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + + '@vitest/pretty-format@3.2.7': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.7': + dependencies: + '@vitest/utils': 3.2.7 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@3.2.7': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + '@wagmi/connectors@6.2.0(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76)))(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76)': dependencies: '@base-org/account': 2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@6.0.6)(zod@3.25.76) @@ -10603,6 +10801,8 @@ snapshots: array-union@2.1.0: {} + assertion-error@2.0.1: {} + async-mutex@0.2.6: dependencies: tslib: 2.8.1 @@ -10724,6 +10924,8 @@ snapshots: dependencies: run-applescript: 7.1.0 + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -10747,6 +10949,14 @@ snapshots: caniuse-lite@1.0.30001775: {} + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -10758,6 +10968,8 @@ snapshots: charenc@0.0.2: {} + check-error@2.1.3: {} + chokidar@5.0.0: dependencies: readdirp: 5.0.0 @@ -10933,6 +11145,8 @@ snapshots: decode-uri-component@0.2.2: {} + deep-eql@5.0.2: {} + deep-is@0.1.4: {} default-browser-id@5.0.1: {} @@ -11062,6 +11276,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -11290,6 +11506,10 @@ snapshots: estraverse@5.3.0: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + esutils@2.0.3: {} eth-block-tracker@7.1.0: @@ -11381,6 +11601,8 @@ snapshots: events@3.3.0: {} + expect-type@1.4.0: {} + extendable-error@0.1.7: {} extension-port-stream@3.0.0: @@ -11813,6 +12035,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.2: dependencies: argparse: 1.0.10 @@ -11989,6 +12213,8 @@ snapshots: dependencies: js-tokens: 4.0.0 + loupe@3.2.1: {} + lru-cache@11.5.1: {} lru-cache@5.1.1: @@ -12346,6 +12572,10 @@ snapshots: path-type@4.0.0: {} + pathe@2.0.3: {} + + pathval@2.0.1: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -12676,6 +12906,8 @@ snapshots: shell-quote@1.8.3: {} + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -12755,6 +12987,10 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + + std-env@3.10.0: {} + stream-chain@2.2.5: {} stream-json@1.9.1: @@ -12802,6 +13038,10 @@ snapshots: strip-bom@3.0.0: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + superstruct@1.0.4: {} superstruct@2.0.2: {} @@ -12836,6 +13076,10 @@ snapshots: dependencies: real-require: 0.1.0 + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + tinyexec@1.0.2: {} tinyglobby@0.2.15: @@ -12843,6 +13087,12 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} + to-buffer@1.2.2: dependencies: isarray: 2.0.5 @@ -13127,6 +13377,24 @@ snapshots: - utf-8-validate - zod + vite-node@3.2.4(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1): dependencies: esbuild: 0.21.5 @@ -13138,6 +13406,45 @@ snapshots: lightningcss: 1.32.0 terser: 5.46.1 + vitest@3.2.7(@types/debug@4.1.13)(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.7 + '@vitest/mocker': 3.2.7(vite@5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1)) + '@vitest/pretty-format': 3.2.7 + '@vitest/runner': 3.2.7 + '@vitest/snapshot': 3.2.7 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.4.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 5.4.21(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + vite-node: 3.2.4(@types/node@22.19.13)(lightningcss@1.32.0)(terser@5.46.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.13 + '@types/node': 22.19.13 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + wagmi@2.19.5(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@6.0.6)(viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76))(zod@3.25.76): dependencies: '@tanstack/react-query': 5.101.2(react@18.3.1) @@ -13208,6 +13515,11 @@ snapshots: dependencies: isexe: 2.0.0 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + widest-line@5.0.0: dependencies: string-width: 7.2.0 From 5fd5e36c4c764efc90495639753db40b0c6eadbd Mon Sep 17 00:00:00 2001 From: James Lawton Date: Mon, 13 Jul 2026 11:47:45 +0100 Subject: [PATCH 26/79] feat(oidc-relay): /api/login pairing routes backed by LoginSession DO --- packages/oidc-relay/src/login-session.ts | 51 +++++++++++ packages/oidc-relay/src/relay.ts | 103 +++++++++++++++++++++++ packages/oidc-relay/wrangler.toml | 24 ++++++ 3 files changed, 178 insertions(+) diff --git a/packages/oidc-relay/src/login-session.ts b/packages/oidc-relay/src/login-session.ts index 92664cf..b55f3fd 100644 --- a/packages/oidc-relay/src/login-session.ts +++ b/packages/oidc-relay/src/login-session.ts @@ -66,3 +66,54 @@ export class LoginSessionCore { return (await this.store.get('status')) ?? { status: 'expired' }; } } + +const SESSION_TTL_MS = 10 * 60 * 1000; // matches OidcHandoff + +function doStore(storage: DurableObjectStorage): SessionStore { + return { + get: (key) => storage.get(key), + put: (entries) => storage.put(entries), + delete: (key) => storage.delete(key), + deleteAll: () => storage.deleteAll() + }; +} + +// --- Durable Object: one instance per login session id --- +export class LoginSession { + private readonly core: LoginSessionCore; + constructor(private readonly state: DurableObjectState) { + this.core = new LoginSessionCore(doStore(state.storage)); + } + + async fetch(request: Request): Promise { + const url = new URL(request.url); + const op = url.pathname; // internal path set by the router in relay.ts + + if (op === '/register') { + await this.core.register(); + await this.state.storage.setAlarm(Date.now() + SESSION_TTL_MS); + return new Response(null, { status: 204 }); + } + if (op === '/action') { + const action = (await request.json()) as LoginAction; + const result = await this.core.submitAction(action); + if (!result.ok) return Response.json({ error: result.error }, { status: 410 }); + return new Response(null, { status: 204 }); + } + if (op === '/next-action') { + return Response.json(await this.core.nextAction()); + } + if (op === '/set-status') { + await this.core.setStatus(await request.json()); + return new Response(null, { status: 204 }); + } + if (op === '/get-status') { + return Response.json(await this.core.getStatus()); + } + return new Response('not found', { status: 404 }); + } + + async alarm(): Promise { + await this.state.storage.deleteAll(); + } +} diff --git a/packages/oidc-relay/src/relay.ts b/packages/oidc-relay/src/relay.ts index 4452461..365365d 100644 --- a/packages/oidc-relay/src/relay.ts +++ b/packages/oidc-relay/src/relay.ts @@ -20,10 +20,17 @@ // GET /cb?code&state (or ?error&state) (browser: the redirect lands here) // GET /poll?state -> { status, code?, state?, error? } (CLI: poll for result) +import type { LoginAction } from './login-session.ts'; + +import { LoginSession } from './login-session.ts'; + +export { LoginSession }; + const SESSION_TTL_MS = 10 * 60 * 1000; // 10 minutes to complete the login interface Env { OIDC_RELAY: DurableObjectNamespace; + LOGIN_SESSION: DurableObjectNamespace; } function cors(res: Response): Response { @@ -44,6 +51,28 @@ function validState(s: string | null): s is string { return typeof s === 'string' && s.length > 0 && s.length <= 4096 && /^[A-Za-z0-9_-]+$/.test(s); } +function validSession(s: string | null): s is string { + return typeof s === 'string' && /^[A-Za-z0-9_-]{16,64}$/.test(s); +} + +// Shape-check browser-submitted actions before they reach the DO. +function validAction(a: unknown): a is LoginAction { + if (typeof a !== 'object' || a === null) return false; + const t = (a as { type?: unknown }).type; + if (t === 'google' || t === 'cancel') return true; + if (t === 'email') { + const email = (a as { email?: unknown }).email; + return ( + typeof email === 'string' && email.length >= 3 && email.length <= 320 && email.includes('@') + ); + } + if (t === 'otp') { + const code = (a as { code?: unknown }).code; + return typeof code === 'string' && code.length >= 4 && code.length <= 16; + } + return false; +} + const DONE_HTML = `Login complete -

You're signed in

-

Login complete. You can close this tab and return to your terminal.

`; - -const FAIL_HTML = DONE_HTML.replace("You're signed in", 'Login failed').replace( - 'Login complete. You can close this tab and return to your terminal.', - 'Something went wrong. Return to your terminal for details.' -); - -// Shown when the callback is hit again after the CLI already consumed the -// one-time session (a browser refresh/duplicate) or after it expired. Login is -// driven from the terminal, so this is neutral, not an error. -const CLOSE_HTML = DONE_HTML.replace("You're signed in", 'All set').replace( - 'Login complete. You can close this tab and return to your terminal.', - 'This sign-in link has already been used. Check your terminal — you can close this tab.' -); - -// --- Durable Object: one instance per OIDC `state` --- -export class OidcHandoff { - private state: DurableObjectState; - constructor(state: DurableObjectState) { - this.state = state; - } - - async fetch(request: Request): Promise { - const url = new URL(request.url); - const op = url.pathname; // internal path set by the router below - - if (op === '/register') { - const returnTo = url.searchParams.get('returnTo'); - await this.state.storage.put('status', 'pending'); - if (returnTo) await this.state.storage.put('returnTo', returnTo); - await this.state.storage.setAlarm(Date.now() + SESSION_TTL_MS); - return new Response(null, { status: 204 }); - } - - if (op === '/capture') { - const code = url.searchParams.get('code'); - const state = url.searchParams.get('state'); - const error = url.searchParams.get('error'); - const status = await this.state.storage.get('status'); - if (!status) - return new Response(CLOSE_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); - const returnTo = await this.state.storage.get('returnTo'); - if (error) { - await this.state.storage.put({ status: 'error', error }); - // With a returnTo the branded page renders the failure (the CLI publishes - // an error status); without one, keep the legacy inline page. - if (returnTo) return Response.redirect(returnTo, 302); - return new Response(FAIL_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); - } - if (!code || !state) return new Response('missing code or state', { status: 400 }); - await this.state.storage.put({ status: 'ready', code, state }); - if (returnTo) return Response.redirect(returnTo, 302); - return new Response(DONE_HTML, { status: 200, headers: { 'Content-Type': 'text/html' } }); - } - - if (op === '/poll') { - const status = await this.state.storage.get('status'); - if (!status) return Response.json({ status: 'expired' }); - if (status === 'ready') { - const [code, state] = await Promise.all([ - this.state.storage.get('code'), - this.state.storage.get('state') - ]); - await this.state.storage.deleteAll(); // one-time read - return Response.json({ status: 'ready', code, state }); - } - if (status === 'error') { - const error = await this.state.storage.get('error'); - await this.state.storage.deleteAll(); - return Response.json({ status: 'error', error }); - } - return Response.json({ status: 'pending' }); - } - - return new Response('not found', { status: 404 }); - } - - // TTL: drop the entry if the login never completes. - async alarm(): Promise { - await this.state.storage.deleteAll(); + if (t === 'oidc-callback') { + return validCallbackUrl((a as { callbackUrl?: unknown }).callbackUrl); } + return false; } // --- Worker entry / router --- @@ -177,51 +89,6 @@ export default { return json({ ok: true, service: 'oidc-relay' }); } - // POST /api/oidc/register { state } -> arm the DO for this state. - // The CLI already holds `state` from startOidcRedirectAuth, so there is no - // separate request id: the state IS the handle. - if (request.method === 'POST' && url.pathname === '/api/oidc/register') { - let body: unknown; - try { - body = await request.json(); - } catch { - return json({ error: 'invalid json' }, 400); - } - const state = (body as { state?: unknown } | null)?.state; - if (!validState(typeof state === 'string' ? state : null)) { - return json({ error: 'invalid state' }, 400); - } - const returnTo = (body as { returnTo?: unknown } | null)?.returnTo; - if (returnTo !== undefined && !validReturnTo(returnTo)) { - return json({ error: 'invalid returnTo' }, 400); - } - const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state as string)); - const inner = new URL('https://do/register'); - if (returnTo) inner.searchParams.set('returnTo', returnTo as string); - await stub.fetch(new Request(inner.toString(), { method: 'POST' })); - return cors(new Response(null, { status: 204 })); - } - - // GET /api/oidc/cb?code=...&state=... (the browser's redirect target). - // Serves HTML to the browser, so it is NOT CORS-wrapped. - if (request.method === 'GET' && url.pathname === '/api/oidc/cb') { - const state = url.searchParams.get('state'); - if (!validState(state)) return new Response('missing or invalid state', { status: 400 }); - const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state)); - const inner = new URL('https://do/capture'); - inner.search = url.search; // forward code/state/error - return stub.fetch(new Request(inner.toString(), { redirect: 'manual' })); - } - - // GET /api/oidc/poll?state=... (CLI polls for the result) - if (request.method === 'GET' && url.pathname === '/api/oidc/poll') { - const state = url.searchParams.get('state'); - if (!validState(state)) return json({ status: 'error', error: 'invalid state' }, 400); - const stub = env.OIDC_RELAY.get(env.OIDC_RELAY.idFromName(state)); - const res = await stub.fetch(new Request('https://do/poll')); - return cors(res); - } - // --- Browser-login pairing sessions (/api/login/*) --- const loginStub = (session: string) => env.LOGIN_SESSION.get(env.LOGIN_SESSION.idFromName(session)); diff --git a/packages/oidc-relay/src/return-to.test.ts b/packages/oidc-relay/src/return-to.test.ts deleted file mode 100644 index cc9eb90..0000000 --- a/packages/oidc-relay/src/return-to.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { validReturnTo } from './return-to.ts'; - -describe('validReturnTo', () => { - it('accepts the production and staging login pages over https', () => { - expect(validReturnTo('https://agentconnect.polygon.technology/login#abc')).toBe(true); - expect(validReturnTo('https://agentconnect.staging.polygon.technology/login#abc')).toBe(true); - }); - it('accepts localhost over http for local dev', () => { - expect(validReturnTo('http://localhost:5173/login#abc')).toBe(true); - expect(validReturnTo('http://127.0.0.1:5173/login#abc')).toBe(true); - }); - it('rejects http on non-local hosts', () => { - expect(validReturnTo('http://agentconnect.polygon.technology/login')).toBe(false); - }); - it('rejects other hosts', () => { - expect(validReturnTo('https://evil.example.com/login')).toBe(false); - expect(validReturnTo('https://agentconnect.polygon.technology.evil.com/login')).toBe(false); - }); - it('rejects non-URLs, non-strings, and oversized values', () => { - expect(validReturnTo('not a url')).toBe(false); - expect(validReturnTo(42)).toBe(false); - expect(validReturnTo(`https://agentconnect.polygon.technology/${'a'.repeat(2050)}`)).toBe( - false - ); - }); -}); diff --git a/packages/oidc-relay/src/return-to.ts b/packages/oidc-relay/src/return-to.ts deleted file mode 100644 index d5895a5..0000000 --- a/packages/oidc-relay/src/return-to.ts +++ /dev/null @@ -1,23 +0,0 @@ -// Host allowlist for the post-capture redirect. Prevents the OIDC callback -// from being turned into an open redirect: only our login pages (plus -// localhost for dev) may be a returnTo target. - -const ALLOWED_HOSTS = new Set([ - 'agentconnect.polygon.technology', - 'agentconnect.staging.polygon.technology', - 'localhost', - '127.0.0.1' -]); - -export function validReturnTo(raw: unknown): raw is string { - if (typeof raw !== 'string' || raw.length === 0 || raw.length > 2048) return false; - let url: URL; - try { - url = new URL(raw); - } catch { - return false; - } - const isLocal = url.hostname === 'localhost' || url.hostname === '127.0.0.1'; - if (url.protocol !== 'https:' && !(isLocal && url.protocol === 'http:')) return false; - return ALLOWED_HOSTS.has(url.hostname); -} diff --git a/packages/oidc-relay/wrangler.toml b/packages/oidc-relay/wrangler.toml index 6a3fc7c..f2dccc0 100644 --- a/packages/oidc-relay/wrangler.toml +++ b/packages/oidc-relay/wrangler.toml @@ -5,10 +5,6 @@ send_metrics = false main = "src/relay.ts" -[[durable_objects.bindings]] -name = "OIDC_RELAY" -class_name = "OidcHandoff" - [[durable_objects.bindings]] name = "LOGIN_SESSION" class_name = "LoginSession" @@ -21,15 +17,15 @@ new_classes = ["OidcHandoff"] tag = "v2" new_classes = ["LoginSession"] +[[migrations]] +tag = "v3" +deleted_classes = ["OidcHandoff"] + # Staging: a workers.dev URL is fine to start; swap to a custom domain for prod. [env.staging] name = "oidc-relay-staging" workers_dev = true -[[env.staging.durable_objects.bindings]] -name = "OIDC_RELAY" -class_name = "OidcHandoff" - [[env.staging.durable_objects.bindings]] name = "LOGIN_SESSION" class_name = "LoginSession" @@ -42,19 +38,18 @@ new_classes = ["OidcHandoff"] tag = "v2" new_classes = ["LoginSession"] +[[env.staging.migrations]] +tag = "v3" +deleted_classes = ["OidcHandoff"] + [env.production] name = "oidc-relay-production" workers_dev = false # Custom domain provisioned by wrangler on deploy (polygon.technology zone must be -# on this Cloudflare account). Sequence must allowlist this /api/oidc/cb as a -# redirect target on their relay (Google only ever sees Sequence's relay, so no -# Google-client change is needed). +# on this Cloudflare account). The Sequence/OMS allowlist target is now the +# agentconnect `omsRelayReturnUri`, not this worker (see design doc). routes = [{ pattern = "oidc-relay.polygon.technology", custom_domain = true }] -[[env.production.durable_objects.bindings]] -name = "OIDC_RELAY" -class_name = "OidcHandoff" - [[env.production.durable_objects.bindings]] name = "LOGIN_SESSION" class_name = "LoginSession" @@ -66,3 +61,7 @@ new_classes = ["OidcHandoff"] [[env.production.migrations]] tag = "v2" new_classes = ["LoginSession"] + +[[env.production.migrations]] +tag = "v3" +deleted_classes = ["OidcHandoff"] From ad147720ffc1e7e882bec654fbaf756371c8039e Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 09:46:49 +0100 Subject: [PATCH 73/79] fix(oidc-relay): url-parse and host-allowlist the oidc-callback url --- packages/oidc-relay/src/relay.test.ts | 58 +++++++++++++++++++++++++++ packages/oidc-relay/src/relay.ts | 35 +++++++++++----- 2 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 packages/oidc-relay/src/relay.test.ts diff --git a/packages/oidc-relay/src/relay.test.ts b/packages/oidc-relay/src/relay.test.ts new file mode 100644 index 0000000..051555f --- /dev/null +++ b/packages/oidc-relay/src/relay.test.ts @@ -0,0 +1,58 @@ +import { describe, expect, it } from 'vitest'; + +import { validAction, validCallbackUrl } from './relay.ts'; + +describe('validCallbackUrl', () => { + it('accepts the production and staging agentconnect login pages over https', () => { + expect(validCallbackUrl('https://agentconnect.polygon.technology/login#abc')).toBe(true); + expect(validCallbackUrl('https://agentconnect.staging.polygon.technology/login#abc')).toBe( + true + ); + }); + + it('accepts localhost over http for local dev', () => { + expect(validCallbackUrl('http://localhost:5173/login#abc')).toBe(true); + }); + + it('rejects a lookalike host that merely starts with localhost', () => { + expect(validCallbackUrl('http://localhost.evil.example/x')).toBe(false); + }); + + it('rejects a numeric prefix collision with 127.0.0.1', () => { + expect(validCallbackUrl('http://127.0.0.100/x')).toBe(false); + }); + + it('rejects a non-URL string', () => { + expect(validCallbackUrl('not a url')).toBe(false); + }); + + it('rejects an https URL on a non-allowlisted host', () => { + expect(validCallbackUrl('https://evil.example/login')).toBe(false); + }); + + it('rejects a URL longer than 2048 characters', () => { + expect(validCallbackUrl(`https://agentconnect.polygon.technology/${'a'.repeat(2050)}`)).toBe( + false + ); + }); +}); + +describe('validAction', () => { + it('accepts an oidc-callback action with a good callback URL', () => { + expect( + validAction({ + type: 'oidc-callback', + callbackUrl: 'https://agentconnect.polygon.technology/login#abc' + }) + ).toBe(true); + }); + + it('rejects an oidc-callback action with a bad callback URL', () => { + expect( + validAction({ + type: 'oidc-callback', + callbackUrl: 'https://evil.example/login' + }) + ).toBe(false); + }); +}); diff --git a/packages/oidc-relay/src/relay.ts b/packages/oidc-relay/src/relay.ts index 3dce6fe..1808a24 100644 --- a/packages/oidc-relay/src/relay.ts +++ b/packages/oidc-relay/src/relay.ts @@ -40,22 +40,35 @@ function validSession(s: string | null): s is string { return typeof s === 'string' && /^[A-Za-z0-9_-]{16,64}$/.test(s); } +// Host allowlist for the oidc-callback URL. The callbackUrl is always our own +// agentconnect /login page (the omsRelayReturnUri) that the OMS relay returned +// the browser to, so only those hosts (plus localhost for dev) are accepted. +const ALLOWED_RETURN_HOSTS = new Set([ + 'agentconnect.polygon.technology', + 'agentconnect.staging.polygon.technology', + 'localhost', + '127.0.0.1' +]); + // Bound the callback URL the browser hands back after the OMS relay finishes the // Google OAuth leg. It must be an https URL, or an http localhost/127.0.0.1 URL -// for local dev, so a junk value can't be smuggled through as an action. -function validCallbackUrl(u: unknown): u is string { - return ( - typeof u === 'string' && - u.length > 0 && - u.length <= 2048 && - (u.startsWith('https://') || - u.startsWith('http://localhost') || - u.startsWith('http://127.0.0.1')) - ); +// for local dev, on one of the allowlisted hosts, so a junk or spoofed value +// can't be smuggled through as an action. +export function validCallbackUrl(u: unknown): u is string { + if (typeof u !== 'string' || u.length === 0 || u.length > 2048) return false; + let url: URL; + try { + url = new URL(u); + } catch { + return false; + } + const isLocal = url.hostname === 'localhost' || url.hostname === '127.0.0.1'; + if (url.protocol !== 'https:' && !(isLocal && url.protocol === 'http:')) return false; + return ALLOWED_RETURN_HOSTS.has(url.hostname); } // Shape-check browser-submitted actions before they reach the DO. -function validAction(a: unknown): a is LoginAction { +export function validAction(a: unknown): a is LoginAction { if (typeof a !== 'object' || a === null) return false; const t = (a as { type?: unknown }).type; if (t === 'google' || t === 'cancel') return true; From 2c712f6e9e6863a094b339a4cecac2495dfb2863 Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 10:00:40 +0100 Subject: [PATCH 74/79] feat(cli): migrate embedded wallet to @polygonlabs/oms-wallet and oms relay login --- packages/polygon-agent-cli/package.json | 6 +- .../src/commands/operations-ui.tsx | 6 +- .../src/commands/operations.ts | 8 +- .../polygon-agent-cli/src/commands/wallet.ts | 52 ++++--- .../src/lib/browser-login.test.ts | 33 ++-- .../src/lib/browser-login.ts | 36 +++-- packages/polygon-agent-cli/src/lib/indexer.ts | 2 +- .../src/lib/login-relay-client.ts | 15 +- .../src/lib/oidc-relay-client.ts | 71 --------- .../polygon-agent-cli/src/lib/oms-client.ts | 35 ++--- .../polygon-agent-cli/src/lib/oms-storage.ts | 2 +- packages/polygon-agent-cli/src/lib/oms-tx.ts | 6 +- pnpm-lock.yaml | 146 +++--------------- 13 files changed, 128 insertions(+), 290 deletions(-) delete mode 100644 packages/polygon-agent-cli/src/lib/oidc-relay-client.ts diff --git a/packages/polygon-agent-cli/package.json b/packages/polygon-agent-cli/package.json index f886cc1..65577aa 100644 --- a/packages/polygon-agent-cli/package.json +++ b/packages/polygon-agent-cli/package.json @@ -30,8 +30,8 @@ }, "dependencies": { "@0xsequence/network": "^2.3.40", - "@0xsequence/typescript-sdk": "0.1.0-alpha.4", "@0xtrails/api": "^0.10.4", + "@polygonlabs/oms-wallet": "0.2.0", "@polymarket/clob-client-v2": "^1.0.0", "@polymarket/sdk": "^6.0.1", "@x402/core": "^2.3.1", @@ -44,7 +44,7 @@ "ink-spinner": "^5.0.0", "open": "^10.1.0", "react": "^18.3.1", - "viem": "^2.45.3", + "viem": "^2.48.4", "yargs": "^17.7.2" }, "devDependencies": { @@ -54,6 +54,6 @@ "vitest": "^3.0.0" }, "engines": { - "node": ">=20.0.0" + "node": ">=22" } } diff --git a/packages/polygon-agent-cli/src/commands/operations-ui.tsx b/packages/polygon-agent-cli/src/commands/operations-ui.tsx index e2eb690..b710c78 100644 --- a/packages/polygon-agent-cli/src/commands/operations-ui.tsx +++ b/packages/polygon-agent-cli/src/commands/operations-ui.tsx @@ -2,9 +2,9 @@ import { Box, Text, useApp } from 'ink'; import Spinner from 'ink-spinner'; import React, { useState, useEffect } from 'react'; -import type { TokenBalance } from '@0xsequence/typescript-sdk'; +import type { ContractTokenBalance } from '@polygonlabs/oms-wallet'; -import { findNetworkById } from '@0xsequence/typescript-sdk'; +import { findNetworkById } from '@polygonlabs/oms-wallet'; import { getOmsClient } from '../lib/oms-client.ts'; import { loadOmsWalletPointer } from '../lib/storage.ts'; @@ -68,7 +68,7 @@ export function BalancesUI({ walletName, chainOverride }: BalancesUIProps) { } ]; - for (const b of (res.balances || []) as TokenBalance[]) { + for (const b of (res.balances || []) as ContractTokenBalance[]) { const sym = b.contractInfo?.symbol || 'ERC20'; const dec = b.contractInfo?.decimals ?? 18; const tokenAddr = b.contractAddress ? shortAddr(b.contractAddress) : ''; diff --git a/packages/polygon-agent-cli/src/commands/operations.ts b/packages/polygon-agent-cli/src/commands/operations.ts index 8be1bdf..c9913e2 100644 --- a/packages/polygon-agent-cli/src/commands/operations.ts +++ b/packages/polygon-agent-cli/src/commands/operations.ts @@ -2,9 +2,9 @@ import type { CommandModule, Argv } from 'yargs'; import React from 'react'; -import type { TokenBalance } from '@0xsequence/typescript-sdk'; +import type { ContractTokenBalance } from '@polygonlabs/oms-wallet'; -import { findNetworkById } from '@0xsequence/typescript-sdk'; +import { findNetworkById } from '@polygonlabs/oms-wallet'; import { isWalletFunded } from '../lib/indexer.ts'; import { getOmsClient, loginUiBaseUrl } from '../lib/oms-client.ts'; @@ -153,8 +153,8 @@ async function fetchBalancesRowsForChain( ]; const erc20: BalanceRowJson[] = (res.balances || []) - .filter((b: TokenBalance) => !!b.contractAddress) - .map((b: TokenBalance) => ({ + .filter((b: ContractTokenBalance) => !!b.contractAddress) + .map((b: ContractTokenBalance) => ({ type: 'erc20' as const, symbol: b.contractInfo?.symbol || 'ERC20', name: b.contractInfo?.name || undefined, diff --git a/packages/polygon-agent-cli/src/commands/wallet.ts b/packages/polygon-agent-cli/src/commands/wallet.ts index 4036c2c..edee8ec 100644 --- a/packages/polygon-agent-cli/src/commands/wallet.ts +++ b/packages/polygon-agent-cli/src/commands/wallet.ts @@ -4,18 +4,17 @@ import { randomBytes } from 'node:crypto'; import React from 'react'; +import type { OmsRelayOidcProvider } from '@polygonlabs/oms-wallet'; + +import { OmsRelayOidcProviders } from '@polygonlabs/oms-wallet'; + import type { OmsLoginMethod } from '../lib/storage.ts'; import { runBrowserLogin } from '../lib/browser-login.ts'; import { ensureBuilderAccessKey, makeDefaultProvisionDeps } from '../lib/builder-provision.ts'; import { makeLoginRelay } from '../lib/login-relay-client.ts'; import { startOidcCallbackServer } from '../lib/oidc-callback-server.ts'; -import { - getOmsClient, - loginUiBaseUrl, - oidcRelayBaseUrl, - oidcRelayRedirectUri -} from '../lib/oms-client.ts'; +import { getOmsClient, loginUiBaseUrl, oidcRelayBaseUrl } from '../lib/oms-client.ts'; import { listWallets, deleteWallet, @@ -59,25 +58,24 @@ async function announceAuthUrl(url: string): Promise { } } -// Legacy --local flow: a short-lived loopback server; the relay bounces the -// browser to it. Only works when the browser runs on this machine. +// Legacy --local flow: a short-lived loopback server. The OMS relay now owns +// the Google OAuth callback and bounces the browser back to our nominated +// `omsRelayReturnUri`, which we set to this loopback URL. Only works when the +// browser runs on this machine (and the OMS relay allows a localhost return URI). async function obtainLoopbackCallbackUrl( oms: ReturnType, - provider: 'google', argv: LoginArgs ): Promise { - const seqRelay = oidcRelayRedirectUri(); const server = await startOidcCallbackServer({ port: argv.port, timeoutMs: argv.timeout * 1000 }); try { - const { url } = await oms.wallet.startOidcRedirectAuth({ - provider, - redirectUri: server.redirectUri, - ...(seqRelay ? { relayRedirectUri: seqRelay } : {}) + const { authorizationUrl } = await oms.wallet.startOidcRedirectAuth({ + provider: OmsRelayOidcProviders.google, + omsRelayReturnUri: server.redirectUri }); - await announceAuthUrl(url); + await announceAuthUrl(authorizationUrl); return await server.waitForCallbackUrl; } finally { server.close(); @@ -128,11 +126,14 @@ async function handleLogin(argv: LoginArgs): Promise { `Unsupported provider "${argv.provider}". Only "google" works with --local.` ); } - const callbackUrl = await obtainLoopbackCallbackUrl(oms, 'google', argv); + const callbackUrl = await obtainLoopbackCallbackUrl(oms, argv); const result = await oms.wallet.completeOidcRedirectAuth({ callbackUrl, walletSelection: 'automatic' }); + if (!result) { + throw new Error('OIDC login did not complete: no wallet result returned.'); + } walletAddress = result.walletAddress; loginMethod = 'google'; } else { @@ -143,7 +144,23 @@ async function handleLogin(argv: LoginArgs): Promise { const result = await runBrowserLogin( { relay: makeLoginRelay(relayBase), - wallet: oms.wallet, + wallet: { + startOidcRedirectAuth: (p) => + oms.wallet.startOidcRedirectAuth({ + provider: p.provider as OmsRelayOidcProvider, + omsRelayReturnUri: p.omsRelayReturnUri + }), + completeOidcRedirectAuth: async (p) => { + const r = await oms.wallet.completeOidcRedirectAuth(p); + if (!r) { + throw new Error('OIDC login did not complete: no wallet result returned.'); + } + return { walletAddress: r.walletAddress }; + }, + startEmailAuth: (p) => oms.wallet.startEmailAuth(p), + completeEmailAuth: (p) => oms.wallet.completeEmailAuth(p) + }, + oidcProviderGoogle: OmsRelayOidcProviders.google, announce: announceAuthUrl, sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)), now: () => Date.now(), @@ -152,7 +169,6 @@ async function handleLogin(argv: LoginArgs): Promise { { relayBase, uiBase: loginUiBaseUrl(), - seqRelay: oidcRelayRedirectUri(), timeoutMs: argv.timeout * 1000 } ); diff --git a/packages/polygon-agent-cli/src/lib/browser-login.test.ts b/packages/polygon-agent-cli/src/lib/browser-login.test.ts index 4c342ad..6149beb 100644 --- a/packages/polygon-agent-cli/src/lib/browser-login.test.ts +++ b/packages/polygon-agent-cli/src/lib/browser-login.test.ts @@ -9,6 +9,9 @@ import type { import { runBrowserLogin } from './browser-login.ts'; +// A sentinel standing in for the SDK's opaque OmsRelayOidcProviders.google value. +const GOOGLE_PROVIDER = Symbol('oms-relay-oidc-provider-google'); + // A scripted fake: nextAction() pops the queue (null = pending tick), and every // published status is recorded for assertions. function makeFakes(actionQueue: Array) { @@ -24,17 +27,13 @@ function makeFakes(actionQueue: Array) { nextAction: async () => (actionQueue.length > 0 ? (actionQueue.shift() ?? null) : null), setStatus: async (_s, status) => { statuses.push(status); - }, - registerOidcHandoff: async (state, returnTo) => { - calls.push(`registerOidcHandoff:${state}:${returnTo}`); - }, - pollOidcCallback: async () => ({ code: 'CODE1', state: 'STATE1' }) + } }, wallet: { - startOidcRedirectAuth: async () => ({ - url: 'https://accounts.google.com/auth', - state: 'STATE1' - }), + startOidcRedirectAuth: async (p) => { + calls.push(`startOidc:${String(p.provider === GOOGLE_PROVIDER)}:${p.omsRelayReturnUri}`); + return { authorizationUrl: 'https://accounts.google.com/auth' }; + }, completeOidcRedirectAuth: async (p) => { calls.push(`completeOidc:${p.callbackUrl}`); return { walletAddress: '0xW' }; @@ -48,6 +47,7 @@ function makeFakes(actionQueue: Array) { return { walletAddress: '0xW' }; } }, + oidcProviderGoogle: GOOGLE_PROVIDER, announce: async (url) => { calls.push(`announce:${url}`); }, @@ -68,13 +68,16 @@ const OPTS: BrowserLoginOpts = { describe('runBrowserLogin', () => { it('completes the google flow', async () => { - const { deps, statuses, calls } = makeFakes([{ type: 'google' }]); + const { deps, statuses, calls } = makeFakes([ + { type: 'google' }, + { type: 'oidc-callback', callbackUrl: 'https://ui.test/login?s=sessionid12345678' } + ]); const result = await runBrowserLogin(deps, OPTS); expect(result).toEqual({ walletAddress: '0xW', loginMethod: 'google' }); expect(calls).toContain('announce:https://ui.test/login#sessionid12345678'); - expect(calls).toContain('registerOidcHandoff:STATE1:https://ui.test/login#sessionid12345678'); - expect(calls).toContain('completeOidc:https://relay.test/api/oidc/cb?code=CODE1&state=STATE1'); + expect(calls).toContain('startOidc:true:https://ui.test/login?s=sessionid12345678'); + expect(calls).toContain('completeOidc:https://ui.test/login?s=sessionid12345678'); expect(statuses).toEqual([ { status: 'auth-url', url: 'https://accounts.google.com/auth' }, { status: 'done', walletAddress: '0xW' } @@ -127,6 +130,12 @@ describe('runBrowserLogin', () => { expect(statuses.at(-1)).toMatchObject({ status: 'error' }); }); + it('cancels while waiting for the oidc callback', async () => { + const { deps, statuses } = makeFakes([{ type: 'google' }, { type: 'cancel' }]); + await expect(runBrowserLogin(deps, OPTS)).rejects.toThrow(/cancelled/i); + expect(statuses.at(-1)).toMatchObject({ status: 'error' }); + }); + it('times out when no action ever arrives', async () => { const { deps } = makeFakes([]); await expect(runBrowserLogin(deps, { ...OPTS, timeoutMs: 5000 })).rejects.toThrow(/timed out/i); diff --git a/packages/polygon-agent-cli/src/lib/browser-login.ts b/packages/polygon-agent-cli/src/lib/browser-login.ts index e8920a6..930f818 100644 --- a/packages/polygon-agent-cli/src/lib/browser-login.ts +++ b/packages/polygon-agent-cli/src/lib/browser-login.ts @@ -5,6 +5,7 @@ export type LoginAction = | { type: 'google' } + | { type: 'oidc-callback'; callbackUrl: string } | { type: 'email'; email: string } | { type: 'otp'; code: string } | { type: 'cancel' }; @@ -22,15 +23,12 @@ export interface BrowserLoginDeps { registerSession(session: string): Promise; nextAction(session: string): Promise; setStatus(session: string, status: LoginStatus): Promise; - registerOidcHandoff(state: string, returnTo: string): Promise; - pollOidcCallback(state: string, timeoutMs: number): Promise<{ code: string; state: string }>; }; wallet: { startOidcRedirectAuth(p: { - provider: 'google'; - redirectUri: string; - relayRedirectUri?: string; - }): Promise<{ url: string; state: string }>; + provider: unknown; + omsRelayReturnUri: string; + }): Promise<{ authorizationUrl: string }>; completeOidcRedirectAuth(p: { callbackUrl: string; walletSelection: 'automatic'; @@ -41,6 +39,9 @@ export interface BrowserLoginDeps { walletSelection: 'automatic'; }): Promise<{ walletAddress: string }>; }; + // The SDK's opaque Google provider value (OmsRelayOidcProviders.google), injected + // so this file stays SDK-agnostic and unit tests can fake it with a sentinel. + oidcProviderGoogle: unknown; announce(url: string): Promise; sleep(ms: number): Promise; now(): number; @@ -50,7 +51,6 @@ export interface BrowserLoginDeps { export interface BrowserLoginOpts { relayBase: string; uiBase: string; - seqRelay?: string; timeoutMs: number; pollIntervalMs?: number; } @@ -88,17 +88,21 @@ export async function runBrowserLogin( } if (action.type === 'google') { - const { url, state } = await wallet.startOidcRedirectAuth({ - provider: 'google', - redirectUri: `${opts.relayBase}/api/oidc/cb`, - ...(opts.seqRelay ? { relayRedirectUri: opts.seqRelay } : {}) + // The relay's return page carries this pairing session (`s`) so it + // survives the OAuth round-trip; the OMS relay owns the Google + // callback and bounces the browser back to that page, which posts + // its full URL back to us as an `oidc-callback` action below. + const { authorizationUrl } = await wallet.startOidcRedirectAuth({ + provider: deps.oidcProviderGoogle, + omsRelayReturnUri: `${opts.uiBase}/login?s=${session}` }); - await relay.registerOidcHandoff(state, pageUrl); - await relay.setStatus(session, { status: 'auth-url', url }); - const cb = await relay.pollOidcCallback(state, Math.max(deadline - deps.now(), 1)); - const callbackUrl = `${opts.relayBase}/api/oidc/cb?code=${encodeURIComponent(cb.code)}&state=${encodeURIComponent(cb.state)}`; + await relay.setStatus(session, { status: 'auth-url', url: authorizationUrl }); + continue; + } + + if (action.type === 'oidc-callback') { const result = await wallet.completeOidcRedirectAuth({ - callbackUrl, + callbackUrl: action.callbackUrl, walletSelection: 'automatic' }); await relay.setStatus(session, { status: 'done', walletAddress: result.walletAddress }); diff --git a/packages/polygon-agent-cli/src/lib/indexer.ts b/packages/polygon-agent-cli/src/lib/indexer.ts index 88598c0..eec1e08 100644 --- a/packages/polygon-agent-cli/src/lib/indexer.ts +++ b/packages/polygon-agent-cli/src/lib/indexer.ts @@ -7,7 +7,7 @@ // empty. Any error returns false so callers fall through to the funding page // rather than erroring. -import { findNetworkById } from '@0xsequence/typescript-sdk'; +import { findNetworkById } from '@polygonlabs/oms-wallet'; import { getOmsClient } from './oms-client.ts'; diff --git a/packages/polygon-agent-cli/src/lib/login-relay-client.ts b/packages/polygon-agent-cli/src/lib/login-relay-client.ts index 7b23379..b5ee3d2 100644 --- a/packages/polygon-agent-cli/src/lib/login-relay-client.ts +++ b/packages/polygon-agent-cli/src/lib/login-relay-client.ts @@ -1,11 +1,10 @@ // HTTP client for the relay's /api/login pairing routes (packages/oidc-relay). -// Produces the `relay` dependency for runBrowserLogin; the OIDC handoff pieces -// reuse the existing oidc-relay-client functions. +// Produces the `relay` dependency for runBrowserLogin. The Google OAuth +// callback itself is now handled by the OMS relay, not this client; the +// pairing session only ever carries session/action/status. import type { BrowserLoginDeps, LoginAction, LoginStatus } from './browser-login.ts'; -import { pollRelayForCallback, registerRelaySession } from './oidc-relay-client.ts'; - export function makeLoginRelay(relayBase: string): BrowserLoginDeps['relay'] { return { async registerSession(session: string): Promise { @@ -47,14 +46,6 @@ export function makeLoginRelay(relayBase: string): BrowserLoginDeps['relay'] { } catch { // network error; nothing to do, the CLI result stands on its own. } - }, - - registerOidcHandoff(state: string, returnTo: string): Promise { - return registerRelaySession(relayBase, state, returnTo); - }, - - pollOidcCallback(state: string, timeoutMs: number): Promise<{ code: string; state: string }> { - return pollRelayForCallback(relayBase, state, { timeoutMs }); } }; } diff --git a/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts b/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts deleted file mode 100644 index 42eee57..0000000 --- a/packages/polygon-agent-cli/src/lib/oidc-relay-client.ts +++ /dev/null @@ -1,71 +0,0 @@ -// Client for the public OIDC handoff relay (packages/oidc-relay), used by the -// `wallet login-browser --remote` path. When the CLI runs on a machine whose -// localhost the browser can't reach (a remote server / openclaw), we can't use a -// loopback callback. Instead we register a handoff keyed by the OIDC `state`, the -// browser is redirected to the relay's public callback, and the CLI polls for the -// captured `code`+`state`. -// -// The relay only ever sees `code`+`state`; the PKCE verifier and wallet credential -// never leave this process, so the relay alone cannot complete a login. - -interface RelayCallback { - code: string; - state: string; -} - -const sleep = (ms: number): Promise => new Promise((resolve) => setTimeout(resolve, ms)); - -/** - * Arm a handoff for this OIDC `state` so the relay tracks it (and /poll returns - * `pending` until the browser callback lands). Call right after startOidcRedirectAuth. - */ -export async function registerRelaySession( - relayBase: string, - state: string, - returnTo?: string -): Promise { - const res = await fetch(`${relayBase}/api/oidc/register`, { - method: 'POST', - headers: { 'content-type': 'application/json' }, - body: JSON.stringify(returnTo ? { state, returnTo } : { state }) - }); - if (!res.ok && res.status !== 204) { - throw new Error( - `Relay register failed (${res.status}). Check POLYGON_AGENT_OIDC_RELAY / --relay-url.` - ); - } -} - -/** - * Poll the relay until the browser callback arrives, then return the `code`+`state`. - * Throws on provider error, an expired/unknown session, or timeout. - */ -export async function pollRelayForCallback( - relayBase: string, - state: string, - opts: { timeoutMs: number; intervalMs?: number } -): Promise { - // Poll briskly: this runs after the browser has returned from the provider, - // so the captured code is usually already waiting and a tight interval keeps - // the "finishing sign in" screen short. - const intervalMs = opts.intervalMs ?? 800; - const deadline = Date.now() + opts.timeoutMs; - while (Date.now() < deadline) { - const res = await fetch(`${relayBase}/api/oidc/poll?state=${encodeURIComponent(state)}`); - if (!res.ok) throw new Error(`Relay poll failed (${res.status})`); - const data = (await res.json()) as { - status: string; - code?: string; - state?: string; - error?: string; - }; - if (data.status === 'ready') { - if (!data.code || !data.state) throw new Error('Relay returned "ready" without code/state'); - return { code: data.code, state: data.state }; - } - if (data.status === 'error') throw new Error(data.error || 'Login failed at the provider'); - if (data.status === 'expired') throw new Error('Relay session expired before login completed'); - await sleep(intervalMs); - } - throw new Error('Timed out waiting for browser login. Re-run, or use `wallet login`.'); -} diff --git a/packages/polygon-agent-cli/src/lib/oms-client.ts b/packages/polygon-agent-cli/src/lib/oms-client.ts index 36bd2d7..9ee582a 100644 --- a/packages/polygon-agent-cli/src/lib/oms-client.ts +++ b/packages/polygon-agent-cli/src/lib/oms-client.ts @@ -1,21 +1,21 @@ -// OMSClient factory — builds a per-process, per-wallet OMS V3 client backed +// OMSWallet factory — builds a per-process, per-wallet OMS V3 client backed // by file storage + a persisted credential signer, so sessions survive restarts. -import { EthereumPrivateKeyCredentialSigner, OMSClient } from '@0xsequence/typescript-sdk'; +import { EthereumPrivateKeyCredentialSigner, OMSWallet } from '@polygonlabs/oms-wallet'; import { FileStorageManager, loadOrCreateCredentialKey } from './oms-storage.ts'; import { loadOmsConfig } from './storage.ts'; -const cache = new Map(); +const cache = new Map(); /** - * Get (or build) the OMSClient for a wallet name. Cached per-process so repeated + * Get (or build) the OMSWallet for a wallet name. Cached per-process so repeated * calls within one CLI invocation reuse the same client + storage handle. * * Reads publishableKey + projectId from env or builder.json (loadOmsConfig), * falling back to the baked-in default publishable key. */ -export function getOmsClient(walletName: string): OMSClient { +export function getOmsClient(walletName: string): OMSWallet { const cached = cache.get(walletName); if (cached) return cached; @@ -25,12 +25,12 @@ export function getOmsClient(walletName: string): OMSClient { loadOrCreateCredentialKey(walletName) ); - // SDK 0.1.0-alpha.4: the publishableKey alone identifies the project. - // `redirectAuthStorage` is REQUIRED for the OIDC browser flow: in Node the SDK - // has no sessionStorage to fall back to and throws without it. We back it with - // a separate file store so the transient pending-auth state is isolated from - // the session store (and the email-login/tx paths simply ignore it). - const oms = new OMSClient({ + // The publishableKey alone identifies the project. `redirectAuthStorage` is + // REQUIRED for the OIDC browser flow: in Node the SDK has no sessionStorage + // to fall back to and throws without it. We back it with a separate file + // store so the transient pending-auth state is isolated from the session + // store (and the email-login/tx paths simply ignore it). + const oms = new OMSWallet({ publishableKey: cfg.publishableKey, storage: new FileStorageManager(walletName), redirectAuthStorage: new FileStorageManager(walletName, 'redirect-store'), @@ -41,17 +41,6 @@ export function getOmsClient(walletName: string): OMSClient { return oms; } -/** - * The OIDC relay redirect URI. Google only ever sees this (pre-registered) HTTPS - * callback; the relay bounces the auth code back to our localhost. Overridable - * via SEQUENCE_OIDC_RELAY_URI so production can point at a non-staging relay - * without a code change. When unset, the SDK's built-in default is used (pass - * undefined and the provider default applies). - */ -export function oidcRelayRedirectUri(): string | undefined { - return process.env.SEQUENCE_OIDC_RELAY_URI || undefined; -} - // Baked-in defaults for the browser-login flow so `wallet login` needs no env // vars. Production domains, provisioned by the oidc-relay and agentconnect-ui // deploys on merge to main. Override per environment (or to test against @@ -60,7 +49,7 @@ const DEFAULT_OIDC_RELAY = 'https://oidc-relay.polygon.technology'; const DEFAULT_LOGIN_UI = 'https://agentconnect.polygon.technology'; /** - * Base URL of OUR OIDC handoff + login relay (packages/oidc-relay). Read from + * Base URL of our login pairing relay (packages/oidc-relay). Read from * POLYGON_AGENT_OIDC_RELAY with a production default; `--relay-url` overrides * per-run. Trailing slash trimmed so callers can append `/api/...` cleanly. */ diff --git a/packages/polygon-agent-cli/src/lib/oms-storage.ts b/packages/polygon-agent-cli/src/lib/oms-storage.ts index 72ad13f..df2f255 100644 --- a/packages/polygon-agent-cli/src/lib/oms-storage.ts +++ b/packages/polygon-agent-cli/src/lib/oms-storage.ts @@ -11,7 +11,7 @@ import { randomBytes } from 'node:crypto'; import fs from 'node:fs'; import path from 'node:path'; -import type { StorageManager } from '@0xsequence/typescript-sdk'; +import type { StorageManager } from '@polygonlabs/oms-wallet'; import type { CipherData } from './storage.ts'; diff --git a/packages/polygon-agent-cli/src/lib/oms-tx.ts b/packages/polygon-agent-cli/src/lib/oms-tx.ts index 35f5cf5..7c50657 100644 --- a/packages/polygon-agent-cli/src/lib/oms-tx.ts +++ b/packages/polygon-agent-cli/src/lib/oms-tx.ts @@ -5,9 +5,9 @@ // existing command call sites need only swap which implementation they call (via // the runTx dispatch). Internally maps onto oms.wallet.sendTransaction. -import type { FeeOptionWithBalance } from '@0xsequence/typescript-sdk'; +import type { FeeOptionWithBalance } from '@polygonlabs/oms-wallet'; -import { findNetworkById, isOmsSdkError, TransactionMode } from '@0xsequence/typescript-sdk'; +import { findNetworkById, isOMSWalletError, TransactionMode } from '@polygonlabs/oms-wallet'; import { getOmsClient } from './oms-client.ts'; @@ -111,7 +111,7 @@ export async function runOmsTx(params: OmsTxParams): Promise { lastTxHash = res.txnHash ?? lastTxHash; } catch (e) { if ( - isOmsSdkError(e) && + isOMSWalletError(e) && (e.code === 'OMS_SESSION_EXPIRED' || e.code === 'OMS_SESSION_MISSING') ) { throw new Error( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc3d7c9..a8e9493 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,12 +118,12 @@ importers: '@0xsequence/network': specifier: ^2.3.40 version: 2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - '@0xsequence/typescript-sdk': - specifier: 0.1.0-alpha.4 - version: 0.1.0-alpha.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) '@0xtrails/api': specifier: ^0.10.4 version: 0.10.4 + '@polygonlabs/oms-wallet': + specifier: 0.2.0 + version: 0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) '@polymarket/clob-client-v2': specifier: ^1.0.0 version: 1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) @@ -161,8 +161,8 @@ importers: specifier: ^18.3.1 version: 18.3.1 viem: - specifier: ^2.45.3 - version: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + specifier: ^2.48.4 + version: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) yargs: specifier: ^17.7.2 version: 17.7.2 @@ -331,9 +331,6 @@ packages: peerDependencies: ethers: '>=6' - '@0xsequence/typescript-sdk@0.1.0-alpha.4': - resolution: {integrity: sha512-l1xi8OXgcwQ05HeNqt11TFLddGI6NIZ5ObKe930kgAnM4UcLTZ1DNf+bvKQoRQ16hEZUJDS5nE0BkI85vdYGDQ==} - '@0xsequence/utils@2.3.41': resolution: {integrity: sha512-wikEOiYxfq+Iqsfb9JF6xHnpyXHaUre+2FUQpk3teo7/FXy0xtHdzxtfbhGn5/EcMnlSErk1nt6isrcxlkkHuQ==} peerDependencies: @@ -1548,6 +1545,10 @@ packages: typescript: optional: true + '@polygonlabs/oms-wallet@0.2.0': + resolution: {integrity: sha512-kLsBfrwXK8m7Zd2CzQ6+p/rOQE5ckeEN//Lc1F7Jq9E80ve/EXoVjWujK+DP4weMfhaHwWiK8+VllviuUvZgVA==} + engines: {node: '>=22'} + '@polymarket/clob-client-v2@1.0.2': resolution: {integrity: sha512-lC80Esug6s6y3uV8D5HnkxoXVZUnATjyP6PcK2IXO740iGDuLlp9Dvvkx3+VVygHahN+M3NY7JiYiTQkDfWoeQ==} @@ -5050,14 +5051,6 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - ox@0.12.4: - resolution: {integrity: sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true - ox@0.13.1: resolution: {integrity: sha512-S6XU/Chz7HSSlAp7KYZigW8iwSyfS9M+GKTbyDQuZDsqC8S8GUFB2bLBLLB2SfHw8eE2MfymQazVXoLNljLycg==} peerDependencies: @@ -5943,14 +5936,6 @@ packages: typescript: optional: true - viem@2.46.3: - resolution: {integrity: sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - viem@2.53.1: resolution: {integrity: sha512-FhfJ/SW73CVosiyVLmIMVgKDRKYV1AGCLzZoHYvmNayyVff63Qi1ocPCk59LqC/cNw244RbBJjHnmxqXkE7NpA==} peerDependencies: @@ -6119,18 +6104,6 @@ packages: utf-8-validate: optional: true - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.20.0: resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} engines: {node: '>=10.0.0'} @@ -6561,15 +6534,6 @@ snapshots: '@0xsequence/core': 2.3.44(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@0xsequence/typescript-sdk@0.1.0-alpha.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': - dependencies: - viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - '@0xsequence/utils@2.3.41(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))': dependencies: ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -8085,6 +8049,15 @@ snapshots: - eslint-plugin-import - supports-color + '@polygonlabs/oms-wallet@0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': + dependencies: + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + '@polymarket/clob-client-v2@1.0.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6)': dependencies: '@ethersproject/providers': 5.8.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -8092,7 +8065,7 @@ snapshots: axios: 1.13.6 browser-or-node: 3.0.0 tslib: 2.8.1 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6) transitivePeerDependencies: - bufferutil - debug @@ -10678,7 +10651,7 @@ snapshots: dependencies: '@x402/core': 2.5.0 '@x402/extensions': 2.5.0(bufferutil@4.1.0)(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(typescript@5.9.3)(utf-8-validate@6.0.6) - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil @@ -10693,7 +10666,7 @@ snapshots: ajv: 8.18.0 siwe: 2.3.2(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)) tweetnacl: 1.0.3 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil @@ -10704,7 +10677,7 @@ snapshots: '@x402/fetch@2.5.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@x402/core': 2.5.0 - viem: 2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) + viem: 2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil @@ -12003,10 +11976,6 @@ snapshots: dependencies: ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - isows@1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)): - dependencies: - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - isows@1.0.7(ws@8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6)): dependencies: ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -12383,36 +12352,6 @@ snapshots: outdent@0.5.0: {} - ox@0.12.4(typescript@5.9.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - - ox@0.12.4(typescript@5.9.3)(zod@4.3.6): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - zod - ox@0.13.1(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 @@ -12848,7 +12787,7 @@ snapshots: buffer: 6.0.3 eventemitter3: 5.0.1 uuid: 14.0.1 - ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@6.0.6) + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: bufferutil: 4.1.0 utf-8-validate: 6.0.6 @@ -13298,40 +13237,6 @@ snapshots: - utf-8-validate - zod - viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.25.76): - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) - isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.12.4(typescript@5.9.3)(zod@3.25.76) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.46.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@4.3.6): - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@5.9.3)(zod@4.3.6) - isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.12.4(typescript@5.9.3)(zod@4.3.6) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - viem@2.53.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)(zod@3.22.4): dependencies: '@noble/curves': 1.9.7 @@ -13567,11 +13472,6 @@ snapshots: bufferutil: 4.1.0 utf-8-validate: 6.0.6 - ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6): - optionalDependencies: - bufferutil: 4.1.0 - utf-8-validate: 6.0.6 - ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): optionalDependencies: bufferutil: 4.1.0 From 3ac4cf9dd2f89c226ae9e6604cad9cc46a7505df Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 10:11:43 +0100 Subject: [PATCH 75/79] feat(agentconnect-ui): post oms relay callback over the login pairing channel --- .../agentconnect-ui/src/login/LoginPage.tsx | 53 ++++++++++++++++--- .../agentconnect-ui/src/login/machine.test.ts | 23 ++++++++ packages/agentconnect-ui/src/login/machine.ts | 16 ++++-- 3 files changed, 81 insertions(+), 11 deletions(-) diff --git a/packages/agentconnect-ui/src/login/LoginPage.tsx b/packages/agentconnect-ui/src/login/LoginPage.tsx index 7cc4a23..3026a50 100644 --- a/packages/agentconnect-ui/src/login/LoginPage.tsx +++ b/packages/agentconnect-ui/src/login/LoginPage.tsx @@ -59,13 +59,48 @@ async function fetchStatus(session: string): Promise { const TERMINAL: MachineState['kind'][] = ['success', 'expired', 'failed']; +// Session id lives in the `?s=` query param (used for the OMS relay return +// URI, since fragments may be consumed by the relay); the `#` fragment is +// kept as a fallback for older announce links. +function getSessionId(): string { + const fromQuery = new URLSearchParams(window.location.search).get('s'); + if (fromQuery) return fromQuery; + return window.location.hash.slice(1); +} + +// True when this load is the browser bouncing back from the OMS relay after +// Google sign-in, not a fresh open. The CLI's announce URL is a bare +// `/login#` fragment with no query string at all, so any query key +// besides `s` showing up alongside it means the OMS relay appended its own +// callback params on the way back. +function isRelayReturn(): boolean { + const params = new URLSearchParams(window.location.search); + if (!params.get('s')) return false; + for (const key of params.keys()) { + if (key !== 's') return true; + } + return false; +} + export function LoginPage() { - const session = window.location.hash.slice(1); - const [state, setState] = useState(initialState); + const session = getSessionId(); + const [state, setState] = useState(() => + isRelayReturn() ? reduce(initialState, { type: 'relay-return' }) : initialState + ); const dispatch = useCallback((event: MachineEvent) => { setState((s) => reduce(s, event)); }, []); const redirected = useRef(false); + const postedRelayCallback = useRef(false); + + // On return from the OMS relay, hand the full callback url back to the CLI + // over the pairing channel once; the CLI exchanges it for the wallet and + // publishes `done`, which the poll below picks up like any other status. + useEffect(() => { + if (postedRelayCallback.current || !session || !isRelayReturn()) return; + postedRelayCallback.current = true; + void postAction(session, { type: 'oidc-callback', callbackUrl: window.location.href }); + }, [session]); // Once the session is established the user should land on their dashboard // without another click; the success card shows briefly, then we move on. @@ -148,12 +183,14 @@ function renderState(state: MachineState, session: string, dispatch: (e: Machine
); case 'email-entry': diff --git a/packages/agentconnect-ui/src/login/machine.test.ts b/packages/agentconnect-ui/src/login/machine.test.ts index 81e039a..2daa9d9 100644 --- a/packages/agentconnect-ui/src/login/machine.test.ts +++ b/packages/agentconnect-ui/src/login/machine.test.ts @@ -93,6 +93,29 @@ describe('login machine', () => { ); }); + it('relay-return on initial load moves straight to auth-pending, no url', () => { + expect(reduce(initialState, { type: 'relay-return' })).toEqual({ kind: 'auth-pending' }); + }); + + it('relay-return is a no-op once past the method chooser', () => { + expect(reduce({ kind: 'google-wait' }, { type: 'relay-return' })).toEqual({ + kind: 'google-wait' + }); + expect(reduce({ kind: 'email-entry' }, { type: 'relay-return' })).toEqual({ + kind: 'email-entry' + }); + }); + + it('the finishing state reached via relay-return only exits via a terminal status', () => { + const finishing: MachineState = reduce(initialState, { type: 'relay-return' }); + expect( + reduce(finishing, { type: 'status', status: { status: 'done', walletAddress: '0xW' } }) + ).toEqual({ kind: 'success', walletAddress: '0xW' }); + expect(reduce(finishing, { type: 'status', status: { status: 'otp-sent' } })).toEqual( + finishing + ); + }); + it('terminal states absorb any later status or event', () => { const success: MachineState = { kind: 'success', walletAddress: '0xW' }; expect(reduce(success, { type: 'status', status: { status: 'otp-sent' } })).toEqual(success); diff --git a/packages/agentconnect-ui/src/login/machine.ts b/packages/agentconnect-ui/src/login/machine.ts index c430cbd..9197cdb 100644 --- a/packages/agentconnect-ui/src/login/machine.ts +++ b/packages/agentconnect-ui/src/login/machine.ts @@ -15,7 +15,10 @@ export type RelayStatus = LoginStatus | { status: 'expired' }; export type MachineState = | { kind: 'method' } | { kind: 'google-wait' } - | { kind: 'auth-pending'; url: string } + // `url` is present when this came from a live `auth-url` status (offers a + // manual fallback link); absent when the page detected a relay return on + // load, since there is nothing left to link to at that point. + | { kind: 'auth-pending'; url?: string } | { kind: 'email-entry' } | { kind: 'email-wait'; email: string } | { kind: 'otp-entry'; email: string; invalid?: boolean; attemptsLeft?: number } @@ -30,13 +33,18 @@ export type MachineEvent = | { type: 'choose-email' } | { type: 'submit-email'; email: string } | { type: 'submit-otp'; code: string } - | { type: 'back' }; + | { type: 'back' } + // Fired once on initial mount when the page detects it was just returned to + // from the OMS relay (as opposed to a fresh open). Skips the method chooser + // and goes straight to the finishing spinner. + | { type: 'relay-return' }; export type LoginAction = | { type: 'google' } | { type: 'email'; email: string } | { type: 'otp'; code: string } - | { type: 'cancel' }; + | { type: 'cancel' } + | { type: 'oidc-callback'; callbackUrl: string }; export const initialState: MachineState = { kind: 'method' }; @@ -102,5 +110,7 @@ export function reduce(state: MachineState, event: MachineEvent): MachineState { return state.kind === 'otp-entry' ? { kind: 'otp-wait', email: state.email } : state; case 'back': return state.kind === 'email-entry' ? { kind: 'method' } : state; + case 'relay-return': + return state.kind === 'method' ? { kind: 'auth-pending' } : state; } } From 389d4a6a68f7b52c4f9efad3efa0bca980fc9c81 Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 10:19:15 +0100 Subject: [PATCH 76/79] test(agentconnect-ui): extract and unit-test login return-url detection --- .../agentconnect-ui/src/login/LoginPage.tsx | 32 +++---------- .../src/login/returnUrl.test.ts | 47 +++++++++++++++++++ .../agentconnect-ui/src/login/returnUrl.ts | 37 +++++++++++++++ 3 files changed, 90 insertions(+), 26 deletions(-) create mode 100644 packages/agentconnect-ui/src/login/returnUrl.test.ts create mode 100644 packages/agentconnect-ui/src/login/returnUrl.ts diff --git a/packages/agentconnect-ui/src/login/LoginPage.tsx b/packages/agentconnect-ui/src/login/LoginPage.tsx index 3026a50..567c859 100644 --- a/packages/agentconnect-ui/src/login/LoginPage.tsx +++ b/packages/agentconnect-ui/src/login/LoginPage.tsx @@ -5,6 +5,7 @@ import type { LoginAction, MachineEvent, MachineState, RelayStatus } from './mac import { LogoBadge } from '../App.js'; import { oidcRelayUrl } from '../config'; import { initialState, reduce } from './machine.js'; +import { getSessionId, isRelayReturn } from './returnUrl.js'; // Poll fast while waiting on the CLI (returning from the provider, checking a // code) so the transition to the dashboard feels immediate; poll slower while @@ -59,33 +60,12 @@ async function fetchStatus(session: string): Promise { const TERMINAL: MachineState['kind'][] = ['success', 'expired', 'failed']; -// Session id lives in the `?s=` query param (used for the OMS relay return -// URI, since fragments may be consumed by the relay); the `#` fragment is -// kept as a fallback for older announce links. -function getSessionId(): string { - const fromQuery = new URLSearchParams(window.location.search).get('s'); - if (fromQuery) return fromQuery; - return window.location.hash.slice(1); -} - -// True when this load is the browser bouncing back from the OMS relay after -// Google sign-in, not a fresh open. The CLI's announce URL is a bare -// `/login#` fragment with no query string at all, so any query key -// besides `s` showing up alongside it means the OMS relay appended its own -// callback params on the way back. -function isRelayReturn(): boolean { - const params = new URLSearchParams(window.location.search); - if (!params.get('s')) return false; - for (const key of params.keys()) { - if (key !== 's') return true; - } - return false; -} - export function LoginPage() { - const session = getSessionId(); + const session = getSessionId(window.location.search, window.location.hash); const [state, setState] = useState(() => - isRelayReturn() ? reduce(initialState, { type: 'relay-return' }) : initialState + isRelayReturn(window.location.search) + ? reduce(initialState, { type: 'relay-return' }) + : initialState ); const dispatch = useCallback((event: MachineEvent) => { setState((s) => reduce(s, event)); @@ -97,7 +77,7 @@ export function LoginPage() { // over the pairing channel once; the CLI exchanges it for the wallet and // publishes `done`, which the poll below picks up like any other status. useEffect(() => { - if (postedRelayCallback.current || !session || !isRelayReturn()) return; + if (postedRelayCallback.current || !session || !isRelayReturn(window.location.search)) return; postedRelayCallback.current = true; void postAction(session, { type: 'oidc-callback', callbackUrl: window.location.href }); }, [session]); diff --git a/packages/agentconnect-ui/src/login/returnUrl.test.ts b/packages/agentconnect-ui/src/login/returnUrl.test.ts new file mode 100644 index 0000000..67be3fc --- /dev/null +++ b/packages/agentconnect-ui/src/login/returnUrl.test.ts @@ -0,0 +1,47 @@ +import { describe, expect, it } from 'vitest'; + +import { getSessionId, isRelayReturn } from './returnUrl.ts'; + +describe('getSessionId', () => { + it('reads the session from the query string', () => { + expect(getSessionId('?s=abc', '')).toBe('abc'); + }); + + it('falls back to the fragment when there is no query', () => { + expect(getSessionId('', '#abc')).toBe('abc'); + }); + + it('prefers the query over the fragment when both are present', () => { + expect(getSessionId('?s=abc', '#xyz')).toBe('abc'); + }); + + it('returns an empty string when neither is present', () => { + expect(getSessionId('', '')).toBe(''); + }); +}); + +describe('isRelayReturn', () => { + it('is false for a fragment-only announce link (no query at all)', () => { + expect(isRelayReturn('#abc')).toBe(false); + }); + + it('is false for a bare `s` with no other query keys', () => { + expect(isRelayReturn('?s=abc')).toBe(false); + }); + + it('is true once a relay callback param joins `s`', () => { + expect(isRelayReturn('?s=abc&code=xyz')).toBe(true); + }); + + it('is true with multiple relay callback params alongside `s`', () => { + expect(isRelayReturn('?s=abc&state=1&code=2')).toBe(true); + }); + + it('is false when `s` is missing, even with other query keys', () => { + expect(isRelayReturn('?code=xyz')).toBe(false); + }); + + it('is false for an empty query string', () => { + expect(isRelayReturn('')).toBe(false); + }); +}); diff --git a/packages/agentconnect-ui/src/login/returnUrl.ts b/packages/agentconnect-ui/src/login/returnUrl.ts new file mode 100644 index 0000000..ca175de --- /dev/null +++ b/packages/agentconnect-ui/src/login/returnUrl.ts @@ -0,0 +1,37 @@ +// Pure helpers for detecting the login page's session id and whether the +// load is a bounce back from the OMS relay. Kept free of `window` so they can +// be unit tested directly; the component passes in `location.search` and +// `location.hash`. +// +// Two distinct url shapes land on this page: +// - CLI announce: `/login#` (fragment). The CLI opens this in the +// user's browser with nothing to lose by putting the session in the +// fragment, since there is no round trip through a third party. +// - Relay return: `/login?s=&` (query). Once Google +// sign-in bounces through the OMS relay and back, the session has to +// survive as a query param, since a fragment is never sent to (or +// preserved by) a server in the middle of that redirect chain, and the +// relay appends its own callback params (code, state, etc.) alongside it. + +// Session id lives in the `?s=` query param (used for the OMS relay return +// URI, since fragments may be consumed by the relay); the `#` fragment is +// kept as a fallback for older announce links. +export function getSessionId(search: string, hash: string): string { + const fromQuery = new URLSearchParams(search).get('s'); + if (fromQuery) return fromQuery; + return hash.slice(1); +} + +// True when this load is the browser bouncing back from the OMS relay after +// Google sign-in, not a fresh open. The CLI's announce URL is a bare +// `/login#` fragment with no query string at all, so any query key +// besides `s` showing up alongside it means the OMS relay appended its own +// callback params on the way back. +export function isRelayReturn(search: string): boolean { + const params = new URLSearchParams(search); + if (!params.get('s')) return false; + for (const key of params.keys()) { + if (key !== 's') return true; + } + return false; +} From dd75624ffa4880bac75fad6f566d08aa6dc6e5f5 Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 10:22:52 +0100 Subject: [PATCH 77/79] docs: migrate wallet docs to oms-wallet and node 22 --- .changeset/oms-wallet-sdk.md | 11 +++++++++++ CLAUDE.md | 8 ++++---- packages/polygon-agent-cli/README.md | 2 +- skills/SKILL.md | 4 ++-- skills/polygon-agent-cli/SKILL.md | 4 ++-- 5 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 .changeset/oms-wallet-sdk.md diff --git a/.changeset/oms-wallet-sdk.md b/.changeset/oms-wallet-sdk.md new file mode 100644 index 0000000..74c306b --- /dev/null +++ b/.changeset/oms-wallet-sdk.md @@ -0,0 +1,11 @@ +--- +"@polygonlabs/agent-cli": minor +--- + +Migrate the embedded wallet to `@polygonlabs/oms-wallet`, the renamed and updated successor to `@0xsequence/typescript-sdk`. Internally `OMSClient` becomes `OMSWallet`, with the same constructor shape and the same `.wallet` / `.indexer` sub-clients. + +**Node 22+ is now required** (was Node 20+). Update your runtime before upgrading. + +The Google leg of `wallet login` is re-architected onto the SDK's OMS relay: our own OAuth-capture endpoints are gone, and the OMS relay now handles the Google callback directly and returns the browser to the agentconnect login page to finish pairing with the CLI. This is an internal re-architecture with no user-facing behavior change beyond the Node floor: `wallet login` still opens the same login page, still lets you choose Google or email, and sessions still last about a week. + +Email login, transactions, and balances are unchanged. diff --git a/CLAUDE.md b/CLAUDE.md index 4037745..942f9ff 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,8 +12,8 @@ This is a pnpm workspace monorepo. The primary package is: - `packages/polygon-agent-cli/` — CLI tool for on-chain agent operations on Polygon -Wallets use the OMS (Open Money Stack) V3 embedded-wallet model (`@0xsequence/typescript-sdk`, -`OMSClient`): the CLI authenticates via browser login with Google or email (`wallet login`) and +Wallets use the OMS (Open Money Stack) V3 embedded-wallet model (`@polygonlabs/oms-wallet`, +`OMSWallet`): the CLI authenticates via browser login with Google or email (`wallet login`) and holds the credential on disk. Static assets (ABI JSON in `contracts/`, Claude skills in `skills/`) are @@ -21,9 +21,9 @@ published with the CLI package but are not source code. ## Development -- Dev environment requires Node 24+ (`.nvmrc`). The published CLI supports Node 20+. +- Dev environment requires Node 24+ (`.nvmrc`). The published CLI supports Node 22+. - `tsx packages/polygon-agent-cli/src/index.ts` runs the CLI directly from source (tsx handles `.js`→`.ts` remapping for workspace packages). -- `pnpm run build` compiles TypeScript to `dist/` (targeting es2023 for Node 20 compat). +- `pnpm run build` compiles TypeScript to `dist/` (targeting es2023 for Node 22 compat). - The CLI uses yargs with the `CommandModule` builder/handler pattern. ## Key Directories diff --git a/packages/polygon-agent-cli/README.md b/packages/polygon-agent-cli/README.md index 6bcdac2..81cd4af 100644 --- a/packages/polygon-agent-cli/README.md +++ b/packages/polygon-agent-cli/README.md @@ -274,7 +274,7 @@ polygon-agent-cli/ └── package.json ``` -**Requirements:** Node.js 20+ +**Requirements:** Node.js 22+ --- diff --git a/skills/SKILL.md b/skills/SKILL.md index 2162e78..9a5bf6e 100644 --- a/skills/SKILL.md +++ b/skills/SKILL.md @@ -6,7 +6,7 @@ description: "Complete Polygon agent toolkit for on-chain operations on Polygon. # Polygon Agentic CLI ## Prerequisites -- Node.js 20+ +- Node.js 22+ - Install globally: `npm install -g @polygonlabs/agent-cli` (reinstall to update) - Entry point: `agent ` - Storage: `~/.polygon-agent/` (AES-256-GCM encrypted) @@ -25,7 +25,7 @@ npm install -g @polygonlabs/agent-cli@latest # upgrade ## Architecture -The CLI uses the **OMS (Open Money Stack) V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). By default, `wallet login` opens the agentconnect login page (`POLYGON_AGENT_LOGIN_UI`, default `https://agentconnect.polygon.technology`), where the user chooses Google or email (email sends a 6-digit code to the user's inbox, entered on the page). This works whether the browser is on this machine or a different one, so there is no separate headless mode. `--local` falls back to the legacy loopback flow (raw Google sign-in URL plus a localhost callback; browser must be on this same machine; Google only). `--remote` is deprecated and is now a no-op that prints a notice. Once the user signs in, the wallet is created or unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. +The CLI uses the **OMS (Open Money Stack) V3 embedded-wallet** model (`@polygonlabs/oms-wallet`). By default, `wallet login` opens the agentconnect login page (`POLYGON_AGENT_LOGIN_UI`, default `https://agentconnect.polygon.technology`), where the user chooses Google or email (email sends a 6-digit code to the user's inbox, entered on the page). This works whether the browser is on this machine or a different one, so there is no separate headless mode. `--local` falls back to the legacy loopback flow (raw Google sign-in URL plus a localhost callback; browser must be on this same machine; Google only). `--remote` is deprecated and is now a no-op that prints a notice. Once the user signs in, the wallet is created or unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. | Wallet | Created by | Purpose | Fund? | |--------|-----------|---------|-------| diff --git a/skills/polygon-agent-cli/SKILL.md b/skills/polygon-agent-cli/SKILL.md index a6a6fdb..9a50fd1 100644 --- a/skills/polygon-agent-cli/SKILL.md +++ b/skills/polygon-agent-cli/SKILL.md @@ -6,7 +6,7 @@ description: "Complete Polygon agent toolkit for on-chain operations on Polygon. # Polygon Agentic CLI ## Prerequisites -- Node.js 20+ +- Node.js 22+ - Install globally: `npm install -g @polygonlabs/agent-cli` (reinstall to update) - Entry point: `agent ` - Storage: `~/.polygon-agent/` (AES-256-GCM encrypted) @@ -25,7 +25,7 @@ npm install -g @polygonlabs/agent-cli@latest # upgrade ## Architecture -The CLI uses the **OMS (Open Money Stack) V3 embedded-wallet** model (`@0xsequence/typescript-sdk`). By default, `wallet login` opens the agentconnect login page (`POLYGON_AGENT_LOGIN_UI`, default `https://agentconnect.polygon.technology`), where the user chooses Google or email (email sends a 6-digit code to the user's inbox, entered on the page). This works whether the browser is on this machine or a different one, so there is no separate headless mode. `--local` falls back to the legacy loopback flow (raw Google sign-in URL plus a localhost callback; browser must be on this same machine; Google only). `--remote` is deprecated and is now a no-op that prints a notice. Once the user signs in, the wallet is created or unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. +The CLI uses the **OMS (Open Money Stack) V3 embedded-wallet** model (`@polygonlabs/oms-wallet`). By default, `wallet login` opens the agentconnect login page (`POLYGON_AGENT_LOGIN_UI`, default `https://agentconnect.polygon.technology`), where the user chooses Google or email (email sends a 6-digit code to the user's inbox, entered on the page). This works whether the browser is on this machine or a different one, so there is no separate headless mode. `--local` falls back to the legacy loopback flow (raw Google sign-in URL plus a localhost callback; browser must be on this same machine; Google only). `--remote` is deprecated and is now a no-op that prints a notice. Once the user signs in, the wallet is created or unlocked and the session credential is stored encrypted on disk. There is no on-chain permission scoping. | Wallet | Created by | Purpose | Fund? | |--------|-----------|---------|-------| From 315498df54cdf7049e1f5f67aa2980932df2a0cb Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 10:35:40 +0100 Subject: [PATCH 78/79] fix(agentconnect-ui): key relay-return on oauth params and fail fast on post error isRelayReturn now requires an oauth callback param (code/state/error) rather than any non-s query key, so a wrapped/tracked link (utm_*, gclid) pasted into a browser no longer misfires a bogus relay callback post. The oidc-callback post in LoginPage now awaits the result and dispatches a terminal failed state on a false response, instead of leaving the user on the finishing-sign-in spinner until the poll timeout. Also hoists the duplicated isRelayReturn(window.location.search) call into one const. --- .../agentconnect-ui/src/login/LoginPage.tsx | 26 ++++++++++++++----- .../src/login/returnUrl.test.ts | 12 +++++++++ .../agentconnect-ui/src/login/returnUrl.ts | 21 +++++++++------ 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/packages/agentconnect-ui/src/login/LoginPage.tsx b/packages/agentconnect-ui/src/login/LoginPage.tsx index 567c859..2c6890c 100644 --- a/packages/agentconnect-ui/src/login/LoginPage.tsx +++ b/packages/agentconnect-ui/src/login/LoginPage.tsx @@ -62,10 +62,9 @@ const TERMINAL: MachineState['kind'][] = ['success', 'expired', 'failed']; export function LoginPage() { const session = getSessionId(window.location.search, window.location.hash); + const relayReturn = isRelayReturn(window.location.search); const [state, setState] = useState(() => - isRelayReturn(window.location.search) - ? reduce(initialState, { type: 'relay-return' }) - : initialState + relayReturn ? reduce(initialState, { type: 'relay-return' }) : initialState ); const dispatch = useCallback((event: MachineEvent) => { setState((s) => reduce(s, event)); @@ -76,11 +75,26 @@ export function LoginPage() { // On return from the OMS relay, hand the full callback url back to the CLI // over the pairing channel once; the CLI exchanges it for the wallet and // publishes `done`, which the poll below picks up like any other status. + // A failed post (a network error, or a 410 for a session that already + // expired) must not leave the user stuck on the "finishing sign in" + // spinner until the ~10-minute poll timeout, so a false result dispatches + // the terminal failed state right away. useEffect(() => { - if (postedRelayCallback.current || !session || !isRelayReturn(window.location.search)) return; + if (postedRelayCallback.current || !session || !relayReturn) return; postedRelayCallback.current = true; - void postAction(session, { type: 'oidc-callback', callbackUrl: window.location.href }); - }, [session]); + void postAction(session, { type: 'oidc-callback', callbackUrl: window.location.href }).then( + (ok) => { + if (ok) return; + dispatch({ + type: 'status', + status: { + status: 'error', + message: 'Could not reach the login relay. Re-run wallet login in your terminal.' + } + }); + } + ); + }, [session, relayReturn, dispatch]); // Once the session is established the user should land on their dashboard // without another click; the success card shows briefly, then we move on. diff --git a/packages/agentconnect-ui/src/login/returnUrl.test.ts b/packages/agentconnect-ui/src/login/returnUrl.test.ts index 67be3fc..942c5bb 100644 --- a/packages/agentconnect-ui/src/login/returnUrl.test.ts +++ b/packages/agentconnect-ui/src/login/returnUrl.test.ts @@ -37,6 +37,18 @@ describe('isRelayReturn', () => { expect(isRelayReturn('?s=abc&state=1&code=2')).toBe(true); }); + it('is true when the relay reports an oauth error', () => { + expect(isRelayReturn('?s=abc&error=access_denied')).toBe(true); + }); + + it('is false when a link wrapper appends utm params to a pasted link', () => { + expect(isRelayReturn('?s=abc&utm_source=x')).toBe(false); + }); + + it('is false when a link wrapper appends a gclid param to a pasted link', () => { + expect(isRelayReturn('?s=abc&gclid=x')).toBe(false); + }); + it('is false when `s` is missing, even with other query keys', () => { expect(isRelayReturn('?code=xyz')).toBe(false); }); diff --git a/packages/agentconnect-ui/src/login/returnUrl.ts b/packages/agentconnect-ui/src/login/returnUrl.ts index ca175de..4369747 100644 --- a/packages/agentconnect-ui/src/login/returnUrl.ts +++ b/packages/agentconnect-ui/src/login/returnUrl.ts @@ -22,16 +22,21 @@ export function getSessionId(search: string, hash: string): string { return hash.slice(1); } +// The OAuth callback params the OMS relay appends to the return URL once +// Google sign-in bounces back through it. The SDK consumes these directly +// from the query string, so their presence is what actually distinguishes a +// relay return from a fresh open. +const OAUTH_CALLBACK_PARAMS = ['code', 'state', 'error']; + // True when this load is the browser bouncing back from the OMS relay after -// Google sign-in, not a fresh open. The CLI's announce URL is a bare -// `/login#` fragment with no query string at all, so any query key -// besides `s` showing up alongside it means the OMS relay appended its own -// callback params on the way back. +// Google sign-in, not a fresh open. We key specifically on the OAuth callback +// params (`code`, `state`, `error`) the relay appends alongside `s`, rather +// than on "any other query key present": a link wrapper or ad click can +// append tracking params (`utm_*`, `gclid`, etc.) to a pasted `/login?s=...` +// link, and that must not be mistaken for a relay return that posts a bogus +// callback to the relay. export function isRelayReturn(search: string): boolean { const params = new URLSearchParams(search); if (!params.get('s')) return false; - for (const key of params.keys()) { - if (key !== 's') return true; - } - return false; + return OAUTH_CALLBACK_PARAMS.some((key) => params.has(key)); } From ee4757ca753414f7498247fd5244ea51c169c05b Mon Sep 17 00:00:00 2001 From: James Lawton Date: Thu, 16 Jul 2026 16:38:13 +0100 Subject: [PATCH 79/79] fix: use a static oms return uri and carry the login session in sessionstorage --- .../agentconnect-ui/src/login/LoginPage.tsx | 46 +++++++++++++++++-- .../src/login/returnUrl.test.ts | 22 ++++----- .../agentconnect-ui/src/login/returnUrl.ts | 32 +++++++------ .../src/lib/browser-login.test.ts | 2 +- .../src/lib/browser-login.ts | 14 ++++-- 5 files changed, 80 insertions(+), 36 deletions(-) diff --git a/packages/agentconnect-ui/src/login/LoginPage.tsx b/packages/agentconnect-ui/src/login/LoginPage.tsx index 2c6890c..fe9141d 100644 --- a/packages/agentconnect-ui/src/login/LoginPage.tsx +++ b/packages/agentconnect-ui/src/login/LoginPage.tsx @@ -60,9 +60,36 @@ async function fetchStatus(session: string): Promise { const TERMINAL: MachineState['kind'][] = ['success', 'expired', 'failed']; +// The OMS relay return URI is now the bare, static `/login` (required to +// match its allowlist exactly), so it can no longer carry the pairing +// session as a query param. Instead, the session is stashed here before the +// redirect to Google and recovered from here on the bounce back, since a +// sessionStorage entry survives that round trip on the same origin. +const SESSION_STORE_KEY = 'oms_login_session'; + export function LoginPage() { - const session = getSessionId(window.location.search, window.location.hash); const relayReturn = isRelayReturn(window.location.search); + // Resolve the session from the url first (fresh CLI announce, or the + // legacy `?s=` shape); fall back to whatever was stashed before the + // redirect to Google. Runs once per mount via the lazy state initializer, + // so the sessionStorage write on a fresh url load never thrashes. + const [session] = useState(() => { + const fromUrl = getSessionId(window.location.search, window.location.hash); + if (fromUrl) { + try { + window.sessionStorage.setItem(SESSION_STORE_KEY, fromUrl); + } catch { + // Best-effort: storage may be unavailable (private browsing, etc). + // This load still has the session; it just won't survive a redirect. + } + return fromUrl; + } + try { + return window.sessionStorage.getItem(SESSION_STORE_KEY) ?? ''; + } catch { + return ''; + } + }); const [state, setState] = useState(() => relayReturn ? reduce(initialState, { type: 'relay-return' }) : initialState ); @@ -78,10 +105,23 @@ export function LoginPage() { // A failed post (a network error, or a 410 for a session that already // expired) must not leave the user stuck on the "finishing sign in" // spinner until the ~10-minute poll timeout, so a false result dispatches - // the terminal failed state right away. + // the terminal failed state right away. If the session could not be + // recovered at all (sessionStorage empty, e.g. a different browser or a + // cleared session), there is nothing to post against, so it fails fast + // instead of posting an empty session to the relay. useEffect(() => { - if (postedRelayCallback.current || !session || !relayReturn) return; + if (postedRelayCallback.current || !relayReturn) return; postedRelayCallback.current = true; + if (!session) { + dispatch({ + type: 'status', + status: { + status: 'error', + message: 'Could not recover the login session. Re-run wallet login in your terminal.' + } + }); + return; + } void postAction(session, { type: 'oidc-callback', callbackUrl: window.location.href }).then( (ok) => { if (ok) return; diff --git a/packages/agentconnect-ui/src/login/returnUrl.test.ts b/packages/agentconnect-ui/src/login/returnUrl.test.ts index 942c5bb..a7e0670 100644 --- a/packages/agentconnect-ui/src/login/returnUrl.test.ts +++ b/packages/agentconnect-ui/src/login/returnUrl.test.ts @@ -25,32 +25,28 @@ describe('isRelayReturn', () => { expect(isRelayReturn('#abc')).toBe(false); }); - it('is false for a bare `s` with no other query keys', () => { - expect(isRelayReturn('?s=abc')).toBe(false); + it('is true for a bare oauth callback param, no `s` needed', () => { + expect(isRelayReturn('?code=xyz')).toBe(true); }); - it('is true once a relay callback param joins `s`', () => { + it('is true when `s` and an oauth callback param are both present', () => { expect(isRelayReturn('?s=abc&code=xyz')).toBe(true); }); - it('is true with multiple relay callback params alongside `s`', () => { - expect(isRelayReturn('?s=abc&state=1&code=2')).toBe(true); + it('is true for a bare `state` param', () => { + expect(isRelayReturn('?state=1')).toBe(true); }); it('is true when the relay reports an oauth error', () => { - expect(isRelayReturn('?s=abc&error=access_denied')).toBe(true); + expect(isRelayReturn('?error=access_denied')).toBe(true); }); - it('is false when a link wrapper appends utm params to a pasted link', () => { + it('is false for `s` alongside a non-oauth query param', () => { expect(isRelayReturn('?s=abc&utm_source=x')).toBe(false); }); - it('is false when a link wrapper appends a gclid param to a pasted link', () => { - expect(isRelayReturn('?s=abc&gclid=x')).toBe(false); - }); - - it('is false when `s` is missing, even with other query keys', () => { - expect(isRelayReturn('?code=xyz')).toBe(false); + it('is false for a non-oauth query param with no `s`', () => { + expect(isRelayReturn('?utm_source=x')).toBe(false); }); it('is false for an empty query string', () => { diff --git a/packages/agentconnect-ui/src/login/returnUrl.ts b/packages/agentconnect-ui/src/login/returnUrl.ts index 4369747..d89359e 100644 --- a/packages/agentconnect-ui/src/login/returnUrl.ts +++ b/packages/agentconnect-ui/src/login/returnUrl.ts @@ -7,15 +7,19 @@ // - CLI announce: `/login#` (fragment). The CLI opens this in the // user's browser with nothing to lose by putting the session in the // fragment, since there is no round trip through a third party. -// - Relay return: `/login?s=&` (query). Once Google -// sign-in bounces through the OMS relay and back, the session has to -// survive as a query param, since a fragment is never sent to (or -// preserved by) a server in the middle of that redirect chain, and the -// relay appends its own callback params (code, state, etc.) alongside it. +// - Relay return: `/login?` (query only, e.g. `code`, `state`). +// The return URI registered with the OMS relay must be the bare, static +// `/login` to satisfy its allowlist (an exact-string match), so it can no +// longer carry `?s=`. The pairing session is instead stashed in +// sessionStorage by the component before the redirect to Google, and +// recovered from there when the browser bounces back; these helpers only +// see the query/fragment, not sessionStorage. -// Session id lives in the `?s=` query param (used for the OMS relay return -// URI, since fragments may be consumed by the relay); the `#` fragment is -// kept as a fallback for older announce links. +// Session id lives in the `?s=` query param (used for the legacy relay +// return shape, and still supported); the `#` fragment is the primary +// carrier for the CLI announce link. On an OMS relay return neither is +// present, since the return URI is now the bare, static `/login` — the +// component falls back to sessionStorage in that case. export function getSessionId(search: string, hash: string): string { const fromQuery = new URLSearchParams(search).get('s'); if (fromQuery) return fromQuery; @@ -30,13 +34,13 @@ const OAUTH_CALLBACK_PARAMS = ['code', 'state', 'error']; // True when this load is the browser bouncing back from the OMS relay after // Google sign-in, not a fresh open. We key specifically on the OAuth callback -// params (`code`, `state`, `error`) the relay appends alongside `s`, rather -// than on "any other query key present": a link wrapper or ad click can -// append tracking params (`utm_*`, `gclid`, etc.) to a pasted `/login?s=...` -// link, and that must not be mistaken for a relay return that posts a bogus -// callback to the relay. +// params (`code`, `state`, `error`) the relay appends to the static `/login` +// return URI, rather than on "any other query key present": a link wrapper or +// ad click can append tracking params (`utm_*`, `gclid`, etc.) to a pasted +// `/login?...` link, and that must not be mistaken for a relay return that +// posts a bogus callback to the relay. This no longer requires `s` alongside +// them, since the return URI is static and never carries it. export function isRelayReturn(search: string): boolean { const params = new URLSearchParams(search); - if (!params.get('s')) return false; return OAUTH_CALLBACK_PARAMS.some((key) => params.has(key)); } diff --git a/packages/polygon-agent-cli/src/lib/browser-login.test.ts b/packages/polygon-agent-cli/src/lib/browser-login.test.ts index 6149beb..b0d5c49 100644 --- a/packages/polygon-agent-cli/src/lib/browser-login.test.ts +++ b/packages/polygon-agent-cli/src/lib/browser-login.test.ts @@ -76,7 +76,7 @@ describe('runBrowserLogin', () => { expect(result).toEqual({ walletAddress: '0xW', loginMethod: 'google' }); expect(calls).toContain('announce:https://ui.test/login#sessionid12345678'); - expect(calls).toContain('startOidc:true:https://ui.test/login?s=sessionid12345678'); + expect(calls).toContain('startOidc:true:https://ui.test/login'); expect(calls).toContain('completeOidc:https://ui.test/login?s=sessionid12345678'); expect(statuses).toEqual([ { status: 'auth-url', url: 'https://accounts.google.com/auth' }, diff --git a/packages/polygon-agent-cli/src/lib/browser-login.ts b/packages/polygon-agent-cli/src/lib/browser-login.ts index 930f818..2e1bc6e 100644 --- a/packages/polygon-agent-cli/src/lib/browser-login.ts +++ b/packages/polygon-agent-cli/src/lib/browser-login.ts @@ -88,13 +88,17 @@ export async function runBrowserLogin( } if (action.type === 'google') { - // The relay's return page carries this pairing session (`s`) so it - // survives the OAuth round-trip; the OMS relay owns the Google - // callback and bounces the browser back to that page, which posts - // its full URL back to us as an `oidc-callback` action below. + // The OMS relay validates this return URI against the project's + // allowlist with an exact string match, so it must stay the bare, + // static `/login` (no query): a per-login `?s=` would never match a + // static registration. The pairing session instead survives the + // OAuth round trip via sessionStorage on the page itself, which the + // relay bounces back to with its own callback params appended; the + // page then posts the full return URL back to us as an + // `oidc-callback` action below. const { authorizationUrl } = await wallet.startOidcRedirectAuth({ provider: deps.oidcProviderGoogle, - omsRelayReturnUri: `${opts.uiBase}/login?s=${session}` + omsRelayReturnUri: `${opts.uiBase}/login` }); await relay.setStatus(session, { status: 'auth-url', url: authorizationUrl }); continue;