From 3642b0957626741b53cc0f168e7872fc51f06662 Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 01:04:00 -0800 Subject: [PATCH 01/11] Harden provider constructor URL validation --- test/ANALYSIS.md | 1 + test/httpProvider.spec.ts | 13 +++++++++++++ web3/ANALYSIS.md | 1 + web3/README.md | 1 + web3/httpProvider.ts | 8 +++++++- 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index ed4e627..b1d334a 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -31,5 +31,6 @@ - Added malformed-network-response regression coverage for `httpProvider` to ensure non-Fetch-like response objects (including non-finite status metadata) are rejected with deterministic provider errors before runtime method access faults or invalid status propagation. - Added fetch-rejection normalization coverage for `httpProvider` because runtime fetch implementations may throw primitives or non-standard errors; tests now lock deterministic `RequestError` envelopes for both primitive and Error-like rejection paths. - Added response-body read-failure regression coverage for `httpProvider` because some runtimes can throw on `response.text()` stream reads; tests now lock deterministic `Invalid provider response` envelope normalization. +- Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. - Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. - Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank URL and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). diff --git a/test/httpProvider.spec.ts b/test/httpProvider.spec.ts index 98f917d..e0bb3d9 100644 --- a/test/httpProvider.spec.ts +++ b/test/httpProvider.spec.ts @@ -71,6 +71,19 @@ describe('web3/httpProvider', () => { expect(provider.url.toString()).toBe('https://rpc.example.org/custom/path'); }); + test('throws deterministic RequestError shape when constructor url is invalid', () => { + try { + new Provider('http://:invalid-url'); + throw new Error('expected constructor to throw'); + } catch (error: any) { + expect(error).toMatchObject({ + code: -32602, + message: 'Invalid provider URL', + data: null, + }); + } + }); + test('rejects non-object JSON-RPC request payloads', async () => { const provider = new Provider('https://rpc.example.org'); diff --git a/web3/ANALYSIS.md b/web3/ANALYSIS.md index fa4270a..36f4f24 100644 --- a/web3/ANALYSIS.md +++ b/web3/ANALYSIS.md @@ -12,6 +12,7 @@ ## Key findings - Provider fallback pool remains hardcoded to default list (`bsc-dataseed1.ninicoin.io`) when constructor URL is not supplied. - Constructor now honors explicit `url` input, reducing hidden endpoint drift. +- Constructor URL parsing now normalizes malformed endpoint inputs into deterministic request metadata (`RequestError` `-32602`) rather than surfacing runtime-specific `URL` parser exceptions. - Request shaping now preserves caller-supplied `request.id` (including explicit `null`); fallback `56` is only applied when the `id` field is absent. - Cache API usage is now runtime-guarded: request flow falls back to network-only mode when `caches`/`Request`/`Response` globals are unavailable. - Browser cache usage is now additionally gated by `BROWSER_CACHE_TTL > 0`; this aligns behavior with current default (`0`) so runtime cache is not populated unless explicitly enabled. diff --git a/web3/README.md b/web3/README.md index 4b31c0e..8d223b8 100644 --- a/web3/README.md +++ b/web3/README.md @@ -5,6 +5,7 @@ Legacy-compatible Web3 transport helpers. ## Files - `httpProvider.ts`: custom JSON-RPC provider wrapper with fetch + Cache API usage. - Constructor now honors explicit URL input before falling back to default provider pool. + - Invalid constructor URLs are now normalized into deterministic `RequestError` metadata (`code: -32602`, `message: Invalid provider URL`) instead of leaking raw `URL` parser exceptions. - Request IDs are preserved when callers provide one (including explicit `null`); fallback ID `56` is only used when the `id` field is absent. - Cache API usage is now runtime-guarded; provider falls back to network-only request flow when `caches`/`Request`/`Response` globals are unavailable. - Browser cache writes/reads are now also gated by `BROWSER_CACHE_TTL > 0`; with the default `0`, requests avoid writing stale entries to runtime cache. diff --git a/web3/httpProvider.ts b/web3/httpProvider.ts index 28a88e6..103a00b 100644 --- a/web3/httpProvider.ts +++ b/web3/httpProvider.ts @@ -59,7 +59,13 @@ export default class Provider { ? url : providers[Math.floor(Math.random() * providers.length)]; - const parsedUrl = new URL(resolvedProviderUrl); + let parsedUrl: URL; + try { + parsedUrl = new URL(resolvedProviderUrl); + } catch { + throw new RequestError('Invalid provider URL', -32602, null); + } + this.url = parsedUrl; this.host = parsedUrl.host; this.path = parsedUrl.pathname; From f6a47637f7dab53d94b79cc7318b79c34a6368bd Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 03:13:29 -0800 Subject: [PATCH 02/11] Harden getFilter equals undefined no-op handling --- ANALYSIS.md | 2 +- api.ts | 1 + test/ANALYSIS.md | 2 +- test/api.spec.ts | 13 +++++++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ANALYSIS.md b/ANALYSIS.md index 1ca0c73..09419f2 100644 --- a/ANALYSIS.md +++ b/ANALYSIS.md @@ -16,7 +16,7 @@ Core Node SDK/runtime utility package for Arken protocol, data handling, and gam - `.erb/`: documentation/scaffolding branding assets (currently `img/logo.png`) with low runtime risk but potential UX drift if assets are changed ad hoc. - `coverage/`: generated LCOV/Clover/JSON coverage artifacts; useful diagnostics but should remain generated-only to avoid noisy/manual drift (now documented with local `coverage/{README.md,ANALYSIS.md}`). - `websocket.ts`: lightweight socket helper exposing `emitAll`/`emitDirect` and `getClientSocket`; currently uses untyped emitter params and no explicit reconnect/backoff policy controls at this utility boundary. -- `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, empty `in: []` clauses are now treated as no-op fragments (avoids accidental always-empty result filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, and applies a deterministic axios timeout to avoid unbounded hangs. +- `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, empty `in: []` and `equals: undefined` clauses are now treated as no-op fragments (avoids malformed/noisy filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, and applies a deterministic axios timeout to avoid unbounded hangs. - `util.ts`: currently re-exports from `'.'`, creating a circular/umbrella alias surface that can obscure intended subpath ownership. - root build/test config (`package.json`, `tsconfig*.json`, `jest.unit.config.js`): defines compile/test pipeline, export surface, and strictness defaults for the whole package. diff --git a/api.ts b/api.ts index f40de40..bb5f94d 100644 --- a/api.ts +++ b/api.ts @@ -34,6 +34,7 @@ export function getFilter(query: any): Record { } if ('equals' in cond) { + if (cond.equals === undefined) return undefined; return { [normalizedField]: cond.equals }; } diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index b1d334a..34837d0 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -32,5 +32,5 @@ - Added fetch-rejection normalization coverage for `httpProvider` because runtime fetch implementations may throw primitives or non-standard errors; tests now lock deterministic `RequestError` envelopes for both primitive and Error-like rejection paths. - Added response-body read-failure regression coverage for `httpProvider` because some runtimes can throw on `response.text()` stream reads; tests now lock deterministic `Invalid provider response` envelope normalization. - Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. -- Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. +- Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. - Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank URL and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). diff --git a/test/api.spec.ts b/test/api.spec.ts index d8ceda8..aa07dfb 100644 --- a/test/api.spec.ts +++ b/test/api.spec.ts @@ -54,6 +54,19 @@ describe('api/getFilter', () => { }); }); + test('ignores undefined equals fragments to avoid malformed filters', () => { + expect( + getFilter({ + where: { + OR: [{ id: { equals: undefined } }, { status: { equals: 'active' } }], + AND: [{ owner: { equals: undefined } }], + }, + }) + ).toEqual({ + $or: [{ status: 'active' }], + }); + }); + test('supports nested OR nodes inside AND clauses', () => { expect( getFilter({ From 06c6a6af08cb52fdf7ce6ae481995f2993a889b5 Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 04:03:29 -0800 Subject: [PATCH 03/11] Harden api.fetch URL validation to http(s)-only --- ANALYSIS.md | 2 +- api.ts | 11 +++++++++++ test/ANALYSIS.md | 2 +- test/README.md | 2 +- test/api.spec.ts | 2 ++ 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ANALYSIS.md b/ANALYSIS.md index 09419f2..bad188a 100644 --- a/ANALYSIS.md +++ b/ANALYSIS.md @@ -16,7 +16,7 @@ Core Node SDK/runtime utility package for Arken protocol, data handling, and gam - `.erb/`: documentation/scaffolding branding assets (currently `img/logo.png`) with low runtime risk but potential UX drift if assets are changed ad hoc. - `coverage/`: generated LCOV/Clover/JSON coverage artifacts; useful diagnostics but should remain generated-only to avoid noisy/manual drift (now documented with local `coverage/{README.md,ANALYSIS.md}`). - `websocket.ts`: lightweight socket helper exposing `emitAll`/`emitDirect` and `getClientSocket`; currently uses untyped emitter params and no explicit reconnect/backoff policy controls at this utility boundary. -- `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, empty `in: []` and `equals: undefined` clauses are now treated as no-op fragments (avoids malformed/noisy filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, and applies a deterministic axios timeout to avoid unbounded hangs. +- `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, empty `in: []` and `equals: undefined` clauses are now treated as no-op fragments (avoids malformed/noisy filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, enforces http(s)-only absolute URL protocols, and applies a deterministic axios timeout to avoid unbounded hangs. - `util.ts`: currently re-exports from `'.'`, creating a circular/umbrella alias surface that can obscure intended subpath ownership. - root build/test config (`package.json`, `tsconfig*.json`, `jest.unit.config.js`): defines compile/test pipeline, export surface, and strictness defaults for the whole package. diff --git a/api.ts b/api.ts index bb5f94d..5139fba 100644 --- a/api.ts +++ b/api.ts @@ -109,6 +109,17 @@ export async function fetch(url: string, query: FetchQuery): Promise { } const normalizedUrl = url.trim(); + let parsedUrl: URL; + + try { + parsedUrl = new URL(normalizedUrl); + } catch { + throw new Error('Invalid fetch URL'); + } + + if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') { + throw new Error('Invalid fetch URL'); + } const res = await axios.post(normalizedUrl, query, { timeout: DEFAULT_FETCH_TIMEOUT_MS, diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index 34837d0..8135bac 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -33,4 +33,4 @@ - Added response-body read-failure regression coverage for `httpProvider` because some runtimes can throw on `response.text()` stream reads; tests now lock deterministic `Invalid provider response` envelope normalization. - Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. - Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. -- Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank URL and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). +- Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank/malformed/non-http(s) URL values and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). diff --git a/test/README.md b/test/README.md index 3113948..d004968 100644 --- a/test/README.md +++ b/test/README.md @@ -6,5 +6,5 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. - `socketLink.spec.ts`: client transport routing, callback lifecycle, duplicate-delivery idempotency, unsubscribe/teardown-vs-late-response no-op behavior (link + proxy), timeout-vs-late-response race handling, single-terminal-settlement guards for resolve/error permutations (link + proxy paths), callback-boundary resolve-throw fallback behavior for mixed `error`/`result` envelopes, ID-collision guardrails, timeout reqId metadata checks, late response handling, malformed payload permutations, strict response-id handling (non-string/blank IDs), own-property callback matching/prototype-key safety (including inherited and `__proto__` ids), deserialize-failure propagation, immediate same-tick response handling, backend-only path rejection (missing method segment), alternate response IDs, server-push malformed-param resilience (for both `trpc` and `trpcResponse` fallback paths), malformed push-method filtering, and `onAny` support including non-response filtering + fallback/teardown edge paths. - `socketServer.spec.ts`: server dispatch, malformed payload handling (including invalid binary-string decode paths and decoded non-string/blank-string method payloads), response-id normalization checks (trimmed IDs on success; non-string/blank IDs dropped on error paths), whitespace-trimmed valid-method dispatch behavior, prototype/constructor path traversal rejection (including surrounding-whitespace, exact `constructor`, `prototype` segment, nested-segment variants, inherited built-in prototype paths like `core.toString`, inherited array-prototype method paths like `core.list.map`, and expanded inherited typed-array prototype methods like `core.bytes.map` and `core.floats.map`), empty-segment and whitespace-segment method-path rejection (`core..ping`, `core. ping`), missing method behavior, invalid/undecodable `params` payload behavior, listener attach/detach wiring, and safe no-op behavior when sockets do not expose `on`/`off` hooks. - `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. -- `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank URL/non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). +- `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/api.spec.ts b/test/api.spec.ts index aa07dfb..84ac60f 100644 --- a/test/api.spec.ts +++ b/test/api.spec.ts @@ -164,6 +164,8 @@ describe('api/fetch', () => { test('rejects invalid URL values before network call', async () => { await expect(apiFetch(' ', { where: {} })).rejects.toThrow('Invalid fetch URL'); + await expect(apiFetch('example.com/graphql', { where: {} })).rejects.toThrow('Invalid fetch URL'); + await expect(apiFetch('javascript:alert(1)', { where: {} })).rejects.toThrow('Invalid fetch URL'); expect(mockedAxiosPost).not.toHaveBeenCalled(); }); From e1ee50d05a7029b2df9748a4933a59657dbf3612 Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 05:53:58 -0800 Subject: [PATCH 04/11] Harden decodePayload logging and add regression tests --- binary.ts | 7 +++++-- test/ANALYSIS.md | 1 + test/README.md | 1 + test/binary.spec.ts | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 test/binary.spec.ts diff --git a/binary.ts b/binary.ts index 1884349..93073ff 100644 --- a/binary.ts +++ b/binary.ts @@ -41,7 +41,10 @@ export function decodePayload(msg) { return json; } catch (err) { - // ... - console.log(err, msg); + const raw = typeof msg === 'string' ? msg : String(msg ?? ''); + const preview = raw.length > 40 ? `${raw.slice(0, 40)}...` : raw; + const errorMessage = err instanceof Error ? err.message : String(err); + console.warn(`decodePayload failed: ${errorMessage}; payloadPreview=${preview}`); + return undefined; } } diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index 8135bac..9c6d9b1 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -34,3 +34,4 @@ - Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. - Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. - Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank/malformed/non-http(s) URL values and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). +- Added `binary/decodePayload` regression coverage to lock deterministic behavior for malformed binary payloads: decode failures now return `undefined` and log only a short payload preview (instead of dumping the full raw payload), reducing accidental sensitive-data exposure in routine logs while preserving troubleshooting context. diff --git a/test/README.md b/test/README.md index d004968..a13f06c 100644 --- a/test/README.md +++ b/test/README.md @@ -7,4 +7,5 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. - `socketServer.spec.ts`: server dispatch, malformed payload handling (including invalid binary-string decode paths and decoded non-string/blank-string method payloads), response-id normalization checks (trimmed IDs on success; non-string/blank IDs dropped on error paths), whitespace-trimmed valid-method dispatch behavior, prototype/constructor path traversal rejection (including surrounding-whitespace, exact `constructor`, `prototype` segment, nested-segment variants, inherited built-in prototype paths like `core.toString`, inherited array-prototype method paths like `core.list.map`, and expanded inherited typed-array prototype methods like `core.bytes.map` and `core.floats.map`), empty-segment and whitespace-segment method-path rejection (`core..ping`, `core. ping`), missing method behavior, invalid/undecodable `params` payload behavior, listener attach/detach wiring, and safe no-op behavior when sockets do not expose `on`/`off` hooks. - `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. - `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). +- `binary.spec.ts`: validates `binary/decodePayload` happy-path JSON decode from binary strings and failure-path behavior that returns `undefined` while logging only a short payload preview (reduces raw payload leakage in logs). - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/binary.spec.ts b/test/binary.spec.ts new file mode 100644 index 0000000..c016bd5 --- /dev/null +++ b/test/binary.spec.ts @@ -0,0 +1,32 @@ +import { binaryAgent, decodePayload } from '../binary'; + +const toBinaryString = (value: string): string => + value + .split('') + .map((char) => char.charCodeAt(0).toString(2).padStart(8, '0')) + .join(' '); + +describe('binary/decodePayload', () => { + it('decodes binary-encoded JSON payloads', () => { + const payload = { hello: 'world', count: 2 }; + const encoded = toBinaryString(JSON.stringify(payload)); + + expect(binaryAgent(encoded)).toBe(JSON.stringify(payload)); + expect(decodePayload(encoded)).toEqual(payload); + }); + + it('returns undefined and logs only a short payload preview when decode fails', () => { + const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {}); + const malformed = 'not-binary-json-payload-that-should-be-truncated-in-logs'; + + expect(decodePayload(malformed)).toBeUndefined(); + expect(warnSpy).toHaveBeenCalledTimes(1); + + const warningMessage = warnSpy.mock.calls[0][0] as string; + expect(warningMessage).toContain('decodePayload failed:'); + expect(warningMessage).toContain('payloadPreview=not-binary-json-payload-that-should-be-t...'); + expect(warningMessage).not.toContain('payload-that-should-be-truncated-in-logs'); + + warnSpy.mockRestore(); + }); +}); From cd5c19cac235994a2000eee535b2b8a4b192142f Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 06:53:47 -0800 Subject: [PATCH 05/11] Harden getFilter against array-shaped where payloads --- ANALYSIS.md | 2 +- api.ts | 2 +- test/ANALYSIS.md | 2 +- test/README.md | 2 +- test/api.spec.ts | 8 ++++++++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ANALYSIS.md b/ANALYSIS.md index bad188a..9daf2e5 100644 --- a/ANALYSIS.md +++ b/ANALYSIS.md @@ -16,7 +16,7 @@ Core Node SDK/runtime utility package for Arken protocol, data handling, and gam - `.erb/`: documentation/scaffolding branding assets (currently `img/logo.png`) with low runtime risk but potential UX drift if assets are changed ad hoc. - `coverage/`: generated LCOV/Clover/JSON coverage artifacts; useful diagnostics but should remain generated-only to avoid noisy/manual drift (now documented with local `coverage/{README.md,ANALYSIS.md}`). - `websocket.ts`: lightweight socket helper exposing `emitAll`/`emitDirect` and `getClientSocket`; currently uses untyped emitter params and no explicit reconnect/backoff policy controls at this utility boundary. -- `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, empty `in: []` and `equals: undefined` clauses are now treated as no-op fragments (avoids malformed/noisy filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, enforces http(s)-only absolute URL protocols, and applies a deterministic axios timeout to avoid unbounded hangs. +- `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, root-level array-shaped `where` payloads are now rejected as invalid/no-op filter input (prevents accidental numeric-key filter generation), empty `in: []` and `equals: undefined` clauses are now treated as no-op fragments (avoids malformed/noisy filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, enforces http(s)-only absolute URL protocols, and applies a deterministic axios timeout to avoid unbounded hangs. - `util.ts`: currently re-exports from `'.'`, creating a circular/umbrella alias surface that can obscure intended subpath ownership. - root build/test config (`package.json`, `tsconfig*.json`, `jest.unit.config.js`): defines compile/test pipeline, export surface, and strictness defaults for the whole package. diff --git a/api.ts b/api.ts index 5139fba..d7fac47 100644 --- a/api.ts +++ b/api.ts @@ -13,7 +13,7 @@ function escapeRegExp(s: string) { export function getFilter(query: any): Record { const where = query?.where; - if (!where || typeof where !== 'object') return {}; + if (!where || typeof where !== 'object' || Array.isArray(where)) return {}; // Helper to turn a single field condition into a Mongo filter fragment const buildField = (field: string, cond: any) => { diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index 9c6d9b1..b805f9d 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -32,6 +32,6 @@ - Added fetch-rejection normalization coverage for `httpProvider` because runtime fetch implementations may throw primitives or non-standard errors; tests now lock deterministic `RequestError` envelopes for both primitive and Error-like rejection paths. - Added response-body read-failure regression coverage for `httpProvider` because some runtimes can throw on `response.text()` stream reads; tests now lock deterministic `Invalid provider response` envelope normalization. - Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. -- Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. +- Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), root array-shaped `where` payloads are now rejected as no-op filters to avoid accidental index-key query fragments, empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. - Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank/malformed/non-http(s) URL values and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). - Added `binary/decodePayload` regression coverage to lock deterministic behavior for malformed binary payloads: decode failures now return `undefined` and log only a short payload preview (instead of dumping the full raw payload), reducing accidental sensitive-data exposure in routine logs while preserving troubleshooting context. diff --git a/test/README.md b/test/README.md index a13f06c..dd4073f 100644 --- a/test/README.md +++ b/test/README.md @@ -6,6 +6,6 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. - `socketLink.spec.ts`: client transport routing, callback lifecycle, duplicate-delivery idempotency, unsubscribe/teardown-vs-late-response no-op behavior (link + proxy), timeout-vs-late-response race handling, single-terminal-settlement guards for resolve/error permutations (link + proxy paths), callback-boundary resolve-throw fallback behavior for mixed `error`/`result` envelopes, ID-collision guardrails, timeout reqId metadata checks, late response handling, malformed payload permutations, strict response-id handling (non-string/blank IDs), own-property callback matching/prototype-key safety (including inherited and `__proto__` ids), deserialize-failure propagation, immediate same-tick response handling, backend-only path rejection (missing method segment), alternate response IDs, server-push malformed-param resilience (for both `trpc` and `trpcResponse` fallback paths), malformed push-method filtering, and `onAny` support including non-response filtering + fallback/teardown edge paths. - `socketServer.spec.ts`: server dispatch, malformed payload handling (including invalid binary-string decode paths and decoded non-string/blank-string method payloads), response-id normalization checks (trimmed IDs on success; non-string/blank IDs dropped on error paths), whitespace-trimmed valid-method dispatch behavior, prototype/constructor path traversal rejection (including surrounding-whitespace, exact `constructor`, `prototype` segment, nested-segment variants, inherited built-in prototype paths like `core.toString`, inherited array-prototype method paths like `core.list.map`, and expanded inherited typed-array prototype methods like `core.bytes.map` and `core.floats.map`), empty-segment and whitespace-segment method-path rejection (`core..ping`, `core. ping`), missing method behavior, invalid/undecodable `params` payload behavior, listener attach/detach wiring, and safe no-op behavior when sockets do not expose `on`/`off` hooks. - `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. -- `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). +- `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, rejects array-shaped root `where` payloads as empty/no-op filters (avoids accidental numeric-key fragments), drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). - `binary.spec.ts`: validates `binary/decodePayload` happy-path JSON decode from binary strings and failure-path behavior that returns `undefined` while logging only a short payload preview (reduces raw payload leakage in logs). - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/api.spec.ts b/test/api.spec.ts index 84ac60f..9dd3583 100644 --- a/test/api.spec.ts +++ b/test/api.spec.ts @@ -155,6 +155,14 @@ describe('api/getFilter', () => { metadata: { rarity: 'legendary', flags: ['quest'] }, }); }); + + test('returns empty filter when where is an array', () => { + expect( + getFilter({ + where: [{ id: { equals: 'abc123' } }], + }) + ).toEqual({}); + }); }); describe('api/fetch', () => { From ef1c96151ecdf6c4ae9f25ba981dcb237750251b Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 08:43:27 -0800 Subject: [PATCH 06/11] Harden provider constructor protocol validation --- test/ANALYSIS.md | 1 + test/README.md | 2 +- test/httpProvider.spec.ts | 13 +++++++++++++ web3/ANALYSIS.md | 1 + web3/README.md | 1 + web3/httpProvider.ts | 4 ++++ 6 files changed, 21 insertions(+), 1 deletion(-) diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index b805f9d..021c4a2 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -32,6 +32,7 @@ - Added fetch-rejection normalization coverage for `httpProvider` because runtime fetch implementations may throw primitives or non-standard errors; tests now lock deterministic `RequestError` envelopes for both primitive and Error-like rejection paths. - Added response-body read-failure regression coverage for `httpProvider` because some runtimes can throw on `response.text()` stream reads; tests now lock deterministic `Invalid provider response` envelope normalization. - Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. +- Added constructor protocol-guard regression coverage for `httpProvider` because non-http URL schemes (for example `ws:`) are incompatible with the helper’s HTTP fetch transport path; tests now lock deterministic early rejection (`-32602`) instead of deferred runtime failures. - Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), root array-shaped `where` payloads are now rejected as no-op filters to avoid accidental index-key query fragments, empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. - Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank/malformed/non-http(s) URL values and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). - Added `binary/decodePayload` regression coverage to lock deterministic behavior for malformed binary payloads: decode failures now return `undefined` and log only a short payload preview (instead of dumping the full raw payload), reducing accidental sensitive-data exposure in routine logs while preserving troubleshooting context. diff --git a/test/README.md b/test/README.md index dd4073f..0420560 100644 --- a/test/README.md +++ b/test/README.md @@ -5,7 +5,7 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. ## Files - `socketLink.spec.ts`: client transport routing, callback lifecycle, duplicate-delivery idempotency, unsubscribe/teardown-vs-late-response no-op behavior (link + proxy), timeout-vs-late-response race handling, single-terminal-settlement guards for resolve/error permutations (link + proxy paths), callback-boundary resolve-throw fallback behavior for mixed `error`/`result` envelopes, ID-collision guardrails, timeout reqId metadata checks, late response handling, malformed payload permutations, strict response-id handling (non-string/blank IDs), own-property callback matching/prototype-key safety (including inherited and `__proto__` ids), deserialize-failure propagation, immediate same-tick response handling, backend-only path rejection (missing method segment), alternate response IDs, server-push malformed-param resilience (for both `trpc` and `trpcResponse` fallback paths), malformed push-method filtering, and `onAny` support including non-response filtering + fallback/teardown edge paths. - `socketServer.spec.ts`: server dispatch, malformed payload handling (including invalid binary-string decode paths and decoded non-string/blank-string method payloads), response-id normalization checks (trimmed IDs on success; non-string/blank IDs dropped on error paths), whitespace-trimmed valid-method dispatch behavior, prototype/constructor path traversal rejection (including surrounding-whitespace, exact `constructor`, `prototype` segment, nested-segment variants, inherited built-in prototype paths like `core.toString`, inherited array-prototype method paths like `core.list.map`, and expanded inherited typed-array prototype methods like `core.bytes.map` and `core.floats.map`), empty-segment and whitespace-segment method-path rejection (`core..ping`, `core. ping`), missing method behavior, invalid/undecodable `params` payload behavior, listener attach/detach wiring, and safe no-op behavior when sockets do not expose `on`/`off` hooks. -- `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. +- `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs, rejects malformed/non-http(s) constructor URL values with deterministic `-32602` envelopes, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. - `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, rejects array-shaped root `where` payloads as empty/no-op filters (avoids accidental numeric-key fragments), drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). - `binary.spec.ts`: validates `binary/decodePayload` happy-path JSON decode from binary strings and failure-path behavior that returns `undefined` while logging only a short payload preview (reduces raw payload leakage in logs). - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/httpProvider.spec.ts b/test/httpProvider.spec.ts index e0bb3d9..ff721bf 100644 --- a/test/httpProvider.spec.ts +++ b/test/httpProvider.spec.ts @@ -84,6 +84,19 @@ describe('web3/httpProvider', () => { } }); + test('rejects constructor urls with non-http protocols', () => { + try { + new Provider('ws://rpc.example.org/socket'); + throw new Error('expected constructor to throw'); + } catch (error: any) { + expect(error).toMatchObject({ + code: -32602, + message: 'Invalid provider URL', + data: null, + }); + } + }); + test('rejects non-object JSON-RPC request payloads', async () => { const provider = new Provider('https://rpc.example.org'); diff --git a/web3/ANALYSIS.md b/web3/ANALYSIS.md index 36f4f24..b4e8dea 100644 --- a/web3/ANALYSIS.md +++ b/web3/ANALYSIS.md @@ -13,6 +13,7 @@ - Provider fallback pool remains hardcoded to default list (`bsc-dataseed1.ninicoin.io`) when constructor URL is not supplied. - Constructor now honors explicit `url` input, reducing hidden endpoint drift. - Constructor URL parsing now normalizes malformed endpoint inputs into deterministic request metadata (`RequestError` `-32602`) rather than surfacing runtime-specific `URL` parser exceptions. +- Constructor URL validation now also enforces http(s)-only protocols (rejects `ws:`/other schemes), which is warranted because downstream transport uses Fetch HTTP semantics and non-http schemes would fail later with less actionable errors. - Request shaping now preserves caller-supplied `request.id` (including explicit `null`); fallback `56` is only applied when the `id` field is absent. - Cache API usage is now runtime-guarded: request flow falls back to network-only mode when `caches`/`Request`/`Response` globals are unavailable. - Browser cache usage is now additionally gated by `BROWSER_CACHE_TTL > 0`; this aligns behavior with current default (`0`) so runtime cache is not populated unless explicitly enabled. diff --git a/web3/README.md b/web3/README.md index 8d223b8..a34862b 100644 --- a/web3/README.md +++ b/web3/README.md @@ -6,6 +6,7 @@ Legacy-compatible Web3 transport helpers. - `httpProvider.ts`: custom JSON-RPC provider wrapper with fetch + Cache API usage. - Constructor now honors explicit URL input before falling back to default provider pool. - Invalid constructor URLs are now normalized into deterministic `RequestError` metadata (`code: -32602`, `message: Invalid provider URL`) instead of leaking raw `URL` parser exceptions. + - Constructor URL validation now explicitly rejects non-http(s) protocols (for example `ws:`), preventing invalid transport schemes from reaching HTTP fetch paths. - Request IDs are preserved when callers provide one (including explicit `null`); fallback ID `56` is only used when the `id` field is absent. - Cache API usage is now runtime-guarded; provider falls back to network-only request flow when `caches`/`Request`/`Response` globals are unavailable. - Browser cache writes/reads are now also gated by `BROWSER_CACHE_TTL > 0`; with the default `0`, requests avoid writing stale entries to runtime cache. diff --git a/web3/httpProvider.ts b/web3/httpProvider.ts index 103a00b..ed35395 100644 --- a/web3/httpProvider.ts +++ b/web3/httpProvider.ts @@ -66,6 +66,10 @@ export default class Provider { throw new RequestError('Invalid provider URL', -32602, null); } + if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') { + throw new RequestError('Invalid provider URL', -32602, null); + } + this.url = parsedUrl; this.host = parsedUrl.host; this.path = parsedUrl.pathname; From 7db9faa0fd021fd8c44716fb6617cf9e0a542c58 Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 10:43:30 -0800 Subject: [PATCH 07/11] Harden provider constructor URL whitespace handling --- test/README.md | 2 +- test/httpProvider.spec.ts | 8 ++++++++ web3/ANALYSIS.md | 2 +- web3/README.md | 2 +- web3/httpProvider.ts | 5 ++--- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/test/README.md b/test/README.md index 0420560..50b4154 100644 --- a/test/README.md +++ b/test/README.md @@ -5,7 +5,7 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. ## Files - `socketLink.spec.ts`: client transport routing, callback lifecycle, duplicate-delivery idempotency, unsubscribe/teardown-vs-late-response no-op behavior (link + proxy), timeout-vs-late-response race handling, single-terminal-settlement guards for resolve/error permutations (link + proxy paths), callback-boundary resolve-throw fallback behavior for mixed `error`/`result` envelopes, ID-collision guardrails, timeout reqId metadata checks, late response handling, malformed payload permutations, strict response-id handling (non-string/blank IDs), own-property callback matching/prototype-key safety (including inherited and `__proto__` ids), deserialize-failure propagation, immediate same-tick response handling, backend-only path rejection (missing method segment), alternate response IDs, server-push malformed-param resilience (for both `trpc` and `trpcResponse` fallback paths), malformed push-method filtering, and `onAny` support including non-response filtering + fallback/teardown edge paths. - `socketServer.spec.ts`: server dispatch, malformed payload handling (including invalid binary-string decode paths and decoded non-string/blank-string method payloads), response-id normalization checks (trimmed IDs on success; non-string/blank IDs dropped on error paths), whitespace-trimmed valid-method dispatch behavior, prototype/constructor path traversal rejection (including surrounding-whitespace, exact `constructor`, `prototype` segment, nested-segment variants, inherited built-in prototype paths like `core.toString`, inherited array-prototype method paths like `core.list.map`, and expanded inherited typed-array prototype methods like `core.bytes.map` and `core.floats.map`), empty-segment and whitespace-segment method-path rejection (`core..ping`, `core. ping`), missing method behavior, invalid/undecodable `params` payload behavior, listener attach/detach wiring, and safe no-op behavior when sockets do not expose `on`/`off` hooks. -- `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs, rejects malformed/non-http(s) constructor URL values with deterministic `-32602` envelopes, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. +- `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs (including whitespace-padded URL input trimming), rejects malformed/non-http(s) constructor URL values with deterministic `-32602` envelopes, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. - `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, rejects array-shaped root `where` payloads as empty/no-op filters (avoids accidental numeric-key fragments), drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). - `binary.spec.ts`: validates `binary/decodePayload` happy-path JSON decode from binary strings and failure-path behavior that returns `undefined` while logging only a short payload preview (reduces raw payload leakage in logs). - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/httpProvider.spec.ts b/test/httpProvider.spec.ts index ff721bf..b1904c2 100644 --- a/test/httpProvider.spec.ts +++ b/test/httpProvider.spec.ts @@ -71,6 +71,14 @@ describe('web3/httpProvider', () => { expect(provider.url.toString()).toBe('https://rpc.example.org/custom/path'); }); + test('trims constructor url input before parsing', () => { + const provider = new Provider(' https://rpc.example.org/trimmed/path '); + + expect(provider.host).toBe('rpc.example.org'); + expect(provider.path).toBe('/trimmed/path'); + expect(provider.url.toString()).toBe('https://rpc.example.org/trimmed/path'); + }); + test('throws deterministic RequestError shape when constructor url is invalid', () => { try { new Provider('http://:invalid-url'); diff --git a/web3/ANALYSIS.md b/web3/ANALYSIS.md index b4e8dea..78fa831 100644 --- a/web3/ANALYSIS.md +++ b/web3/ANALYSIS.md @@ -11,7 +11,7 @@ ## Key findings - Provider fallback pool remains hardcoded to default list (`bsc-dataseed1.ninicoin.io`) when constructor URL is not supplied. -- Constructor now honors explicit `url` input, reducing hidden endpoint drift. +- Constructor now honors explicit `url` input (with surrounding-whitespace trim), reducing hidden endpoint drift and avoiding false-negative URL parsing errors from padded env/config values. - Constructor URL parsing now normalizes malformed endpoint inputs into deterministic request metadata (`RequestError` `-32602`) rather than surfacing runtime-specific `URL` parser exceptions. - Constructor URL validation now also enforces http(s)-only protocols (rejects `ws:`/other schemes), which is warranted because downstream transport uses Fetch HTTP semantics and non-http schemes would fail later with less actionable errors. - Request shaping now preserves caller-supplied `request.id` (including explicit `null`); fallback `56` is only applied when the `id` field is absent. diff --git a/web3/README.md b/web3/README.md index a34862b..8466196 100644 --- a/web3/README.md +++ b/web3/README.md @@ -4,7 +4,7 @@ Legacy-compatible Web3 transport helpers. ## Files - `httpProvider.ts`: custom JSON-RPC provider wrapper with fetch + Cache API usage. - - Constructor now honors explicit URL input before falling back to default provider pool. + - Constructor now honors explicit URL input (after whitespace trim) before falling back to default provider pool. - Invalid constructor URLs are now normalized into deterministic `RequestError` metadata (`code: -32602`, `message: Invalid provider URL`) instead of leaking raw `URL` parser exceptions. - Constructor URL validation now explicitly rejects non-http(s) protocols (for example `ws:`), preventing invalid transport schemes from reaching HTTP fetch paths. - Request IDs are preserved when callers provide one (including explicit `null`); fallback ID `56` is only used when the `id` field is absent. diff --git a/web3/httpProvider.ts b/web3/httpProvider.ts index ed35395..9374d56 100644 --- a/web3/httpProvider.ts +++ b/web3/httpProvider.ts @@ -54,10 +54,9 @@ export default class Provider { const providers = JSON.parse(PROVIDERS); + const normalizedInputUrl = typeof url === 'string' ? url.trim() : ''; const resolvedProviderUrl = - typeof url === 'string' && url.trim().length > 0 - ? url - : providers[Math.floor(Math.random() * providers.length)]; + normalizedInputUrl.length > 0 ? normalizedInputUrl : providers[Math.floor(Math.random() * providers.length)]; let parsedUrl: URL; try { From 345d15bdc8ffe20b35831b4e237e1bf8de0636f2 Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 11:43:46 -0800 Subject: [PATCH 08/11] Harden httpProvider cache writes as best-effort --- test/ANALYSIS.md | 1 + test/README.md | 2 +- test/httpProvider.spec.ts | 15 +++++++++++++++ web3/ANALYSIS.md | 1 + web3/README.md | 1 + web3/httpProvider.ts | 31 ++++++++++++++++++++++--------- 6 files changed, 41 insertions(+), 10 deletions(-) diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index 021c4a2..e8c9cf4 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -31,6 +31,7 @@ - Added malformed-network-response regression coverage for `httpProvider` to ensure non-Fetch-like response objects (including non-finite status metadata) are rejected with deterministic provider errors before runtime method access faults or invalid status propagation. - Added fetch-rejection normalization coverage for `httpProvider` because runtime fetch implementations may throw primitives or non-standard errors; tests now lock deterministic `RequestError` envelopes for both primitive and Error-like rejection paths. - Added response-body read-failure regression coverage for `httpProvider` because some runtimes can throw on `response.text()` stream reads; tests now lock deterministic `Invalid provider response` envelope normalization. +- Added cache-write failure regression coverage for `httpProvider` because Cache API persistence can fail at runtime even when read paths exist; tests now lock best-effort behavior so transport success is not coupled to cache `put` availability. - Added constructor-URL validation regression coverage for `httpProvider` because malformed endpoint strings previously surfaced raw runtime URL parsing exceptions; tests now lock deterministic `RequestError` metadata (`-32602`, `Invalid provider URL`) for safer upstream error handling. - Added constructor protocol-guard regression coverage for `httpProvider` because non-http URL schemes (for example `ws:`) are incompatible with the helper’s HTTP fetch transport path; tests now lock deterministic early rejection (`-32602`) instead of deferred runtime failures. - Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), root array-shaped `where` payloads are now rejected as no-op filters to avoid accidental index-key query fragments, empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. diff --git a/test/README.md b/test/README.md index 50b4154..1ac5825 100644 --- a/test/README.md +++ b/test/README.md @@ -5,7 +5,7 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. ## Files - `socketLink.spec.ts`: client transport routing, callback lifecycle, duplicate-delivery idempotency, unsubscribe/teardown-vs-late-response no-op behavior (link + proxy), timeout-vs-late-response race handling, single-terminal-settlement guards for resolve/error permutations (link + proxy paths), callback-boundary resolve-throw fallback behavior for mixed `error`/`result` envelopes, ID-collision guardrails, timeout reqId metadata checks, late response handling, malformed payload permutations, strict response-id handling (non-string/blank IDs), own-property callback matching/prototype-key safety (including inherited and `__proto__` ids), deserialize-failure propagation, immediate same-tick response handling, backend-only path rejection (missing method segment), alternate response IDs, server-push malformed-param resilience (for both `trpc` and `trpcResponse` fallback paths), malformed push-method filtering, and `onAny` support including non-response filtering + fallback/teardown edge paths. - `socketServer.spec.ts`: server dispatch, malformed payload handling (including invalid binary-string decode paths and decoded non-string/blank-string method payloads), response-id normalization checks (trimmed IDs on success; non-string/blank IDs dropped on error paths), whitespace-trimmed valid-method dispatch behavior, prototype/constructor path traversal rejection (including surrounding-whitespace, exact `constructor`, `prototype` segment, nested-segment variants, inherited built-in prototype paths like `core.toString`, inherited array-prototype method paths like `core.list.map`, and expanded inherited typed-array prototype methods like `core.bytes.map` and `core.floats.map`), empty-segment and whitespace-segment method-path rejection (`core..ping`, `core. ping`), missing method behavior, invalid/undecodable `params` payload behavior, listener attach/detach wiring, and safe no-op behavior when sockets do not expose `on`/`off` hooks. -- `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs (including whitespace-padded URL input trimming), rejects malformed/non-http(s) constructor URL values with deterministic `-32602` envelopes, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. +- `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs (including whitespace-padded URL input trimming), rejects malformed/non-http(s) constructor URL values with deterministic `-32602` envelopes, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, treats cache-write failures as best-effort (request still resolves), rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. - `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, rejects array-shaped root `where` payloads as empty/no-op filters (avoids accidental numeric-key fragments), drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). - `binary.spec.ts`: validates `binary/decodePayload` happy-path JSON decode from binary strings and failure-path behavior that returns `undefined` while logging only a short payload preview (reduces raw payload leakage in logs). - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/httpProvider.spec.ts b/test/httpProvider.spec.ts index b1904c2..d5d11b0 100644 --- a/test/httpProvider.spec.ts +++ b/test/httpProvider.spec.ts @@ -257,6 +257,21 @@ describe('web3/httpProvider', () => { expect((global as any).fetch).toHaveBeenCalledTimes(1); }); + test('treats cache write failures as best-effort and still resolves provider response', async () => { + (global as any).caches = { + open: jest.fn(async () => ({ + match: jest.fn(async () => null), + put: jest.fn(async () => { + throw new Error('cache write unavailable'); + }), + })), + }; + + const provider = new Provider('https://rpc.example.org'); + await expect(provider.request({ method: 'eth_chainId', params: [], id: 9012 })).resolves.toBe(9012); + expect((global as any).fetch).toHaveBeenCalledTimes(1); + }); + test('rejects when fetch exceeds provider timeout window', async () => { jest.useFakeTimers(); try { diff --git a/web3/ANALYSIS.md b/web3/ANALYSIS.md index 78fa831..b2420d5 100644 --- a/web3/ANALYSIS.md +++ b/web3/ANALYSIS.md @@ -34,6 +34,7 @@ - Network fetch results now validate a minimal Fetch-like response shape before status parsing (`ok/status/statusText/text`) and require `status` to be finite, preventing runtime crashes or malformed `NaN` status propagation when custom fetch polyfills return invalid response objects. - Non-RequestError fetch rejections are now normalized into deterministic provider `RequestError` envelopes (`-32000`) so caller behavior is stable even when runtimes throw primitives/non-standard errors. - Response body stream-read failures (`response.text()` throws/rejects) are now normalized to `Invalid provider response` so transport callers receive a deterministic provider-error envelope instead of runtime-specific stream exceptions. +- Cache writes are now explicitly best-effort (wrapped/suppressed) because some worker/browser runtimes expose read-capable cache handles with failing `put` behavior; this avoids surfacing cache persistence failures as transport request failures. ## Risks / gaps - Hardcoded provider endpoint and random re-selection logic reduce explicit environment control. diff --git a/web3/README.md b/web3/README.md index 8466196..6f83759 100644 --- a/web3/README.md +++ b/web3/README.md @@ -24,6 +24,7 @@ Legacy-compatible Web3 transport helpers. - Malformed network response objects that do not expose a valid Fetch-like shape (`ok/status/statusText/text`) or provide non-finite `status` values are now rejected early with a deterministic `Invalid provider response` error instead of propagating invalid status metadata. - Raw fetch rejections are normalized into deterministic `RequestError` envelopes (`code: -32000`), preserving Error messages when available and falling back to `Provider request failed` for non-Error throws. - Response body read failures (`response.text()` stream/read errors) are normalized to `Invalid provider response` to avoid leaking runtime-specific stream exceptions to higher-level callers. + - Runtime cache writes are now best-effort: cache `put` failures are swallowed so successful provider responses still resolve (and 403 handling still proceeds) even when Cache API persistence is unavailable. ## Notes - This folder currently exposes one monolithic provider implementation. diff --git a/web3/httpProvider.ts b/web3/httpProvider.ts index 9374d56..19d06f1 100644 --- a/web3/httpProvider.ts +++ b/web3/httpProvider.ts @@ -110,6 +110,26 @@ export default class Provider { }; } + private async safeCachePut(cache: any, cacheKey: any, body: string, response: any): Promise { + if (!cache || !cacheKey || typeof Response === 'undefined') { + return; + } + + try { + const cacheHeaders = { 'Cache-Control': `public, max-age=${BROWSER_CACHE_TTL}` }; + await cache.put( + cacheKey, + new Response(body, { + status: response?.status, + statusText: response?.statusText, + headers: cacheHeaders, + }) + ); + } catch { + // Best-effort cache write: request flow should not fail when runtime cache put is unavailable. + } + } + private async fetchWithTimeout(url: string, init: any): Promise { let timeoutHandle: ReturnType | undefined; const canAbort = typeof AbortController !== 'undefined'; @@ -224,11 +244,7 @@ export default class Provider { if (!response.ok) { if (response.status === 403) { - if (cache && cacheKey && typeof Response !== 'undefined') { - const fullBody = JSON.stringify({}); - const cacheHeaders = { 'Cache-Control': `public, max-age=${BROWSER_CACHE_TTL}` }; - await cache.put(cacheKey, new Response(fullBody, { ...response, headers: cacheHeaders })); - } + await this.safeCachePut(cache, cacheKey, JSON.stringify({}), response); const availableProviders: string[] = JSON.parse(PROVIDERS); const currentProvider = this.url.toString(); @@ -267,10 +283,7 @@ export default class Provider { responseBody && typeof responseBody === 'object' && !Array.isArray(responseBody) ? responseBody : {}; const fullBody = JSON.stringify(responseEnvelope); - if (cache && cacheKey && typeof Response !== 'undefined') { - const cacheHeaders = { 'Cache-Control': `public, max-age=${BROWSER_CACHE_TTL}` }; - await cache.put(cacheKey, new Response(fullBody, { ...response, headers: cacheHeaders })); - } + await this.safeCachePut(cache, cacheKey, fullBody, response); if ('error' in responseEnvelope) { const errorMessage = From f9ed7bcbc88d8d567c745e9afc7c0bb883554a7d Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 13:44:34 -0800 Subject: [PATCH 09/11] fix: remove util circular root re-export and add coverage --- ANALYSIS.md | 2 +- test/ANALYSIS.md | 1 + test/README.md | 1 + test/util.spec.ts | 18 ++++++++++++++++++ util.ts | 5 ++++- util/ANALYSIS.md | 9 +++++++++ util/README.md | 10 ++++++++++ util/api.ts | 3 +++ util/rpc.ts | 3 +++ 9 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 test/util.spec.ts create mode 100644 util/ANALYSIS.md create mode 100644 util/README.md create mode 100644 util/api.ts create mode 100644 util/rpc.ts diff --git a/ANALYSIS.md b/ANALYSIS.md index 9daf2e5..11847ea 100644 --- a/ANALYSIS.md +++ b/ANALYSIS.md @@ -17,7 +17,7 @@ Core Node SDK/runtime utility package for Arken protocol, data handling, and gam - `coverage/`: generated LCOV/Clover/JSON coverage artifacts; useful diagnostics but should remain generated-only to avoid noisy/manual drift (now documented with local `coverage/{README.md,ANALYSIS.md}`). - `websocket.ts`: lightweight socket helper exposing `emitAll`/`emitDirect` and `getClientSocket`; currently uses untyped emitter params and no explicit reconnect/backoff policy controls at this utility boundary. - `api.ts`: query-to-Mongo filter adapter (`getFilter`) and HTTP POST helper (`fetch`) used for dynamic filtering and remote query dispatch; id-field normalization applies consistently across `equals`/`contains`/`in` operators, scalar shorthand field values map to equality filters (root + nested logical nodes), non-plain object values (e.g., `Date`, ObjectId-like values) are preserved as equality filters, plain-object values without operator keys are now preserved as direct equality filters (instead of being silently dropped), logical nesting preserves child `OR` groups inside parent `AND` clauses, singleton-object shorthand for logical groups (`OR`/`AND` as object instead of array) is normalized for resilient filter parsing, root-level array-shaped `where` payloads are now rejected as invalid/no-op filter input (prevents accidental numeric-key filter generation), empty `in: []` and `equals: undefined` clauses are now treated as no-op fragments (avoids malformed/noisy filters in mixed logical queries), and the HTTP helper now fail-fast validates URL/query payload shape, trims validated URL input before dispatch, enforces http(s)-only absolute URL protocols, and applies a deterministic axios timeout to avoid unbounded hangs. -- `util.ts`: currently re-exports from `'.'`, creating a circular/umbrella alias surface that can obscure intended subpath ownership. +- `util.ts`: now explicitly re-exports utility bridges from `util/api` and `util/rpc`, removing prior package-root circular aliasing and clarifying subpath ownership. - root build/test config (`package.json`, `tsconfig*.json`, `jest.unit.config.js`): defines compile/test pipeline, export surface, and strictness defaults for the whole package. ## Omniverse architecture perspective diff --git a/test/ANALYSIS.md b/test/ANALYSIS.md index e8c9cf4..8e9c6c2 100644 --- a/test/ANALYSIS.md +++ b/test/ANALYSIS.md @@ -37,3 +37,4 @@ - Added `api/getFilter` regression coverage to ensure `id` criteria normalize to `_id` across `equals`/`in`/`contains` operators, scalar shorthand conditions (e.g., `{ id: 'abc' }`) are treated as equality checks in both root and nested logical nodes, singleton-object `OR`/`AND` shorthand is normalized into logical clauses, plain-object values without operator keys are preserved as equality filters (instead of being dropped), root array-shaped `where` payloads are now rejected as no-op filters to avoid accidental index-key query fragments, empty `contains` clauses remain no-op within logical groups, empty `in: []` clauses are also treated as no-op fragments (preventing accidental always-empty filters), `equals: undefined` fragments are ignored as no-op filters (preventing malformed `{ field: undefined }` predicates), and nested logical groups (e.g., `AND` containing `OR`) are preserved in generated Mongo filters. - Added `api/fetch` regression coverage because helper calls can fail non-deterministically without envelope validation/timeouts; tests now lock fail-fast rejection for blank/malformed/non-http(s) URL values and non-object query payloads, verify URL inputs are trimmed before dispatch, and verify axios requests always include deterministic timeout (`10000ms`). - Added `binary/decodePayload` regression coverage to lock deterministic behavior for malformed binary payloads: decode failures now return `undefined` and log only a short payload preview (instead of dumping the full raw payload), reducing accidental sensitive-data exposure in routine logs while preserving troubleshooting context. +- Added `util` subpath export regression coverage (`test/util.spec.ts`) to verify API/RPC helpers remain available without depending on circular `util.ts -> '.'` package-root re-export coupling. diff --git a/test/README.md b/test/README.md index 1ac5825..1f3a0db 100644 --- a/test/README.md +++ b/test/README.md @@ -8,4 +8,5 @@ Protocol-focused tests for `@arken/node` socket tRPC wrappers. - `httpProvider.spec.ts`: verifies `web3/httpProvider` honors explicit constructor URLs (including whitespace-padded URL input trimming), rejects malformed/non-http(s) constructor URL values with deterministic `-32602` envelopes, rejects malformed non-object JSON-RPC payloads with deterministic `-32600` invalid-request errors, normalizes whitespace-padded JSON-RPC method names before network submission, preserves caller-provided JSON-RPC IDs (including explicit `null`, with fallback `56` only when `id` is absent), keeps caller-owned request objects immutable while applying defaults internally, degrades safely to network-only flow when Cache API globals are unavailable, ignores malformed cache hits by refetching from network, treats cache-write failures as best-effort (request still resolves), rejects hung requests once provider timeout budget is exceeded, aborts in-flight fetches on timeout when abort signaling is available, normalizes abort-triggered fetch rejections into timeout-shaped `RequestError` envelopes, fails closed on 403 when no alternate providers are configured (no unbounded retry recursion), normalizes non-object JSON response envelopes (for example `null`) without runtime `TypeError` crashes, coerces malformed RPC error envelopes into deterministic numeric-code/message fallbacks, rejects malformed non-Fetch-like network response objects (including non-finite status values) with a deterministic provider error envelope, normalizes `response.text()` read/stream failures into deterministic provider errors, and normalizes both primitive and Error-like fetch rejections into stable provider `RequestError` envelopes. - `api.spec.ts`: verifies `getFilter` maps `id` operator variants (`equals`/`in`/`contains`) to `_id` consistently, supports scalar shorthand equality inputs at root and nested logical nodes (e.g., `{ id: 'abc' }`), normalizes singleton-object logical shorthand (`OR`/`AND` as objects) into valid clauses, preserves non-plain object equality values (e.g., `Date`, `ObjectId`) instead of dropping them, preserves plain-object equality filters when no operator keys are present, rejects array-shaped root `where` payloads as empty/no-op filters (avoids accidental numeric-key fragments), drops no-op empty `contains` fragments inside logical OR/AND clauses, drops no-op empty `in: []` fragments inside logical OR/AND clauses, and preserves nested logical composition (e.g., `AND` entries containing `OR` groups). Also covers `api/fetch` fail-fast validation for blank/malformed/non-http(s) URLs and non-object query payloads, validates URL-trimming before dispatch, and validates deterministic axios timeout configuration (`10000ms`). - `binary.spec.ts`: validates `binary/decodePayload` happy-path JSON decode from binary strings and failure-path behavior that returns `undefined` while logging only a short payload preview (reduces raw payload leakage in logs). +- `util.spec.ts`: verifies `@arken/node/util` subpath exports expose API/RPC helpers (`getFilter`, `serialize`, `deserialize`) without relying on circular package-root re-export behavior. - `NOTES.md`: tracking notes for additional test coverage. diff --git a/test/util.spec.ts b/test/util.spec.ts new file mode 100644 index 0000000..3b6152a --- /dev/null +++ b/test/util.spec.ts @@ -0,0 +1,18 @@ +// arken/packages/node/test/util.spec.ts + +import * as util from '../util'; + +describe('util subpath exports', () => { + test('exposes api helpers without circular root re-export dependency', () => { + expect(typeof util.getFilter).toBe('function'); + expect(util.getFilter({ where: { id: { equals: 'abc' } } })).toEqual({ _id: 'abc' }); + }); + + test('exposes rpc helpers', () => { + expect(typeof util.serialize).toBe('function'); + expect(typeof util.deserialize).toBe('function'); + + const encoded = util.serialize({ x: 1 }); + expect(util.deserialize(encoded)).toEqual({ x: 1 }); + }); +}); diff --git a/util.ts b/util.ts index dc0dc89..813639a 100644 --- a/util.ts +++ b/util.ts @@ -1 +1,4 @@ -export * from '.'; +// arken/node/util.ts + +export * from './util/api'; +export * from './util/rpc'; diff --git a/util/ANALYSIS.md b/util/ANALYSIS.md new file mode 100644 index 0000000..a82b750 --- /dev/null +++ b/util/ANALYSIS.md @@ -0,0 +1,9 @@ +# arken/packages/node/util/ANALYSIS.md + +## Scope +Utility subpath re-export surface for `@arken/node`. + +## Change rationale (2026-02-21) +- Replaced root-level `util.ts` `export * from '.'` pattern with explicit `api` + `rpc` re-exports. +- Added dedicated `util/api.ts` and `util/rpc.ts` bridge files to avoid circular package-root coupling and keep subpath ownership explicit. +- Added targeted test coverage (`test/util.spec.ts`) to lock expected exports. diff --git a/util/README.md b/util/README.md new file mode 100644 index 0000000..fa14c7a --- /dev/null +++ b/util/README.md @@ -0,0 +1,10 @@ +# arken/packages/node/util + +Compatibility re-exports for utility-focused subpath imports. + +## Files +- `api.ts`: re-exports `../api` helpers. +- `rpc.ts`: re-exports `../rpc` helpers. + +## Why this exists +Keeps `@arken/node/util` focused on utility modules without re-exporting from package root (which risked circular export coupling). diff --git a/util/api.ts b/util/api.ts new file mode 100644 index 0000000..3c85cb6 --- /dev/null +++ b/util/api.ts @@ -0,0 +1,3 @@ +// arken/node/util/api.ts + +export * from '../api'; diff --git a/util/rpc.ts b/util/rpc.ts new file mode 100644 index 0000000..0982673 --- /dev/null +++ b/util/rpc.ts @@ -0,0 +1,3 @@ +// arken/node/util/rpc.ts + +export * from '../rpc'; From 123f5ff1807900aca0c999648ab62ab54c51ba9a Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 21 Feb 2026 14:13:48 -0800 Subject: [PATCH 10/11] Fail closed on invalid provider JSON responses --- test/httpProvider.spec.ts | 22 ++++++++++++++++++++++ web3/ANALYSIS.md | 1 + web3/README.md | 1 + web3/httpProvider.ts | 4 ++-- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/test/httpProvider.spec.ts b/test/httpProvider.spec.ts index d5d11b0..30a7adc 100644 --- a/test/httpProvider.spec.ts +++ b/test/httpProvider.spec.ts @@ -396,6 +396,28 @@ describe('web3/httpProvider', () => { await expect(provider.request({ method: 'eth_chainId', params: [], id: 1011 })).resolves.toBeUndefined(); }); + test('rejects invalid JSON response bodies with deterministic provider error', async () => { + class InvalidJsonBodyResponse { + ok = true; + status = 200; + statusText = 'OK'; + + async text() { + return 'not-json'; + } + } + + (global as any).fetch = jest.fn(async () => new InvalidJsonBodyResponse()); + + const provider = new Provider('https://rpc.example.org'); + + await expect(provider.request({ method: 'eth_chainId', params: [], id: 1018 })).rejects.toMatchObject({ + code: -32000, + message: 'Invalid provider response', + data: null, + }); + }); + test('normalizes malformed rpc error envelope to deterministic RequestError shape', async () => { class InvalidErrorEnvelopeResponse { ok = true; diff --git a/web3/ANALYSIS.md b/web3/ANALYSIS.md index b2420d5..0b68a58 100644 --- a/web3/ANALYSIS.md +++ b/web3/ANALYSIS.md @@ -30,6 +30,7 @@ - Method names are now normalized with `trim()` before submission so callers with padded method strings still produce canonical RPC method keys. - Request-default injection now uses a cloned envelope, preventing side-effect mutation of caller-provided JSON-RPC request objects. - Parsed response bodies are now envelope-normalized (`object` only) so primitive JSON payloads (for example `null`) do not trigger `'in'` operator runtime faults during error/result checks. +- Invalid JSON response bodies are now treated as deterministic provider failures (`Invalid provider response`) because silently coercing parse failures to `{}` masked upstream transport corruption and could leak undefined-success semantics to callers. - RPC error envelopes now normalize malformed payload metadata (blank/non-string `message`, non-numeric `code`) into deterministic `RequestError` defaults so upstream handlers do not receive undefined/stringly-typed error codes. - Network fetch results now validate a minimal Fetch-like response shape before status parsing (`ok/status/statusText/text`) and require `status` to be finite, preventing runtime crashes or malformed `NaN` status propagation when custom fetch polyfills return invalid response objects. - Non-RequestError fetch rejections are now normalized into deterministic provider `RequestError` envelopes (`-32000`) so caller behavior is stable even when runtimes throw primitives/non-standard errors. diff --git a/web3/README.md b/web3/README.md index 6f83759..4950961 100644 --- a/web3/README.md +++ b/web3/README.md @@ -20,6 +20,7 @@ Legacy-compatible Web3 transport helpers. - Whitespace-padded JSON-RPC method names are now normalized (`trim`) before network submission, preventing avoidable upstream method mismatch errors. - Provider request normalization no longer mutates caller-owned request objects while still applying deterministic JSON-RPC defaults (`jsonrpc`, fallback `id=56`). - Parsed non-object JSON response payloads (e.g. `null`) are normalized to an empty envelope, preventing `TypeError` during error/result field checks. + - Malformed JSON response bodies now fail closed with deterministic `Invalid provider response` errors instead of silently coercing to empty envelopes and returning `undefined` results. - Malformed RPC error envelopes now normalize to deterministic `RequestError` metadata (`message` fallback + numeric `code` fallback), avoiding undefined/string code leaks to callers. - Malformed network response objects that do not expose a valid Fetch-like shape (`ok/status/statusText/text`) or provide non-finite `status` values are now rejected early with a deterministic `Invalid provider response` error instead of propagating invalid status metadata. - Raw fetch rejections are normalized into deterministic `RequestError` envelopes (`code: -32000`), preserving Error messages when available and falling back to `Provider request failed` for non-Error throws. diff --git a/web3/httpProvider.ts b/web3/httpProvider.ts index 19d06f1..944b728 100644 --- a/web3/httpProvider.ts +++ b/web3/httpProvider.ts @@ -275,8 +275,8 @@ export default class Provider { try { responseBody = JSON.parse(responseBody); - } catch (e) { - responseBody = {}; + } catch { + throw new RequestError('Invalid provider response', INVALID_PROVIDER_RESPONSE_ERROR_CODE, null); } const responseEnvelope = From 56f9f99a4e364287361900a1169ef2a2e7b1f12b Mon Sep 17 00:00:00 2001 From: highruned Date: Sat, 28 Feb 2026 23:12:31 -0800 Subject: [PATCH 11/11] update --- .rush/temp/shrinkwrap-deps.json | 580 +++++++++++++++++--------------- util.ts | 7 + 2 files changed, 308 insertions(+), 279 deletions(-) diff --git a/.rush/temp/shrinkwrap-deps.json b/.rush/temp/shrinkwrap-deps.json index 1574605..a0f8fbd 100644 --- a/.rush/temp/shrinkwrap-deps.json +++ b/.rush/temp/shrinkwrap-deps.json @@ -1,75 +1,75 @@ { - "../../node": "../../node:LvjeXNRaP97G6/qNVtVDsvDWmARuYVjEBPxShvEeVeM=:", - "/@babel/code-frame/7.27.1": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "/@babel/compat-data/7.28.5": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", - "/@babel/core/7.28.5": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", - "/@babel/generator/7.28.5": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", - "/@babel/helper-compilation-targets/7.27.2": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "../../node": "../../node:T9AEHYRQ22jknBJL2JzA1IWbgqqvke1gidVuQnOkgE8=:", + "/@babel/code-frame/7.29.0": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "/@babel/compat-data/7.29.0": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "/@babel/core/7.29.0": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "/@babel/generator/7.29.1": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "/@babel/helper-compilation-targets/7.28.6": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "/@babel/helper-globals/7.28.0": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "/@babel/helper-module-imports/7.27.1": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "/@babel/helper-module-transforms/7.28.3_@babel+core@7.28.5": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "/@babel/helper-plugin-utils/7.27.1": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "/@babel/helper-module-imports/7.28.6": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "/@babel/helper-module-transforms/7.28.6_@babel+core@7.29.0": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "/@babel/helper-plugin-utils/7.28.6": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "/@babel/helper-string-parser/7.27.1": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "/@babel/helper-validator-identifier/7.28.5": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "/@babel/helper-validator-option/7.27.1": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "/@babel/helpers/7.28.4": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", - "/@babel/parser/7.28.5": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", - "/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.28.5": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "/@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.28.5": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.28.5": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "/@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.28.5": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "/@babel/plugin-syntax-import-attributes/7.24.7_@babel+core@7.28.5": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", - "/@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.28.5": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.28.5": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "/@babel/plugin-syntax-jsx/7.27.1_@babel+core@7.28.5": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.28.5": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.28.5": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.28.5": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.28.5": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.28.5": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.28.5": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "/@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.28.5": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.28.5": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "/@babel/plugin-syntax-typescript/7.27.1_@babel+core@7.28.5": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "/@babel/template/7.27.2": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "/@babel/traverse/7.28.5": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", - "/@babel/types/7.28.5": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "/@babel/helpers/7.28.6": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "/@babel/parser/7.29.0": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.29.0": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "/@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.29.0": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.29.0": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "/@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.29.0": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "/@babel/plugin-syntax-import-attributes/7.28.6_@babel+core@7.29.0": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "/@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.29.0": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.29.0": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "/@babel/plugin-syntax-jsx/7.28.6_@babel+core@7.29.0": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.29.0": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.29.0": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.29.0": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.29.0": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.29.0": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.29.0": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "/@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.29.0": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.29.0": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "/@babel/plugin-syntax-typescript/7.28.6_@babel+core@7.29.0": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "/@babel/template/7.28.6": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "/@babel/traverse/7.29.0": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "/@babel/types/7.29.0": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "/@bcoe/v8-coverage/0.2.3": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "/@eslint-community/eslint-utils/4.4.0_eslint@8.57.0": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "/@eslint-community/regexpp/4.12.1": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "/@eslint-community/eslint-utils/4.9.1_eslint@8.57.1": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "/@eslint-community/regexpp/4.12.2": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "/@eslint/eslintrc/2.1.4": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "/@eslint/js/8.57.0": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "/@ethersproject/abi/5.7.0": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "/@ethersproject/abstract-provider/5.7.0": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "/@ethersproject/abstract-signer/5.7.0": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "/@ethersproject/address/5.7.0": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "/@ethersproject/base64/5.7.0": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "/@ethersproject/basex/5.7.0": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "/@ethersproject/bignumber/5.7.0": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "/@ethersproject/bytes/5.7.0": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "/@ethersproject/constants/5.7.0": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "/@ethersproject/contracts/5.7.0": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "/@ethersproject/hash/5.7.0": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "/@ethersproject/hdnode/5.7.0": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "/@ethersproject/json-wallets/5.7.0": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "/@ethersproject/keccak256/5.7.0": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "/@ethersproject/logger/5.7.0": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "/@ethersproject/networks/5.7.1": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "/@ethersproject/pbkdf2/5.7.0": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "/@ethersproject/properties/5.7.0": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "/@ethersproject/providers/5.7.2": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "/@ethersproject/random/5.7.0": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "/@ethersproject/rlp/5.7.0": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "/@ethersproject/sha2/5.7.0": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "/@ethersproject/signing-key/5.7.0": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "/@ethersproject/solidity/5.7.0": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "/@ethersproject/strings/5.7.0": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "/@ethersproject/transactions/5.7.0": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "/@ethersproject/units/5.7.0": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "/@ethersproject/wallet/5.7.0": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "/@ethersproject/web/5.7.1": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "/@ethersproject/wordlists/5.7.0": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "/@humanwhocodes/config-array/0.11.14": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "/@eslint/js/8.57.1": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "/@ethersproject/abi/5.8.0": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", + "/@ethersproject/abstract-provider/5.8.0": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", + "/@ethersproject/abstract-signer/5.8.0": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", + "/@ethersproject/address/5.8.0": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", + "/@ethersproject/base64/5.8.0": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", + "/@ethersproject/basex/5.8.0": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", + "/@ethersproject/bignumber/5.8.0": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", + "/@ethersproject/bytes/5.8.0": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", + "/@ethersproject/constants/5.8.0": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", + "/@ethersproject/contracts/5.8.0": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", + "/@ethersproject/hash/5.8.0": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", + "/@ethersproject/hdnode/5.8.0": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", + "/@ethersproject/json-wallets/5.8.0": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", + "/@ethersproject/keccak256/5.8.0": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", + "/@ethersproject/logger/5.8.0": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", + "/@ethersproject/networks/5.8.0": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", + "/@ethersproject/pbkdf2/5.8.0": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", + "/@ethersproject/properties/5.8.0": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", + "/@ethersproject/providers/5.8.0": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", + "/@ethersproject/random/5.8.0": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", + "/@ethersproject/rlp/5.8.0": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", + "/@ethersproject/sha2/5.8.0": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", + "/@ethersproject/signing-key/5.8.0": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", + "/@ethersproject/solidity/5.8.0": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==", + "/@ethersproject/strings/5.8.0": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", + "/@ethersproject/transactions/5.8.0": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", + "/@ethersproject/units/5.8.0": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", + "/@ethersproject/wallet/5.8.0": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", + "/@ethersproject/web/5.8.0": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", + "/@ethersproject/wordlists/5.8.0": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", + "/@humanwhocodes/config-array/0.13.0": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "/@humanwhocodes/module-importer/1.0.1": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "/@humanwhocodes/object-schema/2.0.3": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "/@iden3/bigarray/0.0.2": "sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g==", @@ -93,9 +93,10 @@ "/@jridgewell/gen-mapping/0.3.13": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "/@jridgewell/remapping/2.3.5": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "/@jridgewell/resolve-uri/3.1.2": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "/@jridgewell/sourcemap-codec/1.5.0": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "/@jridgewell/sourcemap-codec/1.5.5": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "/@jridgewell/trace-mapping/0.3.31": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "/@mongodb-js/saslprep/1.3.1": "sha512-6nZrq5kfAz0POWyhljnbWQQJQ5uT8oE2ddX303q1uY0tWsivWKgBDXBBvuFPwOqRRalXJuVO9EjOdVtuhLX0zg==", + "/@mongodb-js/saslprep/1.4.6": "sha512-y+x3H1xBZd38n10NZF/rEBlvDOOMQ6LKUTHqr8R9VkJ+mmQOYtJFxIlkkK8fZrtOiL6VixbOBWMbZGBdal3Z1g==", + "/@noble/hashes/1.8.0": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", "/@nodelib/fs.scandir/2.1.5": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "/@nodelib/fs.stat/2.0.5": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "/@nodelib/fs.walk/1.2.8": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", @@ -105,70 +106,79 @@ "/@otplib/preset-default/12.0.1": "sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==", "/@otplib/preset-v11/12.0.1": "sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==", "/@puppeteer/browsers/2.3.0": "sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==", - "/@redis/bloom/1.2.0_@redis+client@1.6.0": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", - "/@redis/client/1.6.0": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==", - "/@redis/graph/1.1.1_@redis+client@1.6.0": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", - "/@redis/json/1.0.7_@redis+client@1.6.0": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", - "/@redis/search/1.2.0_@redis+client@1.6.0": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", - "/@redis/time-series/1.1.0_@redis+client@1.6.0": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", - "/@sinclair/typebox/0.27.8": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "/@redis/bloom/1.2.0_@redis+client@1.6.1": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "/@redis/client/1.6.1": "sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==", + "/@redis/graph/1.1.1_@redis+client@1.6.1": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "/@redis/json/1.0.7_@redis+client@1.6.1": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", + "/@redis/search/1.2.0_@redis+client@1.6.1": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", + "/@redis/time-series/1.1.0_@redis+client@1.6.1": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", + "/@sinclair/typebox/0.27.10": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", "/@sinonjs/commons/3.0.1": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "/@sinonjs/fake-timers/10.3.0": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "/@socket.io/component-emitter/3.1.2": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "/@tootallnate/once/2.0.0": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "/@tootallnate/quickjs-emscripten/0.23.0": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "/@trpc/client/11.0.0-rc.660_dec9ab05b59cfcb251b83d88cde10054": "sha512-bNpkZEfyMGKHynYFxdLpY8nJ1n7E3JHKcd4Pe2cagmpkzOEF9tFT3kzNf+eLI8XMG8196lTRR0J0W2/1Q8/cug==", + "/@trpc/client/11.0.0-rc.660_@trpc+server@11.0.0-rc.660": "sha512-bNpkZEfyMGKHynYFxdLpY8nJ1n7E3JHKcd4Pe2cagmpkzOEF9tFT3kzNf+eLI8XMG8196lTRR0J0W2/1Q8/cug==", "/@trpc/server/11.0.0-rc.660": "sha512-QUapcZCNOpHT7ng9LceGc9ImkboWd0Go9ryrduZpL+p4jdfaC6409AQ3x4XEW6Wu3yBmZAn4CywCsDrDhjDy/w==", "/@types/babel__core/7.20.5": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "/@types/babel__generator/7.6.8": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "/@types/babel__generator/7.27.0": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "/@types/babel__template/7.4.4": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "/@types/babel__traverse/7.20.6": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "/@types/babel__traverse/7.28.0": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "/@types/common-tags/1.8.4": "sha512-S+1hLDJPjWNDhcGxsxEbepzaxWqURP/o+3cP4aa2w7yBXgdcmKGQtZzP8JbyfOd0m+33nh+8+kvxYE2UJtBDkg==", "/@types/graceful-fs/4.1.9": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "/@types/istanbul-lib-coverage/2.0.6": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "/@types/istanbul-lib-report/3.0.3": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "/@types/istanbul-reports/3.0.4": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "/@types/jest/29.5.12": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "/@types/jest/29.5.14": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "/@types/jsdom/20.0.1": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "/@types/lodash/4.17.7": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "/@types/lodash/4.17.23": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", "/@types/minimist/1.2.5": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "/@types/mongoose/5.11.97": "sha512-cqwOVYT3qXyLiGw7ueU2kX9noE8DPGRY6z8eUxudhXY8NZ7DMKYAxyZkLSevGfhCX3dO/AoX5/SO9lAzfjon0Q==", - "/@types/node-fetch/2.6.11": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", - "/@types/node/18.19.44": "sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==", - "/@types/node/20.16.0": "sha512-vDxceJcoZhIVh67S568bm1UGZO0DX0hpplJZxzeXMKwIPLn190ec5RRxQ69BKhX44SUGIxxgMdDY557lGLKprQ==", - "/@types/node/25.0.3": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "/@types/node-fetch/2.6.13": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", + "/@types/node/18.19.130": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", + "/@types/node/20.19.33": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", + "/@types/node/22.7.5": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "/@types/normalize-package-data/2.4.4": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "/@types/react-dom/19.2.3_@types+react@19.2.6": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "/@types/react/19.2.6": "sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==", + "/@types/react-dom/19.2.3_@types+react@19.2.14": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "/@types/react/19.2.14": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "/@types/socket.io-client/3.0.0": "sha512-s+IPvFoEIjKA3RdJz/Z2dGR4gLgysKi8owcnrVwNjgvc01Lk68LJDDsG2GRqegFITcxmvCMYM7bhMpwEMlHmDg==", "/@types/stack-utils/2.0.3": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "/@types/tough-cookie/4.0.5": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "/@types/webidl-conversions/7.0.3": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", "/@types/whatwg-url/11.0.5": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", "/@types/yargs-parser/21.0.3": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "/@types/yargs/17.0.33": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "/@types/yargs/17.0.35": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "/@types/yauzl/2.10.3": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "/@typescript-eslint/eslint-plugin/8.8.1_4e51e422884e0a2984e8f6eb8c9d464d": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==", - "/@typescript-eslint/parser/8.8.1_eslint@8.57.0": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", - "/@typescript-eslint/scope-manager/8.8.1": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==", - "/@typescript-eslint/type-utils/8.8.1_eslint@8.57.0": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==", - "/@typescript-eslint/types/8.8.1": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==", - "/@typescript-eslint/typescript-estree/8.8.1": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==", - "/@typescript-eslint/utils/8.8.1_eslint@8.57.0": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==", - "/@typescript-eslint/visitor-keys/8.8.1": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==", + "/@typescript-eslint/eslint-plugin/8.56.0_20a00399ec96936c54a86c7ee235eaf6": "sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==", + "/@typescript-eslint/eslint-plugin/8.56.0_fcbf70e3a9200c01187a3b1b1e3b3d2f": "sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==", + "/@typescript-eslint/parser/8.56.0_eslint@8.57.1": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", + "/@typescript-eslint/parser/8.56.0_eslint@8.57.1+typescript@5.9.3": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", + "/@typescript-eslint/project-service/8.56.0": "sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==", + "/@typescript-eslint/project-service/8.56.0_typescript@5.9.3": "sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==", + "/@typescript-eslint/scope-manager/8.56.0": "sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==", + "/@typescript-eslint/tsconfig-utils/8.56.0": "sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==", + "/@typescript-eslint/tsconfig-utils/8.56.0_typescript@5.9.3": "sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==", + "/@typescript-eslint/type-utils/8.56.0_eslint@8.57.1": "sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==", + "/@typescript-eslint/type-utils/8.56.0_eslint@8.57.1+typescript@5.9.3": "sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==", + "/@typescript-eslint/types/8.56.0": "sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==", + "/@typescript-eslint/typescript-estree/8.56.0": "sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==", + "/@typescript-eslint/typescript-estree/8.56.0_typescript@5.9.3": "sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==", + "/@typescript-eslint/utils/8.56.0_eslint@8.57.1": "sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==", + "/@typescript-eslint/utils/8.56.0_eslint@8.57.1+typescript@5.9.3": "sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==", + "/@typescript-eslint/visitor-keys/8.56.0": "sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==", "/@ungap/structured-clone/1.3.0": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "/abab/2.0.6": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "/abort-controller/3.0.0": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "/acorn-globals/7.0.1": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "/acorn-jsx/5.3.2_acorn@8.15.0": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "/acorn-walk/8.3.3": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "/acorn-walk/8.3.4": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "/acorn/8.15.0": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "/aes-js/3.0.0": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", "/afinn-165-financialmarketnews/3.0.0": "sha512-0g9A1S3ZomFIGDTzZ0t6xmv4AuokBvBmpes8htiyHpH7N4xDmvSQL6UxL/Zcs2ypRb3VwgCscaD8Q3zEawKYhw==", "/afinn-165/1.0.4": "sha512-7+Wlx3BImrK0HiG6y3lU4xX7SpBPSSu8T9iguPMlaueRFxjbYwAQrp9lqZUuFikqKbd/en8lVREILvP2J80uJA==", "/agent-base/6.0.2": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "/agent-base/7.1.3": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "/agentkeepalive/4.5.0": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "/agent-base/7.1.4": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "/agentkeepalive/4.6.0": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", "/aggregate-error/4.0.1": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "/ajv/6.12.6": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "/ansi-escapes/4.3.2": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", @@ -181,50 +191,51 @@ "/apparatus/0.0.10": "sha512-KLy/ugo33KZA7nugtQ7O0E1c8kQ52N3IvD/XgIh4w/Nr28ypfkwDfA67F1ev4N1m5D+BOk1+b2dEJDfpj/VvZg==", "/argparse/1.0.10": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "/argparse/2.0.1": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "/array-buffer-byte-length/1.0.1": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "/array-includes/3.1.8": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "/array-buffer-byte-length/1.0.2": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "/array-includes/3.1.9": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "/array.prototype.findlast/1.2.5": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "/array.prototype.flat/1.3.2": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "/array.prototype.flatmap/1.3.2": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "/array.prototype.flat/1.3.3": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "/array.prototype.flatmap/1.3.3": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "/array.prototype.tosorted/1.1.4": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "/arraybuffer.prototype.slice/1.0.3": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "/arraybuffer.prototype.slice/1.0.4": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "/arrify/1.0.1": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "/ast-types/0.13.4": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "/async/2.6.4": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "/async/3.2.5": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "/async-function/1.0.0": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "/async/3.2.6": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "/asynckit/0.4.0": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "/at-least-node/1.0.0": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "/available-typed-arrays/1.0.7": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "/axios/1.10.0": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", - "/b4a/1.6.6": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", - "/babel-jest/29.7.0_@babel+core@7.28.5": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "/axios/1.13.5": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "/b4a/1.7.5": "sha512-iEsKNwDh1wiWTps1/hdkNdmBgDlDVZP5U57ZVOlt+dNFqpc/lpPouCIxZw+DYBgc4P9NDfIZMPNR4CHNhzwLIA==", + "/babel-jest/29.7.0_@babel+core@7.29.0": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "/babel-plugin-istanbul/6.1.1": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "/babel-plugin-jest-hoist/29.6.3": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "/babel-preset-current-node-syntax/1.2.0_@babel+core@7.28.5": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", - "/babel-preset-jest/29.6.3_@babel+core@7.28.5": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "/babel-preset-current-node-syntax/1.2.0_@babel+core@7.29.0": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "/babel-preset-jest/29.6.3_@babel+core@7.29.0": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "/balanced-match/1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "/bare-events/2.5.4": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", - "/bare-fs/4.1.5": "sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==", - "/bare-os/3.6.1": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "/bare-events/2.8.2": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "/bare-fs/4.5.4": "sha512-POK4oplfA7P7gqvetNmCs4CNtm9fNsx+IAh7jH7GgU0OJdge2rso0R20TNWVq6VoWcCvsTdlNDaleLHGaKx8CA==", + "/bare-os/3.6.2": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", "/bare-path/3.0.0": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "/bare-stream/2.6.5_bare-events@2.5.4": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "/bare-stream/2.8.0_bare-events@2.8.2": "sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA==", + "/bare-url/2.3.2": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", "/base64-js/1.5.1": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "/baseline-browser-mapping/2.8.30": "sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA==", + "/baseline-browser-mapping/2.10.0": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", "/basic-auth/2.0.1": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "/basic-ftp/5.0.5": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "/basic-ftp/5.1.0": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==", "/bech32/1.1.4": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", "/bfj/7.1.0": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", "/blake-hash/2.0.0": "sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w==", "/blake2b-wasm/2.4.0": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", "/blake2b/2.1.4": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", "/bluebird/3.7.2": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "/bn.js/4.12.0": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "/bn.js/5.2.1": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "/brace-expansion/1.1.11": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "/brace-expansion/2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "/bn.js/4.12.3": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "/bn.js/5.2.3": "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==", + "/brace-expansion/1.1.12": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "/brace-expansion/2.0.2": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "/braces/3.0.3": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "/brorand/1.1.0": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "/browserslist/4.28.0": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "/browserslist/4.28.1": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "/bs-logger/0.2.6": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "/bser/2.1.1": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "/bson/6.10.4": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", @@ -233,12 +244,13 @@ "/buffer/5.7.1": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "/buffer/6.0.3": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "/call-bind-apply-helpers/1.0.2": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "/call-bind/1.0.7": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "/call-bind/1.0.8": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "/call-bound/1.0.4": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "/callsites/3.1.0": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "/camelcase-keys/7.0.2": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "/camelcase/5.3.1": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "/camelcase/6.3.0": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "/caniuse-lite/1.0.30001756": "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==", + "/caniuse-lite/1.0.30001770": "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==", "/chalk/2.4.2": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "/chalk/4.1.2": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "/char-regex/1.0.2": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", @@ -248,12 +260,12 @@ "/circom_runtime/0.1.28": "sha512-ACagpQ7zBRLKDl5xRZ4KpmYIcZDUjOiNRuxvXLqhnnlLSVY1Dbvh73TI853nqoR0oEbihtWmMSjgc5f+pXf/jQ==", "/circomlib/2.0.5": "sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A==", "/circomlibjs/0.1.7": "sha512-GRAUoAlKAsiiTa+PA725G9RmEmJJRc8tRFxw/zKktUxlQISGznT4hH4ESvW8FNTsrGg/nNd06sGP/Wlx0LUHVg==", - "/cjs-module-lexer/1.3.1": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "/cjs-module-lexer/1.4.3": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", "/clean-stack/4.2.0": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "/cliui/8.0.1": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "/cluster-key-slot/1.1.2": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", "/co/4.6.0": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "/collect-v8-coverage/1.0.2": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "/collect-v8-coverage/1.0.3": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "/color-convert/1.9.3": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "/color-convert/2.0.1": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "/color-name/1.1.3": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", @@ -264,8 +276,8 @@ "/convert-source-map/2.0.0": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "/corser/2.0.1": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", "/cosmiconfig/9.0.0": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "/create-jest/29.7.0_@types+node@20.16.0": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "/cross-spawn/6.0.5": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "/create-jest/29.7.0_@types+node@20.19.33": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "/cross-spawn/6.0.6": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "/cross-spawn/7.0.6": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "/crypto-js/4.2.0": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", "/cssom/0.3.8": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", @@ -274,19 +286,17 @@ "/csstype/3.2.3": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "/data-uri-to-buffer/6.0.2": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "/data-urls/3.0.2": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "/data-view-buffer/1.0.1": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "/data-view-byte-length/1.0.1": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "/data-view-byte-offset/1.0.0": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "/data-view-buffer/1.0.2": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "/data-view-byte-length/1.0.2": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "/data-view-byte-offset/1.0.1": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "/dayjs/1.11.19": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "/debug/3.2.7": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "/debug/4.3.4": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "/debug/4.3.7": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "/debug/4.4.3": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "/decamelize-keys/1.1.1": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "/decamelize/1.2.0": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "/decamelize/5.0.1": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "/decimal.js/10.4.3": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "/dedent/1.7.0": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "/decimal.js/10.6.0": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "/dedent/1.7.1": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", "/deep-is/0.1.4": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "/deepmerge/4.3.1": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "/define-data-property/1.1.4": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", @@ -303,56 +313,56 @@ "/doctrine/2.1.0": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "/doctrine/3.0.0": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "/domexception/4.0.0": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "/dotenv/16.4.5": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "/dotenv/16.6.1": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "/dunder-proto/1.0.1": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "/efrt/2.7.0": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==", "/ejs/3.1.10": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "/electron-to-chromium/1.5.259": "sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==", - "/elliptic/6.5.4": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "/electron-to-chromium/1.5.286": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", + "/elliptic/6.6.1": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "/emittery/0.13.1": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "/emoji-regex/8.0.0": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "/end-of-stream/1.4.4": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "/engine.io-client/6.5.4": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", + "/end-of-stream/1.4.5": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "/engine.io-client/6.6.4": "sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==", "/engine.io-parser/5.2.3": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "/entities/4.5.0": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "/entities/6.0.1": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "/env-paths/2.2.1": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "/error-ex/1.3.2": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "/es-abstract/1.23.3": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "/error-ex/1.3.4": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "/es-abstract/1.24.1": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", "/es-define-property/1.0.1": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "/es-errors/1.3.0": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "/es-iterator-helpers/1.0.19": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "/es-iterator-helpers/1.2.2": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", "/es-object-atoms/1.1.1": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "/es-set-tostringtag/2.1.0": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "/es-shim-unscopables/1.0.2": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "/es-to-primitive/1.2.1": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "/es-shim-unscopables/1.1.0": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "/es-to-primitive/1.3.0": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "/escalade/3.2.0": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "/escape-string-regexp/1.0.5": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "/escape-string-regexp/2.0.0": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "/escape-string-regexp/4.0.0": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "/escape-string-regexp/5.0.0": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "/escodegen/1.14.3": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "/escodegen/2.1.0": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "/eslint-config-aqua/6.0.2_eslint@8.57.0": "sha512-uyd+OmmIO0wqnG85FdUK+t+HTQER09F+SpZXkq+0I8uMmEYLtvS4KMvxdXex0U11ZMOThCwEHWIGFNH0Xehvpg==", - "/eslint-config-marine/3.0.3_a53a81d40bb4b6d3200638bf614fe9e6": "sha512-+Cj+WzZnr738EyZMb/Do5EcmLK239q5a7/MVia5kPweBrxErMDjaYXn/nJOW2swu+DAY4fMZqfmG8LGRVQzknw==", - "/eslint-config-prettier/8.10.0_eslint@8.57.0": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "/eslint-plugin-prettier/3.4.1_c278f3972eca57d128b38bb4c5bb01c4": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "/eslint-config-aqua/6.0.2_eslint@8.57.1": "sha512-uyd+OmmIO0wqnG85FdUK+t+HTQER09F+SpZXkq+0I8uMmEYLtvS4KMvxdXex0U11ZMOThCwEHWIGFNH0Xehvpg==", + "/eslint-config-marine/3.0.3_18085a7ace9e337934e0db50af22b82a": "sha512-+Cj+WzZnr738EyZMb/Do5EcmLK239q5a7/MVia5kPweBrxErMDjaYXn/nJOW2swu+DAY4fMZqfmG8LGRVQzknw==", + "/eslint-config-prettier/8.10.2_eslint@8.57.1": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", + "/eslint-plugin-prettier/3.4.1_76d7eae0c550ce6dcdbe8c8b00183330": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", "/eslint-plugin-promise/4.3.1": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "/eslint-plugin-react-hooks/4.6.2_eslint@8.57.0": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "/eslint-plugin-react/7.35.0_eslint@8.57.0": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "/eslint-plugin-react-hooks/4.6.2_eslint@8.57.1": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "/eslint-plugin-react/7.37.5_eslint@8.57.1": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "/eslint-scope/7.2.2": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "/eslint-visitor-keys/3.4.3": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "/eslint/8.57.0": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "/eslint-visitor-keys/5.0.0": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==", + "/eslint/8.57.1": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "/espree/9.6.1": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "/esprima/1.2.2": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "/esprima/1.2.5": "sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==", "/esprima/4.0.1": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "/esquery/1.6.0": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "/esquery/1.7.0": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "/esrecurse/4.3.0": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "/estraverse/4.3.0": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "/estraverse/5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "/esutils/2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "/ethers/5.7.2": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "/ethers/5.8.0": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", "/event-target-shim/5.0.1": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "/eventemitter3/4.0.7": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "/events-universal/1.0.1": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", "/execa/5.1.1": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "/exit/0.1.2": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "/expect/29.7.0": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", @@ -360,14 +370,15 @@ "/fast-deep-equal/3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "/fast-diff/1.3.0": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "/fast-fifo/1.3.2": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "/fast-glob/3.3.2": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "/fast-glob/3.3.3": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "/fast-json-stable-stringify/2.1.0": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "/fast-levenshtein/2.0.6": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "/fast-safe-stringify/2.1.1": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "/fastfile/0.0.20": "sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA==", - "/fastq/1.17.1": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "/fastq/1.20.1": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "/fb-watchman/2.0.2": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "/fd-slicer/1.1.0": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "/fdir/6.5.0_picomatch@4.0.3": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "/ffjavascript/0.2.63": "sha512-dBgdsfGks58b66JnUZeZpGxdMIDQ4QsD3VYlRJyFVrKQHb2kJy4R2gufx5oetrTxXPT+aEjg0dOvOLg1N0on4A==", "/ffjavascript/0.3.0": "sha512-l7sR5kmU3gRwDy8g0Z2tYBXy5ttmafRPFOqY7S6af5cq51JqJWt5eQ/lSR/rs2wQNbDYaYlQr5O+OSUf/oMLoQ==", "/ffjavascript/0.3.1": "sha512-4PbK1WYodQtuF47D4pRI5KUg3Q392vuP5WjE1THSnceHdXwU3ijaoS0OqxTzLknCtz4Z2TtABzkBdBdMn3B/Aw==", @@ -377,19 +388,20 @@ "/find-up/4.1.0": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "/find-up/5.0.0": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "/flat-cache/3.2.0": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "/flatted/3.3.1": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "/flatted/3.3.3": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "/follow-redirects/1.15.11": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "/follow-redirects/1.15.11_debug@4.3.4": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", - "/for-each/0.3.3": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "/for-each/0.3.5": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "/form-data-encoder/1.7.2": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", "/form-data/4.0.5": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "/formdata-node/4.4.1": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "/fs-extra/11.2.0": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "/fs-extra/9.1.0": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "/fs.realpath/1.0.0": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "/fsevents/2.3.3": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "/function-bind/1.1.2": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "/function.prototype.name/1.1.6": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "/function.prototype.name/1.1.8": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "/functions-have-names/1.2.3": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "/generator-function/2.0.1": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", "/generic-pool/3.9.0": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", "/gensync/1.0.0-beta.2": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "/get-caller-file/2.0.5": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", @@ -398,8 +410,8 @@ "/get-proto/1.0.1": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "/get-stream/5.2.0": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "/get-stream/6.0.1": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "/get-symbol-description/1.0.2": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "/get-uri/6.0.3": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "/get-symbol-description/1.1.0": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "/get-uri/6.0.5": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", "/glob-parent/5.1.2": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "/glob-parent/6.0.2": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "/glob/7.2.3": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", @@ -410,12 +422,13 @@ "/graceful-fs/4.2.11": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "/grad-school/0.0.5": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", "/graphemer/1.4.0": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "/handlebars/4.7.8": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "/hard-rejection/2.1.0": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "/has-bigints/1.0.2": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "/has-bigints/1.1.0": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "/has-flag/3.0.0": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "/has-flag/4.0.0": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "/has-property-descriptors/1.0.2": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "/has-proto/1.0.3": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "/has-proto/1.2.0": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "/has-symbols/1.1.0": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "/has-tostringtag/1.0.2": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "/hash.js/1.1.7": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", @@ -438,49 +451,50 @@ "/iconv-lite/0.6.3": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "/ieee754/1.2.1": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "/ignore/5.3.2": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "/import-fresh/3.3.0": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "/ignore/7.0.5": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "/import-fresh/3.3.1": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "/import-local/3.2.0": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "/imurmurhash/0.1.4": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "/indent-string/5.0.0": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "/inflight/1.0.6": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "/inherits/2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "/internal-slot/1.0.7": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "/ip-address/9.0.5": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "/is-array-buffer/3.0.4": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "/internal-slot/1.1.0": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "/ip-address/10.1.0": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "/is-array-buffer/3.0.5": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "/is-arrayish/0.2.1": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "/is-async-function/2.0.0": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "/is-bigint/1.0.4": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "/is-boolean-object/1.1.2": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "/is-async-function/2.1.1": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "/is-bigint/1.1.0": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "/is-boolean-object/1.2.2": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "/is-callable/1.2.7": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "/is-core-module/2.15.0": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", - "/is-data-view/1.0.1": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "/is-date-object/1.0.5": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "/is-core-module/2.16.1": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "/is-data-view/1.0.2": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "/is-date-object/1.1.0": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "/is-docker/2.2.1": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "/is-extglob/2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "/is-finalizationregistry/1.0.2": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "/is-finalizationregistry/1.1.1": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "/is-fullwidth-code-point/3.0.0": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "/is-generator-fn/2.1.0": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "/is-generator-function/1.0.10": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "/is-generator-function/1.1.2": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", "/is-glob/4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "/is-map/2.0.3": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "/is-negative-zero/2.0.3": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "/is-number-object/1.0.7": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "/is-number-object/1.1.1": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "/is-number/7.0.0": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "/is-path-cwd/3.0.0": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "/is-path-inside/3.0.3": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "/is-path-inside/4.0.0": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "/is-plain-obj/1.1.0": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "/is-potential-custom-element-name/1.0.1": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "/is-regex/1.1.4": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "/is-regex/1.2.1": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "/is-set/2.0.3": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "/is-shared-array-buffer/1.0.3": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "/is-shared-array-buffer/1.0.4": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "/is-stream/2.0.1": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "/is-string/1.0.7": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "/is-symbol/1.0.4": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "/is-typed-array/1.1.13": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "/is-string/1.1.1": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "/is-symbol/1.1.1": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "/is-typed-array/1.1.15": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "/is-weakmap/2.0.2": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "/is-weakref/1.0.2": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "/is-weakset/2.0.3": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "/is-weakref/1.1.1": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "/is-weakset/2.0.4": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "/is-wsl/2.2.0": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "/isarray/2.0.5": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "/isexe/2.0.0": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", @@ -489,14 +503,13 @@ "/istanbul-lib-instrument/6.0.3": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "/istanbul-lib-report/3.0.1": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "/istanbul-lib-source-maps/4.0.1": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "/istanbul-reports/3.1.7": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "/iterator.prototype/1.1.2": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "/jake/10.9.2": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "/istanbul-reports/3.2.0": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "/iterator.prototype/1.1.5": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "/jake/10.9.4": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", "/jest-changed-files/29.7.0": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "/jest-circus/29.7.0": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "/jest-cli/29.7.0_@types+node@20.16.0": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "/jest-config/29.7.0_@types+node@20.16.0": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "/jest-config/29.7.0_@types+node@25.0.3": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "/jest-cli/29.7.0_@types+node@20.19.33": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "/jest-config/29.7.0_@types+node@20.19.33": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "/jest-diff/29.7.0": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "/jest-docblock/29.7.0": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "/jest-each/29.7.0": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", @@ -521,23 +534,22 @@ "/jest-validate/29.7.0": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "/jest-watcher/29.7.0": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "/jest-worker/29.7.0": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "/jest/29.7.0_@types+node@20.16.0": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "/js-md5/0.7.3": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==", + "/jest/29.7.0_@types+node@20.19.33": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "/js-md5/0.8.3": "sha512-qR0HB5uP6wCuRMrWPTrkMaev7MJZwJuuw4fnwAzRgP4J4/F8RwtodOKpGp4XpqsLBFzzgqIO42efFAyz2Et6KQ==", "/js-sha3/0.8.0": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", "/js-tokens/4.0.0": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "/js-yaml/3.14.1": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "/js-yaml/4.1.0": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "/jsbn/1.1.0": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "/js-yaml/3.14.2": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "/js-yaml/4.1.1": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "/jsdom/20.0.3": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "/jsesc/3.0.2": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "/jsesc/3.1.0": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "/json-buffer/3.0.1": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "/json-parse-better-errors/1.0.2": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "/json-parse-even-better-errors/2.3.1": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "/json-schema-traverse/0.4.1": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "/json-stable-stringify-without-jsonify/1.0.1": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "/json5/2.2.3": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "/jsonfile/6.1.0": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "/jsonpath/1.1.1": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "/jsonfile/6.2.0": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "/jsonpath/1.2.1": "sha512-Jl6Jhk0jG+kP3yk59SSeGq7LFPR4JQz1DU0K+kXTysUhMostbhU3qh5mjTuf0PqFcXpAT7kvmMt9WxV10NyIgQ==", "/jsx-ast-utils/3.3.5": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "/kareem/2.6.3": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", "/keccak/3.0.4": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", @@ -547,7 +559,6 @@ "/kleur/3.0.3": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "/langdetect/0.2.1": "sha512-vWK2xz8Urp6J0RFwnrR8+d0DQ2yIGjCOqAxBoXNMVFv4ZDmFsbCcNEtwuVnaQ5+ltwZ4Z5rTtuTwHSaEWFdw+A==", "/leven/3.1.0": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "/levn/0.3.0": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "/levn/0.4.1": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "/lines-and-columns/1.2.4": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "/load-json-file/4.0.0": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", @@ -555,7 +566,7 @@ "/locate-path/6.0.0": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "/lodash.memoize/4.1.2": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "/lodash.merge/4.6.2": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "/lodash/4.17.21": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "/lodash/4.17.23": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "/logplease/1.2.15": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==", "/lokijs/1.5.12": "sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==", "/loose-envify/1.4.0": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", @@ -580,7 +591,6 @@ "/mime-types/2.1.35": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "/mime/1.6.0": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "/mimic-fn/2.1.0": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "/min-indent/1.0.1": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "/minimalistic-assert/1.0.1": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "/minimalistic-crypto-utils/1.0.1": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "/minimatch/3.1.2": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", @@ -589,28 +599,29 @@ "/minimist-options/4.1.0": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "/minimist/1.2.8": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "/mitt/3.0.1": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "/mkdirp/0.5.6": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "/mkdirp/1.0.4": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "/moment/2.30.1": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "/mongodb-connection-string-url/3.0.2": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "/mongodb/6.7.0": "sha512-TMKyHdtMcO0fYBNORiYdmM25ijsHs+Njs963r4Tro4OQZzqYigAzYQouwWRg4OIaiLRUEGUh/1UAcH5lxdSLIA==", - "/mongoose-autopopulate/1.1.0_mongoose@8.5.3": "sha512-nTlTMlu1fLQ1bmJT7ILKbZmPGt2fHErLO4UJwzMDsHSigjtUYz0l3nvFhg511QkOkZcKBRzOnPn3DmmLIUENzg==", - "/mongoose/8.5.3": "sha512-OubSDbsAclDFGHjV82MsKyIGQWFc42Ot1l+0dhRS6U9xODM7rm/ES/WpOQd8Ds9j0Mx8QzxZtrSCnBh6o9wUqw==", + "/mongodb/6.20.0": "sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==", + "/mongoose-autopopulate/1.1.0_mongoose@8.23.0": "sha512-nTlTMlu1fLQ1bmJT7ILKbZmPGt2fHErLO4UJwzMDsHSigjtUYz0l3nvFhg511QkOkZcKBRzOnPn3DmmLIUENzg==", + "/mongoose/8.23.0": "sha512-Bul4Ha6J8IqzFrb0B1xpVzkC3S0sk43dmLSnhFOn8eJlZiLwL5WO6cRymmjaADdCMjUcCpj2ce8hZI6O4ZFSug==", "/mpath/0.9.0": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", "/mquery/5.0.0": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", "/ms/2.1.2": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "/ms/2.1.3": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "/nanoassert/2.0.0": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==", - "/nanoid/2.1.11": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==", + "/nanoid/3.3.11": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "/natural-compare/1.4.0": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "/natural/7.1.0": "sha512-GBhiRgF0VUX+zPWahBVir1ajARQDZF1Fe6UpQORNzyQT57JQ2KLKYvubecvjIYh/uDaociusmySeRh+WL5OdxQ==", + "/neo-async/2.6.2": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "/netmask/2.0.2": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "/nice-try/1.0.5": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "/node-addon-api/2.0.2": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", "/node-addon-api/3.2.1": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "/node-domexception/1.0.0": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "/node-exports-info/1.6.0": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", "/node-fetch/2.7.0": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "/node-gyp-build/4.8.1": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "/node-gyp-build/4.8.4": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "/node-int64/0.4.0": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "/node-releases/2.0.27": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "/normalize-package-data/2.5.0": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", @@ -618,22 +629,22 @@ "/normalize-path/3.0.0": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "/npm-run-all/4.1.5": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "/npm-run-path/4.0.1": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "/nwsapi/2.2.12": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==", + "/nwsapi/2.2.23": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", "/object-assign/4.1.1": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "/object-inspect/1.13.2": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "/object-inspect/1.13.4": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "/object-keys/1.1.1": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "/object.assign/4.1.5": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "/object.entries/1.1.8": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "/object.assign/4.1.7": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "/object.entries/1.1.9": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "/object.fromentries/2.0.8": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "/object.values/1.2.0": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "/object.values/1.2.1": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "/once/1.4.0": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "/onetime/5.1.2": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "/open/8.4.2": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "/openai/4.56.0_zod@3.25.76": "sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==", + "/openai/4.104.0_zod@3.25.76": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==", "/opener/1.5.2": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "/optionator/0.8.3": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "/optionator/0.9.4": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "/otplib/12.0.1": "sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg==", + "/own-keys/1.0.1": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "/p-limit/2.3.0": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "/p-limit/3.1.0": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "/p-locate/4.1.0": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", @@ -645,7 +656,7 @@ "/parent-module/1.0.1": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "/parse-json/4.0.0": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "/parse-json/5.2.0": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "/parse5/7.1.2": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "/parse5/7.3.0": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "/path-exists/4.0.0": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "/path-is-absolute/1.0.1": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "/path-key/2.0.1": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", @@ -654,43 +665,43 @@ "/path-type/3.0.0": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "/path-type/4.0.0": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "/pend/1.2.0": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "/pg-cloudflare/1.1.1": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "/pg-connection-string/2.6.4": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "/pg-cloudflare/1.3.0": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==", + "/pg-connection-string/2.11.0": "sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==", "/pg-int8/1.0.1": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "/pg-pool/3.6.2_pg@8.12.0": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", - "/pg-protocol/1.6.1": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", + "/pg-pool/3.11.0_pg@8.18.0": "sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==", + "/pg-protocol/1.11.0": "sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==", "/pg-types/2.2.0": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "/pg/8.12.0": "sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==", + "/pg/8.18.0": "sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==", "/pgpass/1.0.5": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", "/picocolors/1.1.1": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "/picomatch/2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "/picomatch/4.0.3": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "/pidtree/0.3.1": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "/pify/3.0.0": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "/pirates/4.0.7": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "/pkg-dir/4.2.0": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "/pluralize/8.0.0": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "/portfinder/1.0.32": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "/possible-typed-array-names/1.0.0": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "/portfinder/1.0.38": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "/possible-typed-array-names/1.1.0": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "/postgres-array/2.0.0": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "/postgres-bytea/1.0.0": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "/postgres-bytea/1.0.1": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", "/postgres-date/1.0.7": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "/postgres-interval/1.2.0": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "/prelude-ls/1.1.2": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "/prelude-ls/1.2.1": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "/prettier-linter-helpers/1.0.0": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "/prettier-linter-helpers/1.0.1": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "/pretty-format/29.7.0": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "/progress/2.0.3": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "/prompts/2.4.2": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "/prop-types/15.8.1": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "/proxy-agent/6.5.0": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", "/proxy-from-env/1.1.0": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "/psl/1.9.0": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "/pump/3.0.0": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "/psl/1.15.0": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "/pump/3.0.3": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "/punycode/2.3.1": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "/puppeteer-core/22.15.0": "sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA==", "/puppeteer/22.15.0": "sha512-XjCY1SiSEi1T7iSYuxS82ft85kwDJUS7wj1Z0eGVXKdtr5g4xnVcbjwxhq5xBnpK/E7x1VZZoJDxpjAOasHT4Q==", "/pure-rand/6.1.0": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "/qs/6.13.0": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "/qs/6.15.0": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", "/querystringify/2.2.0": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "/queue-microtask/1.2.3": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "/quick-lru/5.1.1": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", @@ -702,74 +713,79 @@ "/read-pkg/6.0.0": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "/readable-stream/3.6.2": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "/redent/4.0.0": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "/redis/4.7.0": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==", - "/reflect.getprototypeof/1.0.6": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "/regexp.prototype.flags/1.5.2": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "/redis/4.7.1": "sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==", + "/reflect.getprototypeof/1.0.10": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "/regexp.prototype.flags/1.5.4": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "/require-directory/2.1.1": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "/requires-port/1.0.0": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "/resolve-cwd/3.0.0": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "/resolve-from/4.0.0": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "/resolve-from/5.0.0": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "/resolve.exports/2.0.2": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "/resolve/1.22.8": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "/resolve/2.0.0-next.5": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "/reusify/1.0.4": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "/resolve.exports/2.0.3": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "/resolve/1.22.11": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "/resolve/2.0.0-next.6": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", + "/reusify/1.1.0": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "/rimraf/3.0.2": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "/run-parallel/1.2.0": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "/rxjs/7.8.1": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "/safe-array-concat/1.1.2": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "/rxjs/7.8.2": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "/safe-array-concat/1.1.3": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "/safe-buffer/5.1.2": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "/safe-buffer/5.2.1": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "/safe-regex-test/1.0.3": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "/safe-stable-stringify/2.4.3": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "/safe-push-apply/1.0.0": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "/safe-regex-test/1.1.0": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "/safe-stable-stringify/2.5.0": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "/safer-buffer/2.1.2": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "/saxes/6.0.0": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "/scrypt-js/3.0.1": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", "/secure-compare/3.0.1": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", "/semver/5.7.2": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "/semver/6.3.1": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "/semver/7.7.3": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "/semver/7.7.4": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "/set-function-length/1.2.2": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "/set-function-name/2.0.2": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "/set-proto/1.0.0": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "/shebang-command/1.2.0": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "/shebang-command/2.0.0": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "/shebang-regex/1.0.0": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "/shebang-regex/3.0.0": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "/shell-quote/1.8.1": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "/shortid/2.2.16": "sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==", - "/side-channel/1.0.6": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "/shell-quote/1.8.3": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "/shortid/2.2.17": "sha512-GpbM3gLF1UUXZvQw6MCyulHkWbRseNO4cyBEZresZRorwl1+SLu1ZdqgVtuwqz8mB6RpwPkm541mYSqrKyJSaA==", + "/side-channel-list/1.0.0": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "/side-channel-map/1.0.1": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "/side-channel-weakmap/1.0.2": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "/side-channel/1.1.0": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "/sift/17.1.3": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", "/signal-exit/3.0.7": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "/sisteransi/1.0.5": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "/slash/3.0.0": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "/slash/4.0.0": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "/smart-buffer/4.2.0": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "/snarkjs/0.7.5": "sha512-h+3c4rXZKLhLuHk4LHydZCk/h5GcNvk5GjVKRRkHmfb6Ntf8gHOA9zea3g656iclRuhqQ3iKDWFgiD9ypLrKiA==", - "/socket.io-client/4.7.5": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", - "/socket.io-parser/4.2.4": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "/snarkjs/0.7.6": "sha512-4uH1xA5JzVU5jaaWS2fXej3+RC6L5Erhr6INTJtUA27du4Elbh4VXCeeRjB4QiwL6N6y7SNKePw5prTxyEf4Zg==", + "/socket.io-client/4.8.3": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "/socket.io-parser/4.2.5": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", "/socks-proxy-agent/8.0.5": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "/socks/2.8.3": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "/socks/2.8.7": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "/source-map-support/0.5.13": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "/source-map/0.6.1": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "/sparse-bitfield/3.0.3": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "/spdx-correct/3.2.0": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "/spdx-exceptions/2.5.0": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "/spdx-expression-parse/3.0.1": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "/spdx-license-ids/3.0.18": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "/spdx-license-ids/3.0.22": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "/split2/4.2.0": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "/sprintf-js/1.0.3": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "/sprintf-js/1.1.3": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "/stack-utils/2.0.6": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "/static-eval/2.0.2": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "/static-eval/2.1.1": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "/stop-iteration-iterator/1.1.0": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "/stopwords-iso/1.1.0": "sha512-I6GPS/E0zyieHehMRPQcqkiBMJKGgLta+1hREixhoLPqEA0AlVFiC43dl8uPpmkkeRdDMzYRWFWk5/l9x7nmNg==", - "/streamx/2.22.1": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "/streamx/2.23.0": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", "/string-length/4.0.2": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "/string-width/4.2.3": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "/string.prototype.matchall/4.0.11": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "/string.prototype.matchall/4.0.12": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "/string.prototype.padend/3.1.6": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "/string.prototype.repeat/1.0.0": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "/string.prototype.trim/1.2.9": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "/string.prototype.trimend/1.0.8": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "/string.prototype.trim/1.2.10": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "/string.prototype.trimend/1.0.9": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "/string.prototype.trimstart/1.0.8": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "/string_decoder/1.3.0": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "/strip-ansi/5.2.0": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", @@ -777,7 +793,7 @@ "/strip-bom/3.0.0": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "/strip-bom/4.0.0": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "/strip-final-newline/2.0.0": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "/strip-indent/4.0.0": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "/strip-indent/4.1.1": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", "/strip-json-comments/3.1.1": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "/suffix-thumb/5.0.2": "sha512-I5PWXAFKx3FYnI9a+dQMWNqTxoRt6vdBdb0O+BJ1sxXCWtSoQCusc13E58f+9p4MYx/qCnEMkD5jac6K2j3dgA==", "/supports-color/5.5.0": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", @@ -788,45 +804,50 @@ "/symbol-tree/3.2.4": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "/tar-fs/3.1.1": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", "/tar-stream/3.1.7": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "/teex/1.0.1": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", "/test-exclude/6.0.0": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "/text-decoder/1.1.1": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "/text-decoder/1.2.7": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", "/text-table/0.2.0": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "/thirty-two/1.0.2": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==", "/through/2.3.8": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "/timestring/7.0.0": "sha512-U7ttxEdKWqHYJ96OGoJJR5gU8Nwkl3tlY0n7Jr4vcpLD2RkVZLE1Ph9k8ZRrZ7LYX9QCtd3M9OUaR9P8Z37QNg==", + "/tinyglobby/0.2.15": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "/tmpl/1.0.5": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "/to-regex-range/5.0.1": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "/tough-cookie/4.1.4": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "/tr46/0.0.3": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "/tr46/3.0.0": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "/tr46/4.1.1": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "/tr46/5.1.1": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "/trim-newlines/4.1.1": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "/tryer/1.0.1": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "/ts-api-utils/1.3.0": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "/ts-jest/29.2.4_jest@29.7.0": "sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw==", + "/ts-api-utils/2.4.0": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "/ts-api-utils/2.4.0_typescript@5.9.3": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "/ts-jest/29.4.6_jest@29.7.0": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", "/tslib/2.8.1": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "/type-check/0.3.2": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "/type-check/0.4.0": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "/type-detect/4.0.8": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "/type-fest/0.20.2": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "/type-fest/0.21.3": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "/type-fest/1.4.0": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "/typed-array-buffer/1.0.2": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "/typed-array-byte-length/1.0.1": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "/typed-array-byte-offset/1.0.2": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "/typed-array-length/1.0.6": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "/unbox-primitive/1.0.2": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "/type-fest/4.41.0": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "/typed-array-buffer/1.0.3": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "/typed-array-byte-length/1.0.3": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "/typed-array-byte-offset/1.0.4": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "/typed-array-length/1.0.7": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "/typescript/5.9.3": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "/uglify-js/3.19.3": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "/unbox-primitive/1.1.0": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "/unbzip2-stream/1.4.3": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "/underscore/1.12.1": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "/underscore/1.13.7": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "/underscore/1.13.6": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "/underscore/1.13.8": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", "/undici-types/5.26.5": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "/undici-types/6.19.6": "sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==", - "/undici-types/7.16.0": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "/undici-types/6.19.8": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "/undici-types/6.21.0": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "/unicode-9.0.0/0.7.0": "sha512-aqL0GQ3LB2nC3ZEKBZ93hfn7QY80sVGk+OT9Sc6lTxl4wRiwzUBRlAjJB9Fe4+5XydXOV+tb8udp5oRBoED5Tw==", "/union/0.5.0": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", "/universalify/0.2.0": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "/universalify/2.0.1": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "/update-browserslist-db/1.1.4_browserslist@4.28.0": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "/update-browserslist-db/1.2.3_browserslist@4.28.1": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "/uri-js/4.4.1": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "/url-join/4.0.1": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "/url-parse/1.5.10": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", @@ -848,26 +869,27 @@ "/whatwg-encoding/2.0.0": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "/whatwg-mimetype/3.0.0": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "/whatwg-url/11.0.0": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "/whatwg-url/13.0.0": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "/whatwg-url/14.2.0": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", "/whatwg-url/5.0.0": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "/which-boxed-primitive/1.0.2": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "/which-builtin-type/1.1.4": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "/which-boxed-primitive/1.1.1": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "/which-builtin-type/1.2.1": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "/which-collection/1.0.2": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "/which-typed-array/1.1.15": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "/which-typed-array/1.1.20": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "/which/1.3.1": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "/which/2.0.2": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "/word-wrap/1.2.5": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "/wordnet-db/3.1.14": "sha512-zVyFsvE+mq9MCmwXUWHIcpfbrHHClZWZiVOzKSxNJruIcFn2RbY55zkhiAMMxM8zCVSmtNiViq8FsAZSFpMYag==", + "/wordwrap/1.0.0": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "/wrap-ansi/7.0.0": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "/wrappy/1.0.2": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "/write-file-atomic/4.0.2": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "/ws/7.4.6": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "/ws/8.17.1": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "/ws/8.18.0": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "/ws/8.18.3": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "/ws/8.19.0": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", "/xml-name-validator/4.0.0": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "/xml/1.0.1": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "/xmlchars/2.2.0": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "/xmlhttprequest-ssl/2.0.0": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "/xmlhttprequest-ssl/2.1.2": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "/xtend/4.0.2": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "/y18n/5.0.8": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "/yallist/3.1.1": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", diff --git a/util.ts b/util.ts index 813639a..0381f69 100644 --- a/util.ts +++ b/util.ts @@ -1,4 +1,11 @@ // arken/node/util.ts +// Compatibility surface for legacy `@arken/node/util` imports. +// Re-export package-root utilities so callers expecting helpers like +// `getTime`, `random`, etc. continue to work. +export * from './index'; +export { default } from './index'; + +// Keep explicit utility module subpath re-exports available as well. export * from './util/api'; export * from './util/rpc';