From a08d0ae07c6354a222a5640db114ba3bfb43dd40 Mon Sep 17 00:00:00 2001 From: Jefferson Youashi <119521983+clintjeff2@users.noreply.github.com> Date: Tue, 2 Jun 2026 00:20:25 +0100 Subject: [PATCH 1/2] perf(sdk/stellar): public-prefilter view-tag scan with legacy path (#45) * perf(stellar): prefilter scans with public view tags * test(stellar): cover legacy view-tag scanner --- docs/chains/stellar-view-tag-batching.md | 67 +++++++++++ src/chains/stellar/index.ts | 13 +- src/chains/stellar/scan.ts | 120 +++++++++++++++++-- src/chains/stellar/stealth.ts | 46 +++++-- test/chains/stellar/bench/scan.bench.ts | 145 +++++++++++++++++++++++ test/chains/stellar/scan.test.ts | 84 ++++++++++++- 6 files changed, 452 insertions(+), 23 deletions(-) create mode 100644 docs/chains/stellar-view-tag-batching.md create mode 100644 test/chains/stellar/bench/scan.bench.ts diff --git a/docs/chains/stellar-view-tag-batching.md b/docs/chains/stellar-view-tag-batching.md new file mode 100644 index 0000000..e814b83 --- /dev/null +++ b/docs/chains/stellar-view-tag-batching.md @@ -0,0 +1,67 @@ +# Stellar view-tag batching design + +## Problem + +The original Stellar scan path computed `S = X25519(v, R_ephemeral)` for every announcement before checking the view tag. That made the one-byte view tag a correctness filter, but not a performance filter: non-matching announcements still paid the dominant ECDH cost. + +## Chosen design + +New Stellar announcements derive the first metadata byte from public announcement data: + +```text +view_tag = SHA-256("wraith:stellar:view-tag:v2:" || R_ephemeral || V_recipient)[0] +``` + +Where: + +- `R_ephemeral` is the 32-byte ed25519 ephemeral public key included in the announcement. +- `V_recipient` is the recipient's 32-byte ed25519 viewing public key from the meta-address. + +This keeps the stealth-address secret scalar unchanged: + +```text +S = X25519(r_ephemeral, V_recipient) = X25519(v_recipient, R_ephemeral) +hash_scalar = SHA-256("wraith:scalar:" || S) mod L +P_stealth = K_spend + hash_scalar * G +``` + +Scanners now derive `V_recipient` once from the local viewing seed, hash `R_ephemeral || V_recipient` for every announcement, and only compute X25519 plus ed25519 point addition for the roughly 1/256 announcements whose tag matches. + +## Tradeoffs + +### Benefits + +- The hot scan loop replaces nearly all X25519 operations with one SHA-256 over a small public tuple. +- The full stealth address derivation and private scalar derivation remain unchanged for matching announcements. +- The filter keeps the same one-byte false-positive rate as the previous shared-secret tag. +- Invalid 32-byte ephemeral keys are only parsed as curve points after the public tag passes; if a crafted candidate passes the tag but is not a valid point, it is skipped. + +### Costs and compatibility + +- The view tag is no longer bound to the ECDH shared secret. It is a public prefilter, not authentication. This is acceptable because the announced stealth address is still verified with the shared-secret-derived scalar before a match is returned. +- A sender that knows a recipient's public viewing key can deliberately choose metadata that passes the recipient's public prefilter. That only causes the recipient to do the same full verification they already needed for candidate announcements, and the stealth address check still prevents false matches. +- Legacy announcements whose metadata used `SHA-256("wraith:tag:" || S)[0]` are not compatible with the optimized `scanAnnouncements` path. The SDK retains `scanAnnouncementsLegacySharedSecretTag` for benchmarks and migration tooling, but using it for normal scans necessarily reintroduces one X25519 per announcement. +- If deployed contracts or indexers need to distinguish old and new metadata semantics, this should be represented as a soft fork/new scheme identifier. The SDK-side cryptographic change is isolated to metadata generation and scanning; the stealth-address math does not change. + +## Benchmarks + +The benchmark harness lives at `test/chains/stellar/bench/scan.bench.ts` and compares: + +1. `scanAnnouncementsLegacySharedSecretTag` over legacy shared-secret-tag announcements. +2. `scanAnnouncements` over new public-announcement-tag announcements. + +Run it with: + +```bash +pnpm exec vitest bench test/chains/stellar/bench/scan.bench.ts --run +``` + +The harness covers synthetic 10k, 100k, and 1M announcement datasets with one recipient match and a large pool of foreign announcements. Set `STELLAR_SCAN_BENCH_SIZES=10000` (or a comma-separated list) to run a subset locally. + +On this development container, the 10k benchmark reported: + +| Dataset | Before: shared-secret tag | After: public prefilter | Speedup | +| -------------------- | ------------------------: | ----------------------: | ------: | +| 10,000 announcements | 31,310.03 ms | 98.83 ms | 316.80x | + +The expected speedup grows with dataset size because the optimized path computes the viewing public key once and performs X25519 only for public view-tag hits instead of every same-scheme announcement. diff --git a/src/chains/stellar/index.ts b/src/chains/stellar/index.ts index 44b7bd3..b478622 100644 --- a/src/chains/stellar/index.ts +++ b/src/chains/stellar/index.ts @@ -1,8 +1,17 @@ export { deriveStealthKeys } from './keys'; export { STEALTH_SIGNING_MESSAGE, SCHEME_ID, META_ADDRESS_PREFIX } from './constants'; export { encodeStealthMetaAddress, decodeStealthMetaAddress } from './meta-address'; -export { generateStealthAddress, computeSharedSecret, computeViewTag } from './stealth'; -export { checkStealthAddress, scanAnnouncements } from './scan'; +export { + generateStealthAddress, + computeSharedSecret, + computeAnnouncementViewTag, + computeViewTag, +} from './stealth'; +export { + checkStealthAddress, + scanAnnouncements, + scanAnnouncementsLegacySharedSecretTag, +} from './scan'; export { deriveStealthPrivateScalar, signStellarTransaction } from './spend'; export { seedToScalar, diff --git a/src/chains/stellar/scan.ts b/src/chains/stellar/scan.ts index f5bf6a1..acbf587 100644 --- a/src/chains/stellar/scan.ts +++ b/src/chains/stellar/scan.ts @@ -1,4 +1,5 @@ -import { computeSharedSecret, computeViewTag } from './stealth'; +import { ed25519 } from '@noble/curves/ed25519'; +import { computeAnnouncementViewTag, computeSharedSecret, computeViewTag } from './stealth'; import { hashToScalar, deriveStealthPubKey, pubKeyToStellarAddress, L } from './scalar'; import { SCHEME_ID } from './constants'; import type { Announcement, MatchedAnnouncement } from './types'; @@ -7,12 +8,13 @@ import { hexToBytes } from './utils'; /** * Checks whether a single announcement belongs to the recipient. * - * Uses only the viewing key and spending PUBLIC key (no spending private key): - * 1. Compute shared secret: S = ECDH(viewing_key, R_ephemeral) - * 2. View tag quick filter (eliminates ~255/256 non-matches) - * 3. Compute hash_scalar = SHA-256("wraith:scalar:" || S) mod L - * 4. Expected stealth pubkey = K_spend + hash_scalar * G - * 5. Compare with announced stealth address + * Uses the cheap public view-tag prefilter before the X25519 shared secret: + * 1. Derive the viewing public key once from the viewing seed + * 2. View tag quick filter from R_ephemeral || viewing_pubkey + * 3. Compute shared secret: S = ECDH(viewing_key, R_ephemeral) only for tag hits + * 4. Compute hash_scalar = SHA-256("wraith:scalar:" || S) mod L + * 5. Expected stealth pubkey = K_spend + hash_scalar * G + * 6. Compare with announced stealth address * * This is view-only: it can detect payments but NOT derive the spending key. */ @@ -27,13 +29,51 @@ export function checkStealthAddress( hashScalar: bigint | null; stealthPubKeyBytes: Uint8Array | null; } { - const sharedSecret = computeSharedSecret(viewingKey, ephemeralPubKey); + const viewingPubKey = ed25519.getPublicKey(viewingKey); + return checkStealthAddressWithViewingPubKey( + ephemeralPubKey, + viewingKey, + viewingPubKey, + spendingPubKey, + viewTag, + ); +} - const computedTag = computeViewTag(sharedSecret); +function checkStealthAddressWithViewingPubKey( + ephemeralPubKey: Uint8Array, + viewingKey: Uint8Array, + viewingPubKey: Uint8Array, + spendingPubKey: Uint8Array, + viewTag: number, +): { + isMatch: boolean; + stealthAddress: string | null; + hashScalar: bigint | null; + stealthPubKeyBytes: Uint8Array | null; +} { + const computedTag = computeAnnouncementViewTag(ephemeralPubKey, viewingPubKey); if (computedTag !== viewTag) { return { isMatch: false, stealthAddress: null, hashScalar: null, stealthPubKeyBytes: null }; } + try { + return deriveStealthAddressFromAnnouncement(ephemeralPubKey, viewingKey, spendingPubKey); + } catch { + return { isMatch: false, stealthAddress: null, hashScalar: null, stealthPubKeyBytes: null }; + } +} + +function deriveStealthAddressFromAnnouncement( + ephemeralPubKey: Uint8Array, + viewingKey: Uint8Array, + spendingPubKey: Uint8Array, +): { + isMatch: boolean; + stealthAddress: string | null; + hashScalar: bigint | null; + stealthPubKeyBytes: Uint8Array | null; +} { + const sharedSecret = computeSharedSecret(viewingKey, ephemeralPubKey); const hScalar = hashToScalar(sharedSecret); const stealthPubKeyBytes = deriveStealthPubKey(spendingPubKey, hScalar); @@ -60,6 +100,7 @@ export function scanAnnouncements( spendingScalar: bigint, ): MatchedAnnouncement[] { const matched: MatchedAnnouncement[] = []; + const viewingPubKey = ed25519.getPublicKey(viewingKey); for (const ann of announcements) { if (ann.schemeId !== SCHEME_ID) continue; @@ -71,7 +112,13 @@ export function scanAnnouncements( const ephPubKey = hexToBytes(ann.ephemeralPubKey); if (ephPubKey.length !== 32) continue; - const result = checkStealthAddress(ephPubKey, viewingKey, spendingPubKey, viewTag); + const result = checkStealthAddressWithViewingPubKey( + ephPubKey, + viewingKey, + viewingPubKey, + spendingPubKey, + viewTag, + ); if ( result.isMatch && @@ -91,3 +138,56 @@ export function scanAnnouncements( return matched; } + +/** + * Pre-optimization scanner retained for benchmarks and migration analysis. + * + * This matches the old Stellar path: every same-scheme announcement pays for + * X25519 first, computes the legacy shared-secret tag second, and only then + * compares the announced stealth address. + */ +export function scanAnnouncementsLegacySharedSecretTag( + announcements: Announcement[], + viewingKey: Uint8Array, + spendingPubKey: Uint8Array, + spendingScalar: bigint, +): MatchedAnnouncement[] { + const matched: MatchedAnnouncement[] = []; + + for (const ann of announcements) { + if (ann.schemeId !== SCHEME_ID) continue; + + const metadataBytes = hexToBytes(ann.metadata); + if (metadataBytes.length === 0) continue; + const viewTag = metadataBytes[0]; + + const ephPubKey = hexToBytes(ann.ephemeralPubKey); + if (ephPubKey.length !== 32) continue; + + let sharedSecret: Uint8Array; + try { + sharedSecret = computeSharedSecret(viewingKey, ephPubKey); + } catch { + continue; + } + + const computedTag = computeViewTag(sharedSecret); + if (computedTag !== viewTag) continue; + + const hScalar = hashToScalar(sharedSecret); + const stealthPubKeyBytes = deriveStealthPubKey(spendingPubKey, hScalar); + const stealthAddress = pubKeyToStellarAddress(stealthPubKeyBytes); + + if (stealthAddress === ann.stealthAddress) { + const stealthPrivateScalar = (spendingScalar + hScalar) % L; + + matched.push({ + ...ann, + stealthPrivateScalar, + stealthPubKeyBytes, + }); + } + } + + return matched; +} diff --git a/src/chains/stellar/stealth.ts b/src/chains/stellar/stealth.ts index 526cf1d..fb43603 100644 --- a/src/chains/stellar/stealth.ts +++ b/src/chains/stellar/stealth.ts @@ -2,8 +2,11 @@ import { ed25519 } from '@noble/curves/ed25519'; import { x25519 } from '@noble/curves/ed25519'; import { sha256 } from '@noble/hashes/sha256'; import { edwardsToMontgomeryPub, edwardsToMontgomeryPriv } from '@noble/curves/ed25519'; -import type { GeneratedStealthAddress } from './types'; import { hashToScalar, deriveStealthPubKey, pubKeyToStellarAddress } from './scalar'; +import type { GeneratedStealthAddress } from './types'; + +const VIEW_TAG_PREFIX = new TextEncoder().encode('wraith:stellar:view-tag:v2:'); +const LEGACY_VIEW_TAG_PREFIX = new TextEncoder().encode('wraith:tag:'); /** * Generates a one-time stealth address for a recipient on Stellar. @@ -12,7 +15,7 @@ import { hashToScalar, deriveStealthPubKey, pubKeyToStellarAddress } from './sca * 1. Generate ephemeral ed25519 keypair (r, R) * 2. ECDH: shared_secret = X25519(r, V_recipient) * 3. hash_scalar = SHA-256("wraith:scalar:" || shared_secret) mod L - * 4. view_tag = SHA-256("wraith:tag:" || shared_secret)[0] + * 4. view_tag = SHA-256("wraith:stellar:view-tag:v2:" || R || V)[0] * 5. P_stealth = K_spend + hash_scalar * G (point addition) * 6. stealth_address = Stellar encoding of P_stealth * @@ -33,7 +36,7 @@ export function generateStealthAddress( const sharedSecret = computeSharedSecret(ephSeed, viewingPubKey); - const viewTag = computeViewTag(sharedSecret); + const viewTag = computeAnnouncementViewTag(ephPubKey, viewingPubKey); const hScalar = hashToScalar(sharedSecret); @@ -59,13 +62,38 @@ export function computeSharedSecret(privateKey: Uint8Array, publicKey: Uint8Arra } /** - * Computes the view tag from a shared secret. - * view_tag = SHA-256("wraith:tag:" || shared_secret)[0] + * Computes the view tag from the public announcement tuple. + * + * view_tag = SHA-256("wraith:stellar:view-tag:v2:" || R_ephemeral || V_recipient)[0] + * + * The tag intentionally depends only on public data already present in the + * announcement/meta-address. Scanners can reject ~255/256 announcements with + * one SHA-256 instead of paying for X25519 first; only candidates that pass + * this public prefilter need the full shared-secret derivation. + */ +export function computeAnnouncementViewTag( + ephemeralPubKey: Uint8Array, + viewingPubKey: Uint8Array, +): number { + const input = new Uint8Array( + VIEW_TAG_PREFIX.length + ephemeralPubKey.length + viewingPubKey.length, + ); + input.set(VIEW_TAG_PREFIX); + input.set(ephemeralPubKey, VIEW_TAG_PREFIX.length); + input.set(viewingPubKey, VIEW_TAG_PREFIX.length + ephemeralPubKey.length); + return sha256(input)[0]; +} + +/** + * Computes the legacy view tag from a shared secret. + * + * @deprecated Stellar scanning now uses computeAnnouncementViewTag() so the + * view-tag filter runs before X25519. This function is kept for compatibility + * checks and benchmark comparisons with the pre-batching scan path. */ export function computeViewTag(sharedSecret: Uint8Array): number { - const prefix = new TextEncoder().encode('wraith:tag:'); - const input = new Uint8Array(prefix.length + sharedSecret.length); - input.set(prefix); - input.set(sharedSecret, prefix.length); + const input = new Uint8Array(LEGACY_VIEW_TAG_PREFIX.length + sharedSecret.length); + input.set(LEGACY_VIEW_TAG_PREFIX); + input.set(sharedSecret, LEGACY_VIEW_TAG_PREFIX.length); return sha256(input)[0]; } diff --git a/test/chains/stellar/bench/scan.bench.ts b/test/chains/stellar/bench/scan.bench.ts new file mode 100644 index 0000000..c5d64ec --- /dev/null +++ b/test/chains/stellar/bench/scan.bench.ts @@ -0,0 +1,145 @@ +import { bench, describe, expect, test } from 'vitest'; +import { deriveStealthKeys } from '../../../../src/chains/stellar/keys'; +import { + computeAnnouncementViewTag, + computeSharedSecret, + computeViewTag, + generateStealthAddress, +} from '../../../../src/chains/stellar/stealth'; +import { + scanAnnouncements, + scanAnnouncementsLegacySharedSecretTag, +} from '../../../../src/chains/stellar/scan'; +import { SCHEME_ID } from '../../../../src/chains/stellar/constants'; +import { bytesToHex } from '../../../../src/chains/stellar/utils'; +import type { Announcement, StealthKeys } from '../../../../src/chains/stellar/types'; + +const MATCH_INDEX = 997; +const POOL_SIZE = 512; +const DEFAULT_DATASET_SIZES = [10_000, 100_000, 1_000_000] as const; +const DATASET_SIZES = ( + process.env.STELLAR_SCAN_BENCH_SIZES?.split(',').map(Number) ?? [...DEFAULT_DATASET_SIZES] +).filter((size) => Number.isFinite(size) && size > 0); +const BENCH_OPTIONS = { time: 1, iterations: 1, warmupTime: 0, warmupIterations: 0 }; + +const keys = deriveStealthKeys(new Uint8Array(64).fill(0xaa)); +const foreignKeys = deriveStealthKeys(new Uint8Array(64).fill(0xbb)); + +function seedFor(index: number): Uint8Array { + const seed = new Uint8Array(32); + let state = (index + 1) * 0x9e3779b1; + for (let i = 0; i < seed.length; i++) { + state ^= state << 13; + state ^= state >>> 17; + state ^= state << 5; + seed[i] = state & 0xff; + } + return seed; +} + +function makeAnnouncementFor( + recipient: StealthKeys, + ephemeralSeed: Uint8Array, + tagScheme: 'legacy-shared-secret' | 'public-announcement', +): Announcement { + const stealth = generateStealthAddress( + recipient.spendingPubKey, + recipient.viewingPubKey, + ephemeralSeed, + ); + const sharedSecret = computeSharedSecret(ephemeralSeed, recipient.viewingPubKey); + const viewTag = + tagScheme === 'legacy-shared-secret' + ? computeViewTag(sharedSecret) + : computeAnnouncementViewTag(stealth.ephemeralPubKey, recipient.viewingPubKey); + + return { + schemeId: SCHEME_ID, + stealthAddress: stealth.stealthAddress, + caller: 'GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF', + ephemeralPubKey: bytesToHex(stealth.ephemeralPubKey), + metadata: viewTag.toString(16).padStart(2, '0'), + }; +} + +const pools = { + legacy: Array.from({ length: POOL_SIZE }, (_, i) => + makeAnnouncementFor(foreignKeys, seedFor(i), 'legacy-shared-secret'), + ), + optimized: Array.from({ length: POOL_SIZE }, (_, i) => + makeAnnouncementFor(foreignKeys, seedFor(i), 'public-announcement'), + ), +}; + +const matchingAnnouncements = { + legacy: makeAnnouncementFor(keys, seedFor(POOL_SIZE + 1), 'legacy-shared-secret'), + optimized: makeAnnouncementFor(keys, seedFor(POOL_SIZE + 1), 'public-announcement'), +}; + +function makeDataset(size: number, tagScheme: 'legacy' | 'optimized') { + const foreignPool = pools[tagScheme]; + const matchingAnnouncement = matchingAnnouncements[tagScheme]; + + return Array.from({ length: size }, (_, i) => + i === MATCH_INDEX ? matchingAnnouncement : foreignPool[i % foreignPool.length], + ); +} + +const datasets = new Map( + DATASET_SIZES.map((size) => [ + size, + { + legacy: makeDataset(size, 'legacy'), + optimized: makeDataset(size, 'optimized'), + }, + ]), +); + +describe('Stellar scan benchmark fixtures', () => { + test('optimized scanner preserves correctness on the 10k synthetic dataset', () => { + const dataset = datasets.get(10_000)?.optimized; + expect(dataset).toBeDefined(); + + const matched = scanAnnouncements( + dataset!, + keys.viewingKey, + keys.spendingPubKey, + keys.spendingScalar, + ); + + expect(matched).toHaveLength(1); + expect(matched[0].stealthAddress).toBe(matchingAnnouncements.optimized.stealthAddress); + }); +}); + +describe('Stellar scan announcement view-tag batching', () => { + for (const size of DATASET_SIZES) { + const dataset = datasets.get(size)!; + + bench( + `before: shared-secret view tag (${size.toLocaleString()} announcements)`, + () => { + scanAnnouncementsLegacySharedSecretTag( + dataset.legacy, + keys.viewingKey, + keys.spendingPubKey, + keys.spendingScalar, + ); + }, + BENCH_OPTIONS, + ); + + bench( + `after: public view-tag prefilter (${size.toLocaleString()} announcements)`, + () => { + scanAnnouncements( + dataset.optimized, + keys.viewingKey, + keys.spendingPubKey, + keys.spendingScalar, + ); + }, + BENCH_OPTIONS, + ); + } +}); diff --git a/test/chains/stellar/scan.test.ts b/test/chains/stellar/scan.test.ts index 4cbbc5b..b801cce 100644 --- a/test/chains/stellar/scan.test.ts +++ b/test/chains/stellar/scan.test.ts @@ -1,7 +1,16 @@ import { describe, test, expect } from 'vitest'; import { deriveStealthKeys } from '../../../src/chains/stellar/keys'; -import { generateStealthAddress } from '../../../src/chains/stellar/stealth'; -import { checkStealthAddress, scanAnnouncements } from '../../../src/chains/stellar/scan'; +import { + computeAnnouncementViewTag, + computeSharedSecret, + computeViewTag, + generateStealthAddress, +} from '../../../src/chains/stellar/stealth'; +import { + checkStealthAddress, + scanAnnouncements, + scanAnnouncementsLegacySharedSecretTag, +} from '../../../src/chains/stellar/scan'; import { SCHEME_ID } from '../../../src/chains/stellar/constants'; import { bytesToHex } from '../../../src/chains/stellar/utils'; import type { Announcement } from '../../../src/chains/stellar/types'; @@ -110,6 +119,77 @@ describe('scanAnnouncements', () => { expect(matched).toHaveLength(0); }); + test('skips invalid ephemeral keys even when the public view tag matches', () => { + const keys = deriveStealthKeys(testSig); + const invalidEphemeralPubKey = new Uint8Array(32); + const matchingPublicTag = computeAnnouncementViewTag( + invalidEphemeralPubKey, + keys.viewingPubKey, + ); + + const announcements: Announcement[] = [ + { + schemeId: SCHEME_ID, + stealthAddress: 'GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF', + caller: 'GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF', + ephemeralPubKey: bytesToHex(invalidEphemeralPubKey), + metadata: matchingPublicTag.toString(16).padStart(2, '0'), + }, + ]; + + const matched = scanAnnouncements( + announcements, + keys.viewingKey, + keys.spendingPubKey, + keys.spendingScalar, + ); + + expect(matched).toHaveLength(0); + }); + + test('keeps legacy shared-secret view tags on the legacy scanner path', () => { + const keys = deriveStealthKeys(testSig); + let ephemeralSeed = new Uint8Array(32).fill(0x11); + let stealth = generateStealthAddress(keys.spendingPubKey, keys.viewingPubKey, ephemeralSeed); + let sharedSecret = computeSharedSecret(ephemeralSeed, keys.viewingPubKey); + let legacyTag = computeViewTag(sharedSecret); + + // Use a deterministic seed whose legacy shared-secret tag differs from the + // optimized public-announcement tag so the migration boundary is explicit. + for (let i = 0; legacyTag === stealth.viewTag && i < 255; i++) { + ephemeralSeed = new Uint8Array(32).fill(0x12 + i); + stealth = generateStealthAddress(keys.spendingPubKey, keys.viewingPubKey, ephemeralSeed); + sharedSecret = computeSharedSecret(ephemeralSeed, keys.viewingPubKey); + legacyTag = computeViewTag(sharedSecret); + } + + expect(legacyTag).not.toBe(stealth.viewTag); + + const announcements: Announcement[] = [ + { + schemeId: SCHEME_ID, + stealthAddress: stealth.stealthAddress, + caller: 'GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF', + ephemeralPubKey: bytesToHex(stealth.ephemeralPubKey), + metadata: legacyTag.toString(16).padStart(2, '0'), + }, + ]; + + expect( + scanAnnouncements(announcements, keys.viewingKey, keys.spendingPubKey, keys.spendingScalar), + ).toHaveLength(0); + + const legacyMatched = scanAnnouncementsLegacySharedSecretTag( + announcements, + keys.viewingKey, + keys.spendingPubKey, + keys.spendingScalar, + ); + + expect(legacyMatched).toHaveLength(1); + expect(legacyMatched[0].stealthAddress).toBe(stealth.stealthAddress); + }); + test('filters mix of own and foreign announcements', () => { const keys = deriveStealthKeys(testSig); const stealth = generateStealthAddress(keys.spendingPubKey, keys.viewingPubKey); From 8b840649e37437cba6036a8bffd4745cc45e3214 Mon Sep 17 00:00:00 2001 From: Meet-hybrid Date: Wed, 24 Jun 2026 06:57:39 +0100 Subject: [PATCH 2/2] feat: add @wraith-protocol/sdk-vue Vue 3 companion package - Scaffold packages/sdk-vue/ with package.json, tsconfig, tsup config - 5 composables: useWraith, useStellarStealthKeys, useEvmStealthKeys, useSolanaStealthKeys, useStealthMetaAddress - 28 tests across 5 test files (all passing) - Example app: examples/vue-stellar-app/ (Vite + Vue 3) - pnpm-workspace.yaml for monorepo support - README with usage examples and API reference Closes #70 --- examples/vue-stellar-app/index.html | 12 + examples/vue-stellar-app/package.json | 22 + examples/vue-stellar-app/src/App.vue | 88 + examples/vue-stellar-app/src/main.ts | 4 + examples/vue-stellar-app/tsconfig.json | 15 + examples/vue-stellar-app/vite.config.ts | 6 + packages/sdk-vue/README.md | 102 + packages/sdk-vue/package.json | 38 + .../src/composables/useEvmStealthKeys.ts | 184 + .../src/composables/useSolanaStealthKeys.ts | 180 + .../src/composables/useStealthMetaAddress.ts | 120 + .../src/composables/useStellarStealthKeys.ts | 183 + packages/sdk-vue/src/composables/useWraith.ts | 164 + packages/sdk-vue/src/index.ts | 6 + .../sdk-vue/test/useEvmStealthKeys.test.ts | 80 + .../sdk-vue/test/useSolanaStealthKeys.test.ts | 81 + .../test/useStealthMetaAddress.test.ts | 92 + .../test/useStellarStealthKeys.test.ts | 87 + packages/sdk-vue/test/useWraith.test.ts | 73 + packages/sdk-vue/tsconfig.json | 19 + packages/sdk-vue/tsup.config.ts | 13 + packages/sdk-vue/vitest.config.ts | 14 + pnpm-lock.yaml | 5760 ++++++++++------- pnpm-workspace.yaml | 3 + 24 files changed, 5041 insertions(+), 2305 deletions(-) create mode 100644 examples/vue-stellar-app/index.html create mode 100644 examples/vue-stellar-app/package.json create mode 100644 examples/vue-stellar-app/src/App.vue create mode 100644 examples/vue-stellar-app/src/main.ts create mode 100644 examples/vue-stellar-app/tsconfig.json create mode 100644 examples/vue-stellar-app/vite.config.ts create mode 100644 packages/sdk-vue/README.md create mode 100644 packages/sdk-vue/package.json create mode 100644 packages/sdk-vue/src/composables/useEvmStealthKeys.ts create mode 100644 packages/sdk-vue/src/composables/useSolanaStealthKeys.ts create mode 100644 packages/sdk-vue/src/composables/useStealthMetaAddress.ts create mode 100644 packages/sdk-vue/src/composables/useStellarStealthKeys.ts create mode 100644 packages/sdk-vue/src/composables/useWraith.ts create mode 100644 packages/sdk-vue/src/index.ts create mode 100644 packages/sdk-vue/test/useEvmStealthKeys.test.ts create mode 100644 packages/sdk-vue/test/useSolanaStealthKeys.test.ts create mode 100644 packages/sdk-vue/test/useStealthMetaAddress.test.ts create mode 100644 packages/sdk-vue/test/useStellarStealthKeys.test.ts create mode 100644 packages/sdk-vue/test/useWraith.test.ts create mode 100644 packages/sdk-vue/tsconfig.json create mode 100644 packages/sdk-vue/tsup.config.ts create mode 100644 packages/sdk-vue/vitest.config.ts create mode 100644 pnpm-workspace.yaml diff --git a/examples/vue-stellar-app/index.html b/examples/vue-stellar-app/index.html new file mode 100644 index 0000000..bfeca94 --- /dev/null +++ b/examples/vue-stellar-app/index.html @@ -0,0 +1,12 @@ + + + + + + Wraith SDK Vue Example + + +
+ + + diff --git a/examples/vue-stellar-app/package.json b/examples/vue-stellar-app/package.json new file mode 100644 index 0000000..9851b1c --- /dev/null +++ b/examples/vue-stellar-app/package.json @@ -0,0 +1,22 @@ +{ + "name": "vue-stellar-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.0", + "@wraith-protocol/sdk-vue": "workspace:*", + "@wraith-protocol/sdk": "workspace:*" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.0", + "vite": "^6.0.0", + "vue-tsc": "^2.0.0", + "typescript": "^5.7.0" + } +} diff --git a/examples/vue-stellar-app/src/App.vue b/examples/vue-stellar-app/src/App.vue new file mode 100644 index 0000000..412d03e --- /dev/null +++ b/examples/vue-stellar-app/src/App.vue @@ -0,0 +1,88 @@ + + + diff --git a/examples/vue-stellar-app/src/main.ts b/examples/vue-stellar-app/src/main.ts new file mode 100644 index 0000000..684d042 --- /dev/null +++ b/examples/vue-stellar-app/src/main.ts @@ -0,0 +1,4 @@ +import { createApp } from 'vue'; +import App from './App.vue'; + +createApp(App).mount('#app'); diff --git a/examples/vue-stellar-app/tsconfig.json b/examples/vue-stellar-app/tsconfig.json new file mode 100644 index 0000000..e1247fd --- /dev/null +++ b/examples/vue-stellar-app/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "strict": true, + "jsx": "preserve", + "skipLibCheck": true, + "paths": { + "@wraith-protocol/sdk": ["../../src"], + "@wraith-protocol/sdk-vue": ["../../packages/sdk-vue/src"] + } + }, + "include": ["src"] +} diff --git a/examples/vue-stellar-app/vite.config.ts b/examples/vue-stellar-app/vite.config.ts new file mode 100644 index 0000000..1ebc4fc --- /dev/null +++ b/examples/vue-stellar-app/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; + +export default defineConfig({ + plugins: [vue()], +}); diff --git a/packages/sdk-vue/README.md b/packages/sdk-vue/README.md new file mode 100644 index 0000000..b3a7781 --- /dev/null +++ b/packages/sdk-vue/README.md @@ -0,0 +1,102 @@ +# @wraith-protocol/sdk-vue + +Vue 3 Composition API wrappers for `@wraith-protocol/sdk`. + +## Installation + +```bash +npm install @wraith-protocol/sdk @wraith-protocol/sdk-vue +``` + +## Composables + +### `useWraith` + +Reactive Wraith API client. + +```ts +import { useWraith } from '@wraith-protocol/sdk-vue'; + +const { init, createAgent, getAgent, chat, agent, agentInfo, loading, error } = useWraith(); + +init({ apiKey: 'wraith_...' }); + +const myAgent = await createAgent({ + name: 'my-agent', + chain: Chain.Stellar, + wallet: 'G...', + signature: 'sig', +}); + +const response = await chat('Hello!'); +``` + +### `useStellarStealthKeys` + +```ts +import { useStellarStealthKeys } from '@wraith-protocol/sdk-vue'; + +const { deriveKeys, generateAddress, checkAddress, keys, stealthAddress, loading } = + useStellarStealthKeys(); + +const k = deriveKeys(signature); +const addr = generateAddress(k.spendingPubKey, k.viewingPubKey); +``` + +### `useEvmStealthKeys` + +```ts +import { useEvmStealthKeys } from '@wraith-protocol/sdk-vue'; + +const { deriveKeys, generateAddress, derivePrivateKey, keys, stealthAddress } = useEvmStealthKeys(); + +const k = deriveKeys('0x...'); +const addr = generateAddress(k.spendingPubKey, k.viewingPubKey); +``` + +### `useSolanaStealthKeys` + +```ts +import { useSolanaStealthKeys } from '@wraith-protocol/sdk-vue'; + +const { deriveKeys, generateAddress, scanAnnouncements, keys, matched } = useSolanaStealthKeys(); + +const k = deriveKeys(signature); +const addr = generateAddress(k.spendingPubKey, k.viewingPubKey); +``` + +### `useStealthMetaAddress` + +Multi-chain meta address encode/decode. + +```ts +import { useStealthMetaAddress } from '@wraith-protocol/sdk-vue'; + +const { encode, decode, detectChain, encoded, decoded } = useStealthMetaAddress(); + +const addr = encode(spendingPubKey, viewingPubKey, 'stellar'); +const parsed = decode(addr); // auto-detects chain +const chain = detectChain(addr); // 'stellar' +``` + +## API + +Each composable returns reactive state via `ref` (wrapped with `readonly`) and action methods: + +| State | Type | Description | +| ---------------- | -------------------------------------- | ------------------------------------------ | +| `loading` | `Ref` | True while an async operation is in flight | +| `error` | `Ref` | Last error message | +| `keys` | `Ref` | Derived stealth keys | +| `stealthAddress` | `Ref` | Generated stealth address | +| `announcements` | `Ref` | Fetched announcements | +| `matched` | `Ref` | Matched announcements after scan | +| `metaAddress` | `Ref` | Encoded stealth meta address | + +## Development + +```bash +pnpm install +pnpm build +pnpm test +``` diff --git a/packages/sdk-vue/package.json b/packages/sdk-vue/package.json new file mode 100644 index 0000000..4eb6e3d --- /dev/null +++ b/packages/sdk-vue/package.json @@ -0,0 +1,38 @@ +{ + "name": "@wraith-protocol/sdk-vue", + "version": "0.1.0", + "private": false, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsup", + "dev": "tsup --watch", + "test": "vitest run", + "test:watch": "vitest", + "typecheck": "tsc --noEmit -p tsconfig.json", + "clean": "rm -rf dist" + }, + "dependencies": { + "@wraith-protocol/sdk": "workspace:*", + "vue": "^3.5.0" + }, + "devDependencies": { + "tsup": "^8.4.0", + "typescript": "^5.7.0", + "vitest": "^3.1.0", + "@vue/test-utils": "^2.4.0", + "jsdom": "^25.0.0" + }, + "peerDependencies": { + "vue": "^3.5.0" + } +} diff --git a/packages/sdk-vue/src/composables/useEvmStealthKeys.ts b/packages/sdk-vue/src/composables/useEvmStealthKeys.ts new file mode 100644 index 0000000..d3830ae --- /dev/null +++ b/packages/sdk-vue/src/composables/useEvmStealthKeys.ts @@ -0,0 +1,184 @@ +import { ref, readonly } from 'vue'; +import { + deriveStealthKeys as evmDeriveKeys, + generateStealthAddress as evmGenerateAddress, + checkStealthAddress as evmCheckAddress, + scanAnnouncements as evmScan, + deriveStealthPrivateKey, + encodeStealthMetaAddress, + decodeStealthMetaAddress, + fetchAnnouncements, + type HexString, + type StealthKeys, + type GeneratedStealthAddress, + type Announcement, + type MatchedAnnouncement, + type StealthMetaAddress, +} from '@wraith-protocol/sdk/chains/evm'; + +export function useEvmStealthKeys() { + const keys = ref(null); + const stealthAddress = ref(null); + const announcements = ref([]); + const matched = ref([]); + const metaAddress = ref(null); + const loading = ref(false); + const error = ref(null); + + function deriveKeys(signature: HexString): StealthKeys { + loading.value = true; + error.value = null; + try { + const k = evmDeriveKeys(signature); + keys.value = k; + return k; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Key derivation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function generateAddress( + spendingPubKey: HexString, + viewingPubKey: HexString, + ephemeralPrivateKey?: HexString, + ): GeneratedStealthAddress { + loading.value = true; + error.value = null; + try { + const addr = evmGenerateAddress(spendingPubKey, viewingPubKey, ephemeralPrivateKey); + stealthAddress.value = addr; + return addr; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Address generation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function checkAddress( + ephemeralPubKey: HexString, + viewingKey: HexString, + spendingPubKey: HexString, + viewTag: number, + ) { + loading.value = true; + error.value = null; + try { + return evmCheckAddress(ephemeralPubKey, viewingKey, spendingPubKey, viewTag); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Address check failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function derivePrivateKey( + spendingKey: HexString, + ephemeralPubKey: HexString, + viewingKey: HexString, + ): HexString { + loading.value = true; + error.value = null; + try { + return deriveStealthPrivateKey(spendingKey, ephemeralPubKey, viewingKey); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Private key derivation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function encodeMetaAddress(spendingPubKey: HexString, viewingPubKey: HexString): string { + try { + const encoded = encodeStealthMetaAddress(spendingPubKey, viewingPubKey); + metaAddress.value = encoded; + return encoded; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Meta address encoding failed'; + error.value = msg; + throw e; + } + } + + function decodeMetaAddress(address: string): StealthMetaAddress { + loading.value = true; + error.value = null; + try { + return decodeStealthMetaAddress(address); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Meta address decoding failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function fetchAnnouncementsList( + chain: string, + subgraphUrl?: string, + ): Promise { + loading.value = true; + error.value = null; + try { + const list = await fetchAnnouncements(chain, subgraphUrl); + announcements.value = list; + return list; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to fetch announcements'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function scanAnnouncements( + announcementsList: Announcement[], + viewingKey: HexString, + spendingPubKey: HexString, + spendingKey: HexString, + ): MatchedAnnouncement[] { + loading.value = true; + error.value = null; + try { + const result = evmScan(announcementsList, viewingKey, spendingPubKey, spendingKey); + matched.value = result; + return result; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Scan failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + return { + keys: readonly(keys), + stealthAddress: readonly(stealthAddress), + announcements: readonly(announcements), + matched: readonly(matched), + metaAddress: readonly(metaAddress), + loading: readonly(loading), + error: readonly(error), + deriveKeys, + generateAddress, + checkAddress, + derivePrivateKey, + encodeMetaAddress, + decodeMetaAddress, + fetchAnnouncements: fetchAnnouncementsList, + scanAnnouncements, + }; +} diff --git a/packages/sdk-vue/src/composables/useSolanaStealthKeys.ts b/packages/sdk-vue/src/composables/useSolanaStealthKeys.ts new file mode 100644 index 0000000..6d1262d --- /dev/null +++ b/packages/sdk-vue/src/composables/useSolanaStealthKeys.ts @@ -0,0 +1,180 @@ +import { ref, readonly } from 'vue'; +import { + deriveStealthKeys as solanaDeriveKeys, + generateStealthAddress as solanaGenerateAddress, + checkStealthAddress as solanaCheckAddress, + scanAnnouncements as solanaScan, + deriveStealthPrivateScalar, + encodeStealthMetaAddress, + decodeStealthMetaAddress, + fetchAnnouncements, + type StealthKeys, + type GeneratedStealthAddress, + type Announcement, + type MatchedAnnouncement, + type StealthMetaAddress, +} from '@wraith-protocol/sdk/chains/solana'; + +export function useSolanaStealthKeys() { + const keys = ref(null); + const stealthAddress = ref(null); + const announcements = ref([]); + const matched = ref([]); + const metaAddress = ref(null); + const loading = ref(false); + const error = ref(null); + + function deriveKeys(signature: Uint8Array): StealthKeys { + loading.value = true; + error.value = null; + try { + const k = solanaDeriveKeys(signature); + keys.value = k; + return k; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Key derivation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function generateAddress( + spendingPubKey: Uint8Array, + viewingPubKey: Uint8Array, + ephemeralSeed?: Uint8Array, + ): GeneratedStealthAddress { + loading.value = true; + error.value = null; + try { + const addr = solanaGenerateAddress(spendingPubKey, viewingPubKey, ephemeralSeed); + stealthAddress.value = addr; + return addr; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Address generation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function checkAddress( + ephemeralPubKey: Uint8Array, + viewingKey: Uint8Array, + spendingPubKey: Uint8Array, + viewTag: number, + ) { + loading.value = true; + error.value = null; + try { + return solanaCheckAddress(ephemeralPubKey, viewingKey, spendingPubKey, viewTag); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Address check failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function derivePrivateScalar( + spendingScalar: bigint, + viewingKey: Uint8Array, + ephemeralPubKey: Uint8Array, + ): bigint { + loading.value = true; + error.value = null; + try { + return deriveStealthPrivateScalar(spendingScalar, viewingKey, ephemeralPubKey); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Private scalar derivation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function encodeMetaAddress(spendingPubKey: Uint8Array, viewingPubKey: Uint8Array): string { + try { + const encoded = encodeStealthMetaAddress(spendingPubKey, viewingPubKey); + metaAddress.value = encoded; + return encoded; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Meta address encoding failed'; + error.value = msg; + throw e; + } + } + + function decodeMetaAddress(address: string): StealthMetaAddress { + loading.value = true; + error.value = null; + try { + return decodeStealthMetaAddress(address); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Meta address decoding failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function fetchAnnouncementsList(chain?: string, rpcUrl?: string): Promise { + loading.value = true; + error.value = null; + try { + const list = await fetchAnnouncements(chain, rpcUrl); + announcements.value = list; + return list; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to fetch announcements'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function scanAnnouncements( + announcementsList: Announcement[], + viewingKey: Uint8Array, + spendingPubKey: Uint8Array, + spendingScalar: bigint, + ): MatchedAnnouncement[] { + loading.value = true; + error.value = null; + try { + const result = solanaScan(announcementsList, viewingKey, spendingPubKey, spendingScalar); + matched.value = result; + return result; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Scan failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + return { + keys: readonly(keys), + stealthAddress: readonly(stealthAddress), + announcements: readonly(announcements), + matched: readonly(matched), + metaAddress: readonly(metaAddress), + loading: readonly(loading), + error: readonly(error), + deriveKeys, + generateAddress, + checkAddress, + derivePrivateScalar, + encodeMetaAddress, + decodeMetaAddress, + fetchAnnouncements: fetchAnnouncementsList, + scanAnnouncements, + }; +} diff --git a/packages/sdk-vue/src/composables/useStealthMetaAddress.ts b/packages/sdk-vue/src/composables/useStealthMetaAddress.ts new file mode 100644 index 0000000..1fb392d --- /dev/null +++ b/packages/sdk-vue/src/composables/useStealthMetaAddress.ts @@ -0,0 +1,120 @@ +import { ref, readonly } from 'vue'; +import { + encodeStealthMetaAddress as evmEncode, + decodeStealthMetaAddress as evmDecode, + META_ADDRESS_PREFIX as EVM_PREFIX, +} from '@wraith-protocol/sdk/chains/evm'; +import { + encodeStealthMetaAddress as stellarEncode, + decodeStealthMetaAddress as stellarDecode, + META_ADDRESS_PREFIX as STELLAR_PREFIX, +} from '@wraith-protocol/sdk/chains/stellar'; +import { + encodeStealthMetaAddress as solanaEncode, + decodeStealthMetaAddress as solanaDecode, + META_ADDRESS_PREFIX as SOLANA_PREFIX, +} from '@wraith-protocol/sdk/chains/solana'; +import type { HexString } from '@wraith-protocol/sdk/chains/evm'; +import type { StealthMetaAddress as EvmMetaAddress } from '@wraith-protocol/sdk/chains/evm'; +import type { StealthMetaAddress as StellarMetaAddress } from '@wraith-protocol/sdk/chains/stellar'; + +export type ChainType = 'evm' | 'stellar' | 'solana'; + +type AnyStealthMetaAddress = EvmMetaAddress | StellarMetaAddress; + +const CHAIN_PREFIXES: Record = { + evm: EVM_PREFIX, + stellar: STELLAR_PREFIX, + solana: SOLANA_PREFIX, +}; + +export function useStealthMetaAddress() { + const encoded = ref(null); + const decoded = ref(null); + const chain = ref('evm'); + const error = ref(null); + + function getPrefix(chainType: ChainType): string { + return CHAIN_PREFIXES[chainType]; + } + + function setChain(chainType: ChainType) { + chain.value = chainType; + } + + function encode( + spendingPubKey: HexString | Uint8Array, + viewingPubKey: HexString | Uint8Array, + chainType?: ChainType, + ): string { + error.value = null; + const c = chainType ?? chain.value; + try { + let result: string; + switch (c) { + case 'evm': + result = evmEncode(spendingPubKey as `0x${string}`, viewingPubKey as `0x${string}`); + break; + case 'stellar': + result = stellarEncode(spendingPubKey as Uint8Array, viewingPubKey as Uint8Array); + break; + case 'solana': + result = solanaEncode(spendingPubKey as Uint8Array, viewingPubKey as Uint8Array); + break; + } + encoded.value = result; + chain.value = c; + return result; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Encoding failed'; + error.value = msg; + throw e; + } + } + + function decode(address: string): AnyStealthMetaAddress { + error.value = null; + try { + const c = detectChain(address); + let result: AnyStealthMetaAddress; + switch (c) { + case 'evm': + result = evmDecode(address); + break; + case 'stellar': + result = stellarDecode(address); + break; + case 'solana': + result = solanaDecode(address); + break; + } + decoded.value = result; + chain.value = c; + return result; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Decoding failed'; + error.value = msg; + throw e; + } + } + + function detectChain(address: string): ChainType { + if (address.startsWith(EVM_PREFIX)) return 'evm'; + if (address.startsWith(STELLAR_PREFIX)) return 'stellar'; + if (address.startsWith(SOLANA_PREFIX)) return 'solana'; + throw new Error(`Unknown meta address prefix: ${address.slice(0, 10)}...`); + } + + return { + encoded: readonly(encoded), + decoded: readonly(decoded), + chain: readonly(chain), + error: readonly(error), + setChain, + encode, + decode, + detectChain, + getPrefix, + CHAIN_PREFIXES, + }; +} diff --git a/packages/sdk-vue/src/composables/useStellarStealthKeys.ts b/packages/sdk-vue/src/composables/useStellarStealthKeys.ts new file mode 100644 index 0000000..9305d6f --- /dev/null +++ b/packages/sdk-vue/src/composables/useStellarStealthKeys.ts @@ -0,0 +1,183 @@ +import { ref, readonly } from 'vue'; +import { + deriveStealthKeys as stellarDeriveKeys, + generateStealthAddress as stellarGenerateAddress, + checkStealthAddress as stellarCheckAddress, + scanAnnouncements as stellarScan, + deriveStealthPrivateScalar, + encodeStealthMetaAddress, + decodeStealthMetaAddress, + fetchAnnouncements, + type StealthKeys, + type GeneratedStealthAddress, + type Announcement, + type MatchedAnnouncement, + type StealthMetaAddress, +} from '@wraith-protocol/sdk/chains/stellar'; + +export function useStellarStealthKeys() { + const keys = ref(null); + const stealthAddress = ref(null); + const announcements = ref([]); + const matched = ref([]); + const metaAddress = ref(null); + const loading = ref(false); + const error = ref(null); + + function deriveKeys(signature: Uint8Array): StealthKeys { + loading.value = true; + error.value = null; + try { + const k = stellarDeriveKeys(signature); + keys.value = k; + return k; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Key derivation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function generateAddress( + spendingPubKey: Uint8Array, + viewingPubKey: Uint8Array, + ephemeralSeed?: Uint8Array, + ): GeneratedStealthAddress { + loading.value = true; + error.value = null; + try { + const addr = stellarGenerateAddress(spendingPubKey, viewingPubKey, ephemeralSeed); + stealthAddress.value = addr; + return addr; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Address generation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function checkAddress( + ephemeralPubKey: Uint8Array, + viewingKey: Uint8Array, + spendingPubKey: Uint8Array, + viewTag: number, + ) { + loading.value = true; + error.value = null; + try { + return stellarCheckAddress(ephemeralPubKey, viewingKey, spendingPubKey, viewTag); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Address check failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function derivePrivateScalar( + spendingScalar: bigint, + viewingKey: Uint8Array, + ephemeralPubKey: Uint8Array, + ): bigint { + loading.value = true; + error.value = null; + try { + return deriveStealthPrivateScalar(spendingScalar, viewingKey, ephemeralPubKey); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Private scalar derivation failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function encodeMetaAddress(spendingPubKey: Uint8Array, viewingPubKey: Uint8Array): string { + try { + const encoded = encodeStealthMetaAddress(spendingPubKey, viewingPubKey); + metaAddress.value = encoded; + return encoded; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Meta address encoding failed'; + error.value = msg; + throw e; + } + } + + function decodeMetaAddress(address: string): StealthMetaAddress { + loading.value = true; + error.value = null; + try { + return decodeStealthMetaAddress(address); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Meta address decoding failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function fetchAnnouncementsList( + chain?: string, + sorobanUrl?: string, + ): Promise { + loading.value = true; + error.value = null; + try { + const list = await fetchAnnouncements(chain, sorobanUrl); + announcements.value = list; + return list; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to fetch announcements'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + function scanAnnouncements( + announcementsList: Announcement[], + viewingKey: Uint8Array, + spendingPubKey: Uint8Array, + spendingScalar: bigint, + ): MatchedAnnouncement[] { + loading.value = true; + error.value = null; + try { + const result = stellarScan(announcementsList, viewingKey, spendingPubKey, spendingScalar); + matched.value = result; + return result; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Scan failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + return { + keys: readonly(keys), + stealthAddress: readonly(stealthAddress), + announcements: readonly(announcements), + matched: readonly(matched), + metaAddress: readonly(metaAddress), + loading: readonly(loading), + error: readonly(error), + deriveKeys, + generateAddress, + checkAddress, + derivePrivateScalar, + encodeMetaAddress, + decodeMetaAddress, + fetchAnnouncements: fetchAnnouncementsList, + scanAnnouncements, + }; +} diff --git a/packages/sdk-vue/src/composables/useWraith.ts b/packages/sdk-vue/src/composables/useWraith.ts new file mode 100644 index 0000000..b7b5956 --- /dev/null +++ b/packages/sdk-vue/src/composables/useWraith.ts @@ -0,0 +1,164 @@ +import { ref, readonly, type Ref } from 'vue'; +import { + Wraith, + WraithAgent, + Chain, + type WraithConfig, + type AgentConfig, + type AgentInfo, + type ChatResponse, +} from '@wraith-protocol/sdk'; + +export function useWraith(config?: WraithConfig) { + const client: Ref = ref(null); + const agent: Ref = ref(null); + const agentInfo: Ref = ref(null); + const agents: Ref = ref([]); + const loading = ref(false); + const error: Ref = ref(null); + + function init(cfg: WraithConfig) { + client.value = new Wraith(cfg); + } + + if (config) { + init(config); + } + + async function createAgent(cfg: AgentConfig): Promise { + if (!client.value) throw new Error('Wraith client not initialized'); + loading.value = true; + error.value = null; + try { + const a = await client.value.createAgent(cfg); + agent.value = a; + agentInfo.value = a.info; + return a; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to create agent'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function getAgent(agentId: string): Promise { + if (!client.value) throw new Error('Wraith client not initialized'); + loading.value = true; + error.value = null; + try { + const a = client.value.agent(agentId); + agent.value = a; + agentInfo.value = a.info; + return a; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to get agent'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function getAgentByWallet(wallet: string): Promise { + if (!client.value) throw new Error('Wraith client not initialized'); + loading.value = true; + error.value = null; + try { + const a = await client.value.getAgentByWallet(wallet); + agent.value = a; + agentInfo.value = a.info; + return a; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to get agent by wallet'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function getAgentByName(name: string): Promise { + if (!client.value) throw new Error('Wraith client not initialized'); + loading.value = true; + error.value = null; + try { + const a = await client.value.getAgentByName(name); + agent.value = a; + agentInfo.value = a.info; + return a; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to get agent by name'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function listAgents(): Promise { + if (!client.value) throw new Error('Wraith client not initialized'); + loading.value = true; + error.value = null; + try { + const list = await client.value.listAgents(); + agents.value = list; + return list; + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to list agents'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function chat(message: string, conversationId?: string): Promise { + if (!agent.value) throw new Error('No active agent'); + loading.value = true; + error.value = null; + try { + return await agent.value.chat(message, conversationId); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Chat failed'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + async function getBalance(): Promise<{ native: string; tokens: Record }> { + if (!agent.value) throw new Error('No active agent'); + loading.value = true; + error.value = null; + try { + return await agent.value.getBalance(); + } catch (e) { + const msg = e instanceof Error ? e.message : 'Failed to get balance'; + error.value = msg; + throw e; + } finally { + loading.value = false; + } + } + + return { + client: readonly(client), + agent: readonly(agent), + agentInfo: readonly(agentInfo), + agents: readonly(agents), + loading: readonly(loading), + error: readonly(error), + init, + createAgent, + getAgent, + getAgentByWallet, + getAgentByName, + listAgents, + chat, + getBalance, + Chain, + }; +} diff --git a/packages/sdk-vue/src/index.ts b/packages/sdk-vue/src/index.ts new file mode 100644 index 0000000..4d38f4d --- /dev/null +++ b/packages/sdk-vue/src/index.ts @@ -0,0 +1,6 @@ +export { useWraith } from './composables/useWraith'; +export { useStellarStealthKeys } from './composables/useStellarStealthKeys'; +export { useEvmStealthKeys } from './composables/useEvmStealthKeys'; +export { useSolanaStealthKeys } from './composables/useSolanaStealthKeys'; +export { useStealthMetaAddress } from './composables/useStealthMetaAddress'; +export type { ChainType } from './composables/useStealthMetaAddress'; diff --git a/packages/sdk-vue/test/useEvmStealthKeys.test.ts b/packages/sdk-vue/test/useEvmStealthKeys.test.ts new file mode 100644 index 0000000..67b2dec --- /dev/null +++ b/packages/sdk-vue/test/useEvmStealthKeys.test.ts @@ -0,0 +1,80 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { useEvmStealthKeys } from '../src/composables/useEvmStealthKeys'; + +const mockKeys = vi.hoisted(() => ({ + spendingKey: '0x' + 'ab'.repeat(32), + viewingKey: '0x' + 'cd'.repeat(32), + spendingPubKey: '0x' + 'ef'.repeat(33), + viewingPubKey: '0x' + '01'.repeat(33), +})); + +const mockAddress = vi.hoisted(() => ({ + stealthAddress: '0x' + '02'.repeat(20), + ephemeralPubKey: '0x' + '03'.repeat(33), + viewTag: 42, +})); + +vi.mock('@wraith-protocol/sdk/chains/evm', () => ({ + deriveStealthKeys: vi.fn().mockReturnValue(mockKeys), + generateStealthAddress: vi.fn().mockReturnValue(mockAddress), + checkStealthAddress: vi.fn().mockReturnValue({ + isMatch: true, + stealthAddress: '0x' + '02'.repeat(20), + }), + scanAnnouncements: vi.fn().mockReturnValue([]), + deriveStealthPrivateKey: vi.fn().mockReturnValue('0x' + '04'.repeat(32)), + encodeStealthMetaAddress: vi.fn().mockReturnValue('st:eth:0xabc...'), + decodeStealthMetaAddress: vi.fn().mockReturnValue({ + prefix: 'st:eth:0x', + spendingPubKey: '0x' + 'ef'.repeat(33), + viewingPubKey: '0x' + '01'.repeat(33), + }), + fetchAnnouncements: vi.fn().mockResolvedValue([]), +})); + +describe('useEvmStealthKeys', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('derives keys from signature', () => { + const composable = useEvmStealthKeys(); + const result = composable.deriveKeys('0x' + 'ff'.repeat(65)); + expect(result).toEqual(mockKeys); + expect(composable.keys.value).toEqual(mockKeys); + }); + + it('generates stealth address', () => { + const composable = useEvmStealthKeys(); + const result = composable.generateAddress('0x' + 'ef'.repeat(33), '0x' + '01'.repeat(33)); + expect(result).toEqual(mockAddress); + expect(composable.stealthAddress.value).toEqual(mockAddress); + }); + + it('checks stealth address', () => { + const composable = useEvmStealthKeys(); + const result = composable.checkAddress( + '0x' + '03'.repeat(33), + '0x' + 'cd'.repeat(32), + '0x' + 'ef'.repeat(33), + 42, + ); + expect(result.isMatch).toBe(true); + }); + + it('derives private key', () => { + const composable = useEvmStealthKeys(); + const result = composable.derivePrivateKey( + '0x' + 'ab'.repeat(32), + '0x' + '03'.repeat(33), + '0x' + 'cd'.repeat(32), + ); + expect(result).toBe('0x' + '04'.repeat(32)); + }); + + it('encodes meta address', () => { + const composable = useEvmStealthKeys(); + const result = composable.encodeMetaAddress('0x' + 'ef'.repeat(33), '0x' + '01'.repeat(33)); + expect(result).toBe('st:eth:0xabc...'); + }); +}); diff --git a/packages/sdk-vue/test/useSolanaStealthKeys.test.ts b/packages/sdk-vue/test/useSolanaStealthKeys.test.ts new file mode 100644 index 0000000..9127c99 --- /dev/null +++ b/packages/sdk-vue/test/useSolanaStealthKeys.test.ts @@ -0,0 +1,81 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { useSolanaStealthKeys } from '../src/composables/useSolanaStealthKeys'; + +const mockKeys = vi.hoisted(() => ({ + spendingKey: new Uint8Array(32), + spendingScalar: 1n, + viewingKey: new Uint8Array(32), + viewingScalar: 2n, + spendingPubKey: new Uint8Array(32), + viewingPubKey: new Uint8Array(32), +})); + +const mockAddress = vi.hoisted(() => ({ + stealthAddress: 'FAK9FSoLAnAAddresS11111111111111111111111111111', + ephemeralPubKey: new Uint8Array(32), + viewTag: 42, +})); + +vi.mock('@wraith-protocol/sdk/chains/solana', () => ({ + deriveStealthKeys: vi.fn().mockReturnValue(mockKeys), + generateStealthAddress: vi.fn().mockReturnValue(mockAddress), + checkStealthAddress: vi.fn().mockReturnValue({ + isMatch: true, + stealthAddress: 'FAK9FSoLAnAAddresS11111111111111111111111111111', + hashScalar: 3n, + stealthPubKeyBytes: new Uint8Array(32), + }), + scanAnnouncements: vi.fn().mockReturnValue([]), + deriveStealthPrivateScalar: vi.fn().mockReturnValue(3n), + encodeStealthMetaAddress: vi.fn().mockReturnValue('st:sol:abc...'), + decodeStealthMetaAddress: vi.fn().mockReturnValue({ + prefix: 'st:sol:', + spendingPubKey: new Uint8Array(32), + viewingPubKey: new Uint8Array(32), + }), + fetchAnnouncements: vi.fn().mockResolvedValue([]), +})); + +describe('useSolanaStealthKeys', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('derives keys from signature', () => { + const composable = useSolanaStealthKeys(); + const sig = new Uint8Array(64); + const result = composable.deriveKeys(sig); + expect(result).toEqual(mockKeys); + expect(composable.keys.value).toEqual(mockKeys); + }); + + it('generates stealth address', () => { + const composable = useSolanaStealthKeys(); + const result = composable.generateAddress(new Uint8Array(32), new Uint8Array(32)); + expect(result).toEqual(mockAddress); + expect(composable.stealthAddress.value).toEqual(mockAddress); + }); + + it('checks stealth address', () => { + const composable = useSolanaStealthKeys(); + const result = composable.checkAddress( + new Uint8Array(32), + new Uint8Array(32), + new Uint8Array(32), + 42, + ); + expect(result.isMatch).toBe(true); + }); + + it('derives private scalar', () => { + const composable = useSolanaStealthKeys(); + const result = composable.derivePrivateScalar(1n, new Uint8Array(32), new Uint8Array(32)); + expect(result).toBe(3n); + }); + + it('encodes meta address', () => { + const composable = useSolanaStealthKeys(); + const result = composable.encodeMetaAddress(new Uint8Array(32), new Uint8Array(32)); + expect(result).toBe('st:sol:abc...'); + }); +}); diff --git a/packages/sdk-vue/test/useStealthMetaAddress.test.ts b/packages/sdk-vue/test/useStealthMetaAddress.test.ts new file mode 100644 index 0000000..27b8840 --- /dev/null +++ b/packages/sdk-vue/test/useStealthMetaAddress.test.ts @@ -0,0 +1,92 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { useStealthMetaAddress } from '../src/composables/useStealthMetaAddress'; + +const evmEncoded = vi.hoisted(() => 'st:eth:0x' + 'ab'.repeat(66)); +const stellarEncoded = vi.hoisted(() => 'st:xlm:' + 'cd'.repeat(64)); +const solanaEncoded = vi.hoisted(() => 'st:sol:' + 'ef'.repeat(64)); + +vi.mock('@wraith-protocol/sdk/chains/evm', () => ({ + encodeStealthMetaAddress: vi.fn().mockReturnValue(evmEncoded), + decodeStealthMetaAddress: vi.fn().mockReturnValue({ + prefix: 'st:eth:0x', + spendingPubKey: '0x' + '01'.repeat(33), + viewingPubKey: '0x' + '02'.repeat(33), + }), + META_ADDRESS_PREFIX: 'st:eth:0x', +})); + +vi.mock('@wraith-protocol/sdk/chains/stellar', () => ({ + encodeStealthMetaAddress: vi.fn().mockReturnValue(stellarEncoded), + decodeStealthMetaAddress: vi.fn().mockReturnValue({ + prefix: 'st:xlm:', + spendingPubKey: new Uint8Array(32), + viewingPubKey: new Uint8Array(32), + }), + META_ADDRESS_PREFIX: 'st:xlm:', +})); + +vi.mock('@wraith-protocol/sdk/chains/solana', () => ({ + encodeStealthMetaAddress: vi.fn().mockReturnValue(solanaEncoded), + decodeStealthMetaAddress: vi.fn().mockReturnValue({ + prefix: 'st:sol:', + spendingPubKey: new Uint8Array(32), + viewingPubKey: new Uint8Array(32), + }), + META_ADDRESS_PREFIX: 'st:sol:', +})); + +describe('useStealthMetaAddress', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('encodes EVM meta address', () => { + const composable = useStealthMetaAddress(); + const result = composable.encode('0x' + '01'.repeat(33), '0x' + '02'.repeat(33), 'evm'); + expect(result).toBe(evmEncoded); + expect(composable.encoded.value).toBe(evmEncoded); + expect(composable.chain.value).toBe('evm'); + }); + + it('encodes Stellar meta address', () => { + const composable = useStealthMetaAddress(); + const result = composable.encode(new Uint8Array(32), new Uint8Array(32), 'stellar'); + expect(result).toBe(stellarEncoded); + expect(composable.chain.value).toBe('stellar'); + }); + + it('encodes Solana meta address', () => { + const composable = useStealthMetaAddress(); + const result = composable.encode(new Uint8Array(32), new Uint8Array(32), 'solana'); + expect(result).toBe(solanaEncoded); + expect(composable.chain.value).toBe('solana'); + }); + + it('decodes EVM meta address', () => { + const composable = useStealthMetaAddress(); + const result = composable.decode(evmEncoded); + expect(result.prefix).toBe('st:eth:0x'); + expect(composable.chain.value).toBe('evm'); + }); + + it('detects correct chain from prefix', () => { + const composable = useStealthMetaAddress(); + expect(composable.detectChain(evmEncoded)).toBe('evm'); + expect(composable.detectChain(stellarEncoded)).toBe('stellar'); + expect(composable.detectChain(solanaEncoded)).toBe('solana'); + }); + + it('gets correct prefix for each chain', () => { + const composable = useStealthMetaAddress(); + expect(composable.getPrefix('evm')).toBe('st:eth:0x'); + expect(composable.getPrefix('stellar')).toBe('st:xlm:'); + expect(composable.getPrefix('solana')).toBe('st:sol:'); + }); + + it('throws for unknown prefix', () => { + const composable = useStealthMetaAddress(); + expect(() => composable.detectChain('unknown:prefix:abc')).toThrow( + 'Unknown meta address prefix', + ); + }); +}); diff --git a/packages/sdk-vue/test/useStellarStealthKeys.test.ts b/packages/sdk-vue/test/useStellarStealthKeys.test.ts new file mode 100644 index 0000000..3018ad5 --- /dev/null +++ b/packages/sdk-vue/test/useStellarStealthKeys.test.ts @@ -0,0 +1,87 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { useStellarStealthKeys } from '../src/composables/useStellarStealthKeys'; + +const mockKeys = vi.hoisted(() => ({ + spendingKey: new Uint8Array(32), + spendingScalar: 1n, + viewingKey: new Uint8Array(32), + viewingScalar: 2n, + spendingPubKey: new Uint8Array(32), + viewingPubKey: new Uint8Array(32), +})); + +const mockAddress = vi.hoisted(() => ({ + stealthAddress: 'GABCDEF1234567890', + ephemeralPubKey: new Uint8Array(32), + viewTag: 42, +})); + +vi.mock('@wraith-protocol/sdk/chains/stellar', () => ({ + deriveStealthKeys: vi.fn().mockReturnValue(mockKeys), + generateStealthAddress: vi.fn().mockReturnValue(mockAddress), + checkStealthAddress: vi.fn().mockReturnValue({ + isMatch: true, + stealthAddress: 'GABCDEF1234567890', + hashScalar: 3n, + stealthPubKeyBytes: new Uint8Array(32), + }), + scanAnnouncements: vi.fn().mockReturnValue([]), + deriveStealthPrivateScalar: vi.fn().mockReturnValue(3n), + encodeStealthMetaAddress: vi.fn().mockReturnValue('st:xlm:abc...'), + decodeStealthMetaAddress: vi.fn().mockReturnValue({ + prefix: 'st:xlm:', + spendingPubKey: new Uint8Array(32), + viewingPubKey: new Uint8Array(32), + }), + fetchAnnouncements: vi.fn().mockResolvedValue([]), +})); + +describe('useStellarStealthKeys', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('derives keys from signature', () => { + const composable = useStellarStealthKeys(); + const sig = new Uint8Array(64); + const result = composable.deriveKeys(sig); + expect(result).toEqual(mockKeys); + expect(composable.keys.value).toEqual(mockKeys); + }); + + it('generates stealth address', () => { + const composable = useStellarStealthKeys(); + const result = composable.generateAddress(new Uint8Array(32), new Uint8Array(32)); + expect(result).toEqual(mockAddress); + expect(composable.stealthAddress.value).toEqual(mockAddress); + }); + + it('checks stealth address', () => { + const composable = useStellarStealthKeys(); + const result = composable.checkAddress( + new Uint8Array(32), + new Uint8Array(32), + new Uint8Array(32), + 42, + ); + expect(result.isMatch).toBe(true); + }); + + it('encodes meta address', () => { + const composable = useStellarStealthKeys(); + const result = composable.encodeMetaAddress(new Uint8Array(32), new Uint8Array(32)); + expect(result).toBe('st:xlm:abc...'); + }); + + it('decodes meta address', () => { + const composable = useStellarStealthKeys(); + const result = composable.decodeMetaAddress('st:xlm:abc...'); + expect(result.prefix).toBe('st:xlm:'); + }); + + it('manages loading state during sync operations', () => { + const composable = useStellarStealthKeys(); + composable.deriveKeys(new Uint8Array(64)); + expect(composable.loading.value).toBe(false); + }); +}); diff --git a/packages/sdk-vue/test/useWraith.test.ts b/packages/sdk-vue/test/useWraith.test.ts new file mode 100644 index 0000000..961eabf --- /dev/null +++ b/packages/sdk-vue/test/useWraith.test.ts @@ -0,0 +1,73 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { useWraith } from '../src/composables/useWraith'; + +vi.mock('@wraith-protocol/sdk', () => { + const mockAgent = { + info: { id: 'agent-1', name: 'test-agent', chains: [], addresses: {}, metaAddresses: {} }, + chat: vi.fn(), + getBalance: vi.fn(), + }; + const MockWraith = vi.fn().mockImplementation(() => ({ + createAgent: vi.fn().mockResolvedValue(mockAgent), + agent: vi.fn().mockReturnValue(mockAgent), + getAgentByWallet: vi.fn().mockResolvedValue(mockAgent), + getAgentByName: vi.fn().mockResolvedValue(mockAgent), + listAgents: vi.fn().mockResolvedValue([mockAgent.info]), + })); + return { + Wraith: MockWraith, + WraithAgent: vi.fn(), + Chain: { Stellar: 'stellar', Ethereum: 'ethereum' }, + }; +}); + +describe('useWraith', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('initializes with config', () => { + const composable = useWraith({ apiKey: 'test-key' }); + expect(composable.client.value).toBeTruthy(); + }); + + it('initializes lazily via init()', () => { + const composable = useWraith(); + expect(composable.client.value).toBeNull(); + composable.init({ apiKey: 'test-key' }); + expect(composable.client.value).toBeTruthy(); + }); + + it('createAgent sets agent and agentInfo', async () => { + const composable = useWraith({ apiKey: 'test-key' }); + await composable.createAgent({ + name: 'test', + chain: 'stellar' as any, + wallet: 'GABC', + signature: 'sig', + }); + expect(composable.agent.value).toBeTruthy(); + expect(composable.agentInfo.value).toBeTruthy(); + expect(composable.agentInfo.value!.id).toBe('agent-1'); + }); + + it('throws if client not initialized', async () => { + const composable = useWraith(); + await expect(composable.createAgent({} as any)).rejects.toThrow( + 'Wraith client not initialized', + ); + }); + + it('sets loading state during async operations', async () => { + const composable = useWraith({ apiKey: 'test-key' }); + const promise = composable.createAgent({ + name: 'test', + chain: 'stellar' as any, + wallet: 'GABC', + signature: 'sig', + }); + expect(composable.loading.value).toBe(true); + await promise; + expect(composable.loading.value).toBe(false); + }); +}); diff --git a/packages/sdk-vue/tsconfig.json b/packages/sdk-vue/tsconfig.json new file mode 100644 index 0000000..1ef68bd --- /dev/null +++ b/packages/sdk-vue/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "declaration": true, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "dist", + "jsx": "preserve", + "paths": { + "@wraith-protocol/sdk": ["../../src"] + } + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "test"] +} diff --git a/packages/sdk-vue/tsup.config.ts b/packages/sdk-vue/tsup.config.ts new file mode 100644 index 0000000..2b5a8ab --- /dev/null +++ b/packages/sdk-vue/tsup.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig({ + entry: { + index: 'src/index.ts', + }, + format: ['esm', 'cjs'], + dts: true, + splitting: true, + clean: true, + treeshake: true, + external: ['vue', '@wraith-protocol/sdk'], +}); diff --git a/packages/sdk-vue/vitest.config.ts b/packages/sdk-vue/vitest.config.ts new file mode 100644 index 0000000..2e0dd34 --- /dev/null +++ b/packages/sdk-vue/vitest.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from 'vitest/config'; +import path from 'path'; + +export default defineConfig({ + test: { + environment: 'jsdom', + globals: true, + }, + resolve: { + alias: { + '@wraith-protocol/sdk': path.resolve(__dirname, '../../src'), + }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64ca1e8..0779269 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -15,17 +15,17 @@ importers: version: 1.8.0 viem: specifier: ^2.23.0 - version: 2.47.14(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + version: 2.53.1(typescript@5.9.3) devDependencies: '@commitlint/cli': specifier: ^19.6.0 - version: 19.8.1(@types/node@25.6.0)(typescript@5.9.3) + version: 19.8.1(@types/node@26.0.0)(typescript@5.9.3) '@commitlint/config-conventional': specifier: ^19.6.0 version: 19.8.1 '@solana/web3.js': specifier: ^1.98.4 - version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + version: 1.98.4(typescript@5.9.3) '@stellar/stellar-sdk': specifier: ^13.1.0 version: 13.3.0 @@ -34,3649 +34,3871 @@ importers: version: 9.1.7 prettier: specifier: ^3.4.0 - version: 3.8.2 + version: 3.8.4 tsup: specifier: ^8.4.0 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.9)(typescript@5.9.3) + version: 8.5.1(typescript@5.9.3) typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^3.1.0 - version: 3.2.4(@types/node@25.6.0)(jiti@2.6.1) + version: 3.2.6(@types/node@26.0.0)(jsdom@25.0.1) + + examples/vue-stellar-app: + dependencies: + '@wraith-protocol/sdk': + specifier: workspace:* + version: link:../.. + '@wraith-protocol/sdk-vue': + specifier: workspace:* + version: link:../../packages/sdk-vue + vue: + specifier: ^3.5.0 + version: 3.5.38(typescript@5.9.3) + devDependencies: + '@vitejs/plugin-vue': + specifier: ^5.0.0 + version: 5.2.4(vite@6.4.3)(vue@3.5.38) + typescript: + specifier: ^5.7.0 + version: 5.9.3 + vite: + specifier: ^6.0.0 + version: 6.4.3(@types/node@26.0.0) + vue-tsc: + specifier: ^2.0.0 + version: 2.2.12(typescript@5.9.3) + + packages/sdk-vue: + dependencies: + '@wraith-protocol/sdk': + specifier: workspace:* + version: link:../.. + vue: + specifier: ^3.5.0 + version: 3.5.38(typescript@5.9.3) + devDependencies: + '@vue/test-utils': + specifier: ^2.4.0 + version: 2.4.11(@vue/compiler-dom@3.5.38)(vue@3.5.38) + jsdom: + specifier: ^25.0.0 + version: 25.0.1 + tsup: + specifier: ^8.4.0 + version: 8.5.1(typescript@5.9.3) + typescript: + specifier: ^5.7.0 + version: 5.9.3 + vitest: + specifier: ^3.1.0 + version: 3.2.6(@types/node@26.0.0)(jsdom@25.0.1) packages: - '@adraffy/ens-normalize@1.11.1': + /@adraffy/ens-normalize@1.11.1: resolution: { integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==, } + dev: false + + /@asamuzakjp/css-color@3.2.0: + resolution: + { + integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==, + } + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + lru-cache: 10.4.3 + dev: true + + /@babel/code-frame@7.29.7: + resolution: + { + integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + dev: true + + /@babel/helper-string-parser@7.29.7: + resolution: + { + integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==, + } + engines: { node: '>=6.9.0' } - '@babel/code-frame@7.29.0': + /@babel/helper-validator-identifier@7.29.7: resolution: { - integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==, + integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==, } engines: { node: '>=6.9.0' } - '@babel/helper-validator-identifier@7.28.5': + /@babel/parser@7.29.7: resolution: { - integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==, + integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==, + } + engines: { node: '>=6.0.0' } + hasBin: true + dependencies: + '@babel/types': 7.29.7 + + /@babel/runtime@7.29.7: + resolution: + { + integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==, } engines: { node: '>=6.9.0' } + dev: true - '@babel/runtime@7.29.2': + /@babel/types@7.29.7: resolution: { - integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==, + integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==, } engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 - '@commitlint/cli@19.8.1': + /@commitlint/cli@19.8.1(@types/node@26.0.0)(typescript@5.9.3): resolution: { integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==, } engines: { node: '>=v18' } hasBin: true + dependencies: + '@commitlint/format': 19.8.1 + '@commitlint/lint': 19.8.1 + '@commitlint/load': 19.8.1(@types/node@26.0.0)(typescript@5.9.3) + '@commitlint/read': 19.8.1 + '@commitlint/types': 19.8.1 + tinyexec: 1.2.4 + yargs: 17.7.3 + transitivePeerDependencies: + - '@types/node' + - typescript + dev: true - '@commitlint/config-conventional@19.8.1': + /@commitlint/config-conventional@19.8.1: resolution: { integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-conventionalcommits: 7.0.2 + dev: true - '@commitlint/config-validator@19.8.1': + /@commitlint/config-validator@19.8.1: resolution: { integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/types': 19.8.1 + ajv: 8.20.0 + dev: true - '@commitlint/ensure@19.8.1': + /@commitlint/ensure@19.8.1: resolution: { integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/types': 19.8.1 + 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 + dev: true - '@commitlint/execute-rule@19.8.1': + /@commitlint/execute-rule@19.8.1: resolution: { integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==, } engines: { node: '>=v18' } + dev: true - '@commitlint/format@19.8.1': + /@commitlint/format@19.8.1: resolution: { integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/types': 19.8.1 + chalk: 5.6.2 + dev: true - '@commitlint/is-ignored@19.8.1': + /@commitlint/is-ignored@19.8.1: resolution: { integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/types': 19.8.1 + semver: 7.8.5 + dev: true - '@commitlint/lint@19.8.1': + /@commitlint/lint@19.8.1: resolution: { integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/is-ignored': 19.8.1 + '@commitlint/parse': 19.8.1 + '@commitlint/rules': 19.8.1 + '@commitlint/types': 19.8.1 + dev: true - '@commitlint/load@19.8.1': + /@commitlint/load@19.8.1(@types/node@26.0.0)(typescript@5.9.3): resolution: { integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/config-validator': 19.8.1 + '@commitlint/execute-rule': 19.8.1 + '@commitlint/resolve-extends': 19.8.1 + '@commitlint/types': 19.8.1 + chalk: 5.6.2 + cosmiconfig: 9.0.2(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.3.0(@types/node@26.0.0)(cosmiconfig@9.0.2)(typescript@5.9.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + dev: true - '@commitlint/message@19.8.1': + /@commitlint/message@19.8.1: resolution: { integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==, } engines: { node: '>=v18' } + dev: true - '@commitlint/parse@19.8.1': + /@commitlint/parse@19.8.1: resolution: { integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + dev: true - '@commitlint/read@19.8.1': + /@commitlint/read@19.8.1: resolution: { integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/top-level': 19.8.1 + '@commitlint/types': 19.8.1 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + tinyexec: 1.2.4 + dev: true - '@commitlint/resolve-extends@19.8.1': + /@commitlint/resolve-extends@19.8.1: resolution: { integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/config-validator': 19.8.1 + '@commitlint/types': 19.8.1 + global-directory: 4.0.1 + import-meta-resolve: 4.2.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + dev: true - '@commitlint/rules@19.8.1': + /@commitlint/rules@19.8.1: resolution: { integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==, } engines: { node: '>=v18' } + dependencies: + '@commitlint/ensure': 19.8.1 + '@commitlint/message': 19.8.1 + '@commitlint/to-lines': 19.8.1 + '@commitlint/types': 19.8.1 + dev: true - '@commitlint/to-lines@19.8.1': + /@commitlint/to-lines@19.8.1: resolution: { integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==, } engines: { node: '>=v18' } + dev: true - '@commitlint/top-level@19.8.1': + /@commitlint/top-level@19.8.1: resolution: { integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==, } engines: { node: '>=v18' } + dependencies: + find-up: 7.0.0 + dev: true - '@commitlint/types@19.8.1': + /@commitlint/types@19.8.1: resolution: { integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==, } engines: { node: '>=v18' } + dependencies: + '@types/conventional-commits-parser': 5.0.2 + chalk: 5.6.2 + dev: true - '@esbuild/aix-ppc64@0.27.7': + /@csstools/color-helpers@5.1.0: resolution: { - integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==, + integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==, } engines: { node: '>=18' } - cpu: [ppc64] - os: [aix] + dev: true - '@esbuild/android-arm64@0.27.7': + /@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4): resolution: { - integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==, + integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==, } engines: { node: '>=18' } - cpu: [arm64] - os: [android] + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + dev: true - '@esbuild/android-arm@0.27.7': + /@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4): resolution: { - integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==, + integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==, } engines: { node: '>=18' } - cpu: [arm] - os: [android] + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + dependencies: + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + dev: true - '@esbuild/android-x64@0.27.7': + /@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4): resolution: { - integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==, + integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==, } engines: { node: '>=18' } - cpu: [x64] - os: [android] + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + dependencies: + '@csstools/css-tokenizer': 3.0.4 + dev: true - '@esbuild/darwin-arm64@0.27.7': + /@csstools/css-tokenizer@3.0.4: resolution: { - integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==, + integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==, } engines: { node: '>=18' } - cpu: [arm64] - os: [darwin] + dev: true - '@esbuild/darwin-x64@0.27.7': + /@esbuild/aix-ppc64@0.25.12: resolution: { - integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==, + integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==, } engines: { node: '>=18' } - cpu: [x64] - os: [darwin] + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-arm64@0.27.7': + /@esbuild/aix-ppc64@0.27.7: resolution: { - integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==, + integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==, } engines: { node: '>=18' } - cpu: [arm64] - os: [freebsd] + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-x64@0.27.7': + /@esbuild/android-arm64@0.25.12: resolution: { - integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==, + integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==, } engines: { node: '>=18' } - cpu: [x64] - os: [freebsd] + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm64@0.27.7': + /@esbuild/android-arm64@0.27.7: resolution: { - integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==, + integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==, } engines: { node: '>=18' } cpu: [arm64] - os: [linux] + os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm@0.27.7': + /@esbuild/android-arm@0.25.12: resolution: { - integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==, + integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==, } engines: { node: '>=18' } cpu: [arm] - os: [linux] + os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ia32@0.27.7': + /@esbuild/android-arm@0.27.7: resolution: { - integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==, + integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==, } engines: { node: '>=18' } - cpu: [ia32] - os: [linux] + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-loong64@0.27.7': + /@esbuild/android-x64@0.25.12: resolution: { - integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==, + integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==, } engines: { node: '>=18' } - cpu: [loong64] - os: [linux] + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-mips64el@0.27.7': + /@esbuild/android-x64@0.27.7: resolution: { - integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==, + integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==, } engines: { node: '>=18' } - cpu: [mips64el] - os: [linux] + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ppc64@0.27.7': + /@esbuild/darwin-arm64@0.25.12: resolution: { - integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==, + integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==, } engines: { node: '>=18' } - cpu: [ppc64] - os: [linux] + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-riscv64@0.27.7': + /@esbuild/darwin-arm64@0.27.7: resolution: { - integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==, + integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==, } engines: { node: '>=18' } - cpu: [riscv64] - os: [linux] + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-s390x@0.27.7': + /@esbuild/darwin-x64@0.25.12: resolution: { - integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==, + integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==, } engines: { node: '>=18' } - cpu: [s390x] - os: [linux] + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-x64@0.27.7': + /@esbuild/darwin-x64@0.27.7: resolution: { - integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==, + integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==, } engines: { node: '>=18' } cpu: [x64] - os: [linux] + os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/netbsd-arm64@0.27.7': + /@esbuild/freebsd-arm64@0.25.12: resolution: { - integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==, + integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==, } engines: { node: '>=18' } cpu: [arm64] - os: [netbsd] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/netbsd-x64@0.27.7': + /@esbuild/freebsd-arm64@0.27.7: resolution: { - integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==, + integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==, } engines: { node: '>=18' } - cpu: [x64] - os: [netbsd] + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/openbsd-arm64@0.27.7': + /@esbuild/freebsd-x64@0.25.12: resolution: { - integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==, + integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==, } engines: { node: '>=18' } - cpu: [arm64] - os: [openbsd] + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/openbsd-x64@0.27.7': + /@esbuild/freebsd-x64@0.27.7: resolution: { - integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==, + integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==, } engines: { node: '>=18' } cpu: [x64] - os: [openbsd] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/openharmony-arm64@0.27.7': + /@esbuild/linux-arm64@0.25.12: resolution: { - integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==, + integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==, } engines: { node: '>=18' } cpu: [arm64] - os: [openharmony] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/sunos-x64@0.27.7': + /@esbuild/linux-arm64@0.27.7: resolution: { - integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==, + integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==, } engines: { node: '>=18' } - cpu: [x64] - os: [sunos] + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-arm64@0.27.7': + /@esbuild/linux-arm@0.25.12: resolution: { - integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==, + integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==, } engines: { node: '>=18' } - cpu: [arm64] - os: [win32] + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-ia32@0.27.7': + /@esbuild/linux-arm@0.27.7: resolution: { - integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==, + integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==, } engines: { node: '>=18' } - cpu: [ia32] - os: [win32] + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-x64@0.27.7': + /@esbuild/linux-ia32@0.25.12: resolution: { - integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==, + integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==, } engines: { node: '>=18' } - cpu: [x64] - os: [win32] + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@jridgewell/gen-mapping@0.3.13': + /@esbuild/linux-ia32@0.27.7: resolution: { - integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, - } - - '@jridgewell/resolve-uri@3.1.2': - resolution: - { - integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, - } - engines: { node: '>=6.0.0' } - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: - { - integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, + integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==, } + engines: { node: '>=18' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@jridgewell/trace-mapping@0.3.31': + /@esbuild/linux-loong64@0.25.12: resolution: { - integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, + integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==, } + engines: { node: '>=18' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@noble/ciphers@1.3.0': + /@esbuild/linux-loong64@0.27.7: resolution: { - integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==, + integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==, } - engines: { node: ^14.21.3 || >=16 } + engines: { node: '>=18' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@noble/curves@1.9.1': + /@esbuild/linux-mips64el@0.25.12: resolution: { - integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==, + integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==, } - engines: { node: ^14.21.3 || >=16 } + engines: { node: '>=18' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@noble/curves@1.9.7': + /@esbuild/linux-mips64el@0.27.7: resolution: { - integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==, + integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==, } - engines: { node: ^14.21.3 || >=16 } + engines: { node: '>=18' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@noble/hashes@1.8.0': + /@esbuild/linux-ppc64@0.25.12: resolution: { - integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==, + integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==, } - engines: { node: ^14.21.3 || >=16 } + engines: { node: '>=18' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-android-arm-eabi@4.60.1': + /@esbuild/linux-ppc64@0.27.7: resolution: { - integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==, + integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==, } - cpu: [arm] - os: [android] + engines: { node: '>=18' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-android-arm64@4.60.1': + /@esbuild/linux-riscv64@0.25.12: resolution: { - integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==, + integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==, } - cpu: [arm64] - os: [android] + engines: { node: '>=18' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-darwin-arm64@4.60.1': + /@esbuild/linux-riscv64@0.27.7: resolution: { - integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==, + integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==, } - cpu: [arm64] - os: [darwin] + engines: { node: '>=18' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-darwin-x64@4.60.1': + /@esbuild/linux-s390x@0.25.12: resolution: { - integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==, + integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==, } - cpu: [x64] - os: [darwin] + engines: { node: '>=18' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-freebsd-arm64@4.60.1': + /@esbuild/linux-s390x@0.27.7: resolution: { - integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==, + integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==, } - cpu: [arm64] - os: [freebsd] + engines: { node: '>=18' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-freebsd-x64@4.60.1': + /@esbuild/linux-x64@0.25.12: resolution: { - integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==, + integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==, } + engines: { node: '>=18' } cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': - resolution: - { - integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==, - } - cpu: [arm] os: [linux] - libc: [glibc] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.1': + /@esbuild/linux-x64@0.27.7: resolution: { - integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==, + integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==, } - cpu: [arm] + engines: { node: '>=18' } + cpu: [x64] os: [linux] - libc: [musl] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.1': + /@esbuild/netbsd-arm64@0.25.12: resolution: { - integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==, + integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==, } + engines: { node: '>=18' } cpu: [arm64] - os: [linux] - libc: [glibc] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm64-musl@4.60.1': + /@esbuild/netbsd-arm64@0.27.7: resolution: { - integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==, + integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==, } + engines: { node: '>=18' } cpu: [arm64] - os: [linux] - libc: [musl] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.1': + /@esbuild/netbsd-x64@0.25.12: resolution: { - integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==, + integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==, } - cpu: [loong64] - os: [linux] - libc: [glibc] + engines: { node: '>=18' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-loong64-musl@4.60.1': + /@esbuild/netbsd-x64@0.27.7: resolution: { - integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==, + integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==, } - cpu: [loong64] - os: [linux] - libc: [musl] + engines: { node: '>=18' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.1': + /@esbuild/openbsd-arm64@0.25.12: resolution: { - integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==, + integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==, } - cpu: [ppc64] - os: [linux] - libc: [glibc] + engines: { node: '>=18' } + cpu: [arm64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.1': + /@esbuild/openbsd-arm64@0.27.7: resolution: { - integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==, + integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==, } - cpu: [ppc64] - os: [linux] - libc: [musl] + engines: { node: '>=18' } + cpu: [arm64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.1': + /@esbuild/openbsd-x64@0.25.12: resolution: { - integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==, + integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==, } - cpu: [riscv64] - os: [linux] - libc: [glibc] + engines: { node: '>=18' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.1': + /@esbuild/openbsd-x64@0.27.7: resolution: { - integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==, + integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==, } - cpu: [riscv64] - os: [linux] - libc: [musl] + engines: { node: '>=18' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.1': + /@esbuild/openharmony-arm64@0.25.12: resolution: { - integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==, + integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==, } - cpu: [s390x] - os: [linux] - libc: [glibc] + engines: { node: '>=18' } + cpu: [arm64] + os: [openharmony] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-x64-gnu@4.60.1': + /@esbuild/openharmony-arm64@0.27.7: resolution: { - integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==, + integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==, } - cpu: [x64] - os: [linux] - libc: [glibc] + engines: { node: '>=18' } + cpu: [arm64] + os: [openharmony] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-x64-musl@4.60.1': + /@esbuild/sunos-x64@0.25.12: resolution: { - integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==, + integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==, } + engines: { node: '>=18' } cpu: [x64] - os: [linux] - libc: [musl] + os: [sunos] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-openbsd-x64@4.60.1': + /@esbuild/sunos-x64@0.27.7: resolution: { - integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==, + integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==, } + engines: { node: '>=18' } cpu: [x64] - os: [openbsd] + os: [sunos] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-openharmony-arm64@4.60.1': + /@esbuild/win32-arm64@0.25.12: resolution: { - integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==, + integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==, } + engines: { node: '>=18' } cpu: [arm64] - os: [openharmony] + os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.1': + /@esbuild/win32-arm64@0.27.7: resolution: { - integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==, + integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==, } + engines: { node: '>=18' } cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.1': + /@esbuild/win32-ia32@0.25.12: resolution: { - integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==, + integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==, } + engines: { node: '>=18' } cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-x64-gnu@4.60.1': + /@esbuild/win32-ia32@0.27.7: resolution: { - integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==, + integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==, } - cpu: [x64] + engines: { node: '>=18' } + cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-x64-msvc@4.60.1': + /@esbuild/win32-x64@0.25.12: resolution: { - integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==, + integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==, } + engines: { node: '>=18' } cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@scure/base@1.2.6': + /@esbuild/win32-x64@0.27.7: resolution: { - integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==, + integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==, } + engines: { node: '>=18' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - '@scure/bip32@1.7.0': + /@isaacs/cliui@8.0.2: resolution: { - integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==, + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, } + engines: { node: '>=12' } + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true - '@scure/bip39@1.6.0': + /@jridgewell/gen-mapping@0.3.13: resolution: { - integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==, + integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, } + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + dev: true - '@solana/buffer-layout@4.0.1': + /@jridgewell/resolve-uri@3.1.2: resolution: { - integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==, + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, } - engines: { node: '>=5.10' } + engines: { node: '>=6.0.0' } + dev: true - '@solana/codecs-core@2.3.0': + /@jridgewell/sourcemap-codec@1.5.5: resolution: { - integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==, + integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, } - engines: { node: '>=20.18.0' } - peerDependencies: - typescript: '>=5.3.3' - '@solana/codecs-numbers@2.3.0': + /@jridgewell/trace-mapping@0.3.31: resolution: { - integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==, + integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, } - engines: { node: '>=20.18.0' } - peerDependencies: - typescript: '>=5.3.3' + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + dev: true - '@solana/errors@2.3.0': + /@noble/ciphers@1.3.0: resolution: { - integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==, + integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==, } - engines: { node: '>=20.18.0' } - hasBin: true - peerDependencies: - typescript: '>=5.3.3' + engines: { node: ^14.21.3 || >=16 } + dev: false - '@solana/web3.js@1.98.4': + /@noble/curves@1.9.1: resolution: { - integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==, + integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==, } + engines: { node: ^14.21.3 || >=16 } + dependencies: + '@noble/hashes': 1.8.0 + dev: false - '@stellar/js-xdr@3.1.2': + /@noble/curves@1.9.7: resolution: { - integrity: sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==, + integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==, } + engines: { node: ^14.21.3 || >=16 } + dependencies: + '@noble/hashes': 1.8.0 - '@stellar/stellar-base@13.1.0': + /@noble/hashes@1.8.0: resolution: { - integrity: sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==, + integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==, } - engines: { node: '>=18.0.0' } + engines: { node: ^14.21.3 || >=16 } - '@stellar/stellar-sdk@13.3.0': + /@one-ini/wasm@0.1.1: resolution: { - integrity: sha512-8+GHcZLp+mdin8gSjcgfb/Lb6sSMYRX6Nf/0LcSJxvjLQR0XHpjGzOiRbYb2jSXo51EnA6kAV5j+4Pzh5OUKUg==, + integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==, } - engines: { node: '>=18.0.0' } + dev: true - '@swc/helpers@0.5.21': + /@pkgjs/parseargs@0.11.0: resolution: { - integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==, + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, } + engines: { node: '>=14' } + requiresBuild: true + dev: true + optional: true - '@types/chai@5.2.3': + /@rollup/rollup-android-arm-eabi@4.62.2: resolution: { - integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==, + integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==, } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true - '@types/connect@3.4.38': + /@rollup/rollup-android-arm64@4.62.2: resolution: { - integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, + integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==, } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - '@types/conventional-commits-parser@5.0.2': + /@rollup/rollup-darwin-arm64@4.62.2: resolution: { - integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==, + integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==, } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - '@types/deep-eql@4.0.2': + /@rollup/rollup-darwin-x64@4.62.2: resolution: { - integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==, + integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==, } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - '@types/estree@1.0.8': + /@rollup/rollup-freebsd-arm64@4.62.2: resolution: { - integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==, + integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==, } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@types/node@12.20.55': + /@rollup/rollup-freebsd-x64@4.62.2: resolution: { - integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, + integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==, } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@types/node@25.6.0': + /@rollup/rollup-linux-arm-gnueabihf@4.62.2: resolution: { - integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==, + integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==, } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@types/uuid@10.0.0': + /@rollup/rollup-linux-arm-musleabihf@4.62.2: resolution: { - integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==, + integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==, } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@types/ws@7.4.7': + /@rollup/rollup-linux-arm64-gnu@4.62.2: resolution: { - integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==, + integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==, } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@types/ws@8.18.1': + /@rollup/rollup-linux-arm64-musl@4.62.2: resolution: { - integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==, + integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==, } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/expect@3.2.4': + /@rollup/rollup-linux-loong64-gnu@4.62.2: resolution: { - integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==, + integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==, } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/mocker@3.2.4': + /@rollup/rollup-linux-loong64-musl@4.62.2: resolution: { - integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==, + integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==, } - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/pretty-format@3.2.4': + /@rollup/rollup-linux-ppc64-gnu@4.62.2: resolution: { - integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==, + integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==, } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/runner@3.2.4': + /@rollup/rollup-linux-ppc64-musl@4.62.2: resolution: { - integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==, + integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==, } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/snapshot@3.2.4': + /@rollup/rollup-linux-riscv64-gnu@4.62.2: resolution: { - integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==, + integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==, } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/spy@3.2.4': + /@rollup/rollup-linux-riscv64-musl@4.62.2: resolution: { - integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==, + integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==, } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - '@vitest/utils@3.2.4': + /@rollup/rollup-linux-s390x-gnu@4.62.2: resolution: { - integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, + integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==, } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - JSONStream@1.3.5: + /@rollup/rollup-linux-x64-gnu@4.62.2: resolution: { - integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, + integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==, } - hasBin: true + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - abitype@1.2.3: + /@rollup/rollup-linux-x64-musl@4.62.2: resolution: { - integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==, + integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==, } - peerDependencies: - typescript: '>=5.0.4' - zod: ^3.22.0 || ^4.0.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - acorn@8.16.0: + /@rollup/rollup-openbsd-x64@4.62.2: resolution: { - integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==, + integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==, } - engines: { node: '>=0.4.0' } - hasBin: true + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - agentkeepalive@4.6.0: + /@rollup/rollup-openharmony-arm64@4.62.2: resolution: { - integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==, + integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==, } - engines: { node: '>= 8.0.0' } + cpu: [arm64] + os: [openharmony] + requiresBuild: true + dev: true + optional: true - ajv@8.18.0: + /@rollup/rollup-win32-arm64-msvc@4.62.2: resolution: { - integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==, + integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==, } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true - ansi-regex@5.0.1: + /@rollup/rollup-win32-ia32-msvc@4.62.2: resolution: { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==, } - engines: { node: '>=8' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true - ansi-styles@4.3.0: + /@rollup/rollup-win32-x64-gnu@4.62.2: resolution: { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==, } - engines: { node: '>=8' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - any-promise@1.3.0: + /@rollup/rollup-win32-x64-msvc@4.62.2: resolution: { - integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==, } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - argparse@2.0.1: + /@scure/base@1.2.6: resolution: { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==, } + dev: false - array-ify@1.0.0: + /@scure/bip32@1.7.0: resolution: { - integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, + integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==, } + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + dev: false - assertion-error@2.0.1: + /@scure/bip39@1.6.0: resolution: { - integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, + integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==, } - engines: { node: '>=12' } + dependencies: + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + dev: false - asynckit@0.4.0: + /@solana/buffer-layout@4.0.1: resolution: { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==, } + engines: { node: '>=5.10' } + dependencies: + buffer: 6.0.3 + dev: true - available-typed-arrays@1.0.7: + /@solana/codecs-core@2.3.0(typescript@5.9.3): resolution: { - integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, + integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==, } - engines: { node: '>= 0.4' } + engines: { node: '>=20.18.0' } + peerDependencies: + typescript: '>=5.3.3' + dependencies: + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 + dev: true - axios@1.15.0: + /@solana/codecs-numbers@2.3.0(typescript@5.9.3): resolution: { - integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==, + integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==, } + engines: { node: '>=20.18.0' } + peerDependencies: + typescript: '>=5.3.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 + dev: true - bare-addon-resolve@1.10.0: + /@solana/errors@2.3.0(typescript@5.9.3): resolution: { - integrity: sha512-sSd0jieRJlDaODOzj0oe0RjFVC1QI0ZIjGIdPkbrTXsdVVtENg14c+lHHAhHwmWCZ2nQlMhy8jA3Y5LYPc/isA==, + integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==, } + engines: { node: '>=20.18.0' } + hasBin: true peerDependencies: - bare-url: '*' - peerDependenciesMeta: - bare-url: - optional: true + typescript: '>=5.3.3' + dependencies: + chalk: 5.6.2 + commander: 14.0.3 + typescript: 5.9.3 + dev: true - bare-module-resolve@1.12.1: + /@solana/web3.js@1.98.4(typescript@5.9.3): resolution: { - integrity: sha512-hbmAPyFpEq8FoZMd5sFO3u6MC5feluWoGE8YKlA8fCrl6mNtx68Wjg4DTiDJcqRJaovTvOYKfYngoBUnbaT7eg==, + integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==, } - peerDependencies: - bare-url: '*' - peerDependenciesMeta: - bare-url: - optional: true + dependencies: + '@babel/runtime': 7.29.7 + '@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 + node-fetch: 2.7.0 + rpc-websockets: 9.3.9 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + dev: true - bare-semver@1.0.3: + /@stellar/js-xdr@3.1.2: resolution: { - integrity: sha512-HS/A30bi2+PiRJfU6R4+Kp+6KeLSCSByjYM2iiobOKzLAvtu1CT+S8xWfiU7wz0erknjkUoC+yXy108tzIuP5Q==, + integrity: sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==, } + dev: true - base-x@3.0.11: + /@stellar/stellar-base@13.1.0: resolution: { - integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==, + integrity: sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==, } + engines: { node: '>=18.0.0' } + deprecated: This package is now rolled into @stellar/stellar-sdk. Please use @stellar/stellar-sdk to continue receiving updates and support. + dependencies: + '@stellar/js-xdr': 3.1.2 + base32.js: 0.1.0 + bignumber.js: 9.3.1 + buffer: 6.0.3 + sha.js: 2.4.12 + tweetnacl: 1.0.3 + optionalDependencies: + sodium-native: 4.3.3 + transitivePeerDependencies: + - bare-url + dev: true - base32.js@0.1.0: + /@stellar/stellar-sdk@13.3.0: resolution: { - integrity: sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==, + integrity: sha512-8+GHcZLp+mdin8gSjcgfb/Lb6sSMYRX6Nf/0LcSJxvjLQR0XHpjGzOiRbYb2jSXo51EnA6kAV5j+4Pzh5OUKUg==, } - engines: { node: '>=0.12.0' } + engines: { node: '>=18.0.0' } + dependencies: + '@stellar/stellar-base': 13.1.0 + axios: 1.18.1 + bignumber.js: 9.3.1 + eventsource: 2.0.2 + feaxios: 0.0.23 + randombytes: 2.1.0 + toml: 3.0.0 + urijs: 1.19.11 + transitivePeerDependencies: + - bare-url + - debug + - supports-color + dev: true - base64-js@1.5.1: + /@swc/helpers@0.5.23: resolution: { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==, } + dependencies: + tslib: 2.8.1 + dev: true - bignumber.js@9.3.1: + /@types/chai@5.2.3: resolution: { - integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==, + integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==, } + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + dev: true - bn.js@5.2.3: + /@types/connect@3.4.38: resolution: { - integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==, + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, } + dependencies: + '@types/node': 12.20.55 + dev: true - borsh@0.7.0: + /@types/conventional-commits-parser@5.0.2: resolution: { - integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==, + integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==, } + dependencies: + '@types/node': 26.0.0 + dev: true - bs58@4.0.1: + /@types/deep-eql@4.0.2: resolution: { - integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==, + integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==, } + dev: true - buffer@6.0.3: + /@types/estree@1.0.9: resolution: { - integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==, } + dev: true - bufferutil@4.1.0: + /@types/node@12.20.55: resolution: { - integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==, + integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, } - engines: { node: '>=6.14.2' } + dev: true - bundle-require@5.1.0: + /@types/node@26.0.0: resolution: { - integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==, + integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - peerDependencies: - esbuild: '>=0.18' + dependencies: + undici-types: 8.3.0 + dev: true - cac@6.7.14: + /@types/uuid@10.0.0: resolution: { - integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==, } - engines: { node: '>=8' } + dev: true - call-bind-apply-helpers@1.0.2: + /@types/ws@7.4.7: resolution: { - integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, + integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==, } - engines: { node: '>= 0.4' } + dependencies: + '@types/node': 12.20.55 + dev: true - call-bind@1.0.9: + /@types/ws@8.18.1: resolution: { - integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==, + integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==, } - engines: { node: '>= 0.4' } + dependencies: + '@types/node': 26.0.0 + dev: true - call-bound@1.0.4: + /@vitejs/plugin-vue@5.2.4(vite@6.4.3)(vue@3.5.38): resolution: { - integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, + integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==, } - engines: { node: '>= 0.4' } + engines: { node: ^18.0.0 || >=20.0.0 } + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + dependencies: + vite: 6.4.3(@types/node@26.0.0) + vue: 3.5.38(typescript@5.9.3) + dev: true - callsites@3.1.0: + /@vitest/expect@3.2.6: resolution: { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + integrity: sha512-1+7q9BtaKzEmO+fmNT3kYvoNn5Y71XWAx2Q5HRim4tTVRQVRv4uJFAQ5FbK0OPUeNP/WmVCpxYxoJdvuHVjzBQ==, } - engines: { node: '>=6' } + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.6 + '@vitest/utils': 3.2.6 + chai: 5.3.3 + tinyrainbow: 2.0.0 + dev: true - chai@5.3.3: + /@vitest/mocker@3.2.6(vite@6.4.3): resolution: { - integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==, + integrity: sha512-EZOrpDbkKotFAP7wPAQV1UIyoGOk4oX7ynWhBhLB7v+meMHbQhU16oPpIYGTTe4oFlhpryGpgpcZP/sin3hYuw==, } - engines: { node: '>=18' } + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + dependencies: + '@vitest/spy': 3.2.6 + estree-walker: 3.0.3 + magic-string: 0.30.21 + vite: 6.4.3(@types/node@26.0.0) + dev: true - chalk@5.6.2: + /@vitest/pretty-format@3.2.6: resolution: { - integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==, + integrity: sha512-lb7XXXzmm2h2ASzFnRvQpDo6onT1NmMJA3tkGTWiBFtRJ9lxGY3d3mm/Apt36gej2bkkOVLL/yTOtufDaFa/jA==, } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + dependencies: + tinyrainbow: 2.0.0 + dev: true - check-error@2.1.3: + /@vitest/runner@3.2.6: resolution: { - integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==, + integrity: sha512-HYcoSj1w5tcgUnzoF0HcyaAQjpA1gj9ftUJ7iSJSuipc02jW9gKkigwZbjFldAfYHA1fa8UZVRftdMY5msWM9Q==, } - engines: { node: '>= 16' } + dependencies: + '@vitest/utils': 3.2.6 + pathe: 2.0.3 + strip-literal: 3.1.0 + dev: true - chokidar@4.0.3: + /@vitest/snapshot@3.2.6: resolution: { - integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, + integrity: sha512-H+ZjNTWGpObenh0YnlBctAPnJSI20P81PL8BPzWpx54YXLLTm8hEsWawtcYLMrwvpK48hGxLLbCS+1KRXhsKhw==, } - engines: { node: '>= 14.16.0' } + dependencies: + '@vitest/pretty-format': 3.2.6 + magic-string: 0.30.21 + pathe: 2.0.3 + dev: true - cliui@8.0.1: + /@vitest/spy@3.2.6: resolution: { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + integrity: sha512-oq6BbH68WzcWmwtBrU9nqLeaXTR4XwJF7FSLkKEZo4i6eoXcrxjcwSuTvWBIRUTC6VC72nXYunzqgZA+IKdtxg==, } - engines: { node: '>=12' } + dependencies: + tinyspy: 4.0.4 + dev: true - color-convert@2.0.1: + /@vitest/utils@3.2.6: resolution: { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + integrity: sha512-lI23nIs4bnT3T8NIoh+vFaz5s2/DdP0Jgt2jxwgWljvwn82cLJtyi/If+fjFyoLMGIOz0U/fKvWE0d4jsNQEfg==, } - engines: { node: '>=7.0.0' } + dependencies: + '@vitest/pretty-format': 3.2.6 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + dev: true - color-name@1.1.4: + /@volar/language-core@2.4.15: resolution: { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + integrity: sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==, } + dependencies: + '@volar/source-map': 2.4.15 + dev: true - combined-stream@1.0.8: + /@volar/source-map@2.4.15: resolution: { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + integrity: sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==, } - engines: { node: '>= 0.8' } + dev: true - commander@14.0.3: + /@volar/typescript@2.4.15: resolution: { - integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==, + integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==, } - engines: { node: '>=20' } + dependencies: + '@volar/language-core': 2.4.15 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + dev: true - commander@2.20.3: + /@vue/compiler-core@3.5.38: resolution: { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + integrity: sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ==, } + dependencies: + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.38 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 - commander@4.1.1: + /@vue/compiler-dom@3.5.38: resolution: { - integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + integrity: sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==, } - engines: { node: '>= 6' } + dependencies: + '@vue/compiler-core': 3.5.38 + '@vue/shared': 3.5.38 - compare-func@2.0.0: + /@vue/compiler-sfc@3.5.38: resolution: { - integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, + integrity: sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg==, } + dependencies: + '@babel/parser': 7.29.7 + '@vue/compiler-core': 3.5.38 + '@vue/compiler-dom': 3.5.38 + '@vue/compiler-ssr': 3.5.38 + '@vue/shared': 3.5.38 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.15 + source-map-js: 1.2.1 - confbox@0.1.8: + /@vue/compiler-ssr@3.5.38: resolution: { - integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, + integrity: sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA==, } + dependencies: + '@vue/compiler-dom': 3.5.38 + '@vue/shared': 3.5.38 - consola@3.4.2: + /@vue/compiler-vue2@2.7.16: resolution: { - integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==, + integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==, } - engines: { node: ^14.18.0 || >=16.10.0 } + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true - conventional-changelog-angular@7.0.0: + /@vue/language-core@2.2.12(typescript@5.9.3): resolution: { - integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==, + integrity: sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==, } - engines: { node: '>=16' } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 2.4.15 + '@vue/compiler-dom': 3.5.38 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.38 + alien-signals: 1.0.13 + minimatch: 9.0.9 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + typescript: 5.9.3 + dev: true - conventional-changelog-conventionalcommits@7.0.2: + /@vue/reactivity@3.5.38: resolution: { - integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==, + integrity: sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==, } - engines: { node: '>=16' } + dependencies: + '@vue/shared': 3.5.38 - conventional-commits-parser@5.0.0: + /@vue/runtime-core@3.5.38: resolution: { - integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==, + integrity: sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw==, } - engines: { node: '>=16' } - hasBin: true + dependencies: + '@vue/reactivity': 3.5.38 + '@vue/shared': 3.5.38 - cosmiconfig-typescript-loader@6.3.0: + /@vue/runtime-dom@3.5.38: resolution: { - integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==, + integrity: sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A==, } - engines: { node: '>=v18' } - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=9' - typescript: '>=5' + dependencies: + '@vue/reactivity': 3.5.38 + '@vue/runtime-core': 3.5.38 + '@vue/shared': 3.5.38 + csstype: 3.2.3 - cosmiconfig@9.0.1: + /@vue/server-renderer@3.5.38(vue@3.5.38): resolution: { - integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==, + integrity: sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw==, } - engines: { node: '>=14' } peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + vue: 3.5.38 + dependencies: + '@vue/compiler-ssr': 3.5.38 + '@vue/shared': 3.5.38 + vue: 3.5.38(typescript@5.9.3) - dargs@8.1.0: + /@vue/shared@3.5.38: resolution: { - integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==, + integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==, } - engines: { node: '>=12' } - debug@4.4.3: + /@vue/test-utils@2.4.11(@vue/compiler-dom@3.5.38)(vue@3.5.38): resolution: { - integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, + integrity: sha512-GDqaqZsA6m2E5vNzej0aYiIb6BX8xV9pNSbbbXKOfEYwg7ZNblVX8suyqmUBThq8VIrgAJNxn+z72hVtUeiWHA==, } - engines: { node: '>=6.0' } peerDependencies: - supports-color: '*' + '@vue/compiler-dom': 3.x + '@vue/server-renderer': 3.x + vue: 3.x peerDependenciesMeta: - supports-color: + '@vue/server-renderer': optional: true + dependencies: + '@vue/compiler-dom': 3.5.38 + js-beautify: 1.15.4 + vue: 3.5.38(typescript@5.9.3) + vue-component-type-helpers: 3.3.5 + dev: true - deep-eql@5.0.2: + /JSONStream@1.3.5: resolution: { - integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, + integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, } - engines: { node: '>=6' } + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true - define-data-property@1.1.4: + /abbrev@2.0.0: resolution: { - integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, + integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==, } - engines: { node: '>= 0.4' } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true - delay@5.0.0: + /abitype@1.2.3(typescript@5.9.3): resolution: { - integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==, + integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==, } - engines: { node: '>=10' } + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.9.3 + dev: false - delayed-stream@1.0.0: + /acorn@8.17.0: resolution: { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==, } engines: { node: '>=0.4.0' } + hasBin: true + dev: true - dot-prop@5.3.0: + /agent-base@6.0.2: resolution: { - integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, + integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, } - engines: { node: '>=8' } + engines: { node: '>= 6.0.0' } + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true - dunder-proto@1.0.1: + /agent-base@7.1.4: resolution: { - integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, + integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==, } - engines: { node: '>= 0.4' } + engines: { node: '>= 14' } + dev: true - emoji-regex@8.0.0: + /agentkeepalive@4.6.0: resolution: { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==, } + engines: { node: '>= 8.0.0' } + dependencies: + humanize-ms: 1.2.1 + dev: true - env-paths@2.2.1: + /ajv@8.20.0: resolution: { - integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, + integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==, } - engines: { node: '>=6' } + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + dev: true - error-ex@1.3.4: + /alien-signals@1.0.13: resolution: { - integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==, + integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==, } + dev: true - es-define-property@1.0.1: + /ansi-regex@5.0.1: resolution: { - integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, } - engines: { node: '>= 0.4' } + engines: { node: '>=8' } + dev: true - es-errors@1.3.0: + /ansi-regex@6.2.2: resolution: { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==, } - engines: { node: '>= 0.4' } + engines: { node: '>=12' } + dev: true - es-module-lexer@1.7.0: + /ansi-styles@4.3.0: resolution: { - integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==, + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, } + engines: { node: '>=8' } + dependencies: + color-convert: 2.0.1 + dev: true - es-object-atoms@1.1.1: + /ansi-styles@6.2.3: resolution: { - integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, + integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==, } - engines: { node: '>= 0.4' } + engines: { node: '>=12' } + dev: true - es-set-tostringtag@2.1.0: + /any-promise@1.3.0: resolution: { - integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==, + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, } - engines: { node: '>= 0.4' } + dev: true - es6-promise@4.2.8: + /argparse@2.0.1: resolution: { - integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, } + dev: true - es6-promisify@5.0.0: + /array-ify@1.0.0: resolution: { - integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, + integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, } + dev: true - esbuild@0.27.7: + /assertion-error@2.0.1: resolution: { - integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==, + integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, } - engines: { node: '>=18' } - hasBin: true + engines: { node: '>=12' } + dev: true - escalade@3.2.0: + /asynckit@0.4.0: resolution: { - integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, } - engines: { node: '>=6' } + dev: true - estree-walker@3.0.3: + /available-typed-arrays@1.0.7: resolution: { - integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, } + engines: { node: '>= 0.4' } + dependencies: + possible-typed-array-names: 1.1.0 + dev: true - eventemitter3@5.0.1: + /axios@1.18.1: resolution: { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==, } + dependencies: + follow-redirects: 1.16.0 + form-data: 4.0.6 + https-proxy-agent: 5.0.1 + proxy-from-env: 2.1.0 + transitivePeerDependencies: + - debug + - supports-color + dev: true - eventsource@2.0.2: + /balanced-match@1.0.2: resolution: { - integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==, + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, } - engines: { node: '>=12.0.0' } + dev: true - expect-type@1.3.0: + /bare-addon-resolve@1.10.0: resolution: { - integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==, + integrity: sha512-sSd0jieRJlDaODOzj0oe0RjFVC1QI0ZIjGIdPkbrTXsdVVtENg14c+lHHAhHwmWCZ2nQlMhy8jA3Y5LYPc/isA==, } - engines: { node: '>=12.0.0' } + requiresBuild: true + peerDependencies: + bare-url: '*' + peerDependenciesMeta: + bare-url: + optional: true + dependencies: + bare-module-resolve: 1.12.2 + bare-semver: 1.1.0 + dev: true + optional: true - eyes@0.1.8: + /bare-module-resolve@1.12.2: resolution: { - integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==, + integrity: sha512-j+hiD5k99qec4KjJvYsI67q5AOBifmy9JG3oeMVxTmvrhn2sIdp8StrUvZu4YNgwTpO+NhniQG16N1ETDe1k5w==, } - engines: { node: '> 0.1.90' } + requiresBuild: true + peerDependencies: + bare-url: '*' + peerDependenciesMeta: + bare-url: + optional: true + dependencies: + bare-semver: 1.1.0 + dev: true + optional: true - fast-deep-equal@3.1.3: + /bare-semver@1.1.0: resolution: { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + integrity: sha512-1Hw5qJ7hXdVt3uPUqjeFTuxyvBUJauvz5A1I2jk8gzjZMHp04n//6nV9MDbG9CMw78JHY2lGV0w6s//LrASm2w==, } + requiresBuild: true + dev: true + optional: true - fast-stable-stringify@1.0.0: + /base-x@3.0.11: resolution: { - integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==, + integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==, } + dependencies: + safe-buffer: 5.2.1 + dev: true - fast-uri@3.1.0: + /base32.js@0.1.0: resolution: { - integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==, + integrity: sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==, } + engines: { node: '>=0.12.0' } + dev: true - fdir@6.5.0: + /base64-js@1.5.1: resolution: { - integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, } - engines: { node: '>=12.0.0' } - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true + dev: true - feaxios@0.0.23: + /bignumber.js@9.3.1: resolution: { - integrity: sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==, + integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==, } + dev: true - find-up@7.0.0: + /bn.js@5.2.3: resolution: { - integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, + integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==, } - engines: { node: '>=18' } + dev: true - fix-dts-default-cjs-exports@1.0.1: + /borsh@0.7.0: resolution: { - integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==, + integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==, } + dependencies: + bn.js: 5.2.3 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + dev: true - follow-redirects@1.15.11: + /brace-expansion@2.1.1: resolution: { - integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==, + integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==, } - engines: { node: '>=4.0' } - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + dependencies: + balanced-match: 1.0.2 + dev: true - for-each@0.3.5: + /bs58@4.0.1: resolution: { - integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==, + integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==, } - engines: { node: '>= 0.4' } + dependencies: + base-x: 3.0.11 + dev: true - form-data@4.0.5: + /buffer@6.0.3: resolution: { - integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==, + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, } - engines: { node: '>= 6' } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true - fsevents@2.3.3: + /bufferutil@4.1.0: resolution: { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==, } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } - os: [darwin] + engines: { node: '>=6.14.2' } + requiresBuild: true + dependencies: + node-gyp-build: 4.8.4 + dev: true - function-bind@1.1.2: + /bundle-require@5.1.0(esbuild@0.27.7): resolution: { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==, } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + peerDependencies: + esbuild: '>=0.18' + dependencies: + esbuild: 0.27.7 + load-tsconfig: 0.2.5 + dev: true - get-caller-file@2.0.5: + /cac@6.7.14: resolution: { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, } - engines: { node: 6.* || 8.* || >= 10.* } + engines: { node: '>=8' } + dev: true - get-intrinsic@1.3.0: + /call-bind-apply-helpers@1.0.2: resolution: { - integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, + integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, } engines: { node: '>= 0.4' } + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + dev: true - get-proto@1.0.1: + /call-bind@1.0.9: resolution: { - integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, + integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==, } engines: { node: '>= 0.4' } + 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 + dev: 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 - - global-directory@4.0.1: + /call-bound@1.0.4: resolution: { - integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==, + integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, } - engines: { node: '>=18' } + engines: { node: '>= 0.4' } + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + dev: true - gopd@1.2.0: + /callsites@3.1.0: resolution: { - integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, } - engines: { node: '>= 0.4' } + engines: { node: '>=6' } + dev: true - has-property-descriptors@1.0.2: + /chai@5.3.3: resolution: { - integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, + integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==, } + engines: { node: '>=18' } + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + dev: true - has-symbols@1.1.0: + /chalk@5.6.2: resolution: { - integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, + integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==, } - engines: { node: '>= 0.4' } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + dev: true - has-tostringtag@1.0.2: + /check-error@2.1.3: resolution: { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==, } - engines: { node: '>= 0.4' } + engines: { node: '>= 16' } + dev: true - hasown@2.0.2: + /chokidar@4.0.3: resolution: { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, } - engines: { node: '>= 0.4' } + engines: { node: '>= 14.16.0' } + dependencies: + readdirp: 4.1.2 + dev: true - humanize-ms@1.2.1: + /cliui@8.0.1: resolution: { - integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, } + engines: { node: '>=12' } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true - husky@9.1.7: + /color-convert@2.0.1: resolution: { - integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==, + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, } - engines: { node: '>=18' } - hasBin: true + engines: { node: '>=7.0.0' } + dependencies: + color-name: 1.1.4 + dev: true - ieee754@1.2.1: + /color-name@1.1.4: resolution: { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, } + dev: true - import-fresh@3.3.1: + /combined-stream@1.0.8: resolution: { - integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, } - engines: { node: '>=6' } + engines: { node: '>= 0.8' } + dependencies: + delayed-stream: 1.0.0 + dev: true - import-meta-resolve@4.2.0: + /commander@10.0.1: resolution: { - integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==, + integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==, } + engines: { node: '>=14' } + dev: true - inherits@2.0.4: + /commander@14.0.3: resolution: { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==, } + engines: { node: '>=20' } + dev: true - ini@4.1.1: + /commander@2.20.3: resolution: { - integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==, + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true - is-arrayish@0.2.1: + /commander@4.1.1: resolution: { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, } + engines: { node: '>= 6' } + dev: true - is-callable@1.2.7: + /compare-func@2.0.0: resolution: { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, } - engines: { node: '>= 0.4' } + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true - is-fullwidth-code-point@3.0.0: + /confbox@0.1.8: resolution: { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, } - engines: { node: '>=8' } + dev: true - is-obj@2.0.0: + /config-chain@1.1.13: resolution: { - integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, + integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, } - engines: { node: '>=8' } + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: true - is-retry-allowed@3.0.0: + /consola@3.4.2: resolution: { - integrity: sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==, + integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==, } - engines: { node: '>=12' } + engines: { node: ^14.18.0 || >=16.10.0 } + dev: true - is-text-path@2.0.0: + /conventional-changelog-angular@7.0.0: resolution: { - integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, + integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==, } - engines: { node: '>=8' } + engines: { node: '>=16' } + dependencies: + compare-func: 2.0.0 + dev: true - is-typed-array@1.1.15: + /conventional-changelog-conventionalcommits@7.0.2: resolution: { - integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, + integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==, } - engines: { node: '>= 0.4' } + engines: { node: '>=16' } + dependencies: + compare-func: 2.0.0 + dev: true - isarray@2.0.5: + /conventional-commits-parser@5.0.0: resolution: { - integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==, } + engines: { node: '>=16' } + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true - isomorphic-ws@4.0.1: + /cosmiconfig-typescript-loader@6.3.0(@types/node@26.0.0)(cosmiconfig@9.0.2)(typescript@5.9.3): resolution: { - integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==, + integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==, } + engines: { node: '>=v18' } peerDependencies: - ws: '*' + '@types/node': '*' + cosmiconfig: '>=9' + typescript: '>=5' + dependencies: + '@types/node': 26.0.0 + cosmiconfig: 9.0.2(typescript@5.9.3) + jiti: 2.6.1 + typescript: 5.9.3 + dev: true - isows@1.0.7: + /cosmiconfig@9.0.2(typescript@5.9.3): resolution: { - integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==, + integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==, } + engines: { node: '>=14' } peerDependencies: - ws: '*' + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.2.0 + parse-json: 5.2.0 + typescript: 5.9.3 + dev: true - jayson@4.3.0: + /cross-spawn@7.0.6: resolution: { - integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==, + integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, } - engines: { node: '>=8' } - hasBin: true + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true - jiti@2.6.1: + /cssstyle@4.6.0: resolution: { - integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==, + integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==, } - hasBin: true + engines: { node: '>=18' } + dependencies: + '@asamuzakjp/css-color': 3.2.0 + rrweb-cssom: 0.8.0 + dev: true - joycon@3.1.1: + /csstype@3.2.3: resolution: { - integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, + integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==, } - engines: { node: '>=10' } - js-tokens@4.0.0: + /dargs@8.1.0: resolution: { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==, } + engines: { node: '>=12' } + dev: true - js-tokens@9.0.1: + /data-urls@5.0.0: resolution: { - integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, + integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==, } + engines: { node: '>=18' } + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + dev: true - js-yaml@4.1.1: + /de-indent@1.0.2: resolution: { - integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==, + integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, } - hasBin: true + dev: true - json-parse-even-better-errors@2.3.1: + /debug@4.4.3: resolution: { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true - json-schema-traverse@1.0.0: + /decimal.js@10.6.0: resolution: { - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==, } + dev: true - json-stringify-safe@5.0.1: + /deep-eql@5.0.2: resolution: { - integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, + integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, } + engines: { node: '>=6' } + dev: true - jsonparse@1.3.1: + /define-data-property@1.1.4: resolution: { - integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, } - engines: { '0': node >= 0.2.0 } + engines: { node: '>= 0.4' } + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + dev: true - lilconfig@3.1.3: + /delay@5.0.0: resolution: { - integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==, + integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==, } - engines: { node: '>=14' } + engines: { node: '>=10' } + dev: true - lines-and-columns@1.2.4: + /delayed-stream@1.0.0: resolution: { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, } + engines: { node: '>=0.4.0' } + dev: true - load-tsconfig@0.2.5: + /dot-prop@5.3.0: resolution: { - integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==, + integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: '>=8' } + dependencies: + is-obj: 2.0.0 + dev: true - locate-path@7.2.0: + /dunder-proto@1.0.1: resolution: { - integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, + integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: '>= 0.4' } + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + dev: true - lodash.camelcase@4.3.0: + /eastasianwidth@0.2.0: resolution: { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, } + dev: true - lodash.isplainobject@4.0.6: + /editorconfig@1.0.7: resolution: { - integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + integrity: sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==, } + engines: { node: '>=14' } + hasBin: true + dependencies: + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.9 + semver: 7.8.5 + dev: true - lodash.kebabcase@4.1.1: + /emoji-regex@8.0.0: resolution: { - integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, } + dev: true - lodash.merge@4.6.2: + /emoji-regex@9.2.2: resolution: { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, } + dev: true - lodash.mergewith@4.6.2: + /entities@6.0.1: resolution: { - integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, + integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==, } + engines: { node: '>=0.12' } + dev: true - lodash.snakecase@4.1.1: + /entities@7.0.1: resolution: { - integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, + integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==, } + engines: { node: '>=0.12' } - lodash.startcase@4.4.0: + /env-paths@2.2.1: resolution: { - integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, + integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, } + engines: { node: '>=6' } + dev: true - lodash.uniq@4.5.0: + /error-ex@1.3.4: resolution: { - integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, + integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==, } + dependencies: + is-arrayish: 0.2.1 + dev: true - lodash.upperfirst@4.3.1: + /es-define-property@1.0.1: resolution: { - integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, + integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, } + engines: { node: '>= 0.4' } + dev: true - loupe@3.2.1: + /es-errors@1.3.0: resolution: { - integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==, + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, } + engines: { node: '>= 0.4' } + dev: true - magic-string@0.30.21: + /es-module-lexer@1.7.0: resolution: { - integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, + integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==, } + dev: true - math-intrinsics@1.1.0: + /es-object-atoms@1.1.2: resolution: { - integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, + integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==, } engines: { node: '>= 0.4' } + dependencies: + es-errors: 1.3.0 + dev: true - meow@12.1.1: - resolution: - { - integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==, - } - engines: { node: '>=16.10' } - - mime-db@1.52.0: + /es-set-tostringtag@2.1.0: resolution: { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==, } - engines: { node: '>= 0.6' } + engines: { node: '>= 0.4' } + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + dev: true - mime-types@2.1.35: + /es6-promise@4.2.8: resolution: { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, } - engines: { node: '>= 0.6' } + dev: true - minimist@1.2.8: + /es6-promisify@5.0.0: resolution: { - integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, } + dependencies: + es6-promise: 4.2.8 + dev: true - mlly@1.8.2: + /esbuild@0.25.12: resolution: { - integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==, + integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==, } - - ms@2.1.3: + engines: { node: '>=18' } + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + dev: true + + /esbuild@0.27.7: resolution: { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==, } - - mz@2.7.0: - resolution: - { - integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, - } - - nanoid@3.3.11: - resolution: - { - integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==, - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + engines: { node: '>=18' } hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + dev: true - 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: + /escalade@3.2.0: resolution: { - integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==, + integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, } - hasBin: true + engines: { node: '>=6' } + dev: true - object-assign@4.1.1: + /estree-walker@2.0.2: resolution: { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, } - engines: { node: '>=0.10.0' } - ox@0.14.15: + /estree-walker@3.0.3: resolution: { - integrity: sha512-3TubCmbKen/cuZQzX0qDbOS5lojjdSZ90lqKxWIDWd5siuJ0IJBaTXMYs8eMPLcraqnOwGZazz3apHPGiRCkGQ==, + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, } - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true + dependencies: + '@types/estree': 1.0.9 + dev: true - p-limit@4.0.0: + /eventemitter3@5.0.1: resolution: { - integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: false - p-locate@6.0.0: + /eventemitter3@5.0.4: resolution: { - integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, + integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true - parent-module@1.0.1: + /eventsource@2.0.2: resolution: { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==, } - engines: { node: '>=6' } + engines: { node: '>=12.0.0' } + dev: true - parse-json@5.2.0: + /expect-type@1.3.0: resolution: { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==, } - engines: { node: '>=8' } + engines: { node: '>=12.0.0' } + dev: true - path-exists@5.0.0: + /eyes@0.1.8: resolution: { - integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, + integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: '> 0.1.90' } + dev: true - pathe@2.0.3: + /fast-deep-equal@3.1.3: resolution: { - integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, } + dev: true - pathval@2.0.1: + /fast-stable-stringify@1.0.0: resolution: { - integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==, + integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==, } - engines: { node: '>= 14.16' } + dev: true - picocolors@1.1.1: + /fast-uri@3.1.2: resolution: { - integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, + integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==, } + dev: true - picomatch@4.0.4: + /fdir@6.5.0(picomatch@4.0.4): resolution: { - integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==, + integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, } - engines: { node: '>=12' } + engines: { node: '>=12.0.0' } + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + dependencies: + picomatch: 4.0.4 + dev: true - pirates@4.0.7: + /feaxios@0.0.23: resolution: { - integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==, + integrity: sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==, } - engines: { node: '>= 6' } + dependencies: + is-retry-allowed: 3.0.0 + dev: true - pkg-types@1.3.1: + /find-up@7.0.0: resolution: { - integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==, + integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, } + engines: { node: '>=18' } + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + dev: true - possible-typed-array-names@1.1.0: + /fix-dts-default-cjs-exports@1.0.1: resolution: { - integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==, + integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==, } - engines: { node: '>= 0.4' } + dependencies: + magic-string: 0.30.21 + mlly: 1.8.2 + rollup: 4.62.2 + dev: true - postcss-load-config@6.0.1: + /follow-redirects@1.16.0: resolution: { - integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==, + integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==, } - engines: { node: '>= 18' } + engines: { node: '>=4.0' } peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 + debug: '*' peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: + debug: optional: true + dev: true - postcss@8.5.9: + /for-each@0.3.5: resolution: { - integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==, + integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==, } - engines: { node: ^10 || ^12 || >=14 } + engines: { node: '>= 0.4' } + dependencies: + is-callable: 1.2.7 + dev: true - prettier@3.8.2: + /foreground-child@3.3.1: resolution: { - integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==, + integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==, } engines: { node: '>=14' } - hasBin: true + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + dev: true - proxy-from-env@2.1.0: + /form-data@4.0.6: resolution: { - integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==, + integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==, } - engines: { node: '>=10' } + engines: { node: '>= 6' } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + dev: true - randombytes@2.1.0: + /fsevents@2.3.3: resolution: { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: true + optional: true - readdirp@4.1.2: + /function-bind@1.1.2: resolution: { - integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==, + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, } - engines: { node: '>= 14.18.0' } + dev: true - require-addon@1.2.0: + /get-caller-file@2.0.5: resolution: { - integrity: sha512-VNPDZlYgIYQwWp9jMTzljx+k0ZtatKlcvOhktZ/anNPI3dQ9NXk7cq2U4iJ1wd9IrytRnYhyEocFWbkdPb+MYA==, + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, } - engines: { bare: '>=1.10.0' } + engines: { node: 6.* || 8.* || >= 10.* } + dev: true - require-directory@2.1.1: + /get-intrinsic@1.3.0: resolution: { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, } - engines: { node: '>=0.10.0' } + engines: { node: '>= 0.4' } + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + dev: true - require-from-string@2.0.2: + /get-proto@1.0.1: resolution: { - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, } - engines: { node: '>=0.10.0' } + engines: { node: '>= 0.4' } + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + dev: true - resolve-from@4.0.0: + /git-raw-commits@4.0.0: resolution: { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==, } - engines: { node: '>=4' } + engines: { node: '>=16' } + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. + hasBin: true + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true - resolve-from@5.0.0: + /glob@10.5.0: resolution: { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==, } - engines: { node: '>=8' } + 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 + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + dev: true - rollup@4.60.1: + /global-directory@4.0.1: resolution: { - integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==, + integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==, } - engines: { node: '>=18.0.0', npm: '>=8.0.0' } - hasBin: true + engines: { node: '>=18' } + dependencies: + ini: 4.1.1 + dev: true - rpc-websockets@9.3.8: + /gopd@1.2.0: resolution: { - integrity: sha512-7r+fm4tSJmLf9GvZfL1DJ1SJwpagpp6AazqM0FUaeV7CA+7+NYINSk1syWa4tU/6OF2CyBicLtzENGmXRJH6wQ==, + integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, } + engines: { node: '>= 0.4' } + dev: true - safe-buffer@5.2.1: + /has-property-descriptors@1.0.2: resolution: { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, } + dependencies: + es-define-property: 1.0.1 + dev: true - semver@7.7.4: + /has-symbols@1.1.0: resolution: { - integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==, + integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, } - engines: { node: '>=10' } - hasBin: true + engines: { node: '>= 0.4' } + dev: true - set-function-length@1.2.2: + /has-tostringtag@1.0.2: resolution: { - integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, } engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.1.0 + dev: true - sha.js@2.4.12: + /hasown@2.0.4: resolution: { - integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==, + integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==, } - engines: { node: '>= 0.10' } - hasBin: true + engines: { node: '>= 0.4' } + dependencies: + function-bind: 1.1.2 + dev: true - siginfo@2.0.0: + /he@1.2.0: resolution: { - integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, } + hasBin: true + dev: true - sodium-native@4.3.3: + /html-encoding-sniffer@4.0.0: resolution: { - integrity: sha512-OnxSlN3uyY8D0EsLHpmm2HOFmKddQVvEMmsakCrXUzSd8kjjbzL413t4ZNF3n0UxSwNgwTyUvkmZHTfuCeiYSw==, + integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==, } + engines: { node: '>=18' } + dependencies: + whatwg-encoding: 3.1.1 + dev: true - source-map-js@1.2.1: + /http-proxy-agent@7.0.2: resolution: { - integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, } - engines: { node: '>=0.10.0' } + engines: { node: '>= 14' } + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true - source-map@0.7.6: + /https-proxy-agent@5.0.1: resolution: { - integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==, + integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, } - engines: { node: '>= 12' } + engines: { node: '>= 6' } + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true - split2@4.2.0: + /https-proxy-agent@7.0.6: resolution: { - integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, } - engines: { node: '>= 10.x' } + engines: { node: '>= 14' } + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true - stackback@0.0.2: + /humanize-ms@1.2.1: resolution: { - integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, } + dependencies: + ms: 2.1.3 + dev: true - std-env@3.10.0: + /husky@9.1.7: resolution: { - integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==, + integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==, } + engines: { node: '>=18' } + hasBin: true + dev: true - stream-chain@2.2.5: + /iconv-lite@0.6.3: resolution: { - integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==, + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, } + engines: { node: '>=0.10.0' } + dependencies: + safer-buffer: 2.1.2 + dev: true - stream-json@1.9.1: + /ieee754@1.2.1: resolution: { - integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==, + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, } + dev: true - string-width@4.2.3: + /import-fresh@3.3.1: resolution: { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, } - engines: { node: '>=8' } + engines: { node: '>=6' } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true - strip-ansi@6.0.1: + /import-meta-resolve@4.2.0: resolution: { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==, } - engines: { node: '>=8' } + dev: true - strip-literal@3.1.0: + /inherits@2.0.4: resolution: { - integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==, + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, } + dev: true - sucrase@3.35.1: + /ini@1.3.8: resolution: { - integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==, + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, } - engines: { node: '>=16 || 14 >=14.17' } - hasBin: true + dev: true - superstruct@2.0.2: + /ini@4.1.1: resolution: { - integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==, + integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==, } - engines: { node: '>=14.0.0' } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true - text-encoding-utf-8@1.0.2: + /is-arrayish@0.2.1: resolution: { - integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==, + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, } + dev: true - text-extensions@2.4.0: + /is-callable@1.2.7: resolution: { - integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==, + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, } engines: { node: '>=8' } + dev: true - thenify-all@1.6.0: + /is-obj@2.0.0: resolution: { - integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, } - engines: { node: '>=0.8' } + engines: { node: '>=8' } + dev: true - thenify@3.3.1: + /is-potential-custom-element-name@1.0.1: resolution: { - integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, } + dev: true - through@2.3.8: + /is-retry-allowed@3.0.0: resolution: { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + integrity: sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==, } + engines: { node: '>=12' } + dev: true - tinybench@2.9.0: + /is-text-path@2.0.0: resolution: { - integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, + integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, } + engines: { node: '>=8' } + dependencies: + text-extensions: 2.4.0 + dev: true - tinyexec@0.3.2: + /is-typed-array@1.1.15: resolution: { - integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, + integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, } + engines: { node: '>= 0.4' } + dependencies: + which-typed-array: 1.1.22 + dev: true - tinyexec@1.1.1: + /isarray@2.0.5: resolution: { - integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==, + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, } - engines: { node: '>=18' } + dev: true - tinyglobby@0.2.16: + /isexe@2.0.0: resolution: { - integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==, + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } - engines: { node: '>=12.0.0' } + dev: true - tinypool@1.1.1: + /isomorphic-ws@4.0.1(ws@7.5.11): resolution: { - integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==, + integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==, } - engines: { node: ^18.0.0 || >=20.0.0 } + peerDependencies: + ws: '*' + dependencies: + ws: 7.5.11 + dev: true - tinyrainbow@2.0.0: + /isows@1.0.7(ws@8.20.1): resolution: { - integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==, + integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==, } - engines: { node: '>=14.0.0' } + peerDependencies: + ws: '*' + dependencies: + ws: 8.20.1 + dev: false - tinyspy@4.0.4: + /jackspeak@3.4.3: resolution: { - integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==, + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, } - engines: { node: '>=14.0.0' } + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true - to-buffer@1.2.2: + /jayson@4.3.0: resolution: { - integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==, + integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==, } - engines: { node: '>= 0.4' } + engines: { node: '>=8' } + hasBin: true + 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) + json-stringify-safe: 5.0.1 + stream-json: 1.9.1 + uuid: 8.3.2 + ws: 7.5.11 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true - toml@3.0.0: + /jiti@2.6.1: resolution: { - integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==, } + hasBin: true + dev: true - tr46@0.0.3: + /joycon@3.1.1: resolution: { - integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, } + engines: { node: '>=10' } + dev: true - tree-kill@1.2.2: + /js-beautify@1.15.4: resolution: { - integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==, } + engines: { node: '>=14' } hasBin: true + dependencies: + config-chain: 1.1.13 + editorconfig: 1.0.7 + glob: 10.5.0 + js-cookie: 3.0.8 + nopt: 7.2.1 + dev: true - ts-interface-checker@0.1.13: + /js-cookie@3.0.8: resolution: { - integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==, } + dev: true - tslib@2.8.1: + /js-tokens@4.0.0: resolution: { - integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, } + dev: true - tsup@8.5.1: + /js-tokens@9.0.1: resolution: { - integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==, + integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, } - engines: { node: '>=18' } - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true + dev: true - tweetnacl@1.0.3: + /js-yaml@4.2.0: resolution: { - integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==, + integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==, } + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true - typed-array-buffer@1.0.3: + /jsdom@25.0.1: resolution: { - integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, + integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==, } - engines: { node: '>= 0.4' } + engines: { node: '>=18' } + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + cssstyle: 4.6.0 + data-urls: 5.0.0 + decimal.js: 10.6.0 + form-data: 4.0.6 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.24 + parse5: 7.3.0 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true - typescript@5.9.3: + /json-parse-even-better-errors@2.3.1: resolution: { - integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==, + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, } - engines: { node: '>=14.17' } - hasBin: true + dev: true - ufo@1.6.3: + /json-schema-traverse@1.0.0: resolution: { - integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==, + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, } + dev: true - undici-types@7.19.2: + /json-stringify-safe@5.0.1: resolution: { - integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==, + integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, } + dev: true - unicorn-magic@0.1.0: + /jsonparse@1.3.1: resolution: { - integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, + integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, } - engines: { node: '>=18' } + engines: { '0': node >= 0.2.0 } + dev: true - urijs@1.19.11: + /lilconfig@3.1.3: resolution: { - integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==, + integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==, } + engines: { node: '>=14' } + dev: true - utf-8-validate@6.0.6: + /lines-and-columns@1.2.4: resolution: { - integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==, + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, } - engines: { node: '>=6.14.2' } + dev: true - uuid@11.1.0: + /load-tsconfig@0.2.5: resolution: { - integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==, + integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==, } - hasBin: true + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true - uuid@8.3.2: + /locate-path@7.2.0: resolution: { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, } - hasBin: true + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + p-locate: 6.0.0 + dev: true - viem@2.47.14: + /lodash.camelcase@4.3.0: resolution: { - integrity: sha512-PHmJF1dfa9HEfrVshFXFkixzh/22Z3VFXN1omeFfjMoOFDGQkghsRdDW+KcE29gzM7KZ+MC04L+xpbm2G/kOkw==, + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, } - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true + dev: true - vite-node@3.2.4: + /lodash.isplainobject@4.0.6: resolution: { - integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==, + integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, } - engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } - hasBin: true + dev: true - vite@7.3.2: + /lodash.kebabcase@4.1.1: resolution: { - integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==, + integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, } - engines: { node: ^20.19.0 || >=22.12.0 } - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true + dev: true - vitest@3.2.4: + /lodash.merge@4.6.2: resolution: { - integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==, + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, } - 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.4 - '@vitest/ui': 3.2.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 + dev: true - webidl-conversions@3.0.1: + /lodash.mergewith@4.6.2: resolution: { - integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, } + dev: true - whatwg-url@5.0.0: + /lodash.snakecase@4.1.1: resolution: { - integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, } + dev: true - which-typed-array@1.1.20: + /lodash.startcase@4.4.0: resolution: { - integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==, + integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, } - engines: { node: '>= 0.4' } + dev: true - why-is-node-running@2.3.0: + /lodash.uniq@4.5.0: resolution: { - integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, + integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, } - engines: { node: '>=8' } - hasBin: true + dev: true - wrap-ansi@7.0.0: + /lodash.upperfirst@4.3.1: resolution: { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, } - engines: { node: '>=10' } + dev: true - ws@7.5.10: + /loupe@3.2.1: resolution: { - integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==, + integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==, } - 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 + dev: true - ws@8.18.3: + /lru-cache@10.4.3: resolution: { - integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==, + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, } - 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 + dev: true - y18n@5.0.8: + /magic-string@0.30.21: resolution: { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, } - engines: { node: '>=10' } + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 - yargs-parser@21.1.1: + /math-intrinsics@1.1.0: resolution: { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, } - engines: { node: '>=12' } + engines: { node: '>= 0.4' } + dev: true - yargs@17.7.2: + /meow@12.1.1: resolution: { - integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==, } - engines: { node: '>=12' } + engines: { node: '>=16.10' } + dev: true - yocto-queue@1.2.2: + /mime-db@1.52.0: resolution: { - integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==, + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, } - engines: { node: '>=12.20' } - -snapshots: - '@adraffy/ens-normalize@1.11.1': {} - - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/runtime@7.29.2': {} - - '@commitlint/cli@19.8.1(@types/node@25.6.0)(typescript@5.9.3)': - dependencies: - '@commitlint/format': 19.8.1 - '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@25.6.0)(typescript@5.9.3) - '@commitlint/read': 19.8.1 - '@commitlint/types': 19.8.1 - tinyexec: 1.1.1 - 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-validator@19.8.1': - dependencies: - '@commitlint/types': 19.8.1 - ajv: 8.18.0 - - '@commitlint/ensure@19.8.1': - dependencies: - '@commitlint/types': 19.8.1 - 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@19.8.1': {} - - '@commitlint/format@19.8.1': - dependencies: - '@commitlint/types': 19.8.1 - chalk: 5.6.2 - - '@commitlint/is-ignored@19.8.1': - dependencies: - '@commitlint/types': 19.8.1 - semver: 7.7.4 - - '@commitlint/lint@19.8.1': - dependencies: - '@commitlint/is-ignored': 19.8.1 - '@commitlint/parse': 19.8.1 - '@commitlint/rules': 19.8.1 - '@commitlint/types': 19.8.1 - - '@commitlint/load@19.8.1(@types/node@25.6.0)(typescript@5.9.3)': - dependencies: - '@commitlint/config-validator': 19.8.1 - '@commitlint/execute-rule': 19.8.1 - '@commitlint/resolve-extends': 19.8.1 - '@commitlint/types': 19.8.1 - chalk: 5.6.2 - cosmiconfig: 9.0.1(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.3.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - transitivePeerDependencies: - - '@types/node' - - typescript - - '@commitlint/message@19.8.1': {} - - '@commitlint/parse@19.8.1': - dependencies: - '@commitlint/types': 19.8.1 - conventional-changelog-angular: 7.0.0 - conventional-commits-parser: 5.0.0 - - '@commitlint/read@19.8.1': - dependencies: - '@commitlint/top-level': 19.8.1 - '@commitlint/types': 19.8.1 - git-raw-commits: 4.0.0 - minimist: 1.2.8 - tinyexec: 1.1.1 - - '@commitlint/resolve-extends@19.8.1': - dependencies: - '@commitlint/config-validator': 19.8.1 - '@commitlint/types': 19.8.1 - global-directory: 4.0.1 - import-meta-resolve: 4.2.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - - '@commitlint/rules@19.8.1': - dependencies: - '@commitlint/ensure': 19.8.1 - '@commitlint/message': 19.8.1 - '@commitlint/to-lines': 19.8.1 - '@commitlint/types': 19.8.1 - - '@commitlint/to-lines@19.8.1': {} - - '@commitlint/top-level@19.8.1': - dependencies: - find-up: 7.0.0 - - '@commitlint/types@19.8.1': - dependencies: - '@types/conventional-commits-parser': 5.0.2 - chalk: 5.6.2 - - '@esbuild/aix-ppc64@0.27.7': - optional: true - - '@esbuild/android-arm64@0.27.7': - optional: true - - '@esbuild/android-arm@0.27.7': - optional: true - - '@esbuild/android-x64@0.27.7': - optional: true - - '@esbuild/darwin-arm64@0.27.7': - optional: true - - '@esbuild/darwin-x64@0.27.7': - optional: true - - '@esbuild/freebsd-arm64@0.27.7': - optional: true - - '@esbuild/freebsd-x64@0.27.7': - optional: true - - '@esbuild/linux-arm64@0.27.7': - optional: true - - '@esbuild/linux-arm@0.27.7': - optional: true - - '@esbuild/linux-ia32@0.27.7': - optional: true - - '@esbuild/linux-loong64@0.27.7': - optional: true - - '@esbuild/linux-mips64el@0.27.7': - optional: true - - '@esbuild/linux-ppc64@0.27.7': - optional: true - - '@esbuild/linux-riscv64@0.27.7': - optional: true - - '@esbuild/linux-s390x@0.27.7': - optional: true - - '@esbuild/linux-x64@0.27.7': - optional: true - - '@esbuild/netbsd-arm64@0.27.7': - optional: true - - '@esbuild/netbsd-x64@0.27.7': - optional: true - - '@esbuild/openbsd-arm64@0.27.7': - optional: true - - '@esbuild/openbsd-x64@0.27.7': - optional: true - - '@esbuild/openharmony-arm64@0.27.7': - optional: true - - '@esbuild/sunos-x64@0.27.7': - optional: true - - '@esbuild/win32-arm64@0.27.7': - optional: true - - '@esbuild/win32-ia32@0.27.7': - optional: true - - '@esbuild/win32-x64@0.27.7': - optional: true - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@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 - - '@noble/ciphers@1.3.0': {} - - '@noble/curves@1.9.1': - dependencies: - '@noble/hashes': 1.8.0 - - '@noble/curves@1.9.7': - dependencies: - '@noble/hashes': 1.8.0 - - '@noble/hashes@1.8.0': {} - - '@rollup/rollup-android-arm-eabi@4.60.1': - optional: true - - '@rollup/rollup-android-arm64@4.60.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.60.1': - optional: true - - '@rollup/rollup-darwin-x64@4.60.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.60.1': - optional: true - - '@rollup/rollup-freebsd-x64@4.60.1': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.60.1': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.60.1': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.60.1': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.60.1': - optional: true - - '@rollup/rollup-linux-loong64-musl@4.60.1': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.60.1': - optional: true - - '@rollup/rollup-linux-ppc64-musl@4.60.1': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.60.1': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.60.1': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.60.1': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.60.1': - optional: true - - '@rollup/rollup-linux-x64-musl@4.60.1': - optional: true - - '@rollup/rollup-openbsd-x64@4.60.1': - optional: true - - '@rollup/rollup-openharmony-arm64@4.60.1': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.60.1': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.60.1': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.60.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.60.1': - optional: true - - '@scure/base@1.2.6': {} - - '@scure/bip32@1.7.0': - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - - '@scure/bip39@1.6.0': - dependencies: - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - - '@solana/buffer-layout@4.0.1': - dependencies: - buffer: 6.0.3 + engines: { node: '>= 0.6' } + dev: true - '@solana/codecs-core@2.3.0(typescript@5.9.3)': + /mime-types@2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: '>= 0.6' } dependencies: - '@solana/errors': 2.3.0(typescript@5.9.3) - typescript: 5.9.3 + mime-db: 1.52.0 + dev: true - '@solana/codecs-numbers@2.3.0(typescript@5.9.3)': + /minimatch@9.0.9: + resolution: + { + integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==, + } + engines: { node: '>=16 || 14 >=14.17' } dependencies: - '@solana/codecs-core': 2.3.0(typescript@5.9.3) - '@solana/errors': 2.3.0(typescript@5.9.3) - typescript: 5.9.3 + brace-expansion: 2.1.1 + dev: true - '@solana/errors@2.3.0(typescript@5.9.3)': - dependencies: - chalk: 5.6.2 - commander: 14.0.3 - typescript: 5.9.3 + /minimist@1.2.8: + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } + dev: true - '@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.8 - superstruct: 2.0.2 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@stellar/js-xdr@3.1.2': {} - - '@stellar/stellar-base@13.1.0': - dependencies: - '@stellar/js-xdr': 3.1.2 - base32.js: 0.1.0 - bignumber.js: 9.3.1 - buffer: 6.0.3 - sha.js: 2.4.12 - tweetnacl: 1.0.3 - optionalDependencies: - sodium-native: 4.3.3 - transitivePeerDependencies: - - bare-url - - '@stellar/stellar-sdk@13.3.0': - dependencies: - '@stellar/stellar-base': 13.1.0 - axios: 1.15.0 - bignumber.js: 9.3.1 - eventsource: 2.0.2 - feaxios: 0.0.23 - randombytes: 2.1.0 - toml: 3.0.0 - urijs: 1.19.11 - transitivePeerDependencies: - - bare-url - - debug - - '@swc/helpers@0.5.21': - dependencies: - tslib: 2.8.1 - - '@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': 25.6.0 - - '@types/conventional-commits-parser@5.0.2': - dependencies: - '@types/node': 25.6.0 - - '@types/deep-eql@4.0.2': {} - - '@types/estree@1.0.8': {} - - '@types/node@12.20.55': {} - - '@types/node@25.6.0': - dependencies: - undici-types: 7.19.2 - - '@types/uuid@10.0.0': {} - - '@types/ws@7.4.7': - dependencies: - '@types/node': 25.6.0 - - '@types/ws@8.18.1': - dependencies: - '@types/node': 25.6.0 - - '@vitest/expect@3.2.4': - dependencies: - '@types/chai': 5.2.3 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1) - - '@vitest/pretty-format@3.2.4': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.2.4': - dependencies: - '@vitest/utils': 3.2.4 - pathe: 2.0.3 - strip-literal: 3.1.0 - - '@vitest/snapshot@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.21 - pathe: 2.0.3 - - '@vitest/spy@3.2.4': - dependencies: - tinyspy: 4.0.4 - - '@vitest/utils@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - loupe: 3.2.1 - tinyrainbow: 2.0.0 - - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - - abitype@1.2.3(typescript@5.9.3): - optionalDependencies: - typescript: 5.9.3 - - acorn@8.16.0: {} - - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - - ajv@8.18.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - any-promise@1.3.0: {} - - argparse@2.0.1: {} - - array-ify@1.0.0: {} - - assertion-error@2.0.1: {} - - asynckit@0.4.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axios@1.15.0: - dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.5 - proxy-from-env: 2.1.0 - transitivePeerDependencies: - - debug - - bare-addon-resolve@1.10.0: - dependencies: - bare-module-resolve: 1.12.1 - bare-semver: 1.0.3 - optional: true - - bare-module-resolve@1.12.1: - dependencies: - bare-semver: 1.0.3 - optional: true - - bare-semver@1.0.3: - optional: true - - base-x@3.0.11: - dependencies: - safe-buffer: 5.2.1 - - base32.js@0.1.0: {} - - base64-js@1.5.1: {} - - bignumber.js@9.3.1: {} - - 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 - - bs58@4.0.1: - dependencies: - base-x: 3.0.11 - - 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-require@5.1.0(esbuild@0.27.7): - dependencies: - esbuild: 0.27.7 - load-tsconfig: 0.2.5 - - cac@6.7.14: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - 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: {} - - 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@5.6.2: {} - - check-error@2.1.3: {} - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@14.0.3: {} - - commander@2.20.3: {} - - commander@4.1.1: {} - - compare-func@2.0.0: - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - - confbox@0.1.8: {} - - consola@3.4.2: {} - - conventional-changelog-angular@7.0.0: - dependencies: - compare-func: 2.0.0 - - conventional-changelog-conventionalcommits@7.0.2: - dependencies: - compare-func: 2.0.0 - - conventional-commits-parser@5.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 - - cosmiconfig-typescript-loader@6.3.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3): - dependencies: - '@types/node': 25.6.0 - cosmiconfig: 9.0.1(typescript@5.9.3) - jiti: 2.6.1 - typescript: 5.9.3 - - cosmiconfig@9.0.1(typescript@5.9.3): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.9.3 - - dargs@8.1.0: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - deep-eql@5.0.2: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - delay@5.0.0: {} - - delayed-stream@1.0.0: {} - - dot-prop@5.3.0: - dependencies: - is-obj: 2.0.0 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - emoji-regex@8.0.0: {} - - env-paths@2.2.1: {} - - error-ex@1.3.4: - dependencies: - is-arrayish: 0.2.1 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-module-lexer@1.7.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es6-promise@4.2.8: {} - - es6-promisify@5.0.0: - dependencies: - es6-promise: 4.2.8 - - esbuild@0.27.7: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 - - escalade@3.2.0: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - eventemitter3@5.0.1: {} - - eventsource@2.0.2: {} - - expect-type@1.3.0: {} - - eyes@0.1.8: {} - - fast-deep-equal@3.1.3: {} - - fast-stable-stringify@1.0.0: {} - - fast-uri@3.1.0: {} - - fdir@6.5.0(picomatch@4.0.4): - optionalDependencies: - picomatch: 4.0.4 - - feaxios@0.0.23: - dependencies: - is-retry-allowed: 3.0.0 - - find-up@7.0.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 - - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.21 - mlly: 1.8.2 - rollup: 4.60.1 - - follow-redirects@1.15.11: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - form-data@4.0.5: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-caller-file@2.0.5: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - git-raw-commits@4.0.0: - dependencies: - dargs: 8.1.0 - meow: 12.1.1 - split2: 4.2.0 - - global-directory@4.0.1: - dependencies: - ini: 4.1.1 - - gopd@1.2.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - husky@9.1.7: {} - - ieee754@1.2.1: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-meta-resolve@4.2.0: {} - - inherits@2.0.4: {} - - ini@4.1.1: {} - - is-arrayish@0.2.1: {} - - is-callable@1.2.7: {} - - is-fullwidth-code-point@3.0.0: {} - - is-obj@2.0.0: {} - - is-retry-allowed@3.0.0: {} - - is-text-path@2.0.0: - dependencies: - text-extensions: 2.4.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - - isarray@2.0.5: {} - - 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.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) - - 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 - - jiti@2.6.1: {} - - joycon@3.1.1: {} - - js-tokens@4.0.0: {} - - js-tokens@9.0.1: {} - - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@1.0.0: {} - - json-stringify-safe@5.0.1: {} - - jsonparse@1.3.1: {} - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - load-tsconfig@0.2.5: {} - - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - - lodash.camelcase@4.3.0: {} - - lodash.isplainobject@4.0.6: {} - - lodash.kebabcase@4.1.1: {} - - lodash.merge@4.6.2: {} - - lodash.mergewith@4.6.2: {} - - lodash.snakecase@4.1.1: {} - - lodash.startcase@4.4.0: {} - - lodash.uniq@4.5.0: {} - - lodash.upperfirst@4.3.1: {} - - loupe@3.2.1: {} - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - math-intrinsics@1.1.0: {} - - meow@12.1.1: {} - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minimist@1.2.8: {} + /minipass@7.1.3: + resolution: + { + integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==, + } + engines: { node: '>=16 || 14 >=14.17' } + dev: true - mlly@1.8.2: + /mlly@1.8.2: + resolution: + { + integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==, + } dependencies: - acorn: 8.16.0 + acorn: 8.17.0 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.6.3 + ufo: 1.6.4 + dev: true + + /ms@2.1.3: + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } + dev: true - ms@2.1.3: {} + /muggle-string@0.4.1: + resolution: + { + integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==, + } + dev: true - mz@2.7.0: + /mz@2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + dev: true - nanoid@3.3.11: {} + /nanoid@3.3.15: + resolution: + { + integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true - node-fetch@2.7.0: + /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 dependencies: whatwg-url: 5.0.0 + dev: true - node-gyp-build@4.8.4: - optional: true + /node-gyp-build@4.8.4: + resolution: + { + integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==, + } + hasBin: true + requiresBuild: true + dev: true + + /nopt@7.2.1: + resolution: + { + integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + hasBin: true + dependencies: + abbrev: 2.0.0 + dev: true + + /nwsapi@2.2.24: + resolution: + { + integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==, + } + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } + dev: true - ox@0.14.15(typescript@5.9.3): + /ox@0.14.29(typescript@5.9.3): + resolution: + { + integrity: sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==, + } + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -3686,137 +3908,399 @@ snapshots: '@scure/bip39': 1.6.0 abitype: 1.2.3(typescript@5.9.3) eventemitter3: 5.0.1 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - zod + dev: false - p-limit@4.0.0: + /p-limit@4.0.0: + resolution: + { + integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: yocto-queue: 1.2.2 + dev: true - p-locate@6.0.0: + /p-locate@6.0.0: + resolution: + { + integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: p-limit: 4.0.0 + dev: true + + /package-json-from-dist@1.0.1: + resolution: + { + integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, + } + dev: true - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: '>=6' } dependencies: callsites: 3.1.0 + dev: true - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true + + /parse5@7.3.0: + resolution: + { + integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==, + } + dependencies: + entities: 6.0.1 + dev: true + + /path-browserify@1.0.1: + resolution: + { + integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, + } + dev: true - path-exists@5.0.0: {} + /path-exists@5.0.0: + resolution: + { + integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true + + /path-key@3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: '>=8' } + dev: true + + /path-scurry@1.11.1: + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: '>=16 || 14 >=14.18' } + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + dev: true - pathe@2.0.3: {} + /pathe@2.0.3: + resolution: + { + integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, + } + dev: true - pathval@2.0.1: {} + /pathval@2.0.1: + resolution: + { + integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==, + } + engines: { node: '>= 14.16' } + dev: true - picocolors@1.1.1: {} + /picocolors@1.1.1: + resolution: + { + integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, + } - picomatch@4.0.4: {} + /picomatch@4.0.4: + resolution: + { + integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==, + } + engines: { node: '>=12' } + dev: true - pirates@4.0.7: {} + /pirates@4.0.7: + resolution: + { + integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==, + } + engines: { node: '>= 6' } + dev: true - pkg-types@1.3.1: + /pkg-types@1.3.1: + resolution: + { + integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==, + } dependencies: confbox: 0.1.8 mlly: 1.8.2 pathe: 2.0.3 + dev: true - possible-typed-array-names@1.1.0: {} + /possible-typed-array-names@1.1.0: + resolution: + { + integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==, + } + engines: { node: '>= 0.4' } + dev: true - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.9): + /postcss-load-config@6.0.1: + resolution: + { + integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==, + } + engines: { node: '>= 18' } + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true dependencies: lilconfig: 3.1.3 - optionalDependencies: - jiti: 2.6.1 - postcss: 8.5.9 + dev: true - postcss@8.5.9: + /postcss@8.5.15: + resolution: + { + integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==, + } + engines: { node: ^10 || ^12 || >=14 } dependencies: - nanoid: 3.3.11 + nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 - prettier@3.8.2: {} + /prettier@3.8.4: + resolution: + { + integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==, + } + engines: { node: '>=14' } + hasBin: true + dev: true + + /proto-list@1.2.4: + resolution: + { + integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, + } + dev: true + + /proxy-from-env@2.1.0: + resolution: + { + integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==, + } + engines: { node: '>=10' } + dev: true - proxy-from-env@2.1.0: {} + /punycode@2.3.1: + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: '>=6' } + dev: true - randombytes@2.1.0: + /randombytes@2.1.0: + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } dependencies: safe-buffer: 5.2.1 + dev: true - readdirp@4.1.2: {} + /readdirp@4.1.2: + resolution: + { + integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==, + } + engines: { node: '>= 14.18.0' } + dev: true - require-addon@1.2.0: + /require-addon@1.2.0: + resolution: + { + integrity: sha512-VNPDZlYgIYQwWp9jMTzljx+k0ZtatKlcvOhktZ/anNPI3dQ9NXk7cq2U4iJ1wd9IrytRnYhyEocFWbkdPb+MYA==, + } + engines: { bare: '>=1.10.0' } + requiresBuild: true dependencies: bare-addon-resolve: 1.10.0 transitivePeerDependencies: - bare-url + dev: true optional: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: '>=0.10.0' } + dev: true - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: '>=0.10.0' } + dev: true - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } + dev: true - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: '>=8' } + dev: true - rollup@4.60.1: + /rollup@4.62.2: + resolution: + { + integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.1 - '@rollup/rollup-android-arm64': 4.60.1 - '@rollup/rollup-darwin-arm64': 4.60.1 - '@rollup/rollup-darwin-x64': 4.60.1 - '@rollup/rollup-freebsd-arm64': 4.60.1 - '@rollup/rollup-freebsd-x64': 4.60.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 - '@rollup/rollup-linux-arm-musleabihf': 4.60.1 - '@rollup/rollup-linux-arm64-gnu': 4.60.1 - '@rollup/rollup-linux-arm64-musl': 4.60.1 - '@rollup/rollup-linux-loong64-gnu': 4.60.1 - '@rollup/rollup-linux-loong64-musl': 4.60.1 - '@rollup/rollup-linux-ppc64-gnu': 4.60.1 - '@rollup/rollup-linux-ppc64-musl': 4.60.1 - '@rollup/rollup-linux-riscv64-gnu': 4.60.1 - '@rollup/rollup-linux-riscv64-musl': 4.60.1 - '@rollup/rollup-linux-s390x-gnu': 4.60.1 - '@rollup/rollup-linux-x64-gnu': 4.60.1 - '@rollup/rollup-linux-x64-musl': 4.60.1 - '@rollup/rollup-openbsd-x64': 4.60.1 - '@rollup/rollup-openharmony-arm64': 4.60.1 - '@rollup/rollup-win32-arm64-msvc': 4.60.1 - '@rollup/rollup-win32-ia32-msvc': 4.60.1 - '@rollup/rollup-win32-x64-gnu': 4.60.1 - '@rollup/rollup-win32-x64-msvc': 4.60.1 + '@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 + dev: true - rpc-websockets@9.3.8: + /rpc-websockets@9.3.9: + resolution: + { + integrity: sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA==, + } dependencies: - '@swc/helpers': 0.5.21 + '@swc/helpers': 0.5.23 '@types/uuid': 10.0.0 '@types/ws': 8.18.1 buffer: 6.0.3 - eventemitter3: 5.0.1 - uuid: 11.1.0 - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + eventemitter3: 5.0.4 + uuid: 14.0.1 + 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 + dev: true + + /rrweb-cssom@0.7.1: + resolution: + { + integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==, + } + dev: true + + /rrweb-cssom@0.8.0: + resolution: + { + integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==, + } + dev: true + + /safe-buffer@5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + dev: true + + /safer-buffer@2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } + dev: true - safe-buffer@5.2.1: {} + /saxes@6.0.0: + resolution: + { + integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, + } + engines: { node: '>=v12.22.7' } + dependencies: + xmlchars: 2.2.0 + dev: true - semver@7.7.4: {} + /semver@7.8.5: + resolution: + { + integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==, + } + engines: { node: '>=10' } + hasBin: true + dev: true - set-function-length@1.2.2: + /set-function-length@1.2.2: + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + } + engines: { node: '>= 0.4' } dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -3824,112 +4308,409 @@ snapshots: get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 + dev: true - sha.js@2.4.12: + /sha.js@2.4.12: + resolution: + { + integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==, + } + engines: { node: '>= 0.10' } + hasBin: true dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 to-buffer: 1.2.2 + dev: true + + /shebang-command@2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: '>=8' } + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: '>=8' } + dev: true + + /siginfo@2.0.0: + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + } + dev: true - siginfo@2.0.0: {} + /signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: '>=14' } + dev: true - sodium-native@4.3.3: + /sodium-native@4.3.3: + resolution: + { + integrity: sha512-OnxSlN3uyY8D0EsLHpmm2HOFmKddQVvEMmsakCrXUzSd8kjjbzL413t4ZNF3n0UxSwNgwTyUvkmZHTfuCeiYSw==, + } + requiresBuild: true dependencies: require-addon: 1.2.0 transitivePeerDependencies: - bare-url + dev: true optional: true - source-map-js@1.2.1: {} + /source-map-js@1.2.1: + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: '>=0.10.0' } - source-map@0.7.6: {} + /source-map@0.7.6: + resolution: + { + integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==, + } + engines: { node: '>= 12' } + dev: true - split2@4.2.0: {} + /split2@4.2.0: + resolution: + { + integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + } + engines: { node: '>= 10.x' } + dev: true - stackback@0.0.2: {} + /stackback@0.0.2: + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + } + dev: true - std-env@3.10.0: {} + /std-env@3.10.0: + resolution: + { + integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==, + } + dev: true - stream-chain@2.2.5: {} + /stream-chain@2.2.5: + resolution: + { + integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==, + } + dev: true - stream-json@1.9.1: + /stream-json@1.9.1: + resolution: + { + integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==, + } dependencies: stream-chain: 2.2.5 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: '>=8' } dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: '>=12' } + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + dev: true - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: '>=8' } dependencies: ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.2.0: + resolution: + { + integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==, + } + engines: { node: '>=12' } + dependencies: + ansi-regex: 6.2.2 + dev: true - strip-literal@3.1.0: + /strip-literal@3.1.0: + resolution: + { + integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==, + } dependencies: js-tokens: 9.0.1 + dev: true - sucrase@3.35.1: + /sucrase@3.35.1: + resolution: + { + integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==, + } + engines: { node: '>=16 || 14 >=14.17' } + hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ts-interface-checker: 0.1.13 + dev: true + + /superstruct@2.0.2: + resolution: + { + integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==, + } + engines: { node: '>=14.0.0' } + dev: true - superstruct@2.0.2: {} + /symbol-tree@3.2.4: + resolution: + { + integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, + } + dev: true - text-encoding-utf-8@1.0.2: {} + /text-encoding-utf-8@1.0.2: + resolution: + { + integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==, + } + dev: true - text-extensions@2.4.0: {} + /text-extensions@2.4.0: + resolution: + { + integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==, + } + engines: { node: '>=8' } + dev: true - thenify-all@1.6.0: + /thenify-all@1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: '>=0.8' } dependencies: thenify: 3.3.1 + dev: true - thenify@3.3.1: + /thenify@3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } dependencies: any-promise: 1.3.0 + dev: true - through@2.3.8: {} + /through@2.3.8: + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } + dev: true - tinybench@2.9.0: {} + /tinybench@2.9.0: + resolution: + { + integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, + } + dev: true - tinyexec@0.3.2: {} + /tinyexec@0.3.2: + resolution: + { + integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, + } + dev: true - tinyexec@1.1.1: {} + /tinyexec@1.2.4: + resolution: + { + integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==, + } + engines: { node: '>=18' } + dev: true - tinyglobby@0.2.16: + /tinyglobby@0.2.17: + resolution: + { + integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==, + } + engines: { node: '>=12.0.0' } dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + dev: true + + /tinypool@1.1.1: + resolution: + { + integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + dev: true + + /tinyrainbow@2.0.0: + resolution: + { + integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==, + } + engines: { node: '>=14.0.0' } + dev: true - tinypool@1.1.1: {} + /tinyspy@4.0.4: + resolution: + { + integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==, + } + engines: { node: '>=14.0.0' } + dev: true - tinyrainbow@2.0.0: {} + /tldts-core@6.1.86: + resolution: + { + integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==, + } + dev: true - tinyspy@4.0.4: {} + /tldts@6.1.86: + resolution: + { + integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==, + } + hasBin: true + dependencies: + tldts-core: 6.1.86 + dev: true - to-buffer@1.2.2: + /to-buffer@1.2.2: + resolution: + { + integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==, + } + engines: { node: '>= 0.4' } dependencies: isarray: 2.0.5 safe-buffer: 5.2.1 typed-array-buffer: 1.0.3 + dev: true + + /toml@3.0.0: + resolution: + { + integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + } + dev: true + + /tough-cookie@5.1.2: + resolution: + { + integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==, + } + engines: { node: '>=16' } + dependencies: + tldts: 6.1.86 + dev: true - toml@3.0.0: {} + /tr46@0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + dev: true - tr46@0.0.3: {} + /tr46@5.1.1: + resolution: + { + integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==, + } + engines: { node: '>=18' } + dependencies: + punycode: 2.3.1 + dev: true - tree-kill@1.2.2: {} + /tree-kill@1.2.2: + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } + hasBin: true + dev: true - ts-interface-checker@0.1.13: {} + /ts-interface-checker@0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } + dev: true - tslib@2.8.1: {} + /tslib@2.8.1: + resolution: + { + integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, + } + dev: true - tsup@8.5.1(jiti@2.6.1)(postcss@8.5.9)(typescript@5.9.3): + /tsup@8.5.1(typescript@5.9.3): + resolution: + { + integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==, + } + engines: { node: '>=18' } + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true dependencies: bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 @@ -3940,74 +4721,145 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.9) + postcss-load-config: 6.0.1 resolve-from: 5.0.0 - rollup: 4.60.1 + rollup: 4.62.2 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.5.9 typescript: 5.9.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml + dev: true - tweetnacl@1.0.3: {} + /tweetnacl@1.0.3: + resolution: + { + integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==, + } + dev: true - typed-array-buffer@1.0.3: + /typed-array-buffer@1.0.3: + resolution: + { + integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, + } + engines: { node: '>= 0.4' } dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 + dev: true - typescript@5.9.3: {} + /typescript@5.9.3: + resolution: + { + integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==, + } + engines: { node: '>=14.17' } + hasBin: true - ufo@1.6.3: {} + /ufo@1.6.4: + resolution: + { + integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==, + } + dev: true - undici-types@7.19.2: {} + /undici-types@8.3.0: + resolution: + { + integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==, + } + dev: true - unicorn-magic@0.1.0: {} + /unicorn-magic@0.1.0: + resolution: + { + integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, + } + engines: { node: '>=18' } + dev: true - urijs@1.19.11: {} + /urijs@1.19.11: + resolution: + { + integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==, + } + dev: true - utf-8-validate@6.0.6: + /utf-8-validate@6.0.6: + resolution: + { + integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==, + } + engines: { node: '>=6.14.2' } + requiresBuild: true dependencies: node-gyp-build: 4.8.4 - optional: true + dev: true - uuid@11.1.0: {} + /uuid@14.0.1: + resolution: + { + integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==, + } + hasBin: true + dev: true - uuid@8.3.2: {} + /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 + dev: true - viem@2.47.14(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6): + /viem@2.53.1(typescript@5.9.3): + resolution: + { + integrity: sha512-FhfJ/SW73CVosiyVLmIMVgKDRKYV1AGCLzZoHYvmNayyVff63Qi1ocPCk59LqC/cNw244RbBJjHnmxqXkE7NpA==, + } + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 abitype: 1.2.3(typescript@5.9.3) - isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - ox: 0.14.15(typescript@5.9.3) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: + isows: 1.0.7(ws@8.20.1) + ox: 0.14.29(typescript@5.9.3) typescript: 5.9.3 + ws: 8.20.1 transitivePeerDependencies: - bufferutil - utf-8-validate - zod + dev: false - vite-node@3.2.4(@types/node@25.6.0)(jiti@2.6.1): + /vite-node@3.2.4(@types/node@26.0.0): + resolution: + { + integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } + hasBin: true dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1) + vite: 6.4.3(@types/node@26.0.0) transitivePeerDependencies: - '@types/node' - jiti @@ -4021,47 +4873,118 @@ snapshots: - terser - tsx - yaml + dev: true - vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1): + /vite@6.4.3(@types/node@26.0.0): + resolution: + { + integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true dependencies: - esbuild: 0.27.7 + '@types/node': 26.0.0 + esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.9 - rollup: 4.60.1 - tinyglobby: 0.2.16 + postcss: 8.5.15 + rollup: 4.62.2 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.6.0 fsevents: 2.3.3 - jiti: 2.6.1 + dev: true - vitest@3.2.4(@types/node@25.6.0)(jiti@2.6.1): + /vitest@3.2.6(@types/node@26.0.0)(jsdom@25.0.1): + resolution: + { + integrity: sha512-xejya+bT/j/+R/AGa1XOfRxLmNUlLtlwjRsFUILF+xHfzElmGcmFydy2gqqIrd62ptIEfwVMofd19uNWD9L7Nw==, + } + 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.6 + '@vitest/ui': 3.2.6 + 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 dependencies: '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 + '@types/node': 26.0.0 + '@vitest/expect': 3.2.6 + '@vitest/mocker': 3.2.6(vite@6.4.3) + '@vitest/pretty-format': 3.2.6 + '@vitest/runner': 3.2.6 + '@vitest/snapshot': 3.2.6 + '@vitest/spy': 3.2.6 + '@vitest/utils': 3.2.6 chai: 5.3.3 debug: 4.4.3 expect-type: 1.3.0 + jsdom: 25.0.1 magic-string: 0.30.21 pathe: 2.0.3 picomatch: 4.0.4 std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1) - vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.6.1) + vite: 6.4.3(@types/node@26.0.0) + vite-node: 3.2.4(@types/node@26.0.0) why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 25.6.0 transitivePeerDependencies: - jiti - less @@ -4075,15 +4998,125 @@ snapshots: - terser - tsx - yaml + dev: true + + /vscode-uri@3.1.0: + resolution: + { + integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==, + } + dev: true + + /vue-component-type-helpers@3.3.5: + resolution: + { + integrity: sha512-Fe1jyPJoUGpJOYKOri44jduR7My4yYINOMJISuMAbmrs+L5LbIDUc8NTWZYY3EJLK0yPLuCmcd5zoCsE4k2/KA==, + } + dev: true + + /vue-tsc@2.2.12(typescript@5.9.3): + resolution: + { + integrity: sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==, + } + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + dependencies: + '@volar/typescript': 2.4.15 + '@vue/language-core': 2.2.12(typescript@5.9.3) + typescript: 5.9.3 + dev: true + + /vue@3.5.38(typescript@5.9.3): + resolution: + { + integrity: sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A==, + } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.5.38 + '@vue/compiler-sfc': 3.5.38 + '@vue/runtime-dom': 3.5.38 + '@vue/server-renderer': 3.5.38(vue@3.5.38) + '@vue/shared': 3.5.38 + typescript: 5.9.3 + + /w3c-xmlserializer@5.0.0: + resolution: + { + integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==, + } + engines: { node: '>=18' } + dependencies: + xml-name-validator: 5.0.0 + dev: true + + /webidl-conversions@3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + dev: true + + /webidl-conversions@7.0.0: + resolution: + { + integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, + } + engines: { node: '>=12' } + dev: true + + /whatwg-encoding@3.1.1: + resolution: + { + integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, + } + engines: { node: '>=18' } + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype@4.0.0: + resolution: + { + integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, + } + engines: { node: '>=18' } + dev: true - webidl-conversions@3.0.1: {} + /whatwg-url@14.2.0: + resolution: + { + integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==, + } + engines: { node: '>=18' } + dependencies: + tr46: 5.1.1 + webidl-conversions: 7.0.0 + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: true - which-typed-array@1.1.20: + /which-typed-array@1.1.22: + resolution: + { + integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==, + } + engines: { node: '>= 0.4' } dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 @@ -4092,33 +5125,143 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 + dev: true + + /which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true - why-is-node-running@2.3.0: + /why-is-node-running@2.3.0: + resolution: + { + integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, + } + engines: { node: '>=8' } + hasBin: true dependencies: siginfo: 2.0.0 stackback: 0.0.2 + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: '>=10' } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - 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 + /wrap-ansi@8.1.0: + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: '>=12' } + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + dev: true - ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6): - optionalDependencies: + /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 + dev: 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 + dev: false + + /ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + 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 + dependencies: bufferutil: 4.1.0 utf-8-validate: 6.0.6 + dev: true + + /xml-name-validator@5.0.0: + resolution: + { + integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==, + } + engines: { node: '>=18' } + dev: true + + /xmlchars@2.2.0: + resolution: + { + integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, + } + dev: true - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: '>=10' } + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: '>=12' } + dev: true - yargs@17.7.2: + /yargs@17.7.3: + resolution: + { + integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==, + } + engines: { node: '>=12' } dependencies: cliui: 8.0.1 escalade: 3.2.0 @@ -4127,5 +5270,12 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yocto-queue@1.2.2: {} + /yocto-queue@1.2.2: + resolution: + { + integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==, + } + engines: { node: '>=12.20' } + dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..1598933 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'packages/*' + - 'examples/*'