diff --git a/.prettierignore b/.prettierignore
index 480e7b9..72a210a 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,3 +1,4 @@
dist
node_modules
reference
+pnpm-lock.yaml
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/examples/svelte-stellar-app/index.html b/examples/svelte-stellar-app/index.html
new file mode 100644
index 0000000..eb7b1d5
--- /dev/null
+++ b/examples/svelte-stellar-app/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ Wraith SDK Svelte Example
+
+
+
+
+
+
diff --git a/examples/svelte-stellar-app/package.json b/examples/svelte-stellar-app/package.json
new file mode 100644
index 0000000..566b3c6
--- /dev/null
+++ b/examples/svelte-stellar-app/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "svelte-stellar-app",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "svelte": "^5.0.0",
+ "@wraith-protocol/sdk-svelte": "workspace:*",
+ "@wraith-protocol/sdk": "workspace:*"
+ },
+ "devDependencies": {
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
+ "vite": "^6.0.0",
+ "typescript": "^5.7.0"
+ }
+}
diff --git a/examples/svelte-stellar-app/src/App.svelte b/examples/svelte-stellar-app/src/App.svelte
new file mode 100644
index 0000000..44a6edc
--- /dev/null
+++ b/examples/svelte-stellar-app/src/App.svelte
@@ -0,0 +1,93 @@
+
+
+
+
Wraith SDK — Svelte 5 Example
+
+
+ Stellar Stealth Keys
+
+ Signature (hex):
+
+
+
+ Derive Keys & Generate Address
+
+
+ {#if $stellar.error}
+ {$stellar.error}
+ {/if}
+
+ {#if $stellar.keys}
+
+
Keys
+
{JSON.stringify($stellar.keys, (_, v) => (v instanceof Uint8Array ? Array.from(v) : v), 2)}
+
+ {/if}
+
+ {#if $stellar.stealthAddress}
+
+
Stealth Address
+
{JSON.stringify($stellar.stealthAddress, (_, v) => (v instanceof Uint8Array ? Array.from(v) : v), 2)}
+
+ {/if}
+
+ {#if $stellar.metaAddress}
+
+
Meta Address
+ {$stellar.metaAddress}
+ Decode
+
+ {/if}
+
+ {#if $meta.decoded}
+
+
Decoded Meta Address
+
{JSON.stringify($meta.decoded, (_, v) => (v instanceof Uint8Array ? Array.from(v) : v), 2)}
+
+ {/if}
+
+
+
+
diff --git a/examples/svelte-stellar-app/src/main.ts b/examples/svelte-stellar-app/src/main.ts
new file mode 100644
index 0000000..350691a
--- /dev/null
+++ b/examples/svelte-stellar-app/src/main.ts
@@ -0,0 +1,6 @@
+import App from './App.svelte';
+import { mount } from 'svelte';
+
+const app = mount(App, { target: document.getElementById('app')! });
+
+export default app;
diff --git a/examples/svelte-stellar-app/svelte.config.js b/examples/svelte-stellar-app/svelte.config.js
new file mode 100644
index 0000000..4c6b24b
--- /dev/null
+++ b/examples/svelte-stellar-app/svelte.config.js
@@ -0,0 +1,5 @@
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+export default {
+ preprocess: vitePreprocess(),
+};
diff --git a/examples/svelte-stellar-app/tsconfig.json b/examples/svelte-stellar-app/tsconfig.json
new file mode 100644
index 0000000..f8451a9
--- /dev/null
+++ b/examples/svelte-stellar-app/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "target": "ES2022",
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "strict": true,
+ "skipLibCheck": true,
+ "paths": {
+ "@wraith-protocol/sdk": ["../../src"],
+ "@wraith-protocol/sdk-svelte": ["../../packages/sdk-svelte/src"]
+ }
+ },
+ "include": ["src"]
+}
diff --git a/examples/svelte-stellar-app/vite.config.ts b/examples/svelte-stellar-app/vite.config.ts
new file mode 100644
index 0000000..0cf4613
--- /dev/null
+++ b/examples/svelte-stellar-app/vite.config.ts
@@ -0,0 +1,6 @@
+import { defineConfig } from 'vite';
+import { svelte } from '@sveltejs/vite-plugin-svelte';
+
+export default defineConfig({
+ plugins: [svelte()],
+});
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 @@
+
+
+
+
+
Wraith SDK — Vue 3 Example
+
+
+ Stellar Stealth Keys
+
+ Signature (hex):
+
+
+
+ {{ loading ? 'Deriving...' : 'Derive Keys & Generate Address' }}
+
+
+ {{ error }}
+
+
+
Keys
+
{{
+ JSON.stringify(keys, (_, v) => (v instanceof Uint8Array ? Array.from(v) : v), 2)
+ }}
+
+
+
+
Stealth Address
+
{{
+ JSON.stringify(stealthAddress, (_, v) => (v instanceof Uint8Array ? Array.from(v) : v), 2)
+ }}
+
+
+
+
Meta Address
+ {{ metaAddress }}
+ Decode
+
+
+
+
Decoded Meta Address
+
{{
+ JSON.stringify(decoded, (_, v) => (v instanceof Uint8Array ? Array.from(v) : v), 2)
+ }}
+
+
+
+
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-svelte/README.md b/packages/sdk-svelte/README.md
new file mode 100644
index 0000000..24a4be5
--- /dev/null
+++ b/packages/sdk-svelte/README.md
@@ -0,0 +1,128 @@
+# @wraith-protocol/sdk-svelte
+
+Svelte reactive stores for `@wraith-protocol/sdk`. Works with Svelte 4 and 5.
+
+## Installation
+
+```bash
+npm install @wraith-protocol/sdk @wraith-protocol/sdk-svelte
+```
+
+## Primitives
+
+### `useWraith`
+
+Reactive Wraith API client.
+
+```svelte
+
+
+{#if $loading}
+ Loading...
+{/if}
+
+{#if $agentInfo}
+ Agent: {$agentInfo.name}
+{/if}
+```
+
+### `useStellarStealthKeys`
+
+```svelte
+
+
+{#if $keys}
+ Spending key: {$keys.spendingPubKey}
+{/if}
+```
+
+### `useEvmStealthKeys`
+
+```svelte
+
+```
+
+### `useSolanaStealthKeys`
+
+```svelte
+
+```
+
+### `useStealthMetaAddress`
+
+Multi-chain meta address encode/decode.
+
+```svelte
+
+
+Encoded: {$encoded}
+```
+
+## API
+
+Each primitive returns Svelte `Readable` stores (subscription-based, prefix with `$`) and action methods:
+
+| State | Type | Description |
+| ---------------- | ------------------------------------------- | ------------------------------------------ |
+| `loading` | `Readable` | True while an async operation is in flight |
+| `error` | `Readable` | Last error message |
+| `keys` | `Readable` | Derived stealth keys |
+| `stealthAddress` | `Readable` | Generated stealth address |
+| `announcements` | `Readable` | Fetched announcements |
+| `matched` | `Readable` | Matched announcements after scan |
+| `metaAddress` | `Readable` | Encoded stealth meta address |
+
+## Development
+
+```bash
+pnpm install
+pnpm build
+pnpm test
+```
diff --git a/packages/sdk-svelte/package.json b/packages/sdk-svelte/package.json
new file mode 100644
index 0000000..8fa4365
--- /dev/null
+++ b/packages/sdk-svelte/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "@wraith-protocol/sdk-svelte",
+ "version": "0.1.0",
+ "private": false,
+ "type": "module",
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js",
+ "svelte": "./dist/index.js"
+ }
+ },
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "build": "tsup",
+ "dev": "tsup --watch",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "typecheck": "svelte-check --tsconfig ./tsconfig.json",
+ "clean": "rm -rf dist"
+ },
+ "dependencies": {
+ "@wraith-protocol/sdk": "workspace:*"
+ },
+ "peerDependencies": {
+ "svelte": "^5.0.0"
+ },
+ "devDependencies": {
+ "svelte": "^5.0.0",
+ "tsup": "^8.4.0",
+ "typescript": "^5.7.0",
+ "vitest": "^3.1.0",
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
+ "svelte-check": "^4.0.0"
+ }
+}
diff --git a/packages/sdk-svelte/src/index.ts b/packages/sdk-svelte/src/index.ts
new file mode 100644
index 0000000..0541b81
--- /dev/null
+++ b/packages/sdk-svelte/src/index.ts
@@ -0,0 +1,6 @@
+export { useWraith } from './primitives/useWraith.js';
+export { useStellarStealthKeys } from './primitives/useStellarStealthKeys.js';
+export { useEvmStealthKeys } from './primitives/useEvmStealthKeys.js';
+export { useSolanaStealthKeys } from './primitives/useSolanaStealthKeys.js';
+export { useStealthMetaAddress } from './primitives/useStealthMetaAddress.js';
+export type { ChainType } from './primitives/useStealthMetaAddress.js';
diff --git a/packages/sdk-svelte/src/primitives/useEvmStealthKeys.ts b/packages/sdk-svelte/src/primitives/useEvmStealthKeys.ts
new file mode 100644
index 0000000..b462124
--- /dev/null
+++ b/packages/sdk-svelte/src/primitives/useEvmStealthKeys.ts
@@ -0,0 +1,178 @@
+import { writable, readonly } from 'svelte/store';
+import {
+ deriveStealthKeys as evmDeriveKeys,
+ generateStealthAddress as evmGenerateAddress,
+ checkStealthAddress as evmCheckAddress,
+ scanAnnouncements as evmScan,
+ deriveStealthPrivateKey,
+ encodeStealthMetaAddress,
+ decodeStealthMetaAddress,
+ fetchAnnouncements,
+} from '@wraith-protocol/sdk/chains/evm';
+import type {
+ HexString,
+ StealthKeys,
+ GeneratedStealthAddress,
+ Announcement,
+ MatchedAnnouncement,
+ StealthMetaAddress,
+} from '@wraith-protocol/sdk/chains/evm';
+
+export function useEvmStealthKeys() {
+ const _keys = writable(null);
+ const _stealthAddress = writable(null);
+ const _announcements = writable([]);
+ const _matched = writable([]);
+ const _metaAddress = writable(null);
+ const _loading = writable(false);
+ const _error = writable(null);
+
+ function deriveKeys(signature: HexString): StealthKeys {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const k = evmDeriveKeys(signature);
+ _keys.set(k);
+ return k;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Key derivation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function generateAddress(
+ spendingPubKey: HexString,
+ viewingPubKey: HexString,
+ ephemeralPrivateKey?: HexString,
+ ): GeneratedStealthAddress {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const addr = evmGenerateAddress(spendingPubKey, viewingPubKey, ephemeralPrivateKey);
+ _stealthAddress.set(addr);
+ return addr;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Address generation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function checkAddress(
+ ephemeralPubKey: HexString,
+ viewingKey: HexString,
+ spendingPubKey: HexString,
+ viewTag: number,
+ ) {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return evmCheckAddress(ephemeralPubKey, viewingKey, spendingPubKey, viewTag);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Address check failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function derivePrivateKey(
+ spendingKey: HexString,
+ ephemeralPubKey: HexString,
+ viewingKey: HexString,
+ ): HexString {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return deriveStealthPrivateKey(spendingKey, ephemeralPubKey, viewingKey);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Private key derivation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function encodeMetaAddress(spendingPubKey: HexString, viewingPubKey: HexString): string {
+ try {
+ const encoded = encodeStealthMetaAddress(spendingPubKey, viewingPubKey);
+ _metaAddress.set(encoded);
+ return encoded;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Meta address encoding failed');
+ throw e;
+ }
+ }
+
+ function decodeMetaAddress(address: string): StealthMetaAddress {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return decodeStealthMetaAddress(address);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Meta address decoding failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function fetchAnnouncementsList(
+ chain: string,
+ subgraphUrl?: string,
+ ): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const list = await fetchAnnouncements(chain, subgraphUrl);
+ _announcements.set(list);
+ return list;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to fetch announcements');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function scanAnnouncements(
+ announcementsList: Announcement[],
+ viewingKey: HexString,
+ spendingPubKey: HexString,
+ spendingKey: HexString,
+ ): MatchedAnnouncement[] {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const result = evmScan(announcementsList, viewingKey, spendingPubKey, spendingKey);
+ _matched.set(result);
+ return result;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Scan failed');
+ throw e;
+ } finally {
+ _loading.set(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-svelte/src/primitives/useSolanaStealthKeys.ts b/packages/sdk-svelte/src/primitives/useSolanaStealthKeys.ts
new file mode 100644
index 0000000..93c693d
--- /dev/null
+++ b/packages/sdk-svelte/src/primitives/useSolanaStealthKeys.ts
@@ -0,0 +1,174 @@
+import { writable, readonly } from 'svelte/store';
+import {
+ deriveStealthKeys as solanaDeriveKeys,
+ generateStealthAddress as solanaGenerateAddress,
+ checkStealthAddress as solanaCheckAddress,
+ scanAnnouncements as solanaScan,
+ deriveStealthPrivateScalar,
+ encodeStealthMetaAddress,
+ decodeStealthMetaAddress,
+ fetchAnnouncements,
+} from '@wraith-protocol/sdk/chains/solana';
+import type {
+ StealthKeys,
+ GeneratedStealthAddress,
+ Announcement,
+ MatchedAnnouncement,
+ StealthMetaAddress,
+} from '@wraith-protocol/sdk/chains/solana';
+
+export function useSolanaStealthKeys() {
+ const _keys = writable(null);
+ const _stealthAddress = writable(null);
+ const _announcements = writable([]);
+ const _matched = writable([]);
+ const _metaAddress = writable(null);
+ const _loading = writable(false);
+ const _error = writable(null);
+
+ function deriveKeys(signature: Uint8Array): StealthKeys {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const k = solanaDeriveKeys(signature);
+ _keys.set(k);
+ return k;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Key derivation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function generateAddress(
+ spendingPubKey: Uint8Array,
+ viewingPubKey: Uint8Array,
+ ephemeralSeed?: Uint8Array,
+ ): GeneratedStealthAddress {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const addr = solanaGenerateAddress(spendingPubKey, viewingPubKey, ephemeralSeed);
+ _stealthAddress.set(addr);
+ return addr;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Address generation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function checkAddress(
+ ephemeralPubKey: Uint8Array,
+ viewingKey: Uint8Array,
+ spendingPubKey: Uint8Array,
+ viewTag: number,
+ ) {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return solanaCheckAddress(ephemeralPubKey, viewingKey, spendingPubKey, viewTag);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Address check failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function derivePrivateScalar(
+ spendingScalar: bigint,
+ viewingKey: Uint8Array,
+ ephemeralPubKey: Uint8Array,
+ ): bigint {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return deriveStealthPrivateScalar(spendingScalar, viewingKey, ephemeralPubKey);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Private scalar derivation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function encodeMetaAddress(spendingPubKey: Uint8Array, viewingPubKey: Uint8Array): string {
+ try {
+ const encoded = encodeStealthMetaAddress(spendingPubKey, viewingPubKey);
+ _metaAddress.set(encoded);
+ return encoded;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Meta address encoding failed');
+ throw e;
+ }
+ }
+
+ function decodeMetaAddress(address: string): StealthMetaAddress {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return decodeStealthMetaAddress(address);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Meta address decoding failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function fetchAnnouncementsList(chain?: string, rpcUrl?: string): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const list = await fetchAnnouncements(chain, rpcUrl);
+ _announcements.set(list);
+ return list;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to fetch announcements');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function scanAnnouncements(
+ announcementsList: Announcement[],
+ viewingKey: Uint8Array,
+ spendingPubKey: Uint8Array,
+ spendingScalar: bigint,
+ ): MatchedAnnouncement[] {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const result = solanaScan(announcementsList, viewingKey, spendingPubKey, spendingScalar);
+ _matched.set(result);
+ return result;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Scan failed');
+ throw e;
+ } finally {
+ _loading.set(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-svelte/src/primitives/useStealthMetaAddress.ts b/packages/sdk-svelte/src/primitives/useStealthMetaAddress.ts
new file mode 100644
index 0000000..76042a1
--- /dev/null
+++ b/packages/sdk-svelte/src/primitives/useStealthMetaAddress.ts
@@ -0,0 +1,118 @@
+import { writable, readonly, get } from 'svelte/store';
+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 = writable(null);
+ const _decoded = writable(null);
+ const _chain = writable('evm');
+ const _error = writable(null);
+
+ function getPrefix(chainType: ChainType): string {
+ return CHAIN_PREFIXES[chainType];
+ }
+
+ function setChain(chainType: ChainType) {
+ _chain.set(chainType);
+ }
+
+ function encode(
+ spendingPubKey: HexString | Uint8Array,
+ viewingPubKey: HexString | Uint8Array,
+ chainType?: ChainType,
+ ): string {
+ _error.set(null);
+ const c = chainType ?? get(_chain);
+ 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.set(result);
+ _chain.set(c);
+ return result;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Encoding failed');
+ throw e;
+ }
+ }
+
+ function decode(address: string): AnyStealthMetaAddress {
+ _error.set(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.set(result);
+ _chain.set(c);
+ return result;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Decoding failed');
+ 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-svelte/src/primitives/useStellarStealthKeys.ts b/packages/sdk-svelte/src/primitives/useStellarStealthKeys.ts
new file mode 100644
index 0000000..c8340db
--- /dev/null
+++ b/packages/sdk-svelte/src/primitives/useStellarStealthKeys.ts
@@ -0,0 +1,177 @@
+import { writable, readonly, get } from 'svelte/store';
+import {
+ deriveStealthKeys as stellarDeriveKeys,
+ generateStealthAddress as stellarGenerateAddress,
+ checkStealthAddress as stellarCheckAddress,
+ scanAnnouncements as stellarScan,
+ deriveStealthPrivateScalar,
+ encodeStealthMetaAddress,
+ decodeStealthMetaAddress,
+ fetchAnnouncements,
+} from '@wraith-protocol/sdk/chains/stellar';
+import type {
+ StealthKeys,
+ GeneratedStealthAddress,
+ Announcement,
+ MatchedAnnouncement,
+ StealthMetaAddress,
+} from '@wraith-protocol/sdk/chains/stellar';
+
+export function useStellarStealthKeys() {
+ const _keys = writable(null);
+ const _stealthAddress = writable(null);
+ const _announcements = writable([]);
+ const _matched = writable([]);
+ const _metaAddress = writable(null);
+ const _loading = writable(false);
+ const _error = writable(null);
+
+ function deriveKeys(signature: Uint8Array): StealthKeys {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const k = stellarDeriveKeys(signature);
+ _keys.set(k);
+ return k;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Key derivation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function generateAddress(
+ spendingPubKey: Uint8Array,
+ viewingPubKey: Uint8Array,
+ ephemeralSeed?: Uint8Array,
+ ): GeneratedStealthAddress {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const addr = stellarGenerateAddress(spendingPubKey, viewingPubKey, ephemeralSeed);
+ _stealthAddress.set(addr);
+ return addr;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Address generation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function checkAddress(
+ ephemeralPubKey: Uint8Array,
+ viewingKey: Uint8Array,
+ spendingPubKey: Uint8Array,
+ viewTag: number,
+ ) {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return stellarCheckAddress(ephemeralPubKey, viewingKey, spendingPubKey, viewTag);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Address check failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function derivePrivateScalar(
+ spendingScalar: bigint,
+ viewingKey: Uint8Array,
+ ephemeralPubKey: Uint8Array,
+ ): bigint {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return deriveStealthPrivateScalar(spendingScalar, viewingKey, ephemeralPubKey);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Private scalar derivation failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function encodeMetaAddress(spendingPubKey: Uint8Array, viewingPubKey: Uint8Array): string {
+ try {
+ const encoded = encodeStealthMetaAddress(spendingPubKey, viewingPubKey);
+ _metaAddress.set(encoded);
+ return encoded;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Meta address encoding failed');
+ throw e;
+ }
+ }
+
+ function decodeMetaAddress(address: string): StealthMetaAddress {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ return decodeStealthMetaAddress(address);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Meta address decoding failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function fetchAnnouncementsList(
+ chain?: string,
+ sorobanUrl?: string,
+ ): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const list = await fetchAnnouncements(chain, sorobanUrl);
+ _announcements.set(list);
+ return list;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to fetch announcements');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ function scanAnnouncements(
+ announcementsList: Announcement[],
+ viewingKey: Uint8Array,
+ spendingPubKey: Uint8Array,
+ spendingScalar: bigint,
+ ): MatchedAnnouncement[] {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const result = stellarScan(announcementsList, viewingKey, spendingPubKey, spendingScalar);
+ _matched.set(result);
+ return result;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Scan failed');
+ throw e;
+ } finally {
+ _loading.set(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-svelte/src/primitives/useWraith.ts b/packages/sdk-svelte/src/primitives/useWraith.ts
new file mode 100644
index 0000000..35cddc7
--- /dev/null
+++ b/packages/sdk-svelte/src/primitives/useWraith.ts
@@ -0,0 +1,153 @@
+import { writable, readonly, get } from 'svelte/store';
+import { Wraith, WraithAgent, Chain } from '@wraith-protocol/sdk';
+import type { WraithConfig, AgentConfig, AgentInfo, ChatResponse } from '@wraith-protocol/sdk';
+
+export function useWraith(config?: WraithConfig) {
+ const _client = writable(null);
+ const _agent = writable(null);
+ const _agentInfo = writable(null);
+ const _agents = writable([]);
+ const _loading = writable(false);
+ const _error = writable(null);
+
+ function init(cfg: WraithConfig) {
+ _client.set(new Wraith(cfg));
+ }
+
+ if (config) {
+ init(config);
+ }
+
+ function requireClient(): Wraith {
+ const c = get(_client);
+ if (!c) throw new Error('Wraith client not initialized');
+ return c;
+ }
+
+ async function createAgent(cfg: AgentConfig): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const a = await requireClient().createAgent(cfg);
+ _agent.set(a);
+ _agentInfo.set(a.info);
+ return a;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to create agent');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function getAgent(agentId: string): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const a = requireClient().agent(agentId);
+ _agent.set(a);
+ _agentInfo.set(a.info);
+ return a;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to get agent');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function getAgentByWallet(wallet: string): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const a = await requireClient().getAgentByWallet(wallet);
+ _agent.set(a);
+ _agentInfo.set(a.info);
+ return a;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to get agent by wallet');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function getAgentByName(name: string): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const a = await requireClient().getAgentByName(name);
+ _agent.set(a);
+ _agentInfo.set(a.info);
+ return a;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to get agent by name');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function listAgents(): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const list = await requireClient().listAgents();
+ _agents.set(list);
+ return list;
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to list agents');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function chat(message: string, conversationId?: string): Promise {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const a = get(_agent);
+ if (!a) throw new Error('No active agent');
+ return await a.chat(message, conversationId);
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Chat failed');
+ throw e;
+ } finally {
+ _loading.set(false);
+ }
+ }
+
+ async function getBalance(): Promise<{ native: string; tokens: Record }> {
+ _loading.set(true);
+ _error.set(null);
+ try {
+ const a = get(_agent);
+ if (!a) throw new Error('No active agent');
+ return await a.getBalance();
+ } catch (e) {
+ _error.set(e instanceof Error ? e.message : 'Failed to get balance');
+ throw e;
+ } finally {
+ _loading.set(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-svelte/test/useEvmStealthKeys.test.ts b/packages/sdk-svelte/test/useEvmStealthKeys.test.ts
new file mode 100644
index 0000000..cc18119
--- /dev/null
+++ b/packages/sdk-svelte/test/useEvmStealthKeys.test.ts
@@ -0,0 +1,39 @@
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+
+vi.mock('@wraith-protocol/sdk/chains/evm', () => ({
+ deriveStealthKeys: vi.fn().mockReturnValue({
+ spendingKey: '0x' + 'ab'.repeat(32),
+ viewingKey: '0x' + 'cd'.repeat(32),
+ spendingPubKey: '0x' + 'ef'.repeat(33),
+ viewingPubKey: '0x' + '01'.repeat(33),
+ }),
+ generateStealthAddress: vi.fn().mockReturnValue({
+ stealthAddress: '0x' + '02'.repeat(20),
+ ephemeralPubKey: '0x' + '03'.repeat(33),
+ viewTag: 42,
+ }),
+ 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('exports the function', async () => {
+ const mod = await import('../src/primitives/useEvmStealthKeys.js');
+ expect(typeof mod.useEvmStealthKeys).toBe('function');
+ });
+});
diff --git a/packages/sdk-svelte/test/useSolanaStealthKeys.test.ts b/packages/sdk-svelte/test/useSolanaStealthKeys.test.ts
new file mode 100644
index 0000000..d6e884d
--- /dev/null
+++ b/packages/sdk-svelte/test/useSolanaStealthKeys.test.ts
@@ -0,0 +1,43 @@
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+
+vi.mock('@wraith-protocol/sdk/chains/solana', () => ({
+ deriveStealthKeys: vi.fn().mockReturnValue({
+ spendingKey: new Uint8Array(32),
+ spendingScalar: 1n,
+ viewingKey: new Uint8Array(32),
+ viewingScalar: 2n,
+ spendingPubKey: new Uint8Array(32),
+ viewingPubKey: new Uint8Array(32),
+ }),
+ generateStealthAddress: vi.fn().mockReturnValue({
+ stealthAddress: 'FAK9FSoLAnAAddresS11111111111111111111111111111',
+ ephemeralPubKey: new Uint8Array(32),
+ viewTag: 42,
+ }),
+ 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('exports the function', async () => {
+ const mod = await import('../src/primitives/useSolanaStealthKeys.js');
+ expect(typeof mod.useSolanaStealthKeys).toBe('function');
+ });
+});
diff --git a/packages/sdk-svelte/test/useStealthMetaAddress.test.ts b/packages/sdk-svelte/test/useStealthMetaAddress.test.ts
new file mode 100644
index 0000000..ebebf56
--- /dev/null
+++ b/packages/sdk-svelte/test/useStealthMetaAddress.test.ts
@@ -0,0 +1,42 @@
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+
+vi.mock('@wraith-protocol/sdk/chains/evm', () => ({
+ encodeStealthMetaAddress: vi.fn().mockReturnValue('st:eth:0x' + 'ab'.repeat(66)),
+ 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('st:xlm:' + 'cd'.repeat(64)),
+ 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('st:sol:' + 'ef'.repeat(64)),
+ 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('exports the function', async () => {
+ const mod = await import('../src/primitives/useStealthMetaAddress.js');
+ expect(typeof mod.useStealthMetaAddress).toBe('function');
+ });
+});
diff --git a/packages/sdk-svelte/test/useStellarStealthKeys.test.ts b/packages/sdk-svelte/test/useStellarStealthKeys.test.ts
new file mode 100644
index 0000000..a275211
--- /dev/null
+++ b/packages/sdk-svelte/test/useStellarStealthKeys.test.ts
@@ -0,0 +1,43 @@
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+
+vi.mock('@wraith-protocol/sdk/chains/stellar', () => ({
+ deriveStealthKeys: vi.fn().mockReturnValue({
+ spendingKey: new Uint8Array(32),
+ spendingScalar: 1n,
+ viewingKey: new Uint8Array(32),
+ viewingScalar: 2n,
+ spendingPubKey: new Uint8Array(32),
+ viewingPubKey: new Uint8Array(32),
+ }),
+ generateStealthAddress: vi.fn().mockReturnValue({
+ stealthAddress: 'GABCDEF1234567890',
+ ephemeralPubKey: new Uint8Array(32),
+ viewTag: 42,
+ }),
+ 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('exports the function', async () => {
+ const mod = await import('../src/primitives/useStellarStealthKeys.js');
+ expect(typeof mod.useStellarStealthKeys).toBe('function');
+ });
+});
diff --git a/packages/sdk-svelte/test/useWraith.test.ts b/packages/sdk-svelte/test/useWraith.test.ts
new file mode 100644
index 0000000..6210b5c
--- /dev/null
+++ b/packages/sdk-svelte/test/useWraith.test.ts
@@ -0,0 +1,38 @@
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+
+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('exports the function', async () => {
+ const mod = await import('../src/primitives/useWraith.js');
+ expect(typeof mod.useWraith).toBe('function');
+ });
+});
diff --git a/packages/sdk-svelte/tsconfig.json b/packages/sdk-svelte/tsconfig.json
new file mode 100644
index 0000000..93e9fc0
--- /dev/null
+++ b/packages/sdk-svelte/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "target": "ES2022",
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "declaration": true,
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "outDir": "dist"
+ },
+ "include": ["src/**/*.ts"],
+ "exclude": ["node_modules", "dist", "test"]
+}
diff --git a/packages/sdk-svelte/tsup.config.ts b/packages/sdk-svelte/tsup.config.ts
new file mode 100644
index 0000000..4cbb94d
--- /dev/null
+++ b/packages/sdk-svelte/tsup.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from 'tsup';
+
+export default defineConfig({
+ entry: {
+ index: 'src/index.ts',
+ },
+ format: ['esm'],
+ dts: false,
+ splitting: true,
+ clean: true,
+ treeshake: true,
+ external: ['svelte', '@wraith-protocol/sdk'],
+});
diff --git a/packages/sdk-svelte/vitest.config.ts b/packages/sdk-svelte/vitest.config.ts
new file mode 100644
index 0000000..51deb5f
--- /dev/null
+++ b/packages/sdk-svelte/vitest.config.ts
@@ -0,0 +1,16 @@
+import { defineConfig } from 'vitest/config';
+import { svelte } from '@sveltejs/vite-plugin-svelte';
+import path from 'path';
+
+export default defineConfig({
+ plugins: [svelte()],
+ test: {
+ globals: true,
+ environment: 'node',
+ },
+ resolve: {
+ alias: {
+ '@wraith-protocol/sdk': path.resolve(__dirname, '../../src'),
+ },
+ },
+});
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..0925ba8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,10 +1,11 @@
-lockfileVersion: '9.0'
+lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
+
.:
dependencies:
'@noble/curves':
@@ -15,17 +16,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,2668 +35,202 @@ 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)
-
-packages:
- '@adraffy/ens-normalize@1.11.1':
- resolution:
- {
- integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==,
- }
-
- '@babel/code-frame@7.29.0':
- resolution:
- {
- integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==,
- }
- engines: { node: '>=6.9.0' }
-
- '@babel/helper-validator-identifier@7.28.5':
- resolution:
- {
- integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==,
- }
- engines: { node: '>=6.9.0' }
-
- '@babel/runtime@7.29.2':
- resolution:
- {
- integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==,
- }
- engines: { node: '>=6.9.0' }
-
- '@commitlint/cli@19.8.1':
- resolution:
- {
- integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==,
- }
- engines: { node: '>=v18' }
- hasBin: true
-
- '@commitlint/config-conventional@19.8.1':
- resolution:
- {
- integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/config-validator@19.8.1':
- resolution:
- {
- integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/ensure@19.8.1':
- resolution:
- {
- integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/execute-rule@19.8.1':
- resolution:
- {
- integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/format@19.8.1':
- resolution:
- {
- integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/is-ignored@19.8.1':
- resolution:
- {
- integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/lint@19.8.1':
- resolution:
- {
- integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/load@19.8.1':
- resolution:
- {
- integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/message@19.8.1':
- resolution:
- {
- integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/parse@19.8.1':
- resolution:
- {
- integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/read@19.8.1':
- resolution:
- {
- integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/resolve-extends@19.8.1':
- resolution:
- {
- integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/rules@19.8.1':
- resolution:
- {
- integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/to-lines@19.8.1':
- resolution:
- {
- integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/top-level@19.8.1':
- resolution:
- {
- integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==,
- }
- engines: { node: '>=v18' }
-
- '@commitlint/types@19.8.1':
- resolution:
- {
- integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==,
- }
- engines: { node: '>=v18' }
-
- '@esbuild/aix-ppc64@0.27.7':
- resolution:
- {
- integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==,
- }
- engines: { node: '>=18' }
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.27.7':
- resolution:
- {
- integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==,
- }
- engines: { node: '>=18' }
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.27.7':
- resolution:
- {
- integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.27.7':
- resolution:
- {
- integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.27.7':
- resolution:
- {
- integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.27.7':
- resolution:
- {
- integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==,
- }
- engines: { node: '>=18' }
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.27.7':
- resolution:
- {
- integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==,
- }
- engines: { node: '>=18' }
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.27.7':
- resolution:
- {
- integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==,
- }
- engines: { node: '>=18' }
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.27.7':
- resolution:
- {
- integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==,
- }
- engines: { node: '>=18' }
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.27.7':
- resolution:
- {
- integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==,
- }
- engines: { node: '>=18' }
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.27.7':
- resolution:
- {
- integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==,
- }
- engines: { node: '>=18' }
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.27.7':
- resolution:
- {
- integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==,
- }
- engines: { node: '>=18' }
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.27.7':
- resolution:
- {
- integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.27.7':
- resolution:
- {
- integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.27.7':
- resolution:
- {
- integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openharmony-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [openharmony]
-
- '@esbuild/sunos-x64@0.27.7':
- resolution:
- {
- integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.27.7':
- resolution:
- {
- integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==,
- }
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.27.7':
- resolution:
- {
- integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==,
- }
- engines: { node: '>=18' }
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.27.7':
- resolution:
- {
- integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==,
- }
- engines: { node: '>=18' }
- cpu: [x64]
- os: [win32]
-
- '@jridgewell/gen-mapping@0.3.13':
- 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==,
- }
-
- '@jridgewell/trace-mapping@0.3.31':
- resolution:
- {
- integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
- }
-
- '@noble/ciphers@1.3.0':
- resolution:
- {
- integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==,
- }
- engines: { node: ^14.21.3 || >=16 }
-
- '@noble/curves@1.9.1':
- resolution:
- {
- integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==,
- }
- engines: { node: ^14.21.3 || >=16 }
-
- '@noble/curves@1.9.7':
- resolution:
- {
- integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==,
- }
- engines: { node: ^14.21.3 || >=16 }
-
- '@noble/hashes@1.8.0':
- resolution:
- {
- integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==,
- }
- engines: { node: ^14.21.3 || >=16 }
-
- '@rollup/rollup-android-arm-eabi@4.60.1':
- resolution:
- {
- integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==,
- }
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.60.1':
- resolution:
- {
- integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==,
- }
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-darwin-arm64@4.60.1':
- resolution:
- {
- integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==,
- }
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.60.1':
- resolution:
- {
- integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==,
- }
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-freebsd-arm64@4.60.1':
- resolution:
- {
- integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==,
- }
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.60.1':
- resolution:
- {
- integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==,
- }
- 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]
-
- '@rollup/rollup-linux-arm-musleabihf@4.60.1':
- resolution:
- {
- integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==,
- }
- cpu: [arm]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-arm64-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==,
- }
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-arm64-musl@4.60.1':
- resolution:
- {
- integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==,
- }
- cpu: [arm64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-loong64-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==,
- }
- cpu: [loong64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-loong64-musl@4.60.1':
- resolution:
- {
- integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==,
- }
- cpu: [loong64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-ppc64-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==,
- }
- cpu: [ppc64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-ppc64-musl@4.60.1':
- resolution:
- {
- integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==,
- }
- cpu: [ppc64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-riscv64-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==,
- }
- cpu: [riscv64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-riscv64-musl@4.60.1':
- resolution:
- {
- integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==,
- }
- cpu: [riscv64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-s390x-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==,
- }
- cpu: [s390x]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-x64-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==,
- }
- cpu: [x64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-x64-musl@4.60.1':
- resolution:
- {
- integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==,
- }
- cpu: [x64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-openbsd-x64@4.60.1':
- resolution:
- {
- integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==,
- }
- cpu: [x64]
- os: [openbsd]
-
- '@rollup/rollup-openharmony-arm64@4.60.1':
- resolution:
- {
- integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==,
- }
- cpu: [arm64]
- os: [openharmony]
-
- '@rollup/rollup-win32-arm64-msvc@4.60.1':
- resolution:
- {
- integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==,
- }
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.60.1':
- resolution:
- {
- integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==,
- }
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-x64-gnu@4.60.1':
- resolution:
- {
- integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==,
- }
- cpu: [x64]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.60.1':
- resolution:
- {
- integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==,
- }
- cpu: [x64]
- os: [win32]
-
- '@scure/base@1.2.6':
- resolution:
- {
- integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==,
- }
-
- '@scure/bip32@1.7.0':
- resolution:
- {
- integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==,
- }
-
- '@scure/bip39@1.6.0':
- resolution:
- {
- integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==,
- }
-
- '@solana/buffer-layout@4.0.1':
- resolution:
- {
- integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==,
- }
- engines: { node: '>=5.10' }
-
- '@solana/codecs-core@2.3.0':
- resolution:
- {
- integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==,
- }
- engines: { node: '>=20.18.0' }
- peerDependencies:
- typescript: '>=5.3.3'
-
- '@solana/codecs-numbers@2.3.0':
- resolution:
- {
- integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==,
- }
- engines: { node: '>=20.18.0' }
- peerDependencies:
- typescript: '>=5.3.3'
-
- '@solana/errors@2.3.0':
- resolution:
- {
- integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==,
- }
- engines: { node: '>=20.18.0' }
- hasBin: true
- peerDependencies:
- typescript: '>=5.3.3'
-
- '@solana/web3.js@1.98.4':
- resolution:
- {
- integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==,
- }
-
- '@stellar/js-xdr@3.1.2':
- resolution:
- {
- integrity: sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==,
- }
-
- '@stellar/stellar-base@13.1.0':
- resolution:
- {
- integrity: sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==,
- }
- engines: { node: '>=18.0.0' }
-
- '@stellar/stellar-sdk@13.3.0':
- resolution:
- {
- integrity: sha512-8+GHcZLp+mdin8gSjcgfb/Lb6sSMYRX6Nf/0LcSJxvjLQR0XHpjGzOiRbYb2jSXo51EnA6kAV5j+4Pzh5OUKUg==,
- }
- engines: { node: '>=18.0.0' }
-
- '@swc/helpers@0.5.21':
- resolution:
- {
- integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==,
- }
-
- '@types/chai@5.2.3':
- resolution:
- {
- integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==,
- }
-
- '@types/connect@3.4.38':
- resolution:
- {
- integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==,
- }
-
- '@types/conventional-commits-parser@5.0.2':
- resolution:
- {
- integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==,
- }
-
- '@types/deep-eql@4.0.2':
- resolution:
- {
- integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==,
- }
-
- '@types/estree@1.0.8':
- resolution:
- {
- integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==,
- }
-
- '@types/node@12.20.55':
- resolution:
- {
- integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==,
- }
-
- '@types/node@25.6.0':
- resolution:
- {
- integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==,
- }
-
- '@types/uuid@10.0.0':
- resolution:
- {
- integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==,
- }
-
- '@types/ws@7.4.7':
- resolution:
- {
- integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==,
- }
-
- '@types/ws@8.18.1':
- resolution:
- {
- integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==,
- }
-
- '@vitest/expect@3.2.4':
- resolution:
- {
- integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==,
- }
-
- '@vitest/mocker@3.2.4':
- resolution:
- {
- integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==,
- }
- peerDependencies:
- msw: ^2.4.9
- vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
-
- '@vitest/pretty-format@3.2.4':
- resolution:
- {
- integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==,
- }
-
- '@vitest/runner@3.2.4':
- resolution:
- {
- integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==,
- }
-
- '@vitest/snapshot@3.2.4':
- resolution:
- {
- integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==,
- }
-
- '@vitest/spy@3.2.4':
- resolution:
- {
- integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==,
- }
-
- '@vitest/utils@3.2.4':
- resolution:
- {
- integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==,
- }
-
- JSONStream@1.3.5:
- resolution:
- {
- integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==,
- }
- hasBin: true
-
- abitype@1.2.3:
- resolution:
- {
- integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==,
- }
- peerDependencies:
- typescript: '>=5.0.4'
- zod: ^3.22.0 || ^4.0.0
- peerDependenciesMeta:
- typescript:
- optional: true
- zod:
- optional: true
-
- acorn@8.16.0:
- resolution:
- {
- integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==,
- }
- engines: { node: '>=0.4.0' }
- hasBin: true
-
- agentkeepalive@4.6.0:
- resolution:
- {
- integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==,
- }
- engines: { node: '>= 8.0.0' }
-
- ajv@8.18.0:
- resolution:
- {
- integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==,
- }
-
- ansi-regex@5.0.1:
- resolution:
- {
- integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==,
- }
- engines: { node: '>=8' }
-
- ansi-styles@4.3.0:
- resolution:
- {
- integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==,
- }
- engines: { node: '>=8' }
-
- any-promise@1.3.0:
- resolution:
- {
- integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==,
- }
-
- argparse@2.0.1:
- resolution:
- {
- integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
- }
-
- array-ify@1.0.0:
- resolution:
- {
- integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==,
- }
-
- assertion-error@2.0.1:
- resolution:
- {
- integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==,
- }
- engines: { node: '>=12' }
-
- asynckit@0.4.0:
- resolution:
- {
- integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==,
- }
-
- available-typed-arrays@1.0.7:
- resolution:
- {
- integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==,
- }
- engines: { node: '>= 0.4' }
-
- axios@1.15.0:
- resolution:
- {
- integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==,
- }
-
- bare-addon-resolve@1.10.0:
- resolution:
- {
- integrity: sha512-sSd0jieRJlDaODOzj0oe0RjFVC1QI0ZIjGIdPkbrTXsdVVtENg14c+lHHAhHwmWCZ2nQlMhy8jA3Y5LYPc/isA==,
- }
- peerDependencies:
- bare-url: '*'
- peerDependenciesMeta:
- bare-url:
- optional: true
-
- bare-module-resolve@1.12.1:
- resolution:
- {
- integrity: sha512-hbmAPyFpEq8FoZMd5sFO3u6MC5feluWoGE8YKlA8fCrl6mNtx68Wjg4DTiDJcqRJaovTvOYKfYngoBUnbaT7eg==,
- }
- peerDependencies:
- bare-url: '*'
- peerDependenciesMeta:
- bare-url:
- optional: true
-
- bare-semver@1.0.3:
- resolution:
- {
- integrity: sha512-HS/A30bi2+PiRJfU6R4+Kp+6KeLSCSByjYM2iiobOKzLAvtu1CT+S8xWfiU7wz0erknjkUoC+yXy108tzIuP5Q==,
- }
-
- base-x@3.0.11:
- resolution:
- {
- integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==,
- }
-
- base32.js@0.1.0:
- resolution:
- {
- integrity: sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==,
- }
- engines: { node: '>=0.12.0' }
-
- base64-js@1.5.1:
- resolution:
- {
- integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==,
- }
-
- bignumber.js@9.3.1:
- resolution:
- {
- integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==,
- }
-
- bn.js@5.2.3:
- resolution:
- {
- integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==,
- }
-
- borsh@0.7.0:
- resolution:
- {
- integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==,
- }
-
- bs58@4.0.1:
- resolution:
- {
- integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==,
- }
-
- buffer@6.0.3:
- resolution:
- {
- integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==,
- }
-
- bufferutil@4.1.0:
- resolution:
- {
- integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==,
- }
- engines: { node: '>=6.14.2' }
-
- bundle-require@5.1.0:
- resolution:
- {
- integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
- peerDependencies:
- esbuild: '>=0.18'
-
- cac@6.7.14:
- resolution:
- {
- integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==,
- }
- engines: { node: '>=8' }
-
- call-bind-apply-helpers@1.0.2:
- resolution:
- {
- integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==,
- }
- engines: { node: '>= 0.4' }
-
- call-bind@1.0.9:
- resolution:
- {
- integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==,
- }
- engines: { node: '>= 0.4' }
-
- call-bound@1.0.4:
- resolution:
- {
- integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==,
- }
- engines: { node: '>= 0.4' }
-
- callsites@3.1.0:
- resolution:
- {
- integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==,
- }
- engines: { node: '>=6' }
-
- chai@5.3.3:
- resolution:
- {
- integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==,
- }
- engines: { node: '>=18' }
-
- chalk@5.6.2:
- resolution:
- {
- integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==,
- }
- engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
-
- check-error@2.1.3:
- resolution:
- {
- integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==,
- }
- engines: { node: '>= 16' }
-
- chokidar@4.0.3:
- resolution:
- {
- integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==,
- }
- engines: { node: '>= 14.16.0' }
-
- cliui@8.0.1:
- resolution:
- {
- integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==,
- }
- engines: { node: '>=12' }
-
- color-convert@2.0.1:
- resolution:
- {
- integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==,
- }
- engines: { node: '>=7.0.0' }
-
- color-name@1.1.4:
- resolution:
- {
- integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==,
- }
-
- combined-stream@1.0.8:
- resolution:
- {
- integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==,
- }
- engines: { node: '>= 0.8' }
-
- commander@14.0.3:
- resolution:
- {
- integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==,
- }
- engines: { node: '>=20' }
-
- commander@2.20.3:
- resolution:
- {
- integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==,
- }
-
- commander@4.1.1:
- resolution:
- {
- integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==,
- }
- engines: { node: '>= 6' }
-
- compare-func@2.0.0:
- resolution:
- {
- integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==,
- }
-
- confbox@0.1.8:
- resolution:
- {
- integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==,
- }
-
- consola@3.4.2:
- resolution:
- {
- integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==,
- }
- engines: { node: ^14.18.0 || >=16.10.0 }
-
- conventional-changelog-angular@7.0.0:
- resolution:
- {
- integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==,
- }
- engines: { node: '>=16' }
-
- conventional-changelog-conventionalcommits@7.0.2:
- resolution:
- {
- integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==,
- }
- engines: { node: '>=16' }
-
- conventional-commits-parser@5.0.0:
- resolution:
- {
- integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==,
- }
- engines: { node: '>=16' }
- hasBin: true
-
- cosmiconfig-typescript-loader@6.3.0:
- resolution:
- {
- integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==,
- }
- engines: { node: '>=v18' }
- peerDependencies:
- '@types/node': '*'
- cosmiconfig: '>=9'
- typescript: '>=5'
-
- cosmiconfig@9.0.1:
- resolution:
- {
- integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==,
- }
- engines: { node: '>=14' }
- peerDependencies:
- typescript: '>=4.9.5'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- dargs@8.1.0:
- resolution:
- {
- integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==,
- }
- engines: { node: '>=12' }
-
- debug@4.4.3:
- resolution:
- {
- integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==,
- }
- engines: { node: '>=6.0' }
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- deep-eql@5.0.2:
- resolution:
- {
- integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==,
- }
- engines: { node: '>=6' }
-
- define-data-property@1.1.4:
- resolution:
- {
- integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==,
- }
- engines: { node: '>= 0.4' }
-
- delay@5.0.0:
- resolution:
- {
- integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==,
- }
- engines: { node: '>=10' }
-
- delayed-stream@1.0.0:
- resolution:
- {
- integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==,
- }
- engines: { node: '>=0.4.0' }
-
- dot-prop@5.3.0:
- resolution:
- {
- integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==,
- }
- engines: { node: '>=8' }
-
- dunder-proto@1.0.1:
- resolution:
- {
- integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==,
- }
- engines: { node: '>= 0.4' }
-
- emoji-regex@8.0.0:
- resolution:
- {
- integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==,
- }
-
- env-paths@2.2.1:
- resolution:
- {
- integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==,
- }
- engines: { node: '>=6' }
-
- error-ex@1.3.4:
- resolution:
- {
- integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==,
- }
-
- es-define-property@1.0.1:
- resolution:
- {
- integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==,
- }
- engines: { node: '>= 0.4' }
-
- es-errors@1.3.0:
- resolution:
- {
- integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==,
- }
- engines: { node: '>= 0.4' }
-
- es-module-lexer@1.7.0:
- resolution:
- {
- integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==,
- }
-
- es-object-atoms@1.1.1:
- resolution:
- {
- integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==,
- }
- engines: { node: '>= 0.4' }
-
- es-set-tostringtag@2.1.0:
- resolution:
- {
- integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==,
- }
- engines: { node: '>= 0.4' }
-
- es6-promise@4.2.8:
- resolution:
- {
- integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==,
- }
-
- es6-promisify@5.0.0:
- resolution:
- {
- integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==,
- }
-
- esbuild@0.27.7:
- resolution:
- {
- integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==,
- }
- engines: { node: '>=18' }
- hasBin: true
-
- escalade@3.2.0:
- resolution:
- {
- integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==,
- }
- engines: { node: '>=6' }
-
- estree-walker@3.0.3:
- resolution:
- {
- integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==,
- }
-
- eventemitter3@5.0.1:
- resolution:
- {
- integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==,
- }
-
- eventsource@2.0.2:
- resolution:
- {
- integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==,
- }
- engines: { node: '>=12.0.0' }
-
- expect-type@1.3.0:
- resolution:
- {
- integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==,
- }
- engines: { node: '>=12.0.0' }
-
- eyes@0.1.8:
- resolution:
- {
- integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==,
- }
- engines: { node: '> 0.1.90' }
-
- fast-deep-equal@3.1.3:
- resolution:
- {
- integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
- }
-
- fast-stable-stringify@1.0.0:
- resolution:
- {
- integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==,
- }
-
- fast-uri@3.1.0:
- resolution:
- {
- integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==,
- }
-
- fdir@6.5.0:
- resolution:
- {
- integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==,
- }
- engines: { node: '>=12.0.0' }
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
-
- feaxios@0.0.23:
- resolution:
- {
- integrity: sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==,
- }
-
- find-up@7.0.0:
- resolution:
- {
- integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==,
- }
- engines: { node: '>=18' }
-
- fix-dts-default-cjs-exports@1.0.1:
- resolution:
- {
- integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==,
- }
-
- follow-redirects@1.15.11:
- resolution:
- {
- integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==,
- }
- engines: { node: '>=4.0' }
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
-
- for-each@0.3.5:
- resolution:
- {
- integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==,
- }
- engines: { node: '>= 0.4' }
-
- form-data@4.0.5:
- resolution:
- {
- integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==,
- }
- engines: { node: '>= 6' }
-
- fsevents@2.3.3:
- resolution:
- {
- integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
- }
- engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
- os: [darwin]
-
- function-bind@1.1.2:
- resolution:
- {
- integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==,
- }
-
- get-caller-file@2.0.5:
- resolution:
- {
- integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==,
- }
- engines: { node: 6.* || 8.* || >= 10.* }
-
- get-intrinsic@1.3.0:
- resolution:
- {
- integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==,
- }
- engines: { node: '>= 0.4' }
-
- get-proto@1.0.1:
- resolution:
- {
- integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==,
- }
- engines: { node: '>= 0.4' }
-
- 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:
- resolution:
- {
- integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==,
- }
- engines: { node: '>=18' }
-
- gopd@1.2.0:
- resolution:
- {
- integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==,
- }
- engines: { node: '>= 0.4' }
-
- has-property-descriptors@1.0.2:
- resolution:
- {
- integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==,
- }
-
- has-symbols@1.1.0:
- resolution:
- {
- integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==,
- }
- engines: { node: '>= 0.4' }
-
- has-tostringtag@1.0.2:
- resolution:
- {
- integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==,
- }
- engines: { node: '>= 0.4' }
-
- hasown@2.0.2:
- resolution:
- {
- integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==,
- }
- engines: { node: '>= 0.4' }
-
- humanize-ms@1.2.1:
- resolution:
- {
- integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==,
- }
-
- husky@9.1.7:
- resolution:
- {
- integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==,
- }
- engines: { node: '>=18' }
- hasBin: true
-
- ieee754@1.2.1:
- resolution:
- {
- integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==,
- }
-
- import-fresh@3.3.1:
- resolution:
- {
- integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==,
- }
- engines: { node: '>=6' }
-
- import-meta-resolve@4.2.0:
- resolution:
- {
- integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==,
- }
-
- inherits@2.0.4:
- resolution:
- {
- integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==,
- }
-
- ini@4.1.1:
- resolution:
- {
- integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==,
- }
- engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 }
-
- is-arrayish@0.2.1:
- resolution:
- {
- integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==,
- }
-
- is-callable@1.2.7:
- resolution:
- {
- integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==,
- }
- engines: { node: '>= 0.4' }
-
- is-fullwidth-code-point@3.0.0:
- resolution:
- {
- integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==,
- }
- engines: { node: '>=8' }
-
- is-obj@2.0.0:
- resolution:
- {
- integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==,
- }
- engines: { node: '>=8' }
-
- is-retry-allowed@3.0.0:
- resolution:
- {
- integrity: sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==,
- }
- engines: { node: '>=12' }
-
- is-text-path@2.0.0:
- resolution:
- {
- integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==,
- }
- engines: { node: '>=8' }
-
- is-typed-array@1.1.15:
- resolution:
- {
- integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==,
- }
- engines: { node: '>= 0.4' }
-
- isarray@2.0.5:
- resolution:
- {
- integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==,
- }
-
- isomorphic-ws@4.0.1:
- resolution:
- {
- integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==,
- }
- peerDependencies:
- ws: '*'
-
- isows@1.0.7:
- resolution:
- {
- integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==,
- }
- peerDependencies:
- ws: '*'
-
- jayson@4.3.0:
- resolution:
- {
- integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==,
- }
- engines: { node: '>=8' }
- hasBin: true
-
- jiti@2.6.1:
- resolution:
- {
- integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==,
- }
- hasBin: true
-
- joycon@3.1.1:
- resolution:
- {
- integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==,
- }
- engines: { node: '>=10' }
-
- js-tokens@4.0.0:
- resolution:
- {
- integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==,
- }
-
- js-tokens@9.0.1:
- resolution:
- {
- integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==,
- }
-
- js-yaml@4.1.1:
- resolution:
- {
- integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==,
- }
- hasBin: true
-
- json-parse-even-better-errors@2.3.1:
- resolution:
- {
- integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==,
- }
-
- json-schema-traverse@1.0.0:
- resolution:
- {
- integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==,
- }
-
- json-stringify-safe@5.0.1:
- resolution:
- {
- integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==,
- }
-
- jsonparse@1.3.1:
- resolution:
- {
- integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==,
- }
- engines: { '0': node >= 0.2.0 }
-
- lilconfig@3.1.3:
- resolution:
- {
- integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==,
- }
- engines: { node: '>=14' }
-
- lines-and-columns@1.2.4:
- resolution:
- {
- integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==,
- }
-
- load-tsconfig@0.2.5:
- resolution:
- {
- integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
-
- locate-path@7.2.0:
- resolution:
- {
- integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
-
- lodash.camelcase@4.3.0:
- resolution:
- {
- integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==,
- }
-
- lodash.isplainobject@4.0.6:
- resolution:
- {
- integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==,
- }
-
- lodash.kebabcase@4.1.1:
- resolution:
- {
- integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==,
- }
-
- lodash.merge@4.6.2:
- resolution:
- {
- integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==,
- }
-
- lodash.mergewith@4.6.2:
- resolution:
- {
- integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==,
- }
-
- lodash.snakecase@4.1.1:
- resolution:
- {
- integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==,
- }
-
- lodash.startcase@4.4.0:
- resolution:
- {
- integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==,
- }
-
- lodash.uniq@4.5.0:
- resolution:
- {
- integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==,
- }
-
- lodash.upperfirst@4.3.1:
- resolution:
- {
- integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==,
- }
-
- loupe@3.2.1:
- resolution:
- {
- integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==,
- }
-
- magic-string@0.30.21:
- resolution:
- {
- integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==,
- }
-
- math-intrinsics@1.1.0:
- resolution:
- {
- integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
- }
- engines: { node: '>= 0.4' }
-
- meow@12.1.1:
- resolution:
- {
- integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==,
- }
- engines: { node: '>=16.10' }
-
- mime-db@1.52.0:
- resolution:
- {
- integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==,
- }
- engines: { node: '>= 0.6' }
-
- mime-types@2.1.35:
- resolution:
- {
- integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==,
- }
- engines: { node: '>= 0.6' }
-
- minimist@1.2.8:
- resolution:
- {
- integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==,
- }
-
- mlly@1.8.2:
- resolution:
- {
- integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==,
- }
-
- ms@2.1.3:
- resolution:
- {
- integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
- }
-
- 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 }
- hasBin: 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:
- resolution:
- {
- integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==,
- }
- hasBin: true
-
- object-assign@4.1.1:
- resolution:
- {
- integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==,
- }
- engines: { node: '>=0.10.0' }
-
- ox@0.14.15:
- resolution:
- {
- integrity: sha512-3TubCmbKen/cuZQzX0qDbOS5lojjdSZ90lqKxWIDWd5siuJ0IJBaTXMYs8eMPLcraqnOwGZazz3apHPGiRCkGQ==,
- }
- peerDependencies:
- typescript: '>=5.4.0'
- peerDependenciesMeta:
+ version: 3.2.6(@types/node@26.0.0)(jsdom@25.0.1)
+
+ examples/svelte-stellar-app:
+ dependencies:
+ '@wraith-protocol/sdk':
+ specifier: workspace:*
+ version: link:../..
+ '@wraith-protocol/sdk-svelte':
+ specifier: workspace:*
+ version: link:../../packages/sdk-svelte
+ svelte:
+ specifier: ^5.0.0
+ version: 5.56.4
+ devDependencies:
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^5.0.0
+ version: 5.1.1(svelte@5.56.4)(vite@6.4.3)
typescript:
- optional: true
-
- p-limit@4.0.0:
- resolution:
- {
- integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.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 }
-
- parent-module@1.0.1:
- resolution:
- {
- integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==,
- }
- engines: { node: '>=6' }
-
- parse-json@5.2.0:
- resolution:
- {
- integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==,
- }
- engines: { node: '>=8' }
-
- path-exists@5.0.0:
- resolution:
- {
- integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
-
- pathe@2.0.3:
- resolution:
- {
- integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==,
- }
-
- pathval@2.0.1:
- resolution:
- {
- integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==,
- }
- engines: { node: '>= 14.16' }
-
- picocolors@1.1.1:
- resolution:
- {
- integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==,
- }
-
- picomatch@4.0.4:
- resolution:
- {
- integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==,
- }
- engines: { node: '>=12' }
-
- pirates@4.0.7:
- resolution:
- {
- integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==,
- }
- engines: { node: '>= 6' }
-
- pkg-types@1.3.1:
- resolution:
- {
- integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==,
- }
-
- possible-typed-array-names@1.1.0:
- resolution:
- {
- integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==,
- }
- engines: { node: '>= 0.4' }
-
- 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
-
- postcss@8.5.9:
- resolution:
- {
- integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==,
- }
- engines: { node: ^10 || ^12 || >=14 }
-
- prettier@3.8.2:
- resolution:
- {
- integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==,
- }
- engines: { node: '>=14' }
- hasBin: true
-
- proxy-from-env@2.1.0:
- resolution:
- {
- integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==,
- }
- engines: { node: '>=10' }
-
- randombytes@2.1.0:
- resolution:
- {
- integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==,
- }
-
- readdirp@4.1.2:
- resolution:
- {
- integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==,
- }
- engines: { node: '>= 14.18.0' }
-
- require-addon@1.2.0:
- resolution:
- {
- integrity: sha512-VNPDZlYgIYQwWp9jMTzljx+k0ZtatKlcvOhktZ/anNPI3dQ9NXk7cq2U4iJ1wd9IrytRnYhyEocFWbkdPb+MYA==,
- }
- engines: { bare: '>=1.10.0' }
-
- require-directory@2.1.1:
- resolution:
- {
- integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==,
- }
- engines: { node: '>=0.10.0' }
-
- require-from-string@2.0.2:
- resolution:
- {
- integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==,
- }
- engines: { node: '>=0.10.0' }
-
- resolve-from@4.0.0:
- resolution:
- {
- integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==,
- }
- engines: { node: '>=4' }
-
- resolve-from@5.0.0:
- resolution:
- {
- integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==,
- }
- engines: { node: '>=8' }
-
- rollup@4.60.1:
- resolution:
- {
- integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==,
- }
- engines: { node: '>=18.0.0', npm: '>=8.0.0' }
- hasBin: true
-
- rpc-websockets@9.3.8:
- resolution:
- {
- integrity: sha512-7r+fm4tSJmLf9GvZfL1DJ1SJwpagpp6AazqM0FUaeV7CA+7+NYINSk1syWa4tU/6OF2CyBicLtzENGmXRJH6wQ==,
- }
-
- safe-buffer@5.2.1:
- resolution:
- {
- integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==,
- }
-
- semver@7.7.4:
- resolution:
- {
- integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==,
- }
- engines: { node: '>=10' }
- hasBin: true
-
- set-function-length@1.2.2:
- resolution:
- {
- integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==,
- }
- engines: { node: '>= 0.4' }
-
- sha.js@2.4.12:
- resolution:
- {
- integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==,
- }
- engines: { node: '>= 0.10' }
- hasBin: true
-
- siginfo@2.0.0:
- resolution:
- {
- integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==,
- }
-
- sodium-native@4.3.3:
- resolution:
- {
- integrity: sha512-OnxSlN3uyY8D0EsLHpmm2HOFmKddQVvEMmsakCrXUzSd8kjjbzL413t4ZNF3n0UxSwNgwTyUvkmZHTfuCeiYSw==,
- }
-
- source-map-js@1.2.1:
- resolution:
- {
- integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==,
- }
- engines: { node: '>=0.10.0' }
-
- source-map@0.7.6:
- resolution:
- {
- integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==,
- }
- engines: { node: '>= 12' }
-
- split2@4.2.0:
- resolution:
- {
- integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==,
- }
- engines: { node: '>= 10.x' }
-
- stackback@0.0.2:
- resolution:
- {
- integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==,
- }
-
- std-env@3.10.0:
- resolution:
- {
- integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==,
- }
-
- stream-chain@2.2.5:
- resolution:
- {
- integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==,
- }
-
- stream-json@1.9.1:
- resolution:
- {
- integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==,
- }
-
- string-width@4.2.3:
- resolution:
- {
- integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==,
- }
- engines: { node: '>=8' }
-
- strip-ansi@6.0.1:
- resolution:
- {
- integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==,
- }
- engines: { node: '>=8' }
-
- strip-literal@3.1.0:
- resolution:
- {
- integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==,
- }
-
- sucrase@3.35.1:
- resolution:
- {
- integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==,
- }
- engines: { node: '>=16 || 14 >=14.17' }
- hasBin: true
-
- superstruct@2.0.2:
- resolution:
- {
- integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==,
- }
- engines: { node: '>=14.0.0' }
-
- text-encoding-utf-8@1.0.2:
- resolution:
- {
- integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==,
- }
-
- text-extensions@2.4.0:
- resolution:
- {
- integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==,
- }
- engines: { node: '>=8' }
-
- thenify-all@1.6.0:
- resolution:
- {
- integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==,
- }
- engines: { node: '>=0.8' }
-
- thenify@3.3.1:
- resolution:
- {
- integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==,
- }
-
- through@2.3.8:
- resolution:
- {
- integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==,
- }
-
- tinybench@2.9.0:
- resolution:
- {
- integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==,
- }
-
- tinyexec@0.3.2:
- resolution:
- {
- integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==,
- }
-
- tinyexec@1.1.1:
- resolution:
- {
- integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==,
- }
- engines: { node: '>=18' }
-
- tinyglobby@0.2.16:
- resolution:
- {
- integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==,
- }
- engines: { node: '>=12.0.0' }
-
- tinypool@1.1.1:
- resolution:
- {
- integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==,
- }
- engines: { node: ^18.0.0 || >=20.0.0 }
-
- tinyrainbow@2.0.0:
- resolution:
- {
- integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==,
- }
- engines: { node: '>=14.0.0' }
-
- tinyspy@4.0.4:
- resolution:
- {
- integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==,
- }
- engines: { node: '>=14.0.0' }
-
- to-buffer@1.2.2:
- resolution:
- {
- integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==,
- }
- engines: { node: '>= 0.4' }
-
- toml@3.0.0:
- resolution:
- {
- integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==,
- }
-
- tr46@0.0.3:
- resolution:
- {
- integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==,
- }
-
- tree-kill@1.2.2:
- resolution:
- {
- integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==,
- }
- hasBin: true
-
- ts-interface-checker@0.1.13:
- resolution:
- {
- integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==,
- }
-
- tslib@2.8.1:
- resolution:
- {
- integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==,
- }
-
- tsup@8.5.1:
- 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
+ specifier: ^5.7.0
+ version: 5.9.3
+ vite:
+ specifier: ^6.0.0
+ version: 6.4.3(@types/node@26.0.0)
+
+ 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:
- optional: true
-
- tweetnacl@1.0.3:
- resolution:
- {
- integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==,
- }
-
- typed-array-buffer@1.0.3:
- resolution:
- {
- integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==,
- }
- engines: { node: '>= 0.4' }
-
- typescript@5.9.3:
- resolution:
- {
- integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==,
- }
- engines: { node: '>=14.17' }
- hasBin: true
-
- ufo@1.6.3:
- resolution:
- {
- integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==,
- }
-
- undici-types@7.19.2:
- resolution:
- {
- integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==,
- }
-
- unicorn-magic@0.1.0:
- resolution:
- {
- integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==,
- }
- engines: { node: '>=18' }
-
- urijs@1.19.11:
- resolution:
- {
- integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==,
- }
-
- utf-8-validate@6.0.6:
- resolution:
- {
- integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==,
- }
- engines: { node: '>=6.14.2' }
-
- uuid@11.1.0:
- resolution:
- {
- integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==,
- }
- hasBin: true
-
- uuid@8.3.2:
- resolution:
- {
- integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==,
- }
- hasBin: true
+ 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)
- viem@2.47.14:
- resolution:
- {
- integrity: sha512-PHmJF1dfa9HEfrVshFXFkixzh/22Z3VFXN1omeFfjMoOFDGQkghsRdDW+KcE29gzM7KZ+MC04L+xpbm2G/kOkw==,
- }
- peerDependencies:
- typescript: '>=5.0.4'
- peerDependenciesMeta:
+ packages/sdk-svelte:
+ dependencies:
+ '@wraith-protocol/sdk':
+ specifier: workspace:*
+ version: link:../..
+ devDependencies:
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^5.0.0
+ version: 5.1.1(svelte@5.56.4)(vite@6.4.3)
+ svelte:
+ specifier: ^5.0.0
+ version: 5.56.4
+ svelte-check:
+ specifier: ^4.0.0
+ version: 4.7.0(svelte@5.56.4)(typescript@5.9.3)
+ tsup:
+ specifier: ^8.4.0
+ version: 8.5.1(typescript@5.9.3)
typescript:
- optional: true
-
- vite-node@3.2.4:
- resolution:
- {
- integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==,
- }
- engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 }
- hasBin: true
-
- vite@7.3.2:
- resolution:
- {
- integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==,
- }
- 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
-
- vitest@3.2.4:
- resolution:
- {
- integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==,
- }
- 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
+ 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/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:
- optional: true
+ 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)
- webidl-conversions@3.0.1:
- resolution:
- {
- integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==,
- }
-
- whatwg-url@5.0.0:
- resolution:
- {
- integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==,
- }
-
- which-typed-array@1.1.20:
- resolution:
- {
- integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==,
- }
- engines: { node: '>= 0.4' }
-
- why-is-node-running@2.3.0:
- resolution:
- {
- integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==,
- }
- engines: { node: '>=8' }
- hasBin: true
+packages:
- wrap-ansi@7.0.0:
- resolution:
- {
- integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==,
- }
- engines: { node: '>=10' }
-
- ws@7.5.10:
- resolution:
- {
- integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==,
- }
- engines: { node: '>=8.3.0' }
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
+ /@adraffy/ens-normalize@1.11.1:
+ resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==}
+ dev: false
- ws@8.18.3:
- resolution:
- {
- integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==,
- }
- engines: { node: '>=10.0.0' }
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
+ /@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
- y18n@5.0.8:
- resolution:
- {
- integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==,
- }
- engines: { node: '>=10' }
-
- yargs-parser@21.1.1:
- resolution:
- {
- integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==,
- }
- engines: { node: '>=12' }
-
- yargs@17.7.2:
- resolution:
- {
- integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==,
- }
- engines: { node: '>=12' }
-
- yocto-queue@1.2.2:
- resolution:
- {
- integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==,
- }
- 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
+ /@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/helper-validator-identifier@7.29.7:
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/parser@7.29.7:
+ resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.29.7
- '@babel/helper-validator-identifier@7.28.5': {}
+ /@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-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(@types/node@25.6.0)(typescript@5.9.3)':
+ /@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@25.6.0)(typescript@5.9.3)
+ '@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.1.1
- yargs: 17.7.2
+ 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.18.0
+ 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
@@ -2703,59 +238,86 @@ snapshots:
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.7.4
+ 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(@types/node@25.6.0)(typescript@5.9.3)':
+ /@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.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)
+ 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.1.1
+ 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
@@ -2763,241 +325,882 @@ snapshots:
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
+
+ /@csstools/color-helpers@5.1.0:
+ resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4):
+ resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==}
+ engines: {node: '>=18'}
+ 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
+
+ /@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4):
+ resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==}
+ engines: {node: '>=18'}
+ 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
+
+ /@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4):
+ resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^3.0.4
+ dependencies:
+ '@csstools/css-tokenizer': 3.0.4
+ dev: true
+
+ /@csstools/css-tokenizer@3.0.4:
+ resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@esbuild/aix-ppc64@0.25.12:
+ resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/aix-ppc64@0.27.7:
+ resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.25.12:
+ resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.27.7:
+ resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.25.12:
+ resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.27.7:
+ resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.25.12:
+ resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.27.7:
+ resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.25.12:
+ resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.27.7:
+ resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.25.12:
+ resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.27.7:
+ resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.25.12:
+ resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.27.7:
+ resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.25.12:
+ resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.27.7:
+ resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.25.12:
+ resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.27.7:
+ resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.25.12:
+ resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.27.7:
+ resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.25.12:
+ resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.27.7:
+ resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.25.12:
+ resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.27.7:
+ resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.25.12:
+ resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.27.7:
+ resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
- '@esbuild/aix-ppc64@0.27.7':
+ /@esbuild/linux-ppc64@0.25.12:
+ resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/android-arm64@0.27.7':
+ /@esbuild/linux-ppc64@0.27.7:
+ resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/android-arm@0.27.7':
+ /@esbuild/linux-riscv64@0.25.12:
+ resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/android-x64@0.27.7':
+ /@esbuild/linux-riscv64@0.27.7:
+ resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/darwin-arm64@0.27.7':
+ /@esbuild/linux-s390x@0.25.12:
+ resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/darwin-x64@0.27.7':
+ /@esbuild/linux-s390x@0.27.7:
+ resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/freebsd-arm64@0.27.7':
+ /@esbuild/linux-x64@0.25.12:
+ resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/freebsd-x64@0.27.7':
+ /@esbuild/linux-x64@0.27.7:
+ resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-arm64@0.27.7':
+ /@esbuild/netbsd-arm64@0.25.12:
+ resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-arm@0.27.7':
+ /@esbuild/netbsd-arm64@0.27.7:
+ resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-ia32@0.27.7':
+ /@esbuild/netbsd-x64@0.25.12:
+ resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-loong64@0.27.7':
+ /@esbuild/netbsd-x64@0.27.7:
+ resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-mips64el@0.27.7':
+ /@esbuild/openbsd-arm64@0.25.12:
+ resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-ppc64@0.27.7':
+ /@esbuild/openbsd-arm64@0.27.7:
+ resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-riscv64@0.27.7':
+ /@esbuild/openbsd-x64@0.25.12:
+ resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-s390x@0.27.7':
+ /@esbuild/openbsd-x64@0.27.7:
+ resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-x64@0.27.7':
+ /@esbuild/openharmony-arm64@0.25.12:
+ resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/netbsd-arm64@0.27.7':
+ /@esbuild/openharmony-arm64@0.27.7:
+ resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/netbsd-x64@0.27.7':
+ /@esbuild/sunos-x64@0.25.12:
+ resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/openbsd-arm64@0.27.7':
+ /@esbuild/sunos-x64@0.27.7:
+ resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/openbsd-x64@0.27.7':
+ /@esbuild/win32-arm64@0.25.12:
+ resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/openharmony-arm64@0.27.7':
+ /@esbuild/win32-arm64@0.27.7:
+ resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/sunos-x64@0.27.7':
+ /@esbuild/win32-ia32@0.25.12:
+ resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/win32-arm64@0.27.7':
+ /@esbuild/win32-ia32@0.27.7:
+ resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/win32-ia32@0.27.7':
+ /@esbuild/win32-x64@0.25.12:
+ resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/win32-x64@0.27.7':
+ /@esbuild/win32-x64@0.27.7:
+ resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@jridgewell/gen-mapping@0.3.13':
+ /@isaacs/cliui@8.0.2:
+ resolution: {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
+
+ /@jridgewell/gen-mapping@0.3.13:
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.31
- '@jridgewell/resolve-uri@3.1.2': {}
+ /@jridgewell/remapping@2.3.5:
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ /@jridgewell/resolve-uri@3.1.2:
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
- '@jridgewell/sourcemap-codec@1.5.5': {}
+ /@jridgewell/sourcemap-codec@1.5.5:
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
- '@jridgewell/trace-mapping@0.3.31':
+ /@jridgewell/trace-mapping@0.3.31:
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@noble/ciphers@1.3.0': {}
+ /@noble/ciphers@1.3.0:
+ resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==}
+ engines: {node: ^14.21.3 || >=16}
+ dev: false
- '@noble/curves@1.9.1':
+ /@noble/curves@1.9.1:
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ engines: {node: ^14.21.3 || >=16}
dependencies:
'@noble/hashes': 1.8.0
+ dev: false
- '@noble/curves@1.9.7':
+ /@noble/curves@1.9.7:
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
dependencies:
'@noble/hashes': 1.8.0
- '@noble/hashes@1.8.0': {}
+ /@noble/hashes@1.8.0:
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ /@one-ini/wasm@0.1.1:
+ resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
+ dev: true
+
+ /@pkgjs/parseargs@0.11.0:
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+ requiresBuild: true
+ dev: true
+ optional: true
- '@rollup/rollup-android-arm-eabi@4.60.1':
+ /@rollup/rollup-android-arm-eabi@4.62.2:
+ resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-android-arm64@4.60.1':
+ /@rollup/rollup-android-arm64@4.62.2:
+ resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-darwin-arm64@4.60.1':
+ /@rollup/rollup-darwin-arm64@4.62.2:
+ resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-darwin-x64@4.60.1':
+ /@rollup/rollup-darwin-x64@4.62.2:
+ resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-freebsd-arm64@4.60.1':
+ /@rollup/rollup-freebsd-arm64@4.62.2:
+ resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-freebsd-x64@4.60.1':
+ /@rollup/rollup-freebsd-x64@4.62.2:
+ resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.60.1':
+ /@rollup/rollup-linux-arm-gnueabihf@4.62.2:
+ resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.60.1':
+ /@rollup/rollup-linux-arm-musleabihf@4.62.2:
+ resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.60.1':
+ /@rollup/rollup-linux-arm64-gnu@4.62.2:
+ resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm64-musl@4.60.1':
+ /@rollup/rollup-linux-arm64-musl@4.62.2:
+ resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.60.1':
+ /@rollup/rollup-linux-loong64-gnu@4.62.2:
+ resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-loong64-musl@4.60.1':
+ /@rollup/rollup-linux-loong64-musl@4.62.2:
+ resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.60.1':
+ /@rollup/rollup-linux-ppc64-gnu@4.62.2:
+ resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-ppc64-musl@4.60.1':
+ /@rollup/rollup-linux-ppc64-musl@4.62.2:
+ resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.60.1':
+ /@rollup/rollup-linux-riscv64-gnu@4.62.2:
+ resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.60.1':
+ /@rollup/rollup-linux-riscv64-musl@4.62.2:
+ resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.60.1':
+ /@rollup/rollup-linux-s390x-gnu@4.62.2:
+ resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-x64-gnu@4.60.1':
+ /@rollup/rollup-linux-x64-gnu@4.62.2:
+ resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-x64-musl@4.60.1':
+ /@rollup/rollup-linux-x64-musl@4.62.2:
+ resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-openbsd-x64@4.60.1':
+ /@rollup/rollup-openbsd-x64@4.62.2:
+ resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-openharmony-arm64@4.60.1':
+ /@rollup/rollup-openharmony-arm64@4.62.2:
+ resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==}
+ cpu: [arm64]
+ os: [openharmony]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.60.1':
+ /@rollup/rollup-win32-arm64-msvc@4.62.2:
+ resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.60.1':
+ /@rollup/rollup-win32-ia32-msvc@4.62.2:
+ resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-x64-gnu@4.60.1':
+ /@rollup/rollup-win32-x64-gnu@4.62.2:
+ resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-x64-msvc@4.60.1':
+ /@rollup/rollup-win32-x64-msvc@4.62.2:
+ resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@scure/base@1.2.6': {}
+ /@scure/base@1.2.6:
+ resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==}
+ dev: false
- '@scure/bip32@1.7.0':
+ /@scure/bip32@1.7.0:
+ resolution: {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
- '@scure/bip39@1.6.0':
+ /@scure/bip39@1.6.0:
+ resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==}
dependencies:
'@noble/hashes': 1.8.0
'@scure/base': 1.2.6
+ dev: false
- '@solana/buffer-layout@4.0.1':
+ /@solana/buffer-layout@4.0.1:
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
dependencies:
buffer: 6.0.3
+ dev: true
- '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ /@solana/codecs-core@2.3.0(typescript@5.9.3):
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ 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
- '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ /@solana/codecs-numbers@2.3.0(typescript@5.9.3):
+ resolution: {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
- '@solana/errors@2.3.0(typescript@5.9.3)':
+ /@solana/errors@2.3.0(typescript@5.9.3):
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
dependencies:
chalk: 5.6.2
commander: 14.0.3
typescript: 5.9.3
+ dev: true
- '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)':
+ /@solana/web3.js@1.98.4(typescript@5.9.3):
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
dependencies:
- '@babel/runtime': 7.29.2
+ '@babel/runtime': 7.29.7
'@noble/curves': 1.9.7
'@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
@@ -3008,19 +1211,25 @@ snapshots:
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)
+ jayson: 4.3.0
node-fetch: 2.7.0
- rpc-websockets: 9.3.8
+ rpc-websockets: 9.3.9
superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
- typescript
- utf-8-validate
+ dev: true
- '@stellar/js-xdr@3.1.2': {}
+ /@stellar/js-xdr@3.1.2:
+ resolution: {integrity: sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==}
+ dev: true
- '@stellar/stellar-base@13.1.0':
+ /@stellar/stellar-base@13.1.0:
+ resolution: {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
@@ -3032,11 +1241,14 @@ snapshots:
sodium-native: 4.3.3
transitivePeerDependencies:
- bare-url
+ dev: true
- '@stellar/stellar-sdk@13.3.0':
+ /@stellar/stellar-sdk@13.3.0:
+ resolution: {integrity: sha512-8+GHcZLp+mdin8gSjcgfb/Lb6sSMYRX6Nf/0LcSJxvjLQR0XHpjGzOiRbYb2jSXo51EnA6kAV5j+4Pzh5OUKUg==}
+ engines: {node: '>=18.0.0'}
dependencies:
'@stellar/stellar-base': 13.1.0
- axios: 1.15.0
+ axios: 1.18.1
bignumber.js: 9.3.1
eventsource: 2.0.2
feaxios: 0.0.23
@@ -3046,346 +1258,973 @@ snapshots:
transitivePeerDependencies:
- bare-url
- debug
+ - supports-color
+ dev: true
+
+ /@sveltejs/acorn-typescript@1.0.10(acorn@8.17.0):
+ resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==}
+ peerDependencies:
+ acorn: ^8.9.0
+ dependencies:
+ acorn: 8.17.0
+
+ /@sveltejs/load-config@0.2.0:
+ resolution: {integrity: sha512-1LgZ/qUqSoq+QorD83lk2hka79Px0wXNW2q5V1nZlxGhQgw1jrsIbVz5YiCeucVLo4XvFLjXukUaQjIiqowkcg==}
+ engines: {node: '>= 18.0.0'}
+ dev: true
+
+ /@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1)(svelte@5.56.4)(vite@6.4.3):
+ resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22}
+ peerDependencies:
+ '@sveltejs/vite-plugin-svelte': ^5.0.0
+ svelte: ^5.0.0
+ vite: ^6.0.0
+ dependencies:
+ '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.56.4)(vite@6.4.3)
+ debug: 4.4.3
+ svelte: 5.56.4
+ vite: 6.4.3(@types/node@26.0.0)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.4)(vite@6.4.3):
+ resolution: {integrity: sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22}
+ peerDependencies:
+ svelte: ^5.0.0
+ vite: ^6.0.0
+ dependencies:
+ '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1)(svelte@5.56.4)(vite@6.4.3)
+ debug: 4.4.3
+ deepmerge: 4.3.1
+ kleur: 4.1.5
+ magic-string: 0.30.21
+ svelte: 5.56.4
+ vite: 6.4.3(@types/node@26.0.0)
+ vitefu: 1.1.3(vite@6.4.3)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- '@swc/helpers@0.5.21':
+ /@swc/helpers@0.5.23:
+ resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
dependencies:
tslib: 2.8.1
+ dev: true
- '@types/chai@5.2.3':
+ /@types/chai@5.2.3:
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
dependencies:
'@types/deep-eql': 4.0.2
assertion-error: 2.0.1
+ dev: true
- '@types/connect@3.4.38':
+ /@types/connect@3.4.38:
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
dependencies:
- '@types/node': 25.6.0
+ '@types/node': 12.20.55
+ dev: true
- '@types/conventional-commits-parser@5.0.2':
+ /@types/conventional-commits-parser@5.0.2:
+ resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==}
dependencies:
- '@types/node': 25.6.0
+ '@types/node': 26.0.0
+ dev: true
- '@types/deep-eql@4.0.2': {}
+ /@types/deep-eql@4.0.2:
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ dev: true
- '@types/estree@1.0.8': {}
+ /@types/estree@1.0.9:
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
- '@types/node@12.20.55': {}
+ /@types/node@12.20.55:
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+ dev: true
- '@types/node@25.6.0':
+ /@types/node@26.0.0:
+ resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==}
dependencies:
- undici-types: 7.19.2
+ undici-types: 8.3.0
+ dev: true
- '@types/uuid@10.0.0': {}
+ /@types/trusted-types@2.0.7:
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
+ /@types/uuid@10.0.0:
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+ dev: true
+
+ /@types/ws@7.4.7:
+ resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ dependencies:
+ '@types/node': 12.20.55
+ dev: true
- '@types/ws@7.4.7':
+ /@types/ws@8.18.1:
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
dependencies:
- '@types/node': 25.6.0
+ '@types/node': 26.0.0
+ dev: true
- '@types/ws@8.18.1':
+ /@vitejs/plugin-vue@5.2.4(vite@6.4.3)(vue@3.5.38):
+ resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0
+ vue: ^3.2.25
dependencies:
- '@types/node': 25.6.0
+ vite: 6.4.3(@types/node@26.0.0)
+ vue: 3.5.38(typescript@5.9.3)
+ dev: true
- '@vitest/expect@3.2.4':
+ /@vitest/expect@3.2.6:
+ resolution: {integrity: sha512-1+7q9BtaKzEmO+fmNT3kYvoNn5Y71XWAx2Q5HRim4tTVRQVRv4uJFAQ5FbK0OPUeNP/WmVCpxYxoJdvuHVjzBQ==}
dependencies:
'@types/chai': 5.2.3
- '@vitest/spy': 3.2.4
- '@vitest/utils': 3.2.4
+ '@vitest/spy': 3.2.6
+ '@vitest/utils': 3.2.6
chai: 5.3.3
tinyrainbow: 2.0.0
+ dev: true
- '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1))':
+ /@vitest/mocker@3.2.6(vite@6.4.3):
+ resolution: {integrity: sha512-EZOrpDbkKotFAP7wPAQV1UIyoGOk4oX7ynWhBhLB7v+meMHbQhU16oPpIYGTTe4oFlhpryGpgpcZP/sin3hYuw==}
+ 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.4
+ '@vitest/spy': 3.2.6
estree-walker: 3.0.3
magic-string: 0.30.21
- optionalDependencies:
- vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)
+ vite: 6.4.3(@types/node@26.0.0)
+ dev: true
- '@vitest/pretty-format@3.2.4':
+ /@vitest/pretty-format@3.2.6:
+ resolution: {integrity: sha512-lb7XXXzmm2h2ASzFnRvQpDo6onT1NmMJA3tkGTWiBFtRJ9lxGY3d3mm/Apt36gej2bkkOVLL/yTOtufDaFa/jA==}
dependencies:
tinyrainbow: 2.0.0
+ dev: true
- '@vitest/runner@3.2.4':
+ /@vitest/runner@3.2.6:
+ resolution: {integrity: sha512-HYcoSj1w5tcgUnzoF0HcyaAQjpA1gj9ftUJ7iSJSuipc02jW9gKkigwZbjFldAfYHA1fa8UZVRftdMY5msWM9Q==}
dependencies:
- '@vitest/utils': 3.2.4
+ '@vitest/utils': 3.2.6
pathe: 2.0.3
strip-literal: 3.1.0
+ dev: true
- '@vitest/snapshot@3.2.4':
+ /@vitest/snapshot@3.2.6:
+ resolution: {integrity: sha512-H+ZjNTWGpObenh0YnlBctAPnJSI20P81PL8BPzWpx54YXLLTm8hEsWawtcYLMrwvpK48hGxLLbCS+1KRXhsKhw==}
dependencies:
- '@vitest/pretty-format': 3.2.4
+ '@vitest/pretty-format': 3.2.6
magic-string: 0.30.21
pathe: 2.0.3
+ dev: true
- '@vitest/spy@3.2.4':
+ /@vitest/spy@3.2.6:
+ resolution: {integrity: sha512-oq6BbH68WzcWmwtBrU9nqLeaXTR4XwJF7FSLkKEZo4i6eoXcrxjcwSuTvWBIRUTC6VC72nXYunzqgZA+IKdtxg==}
dependencies:
tinyspy: 4.0.4
+ dev: true
- '@vitest/utils@3.2.4':
+ /@vitest/utils@3.2.6:
+ resolution: {integrity: sha512-lI23nIs4bnT3T8NIoh+vFaz5s2/DdP0Jgt2jxwgWljvwn82cLJtyi/If+fjFyoLMGIOz0U/fKvWE0d4jsNQEfg==}
dependencies:
- '@vitest/pretty-format': 3.2.4
+ '@vitest/pretty-format': 3.2.6
loupe: 3.2.1
tinyrainbow: 2.0.0
+ dev: true
+
+ /@volar/language-core@2.4.15:
+ resolution: {integrity: sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==}
+ dependencies:
+ '@volar/source-map': 2.4.15
+ dev: true
+
+ /@volar/source-map@2.4.15:
+ resolution: {integrity: sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==}
+ dev: true
+
+ /@volar/typescript@2.4.15:
+ resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==}
+ dependencies:
+ '@volar/language-core': 2.4.15
+ path-browserify: 1.0.1
+ vscode-uri: 3.1.0
+ dev: true
+
+ /@vue/compiler-core@3.5.38:
+ resolution: {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
+
+ /@vue/compiler-dom@3.5.38:
+ resolution: {integrity: sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==}
+ dependencies:
+ '@vue/compiler-core': 3.5.38
+ '@vue/shared': 3.5.38
+
+ /@vue/compiler-sfc@3.5.38:
+ resolution: {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
- JSONStream@1.3.5:
+ /@vue/compiler-ssr@3.5.38:
+ resolution: {integrity: sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA==}
+ dependencies:
+ '@vue/compiler-dom': 3.5.38
+ '@vue/shared': 3.5.38
+
+ /@vue/compiler-vue2@2.7.16:
+ resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+ dev: true
+
+ /@vue/language-core@2.2.12(typescript@5.9.3):
+ resolution: {integrity: sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==}
+ 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
+
+ /@vue/reactivity@3.5.38:
+ resolution: {integrity: sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==}
+ dependencies:
+ '@vue/shared': 3.5.38
+
+ /@vue/runtime-core@3.5.38:
+ resolution: {integrity: sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw==}
+ dependencies:
+ '@vue/reactivity': 3.5.38
+ '@vue/shared': 3.5.38
+
+ /@vue/runtime-dom@3.5.38:
+ resolution: {integrity: sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A==}
+ dependencies:
+ '@vue/reactivity': 3.5.38
+ '@vue/runtime-core': 3.5.38
+ '@vue/shared': 3.5.38
+ csstype: 3.2.3
+
+ /@vue/server-renderer@3.5.38(vue@3.5.38):
+ resolution: {integrity: sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw==}
+ peerDependencies:
+ vue: 3.5.38
+ dependencies:
+ '@vue/compiler-ssr': 3.5.38
+ '@vue/shared': 3.5.38
+ vue: 3.5.38(typescript@5.9.3)
+
+ /@vue/shared@3.5.38:
+ resolution: {integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==}
+
+ /@vue/test-utils@2.4.11(@vue/compiler-dom@3.5.38)(vue@3.5.38):
+ resolution: {integrity: sha512-GDqaqZsA6m2E5vNzej0aYiIb6BX8xV9pNSbbbXKOfEYwg7ZNblVX8suyqmUBThq8VIrgAJNxn+z72hVtUeiWHA==}
+ peerDependencies:
+ '@vue/compiler-dom': 3.x
+ '@vue/server-renderer': 3.x
+ vue: 3.x
+ peerDependenciesMeta:
+ '@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
+
+ /JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
dependencies:
jsonparse: 1.3.1
through: 2.3.8
+ dev: true
- abitype@1.2.3(typescript@5.9.3):
- optionalDependencies:
+ /abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ dev: true
+
+ /abitype@1.2.3(typescript@5.9.3):
+ resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ zod: ^3.22.0 || ^4.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ dependencies:
typescript: 5.9.3
+ dev: false
+
+ /acorn@8.17.0:
+ resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
- acorn@8.16.0: {}
+ /agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+ dependencies:
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- agentkeepalive@4.6.0:
+ /agent-base@7.1.4:
+ resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /agentkeepalive@4.6.0:
+ resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
+ engines: {node: '>= 8.0.0'}
dependencies:
humanize-ms: 1.2.1
+ dev: true
- ajv@8.18.0:
+ /ajv@8.20.0:
+ resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==}
dependencies:
fast-deep-equal: 3.1.3
- fast-uri: 3.1.0
+ fast-uri: 3.1.2
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
+ dev: true
+
+ /alien-signals@1.0.13:
+ resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==}
+ dev: true
- ansi-regex@5.0.1: {}
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
- ansi-styles@4.3.0:
+ /ansi-regex@6.2.2:
+ resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
+ dev: true
+
+ /ansi-styles@6.2.3:
+ resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
+ engines: {node: '>=12'}
+ dev: true
- any-promise@1.3.0: {}
+ /any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+ dev: true
- argparse@2.0.1: {}
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
- array-ify@1.0.0: {}
+ /aria-query@5.3.1:
+ resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==}
+ engines: {node: '>= 0.4'}
- assertion-error@2.0.1: {}
+ /array-ify@1.0.0:
+ resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
+ dev: true
- asynckit@0.4.0: {}
+ /assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+ dev: true
- available-typed-arrays@1.0.7:
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: true
+
+ /available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
dependencies:
possible-typed-array-names: 1.1.0
+ dev: true
- axios@1.15.0:
+ /axios@1.18.1:
+ resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==}
dependencies:
- follow-redirects: 1.15.11
- form-data: 4.0.5
+ 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
+
+ /axobject-query@4.1.0:
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+ engines: {node: '>= 0.4'}
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
- bare-addon-resolve@1.10.0:
+ /bare-addon-resolve@1.10.0:
+ resolution: {integrity: sha512-sSd0jieRJlDaODOzj0oe0RjFVC1QI0ZIjGIdPkbrTXsdVVtENg14c+lHHAhHwmWCZ2nQlMhy8jA3Y5LYPc/isA==}
+ requiresBuild: true
+ peerDependencies:
+ bare-url: '*'
+ peerDependenciesMeta:
+ bare-url:
+ optional: true
dependencies:
- bare-module-resolve: 1.12.1
- bare-semver: 1.0.3
+ bare-module-resolve: 1.12.2
+ bare-semver: 1.1.0
+ dev: true
optional: true
- bare-module-resolve@1.12.1:
+ /bare-module-resolve@1.12.2:
+ resolution: {integrity: sha512-j+hiD5k99qec4KjJvYsI67q5AOBifmy9JG3oeMVxTmvrhn2sIdp8StrUvZu4YNgwTpO+NhniQG16N1ETDe1k5w==}
+ requiresBuild: true
+ peerDependencies:
+ bare-url: '*'
+ peerDependenciesMeta:
+ bare-url:
+ optional: true
dependencies:
- bare-semver: 1.0.3
+ bare-semver: 1.1.0
+ dev: true
optional: true
- bare-semver@1.0.3:
+ /bare-semver@1.1.0:
+ resolution: {integrity: sha512-1Hw5qJ7hXdVt3uPUqjeFTuxyvBUJauvz5A1I2jk8gzjZMHp04n//6nV9MDbG9CMw78JHY2lGV0w6s//LrASm2w==}
+ requiresBuild: true
+ dev: true
optional: true
- base-x@3.0.11:
+ /base-x@3.0.11:
+ resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
dependencies:
safe-buffer: 5.2.1
+ dev: true
- base32.js@0.1.0: {}
+ /base32.js@0.1.0:
+ resolution: {integrity: sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==}
+ engines: {node: '>=0.12.0'}
+ dev: true
- base64-js@1.5.1: {}
+ /base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: true
- bignumber.js@9.3.1: {}
+ /bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+ dev: true
- bn.js@5.2.3: {}
+ /bn.js@5.2.3:
+ resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==}
+ dev: true
- borsh@0.7.0:
+ /borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
dependencies:
bn.js: 5.2.3
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ dev: true
+
+ /brace-expansion@2.1.1:
+ resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
- bs58@4.0.1:
+ /bs58@4.0.1:
+ resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
dependencies:
base-x: 3.0.11
+ dev: true
- buffer@6.0.3:
+ /buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
+ dev: true
- bufferutil@4.1.0:
+ /bufferutil@4.1.0:
+ resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==}
+ engines: {node: '>=6.14.2'}
+ requiresBuild: true
dependencies:
node-gyp-build: 4.8.4
- optional: true
+ dev: true
- bundle-require@5.1.0(esbuild@0.27.7):
+ /bundle-require@5.1.0(esbuild@0.27.7):
+ resolution: {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
- cac@6.7.14: {}
+ /cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+ dev: true
- call-bind-apply-helpers@1.0.2:
+ /call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
function-bind: 1.1.2
+ dev: true
- call-bind@1.0.9:
+ /call-bind@1.0.9:
+ resolution: {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
- call-bound@1.0.4:
+ /call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
+ dev: true
- callsites@3.1.0: {}
+ /callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
- chai@5.3.3:
+ /chai@5.3.3:
+ resolution: {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
- chalk@5.6.2: {}
+ /chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
- check-error@2.1.3: {}
+ /check-error@2.1.3:
+ resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==}
+ engines: {node: '>= 16'}
+ dev: true
- chokidar@4.0.3:
+ /chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
dependencies:
readdirp: 4.1.2
+ dev: true
- cliui@8.0.1:
+ /cliui@8.0.1:
+ resolution: {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
+
+ /clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
- color-convert@2.0.1:
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
+ dev: true
- color-name@1.1.4: {}
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
- combined-stream@1.0.8:
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
dependencies:
delayed-stream: 1.0.0
+ dev: true
- commander@14.0.3: {}
+ /commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+ dev: true
- commander@2.20.3: {}
+ /commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+ dev: true
- commander@4.1.1: {}
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ dev: true
- compare-func@2.0.0:
+ /commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /compare-func@2.0.0:
+ resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
dependencies:
array-ify: 1.0.0
dot-prop: 5.3.0
+ dev: true
+
+ /confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+ dev: true
- confbox@0.1.8: {}
+ /config-chain@1.1.13:
+ resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
+ dependencies:
+ ini: 1.3.8
+ proto-list: 1.2.4
+ dev: true
- consola@3.4.2: {}
+ /consola@3.4.2:
+ resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+ dev: true
- conventional-changelog-angular@7.0.0:
+ /conventional-changelog-angular@7.0.0:
+ resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==}
+ engines: {node: '>=16'}
dependencies:
compare-func: 2.0.0
+ dev: true
- conventional-changelog-conventionalcommits@7.0.2:
+ /conventional-changelog-conventionalcommits@7.0.2:
+ resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==}
+ engines: {node: '>=16'}
dependencies:
compare-func: 2.0.0
+ dev: true
- conventional-commits-parser@5.0.0:
+ /conventional-commits-parser@5.0.0:
+ resolution: {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
- cosmiconfig-typescript-loader@6.3.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3):
+ /cosmiconfig-typescript-loader@6.3.0(@types/node@26.0.0)(cosmiconfig@9.0.2)(typescript@5.9.3):
+ resolution: {integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==}
+ engines: {node: '>=v18'}
+ peerDependencies:
+ '@types/node': '*'
+ cosmiconfig: '>=9'
+ typescript: '>=5'
dependencies:
- '@types/node': 25.6.0
- cosmiconfig: 9.0.1(typescript@5.9.3)
+ '@types/node': 26.0.0
+ cosmiconfig: 9.0.2(typescript@5.9.3)
jiti: 2.6.1
typescript: 5.9.3
+ dev: true
- cosmiconfig@9.0.1(typescript@5.9.3):
+ /cosmiconfig@9.0.2(typescript@5.9.3):
+ resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
dependencies:
env-paths: 2.2.1
import-fresh: 3.3.1
- js-yaml: 4.1.1
+ js-yaml: 4.2.0
parse-json: 5.2.0
- optionalDependencies:
typescript: 5.9.3
+ dev: true
+
+ /cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /cssstyle@4.6.0:
+ resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@asamuzakjp/css-color': 3.2.0
+ rrweb-cssom: 0.8.0
+ dev: true
+
+ /csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ /dargs@8.1.0:
+ resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==}
+ engines: {node: '>=12'}
+ dev: true
- dargs@8.1.0: {}
+ /data-urls@5.0.0:
+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
+ engines: {node: '>=18'}
+ dependencies:
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ dev: true
+
+ /de-indent@1.0.2:
+ resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+ dev: true
- debug@4.4.3:
+ /debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.1.3
+ dev: true
+
+ /decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+ dev: true
- deep-eql@5.0.2: {}
+ /deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+ engines: {node: '>=6'}
+ dev: true
- define-data-property@1.1.4:
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
dependencies:
es-define-property: 1.0.1
es-errors: 1.3.0
gopd: 1.2.0
+ dev: true
+
+ /delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+ dev: true
- delay@5.0.0: {}
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: true
- delayed-stream@1.0.0: {}
+ /devalue@5.8.1:
+ resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==}
- dot-prop@5.3.0:
+ /dot-prop@5.3.0:
+ resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
+ engines: {node: '>=8'}
dependencies:
is-obj: 2.0.0
+ dev: true
- dunder-proto@1.0.1:
+ /dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
es-errors: 1.3.0
gopd: 1.2.0
+ dev: true
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /editorconfig@1.0.7:
+ resolution: {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
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
- emoji-regex@8.0.0: {}
+ /entities@6.0.1:
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
+ dev: true
- env-paths@2.2.1: {}
+ /entities@7.0.1:
+ resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
+ engines: {node: '>=0.12'}
- error-ex@1.3.4:
+ /env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /error-ex@1.3.4:
+ resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
dependencies:
is-arrayish: 0.2.1
+ dev: true
- es-define-property@1.0.1: {}
+ /es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+ dev: true
- es-errors@1.3.0: {}
+ /es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+ dev: true
- es-module-lexer@1.7.0: {}
+ /es-module-lexer@1.7.0:
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+ dev: true
- es-object-atoms@1.1.1:
+ /es-object-atoms@1.1.2:
+ resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
+ dev: true
- es-set-tostringtag@2.1.0:
+ /es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
- hasown: 2.0.2
+ hasown: 2.0.4
+ dev: true
- es6-promise@4.2.8: {}
+ /es6-promise@4.2.8:
+ resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
+ dev: true
- es6-promisify@5.0.0:
+ /es6-promisify@5.0.0:
+ resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
dependencies:
es6-promise: 4.2.8
+ dev: true
- esbuild@0.27.7:
+ /esbuild@0.25.12:
+ resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
+ 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-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==}
+ engines: {node: '>=18'}
+ hasBin: true
+ requiresBuild: true
optionalDependencies:
'@esbuild/aix-ppc64': 0.27.7
'@esbuild/android-arm': 0.27.7
@@ -3413,160 +2252,416 @@ snapshots:
'@esbuild/win32-arm64': 0.27.7
'@esbuild/win32-ia32': 0.27.7
'@esbuild/win32-x64': 0.27.7
+ dev: true
+
+ /escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /esm-env@1.2.2:
+ resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
+
+ /esrap@2.2.12:
+ resolution: {integrity: sha512-On0QbLyaiAkVC4eXtgnXK9Kh2opit+3rcUSOc45DqJ2s/X2eXAHsGOKRSJ6IDagQEW5vPyivANfXUiqgXC67Rw==}
+ peerDependencies:
+ '@typescript-eslint/types': ^8.2.0
+ peerDependenciesMeta:
+ '@typescript-eslint/types':
+ optional: true
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
- escalade@3.2.0: {}
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
- estree-walker@3.0.3:
+ /estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
dependencies:
- '@types/estree': 1.0.8
+ '@types/estree': 1.0.9
+ dev: true
- eventemitter3@5.0.1: {}
+ /eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+ dev: false
- eventsource@2.0.2: {}
+ /eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+ dev: true
- expect-type@1.3.0: {}
+ /eventsource@2.0.2:
+ resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==}
+ engines: {node: '>=12.0.0'}
+ dev: true
- eyes@0.1.8: {}
+ /expect-type@1.3.0:
+ resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
+ engines: {node: '>=12.0.0'}
+ dev: true
- fast-deep-equal@3.1.3: {}
+ /eyes@0.1.8:
+ resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
+ engines: {node: '> 0.1.90'}
+ dev: true
- fast-stable-stringify@1.0.0: {}
+ /fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: true
- fast-uri@3.1.0: {}
+ /fast-stable-stringify@1.0.0:
+ resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ dev: true
- fdir@6.5.0(picomatch@4.0.4):
- optionalDependencies:
+ /fast-uri@3.1.2:
+ resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==}
+ dev: true
+
+ /fdir@6.5.0(picomatch@4.0.4):
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ dependencies:
picomatch: 4.0.4
+ dev: true
- feaxios@0.0.23:
+ /feaxios@0.0.23:
+ resolution: {integrity: sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==}
dependencies:
is-retry-allowed: 3.0.0
+ dev: true
- find-up@7.0.0:
+ /find-up@7.0.0:
+ resolution: {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
- fix-dts-default-cjs-exports@1.0.1:
+ /fix-dts-default-cjs-exports@1.0.1:
+ resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==}
dependencies:
magic-string: 0.30.21
mlly: 1.8.2
- rollup: 4.60.1
+ rollup: 4.62.2
+ dev: true
- follow-redirects@1.15.11: {}
+ /follow-redirects@1.16.0:
+ resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: true
- for-each@0.3.5:
+ /for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
dependencies:
is-callable: 1.2.7
+ dev: true
+
+ /foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
+ engines: {node: '>=14'}
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+ dev: true
- form-data@4.0.5:
+ /form-data@4.0.6:
+ resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==}
+ engines: {node: '>= 6'}
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
- hasown: 2.0.2
+ hasown: 2.0.4
mime-types: 2.1.35
+ dev: true
- fsevents@2.3.3:
+ /fsevents@2.3.3:
+ resolution: {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
- function-bind@1.1.2: {}
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ dev: true
- get-caller-file@2.0.5: {}
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: true
- get-intrinsic@1.3.0:
+ /get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ 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.1
+ 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.2
+ hasown: 2.0.4
math-intrinsics: 1.1.0
+ dev: true
- get-proto@1.0.1:
+ /get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
dependencies:
dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
+ dev: true
- git-raw-commits@4.0.0:
+ /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
dependencies:
dargs: 8.1.0
meow: 12.1.1
split2: 4.2.0
+ dev: true
+
+ /glob@10.5.0:
+ resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
+ 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
- global-directory@4.0.1:
+ /global-directory@4.0.1:
+ resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
+ engines: {node: '>=18'}
dependencies:
ini: 4.1.1
+ dev: true
- gopd@1.2.0: {}
+ /gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+ dev: true
- has-property-descriptors@1.0.2:
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
es-define-property: 1.0.1
+ dev: true
- has-symbols@1.1.0: {}
+ /has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+ dev: true
- has-tostringtag@1.0.2:
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.1.0
+ dev: true
- hasown@2.0.2:
+ /hasown@2.0.4:
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
+ engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
+ dev: true
+
+ /he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+ dev: true
+
+ /html-encoding-sniffer@4.0.0:
+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
+ engines: {node: '>=18'}
+ dependencies:
+ whatwg-encoding: 3.1.1
+ dev: true
+
+ /http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
+ engines: {node: '>= 14'}
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- humanize-ms@1.2.1:
+ /humanize-ms@1.2.1:
+ resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
dependencies:
ms: 2.1.3
+ dev: true
- husky@9.1.7: {}
+ /husky@9.1.7:
+ resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==}
+ engines: {node: '>=18'}
+ hasBin: true
+ dev: true
+
+ /iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: true
- ieee754@1.2.1: {}
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: true
- import-fresh@3.3.1:
+ /import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
+ dev: true
+
+ /import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
+ dev: true
- import-meta-resolve@4.2.0: {}
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
- inherits@2.0.4: {}
+ /ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ dev: true
- ini@4.1.1: {}
+ /ini@4.1.1:
+ resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ dev: true
- is-arrayish@0.2.1: {}
+ /is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ dev: true
- is-callable@1.2.7: {}
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: true
- is-fullwidth-code-point@3.0.0: {}
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
- is-obj@2.0.0: {}
+ /is-obj@2.0.0:
+ resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
+ engines: {node: '>=8'}
+ dev: true
- is-retry-allowed@3.0.0: {}
+ /is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+ dev: true
- is-text-path@2.0.0:
+ /is-reference@3.0.3:
+ resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
+ dependencies:
+ '@types/estree': 1.0.9
+
+ /is-retry-allowed@3.0.0:
+ resolution: {integrity: sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /is-text-path@2.0.0:
+ resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==}
+ engines: {node: '>=8'}
dependencies:
text-extensions: 2.4.0
+ dev: true
- is-typed-array@1.1.15:
+ /is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
dependencies:
- which-typed-array: 1.1.20
+ which-typed-array: 1.1.22
+ dev: true
+
+ /isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ dev: true
- isarray@2.0.5: {}
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /isomorphic-ws@4.0.1(ws@7.5.11):
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+ dependencies:
+ ws: 7.5.11
+ dev: true
- isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)):
+ /isows@1.0.7(ws@8.20.1):
+ resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==}
+ peerDependencies:
+ ws: '*'
dependencies:
- ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+ ws: 8.20.1
+ dev: false
- isows@1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)):
+ /jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
dependencies:
- ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+ dev: true
- jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6):
+ /jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
+ engines: {node: '>=8'}
+ hasBin: true
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
@@ -3575,108 +2670,303 @@ snapshots:
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))
+ 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.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+ ws: 7.5.11
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ dev: true
+
+ /jiti@2.6.1:
+ resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
+ hasBin: true
+ dev: true
+
+ /joycon@3.1.1:
+ resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /js-beautify@1.15.4:
+ resolution: {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
+
+ /js-cookie@3.0.8:
+ resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==}
+ dev: true
+
+ /js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+ dev: true
+
+ /js-yaml@4.2.0:
+ resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /jsdom@25.0.1:
+ resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==}
+ 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
- jiti@2.6.1: {}
-
- joycon@3.1.1: {}
-
- js-tokens@4.0.0: {}
+ /json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ dev: true
- js-tokens@9.0.1: {}
+ /json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ dev: true
- js-yaml@4.1.1:
- dependencies:
- argparse: 2.0.1
+ /json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+ dev: true
- json-parse-even-better-errors@2.3.1: {}
+ /jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+ dev: true
- json-schema-traverse@1.0.0: {}
+ /kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
+ dev: true
- json-stringify-safe@5.0.1: {}
+ /lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+ dev: true
- jsonparse@1.3.1: {}
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
- lilconfig@3.1.3: {}
+ /load-tsconfig@0.2.5:
+ resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
- lines-and-columns@1.2.4: {}
+ /locate-character@3.0.0:
+ resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
- load-tsconfig@0.2.5: {}
-
- locate-path@7.2.0:
+ /locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
p-locate: 6.0.0
+ dev: true
+
+ /lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ dev: true
- lodash.camelcase@4.3.0: {}
+ /lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+ dev: true
- lodash.isplainobject@4.0.6: {}
+ /lodash.kebabcase@4.1.1:
+ resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
+ dev: true
- lodash.kebabcase@4.1.1: {}
+ /lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
- lodash.merge@4.6.2: {}
+ /lodash.mergewith@4.6.2:
+ resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
+ dev: true
- lodash.mergewith@4.6.2: {}
+ /lodash.snakecase@4.1.1:
+ resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
+ dev: true
- lodash.snakecase@4.1.1: {}
+ /lodash.startcase@4.4.0:
+ resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
+ dev: true
- lodash.startcase@4.4.0: {}
+ /lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+ dev: true
- lodash.uniq@4.5.0: {}
+ /lodash.upperfirst@4.3.1:
+ resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==}
+ dev: true
- lodash.upperfirst@4.3.1: {}
+ /loupe@3.2.1:
+ resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
+ dev: true
- loupe@3.2.1: {}
+ /lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+ dev: true
- magic-string@0.30.21:
+ /magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
- math-intrinsics@1.1.0: {}
+ /math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+ dev: true
- meow@12.1.1: {}
+ /meow@12.1.1:
+ resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
+ engines: {node: '>=16.10'}
+ dev: true
- mime-db@1.52.0: {}
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: true
- mime-types@2.1.35:
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
+ dev: true
- minimist@1.2.8: {}
+ /minimatch@9.0.9:
+ resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.1.1
+ dev: true
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
- mlly@1.8.2:
+ /minipass@7.1.3:
+ resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dev: true
+
+ /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
+
+ /mri@1.2.0:
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+ engines: {node: '>=4'}
+ dev: true
- ms@2.1.3: {}
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
- mz@2.7.0:
+ /muggle-string@0.4.1:
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+ dev: true
+
+ /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
- object-assign@4.1.1: {}
+ /nwsapi@2.2.24:
+ resolution: {integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==}
+ dev: true
- ox@0.14.15(typescript@5.9.3):
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /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 +2976,289 @@ 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
- path-exists@5.0.0: {}
+ /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:
+ 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
- pathe@2.0.3: {}
+ /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:
+ 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: {}
+ /proxy-from-env@2.1.0:
+ resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==}
+ engines: {node: '>=10'}
+ dev: true
- randombytes@2.1.0:
+ /punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /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-from-string@2.0.2: {}
-
- resolve-from@4.0.0: {}
-
- resolve-from@5.0.0: {}
-
- rollup@4.60.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:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /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
- safe-buffer@5.2.1: {}
+ /rrweb-cssom@0.8.0:
+ resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
+ dev: true
- semver@7.7.4: {}
+ /sade@1.8.1:
+ resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
+ engines: {node: '>=6'}
+ dependencies:
+ mri: 1.2.0
+ 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
+
+ /saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+ dependencies:
+ xmlchars: 2.2.0
+ dev: true
+
+ /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 +3266,320 @@ 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
- siginfo@2.0.0: {}
+ /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
+
+ /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
- strip-ansi@6.0.1:
+ /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:
+ 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
+
+ /svelte-check@4.7.0(svelte@5.56.4)(typescript@5.9.3):
+ resolution: {integrity: sha512-XChCqdDg29UWOWai2I1s2Ss003piZ9mae2y2KXwoOX01W75mg7/fwLLnx9Yruk9asHkxHPDdSfEfsJh5tr9JvQ==}
+ engines: {node: '>= 18.0.0'}
+ hasBin: true
+ peerDependencies:
+ svelte: ^4.0.0 || ^5.0.0-next.0
+ typescript: '>=5.0.0'
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ '@sveltejs/load-config': 0.2.0
+ chokidar: 4.0.3
+ fdir: 6.5.0(picomatch@4.0.4)
+ picocolors: 1.1.1
+ sade: 1.8.1
+ svelte: 5.56.4
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - picomatch
+ dev: true
+
+ /svelte@5.56.4:
+ resolution: {integrity: sha512-/d0QHehmRuJW8gVz395MTkPcPozxzdjBMBE8oEYGz8O3b9KTMzzQ9ZHJQLuFKOHOPQbU6kx/X4iid/EBBzH7iw==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@sveltejs/acorn-typescript': 1.0.10(acorn@8.17.0)
+ '@types/estree': 1.0.9
+ '@types/trusted-types': 2.0.7
+ acorn: 8.17.0
+ aria-query: 5.3.1
+ axobject-query: 4.1.0
+ clsx: 2.1.1
+ devalue: 5.8.1
+ esm-env: 1.2.2
+ esrap: 2.2.12
+ is-reference: 3.0.3
+ locate-character: 3.0.0
+ magic-string: 0.30.21
+ zimmerframe: 1.1.4
+ transitivePeerDependencies:
+ - '@typescript-eslint/types'
- 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
- tinypool@1.1.1: {}
+ /tinyrainbow@2.0.0:
+ resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
+ engines: {node: '>=14.0.0'}
+ dev: true
- tinyrainbow@2.0.0: {}
+ /tinyspy@4.0.4:
+ resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
+ engines: {node: '>=14.0.0'}
+ dev: true
- tinyspy@4.0.4: {}
+ /tldts-core@6.1.86:
+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
+ dev: true
+
+ /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 +3590,109 @@ 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 +3706,123 @@ 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
+
+ /vitefu@1.1.3(vite@6.4.3):
+ resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==}
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ vite: 6.4.3(@types/node@26.0.0)
+ 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 +3836,89 @@ 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 +3927,107 @@ 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
- y18n@5.0.8: {}
+ /xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+ dev: true
- yargs-parser@21.1.1: {}
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
- yargs@17.7.2:
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /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 +4036,12 @@ snapshots:
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1
+ dev: true
+
+ /yocto-queue@1.2.2:
+ resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
+ engines: {node: '>=12.20'}
+ dev: true
- yocto-queue@1.2.2: {}
+ /zimmerframe@1.1.4:
+ resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
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/*'
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);