diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 646b19fad..b5739f773 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -14,4 +14,4 @@ updates: - dependency-name: "drizzle-kit:*" versions: [">0.30.6"] - dependency-name: "tailwindcss:*" - versions: [">3.4.17"] + versions: ["version-update:semver-major"] diff --git a/cli/package.json b/cli/package.json index 2f1c36ce9..f8dcb2fbf 100644 --- a/cli/package.json +++ b/cli/package.json @@ -39,7 +39,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", @@ -48,7 +48,7 @@ "find-up": "^7.0.0", "fs-extra": "^11.3.1", "jose": "^6.1.0", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "semver": "^7.7.2", "zx": "^8.8.1" }, diff --git a/cloud/3rd-party/package.json b/cloud/3rd-party/package.json index ec2bd97ca..e95099b1b 100644 --- a/cloud/3rd-party/package.json +++ b/cloud/3rd-party/package.json @@ -39,7 +39,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "react-dom": "^19.1.1", "use-fireproof": "workspace:0.0.0" }, diff --git a/cloud/backend/base/package.json b/cloud/backend/base/package.json index 8ad9d2344..071ac7404 100644 --- a/cloud/backend/base/package.json +++ b/cloud/backend/base/package.json @@ -36,8 +36,8 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", - "@cloudflare/workers-types": "^4.20250906.0", + "@adviser/cement": "^0.4.39", + "@cloudflare/workers-types": "^4.20250918.0", "@fireproof/cloud-base": "workspace:0.0.0", "@fireproof/core-base": "workspace:0.0.0", "@fireproof/core-gateways-cloud": "workspace:0.0.0", @@ -47,7 +47,7 @@ "@libsql/client": "^0.15.15", "aws4fetch": "^1.0.20", "drizzle-orm": "^0.44.3", - "hono": "^4.9.7", + "hono": "^4.9.8", "jose": "^6.1.0" }, "devDependencies": { diff --git a/cloud/backend/cf-d1/package.json b/cloud/backend/cf-d1/package.json index 9343fe44e..612bc562d 100644 --- a/cloud/backend/cf-d1/package.json +++ b/cloud/backend/cf-d1/package.json @@ -39,8 +39,8 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", - "@cloudflare/workers-types": "^4.20250906.0", + "@adviser/cement": "^0.4.39", + "@cloudflare/workers-types": "^4.20250918.0", "@fireproof/cloud-backend-base": "workspace:0.0.0", "@fireproof/cloud-base": "workspace:0.0.0", "@fireproof/core-protocols-cloud": "workspace:0.0.0", @@ -50,7 +50,7 @@ "@fireproof/vendor": "workspace:0.0.0", "cmd-ts": "^0.14.1", "drizzle-orm": "^0.44.3", - "hono": "^4.9.7", + "hono": "^4.9.8", "multiformats": "^13.4.0" }, "devDependencies": { @@ -58,7 +58,7 @@ "drizzle-kit": "0.30.6", "tsx": "^4.20.4", "vitest": "^3.2.4", - "wrangler": "^4.37.0", + "wrangler": "^4.38.0", "zx": "^8.8.1" } } diff --git a/cloud/backend/node/package.json b/cloud/backend/node/package.json index 481824525..8d78c7a09 100644 --- a/cloud/backend/node/package.json +++ b/cloud/backend/node/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/cloud-backend-base": "workspace:0.0.0", "@fireproof/cloud-base": "workspace:0.0.0", "@fireproof/core-base": "workspace:0.0.0", @@ -49,12 +49,12 @@ "@hono/node-ws": "^1.2.0", "@libsql/client": "^0.15.15", "drizzle-orm": "^0.44.3", - "hono": "^4.9.7", + "hono": "^4.9.8", "vitest": "^3.2.4" }, "devDependencies": { "@fireproof/core-cli": "workspace:0.0.0", - "@types/node": "^24.3.1", + "@types/node": "^24.4.0", "drizzle-kit": "0.30.6", "zx": "^8.8.1" } diff --git a/cloud/base/package.json b/cloud/base/package.json index 37cace4c9..7561657ea 100644 --- a/cloud/base/package.json +++ b/cloud/base/package.json @@ -38,7 +38,7 @@ "react": ">=18.0.0" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-blockstore": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", diff --git a/cloud/todo-app/package.json b/cloud/todo-app/package.json index 46febf1c7..a265f6692 100644 --- a/cloud/todo-app/package.json +++ b/cloud/todo-app/package.json @@ -41,7 +41,7 @@ "react": ">=18.0.0" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/vendor": "workspace:0.0.0", "@types/react": "^19.1.13", "react-dom": "^19.1.0", diff --git a/core/base/ledger.ts b/core/base/ledger.ts index 90f794b5d..ebd6db11e 100644 --- a/core/base/ledger.ts +++ b/core/base/ledger.ts @@ -47,13 +47,8 @@ export function LedgerFactory(name: string, opts?: ConfigOpts): Ledger { const sthis = ensureSuperThis(opts); const key = keyConfigOpts(sthis, name, opts); const item = ledgers.get(key); - // if (!item.ready) { - // console.log("LedgerFactory", key); - // } return new LedgerShell( - item.once((key) => { - // console.log("once-LedgerFactory", key); - + item.once(({ key }) => { const db = new LedgerImpl(sthis, { name, meta: opts?.meta, @@ -75,7 +70,7 @@ export function LedgerFactory(name: string, opts?: ConfigOpts): Ledger { }), }); db.onClosed(() => { - ledgers.unget(key as string); + ledgers.unget(key); }); return db; }), diff --git a/core/base/package.json b/core/base/package.json index bfb3b5696..4046f3114 100644 --- a/core/base/package.json +++ b/core/base/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-blockstore": "workspace:0.0.0", "@fireproof/core-keybag": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", @@ -51,6 +51,6 @@ }, "devDependencies": { "@fireproof/core-cli": "workspace:0.0.0", - "@types/node": "^24.3.1" + "@types/node": "^24.4.0" } } diff --git a/core/blockstore/package.json b/core/blockstore/package.json index 0d11db0f6..23935427d 100644 --- a/core/blockstore/package.json +++ b/core/blockstore/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-gateways-base": "workspace:0.0.0", "@fireproof/core-gateways-cloud": "workspace:0.0.0", "@fireproof/core-gateways-file": "workspace:0.0.0", @@ -52,7 +52,7 @@ "@ipld/dag-cbor": "^9.2.5", "@ipld/dag-json": "^10.2.5", "@web3-storage/pail": "^0.6.2", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "p-map": "^7.0.3", "p-retry": "^7.0.0" } diff --git a/core/core/package.json b/core/core/package.json index 28d569ba0..91a482897 100644 --- a/core/core/package.json +++ b/core/core/package.json @@ -39,10 +39,10 @@ "react": ">=18.0.0" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-base": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", - "@types/node": "^24.3.1" + "@types/node": "^24.4.0" } } diff --git a/core/device-id/package.json b/core/device-id/package.json index ff6abfe07..f94860b92 100644 --- a/core/device-id/package.json +++ b/core/device-id/package.json @@ -36,17 +36,17 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-keybag": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "jose": "^6.0.12", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "zod": "^4.1.8" }, "devDependencies": { "@fireproof/core-cli": "workspace:0.0.0", - "@types/node": "^24.1.0" + "@types/node": "^24.4.0" }, "engines": { "node": ">=20" diff --git a/core/gateways/base/package.json b/core/gateways/base/package.json index 941efe183..e945513c5 100644 --- a/core/gateways/base/package.json +++ b/core/gateways/base/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/core-types-blockstore": "workspace:0.0.0", diff --git a/core/gateways/cloud/package.json b/core/gateways/cloud/package.json index fe45a3acc..e60d314bc 100644 --- a/core/gateways/cloud/package.json +++ b/core/gateways/cloud/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-gateways-base": "workspace:0.0.0", "@fireproof/core-protocols-cloud": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", diff --git a/core/gateways/file-deno/package.json b/core/gateways/file-deno/package.json index 2bcd90711..92cfb13ea 100644 --- a/core/gateways/file-deno/package.json +++ b/core/gateways/file-deno/package.json @@ -36,10 +36,10 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", "@types/deno": "^2.3.0", - "@types/node": "^24.3.1" + "@types/node": "^24.4.0" } } diff --git a/core/gateways/file-node/package.json b/core/gateways/file-node/package.json index bf188fd97..296607ad7 100644 --- a/core/gateways/file-node/package.json +++ b/core/gateways/file-node/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0" } diff --git a/core/gateways/file/package.json b/core/gateways/file/package.json index fa367cba2..c4aca0748 100644 --- a/core/gateways/file/package.json +++ b/core/gateways/file/package.json @@ -38,10 +38,10 @@ "devDependencies": { "@fireproof/core-cli": "workspace:0.0.0", "@types/deno": "^2.3.0", - "@types/node": "^24.3.1" + "@types/node": "^24.4.0" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-gateways-base": "workspace:0.0.0", "@fireproof/core-gateways-file-deno": "workspace:0.0.0", "@fireproof/core-gateways-file-node": "workspace:0.0.0", diff --git a/core/gateways/indexeddb/package.json b/core/gateways/indexeddb/package.json index 23fd3c10e..fbd2c0431 100644 --- a/core/gateways/indexeddb/package.json +++ b/core/gateways/indexeddb/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-gateways-base": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", diff --git a/core/gateways/memory/package.json b/core/gateways/memory/package.json index 8f671c631..caee4bdb4 100644 --- a/core/gateways/memory/package.json +++ b/core/gateways/memory/package.json @@ -38,10 +38,10 @@ "devDependencies": { "@fireproof/core-cli": "workspace:0.0.0", "@types/deno": "^2.3.0", - "@types/node": "^24.3.1" + "@types/node": "^24.4.0" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-gateways-base": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", diff --git a/core/keybag/package.json b/core/keybag/package.json index 913d5fe98..7f2bec880 100644 --- a/core/keybag/package.json +++ b/core/keybag/package.json @@ -36,14 +36,14 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-gateways-file": "workspace:0.0.0", "@fireproof/core-gateways-indexeddb": "workspace:0.0.0", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", "jose": "^6.0.12", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "zod": "^4.1.8" } } diff --git a/core/protocols/cloud/package.json b/core/protocols/cloud/package.json index 7a0b7c07b..3cc679983 100644 --- a/core/protocols/cloud/package.json +++ b/core/protocols/cloud/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/core-types-protocols-cloud": "workspace:0.0.0", diff --git a/core/protocols/dashboard/package.json b/core/protocols/dashboard/package.json index 5a438bfd7..137bf2658 100644 --- a/core/protocols/dashboard/package.json +++ b/core/protocols/dashboard/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-runtime": "workspace:0.0.0", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/core-types-protocols-cloud": "workspace:0.0.0", diff --git a/core/runtime/package.json b/core/runtime/package.json index e4ecf09db..db4050820 100644 --- a/core/runtime/package.json +++ b/core/runtime/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@adviser/ts-xxhash": "^1.0.2", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/core-types-blockstore": "workspace:0.0.0", @@ -45,7 +45,7 @@ "@fireproof/vendor": "workspace:0.0.0", "cborg": "^4.2.15", "jose": "^6.1.0", - "multiformats": "^13.4.1" + "multiformats": "^13.4.0" }, "devDependencies": { "@fireproof/core-cli": "workspace:^" diff --git a/core/tests/fireproof/attachable-subscription.test.ts b/core/tests/fireproof/attachable-subscription.test.ts index 2260759f9..b029e4f46 100644 --- a/core/tests/fireproof/attachable-subscription.test.ts +++ b/core/tests/fireproof/attachable-subscription.test.ts @@ -1,9 +1,10 @@ import { AppContext, BuildURI, WithoutPromise } from "@adviser/cement"; -import { Attachable, Database, fireproof, GatewayUrlsParam, PARAM, DocBase } from "@fireproof/core"; +import { Attachable, Database, fireproof, GatewayUrlsParam, PARAM, DocWithId } from "@fireproof/core"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { ensureSuperThis, sleep } from "@fireproof/core-runtime"; const ROWS = 2; +const DBS = 1; class AJoinable implements Attachable { readonly name: string; @@ -155,42 +156,32 @@ async function writeRow( describe("Remote Sync Subscription Tests", () => { const sthis = ensureSuperThis(); - // Subscription tracking variables - let subscriptionCallbacks: (() => void)[] = []; - const subscriptionCounts = new Map(); - const receivedDocs = new Map(); - // Helper to setup subscription tracking on a database - function setupSubscription(db: Database, dbName: string): Promise { - return new Promise((resolve) => { - subscriptionCounts.set(dbName, 0); - receivedDocs.set(dbName, []); - - const unsubscribe = db.subscribe((docs) => { - const currentCount = subscriptionCounts.get(dbName) || 0; - const currentDocs = receivedDocs.get(dbName) || []; - - subscriptionCounts.set(dbName, currentCount + 1); - receivedDocs.set(dbName, [...currentDocs, ...docs]); - - // Subscription fired successfully - tracked in subscriptionCounts - resolve(); - }, true); - - subscriptionCallbacks.push(unsubscribe); - }); + function setupSubscription(db: Database) { + const docs: DocWithId[] = []; + return { + docs, + unsub: db.subscribe((sdocs) => { + docs.push(...sdocs); + }, true), + }; } - afterEach(async () => { - // Clean up all subscriptions - subscriptionCallbacks.forEach((unsub) => unsub()); - subscriptionCallbacks = []; - subscriptionCounts.clear(); - receivedDocs.clear(); - }); - describe("join function", () => { let db: Database; - let joinableDBs: string[] = []; + let dbContent: DocWithId[]; + let joinableDBs: { + name: string; + content: DocWithId[]; + }[] = []; + + async function writeRows(db: Database): Promise[]> { + const ret: DocWithId[] = []; + for (let j = 0; j < ROWS; j++) { + await db.put({ _id: `${db.name}-${j}`, value: `${db.name}-${j}` }); + ret.push(await db.get(`${db.name}-${j}`)); + } + return ret; + } beforeEach(async () => { const set = sthis.nextId().str; @@ -200,26 +191,23 @@ describe("Remote Sync Subscription Tests", () => { base: `memory://db-${set}`, }, }); - - for (let j = 0; j < ROWS; j++) { - await db.put({ _id: `db-${j}`, value: `db-${set}` }); - } + dbContent = await writeRows(db); joinableDBs = await Promise.all( - new Array(1).fill(1).map(async (_, i) => { + new Array(DBS).fill(1).map(async (_, i) => { const name = `remote-db-${i}-${set}`; const jdb = fireproof(name, { storeUrls: attachableStoreUrls(name, db), }); - for (let j = 0; j < ROWS; j++) { - await jdb.put({ _id: `${i}-${j}`, value: `${i}-${j}` }); - } + const content = await writeRows(jdb); expect(await jdb.get(PARAM.GENESIS_CID)).toEqual({ _id: PARAM.GENESIS_CID }); await jdb.close(); - return name; + return { + name, + content, + }; }), ); - expect(await db.get(PARAM.GENESIS_CID)).toEqual({ _id: PARAM.GENESIS_CID }); }); @@ -227,76 +215,127 @@ describe("Remote Sync Subscription Tests", () => { await db.close(); }); - it("should trigger subscriptions on inbound syncing", async () => { - /* - * WHAT THIS TEST DOES: - * 1. Creates main database with initial data (1 doc) - * 2. Creates remote databases with their own data (1 doc each) - * 3. Sets up subscription on main database - * 4. Attaches remote databases to main database - * 5. Expects subscription to fire when remote data syncs into main database - * - * WHAT SHOULD HAPPEN: - * - Main DB starts with 1 document - * - Remote DBs have 1 document each - * - When attach() completes, main DB should have 2 documents (1 original + 1 from remote) - * - The subscription should fire because the database contents changed (new document arrived) - * - This is equivalent to someone else writing data that syncs into your local database - * - * WHAT ACTUALLY HAPPENS (BUG): - * - ✅ Data syncs correctly (confirmed by debug tests) - * - ❌ Subscription never fires even though database contents changed - * - This means users don't get notified when remote data arrives via toCloud/attach - * - * WHY THIS IS A BUG: - * - From user perspective: remote data arriving should trigger same notifications as local writes - * - React components using useLiveQuery don't update when remote changes sync - * - Breaks the reactive programming model for distributed databases - * - * EXPECTED BEHAVIOR: - * When db.attach() pulls in remote data, it should trigger subscriptions just like db.put() does - */ - + it("should trigger subscriptions on inbound syncing", { timeout: 30000 }, async () => { // Setup subscription on main database before attaching remote databases - const subscriptionPromise = setupSubscription(db, "main-db"); + const dbSub = setupSubscription(db); // Perform the attach operations that should trigger subscriptions await Promise.all( - joinableDBs.map(async (name) => { + joinableDBs.map(async ({ name }) => { const attached = await db.attach(aJoinable(name, db)); expect(attached).toBeDefined(); }), ); + // ASSERTION: Check remote carLogs immediately after attachment + for (const dbName of joinableDBs) { + const tempJdb = fireproof(dbName.name, { + storeUrls: attachableStoreUrls(dbName.name, db), + }); + const carLogAfterAttach = tempJdb.ledger.crdt.blockstore.loader.carLog.asArray().flat(); + console.log(`AFTER_ATTACH: ${dbName.name} carLog length:`, carLogAfterAttach.length); + expect(carLogAfterAttach.length).toBe(0); + await tempJdb.close(); + } + // Wait for sync to complete - await sleep(100); + await sleep(1000); - // Wait for subscription to fire (or timeout) - // 🐛 BUG: This will timeout because subscription never fires for remote data sync - await Promise.race([ - subscriptionPromise, - new Promise((_, reject) => setTimeout(() => reject(new Error("Subscription timeout")), 5000)), - ]); + // ASSERTION: Check remote carLogs after sleep + for (const dbName of joinableDBs) { + const tempJdb = fireproof(dbName.name, { + storeUrls: attachableStoreUrls(dbName.name, db), + }); + const allDocs = await tempJdb.allDocs(); + console.log(`AFTER_SLEEP: ${dbName.name} allDocs length:`, allDocs.rows.length); + const carLogAfterSleep = tempJdb.ledger.crdt.blockstore.loader.carLog.asArray().flat(); + console.log(`AFTER_SLEEP: ${dbName.name} carLog length:`, carLogAfterSleep.length); + expect(carLogAfterSleep.length).toBeGreaterThan(0); + await tempJdb.close(); + } - // Verify the subscription was triggered - expect(subscriptionCounts.get("main-db")).toBeGreaterThan(0); - expect(subscriptionCounts.get("main-db")).toBeGreaterThanOrEqual(1); // Should fire at least once + // ASSERTION: Verify all CAR files in main DB carLog are reachable from storage + const mainCarLog = db.ledger.crdt.blockstore.loader.carLog.asArray().flat(); + for (const cid of mainCarLog) { + const carResult = await db.ledger.crdt.blockstore.loader.loadCar( + cid, + db.ledger.crdt.blockstore.loader.attachedStores.local(), + ); + expect(carResult.item.status).not.toBe("stale"); + } // Verify the data was synced correctly + const refData = [...dbContent.map((i) => i._id), ...joinableDBs.map((i) => i.content.map((i) => i._id)).flat()].sort(); expect(db.ledger.crdt.blockstore.loader.attachedStores.remotes().length).toBe(joinableDBs.length); - const res = await db.allDocs(); + const res = await db.allDocs(); + expect(res.rows.map((i) => i.key).sort()).toEqual(refData); expect(res.rows.length).toBe(ROWS + ROWS * joinableDBs.length); + expect(Array.from(new Set(dbSub.docs.map((i) => i._id))).sort()).toEqual(refData); + + // this is a good place to add more assertsions + + for (const dbName of joinableDBs) { + const jdb = fireproof(dbName.name, { + storeUrls: attachableStoreUrls(dbName.name, db), + }); + // await jdb.compact(); + + // ASSERTION: Verify all CAR files in remote DB carLog are reachable from storage + const remoteCarLog = jdb.ledger.crdt.blockstore.loader.carLog.asArray().flat(); + + for (const cid of remoteCarLog) { + const carResult = await jdb.ledger.crdt.blockstore.loader.loadCar( + cid, + jdb.ledger.crdt.blockstore.loader.attachedStores.local(), + ); + expect(carResult.item.status).not.toBe("stale"); + } + + // ASSERTION: Verify carLog is not empty (sanity check) + // expect(remoteCarLog.length).toBeGreaterThan(0); + + // ASSERTION: Cross-reference - verify remote DB has access to same CAR files as main DB + const mainCarLogStrings = new Set(mainCarLog.map((c) => c.toString())); + const remoteCarLogStrings = new Set(remoteCarLog.map((c) => c.toString())); + const missingCids = Array.from(mainCarLogStrings).filter((cid) => !remoteCarLogStrings.has(cid)); + console.log(`MISSING_CIDS in ${dbName.name}:`, missingCids); + console.log(`MAIN_CIDS:`, Array.from(mainCarLogStrings)); + console.log(`REMOTE_CIDS:`, Array.from(remoteCarLogStrings)); + // expect(missingCids.length).toBe(0); + + console.log( + `POST_COMPACT: ${dbName.name} carLog:`, + jdb.ledger.crdt.blockstore.loader.carLog + .asArray() + .map((cg) => cg.map((c) => c.toString()).join(",")) + .join(";"), + ); + sthis.env.set("FP_DEBUG", "MemoryGatewayMeta"); + + const res = await jdb.allDocs(); + // expect(jdb.ledger.crdt.blockstore.loader.carLog.asArray().flat().length).toBe(9); + // expect(res.rows).toEqual({}) // This expectation is incorrect and causes test failure + expect(res.rows.length).toBe(ROWS + ROWS * joinableDBs.length); + await jdb.close(); + } + // Verify subscription received the synced documents - const docs = receivedDocs.get("main-db") || []; - expect(docs.length).toBeGreaterThan(0); + // const docs = receivedDocs.get("main-db") || []; + // expect(docs.length).toBeGreaterThan(0); // With our fix, subscriptions now properly fire for remote data sync // The exact number may vary based on sync timing, but we should get all synced documents - expect(docs.length).toBeGreaterThanOrEqual(ROWS * joinableDBs.length); + // expect(docs.length).toBeGreaterThanOrEqual(ROWS * joinableDBs.length); + dbSub.unsub(); }); }); describe("sync", () => { + // Track subscription events for sync tests + const subscriptionCounts = new Map(); + const receivedDocs = new Map[]>(); + let subscriptionCallbacks: (() => void)[] = []; + beforeEach(async () => { // Reset subscription tracking for each sync test subscriptionCallbacks.forEach((unsub) => unsub()); @@ -367,18 +406,26 @@ describe("Remote Sync Subscription Tests", () => { const inbound = await syncDb(`inbound-db-${id}`, `memory://sync-inbound`); // Setup subscription BEFORE attaching - this simulates useLiveQuery being active - const subscriptionPromise = setupSubscription(inbound, "inbound-db"); + const dbKey = "inbound-db"; + subscriptionCounts.set(dbKey, 0); + receivedDocs.set(dbKey, []); + + const unsub = inbound.subscribe((sdocs) => { + const currentCount = subscriptionCounts.get(dbKey) || 0; + subscriptionCounts.set(dbKey, currentCount + 1); + + const currentDocs = receivedDocs.get(dbKey) || []; + currentDocs.push(...sdocs); + receivedDocs.set(dbKey, currentDocs); + }, true); + subscriptionCallbacks.push(unsub); // Attach to the same sync namespace - this simulates toCloud() reconnection // 🐛 BUG: This should trigger subscription but doesn't await inbound.attach(aJoinable(`sync-${id}`, inbound)); - // Wait for subscription to fire (or timeout) - // 🐛 BUG: This will timeout because subscription never fires for reconnection sync - await Promise.race([ - subscriptionPromise, - new Promise((_, reject) => setTimeout(() => reject(new Error("Subscription timeout")), 5000)), - ]); + // Wait for sync to complete - give time for subscription to fire + await new Promise(resolve => setTimeout(resolve, 1000)); // Verify the subscription was triggered by remote sync expect(subscriptionCounts.get("inbound-db")).toBeGreaterThan(0); @@ -438,7 +485,7 @@ describe("Remote Sync Subscription Tests", () => { const tdb = await prepareDb(`online-db-${id}-${i}`, `memory://local-${id}-${i}`); // Setup subscription on each database - const subscriptionPromise = setupSubscription(tdb.db, `online-db-${i}`); + const subscriptionPromise = setupSubscription(tdb.db); // Attach to shared sync namespace (no existing data to sync yet) await tdb.db.attach(aJoinable(`sync-${id}`, tdb.db)); @@ -496,30 +543,31 @@ describe("Remote Sync Subscription Tests", () => { // Wait for sync completion before checking all keys await sleep(2000); - await Promise.all( - dbs.map(async (db) => { - const allDocs = await db.db.allDocs(); - // console.log(allDocs.rows); - if (allDocs.rows.length != keys.length) { - expect({ - all: allDocs.rows.map((i) => i.key).sort(), - keys: keys.sort(), - }).toEqual({}); - } - expect(allDocs.rows.map((i) => i.key).sort()).toEqual(keys.sort()); - // for (const key of keys) { - // try { - // const doc = await db.db.get<{ value: string }>(key); - // expect(doc._id).toBe(key); - // expect(doc.value).toBe(key); - // } catch (e) { - // // Document may still be syncing, this is expected in some test runs - // console.log(`Document ${key} not yet synced to database`); - // } - // } - }), + const dbAllDocs = await Promise.allSettled( + dbs.map(async (db) => + db.db.allDocs().then((rows) => ({ + name: db.db.name, + rows: rows.rows, + })), + ), ); + let isError = !!dbAllDocs.filter((i) => i.status !== "fulfilled").length; + isError ||= !!dbAllDocs.filter( + (i) => i.status === "fulfilled" && JSON.stringify(i.value.rows.map((i) => i.key).sort()) !== JSON.stringify(keys.sort()), + ).length; + if (isError) { + expect({ + keys: keys.sort(), + keyslen: keys.length, + result: dbAllDocs.map((i) => ({ + status: i.status, + dbname: (i.status === "fulfilled" && i.value.name) || "", + length: ((i.status === "fulfilled" && i.value.rows.map((i) => i.key)) || []).length, + rows: ((i.status === "fulfilled" && i.value.rows.map((i) => i.key)) || []).sort(), + })), + }).toEqual([]); + } // Cleanup await Promise.all(dbs.map((tdb) => tdb.db.close())); }, 100_000); diff --git a/core/tests/package.json b/core/tests/package.json index b84636458..09ec63246 100644 --- a/core/tests/package.json +++ b/core/tests/package.json @@ -40,7 +40,7 @@ "react": ">=18.0.0" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core": "workspace:0.0.0", "@fireproof/core-base": "workspace:0.0.0", "@fireproof/core-blockstore": "workspace:0.0.0", @@ -61,7 +61,7 @@ "@ipld/car": "^5.4.2", "@ipld/dag-cbor": "^9.2.5", "@ipld/dag-json": "^10.2.5", - "@types/node": "^24.3.1", + "@types/node": "^24.4.0", "cborg": "^4.2.15", "charwise": "^3.0.1", "jose": "^6.0.12", diff --git a/core/tests/runtime/meta-key-hack.test.ts b/core/tests/runtime/meta-key-hack.test.ts index 7175a40b8..dcfbe84f4 100644 --- a/core/tests/runtime/meta-key-hack.test.ts +++ b/core/tests/runtime/meta-key-hack.test.ts @@ -13,6 +13,7 @@ describe("MetaKeyHack", () => { const storageMap = new Map(); const sthis = ensureSuperThis(); + let ctx: { loader: Loadable }; const memGw = new MemoryGateway(sthis, storageMap); registerStoreProtocol({ protocol: "hack:", @@ -23,7 +24,6 @@ describe("MetaKeyHack", () => { }); let db: Database; - let ctx: { loader: Loadable }; beforeAll(async () => { db = fireproof("test", { storeUrls: { diff --git a/core/types/base/package.json b/core/types/base/package.json index ff7be2e7d..17ccd91b1 100644 --- a/core/types/base/package.json +++ b/core/types/base/package.json @@ -36,12 +36,12 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-types-blockstore": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", "@web3-storage/pail": "^0.6.2", "jose": "^6.0.12", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "prolly-trees": "^1.0.4", "zod": "^4.1.8" } diff --git a/core/types/blockstore/package.json b/core/types/blockstore/package.json index 9743ff53e..1b631bbed 100644 --- a/core/types/blockstore/package.json +++ b/core/types/blockstore/package.json @@ -36,12 +36,12 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/core-types-runtime": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", "@web3-storage/pail": "^0.6.2", - "multiformats": "^13.4.1" + "multiformats": "^13.4.0" }, "devDependencies": { "@fireproof/core-cli": "workspace:0.0.0" diff --git a/core/types/protocols/cloud/package.json b/core/types/protocols/cloud/package.json index 6830e0b36..ccf12512a 100644 --- a/core/types/protocols/cloud/package.json +++ b/core/types/protocols/cloud/package.json @@ -36,12 +36,12 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-types-base": "workspace:0.0.0", "@fireproof/core-types-blockstore": "workspace:0.0.0", "@fireproof/vendor": "workspace:0.0.0", "jose": "^6.1.0", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "zod": "^4.1.8" }, "devDependencies": { diff --git a/core/types/runtime/package.json b/core/types/runtime/package.json index ef3be2364..d856a1ee8 100644 --- a/core/types/runtime/package.json +++ b/core/types/runtime/package.json @@ -36,8 +36,8 @@ "url": "https://github.com/fireproof-storage/fireproof/issues" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/vendor": "workspace:0.0.0", - "multiformats": "^13.4.1" + "multiformats": "^13.4.0" } } diff --git a/dashboard/package.json b/dashboard/package.json index a8a319c16..85c6d5afe 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -25,7 +25,7 @@ "publish": "echo skip" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@clerk/backend": "^2.14.0", "@clerk/clerk-js": "^5.93.0", "@clerk/clerk-react": "^5.47.0", @@ -43,7 +43,7 @@ "i": "^0.3.7", "jose": "^6.1.0", "minimatch": "^10.0.1", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-hook-form": "^7.62.0", @@ -56,7 +56,7 @@ "devDependencies": { "@clerk/clerk-react": "^5.47.0", "@cloudflare/vite-plugin": "^1.13.1", - "@cloudflare/workers-types": "^4.20250906.0", + "@cloudflare/workers-types": "^4.20250918.0", "@eslint/js": "^9.35.0", "@fireproof/core-cli": "workspace:0.0.0", "@libsql/client": "^0.15.15", @@ -77,11 +77,11 @@ "postcss": "^8.4.49", "prettier": "^3.4.2", "rollup-plugin-visualizer": "^6.0.1", - "tailwindcss": "^4.1.13", + "tailwindcss": "^3.4.17", "typescript": "^5.8.3", "vite": "^7.1.5", "vitest": "^3.2.4", - "wrangler": "^4.37.0", + "wrangler": "^4.38.0", "zx": "^8.8.1" } } diff --git a/notes/meta-impl.md b/notes/meta-impl.md new file mode 100644 index 000000000..bd89c4b8c --- /dev/null +++ b/notes/meta-impl.md @@ -0,0 +1,138 @@ +# Meta Corruption Branch - Implementation Analysis + +## Branch Overview + +- **Branch**: `mabels/meta-corruption` +- **Latest Commit**: `63bf7583` - "wip: store all changes [skip ci]" +- **Key Investigation Commits**: + - `bd19ef5b` - feat: enable block validation and enhance logging for CRDT sync operations + - `54d2b779` - feat: add debug logging and assertions for CID validation in blockstore operations + - `9289c676` - WIP: Enhanced logging for meta-corruption race condition investigation + +## Core Implementation Changes + +### 1. **FP Envelope System** (`core/types/blockstore/fp-envelope.ts`) + +- **Added**: Subscription support with `FPEnvelopeSubscriptions` +- **Added**: Type guard functions (`isFPEnvelopeCar`, `isFPEnvelopeFile`, `isFPEnvelopeMeta`, `isFPEnvelopeWAL`) +- **Added**: `isFPEnvelopeBlob` for unified blob handling +- **Purpose**: Structured data format replacing raw `Uint8Array` + +### 2. **Memory Gateway Overhaul** (`core/gateways/memory/gateway.ts`) + +- **Changed**: Storage from `Map` to `Map>` +- **Added**: Built-in subscription system with callback management +- **Added**: Detailed logging for all operations (put-car, put-meta, put-wal, get operations) +- **Added**: `getPlain()` method with envelope-to-bytes conversion +- **Critical**: This is likely the root cause of the "Not a Uint8Array" error + +### 3. **KeyBag API Changes** (`core/keybag/key-bag.ts`) + +- **Changed**: Constructor from `await KeyBag.create(rt)` to `new KeyBag(rt)` +- **Changed**: Method signatures - `upsert(key, { def: false })` becomes `upsert(key, false)` +- **Changed**: `asV2StorageKeyItem()` becomes `asV2KeysItem()` +- **Added**: Complete rewrite with fingerprint-based key management + +### 4. **Enhanced Logging Infrastructure** + +#### Loader (`core/blockstore/loader.ts`) + +- **Added**: CarLog state tracking before/after merge operations +- **Added**: Network request/response logging for CAR loading +- **Added**: CID validation logging with prefix checks +- **Added**: LoaderCarContent debug logging for loaded blocks +- **Changed**: `this.currentMeta` to `this.XXXcurrentMeta` (debugging marker) + +#### CRDT Clock (`core/base/crdt-clock.ts`) + +- **Added**: Pre/post applyMeta logging with head state +- **Added**: Block validation error details with CID information +- **Added**: Queue processing debug information +- **Added**: CarLog state logging before block validation + +#### CRDT (`core/base/crdt.ts`) + +- **Added**: Detailed applyMeta logging with incoming vs current head comparison +- **Added**: Blockstore ready state progression logging + +### 5. **Meta Key Hack Changes** (`core/gateways/base/meta-key-hack.ts`) + +- **Fixed**: KeyBag API compatibility (`{ def: false }` → `false`) +- **Fixed**: Method name changes (`asV2StorageKeyItem()` → `asV2KeysItem()`) +- **Changed**: Constructor parameter from `Gateway` to `SerdeGateway` + +### 6. **Database Error Handling** (`core/base/database.ts`) + +- **Added**: Better error differentiation in `get()` method +- **Added**: `isNotFoundError()` check to avoid double-wrapping exceptions + +### 7. **Test Updates** (`core/tests/fireproof/attachable-subscription.test.ts`) + +- **Changed**: Store key from `"@fireproof:attach@"` to `"insecure"` +- **Reduced**: Database count from 2 to 1 for focused testing +- **Added**: Debug assertion `expect(res.rows).toEqual({})` (appears to be debugging code) + +## Key Issues Identified + +### The "Not a Uint8Array" Problem + +The root cause appears to be in the MemoryGateway changes: + +1. **Old System**: + - Stored raw `Uint8Array` data + - `get()` returned `Uint8Array` directly + - Tests could call `txt.decode(rawBytes)` + +2. **New System**: + - Stores structured `FPEnvelope` objects + - `get()` returns envelope with `.payload` property + - Tests now need to call `txt.decode(envelope.payload)` + +### Test Compatibility Break + +The meta-key-hack.test.ts expects: + +```typescript +const rGet = await memGw.get(rUrl.Ok(), sthis); +const metas = JSON.parse(ctx.loader.sthis.txt.decode(rGet.Ok())); // ❌ Fails - rGet.Ok() is envelope +``` + +Should be: + +```typescript +const rGet = await memGw.get(ctx, rUrl.Ok()); +const metas = JSON.parse(ctx.loader.sthis.txt.decode(rGet.Ok().payload)); // ✅ Correct +``` + +## Implementation Strategy + +### Phase 1: Core Infrastructure + +1. Implement envelope system with type guards +2. Update MemoryGateway to envelope-based storage +3. Add subscription management infrastructure + +### Phase 2: KeyBag Compatibility + +1. Implement new KeyBag constructor pattern +2. Update method signatures and return types +3. Fix meta-key-hack gateway integration + +### Phase 3: Enhanced Logging + +1. Add detailed CarLog state tracking in loader +2. Implement CRDT clock debug logging +3. Add network request/response logging + +### Phase 4: Test Updates + +1. Update meta-key-hack.test.ts for envelope format +2. Fix API calls to use new KeyBag pattern +3. Add SerdeGatewayCtx parameter where needed + +## Risk Assessment + +- **Critical**: MemoryGateway changes affect all in-memory testing +- **High**: KeyBag API changes require extensive updates +- **Medium**: Logging changes are mostly additive but may affect performance +- **Low**: Test updates are isolated to specific test files diff --git a/notes/meta-testing.md b/notes/meta-testing.md new file mode 100644 index 000000000..4d5477ea5 --- /dev/null +++ b/notes/meta-testing.md @@ -0,0 +1,73 @@ +# Meta Corruption Investigation - Key Changes Analysis + +## Critical Changes to Bring Over + +### 1. **Enhanced Logging Infrastructure** (Essential for debugging) + +- `core/blockstore/loader.ts`: Extensive debug logging for CarLog state tracking, merge operations, and network requests +- `core/base/crdt-clock.ts`: Enhanced logging for block validation, head processing, and queue operations +- `core/gateways/memory/gateway.ts`: Complete rewrite to envelope-based system with detailed logging + +### 2. **KeyBag API Changes** (Required for test compatibility) + +- `core/keybag/key-bag.ts`: Major API refactor from `KeyBag.create()` to `new KeyBag()` constructor +- `core/tests/runtime/meta-key-hack.test.ts`: Updated test using new KeyBag API and additional types + +### 3. **Gateway System Overhaul** (Core to meta corruption investigation) + +- `core/gateways/memory/gateway.ts`: Switched from `Uint8Array` to envelope-based (`FPEnvelope`) storage +- This change likely relates to the "Not a Uint8Array" error we saw in the failing tests + +### 4. **Investigation-Specific Test Changes** + +- `core/tests/fireproof/attachable-subscription.test.ts`: Extensive subscription behavior investigation with detailed documentation + +## Root Cause Analysis + +The meta corruption appears to stem from: + +1. **Data Format Changes**: Gateway system moved from raw `Uint8Array` to structured `FPEnvelope` format +2. **API Breaking Changes**: KeyBag constructor pattern changed, breaking existing tests +3. **Race Conditions**: Enhanced logging suggests investigation of timing issues in meta synchronization + +## Recommended Approach + +### Phase 1: Core Infrastructure (Required) + +1. Bring over the enhanced logging system from loader.ts and crdt-clock.ts +2. Update KeyBag API to use new constructor pattern +3. Implement envelope-based MemoryGateway system + +### Phase 2: Test Compatibility (Required) + +1. Update meta-key-hack.test.ts to use new KeyBag API +2. Fix test to handle envelope-based data format instead of raw Uint8Array + +### Phase 3: Investigation Tools (Optional) + +1. Bring over detailed subscription investigation tests +2. Add race condition debugging infrastructure + +## Risk Assessment + +- **High**: Core gateway changes affect all storage operations +- **Medium**: KeyBag API changes require extensive test updates +- **Low**: Enhanced logging is additive and safe + +## Expected Outcome + +This will provide the tools needed to debug the meta corruption issue while maintaining compatibility with the investigation branch's test suite. + +## Current Status + +- **Current Branch**: `next` (clean baseline from `mabels/deps-20250918`) +- **Investigation Branch**: `mabels/meta-corruption` (has failing tests but extensive debugging infrastructure) +- **Key Issue**: Meta tests fail with "Not a Uint8Array" error on investigation branch +- **Test Results**: Meta tests pass on clean branch but fail when trying to use investigation branch test file + +## Next Steps + +1. Decide which changes to cherry-pick from investigation branch +2. Start with minimal KeyBag API fix to get tests working +3. Gradually add logging infrastructure as needed +4. Investigate the envelope vs Uint8Array format issue diff --git a/package.json b/package.json index 2088552ae..2cc5fac8f 100644 --- a/package.json +++ b/package.json @@ -61,13 +61,13 @@ "@eslint/js": "^9.35.0", "@fireproof/core-cli": "workspace:0.0.0", "@types/deno": "^2.3.0", - "@types/node": "^24.3.1", + "@types/node": "^24.4.0", "@typescript/native-preview": "7.0.0-dev.20250915.1", - "deno": "^2.5.0", + "deno": "^2.5.1", "drizzle-kit": "0.30.6", "eslint": "^9.35.0", "eslint-plugin-import": "^2.32.0", - "multiformats": "^13.4.1", + "multiformats": "^13.4.0", "playwright": "^1.55.0", "playwright-chromium": "^1.55.0", "prettier": "^3.6.2", @@ -75,7 +75,7 @@ "typescript": "^5.8.3", "typescript-eslint": "^8.43.0", "vitest": "^3.2.4", - "wrangler": "^4.37.0" + "wrangler": "^4.38.0" }, "repository": { "type": "git", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 60c61eccc..e84b3cc9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: patchedDependencies: drizzle-kit: - hash: qurcebuunk6oqtltwdee4xtzuy + hash: 9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8 path: patches/drizzle-kit.patch importers: @@ -23,25 +23,25 @@ importers: specifier: ^2.3.0 version: 2.3.0 '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 '@typescript/native-preview': specifier: 7.0.0-dev.20250915.1 version: 7.0.0-dev.20250915.1 deno: - specifier: ^2.5.0 - version: 2.5.0 + specifier: ^2.5.1 + version: 2.5.1 drizzle-kit: specifier: 0.30.6 - version: 0.30.6(patch_hash=qurcebuunk6oqtltwdee4xtzuy) + version: 0.30.6(patch_hash=9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8) eslint: specifier: ^9.35.0 version: 9.35.0(jiti@1.21.7) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7)) + version: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7)) multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 playwright: specifier: ^1.55.0 @@ -60,19 +60,19 @@ importers: version: 5.9.2 typescript-eslint: specifier: ^8.43.0 - version: 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + version: 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) wrangler: - specifier: ^4.37.0 - version: 4.37.0(@cloudflare/workers-types@4.20250906.0) + specifier: ^4.38.0 + version: 4.38.0(@cloudflare/workers-types@4.20250919.0) cli: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-runtime': specifier: workspace:0.0.0 version: link:../core/runtime @@ -93,12 +93,12 @@ importers: version: 7.0.0 fs-extra: specifier: ^11.3.1 - version: 11.3.1 + version: 11.3.2 jose: specifier: ^6.1.0 version: 6.1.0 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 semver: specifier: ^7.7.2 @@ -121,13 +121,13 @@ importers: version: 4.20.5 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) cloud/3rd-party: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) react-dom: specifier: ^19.1.1 version: 19.1.1(react@19.1.1) @@ -143,19 +143,19 @@ importers: version: 19.1.9(@types/react@19.1.13) '@vitejs/plugin-react': specifier: ^5.0.2 - version: 5.0.2(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) + version: 5.0.3(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) cloud/backend/base: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@cloudflare/workers-types': - specifier: ^4.20250906.0 - version: 4.20250906.0 + specifier: ^4.20250918.0 + version: 4.20250919.0 '@fireproof/cloud-base': specifier: workspace:0.0.0 version: link:../../base @@ -182,10 +182,10 @@ importers: version: 1.0.20 drizzle-orm: specifier: ^0.44.3 - version: 0.44.5(@cloudflare/workers-types@4.20250906.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.5) + version: 0.44.5(@cloudflare/workers-types@4.20250919.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.7) hono: - specifier: ^4.9.7 - version: 4.9.7 + specifier: ^4.9.8 + version: 4.9.8 jose: specifier: ^6.1.0 version: 6.1.0 @@ -204,10 +204,10 @@ importers: version: link:../../../core/types/protocols/cloud drizzle-kit: specifier: 0.30.6 - version: 0.30.6(patch_hash=qurcebuunk6oqtltwdee4xtzuy) + version: 0.30.6(patch_hash=9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) zx: specifier: ^8.8.1 version: 8.8.1 @@ -215,11 +215,11 @@ importers: cloud/backend/cf-d1: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@cloudflare/workers-types': - specifier: ^4.20250906.0 - version: 4.20250906.0 + specifier: ^4.20250918.0 + version: 4.20250919.0 '@fireproof/cloud-backend-base': specifier: workspace:0.0.0 version: link:../base @@ -246,12 +246,12 @@ importers: version: 0.14.1 drizzle-orm: specifier: ^0.44.3 - version: 0.44.5(@cloudflare/workers-types@4.20250906.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.5) + version: 0.44.5(@cloudflare/workers-types@4.20250919.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.7) hono: - specifier: ^4.9.7 - version: 4.9.7 + specifier: ^4.9.8 + version: 4.9.8 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 devDependencies: '@fireproof/core-cli': @@ -259,16 +259,16 @@ importers: version: link:../../../cli drizzle-kit: specifier: 0.30.6 - version: 0.30.6(patch_hash=qurcebuunk6oqtltwdee4xtzuy) + version: 0.30.6(patch_hash=9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8) tsx: specifier: ^4.20.4 version: 4.20.5 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) wrangler: - specifier: ^4.37.0 - version: 4.37.0(@cloudflare/workers-types@4.20250906.0) + specifier: ^4.38.0 + version: 4.38.0(@cloudflare/workers-types@4.20250919.0) zx: specifier: ^8.8.1 version: 8.8.1 @@ -276,8 +276,8 @@ importers: cloud/backend/node: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/cloud-backend-base': specifier: workspace:0.0.0 version: link:../base @@ -303,33 +303,33 @@ importers: specifier: workspace:0.0.0 version: link:../../../vendor '@hono/node-server': - specifier: ^1.19.1 - version: 1.19.1(hono@4.9.7) + specifier: ^1.19.2 + version: 1.19.3(hono@4.9.8) '@hono/node-ws': specifier: ^1.2.0 - version: 1.2.0(@hono/node-server@1.19.1(hono@4.9.7))(hono@4.9.7) + version: 1.2.0(@hono/node-server@1.19.3(hono@4.9.8))(hono@4.9.8) '@libsql/client': specifier: ^0.15.15 version: 0.15.15 drizzle-orm: specifier: ^0.44.3 - version: 0.44.5(@cloudflare/workers-types@4.20250906.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.5) + version: 0.44.5(@cloudflare/workers-types@4.20250919.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.7) hono: - specifier: ^4.9.7 - version: 4.9.7 + specifier: ^4.9.8 + version: 4.9.8 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) devDependencies: '@fireproof/core-cli': specifier: workspace:0.0.0 version: link:../../../cli '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 drizzle-kit: specifier: 0.30.6 - version: 0.30.6(patch_hash=qurcebuunk6oqtltwdee4xtzuy) + version: 0.30.6(patch_hash=9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8) zx: specifier: ^8.8.1 version: 8.8.1 @@ -337,8 +337,8 @@ importers: cloud/base: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-blockstore': specifier: workspace:0.0.0 version: link:../../core/blockstore @@ -369,7 +369,7 @@ importers: version: link:../../cli vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) zx: specifier: ^8.8.1 version: 8.8.1 @@ -377,8 +377,8 @@ importers: cloud/todo-app: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/vendor': specifier: workspace:0.0.0 version: link:../../vendor @@ -403,13 +403,13 @@ importers: version: 19.1.9(@types/react@19.1.13) vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) core/base: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-blockstore': specifier: workspace:0.0.0 version: link:../blockstore @@ -448,14 +448,14 @@ importers: specifier: workspace:0.0.0 version: link:../../cli '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 core/blockstore: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-gateways-base': specifier: workspace:0.0.0 version: link:../gateways/base @@ -502,7 +502,7 @@ importers: specifier: ^0.6.2 version: 0.6.2 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 p-map: specifier: ^7.0.3 @@ -514,8 +514,8 @@ importers: core/core: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-base': specifier: workspace:0.0.0 version: link:../base @@ -526,8 +526,8 @@ importers: specifier: workspace:0.0.0 version: link:../../vendor '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 react: specifier: '>=18.0.0' version: 19.1.1 @@ -535,8 +535,8 @@ importers: core/device-id: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-keybag': specifier: workspace:0.0.0 version: link:../keybag @@ -550,24 +550,24 @@ importers: specifier: ^6.0.12 version: 6.1.0 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 zod: specifier: ^4.1.8 - version: 4.1.8 + version: 4.1.9 devDependencies: '@fireproof/core-cli': specifier: workspace:0.0.0 version: link:../../cli '@types/node': - specifier: ^24.1.0 - version: 24.3.0 + specifier: ^24.4.0 + version: 24.5.2 core/gateways/base: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-runtime': specifier: workspace:0.0.0 version: link:../../runtime @@ -590,8 +590,8 @@ importers: core/gateways/cloud: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-gateways-base': specifier: workspace:0.0.0 version: link:../base @@ -620,8 +620,8 @@ importers: core/gateways/file: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-gateways-base': specifier: workspace:0.0.0 version: link:../base @@ -651,14 +651,14 @@ importers: specifier: ^2.3.0 version: 2.3.0 '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 core/gateways/file-deno: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-types-base': specifier: workspace:0.0.0 version: link:../../types/base @@ -669,14 +669,14 @@ importers: specifier: ^2.3.0 version: 2.3.0 '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 core/gateways/file-node: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-types-base': specifier: workspace:0.0.0 version: link:../../types/base @@ -687,8 +687,8 @@ importers: core/gateways/indexeddb: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-gateways-base': specifier: workspace:0.0.0 version: link:../base @@ -711,8 +711,8 @@ importers: core/gateways/memory: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-gateways-base': specifier: workspace:0.0.0 version: link:../base @@ -736,14 +736,14 @@ importers: specifier: ^2.3.0 version: 2.3.0 '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 core/keybag: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-gateways-file': specifier: workspace:0.0.0 version: link:../gateways/file @@ -763,17 +763,17 @@ importers: specifier: ^6.0.12 version: 6.1.0 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 zod: specifier: ^4.1.8 - version: 4.1.8 + version: 4.1.9 core/protocols/cloud: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-runtime': specifier: workspace:0.0.0 version: link:../../runtime @@ -796,8 +796,8 @@ importers: core/protocols/dashboard: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-runtime': specifier: workspace:0.0.0 version: link:../../runtime @@ -814,8 +814,8 @@ importers: core/runtime: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@adviser/ts-xxhash': specifier: ^1.0.2 version: 1.0.2 @@ -841,7 +841,7 @@ importers: specifier: ^6.1.0 version: 6.1.0 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 devDependencies: '@fireproof/core-cli': @@ -851,8 +851,8 @@ importers: core/tests: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core': specifier: workspace:0.0.0 version: link:../core @@ -914,8 +914,8 @@ importers: specifier: ^10.2.5 version: 10.2.5 '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.4.0 + version: 24.5.2 cborg: specifier: ^4.2.15 version: 4.2.15 @@ -940,7 +940,7 @@ importers: version: link:../../cli '@vitest/browser': specifier: ^3.2.4 - version: 3.2.4(playwright@1.55.0)(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) + version: 3.2.4(playwright@1.55.0)(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) playwright: specifier: ^1.55.0 version: 1.55.0 @@ -949,7 +949,7 @@ importers: version: 1.55.0 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) zx: specifier: ^8.8.1 version: 8.8.1 @@ -957,8 +957,8 @@ importers: core/types/base: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-types-blockstore': specifier: workspace:0.0.0 version: link:../blockstore @@ -972,20 +972,20 @@ importers: specifier: ^6.0.12 version: 6.1.0 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 prolly-trees: specifier: ^1.0.4 version: 1.0.4 zod: specifier: ^4.1.8 - version: 4.1.8 + version: 4.1.9 core/types/blockstore: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-types-base': specifier: workspace:0.0.0 version: link:../base @@ -999,7 +999,7 @@ importers: specifier: ^0.6.2 version: 0.6.2 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 devDependencies: '@fireproof/core-cli': @@ -1009,8 +1009,8 @@ importers: core/types/protocols/cloud: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-types-base': specifier: workspace:0.0.0 version: link:../../base @@ -1024,11 +1024,11 @@ importers: specifier: ^6.1.0 version: 6.1.0 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 zod: specifier: ^4.1.8 - version: 4.1.8 + version: 4.1.9 devDependencies: '@fireproof/core-cli': specifier: workspace:0.0.0 @@ -1037,26 +1037,26 @@ importers: core/types/runtime: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/vendor': specifier: workspace:0.0.0 version: link:../../../vendor multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 dashboard: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@clerk/backend': specifier: ^2.14.0 version: 2.14.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@clerk/clerk-js': - specifier: ^5.91.2 - version: 5.91.2(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.0.14) + specifier: ^5.93.0 + version: 5.93.0(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.1.9) '@clerk/clerk-react': specifier: ^5.47.0 version: 5.47.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -1083,13 +1083,13 @@ importers: version: 3.0.0 '@monaco-editor/react': specifier: ^4.7.0 - version: 4.7.0(monaco-editor@0.52.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 4.7.0(monaco-editor@0.53.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@tailwindcss/container-queries': specifier: ^0.1.1 - version: 0.1.1(tailwindcss@4.1.13) + version: 0.1.1(tailwindcss@3.4.17) '@tanstack/react-query': specifier: ^5.87.4 - version: 5.87.4(react@19.1.1) + version: 5.89.0(react@19.1.1) highlight.js: specifier: ^11.10.0 version: 11.11.1 @@ -1103,7 +1103,7 @@ importers: specifier: ^10.0.1 version: 10.0.3 multiformats: - specifier: ^13.4.1 + specifier: ^13.4.0 version: 13.4.1 react: specifier: ^19.1.0 @@ -1128,14 +1128,14 @@ importers: version: link:../use-fireproof zod: specifier: ^4.1.8 - version: 4.1.8 + version: 4.1.9 devDependencies: '@cloudflare/vite-plugin': - specifier: ^1.10.1 - version: 1.12.0(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(workerd@1.20250906.0)(wrangler@4.37.0(@cloudflare/workers-types@4.20250906.0)) + specifier: ^1.13.1 + version: 1.13.3(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(workerd@1.20250917.0)(wrangler@4.38.0(@cloudflare/workers-types@4.20250919.0)) '@cloudflare/workers-types': - specifier: ^4.20250906.0 - version: 4.20250906.0 + specifier: ^4.20250918.0 + version: 4.20250919.0 '@eslint/js': specifier: ^9.35.0 version: 9.35.0 @@ -1147,10 +1147,10 @@ importers: version: 0.15.15 '@libsql/kysely-libsql': specifier: ^0.4.1 - version: 0.4.1(kysely@0.28.5) + version: 0.4.1(kysely@0.28.7) '@rollup/plugin-replace': specifier: ^6.0.1 - version: 6.0.2(rollup@4.50.1) + version: 6.0.2(rollup@4.51.0) '@testing-library/react': specifier: ^16.3.0 version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -1162,16 +1162,16 @@ importers: version: 19.1.9(@types/react@19.1.13) '@vitejs/plugin-react': specifier: ^5.0.2 - version: 5.0.2(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) + version: 5.0.3(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.6) drizzle-kit: specifier: 0.30.6 - version: 0.30.6(patch_hash=qurcebuunk6oqtltwdee4xtzuy) + version: 0.30.6(patch_hash=9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8) drizzle-orm: specifier: ^0.44.3 - version: 0.44.5(@cloudflare/workers-types@4.20250906.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.5) + version: 0.44.5(@cloudflare/workers-types@4.20250919.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.7) eslint: specifier: ^9.35.0 version: 9.35.0(jiti@1.21.7) @@ -1195,22 +1195,22 @@ importers: version: 3.6.2 rollup-plugin-visualizer: specifier: ^6.0.1 - version: 6.0.3(rollup@4.50.1) + version: 6.0.3(rollup@4.51.0) tailwindcss: - specifier: ^4.1.13 - version: 4.1.13 + specifier: ^3.4.17 + version: 3.4.17 typescript: specifier: ^5.8.3 version: 5.9.2 vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) wrangler: - specifier: ^4.37.0 - version: 4.37.0(@cloudflare/workers-types@4.20250906.0) + specifier: ^4.38.0 + version: 4.38.0(@cloudflare/workers-types@4.20250919.0) zx: specifier: ^8.8.1 version: 8.8.1 @@ -1218,8 +1218,8 @@ importers: use-fireproof: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) '@fireproof/core-base': specifier: workspace:0.0.0 version: link:../core/base @@ -1249,7 +1249,7 @@ importers: version: link:../vendor dompurify: specifier: ^3.2.6 - version: 3.2.6 + version: 3.2.7 jose: specifier: ^6.1.0 version: 6.1.0 @@ -1274,7 +1274,7 @@ importers: version: 19.1.13 '@vitest/browser': specifier: ^3.2.4 - version: 3.2.4(playwright@1.55.0)(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) + version: 3.2.4(playwright@1.55.0)(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) playwright: specifier: ^1.55.0 version: 1.55.0 @@ -1283,13 +1283,13 @@ importers: version: 1.55.0 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) vendor: dependencies: '@adviser/cement': - specifier: ^0.4.35 - version: 0.4.35(typescript@5.9.2) + specifier: ^0.4.39 + version: 0.4.39(typescript@5.9.2) yocto-queue: specifier: ^1.2.1 version: 1.2.1 @@ -1318,20 +1318,20 @@ importers: packages: - '@adraffy/ens-normalize@1.11.0': - resolution: {integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==} + '@adraffy/ens-normalize@1.11.1': + resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} - '@adviser/cement@0.4.35': - resolution: {integrity: sha512-dIdgMlV34pcjv8pBy40tdA0MnM+XYOOQwFD7qG1ncmWzu7ftEHDw271oEc53TjfLb5FiLwPD+AaU6e+zBrGcrQ==} + '@adviser/cement@0.4.39': + resolution: {integrity: sha512-XfrboCHbnVjBnAc9mVfY9qD+4l7bygYLy5z5Khzs+uZeKrUtYOez33sYFB4FOXXrOf/oir3sgCg+DbD4fmceJg==} engines: {node: '>=20.19.0'} hasBin: true '@adviser/ts-xxhash@1.0.2': resolution: {integrity: sha512-WSryk539sIKc1tYAJ+05Fc7HnH+IPOjoGhtmZSXHHibPH1970EvGah0OG7wnPUn/a0gfG51cwQUtMwNosA+kCA==} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} @@ -1341,10 +1341,6 @@ packages: resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.3': - resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} @@ -1415,19 +1411,10 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.3': - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.4': resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} @@ -1523,10 +1510,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.3': - resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.4': resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} @@ -1535,18 +1518,10 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.3': - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} @@ -1576,18 +1551,6 @@ packages: resolution: {integrity: sha512-l2wXzvawzcuh17e15cGBZS3ZTx14409tOHPdqojSvWsvZtO3FzC1UJw69JylCdcBcCEQWsF22Y/4sIy6hRo+gw==} engines: {node: '>=18.17.0'} - '@clerk/shared@3.24.1': - resolution: {integrity: sha512-9ZLSeQOejWKH+MdftUH4iBjvx1ilIvZPZqJ2YQDO1RkY3lT3DVj64zIHHMZpjQN7dw2MOsalD0sHIPlQhshT5A==} - engines: {node: '>=18.17.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 - react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - '@clerk/shared@3.25.0': resolution: {integrity: sha512-2Vb6NQqBA+1g7kfGct/OlSFmzU54/s4BQp3qeHwDqW1FgaU4MuXbqfBClI6AatxOC8Ux8W16Rvf705ViwFSxlw==} engines: {node: '>=18.17.0'} @@ -1600,10 +1563,6 @@ packages: react-dom: optional: true - '@clerk/types@4.84.1': - resolution: {integrity: sha512-0lLz3u8u0Ot5ZUObU+8JJLOeiHHnruShJMeLAHNryp1d5zANPQquOyagamxbkoV1K2lAf8ld3liobs3EBzll6Q==} - engines: {node: '>=18.17.0'} - '@clerk/types@4.86.0': resolution: {integrity: sha512-YFaOYIAZWbpXehAmtgUB0YNf1v5b/hlwePvdqxlD5vdwrNsap28RpupWZat0hp1+PTtb9uAwSa5AFCOxkYLUJQ==} engines: {node: '>=18.17.0'} @@ -1612,92 +1571,53 @@ packages: resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} - '@cloudflare/unenv-preset@2.7.2': - resolution: {integrity: sha512-JY7Uf8GhWcbOMDZX8ke2czp9f9TijvJN4CpRBs3+WYN9U7jHpj3XaV+HHm78iHkAwTm/JeBHqyQNhq/PizynRA==} - peerDependencies: - unenv: 2.0.0-rc.20 - workerd: ^1.20250828.1 - peerDependenciesMeta: - workerd: - optional: true - - '@cloudflare/unenv-preset@2.7.3': - resolution: {integrity: sha512-tsQQagBKjvpd9baa6nWVIv399ejiqcrUBBW6SZx6Z22+ymm+Odv5+cFimyuCsD/fC1fQTwfRmwXBNpzvHSeGCw==} + '@cloudflare/unenv-preset@2.7.4': + resolution: {integrity: sha512-KIjbu/Dt50zseJIoOOK5y4eYpSojD9+xxkePYVK1Rg9k/p/st4YyMtz1Clju/zrenJHrOH+AAcjNArOPMwH4Bw==} peerDependencies: unenv: 2.0.0-rc.21 - workerd: ^1.20250828.1 + workerd: ^1.20250912.0 peerDependenciesMeta: workerd: optional: true - '@cloudflare/vite-plugin@1.13.1': - resolution: {integrity: sha512-XB1730wZ4fpxRVZ2na3jcgrX3yrE6sk5dS4xXGLenw7AxHYEFjkyjF2rrPJcJuRhsewE/N/5/w7j5kmYO8npfA==} + '@cloudflare/vite-plugin@1.13.3': + resolution: {integrity: sha512-y6N5lkUON0Q+7zy8bd00bV3PXDSj3wkYLp6HUBwttfuVDRmiiV1QTxPoSSK9GAjHzNT65Pd2beepeSDIzCnjtw==} peerDependencies: vite: ^6.1.0 || ^7.0.0 - wrangler: ^4.33.0 - - '@cloudflare/workerd-darwin-64@1.20250823.0': - resolution: {integrity: sha512-yRLJc1cQNqQYcDViOk7kpTXnR5XuBP7B/Ms5KBdlQ6eTr2Vsg9mfKqWKInjzY8/Cx+p+Sic2Tbld42gcYkiM2A==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] + wrangler: ^4.38.0 - '@cloudflare/workerd-darwin-64@1.20250906.0': - resolution: {integrity: sha512-E+X/YYH9BmX0ew2j/mAWFif2z05NMNuhCTlNYEGLkqMe99K15UewBqajL9pMcMUKxylnlrEoK3VNxl33DkbnPA==} + '@cloudflare/workerd-darwin-64@1.20250917.0': + resolution: {integrity: sha512-0kL/kFnKUSycoo7b3PgM0nRyZ+1MGQAKaXtE6a2+SAeUkZ2FLnuFWmASi0s4rlWGsf/rlTw4AwXROePir9dUcQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250823.0': - resolution: {integrity: sha512-KJnikUe6J29Ga1QMPKNCc8eHD56DdBlu5XE5LoBH/AYRrbS5UI1d5F844hUWoFKJb8KRaPIH9F849HZWfNa1vw==} + '@cloudflare/workerd-darwin-arm64@1.20250917.0': + resolution: {integrity: sha512-3/N1QmEJsC8Byxt1SGgVp5o0r+eKjuUEMbIL2yzLk/jrMdErPXy/DGf/tXZoACU68a/gMEbbT1itkYrm85iQHg==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250906.0': - resolution: {integrity: sha512-X5apsZ1SFW4FYTM19ISHf8005FJMPfrcf4U5rO0tdj+TeJgQgXuZ57IG0WeW7SpLVeBo8hM6WC8CovZh41AfnA==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - - '@cloudflare/workerd-linux-64@1.20250823.0': - resolution: {integrity: sha512-4QFXq4eDWEAK5QjGxRe0XUTBax1Fgarc08HETL6q0y/KPZp2nOTLfjLjklTn/qEiztafNFoJEIwhkiknHeOi/g==} + '@cloudflare/workerd-linux-64@1.20250917.0': + resolution: {integrity: sha512-E7sEow7CErbWY3olMmlbj6iss9r7Xb2uMyc+MKzYC9/J6yFlJd/dNHvjey9QIdxzbkC9qGe90a+KxQrjs+fspA==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-64@1.20250906.0': - resolution: {integrity: sha512-rlKzWgsLnlQ5Nt9W69YBJKcmTmZbOGu0edUsenXPmc6wzULUxoQpi7ZE9k3TfTonJx4WoQsQlzCUamRYFsX+0Q==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - - '@cloudflare/workerd-linux-arm64@1.20250823.0': - resolution: {integrity: sha512-sODSrSVe4W/maoBu76qb0sJGBhxhSM2Q2tg/+G7q1IPgRZSzArMKIPrW6nBnmBrrG1O0X6aoAdID6w5hfuEM4g==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - - '@cloudflare/workerd-linux-arm64@1.20250906.0': - resolution: {integrity: sha512-DdedhiQ+SeLzpg7BpcLrIPEZ33QKioJQ1wvL4X7nuLzEB9rWzS37NNNahQzc1+44rhG4fyiHbXBPOeox4B9XVA==} + '@cloudflare/workerd-linux-arm64@1.20250917.0': + resolution: {integrity: sha512-roOnRjxut2FUxo6HA9spbfs32naXAsnSQqsgku3iq6BYKv1QqGiFoY5bReK72N5uxmhxo7+RiTo8ZEkxA/vMIQ==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250823.0': - resolution: {integrity: sha512-WaNqUOXUnrcEI+i2NI4+okA9CrJMI9n2XTfVtDg/pLvcA/ZPTz23MEFMZU1splr4SslS1th1NBO38RMPnDB4rA==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - - '@cloudflare/workerd-windows-64@1.20250906.0': - resolution: {integrity: sha512-Q8Qjfs8jGVILnZL6vUpQ90q/8MTCYaGR3d1LGxZMBqte8Vr7xF3KFHPEy7tFs0j0mMjnqCYzlofmPNY+9ZaDRg==} + '@cloudflare/workerd-windows-64@1.20250917.0': + resolution: {integrity: sha512-gslh6Ou9+kshHjR1BJX47OsbPw3/cZCvGDompvaW/URCgr7aMzljbgmBb7p0uhwGy1qCXcIt31St6pd3IEcLng==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250906.0': - resolution: {integrity: sha512-CMRTupQpAdNZJrxRGaM2JzxmpWOnzgxcyTGmjAOcosRfi1ZsNUTAZ0kj1dzY+4bPDIdFwvvJL3t91DEpqitOJg==} + '@cloudflare/workers-types@4.20250919.0': + resolution: {integrity: sha512-2tj/zGfDWGK/5LFShSPJWZlONnVonp7tFPJ2x1Po/Jflec/mm/CBMUsqsJuk5+PUrYUtmcthgNyZN/tuzcODUQ==} '@coinbase/wallet-sdk@4.3.0': resolution: {integrity: sha512-T3+SNmiCw4HzDm4we9wCHCxlP0pqCiwKe4sOwPH3YAK2KSKjxPRydKu6UQJrdONFVLG7ujXvbd/6ZqmvJb8rkw==} @@ -1706,33 +1626,33 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@deno/darwin-arm64@2.5.0': - resolution: {integrity: sha512-1x8VmjfO7nPhVdKuRO0vVCSyxbzbhoiYpwTsM6c1dI1LLjLq/yLszHyStH0SE0gd+9XMVgrXLdrRPWrePW7WmQ==} + '@deno/darwin-arm64@2.5.1': + resolution: {integrity: sha512-vmAI6Bbmp3G4qw2ih/YWfU/uMJbVPNOTBv/I0FAExJMK0R+2WFXeRqWMqEnVqR6wWpOxLs8q2aEvFpetLS3YZg==} cpu: [arm64] os: [darwin] - '@deno/darwin-x64@2.5.0': - resolution: {integrity: sha512-yiWqH+L4G7DLX/LSr/x2kImn1DaDh/G14TLdLuLBzcdwZ9XuM/lNjgSe7xc35WlhyXAkf0J/K2yi7kNqHJoItw==} + '@deno/darwin-x64@2.5.1': + resolution: {integrity: sha512-C+a9H0BrIufPMVUctB9EdLyXB6fINpQuyHaWCIlEdPEnJGFy9URU7ycJhdvh4RTV//U5FDEg4DBOTPHvY2hs2g==} cpu: [x64] os: [darwin] - '@deno/linux-arm64-glibc@2.5.0': - resolution: {integrity: sha512-bkx6ITvYh9xS/GVbzzriotM3MA+3RIzDxohvmPosYfDzIckcROzTvvXkl73pLwvAnDfdbw7DF1qpUmU480vv4w==} + '@deno/linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-OuZeQfOh1S1HskMV6u74N8CSaY2JAoTh02Ev7HnZLt4RqKy1HtNt6oBSHS1Gx0ARHcJ16WAgh6YK9jM/aFZcVA==} cpu: [arm64] os: [linux] - '@deno/linux-x64-glibc@2.5.0': - resolution: {integrity: sha512-0u3VXBU6yGAsCRATxi9uC9VW91/9MlhoqrURbbxJy0gPihrYoEWoUqi0b07BI4AIfy2EPUYvf82IcgTxemb0jw==} + '@deno/linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-pGzU2UsDBqTY/g4HVENiMB4NSQgDTIxBcFhdgRXh0sMqB/WNcTbtfzmvik2SRNposk0pnkkWlKj9hGffWDfsxA==} cpu: [x64] os: [linux] - '@deno/win32-arm64@2.5.0': - resolution: {integrity: sha512-5mehFHYvMV/Kz9331FUnKwmocJBxvp/9dfwVK9Zn8MY1koLuvn8F6c0Tg0Vg+uZ9kwDSv9mhEvrkKLv2ZF2CPw==} + '@deno/win32-arm64@2.5.1': + resolution: {integrity: sha512-mHpxn2J6sU8woHQ2OKsJq5WeFtH6r//NhOZn2BOTvt7gd1V2PdnVX1t1C/iXzYtodfZHIfqevflU0mkJWW9EbA==} cpu: [arm64] os: [win32] - '@deno/win32-x64@2.5.0': - resolution: {integrity: sha512-5k0eYnFn55NV2/i6LwSi/BM1pUkDdmMlAyxKSb3PhiPd+EpS1cxAFEwn92MRmQq7mG2uoUixR1n4A3MrfU259w==} + '@deno/win32-x64@2.5.1': + resolution: {integrity: sha512-9QFaXjH28E0D5j5X0J09c1HTh8DRgtg99nojw6oIoyCApevOZsBYGwePzHSYkk+lsMgVSI+8XHLsLo8oJr15dg==} cpu: [x64] os: [win32] @@ -1800,14 +1720,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.4': - resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + '@esbuild/aix-ppc64@0.25.10': + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1824,14 +1744,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.4': - resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + '@esbuild/android-arm64@0.25.10': + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1848,14 +1768,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.4': - resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + '@esbuild/android-arm@0.25.10': + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1872,14 +1792,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.4': - resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + '@esbuild/android-x64@0.25.10': + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1896,14 +1816,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.4': - resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + '@esbuild/darwin-arm64@0.25.10': + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1920,14 +1840,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.4': - resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + '@esbuild/darwin-x64@0.25.10': + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1944,14 +1864,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.4': - resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + '@esbuild/freebsd-arm64@0.25.10': + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1968,14 +1888,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.4': - resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + '@esbuild/freebsd-x64@0.25.10': + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -1992,14 +1912,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.4': - resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + '@esbuild/linux-arm64@0.25.10': + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2016,14 +1936,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.4': - resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + '@esbuild/linux-arm@0.25.10': + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2040,14 +1960,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.4': - resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + '@esbuild/linux-ia32@0.25.10': + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2064,14 +1984,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.4': - resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + '@esbuild/linux-loong64@0.25.10': + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2088,14 +2008,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.4': - resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + '@esbuild/linux-mips64el@0.25.10': + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2112,14 +2032,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.4': - resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + '@esbuild/linux-ppc64@0.25.10': + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2136,14 +2056,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.4': - resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + '@esbuild/linux-riscv64@0.25.10': + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2160,14 +2080,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.4': - resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + '@esbuild/linux-s390x@0.25.10': + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2184,26 +2104,26 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.4': - resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + '@esbuild/linux-x64@0.25.10': + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.4': - resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + '@esbuild/netbsd-arm64@0.25.10': + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2220,26 +2140,26 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.4': - resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + '@esbuild/netbsd-x64@0.25.10': + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.4': - resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + '@esbuild/openbsd-arm64@0.25.10': + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2256,20 +2176,20 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.4': - resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + '@esbuild/openbsd-x64@0.25.10': + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + '@esbuild/openharmony-arm64@0.25.10': + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -2286,14 +2206,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.4': - resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + '@esbuild/sunos-x64@0.25.10': + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2310,14 +2230,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.4': - resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + '@esbuild/win32-arm64@0.25.10': + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2334,14 +2254,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.4': - resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + '@esbuild/win32-ia32@0.25.10': + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2358,14 +2278,14 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.4': - resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + '@esbuild/win32-x64@0.25.10': + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2435,8 +2355,8 @@ packages: '@formkit/auto-animate@0.8.4': resolution: {integrity: sha512-DHHC01EJ1p70Q0z/ZFRBIY8NDnmfKccQoyoM84Tgb6omLMat6jivCdf272Y8k3nf4Lzdin/Y4R9q8uFtU0GbnA==} - '@hono/node-server@1.19.2': - resolution: {integrity: sha512-lndWsd9De/btN998Aiv6gkeMVV2h9Cc0AR0qwFTmxx/YFh/PbrjgoxTpHaNaRn6F4GAkPiVJwI0W0gQF4Wn8EA==} + '@hono/node-server@1.19.3': + resolution: {integrity: sha512-Fjyxfux0rMPXMSob79OmddfpK5ArJa2xLkLCV+zamHkbeXQtSNKOi0keiBKyHZ/hCRKjigjmKGp4AJnDFq8PUw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -2589,6 +2509,10 @@ packages: resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2606,8 +2530,8 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -2774,6 +2698,10 @@ packages: '@petamoriken/float16@3.9.2': resolution: {integrity: sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -2789,8 +2717,8 @@ packages: '@remix-run/node-fetch-server@0.8.1': resolution: {integrity: sha512-J1dev372wtJqmqn9U/qbpbZxbJSQrogNN2+Qv1lKlpATpe/WQ9aCZfl/xSb9d2Rgh1IyLSvNxZAXPZxruO6Xig==} - '@rolldown/pluginutils@1.0.0-beta.34': - resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} + '@rolldown/pluginutils@1.0.0-beta.35': + resolution: {integrity: sha512-slYrCpoxJUqzFDDNlvrOYRazQUNRvWPjXA17dAOISY3rDMxX6k8K4cj2H+hEYMHF81HO3uNd5rHVigAWRM5dSg==} '@rollup/plugin-replace@6.0.2': resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} @@ -2801,8 +2729,8 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2810,208 +2738,108 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.49.0': - resolution: {integrity: sha512-rlKIeL854Ed0e09QGYFlmDNbka6I3EQFw7iZuugQjMb11KMpJCLPFL4ZPbMfaEhLADEL1yx0oujGkBQ7+qW3eA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm-eabi@4.50.1': - resolution: {integrity: sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==} + '@rollup/rollup-android-arm-eabi@4.51.0': + resolution: {integrity: sha512-VyfldO8T/C5vAXBGIobrAnUE+VJNVLw5z9h4NgSDq/AJZWt/fXqdW+0PJbk+M74xz7yMDRiHtlsuDV7ew6K20w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.49.0': - resolution: {integrity: sha512-cqPpZdKUSQYRtLLr6R4X3sD4jCBO1zUmeo3qrWBCqYIeH8Q3KRL4F3V7XJ2Rm8/RJOQBZuqzQGWPjjvFUcYa/w==} + '@rollup/rollup-android-arm64@4.51.0': + resolution: {integrity: sha512-Z3ujzDZgsEVSokgIhmOAReh9SGT2qloJJX2Xo1Q3nPU1EhCXrV0PbpR3r7DWRgozqnjrPZQkLe5cgBPIYp70Vg==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.50.1': - resolution: {integrity: sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==} + '@rollup/rollup-darwin-arm64@4.51.0': + resolution: {integrity: sha512-T3gskHgArUdR6TCN69li5VELVAZK+iQ4iwMoSMNYixoj+56EC9lTj35rcxhXzIJt40YfBkvDy3GS+t5zh7zM6g==} cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.49.0': - resolution: {integrity: sha512-99kMMSMQT7got6iYX3yyIiJfFndpojBmkHfTc1rIje8VbjhmqBXE+nb7ZZP3A5skLyujvT0eIUCUsxAe6NjWbw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.50.1': - resolution: {integrity: sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.49.0': - resolution: {integrity: sha512-y8cXoD3wdWUDpjOLMKLx6l+NFz3NlkWKcBCBfttUn+VGSfgsQ5o/yDUGtzE9HvsodkP0+16N0P4Ty1VuhtRUGg==} - cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.50.1': - resolution: {integrity: sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==} + '@rollup/rollup-darwin-x64@4.51.0': + resolution: {integrity: sha512-Hh7n/fh0g5UjH6ATDF56Qdf5bzdLZKIbhp5KftjMYG546Ocjeyg15dxphCpH1FFY2PJ2G6MiOVL4jMq5VLTyrQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.49.0': - resolution: {integrity: sha512-3mY5Pr7qv4GS4ZvWoSP8zha8YoiqrU+e0ViPvB549jvliBbdNLrg2ywPGkgLC3cmvN8ya3za+Q2xVyT6z+vZqA==} + '@rollup/rollup-freebsd-arm64@4.51.0': + resolution: {integrity: sha512-0EddADb6FBvfqYoxwVom3hAbAvpSVUbZqmR1wmjk0MSZ06hn/UxxGHKRqEQDMkts7XiZjejVB+TLF28cDTU+gA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.50.1': - resolution: {integrity: sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.49.0': - resolution: {integrity: sha512-C9KzzOAQU5gU4kG8DTk+tjdKjpWhVWd5uVkinCwwFub2m7cDYLOdtXoMrExfeBmeRy9kBQMkiyJ+HULyF1yj9w==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.50.1': - resolution: {integrity: sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==} + '@rollup/rollup-freebsd-x64@4.51.0': + resolution: {integrity: sha512-MpqaEDLo3JuVPF+wWV4mK7V8akL76WCz8ndfz1aVB7RhvXFO3k7yT7eu8OEuog4VTSyNu5ibvN9n6lgjq/qLEQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.49.0': - resolution: {integrity: sha512-OVSQgEZDVLnTbMq5NBs6xkmz3AADByCWI4RdKSFNlDsYXdFtlxS59J+w+LippJe8KcmeSSM3ba+GlsM9+WwC1w==} + '@rollup/rollup-linux-arm-gnueabihf@4.51.0': + resolution: {integrity: sha512-WEWAGFNFFpvSWAIT3MYvxTkYHv/cJl9yWKpjhheg7ONfB0hetZt/uwBnM3GZqSHrk5bXCDYTFXg3jQyk/j7eXQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.50.1': - resolution: {integrity: sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==} + '@rollup/rollup-linux-arm-musleabihf@4.51.0': + resolution: {integrity: sha512-9bxtxj8QoAp++LOq5PGDGkEEOpCDk9rOEHUcXadnijedDH8IXrBt6PnBa4Y6NblvGWdoxvXZYghZLaliTCmAng==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.49.0': - resolution: {integrity: sha512-ZnfSFA7fDUHNa4P3VwAcfaBLakCbYaxCk0jUnS3dTou9P95kwoOLAMlT3WmEJDBCSrOEFFV0Y1HXiwfLYJuLlA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.50.1': - resolution: {integrity: sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.49.0': - resolution: {integrity: sha512-Z81u+gfrobVK2iV7GqZCBfEB1y6+I61AH466lNK+xy1jfqFLiQ9Qv716WUM5fxFrYxwC7ziVdZRU9qvGHkYIJg==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.50.1': - resolution: {integrity: sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==} + '@rollup/rollup-linux-arm64-gnu@4.51.0': + resolution: {integrity: sha512-DdqA+fARqIsfqDYkKo2nrWMp0kvu/wPJ2G8lZ4DjYhn+8QhrjVuzmsh7tTkhULwjvHTN59nWVzAixmOi6rqjNA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.49.0': - resolution: {integrity: sha512-zoAwS0KCXSnTp9NH/h9aamBAIve0DXeYpll85shf9NJ0URjSTzzS+Z9evmolN+ICfD3v8skKUPyk2PO0uGdFqg==} + '@rollup/rollup-linux-arm64-musl@4.51.0': + resolution: {integrity: sha512-2XVRNzcUJE1UJua8P4a1GXS5jafFWE+pQ6zhUbZzptOu/70p1F6+0FTi6aGPd6jNtnJqGMjtBCXancC2dhYlWw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.50.1': - resolution: {integrity: sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.49.0': - resolution: {integrity: sha512-2QyUyQQ1ZtwZGiq0nvODL+vLJBtciItC3/5cYN8ncDQcv5avrt2MbKt1XU/vFAJlLta5KujqyHdYtdag4YEjYQ==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.50.1': - resolution: {integrity: sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==} + '@rollup/rollup-linux-loong64-gnu@4.51.0': + resolution: {integrity: sha512-R8QhY0kLIPCAVXWi2yftDSpn7Jtejey/WhMoBESSfwGec5SKdFVupjxFlKoQ7clVRuaDpiQf7wNx3EBZf4Ey6g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.49.0': - resolution: {integrity: sha512-k9aEmOWt+mrMuD3skjVJSSxHckJp+SiFzFG+v8JLXbc/xi9hv2icSkR3U7uQzqy+/QbbYY7iNB9eDTwrELo14g==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.50.1': - resolution: {integrity: sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==} + '@rollup/rollup-linux-ppc64-gnu@4.51.0': + resolution: {integrity: sha512-I498RPfxx9cMv1KTHQ9tg2Ku1utuQm+T5B+Xro+WNu3FzAFSKp4awKfgMoZwjoPgNbaFGINaOM25cQW6WuBhiQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.49.0': - resolution: {integrity: sha512-rDKRFFIWJ/zJn6uk2IdYLc09Z7zkE5IFIOWqpuU0o6ZpHcdniAyWkwSUWE/Z25N/wNDmFHHMzin84qW7Wzkjsw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.50.1': - resolution: {integrity: sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==} + '@rollup/rollup-linux-riscv64-gnu@4.51.0': + resolution: {integrity: sha512-o8COudsb8lvtdm9ixg9aKjfX5aeoc2x9KGE7WjtrmQFquoCRZ9jtzGlonujE4WhvXFepTraWzT4RcwyDDeHXjA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.49.0': - resolution: {integrity: sha512-FkkhIY/hYFVnOzz1WeV3S9Bd1h0hda/gRqvZCMpHWDHdiIHn6pqsY3b5eSbvGccWHMQ1uUzgZTKS4oGpykf8Tw==} + '@rollup/rollup-linux-riscv64-musl@4.51.0': + resolution: {integrity: sha512-0shJPgSXMdYzOQzpM5BJN2euXY1f8uV8mS6AnrbMcH2KrkNsbpMxWB1wp8UEdiJ1NtyBkCk3U/HfX5mEONBq6w==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.50.1': - resolution: {integrity: sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.49.0': - resolution: {integrity: sha512-gRf5c+A7QiOG3UwLyOOtyJMD31JJhMjBvpfhAitPAoqZFcOeK3Kc1Veg1z/trmt+2P6F/biT02fU19GGTS529A==} + '@rollup/rollup-linux-s390x-gnu@4.51.0': + resolution: {integrity: sha512-L7pV+ny7865jamSCQwyozBYjFRUKaTsPqDz7ClOtJCDu4paf2uAa0mrcHwSt4XxZP2ogFZS9uuitH3NXdeBEJA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.50.1': - resolution: {integrity: sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.49.0': - resolution: {integrity: sha512-BR7+blScdLW1h/2hB/2oXM+dhTmpW3rQt1DeSiCP9mc2NMMkqVgjIN3DDsNpKmezffGC9R8XKVOLmBkRUcK/sA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.50.1': - resolution: {integrity: sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.49.0': - resolution: {integrity: sha512-hDMOAe+6nX3V5ei1I7Au3wcr9h3ktKzDvF2ne5ovX8RZiAHEtX1A5SNNk4zt1Qt77CmnbqT+upb/umzoPMWiPg==} + '@rollup/rollup-linux-x64-gnu@4.51.0': + resolution: {integrity: sha512-4YHhP+Rv3T3+H3TPbUvWOw5tuSwhrVhkHHZhk4hC9VXeAOKR26/IsUAT4FsB4mT+kfIdxxb1BezQDEg/voPO8A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.50.1': - resolution: {integrity: sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==} + '@rollup/rollup-linux-x64-musl@4.51.0': + resolution: {integrity: sha512-P7U7U03+E5w7WgJtvSseNLOX1UhknVPmEaqgUENFWfNxNBa1OhExT6qYGmyF8gepcxWSaSfJsAV5UwhWrYefdQ==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.50.1': - resolution: {integrity: sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==} + '@rollup/rollup-openharmony-arm64@4.51.0': + resolution: {integrity: sha512-FuD8g3u9W6RPwdO1R45hZFORwa1g9YXEMesAKP/sOi7mDqxjbni8S3zAXJiDcRfGfGBqpRYVuH54Gu3FTuSoEw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.49.0': - resolution: {integrity: sha512-wkNRzfiIGaElC9kXUT+HLx17z7D0jl+9tGYRKwd8r7cUqTL7GYAvgUY++U2hK6Ar7z5Z6IRRoWC8kQxpmM7TDA==} + '@rollup/rollup-win32-arm64-msvc@4.51.0': + resolution: {integrity: sha512-zST+FdMCX3QAYfmZX3dp/Fy8qLUetfE17QN5ZmmFGPrhl86qvRr+E9u2bk7fzkIXsfQR30Z7ZRS7WMryPPn4rQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.50.1': - resolution: {integrity: sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.49.0': - resolution: {integrity: sha512-gq5aW/SyNpjp71AAzroH37DtINDcX1Qw2iv9Chyz49ZgdOP3NV8QCyKZUrGsYX9Yyggj5soFiRCgsL3HwD8TdA==} + '@rollup/rollup-win32-ia32-msvc@4.51.0': + resolution: {integrity: sha512-U+qhoCVAZmTHCmUKxdQxw1jwAFNFXmOpMME7Npt5GTb1W/7itfgAgNluVOvyeuSeqW+dEQLFuNZF3YZPO8XkMg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.50.1': - resolution: {integrity: sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.49.0': - resolution: {integrity: sha512-gEtqFbzmZLFk2xKh7g0Rlo8xzho8KrEFEkzvHbfUGkrgXOpZ4XagQ6n+wIZFNh1nTb8UD16J4nFSFKXYgnbdBg==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.50.1': - resolution: {integrity: sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==} + '@rollup/rollup-win32-x64-msvc@4.51.0': + resolution: {integrity: sha512-z6UpFzMhXSD8NNUfCi2HO+pbpSzSWIIPgb1TZsEZjmZYtk6RUIC63JYjlFBwbBZS3jt3f1q6IGfkj3g+GnBt2Q==} cpu: [x64] os: [win32] @@ -3052,11 +2880,11 @@ packages: peerDependencies: tailwindcss: '>=3.2.0' - '@tanstack/query-core@5.87.4': - resolution: {integrity: sha512-uNsg6zMxraEPDVO2Bn+F3/ctHi+Zsk+MMpcN8h6P7ozqD088F6mFY5TfGM7zuyIrL7HKpDyu6QHfLWiDxh3cuw==} + '@tanstack/query-core@5.89.0': + resolution: {integrity: sha512-joFV1MuPhSLsKfTzwjmPDrp8ENfZ9N23ymFu07nLfn3JCkSHy0CFgsyhHTJOmWaumC/WiNIKM0EJyduCF/Ih/Q==} - '@tanstack/react-query@5.87.4': - resolution: {integrity: sha512-T5GT/1ZaNsUXf5I3RhcYuT17I4CPlbZgyLxc/ZGv7ciS6esytlbjb3DgUFO6c8JWYMDpdjSWInyGZUErgzqhcA==} + '@tanstack/react-query@5.89.0': + resolution: {integrity: sha512-SXbtWSTSRXyBOe80mszPxpEbaN4XPRUp/i0EfQK1uyj3KCk/c8FuPJNIRwzOVe/OU3rzxrYtiNabsAmk1l714A==} peerDependencies: react: ^18 || ^19 @@ -3137,11 +2965,8 @@ packages: '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/node@24.3.0': - resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} - - '@types/node@24.3.1': - resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==} + '@types/node@24.5.2': + resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3160,69 +2985,72 @@ packages: '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + '@types/trusted-types@1.0.6': + resolution: {integrity: sha512-230RC8sFeHoT6sSUlRO6a8cAnclO06eeiq1QDfiv2FGCLWFvvERWgwIQD4FWqD9A69BN7Lzee4OXwoMVnnsWDw==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.43.0': - resolution: {integrity: sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ==} + '@typescript-eslint/eslint-plugin@8.44.0': + resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.43.0 + '@typescript-eslint/parser': ^8.44.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.43.0': - resolution: {integrity: sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==} + '@typescript-eslint/parser@8.44.0': + resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.43.0': - resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==} + '@typescript-eslint/project-service@8.44.0': + resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.43.0': - resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==} + '@typescript-eslint/scope-manager@8.44.0': + resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.43.0': - resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==} + '@typescript-eslint/tsconfig-utils@8.44.0': + resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.43.0': - resolution: {integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==} + '@typescript-eslint/type-utils@8.44.0': + resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.43.0': - resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==} + '@typescript-eslint/types@8.44.0': + resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.43.0': - resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==} + '@typescript-eslint/typescript-estree@8.44.0': + resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.43.0': - resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==} + '@typescript-eslint/utils@8.44.0': + resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.43.0': - resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==} + '@typescript-eslint/visitor-keys@8.44.0': + resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250915.1': @@ -3264,8 +3092,8 @@ packages: resolution: {integrity: sha512-uc64rFuzwQZu+tNhGAaDMGpd/Jtp31K/o4kRWNxMwztgHjvUcV9Bbr4C6mTiUsiZ6pERiLEorwFQDSOajPBGGg==} hasBin: true - '@vitejs/plugin-react@5.0.2': - resolution: {integrity: sha512-tmyFgixPZCx2+e6VO9TNITWcCQl8+Nl/E8YbAyPVv85QCc7/A3JrdfG2A8gIzvVhWuzMOVrFW1aReaNxrI6tbw==} + '@vitejs/plugin-react@5.0.3': + resolution: {integrity: sha512-PFVHhosKkofGH0Yzrw1BipSedTH68BFF8ZWy1kfUpCtJcouXXY0+racG8sExw7hw0HoX36813ga5o3LTWZ4FUg==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -3335,6 +3163,17 @@ packages: zod: optional: true + abitype@1.1.1: + resolution: {integrity: sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3368,8 +3207,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.0: - resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@4.3.0: @@ -3380,9 +3219,23 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + archy@1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -3465,10 +3318,18 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.8.6: + resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} + hasBin: true + big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -3488,13 +3349,8 @@ packages: browser-tabs-lock@1.3.0: resolution: {integrity: sha512-g6nHaobTiT0eMZ7jh16YpD2kcjAp+PInbiVq3M1x6KKaEIVhT4v9oURNIpZLOZ3LQbQ3XYfNhMAb/9hzNLIWrw==} - browserslist@4.25.3: - resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.25.4: - resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3524,6 +3380,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -3532,19 +3392,12 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - caniuse-lite@1.0.30001737: - resolution: {integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==} - - caniuse-lite@1.0.30001741: - resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} carstream@2.3.0: resolution: {integrity: sha512-2YwFg5Kxs2tqVCJv7sthWbYoUpALCYBBfTdpQcpicV7ipi6bBb1h9M4MNb1vm+724f39lUNp5VWhW43IFxfPlA==} - cborg@4.2.14: - resolution: {integrity: sha512-VwDKj4eWvoOBtMReabfiGyMh/bNFk8aXZRlMis1tTuMjN9R6VQdyrOwyQb0/aqYHk7r88a6xTWvnsJEC2Cw66Q==} - hasBin: true - cborg@4.2.15: resolution: {integrity: sha512-T+YVPemWyXcBVQdp0k61lQp2hJniRNmul0lAwTj2DTS/6dI4eCq/MRMucGqqvFqMBfmnD8tJ9aFtPu5dEGAbgw==} hasBin: true @@ -3557,8 +3410,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} charwise@3.0.1: @@ -3568,6 +3421,10 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + cli-color@2.0.4: resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} engines: {node: '>=0.10'} @@ -3601,6 +3458,10 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3634,6 +3495,11 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -3665,8 +3531,8 @@ packages: supports-color: optional: true - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -3704,8 +3570,8 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - deno@2.5.0: - resolution: {integrity: sha512-GMqK9VJzwFhluLPfPP1iM/qbDnug9t5CsMTv4jpowQoWCJbdghi1aL4+2oiXNm0WPI5e/q5QAcoc1PUfhnL6LA==} + deno@2.5.1: + resolution: {integrity: sha512-fQK5AuQLYtNvq+vTeGlwphcWf1ro9DtL//T7tVnmnazWdcV0AHnveUQgf0BQY/vtLwB6KjuJOtvV/3of/B1d9g==} hasBin: true dequal@2.0.3: @@ -3731,6 +3597,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -3738,8 +3607,8 @@ packages: dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dompurify@3.2.6: - resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} + dompurify@3.2.7: + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} drizzle-kit@0.30.6: resolution: {integrity: sha512-U4wWit0fyZuGuP7iNmRleQyK2V8wCuv57vf5l3MnG4z4fzNTjY/U13M8owyQ5RavqvqxBifWORaR3wIUzlN64g==} @@ -3841,21 +3710,24 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.210: - resolution: {integrity: sha512-20kSVv1tyNBN2VFsjCIJZfyvxqo7ylHPrJLME040f/030lzNMA7uQNpxtqJjWSNpccD8/2sqe53EAjrFPvQmjw==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.214: - resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==} + electron-to-chromium@1.5.222: + resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} @@ -3924,13 +3796,13 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.4: - resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + esbuild@0.25.10: + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} engines: {node: '>=18'} hasBin: true - esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -4151,14 +4023,18 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - flow-parser@0.280.0: - resolution: {integrity: sha512-BblDQXb41t9gwFHJNR8EhLdS/9fqK/mCBZLRHiUccA2V1VoYIKuutglO/TAuJfUU3tolQlvMaW1S/KbRDR0rNQ==} + flow-parser@0.284.0: + resolution: {integrity: sha512-xI6Jbx20hJHrgBubUpYRAn85hJafA2w2OyxFZaK/xuf5aIIrxWO4Ynq5seVrcEJRZl/lshraeJM1S6nVg2ptiw==} engines: {node: '>=0.4.0'} for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -4166,8 +4042,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fs-extra@11.3.1: - resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} + fs-extra@11.3.2: + resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} fsevents@2.3.2: @@ -4233,6 +4109,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4297,8 +4177,8 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hono@4.9.7: - resolution: {integrity: sha512-t4Te6ERzIaC48W3x4hJmBwgNlLhmiEdEE5ViYb02ffw4ignHNHa5IBtPjmbKstmtKa8X6C35iWwK4HaqvrzG9w==} + hono@4.9.8: + resolution: {integrity: sha512-JW8Bb4RFWD9iOKxg5PbUarBYGM99IcxFl2FPBo2gSJO11jjUDqlP1Bmfyqt8Z/dGhIQ63PMA9LdcLefXyIasyg==} engines: {node: '>=16.9.0'} hosted-git-info@2.8.9: @@ -4376,6 +4256,10 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -4429,8 +4313,8 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + is-network-error@1.3.0: + resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} engines: {node: '>=16'} is-number-object@1.1.1: @@ -4519,6 +4403,9 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4605,8 +4492,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - kysely@0.28.5: - resolution: {integrity: sha512-rlB0I/c6FBDWPcQoDtkxi9zIvpmnV5xoIalfCMSMCa7nuA6VGA3F54TW9mEgX4DVf10sXAWCF5fDbamI/5ZpKA==} + kysely@0.28.7: + resolution: {integrity: sha512-u/cAuTL4DRIiO2/g4vNGRgklEKNIj5Q3CG7RoUB5DV5SfEC2hMvPxKi0GWPmnzwL2ryIeud2VTcEEmqzTzEPNw==} engines: {node: '>=20.0.0'} levn@0.4.1: @@ -4623,6 +4510,10 @@ packages: cpu: [x64, arm64, wasm32, arm] os: [darwin, linux, win32] + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -4659,6 +4550,9 @@ packages: loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4673,8 +4567,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -4717,13 +4611,8 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - miniflare@4.20250902.0: - resolution: {integrity: sha512-QHjI17yVDxDXsjDvX6GNRySx2uYsQJyiZ2MRBAsA0CFpAI2BcHd4oz0FIjbqgpZK+4Fhm7OKht/AfBNCd234Zg==} - engines: {node: '>=18.0.0'} - hasBin: true - - miniflare@4.20250906.2: - resolution: {integrity: sha512-SXGv8Rdd91b6UXZ5eW3rde/gSJM6WVLItMNFV7u9axUVhACvpT4CB5p80OBfi2OOsGfOuFQ6M6s8tMxJbzioVw==} + miniflare@4.20250917.0: + resolution: {integrity: sha512-A7kYEc/Y6ohiiTji4W/qGJj3aJNc/9IMj/6wLy2phD/iMjcoY8t35654gR5mHbMx0AgUolDdr3HOsHB0cYBf+Q==} engines: {node: '>=18.0.0'} hasBin: true @@ -4745,8 +4634,12 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - monaco-editor@0.52.2: - resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + monaco-editor@0.53.0: + resolution: {integrity: sha512-0WNThgC6CMWNXXBxTbaYYcunj08iB5rnx4/G56UOPeL9UVIUGGHA1GR0EWIh9Ebabj7NpCRawQ5b0hfN1jQmYQ==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -4762,6 +4655,9 @@ packages: multiformats@13.4.1: resolution: {integrity: sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4785,11 +4681,8 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - node-releases@2.0.20: - resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} node-sql-parser@3.9.4: resolution: {integrity: sha512-U8xa/QBpNz/dc4BERBkMg//XTrBDcj0uIg5YDYPV4ChYgHPEw4JhoT5YWTxQuKBg/3C1kfkTO4MuEYw7fCYHJw==} @@ -4802,6 +4695,10 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} @@ -4810,6 +4707,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -4909,6 +4810,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4936,6 +4840,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -4961,6 +4869,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -4996,6 +4908,40 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -5102,6 +5048,9 @@ packages: resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -5114,6 +5063,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + recast@0.23.11: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} @@ -5170,13 +5123,8 @@ packages: rollup: optional: true - rollup@4.49.0: - resolution: {integrity: sha512-3IVq0cGJ6H7fKXXEdVt+RcYvRCt8beYY9K1760wGQwSAHZcS9eot1zDG5axUbcp/kWRi5zKIIDX8MoKv/TzvZA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.50.1: - resolution: {integrity: sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==} + rollup@4.51.0: + resolution: {integrity: sha512-7cR0XWrdp/UAj2HMY/Y4QQEUjidn3l2AY1wSeZoFjMbD8aOMPoV9wgTFYbrJpPzzvejDEini1h3CiUP8wLzxQA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -5279,8 +5227,8 @@ packages: simple-swizzle@0.2.4: resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} - sirv@3.0.1: - resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} slash@3.0.0: @@ -5342,6 +5290,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} @@ -5368,8 +5320,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -5390,6 +5342,11 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@10.2.2: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} @@ -5414,8 +5371,17 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwindcss@4.1.13: - resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==} + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} timers-ext@0.1.8: resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} @@ -5430,10 +5396,6 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -5446,8 +5408,8 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@4.0.3: - resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} tmp@0.2.5: @@ -5483,6 +5445,9 @@ packages: typescript: optional: true + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -5538,8 +5503,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.43.0: - resolution: {integrity: sha512-FyRGJKUGvcFekRRcBKFBlAhnp4Ng8rhe8tuvvkR9OiU0gfd4vyvTRQHEckO6VDlH57jbeUQem2IpqPq9kLJH+w==} + typescript-eslint@8.44.0: + resolution: {integrity: sha512-ib7mCkYuIzYonCq9XWF5XNw+fkj2zg629PSa9KNIQ47RXFF763S5BIX4wqz1+FLPogTZoiw8KmCiRPRa8bL3qw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5563,23 +5528,13 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@7.12.0: + resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} undici@7.14.0: resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==} engines: {node: '>=20.18.1'} - undici@7.15.0: - resolution: {integrity: sha512-7oZJCPvvMvTd0OlqWsIxTuItTpJBpU1tcbVl24FMn3xt3+VSunwUasmfPJRE57oNO1KsZ4PgA1xTdAX4hq8NyQ==} - engines: {node: '>=20.18.1'} - - unenv@2.0.0-rc.19: - resolution: {integrity: sha512-t/OMHBNAkknVCI7bVB9OWjUUAwhVv9vsPIAGnNUxnu3FxPQN11rjh0sksLMzc3g7IlTgvHmOTl4JM7JHpcv5wA==} - - unenv@2.0.0-rc.21: - resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} - unenv@2.0.0-rc.21: resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} @@ -5636,48 +5591,8 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite@7.1.3: - resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vite@7.1.5: - resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} + vite@7.1.6: + resolution: {integrity: sha512-SRYIB8t/isTwNn8vMB3MR6E+EQZM/WG1aKmmIUCfDXfVvKfc20ZpamngWHKzAmmu9ppsgxsg4b2I7c90JZudIQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5783,22 +5698,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20250902.0: - resolution: {integrity: sha512-rM+8ARYoy9gWJNPW89ERWyjbp7+m1hu6PFbehiP8FW9Hm5kNVo71lXFrkCP2HSsTP1OLfIU/IwanYOijJ0mQDw==} + workerd@1.20250917.0: + resolution: {integrity: sha512-0D+wWaccyYQb2Zx2DZDC77YDn9kOpkpGMCgyKgIHilghut5hBQ/adUIEseS4iuIZxBPeFSn6zFtICP0SxZ3z0g==} engines: {node: '>=16'} hasBin: true - workerd@1.20250906.0: - resolution: {integrity: sha512-ryVyEaqXPPsr/AxccRmYZZmDAkfQVjhfRqrNTlEeN8aftBk6Ca1u7/VqmfOayjCXrA+O547TauebU+J3IpvFXw==} - engines: {node: '>=16'} - hasBin: true - - wrangler@4.37.0: - resolution: {integrity: sha512-W8IbQohQbUHFn4Hz2kh8gi0SdyFV/jyi9Uus+WrTz0F0Dc9W5qKPCjLbxibeE53+YPHyoI25l65O7nSlwX+Z6Q==} + wrangler@4.38.0: + resolution: {integrity: sha512-ITL4VZ4KWs8LMDEttDTrAKLktwtv1NxHBd5QIqHOczvcjnAQr+GQoE6XYQws+w8jlOjDV7KyvbFqAdyRh5om3g==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250906.0 + '@cloudflare/workers-types': ^4.20250917.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -5807,6 +5717,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + write-file-atomic@5.0.1: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5883,8 +5797,8 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@4.1.8: - resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==} + zod@4.1.9: + resolution: {integrity: sha512-HI32jTq0AUAC125z30E8bQNz0RQ+9Uc+4J7V97gLYjZVKRjeydPgGt6dvQzFrav7MYOUGFqqOGiHpA/fdbd0cQ==} zustand@5.0.3: resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==} @@ -5911,9 +5825,9 @@ packages: snapshots: - '@adraffy/ens-normalize@1.11.0': {} + '@adraffy/ens-normalize@1.11.1': {} - '@adviser/cement@0.4.35(typescript@5.9.2)': + '@adviser/cement@0.4.39(typescript@5.9.2)': dependencies: ts-essentials: 10.1.1(typescript@5.9.2) yaml: 2.8.1 @@ -5922,10 +5836,7 @@ snapshots: '@adviser/ts-xxhash@1.0.2': {} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@alloc/quick-lru@5.2.0': {} '@babel/code-frame@7.27.1': dependencies: @@ -5935,26 +5846,6 @@ snapshots: '@babel/compat-data@7.28.4': {} - '@babel/core@7.28.3': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) - '@babel/helpers': 7.28.3 - '@babel/parser': 7.28.3 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -5968,7 +5859,7 @@ snapshots: '@babel/types': 7.28.4 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -5980,7 +5871,7 @@ snapshots: '@babel/parser': 7.28.4 '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': @@ -5991,17 +5882,17 @@ snapshots: dependencies: '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.4 + browserslist: 4.26.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)': + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.28.4 semver: 6.3.1 @@ -6024,15 +5915,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -6048,9 +5930,9 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.3)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 '@babel/traverse': 7.28.4 @@ -6070,78 +5952,69 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.28.3': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 '@babel/types': 7.28.4 - '@babel/parser@7.28.3': - dependencies: - '@babel/types': 7.28.2 - '@babel/parser@7.28.4': dependencies: '@babel/types': 7.28.4 - '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) + '@babel/core': 7.28.4 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) + '@babel/core': 7.28.4 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) + '@babel/core': 7.28.4 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -6156,46 +6029,44 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.3)': + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - '@babel/preset-flow@7.27.1(@babel/core@7.28.3)': + '@babel/preset-flow@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.4) - '@babel/preset-typescript@7.27.1(@babel/core@7.28.3)': + '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - '@babel/register@7.28.3(@babel/core@7.28.3)': + '@babel/register@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 pirates: 4.0.7 source-map-support: 0.5.21 - '@babel/runtime@7.28.3': {} - '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': @@ -6204,18 +6075,6 @@ snapshots: '@babel/parser': 7.28.4 '@babel/types': 7.28.4 - '@babel/traverse@7.28.3': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -6224,29 +6083,24 @@ snapshots: '@babel/parser': 7.28.4 '@babel/template': 7.27.2 '@babel/types': 7.28.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.28.2': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@base-org/account@2.0.1(@types/react@19.1.13)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.0.14)': + '@base-org/account@2.0.1(@types/react@19.1.13)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.1.9)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 eventemitter3: 5.0.1 idb-keyval: 6.2.1 - ox: 0.6.9(typescript@5.9.2)(zod@4.1.8) + ox: 0.6.9(typescript@5.9.2)(zod@4.1.9) preact: 10.24.2 - viem: 2.37.4(typescript@5.9.2)(zod@4.0.14) + viem: 2.37.6(typescript@5.9.2)(zod@4.1.9) zustand: 5.0.3(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1)) transitivePeerDependencies: - '@types/react' @@ -6269,12 +6123,12 @@ snapshots: - react - react-dom - '@clerk/clerk-js@5.91.2(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.0.14)': + '@clerk/clerk-js@5.93.0(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.1.9)': dependencies: - '@base-org/account': 2.0.1(@types/react@19.1.13)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.0.14) - '@clerk/localizations': 3.24.2 - '@clerk/shared': 3.24.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@clerk/types': 4.84.1 + '@base-org/account': 2.0.1(@types/react@19.1.13)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(zod@4.1.9) + '@clerk/localizations': 3.25.1 + '@clerk/shared': 3.25.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@clerk/types': 4.86.0 '@coinbase/wallet-sdk': 4.3.0 '@emotion/cache': 11.11.0 '@emotion/react': 11.11.1(@types/react@19.1.13)(react@19.1.1) @@ -6319,30 +6173,6 @@ snapshots: dependencies: '@clerk/types': 4.86.0 - '@clerk/shared@3.24.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@clerk/types': 4.86.0 - dequal: 2.0.3 - glob-to-regexp: 0.4.1 - js-cookie: 3.0.5 - std-env: 3.9.0 - swr: 2.3.4(react@19.1.1) - optionalDependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - - '@clerk/shared@3.25.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@clerk/types': 4.86.0 - dequal: 2.0.3 - glob-to-regexp: 0.4.1 - js-cookie: 3.0.5 - std-env: 3.9.0 - swr: 2.3.4(react@19.1.1) - optionalDependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - '@clerk/shared@3.25.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@clerk/types': 4.86.0 @@ -6355,10 +6185,6 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@clerk/types@4.84.1': - dependencies: - csstype: 3.1.3 - '@clerk/types@4.86.0': dependencies: csstype: 3.1.3 @@ -6367,66 +6193,45 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250906.0)': - dependencies: - unenv: 2.0.0-rc.20 - optionalDependencies: - workerd: 1.20250906.0 - - '@cloudflare/unenv-preset@2.7.3(unenv@2.0.0-rc.21)(workerd@1.20250906.0)': + '@cloudflare/unenv-preset@2.7.4(unenv@2.0.0-rc.21)(workerd@1.20250917.0)': dependencies: unenv: 2.0.0-rc.21 optionalDependencies: - workerd: 1.20250906.0 + workerd: 1.20250917.0 - '@cloudflare/vite-plugin@1.12.0(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(workerd@1.20250906.0)(wrangler@4.37.0(@cloudflare/workers-types@4.20250906.0))': + '@cloudflare/vite-plugin@1.13.3(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(workerd@1.20250917.0)(wrangler@4.38.0(@cloudflare/workers-types@4.20250919.0))': dependencies: - '@cloudflare/unenv-preset': 2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250906.0) - '@remix-run/node-fetch-server': 0.8.0 + '@cloudflare/unenv-preset': 2.7.4(unenv@2.0.0-rc.21)(workerd@1.20250917.0) + '@remix-run/node-fetch-server': 0.8.1 get-port: 7.1.0 - miniflare: 4.20250906.2 + miniflare: 4.20250917.0 picocolors: 1.1.1 tinyglobby: 0.2.15 unenv: 2.0.0-rc.21 - vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) - wrangler: 4.37.0(@cloudflare/workers-types@4.20250906.0) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + wrangler: 4.38.0(@cloudflare/workers-types@4.20250919.0) ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate - workerd - '@cloudflare/workerd-darwin-64@1.20250823.0': - optional: true - - '@cloudflare/workerd-darwin-64@1.20250906.0': + '@cloudflare/workerd-darwin-64@1.20250917.0': optional: true - '@cloudflare/workerd-darwin-64@1.20250906.0': + '@cloudflare/workerd-darwin-arm64@1.20250917.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250906.0': + '@cloudflare/workerd-linux-64@1.20250917.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250906.0': + '@cloudflare/workerd-linux-arm64@1.20250917.0': optional: true - '@cloudflare/workerd-linux-64@1.20250906.0': + '@cloudflare/workerd-windows-64@1.20250917.0': optional: true - '@cloudflare/workerd-linux-64@1.20250906.0': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20250906.0': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20250906.0': - optional: true - - '@cloudflare/workerd-windows-64@1.20250906.0': - optional: true - - '@cloudflare/workers-types@4.20250906.0': {} + '@cloudflare/workers-types@4.20250919.0': {} '@coinbase/wallet-sdk@4.3.0': dependencies: @@ -6439,22 +6244,22 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@deno/darwin-arm64@2.5.0': + '@deno/darwin-arm64@2.5.1': optional: true - '@deno/darwin-x64@2.5.0': + '@deno/darwin-x64@2.5.1': optional: true - '@deno/linux-arm64-glibc@2.5.0': + '@deno/linux-arm64-glibc@2.5.1': optional: true - '@deno/linux-x64-glibc@2.5.0': + '@deno/linux-x64-glibc@2.5.1': optional: true - '@deno/win32-arm64@2.5.0': + '@deno/win32-arm64@2.5.1': optional: true - '@deno/win32-x64@2.5.0': + '@deno/win32-x64@2.5.1': optional: true '@drizzle-team/brocli@0.10.2': {} @@ -6543,10 +6348,10 @@ snapshots: '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/aix-ppc64@0.25.4': + '@esbuild/aix-ppc64@0.25.10': optional: true - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.4': optional: true '@esbuild/android-arm64@0.18.20': @@ -6555,10 +6360,10 @@ snapshots: '@esbuild/android-arm64@0.19.12': optional: true - '@esbuild/android-arm64@0.25.4': + '@esbuild/android-arm64@0.25.10': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.4': optional: true '@esbuild/android-arm@0.18.20': @@ -6567,10 +6372,10 @@ snapshots: '@esbuild/android-arm@0.19.12': optional: true - '@esbuild/android-arm@0.25.4': + '@esbuild/android-arm@0.25.10': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.4': optional: true '@esbuild/android-x64@0.18.20': @@ -6579,10 +6384,10 @@ snapshots: '@esbuild/android-x64@0.19.12': optional: true - '@esbuild/android-x64@0.25.4': + '@esbuild/android-x64@0.25.10': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.4': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -6591,10 +6396,10 @@ snapshots: '@esbuild/darwin-arm64@0.19.12': optional: true - '@esbuild/darwin-arm64@0.25.4': + '@esbuild/darwin-arm64@0.25.10': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.4': optional: true '@esbuild/darwin-x64@0.18.20': @@ -6603,10 +6408,10 @@ snapshots: '@esbuild/darwin-x64@0.19.12': optional: true - '@esbuild/darwin-x64@0.25.4': + '@esbuild/darwin-x64@0.25.10': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.4': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -6615,10 +6420,10 @@ snapshots: '@esbuild/freebsd-arm64@0.19.12': optional: true - '@esbuild/freebsd-arm64@0.25.4': + '@esbuild/freebsd-arm64@0.25.10': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.4': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -6627,10 +6432,10 @@ snapshots: '@esbuild/freebsd-x64@0.19.12': optional: true - '@esbuild/freebsd-x64@0.25.4': + '@esbuild/freebsd-x64@0.25.10': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.4': optional: true '@esbuild/linux-arm64@0.18.20': @@ -6639,10 +6444,10 @@ snapshots: '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/linux-arm64@0.25.4': + '@esbuild/linux-arm64@0.25.10': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.4': optional: true '@esbuild/linux-arm@0.18.20': @@ -6651,10 +6456,10 @@ snapshots: '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/linux-arm@0.25.4': + '@esbuild/linux-arm@0.25.10': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.4': optional: true '@esbuild/linux-ia32@0.18.20': @@ -6663,10 +6468,10 @@ snapshots: '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/linux-ia32@0.25.4': + '@esbuild/linux-ia32@0.25.10': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.4': optional: true '@esbuild/linux-loong64@0.18.20': @@ -6675,10 +6480,10 @@ snapshots: '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/linux-loong64@0.25.4': + '@esbuild/linux-loong64@0.25.10': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.4': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -6687,10 +6492,10 @@ snapshots: '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-mips64el@0.25.4': + '@esbuild/linux-mips64el@0.25.10': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.4': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -6699,10 +6504,10 @@ snapshots: '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-ppc64@0.25.4': + '@esbuild/linux-ppc64@0.25.10': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.4': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -6711,10 +6516,10 @@ snapshots: '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.25.4': + '@esbuild/linux-riscv64@0.25.10': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.4': optional: true '@esbuild/linux-s390x@0.18.20': @@ -6723,10 +6528,10 @@ snapshots: '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/linux-s390x@0.25.4': + '@esbuild/linux-s390x@0.25.10': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.4': optional: true '@esbuild/linux-x64@0.18.20': @@ -6735,16 +6540,16 @@ snapshots: '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/linux-x64@0.25.4': + '@esbuild/linux-x64@0.25.10': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/netbsd-arm64@0.25.4': + '@esbuild/netbsd-arm64@0.25.10': optional: true - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.4': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -6753,16 +6558,16 @@ snapshots: '@esbuild/netbsd-x64@0.19.12': optional: true - '@esbuild/netbsd-x64@0.25.4': + '@esbuild/netbsd-x64@0.25.10': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-arm64@0.25.4': + '@esbuild/openbsd-arm64@0.25.10': optional: true - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.4': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -6771,13 +6576,13 @@ snapshots: '@esbuild/openbsd-x64@0.19.12': optional: true - '@esbuild/openbsd-x64@0.25.4': + '@esbuild/openbsd-x64@0.25.10': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.4': optional: true - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.10': optional: true '@esbuild/sunos-x64@0.18.20': @@ -6786,10 +6591,10 @@ snapshots: '@esbuild/sunos-x64@0.19.12': optional: true - '@esbuild/sunos-x64@0.25.4': + '@esbuild/sunos-x64@0.25.10': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.4': optional: true '@esbuild/win32-arm64@0.18.20': @@ -6798,10 +6603,10 @@ snapshots: '@esbuild/win32-arm64@0.19.12': optional: true - '@esbuild/win32-arm64@0.25.4': + '@esbuild/win32-arm64@0.25.10': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.4': optional: true '@esbuild/win32-ia32@0.18.20': @@ -6810,10 +6615,10 @@ snapshots: '@esbuild/win32-ia32@0.19.12': optional: true - '@esbuild/win32-ia32@0.25.4': + '@esbuild/win32-ia32@0.25.10': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.4': optional: true '@esbuild/win32-x64@0.18.20': @@ -6822,10 +6627,10 @@ snapshots: '@esbuild/win32-x64@0.19.12': optional: true - '@esbuild/win32-x64@0.25.4': + '@esbuild/win32-x64@0.25.10': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.4': optional: true '@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@1.21.7))': @@ -6838,7 +6643,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -6852,7 +6657,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -6903,14 +6708,14 @@ snapshots: '@formkit/auto-animate@0.8.4': {} - '@hono/node-server@1.19.1(hono@4.9.7)': + '@hono/node-server@1.19.3(hono@4.9.8)': dependencies: - hono: 4.9.7 + hono: 4.9.8 - '@hono/node-ws@1.2.0(@hono/node-server@1.19.1(hono@4.9.7))(hono@4.9.7)': + '@hono/node-ws@1.2.0(@hono/node-server@1.19.3(hono@4.9.8))(hono@4.9.8)': dependencies: - '@hono/node-server': 1.19.1(hono@4.9.7) - hono: 4.9.7 + '@hono/node-server': 1.19.3(hono@4.9.8) + hono: 4.9.8 ws: 8.18.3 transitivePeerDependencies: - bufferutil @@ -7005,7 +6810,7 @@ snapshots: '@ipld/car@5.4.2': dependencies: '@ipld/dag-cbor': 9.2.5 - cborg: 4.2.14 + cborg: 4.2.15 multiformats: 13.4.1 varint: 6.0.0 @@ -7016,7 +6821,7 @@ snapshots: '@ipld/dag-json@10.2.5': dependencies: - cborg: 4.2.14 + cborg: 4.2.15 multiformats: 13.4.1 '@isaacs/balanced-match@4.0.1': {} @@ -7025,6 +6830,15 @@ snapshots: dependencies: '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 @@ -7032,18 +6846,18 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -7127,10 +6941,10 @@ snapshots: - bufferutil - utf-8-validate - '@libsql/kysely-libsql@0.4.1(kysely@0.28.5)': + '@libsql/kysely-libsql@0.4.1(kysely@0.28.7)': dependencies: '@libsql/client': 0.8.1 - kysely: 0.28.5 + kysely: 0.28.7 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -7175,10 +6989,10 @@ snapshots: dependencies: state-local: 1.0.7 - '@monaco-editor/react@4.7.0(monaco-editor@0.52.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@monaco-editor/react@4.7.0(monaco-editor@0.53.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@monaco-editor/loader': 1.5.0 - monaco-editor: 0.52.2 + monaco-editor: 0.53.0 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -7212,6 +7026,9 @@ snapshots: '@petamoriken/float16@3.9.2': {} + '@pkgjs/parseargs@0.11.0': + optional: true + '@polka/url@1.0.0-next.29': {} '@poppinss/colors@4.1.5': @@ -7228,144 +7045,84 @@ snapshots: '@remix-run/node-fetch-server@0.8.1': {} - '@rolldown/pluginutils@1.0.0-beta.34': {} + '@rolldown/pluginutils@1.0.0-beta.35': {} - '@rollup/plugin-replace@6.0.2(rollup@4.50.1)': + '@rollup/plugin-replace@6.0.2(rollup@4.51.0)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.50.1) - magic-string: 0.30.18 + '@rollup/pluginutils': 5.3.0(rollup@4.51.0) + magic-string: 0.30.19 optionalDependencies: - rollup: 4.50.1 + rollup: 4.51.0 - '@rollup/pluginutils@5.2.0(rollup@4.50.1)': + '@rollup/pluginutils@5.3.0(rollup@4.51.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.50.1 - - '@rollup/rollup-android-arm-eabi@4.49.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.50.1': - optional: true - - '@rollup/rollup-android-arm64@4.49.0': - optional: true - - '@rollup/rollup-android-arm64@4.50.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.49.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.50.1': - optional: true - - '@rollup/rollup-darwin-x64@4.49.0': - optional: true - - '@rollup/rollup-darwin-x64@4.50.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.49.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.50.1': - optional: true - - '@rollup/rollup-freebsd-x64@4.49.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.50.1': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.49.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.50.1': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.49.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.50.1': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.49.0': - optional: true + rollup: 4.51.0 - '@rollup/rollup-linux-arm64-gnu@4.50.1': + '@rollup/rollup-android-arm-eabi@4.51.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.49.0': + '@rollup/rollup-android-arm64@4.51.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.50.1': + '@rollup/rollup-darwin-arm64@4.51.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.49.0': + '@rollup/rollup-darwin-x64@4.51.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.50.1': + '@rollup/rollup-freebsd-arm64@4.51.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.49.0': + '@rollup/rollup-freebsd-x64@4.51.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.50.1': + '@rollup/rollup-linux-arm-gnueabihf@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.49.0': + '@rollup/rollup-linux-arm-musleabihf@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.50.1': + '@rollup/rollup-linux-arm64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.49.0': + '@rollup/rollup-linux-arm64-musl@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.50.1': + '@rollup/rollup-linux-loong64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.49.0': + '@rollup/rollup-linux-ppc64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.50.1': + '@rollup/rollup-linux-riscv64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.49.0': + '@rollup/rollup-linux-riscv64-musl@4.51.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.50.1': + '@rollup/rollup-linux-s390x-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-musl@4.49.0': + '@rollup/rollup-linux-x64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-musl@4.50.1': + '@rollup/rollup-linux-x64-musl@4.51.0': optional: true - '@rollup/rollup-openharmony-arm64@4.50.1': + '@rollup/rollup-openharmony-arm64@4.51.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.49.0': + '@rollup/rollup-win32-arm64-msvc@4.51.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.50.1': + '@rollup/rollup-win32-ia32-msvc@4.51.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.49.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.50.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.49.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.50.1': + '@rollup/rollup-win32-x64-msvc@4.51.0': optional: true '@rtsao/scc@1.1.0': {} @@ -7374,7 +7131,7 @@ snapshots: '@scure/bip32@1.7.0': dependencies: - '@noble/curves': 1.9.7 + '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 @@ -7397,21 +7154,21 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/container-queries@0.1.1(tailwindcss@4.1.13)': + '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.17)': dependencies: - tailwindcss: 4.1.13 + tailwindcss: 3.4.17 - '@tanstack/query-core@5.87.4': {} + '@tanstack/query-core@5.89.0': {} - '@tanstack/react-query@5.87.4(react@19.1.1)': + '@tanstack/react-query@5.89.0(react@19.1.1)': dependencies: - '@tanstack/query-core': 5.87.4 + '@tanstack/query-core': 5.89.0 react: 19.1.1 '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -7421,7 +7178,7 @@ snapshots: '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -7476,7 +7233,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/jscodeshift@17.3.0': dependencies: @@ -7489,17 +7246,13 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 24.3.1 + '@types/node': 24.5.2 '@types/minimist@1.2.5': {} - '@types/node@24.3.0': - dependencies: - undici-types: 7.10.0 - - '@types/node@24.3.1': + '@types/node@24.5.2': dependencies: - undici-types: 7.10.0 + undici-types: 7.12.0 '@types/normalize-package-data@2.4.4': {} @@ -7515,21 +7268,23 @@ snapshots: '@types/semver@7.7.1': {} + '@types/trusted-types@1.0.6': {} + '@types/trusted-types@2.0.7': optional: true '@types/ws@8.18.1': dependencies: - '@types/node': 24.3.1 + '@types/node': 24.5.2 - '@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.43.0 - '@typescript-eslint/type-utils': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) - '@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.43.0 + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 eslint: 9.35.0(jiti@1.21.7) graphemer: 1.4.0 ignore: 7.0.5 @@ -7539,57 +7294,57 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': + '@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.43.0 - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.43.0 - debug: 4.4.1 + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 eslint: 9.35.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.43.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2) - '@typescript-eslint/types': 8.43.0 - debug: 4.4.1 + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + debug: 4.4.3 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.43.0': + '@typescript-eslint/scope-manager@8.44.0': dependencies: - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/visitor-keys': 8.43.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 - '@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) - debug: 4.4.1 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + debug: 4.4.3 eslint: 9.35.0(jiti@1.21.7) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.43.0': {} + '@typescript-eslint/types@8.44.0': {} - '@typescript-eslint/typescript-estree@8.43.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.43.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2) - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/visitor-keys': 8.43.0 - debug: 4.4.1 + '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7599,20 +7354,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': + '@typescript-eslint/utils@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.43.0 - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) eslint: 9.35.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.43.0': + '@typescript-eslint/visitor-keys@8.44.0': dependencies: - '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/types': 8.44.0 eslint-visitor-keys: 4.2.1 '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250915.1': @@ -7646,48 +7401,28 @@ snapshots: '@typescript/native-preview-win32-arm64': 7.0.0-dev.20250915.1 '@typescript/native-preview-win32-x64': 7.0.0-dev.20250915.1 - '@vitejs/plugin-react@5.0.2(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-react@5.0.3(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) - '@rolldown/pluginutils': 1.0.0-beta.34 + '@rolldown/pluginutils': 1.0.0-beta.35 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/browser@3.2.4(playwright@1.55.0)(vite@7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)': - dependencies: - '@testing-library/dom': 10.4.1 - '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) - '@vitest/utils': 3.2.4 - magic-string: 0.30.18 - sirv: 3.0.1 - tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) - ws: 8.18.3 - optionalDependencies: - playwright: 1.55.0 - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - optional: true - - '@vitest/browser@3.2.4(playwright@1.55.0)(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)': + '@vitest/browser@3.2.4(playwright@1.55.0)(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/utils': 3.2.4 - magic-string: 0.30.18 - sirv: 3.0.1 + magic-string: 0.30.19 + sirv: 3.0.2 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) ws: 8.18.3 optionalDependencies: playwright: 1.55.0 @@ -7705,21 +7440,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.18 - optionalDependencies: - vite: 7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) - - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.18 + magic-string: 0.30.19 optionalDependencies: - vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -7734,12 +7461,12 @@ snapshots: '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 '@vitest/spy@3.2.4': dependencies: - tinyspy: 4.0.3 + tinyspy: 4.0.4 '@vitest/utils@3.2.4': dependencies: @@ -7763,10 +7490,15 @@ snapshots: '@zxcvbn-ts/language-common@3.0.4': {} - abitype@1.1.0(typescript@5.9.2)(zod@4.1.8): + abitype@1.1.0(typescript@5.9.2)(zod@4.1.9): + optionalDependencies: + typescript: 5.9.2 + zod: 4.1.9 + + abitype@1.1.1(typescript@5.9.2)(zod@4.1.9): optionalDependencies: typescript: 5.9.2 - zod: 4.1.8 + zod: 4.1.9 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -7793,7 +7525,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.0: {} + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: @@ -7801,8 +7533,19 @@ snapshots: ansi-styles@5.2.0: {} + ansi-styles@6.2.3: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + archy@1.0.0: {} + arg@5.0.2: {} + argparse@2.0.1: {} aria-query@5.3.0: @@ -7890,8 +7633,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.3 - caniuse-lite: 1.0.30001737 + browserslist: 4.26.2 + caniuse-lite: 1.0.30001743 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -7914,8 +7657,12 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.8.6: {} + big-integer@1.6.52: {} + binary-extensions@2.3.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -7941,19 +7688,13 @@ snapshots: dependencies: lodash: 4.17.21 - browserslist@4.25.3: + browserslist@4.26.2: dependencies: - caniuse-lite: 1.0.30001737 - electron-to-chromium: 1.5.210 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.3) - - browserslist@4.25.4: - dependencies: - caniuse-lite: 1.0.30001741 - electron-to-chromium: 1.5.214 - node-releases: 2.0.20 - update-browserslist-db: 1.1.3(browserslist@4.25.4) + baseline-browser-mapping: 2.8.6 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.222 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.2) buffer-from@1.1.2: {} @@ -7983,6 +7724,8 @@ snapshots: callsites@3.1.0: {} + camelcase-css@2.0.1: {} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 @@ -7991,9 +7734,7 @@ snapshots: camelcase@5.3.1: {} - caniuse-lite@1.0.30001737: {} - - caniuse-lite@1.0.30001741: {} + caniuse-lite@1.0.30001743: {} carstream@2.3.0: dependencies: @@ -8001,8 +7742,6 @@ snapshots: multiformats: 13.4.1 uint8arraylist: 2.4.8 - cborg@4.2.14: {} - cborg@4.2.15: {} chai@5.3.3: @@ -8018,12 +7757,24 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} + chalk@5.6.2: {} charwise@3.0.1: {} check-error@2.1.1: {} + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + cli-color@2.0.4: dependencies: d: 1.0.2 @@ -8048,10 +7799,10 @@ snapshots: cmd-ts@0.14.1: dependencies: - chalk: 5.6.0 - debug: 4.4.1 + chalk: 5.6.2 + debug: 4.4.3 didyoumean: 1.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 transitivePeerDependencies: - supports-color @@ -8071,6 +7822,8 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + commander@4.1.1: {} + commondir@1.0.1: {} concat-map@0.0.1: {} @@ -8103,6 +7856,8 @@ snapshots: crypto-js@4.2.0: {} + cssesc@3.0.0: {} + csstype@3.1.3: {} d@1.0.2: @@ -8134,7 +7889,7 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -8165,14 +7920,14 @@ snapshots: defu@6.1.4: {} - deno@2.5.0: + deno@2.5.1: optionalDependencies: - '@deno/darwin-arm64': 2.5.0 - '@deno/darwin-x64': 2.5.0 - '@deno/linux-arm64-glibc': 2.5.0 - '@deno/linux-x64-glibc': 2.5.0 - '@deno/win32-arm64': 2.5.0 - '@deno/win32-x64': 2.5.0 + '@deno/darwin-arm64': 2.5.1 + '@deno/darwin-x64': 2.5.1 + '@deno/linux-arm64-glibc': 2.5.1 + '@deno/linux-x64-glibc': 2.5.1 + '@deno/win32-arm64': 2.5.1 + '@deno/win32-x64': 2.5.1 dequal@2.0.3: {} @@ -8188,17 +7943,19 @@ snapshots: dependencies: path-type: 4.0.0 + dlv@1.1.3: {} + doctrine@2.1.0: dependencies: esutils: 2.0.3 dom-accessibility-api@0.5.16: {} - dompurify@3.2.6: + dompurify@3.2.7: optionalDependencies: '@types/trusted-types': 2.0.7 - drizzle-kit@0.30.6(patch_hash=qurcebuunk6oqtltwdee4xtzuy): + drizzle-kit@0.30.6(patch_hash=9e79163b9304da5cbc3c787034937aeddaf678492ba5636df601baaa78e130d8): dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 @@ -8208,12 +7965,12 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.44.5(@cloudflare/workers-types@4.20250906.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.5): + drizzle-orm@0.44.5(@cloudflare/workers-types@4.20250919.0)(@libsql/client@0.15.15)(gel@2.1.1)(kysely@0.28.7): optionalDependencies: - '@cloudflare/workers-types': 4.20250906.0 + '@cloudflare/workers-types': 4.20250919.0 '@libsql/client': 0.15.15 gel: 2.1.1 - kysely: 0.28.5 + kysely: 0.28.7 dunder-proto@1.0.1: dependencies: @@ -8221,15 +7978,17 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.210: {} + eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.214: {} + electron-to-chromium@1.5.222: {} emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + env-paths@3.0.0: {} - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -8365,7 +8124,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.19.12): dependencies: - debug: 4.4.1 + debug: 4.4.3 esbuild: 0.19.12 transitivePeerDependencies: - supports-color @@ -8421,6 +8180,35 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + esbuild@0.25.10: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.10 + '@esbuild/android-arm': 0.25.10 + '@esbuild/android-arm64': 0.25.10 + '@esbuild/android-x64': 0.25.10 + '@esbuild/darwin-arm64': 0.25.10 + '@esbuild/darwin-x64': 0.25.10 + '@esbuild/freebsd-arm64': 0.25.10 + '@esbuild/freebsd-x64': 0.25.10 + '@esbuild/linux-arm': 0.25.10 + '@esbuild/linux-arm64': 0.25.10 + '@esbuild/linux-ia32': 0.25.10 + '@esbuild/linux-loong64': 0.25.10 + '@esbuild/linux-mips64el': 0.25.10 + '@esbuild/linux-ppc64': 0.25.10 + '@esbuild/linux-riscv64': 0.25.10 + '@esbuild/linux-s390x': 0.25.10 + '@esbuild/linux-x64': 0.25.10 + '@esbuild/netbsd-arm64': 0.25.10 + '@esbuild/netbsd-x64': 0.25.10 + '@esbuild/openbsd-arm64': 0.25.10 + '@esbuild/openbsd-x64': 0.25.10 + '@esbuild/openharmony-arm64': 0.25.10 + '@esbuild/sunos-x64': 0.25.10 + '@esbuild/win32-arm64': 0.25.10 + '@esbuild/win32-ia32': 0.25.10 + '@esbuild/win32-x64': 0.25.10 + esbuild@0.25.4: optionalDependencies: '@esbuild/aix-ppc64': 0.25.4 @@ -8449,35 +8237,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.4 '@esbuild/win32-x64': 0.25.4 - esbuild@0.25.9: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 - escalade@3.2.0: {} escape-string-regexp@4.0.0: {} @@ -8501,17 +8260,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@1.21.7)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@1.21.7)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) eslint: 9.35.0(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8522,7 +8281,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.35.0(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@1.21.7)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@1.21.7)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8534,7 +8293,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8599,7 +8358,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -8747,19 +8506,24 @@ snapshots: flatted@3.3.3: {} - flow-parser@0.280.0: {} + flow-parser@0.284.0: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 fraction.js@4.3.7: {} - fs-extra@11.3.1: + fs-extra@11.3.2: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 @@ -8787,7 +8551,7 @@ snapshots: gel@2.1.1: dependencies: '@petamoriken/float16': 3.9.2 - debug: 4.4.1 + debug: 4.4.3 env-paths: 3.0.0 semver: 7.7.2 shell-quote: 1.8.3 @@ -8839,6 +8603,15 @@ snapshots: glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + globals@14.0.0: {} globals@16.4.0: {} @@ -8893,7 +8666,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.9.7: {} + hono@4.9.8: {} hosted-git-info@2.8.9: {} @@ -8959,6 +8732,10 @@ snapshots: dependencies: has-bigints: 1.1.0 + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 @@ -9006,7 +8783,7 @@ snapshots: is-negative-zero@2.0.3: {} - is-network-error@1.1.0: {} + is-network-error@1.3.0: {} is-number-object@1.1.1: dependencies: @@ -9089,6 +8866,12 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jest-diff@29.7.0: dependencies: chalk: 4.1.2 @@ -9098,8 +8881,7 @@ snapshots: jest-get-type@29.6.3: {} - jiti@1.21.7: - optional: true + jiti@1.21.7: {} jose@6.1.0: {} @@ -9117,17 +8899,17 @@ snapshots: jscodeshift@17.3.0: dependencies: - '@babel/core': 7.28.3 - '@babel/parser': 7.28.3 - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.3) - '@babel/preset-flow': 7.27.1(@babel/core@7.28.3) - '@babel/preset-typescript': 7.27.1(@babel/core@7.28.3) - '@babel/register': 7.28.3(@babel/core@7.28.3) - flow-parser: 0.280.0 + '@babel/core': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) + '@babel/preset-flow': 7.27.1(@babel/core@7.28.4) + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/register': 7.28.3(@babel/core@7.28.4) + flow-parser: 0.284.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -9175,7 +8957,7 @@ snapshots: kleur@4.1.5: {} - kysely@0.28.5: {} + kysely@0.28.7: {} levn@0.4.1: dependencies: @@ -9210,6 +8992,8 @@ snapshots: '@libsql/linux-x64-musl': 0.5.22 '@libsql/win32-x64-msvc': 0.5.22 + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} locate-path@3.0.0: @@ -9244,6 +9028,8 @@ snapshots: loupe@3.2.1: {} + lru-cache@10.4.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -9258,7 +9044,7 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.18: + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -9310,25 +9096,7 @@ snapshots: min-indent@1.0.1: {} - miniflare@4.20250902.0: - dependencies: - '@cspotcode/source-map-support': 0.8.1 - acorn: 8.14.0 - acorn-walk: 8.3.2 - exit-hook: 2.2.1 - glob-to-regexp: 0.4.1 - sharp: 0.33.5 - stoppable: 1.1.0 - undici: 7.15.0 - workerd: 1.20250902.0 - ws: 8.18.0 - youch: 4.1.0-beta.10 - zod: 3.22.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - miniflare@4.20250906.2: + miniflare@4.20250917.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -9338,7 +9106,7 @@ snapshots: sharp: 0.33.5 stoppable: 1.1.0 undici: 7.14.0 - workerd: 1.20250906.0 + workerd: 1.20250917.0 ws: 8.18.0 youch: 4.1.0-beta.10 zod: 3.22.3 @@ -9366,7 +9134,11 @@ snapshots: minimist@1.2.8: {} - monaco-editor@0.52.2: {} + minipass@7.1.2: {} + + monaco-editor@0.53.0: + dependencies: + '@types/trusted-types': 1.0.6 mri@1.2.0: {} @@ -9376,6 +9148,12 @@ snapshots: multiformats@13.4.1: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -9392,9 +9170,7 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-releases@2.0.19: {} - - node-releases@2.0.20: {} + node-releases@2.0.21: {} node-sql-parser@3.9.4: dependencies: @@ -9414,10 +9190,14 @@ snapshots: semver: 7.7.2 validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} + normalize-range@0.1.2: {} object-assign@4.1.1: {} + object-hash@3.0.0: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -9481,29 +9261,29 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - ox@0.6.9(typescript@5.9.2)(zod@4.1.8): + ox@0.6.9(typescript@5.9.2)(zod@4.1.9): dependencies: - '@adraffy/ens-normalize': 1.11.0 + '@adraffy/ens-normalize': 1.11.1 '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.1.0(typescript@5.9.2)(zod@4.1.8) + abitype: 1.1.1(typescript@5.9.2)(zod@4.1.9) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: - zod - ox@0.9.3(typescript@5.9.2)(zod@4.1.8): + ox@0.9.3(typescript@5.9.2)(zod@4.1.9): dependencies: - '@adraffy/ens-normalize': 1.11.0 + '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.1.0(typescript@5.9.2)(zod@4.1.8) + abitype: 1.1.0(typescript@5.9.2)(zod@4.1.9) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.9.2 @@ -9542,10 +9322,12 @@ snapshots: p-retry@7.0.0: dependencies: - is-network-error: 1.1.0 + is-network-error: 1.3.0 p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -9553,7 +9335,7 @@ snapshots: parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.2 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9567,6 +9349,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-to-regexp@6.3.0: {} path-type@4.0.0: {} @@ -9581,6 +9368,8 @@ snapshots: picomatch@4.0.3: {} + pify@2.3.0: {} + pify@4.0.1: {} pirates@4.0.7: {} @@ -9607,6 +9396,35 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-import@15.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.1.0(postcss@8.5.6): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.6 + + postcss-load-config@4.0.2(postcss@8.5.6): + dependencies: + lilconfig: 3.1.3 + yaml: 2.8.1 + optionalDependencies: + postcss: 8.5.6 + + postcss-nested@6.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} postcss@8.5.6: @@ -9696,6 +9514,10 @@ snapshots: react@19.1.1: {} + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 @@ -9715,6 +9537,10 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -9770,66 +9596,40 @@ snapshots: reusify@1.1.0: {} - rollup-plugin-visualizer@6.0.3(rollup@4.50.1): + rollup-plugin-visualizer@6.0.3(rollup@4.51.0): dependencies: open: 8.4.2 picomatch: 4.0.3 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: - rollup: 4.50.1 - - rollup@4.49.0: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.49.0 - '@rollup/rollup-android-arm64': 4.49.0 - '@rollup/rollup-darwin-arm64': 4.49.0 - '@rollup/rollup-darwin-x64': 4.49.0 - '@rollup/rollup-freebsd-arm64': 4.49.0 - '@rollup/rollup-freebsd-x64': 4.49.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.49.0 - '@rollup/rollup-linux-arm-musleabihf': 4.49.0 - '@rollup/rollup-linux-arm64-gnu': 4.49.0 - '@rollup/rollup-linux-arm64-musl': 4.49.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.49.0 - '@rollup/rollup-linux-ppc64-gnu': 4.49.0 - '@rollup/rollup-linux-riscv64-gnu': 4.49.0 - '@rollup/rollup-linux-riscv64-musl': 4.49.0 - '@rollup/rollup-linux-s390x-gnu': 4.49.0 - '@rollup/rollup-linux-x64-gnu': 4.49.0 - '@rollup/rollup-linux-x64-musl': 4.49.0 - '@rollup/rollup-win32-arm64-msvc': 4.49.0 - '@rollup/rollup-win32-ia32-msvc': 4.49.0 - '@rollup/rollup-win32-x64-msvc': 4.49.0 - fsevents: 2.3.3 + rollup: 4.51.0 - rollup@4.50.1: + rollup@4.51.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.50.1 - '@rollup/rollup-android-arm64': 4.50.1 - '@rollup/rollup-darwin-arm64': 4.50.1 - '@rollup/rollup-darwin-x64': 4.50.1 - '@rollup/rollup-freebsd-arm64': 4.50.1 - '@rollup/rollup-freebsd-x64': 4.50.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.50.1 - '@rollup/rollup-linux-arm-musleabihf': 4.50.1 - '@rollup/rollup-linux-arm64-gnu': 4.50.1 - '@rollup/rollup-linux-arm64-musl': 4.50.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.50.1 - '@rollup/rollup-linux-ppc64-gnu': 4.50.1 - '@rollup/rollup-linux-riscv64-gnu': 4.50.1 - '@rollup/rollup-linux-riscv64-musl': 4.50.1 - '@rollup/rollup-linux-s390x-gnu': 4.50.1 - '@rollup/rollup-linux-x64-gnu': 4.50.1 - '@rollup/rollup-linux-x64-musl': 4.50.1 - '@rollup/rollup-openharmony-arm64': 4.50.1 - '@rollup/rollup-win32-arm64-msvc': 4.50.1 - '@rollup/rollup-win32-ia32-msvc': 4.50.1 - '@rollup/rollup-win32-x64-msvc': 4.50.1 + '@rollup/rollup-android-arm-eabi': 4.51.0 + '@rollup/rollup-android-arm64': 4.51.0 + '@rollup/rollup-darwin-arm64': 4.51.0 + '@rollup/rollup-darwin-x64': 4.51.0 + '@rollup/rollup-freebsd-arm64': 4.51.0 + '@rollup/rollup-freebsd-x64': 4.51.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.51.0 + '@rollup/rollup-linux-arm-musleabihf': 4.51.0 + '@rollup/rollup-linux-arm64-gnu': 4.51.0 + '@rollup/rollup-linux-arm64-musl': 4.51.0 + '@rollup/rollup-linux-loong64-gnu': 4.51.0 + '@rollup/rollup-linux-ppc64-gnu': 4.51.0 + '@rollup/rollup-linux-riscv64-gnu': 4.51.0 + '@rollup/rollup-linux-riscv64-musl': 4.51.0 + '@rollup/rollup-linux-s390x-gnu': 4.51.0 + '@rollup/rollup-linux-x64-gnu': 4.51.0 + '@rollup/rollup-linux-x64-musl': 4.51.0 + '@rollup/rollup-openharmony-arm64': 4.51.0 + '@rollup/rollup-win32-arm64-msvc': 4.51.0 + '@rollup/rollup-win32-ia32-msvc': 4.51.0 + '@rollup/rollup-win32-x64-msvc': 4.51.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -9967,7 +9767,7 @@ snapshots: dependencies: is-arrayish: 0.3.4 - sirv@3.0.1: + sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.29 mrmime: 2.0.1 @@ -10026,6 +9826,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 @@ -10078,9 +9884,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.2.0 + ansi-regex: 6.2.2 strip-bom@3.0.0: {} @@ -10096,6 +9902,16 @@ snapshots: stylis@4.2.0: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + ts-interface-checker: 0.1.13 + supports-color@10.2.2: {} supports-color@7.2.0: @@ -10117,7 +9933,40 @@ snapshots: tabbable@6.2.0: {} - tailwindcss@4.1.13: {} + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 4.0.2(postcss@8.5.6) + postcss-nested: 6.2.0(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 timers-ext@0.1.8: dependencies: @@ -10130,11 +9979,6 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.14: - dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) @@ -10144,7 +9988,7 @@ snapshots: tinyrainbow@2.0.0: {} - tinyspy@4.0.3: {} + tinyspy@4.0.4: {} tmp@0.2.5: {} @@ -10166,6 +10010,8 @@ snapshots: optionalDependencies: typescript: 5.9.2 + ts-interface-checker@0.1.13: {} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -10187,7 +10033,7 @@ snapshots: tsx@4.20.5: dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -10239,12 +10085,12 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2): + typescript-eslint@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) - '@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@1.21.7))(typescript@5.9.2) eslint: 9.35.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: @@ -10269,20 +10115,10 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@7.10.0: {} + undici-types@7.12.0: {} undici@7.14.0: {} - undici@7.15.0: {} - - unenv@2.0.0-rc.20: - dependencies: - defu: 6.1.4 - exsolve: 1.0.7 - ohash: 2.0.11 - pathe: 2.0.3 - ufo: 1.6.1 - unenv@2.0.0-rc.21: dependencies: defu: 6.1.4 @@ -10295,15 +10131,9 @@ snapshots: universalify@2.0.1: {} - update-browserslist-db@1.1.3(browserslist@4.25.3): - dependencies: - browserslist: 4.25.3 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-browserslist-db@1.1.3(browserslist@4.25.4): + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: - browserslist: 4.25.4 + browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -10330,15 +10160,15 @@ snapshots: varint@6.0.0: {} - viem@2.37.4(typescript@5.9.2)(zod@4.1.8): + viem@2.37.6(typescript@5.9.2)(zod@4.1.9): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.1.0(typescript@5.9.2)(zod@4.1.8) + abitype: 1.1.0(typescript@5.9.2)(zod@4.1.9) isows: 1.0.7(ws@8.18.3) - ox: 0.9.3(typescript@5.9.2)(zod@4.1.8) + ox: 0.9.3(typescript@5.9.2)(zod@4.1.9) ws: 8.18.3 optionalDependencies: typescript: 5.9.2 @@ -10347,13 +10177,13 @@ snapshots: - utf-8-validate - zod - vite-node@3.2.4(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -10368,64 +10198,49 @@ snapshots: - tsx - yaml - vite@7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.49.0 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.3.1 - fsevents: 2.3.3 - jiti: 1.21.7 - tsx: 4.20.5 - yaml: 2.8.1 - - vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.50.1 + rollup: 4.51.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.5.2 fsevents: 2.3.3 jiti: 1.21.7 tsx: 4.20.5 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.3.1)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.5.2)(@vitest/browser@3.2.4)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.1 + debug: 4.4.3 expect-type: 1.2.2 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.3.1 - '@vitest/browser': 3.2.4(playwright@1.55.0)(vite@7.1.3(@types/node@24.3.1)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) + '@types/node': 24.5.2 + '@vitest/browser': 3.2.4(playwright@1.55.0)(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) transitivePeerDependencies: - jiti - less @@ -10498,34 +10313,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20250823.0: + workerd@1.20250917.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250823.0 - '@cloudflare/workerd-darwin-arm64': 1.20250823.0 - '@cloudflare/workerd-linux-64': 1.20250823.0 - '@cloudflare/workerd-linux-arm64': 1.20250823.0 - '@cloudflare/workerd-windows-64': 1.20250823.0 + '@cloudflare/workerd-darwin-64': 1.20250917.0 + '@cloudflare/workerd-darwin-arm64': 1.20250917.0 + '@cloudflare/workerd-linux-64': 1.20250917.0 + '@cloudflare/workerd-linux-arm64': 1.20250917.0 + '@cloudflare/workerd-windows-64': 1.20250917.0 - workerd@1.20250906.0: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250906.0 - '@cloudflare/workerd-darwin-arm64': 1.20250906.0 - '@cloudflare/workerd-linux-64': 1.20250906.0 - '@cloudflare/workerd-linux-arm64': 1.20250906.0 - '@cloudflare/workerd-windows-64': 1.20250906.0 - - wrangler@4.37.0(@cloudflare/workers-types@4.20250906.0): + wrangler@4.38.0(@cloudflare/workers-types@4.20250919.0): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.7.3(unenv@2.0.0-rc.21)(workerd@1.20250906.0) + '@cloudflare/unenv-preset': 2.7.4(unenv@2.0.0-rc.21)(workerd@1.20250917.0) blake3-wasm: 2.1.5 esbuild: 0.25.4 - miniflare: 4.20250906.2 + miniflare: 4.20250917.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.21 - workerd: 1.20250906.0 + workerd: 1.20250917.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250906.0 + '@cloudflare/workers-types': 4.20250919.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -10537,6 +10344,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 @@ -10589,7 +10402,7 @@ snapshots: zod@3.22.3: {} - zod@4.1.8: {} + zod@4.1.9: {} zustand@5.0.3(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1)): optionalDependencies: diff --git a/use-fireproof/package.json b/use-fireproof/package.json index 768083092..c571dfcc8 100644 --- a/use-fireproof/package.json +++ b/use-fireproof/package.json @@ -22,7 +22,7 @@ "license": "AFL-2.0", "gptdoc": "Fireproof/React/Usage: import { useFireproof } from 'use-fireproof'; function WordCounterApp() { const { useLiveQuery, useDocument } = useFireproof('my-word-app'); const { doc: wordInput, merge: updateWordInput, save: saveWordInput, reset: clearWordInput } = useDocument({ word: '', timestamp: Date.now() }); const recentWords = useLiveQuery('timestamp', { descending: true, limit: 10 }); const { doc: { totalSubmitted }, merge: updateTotalSubmitted, save: saveTotalSubmitted } = useDocument({ _id: 'word-counter', totalSubmitted: 0 }); const handleWordSubmission = (e) => { e.preventDefault(); updateTotalSubmitted({ totalSubmitted: totalSubmitted + 1 }); saveTotalSubmitted(); saveWordInput(); clearWordInput();}; return (<>

{totalSubmitted} words submitted

updateWordInput({ word: e.target.value })} placeholder='Enter a word' />
    {recentWords.docs.map(entry => (
  • {entry.word}
  • ))}
) } export default WordCounterApp;", "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "@fireproof/core-base": "workspace:0.0.0", "@fireproof/core-gateways-cloud": "workspace:0.0.0", "@fireproof/core-keybag": "workspace:0.0.0", diff --git a/use-fireproof/react/img-file.ts b/use-fireproof/react/img-file.ts index 0c36ec0d3..fda937903 100644 --- a/use-fireproof/react/img-file.ts +++ b/use-fireproof/react/img-file.ts @@ -1,9 +1,12 @@ import { LRUMap } from "@adviser/cement"; import { DocFileMeta } from "@fireproof/core-types-base"; -import React, { useState, useEffect, useRef, useMemo, ImgHTMLAttributes } from "react"; +import React, { useState, useEffect, useLayoutEffect, useRef, useMemo, ImgHTMLAttributes } from "react"; // Cache for object URLs to avoid recreating them unnecessarily -const objectUrlCache = new LRUMap(); +// Use LRUMap with maxEntries to manage memory usage +const objectUrlCache = new LRUMap({ + maxEntries: 50, // Limit to 50 cached object URLs to manage memory +}); // Union type to support both direct File objects and metadata objects type FileType = File | DocFileMeta; @@ -27,9 +30,9 @@ function isFileMeta(obj: FileType): obj is DocFileMeta { return "type" in obj && "size" in obj && "file" in obj && typeof obj.file === "function"; } -// Generate a cache key for file objects +// Generate a namespaced cache key for file objects function getCacheKey(fileObj: File): string { - return `${fileObj.name}-${fileObj.size}-${fileObj.lastModified}`; + return `file:${fileObj.name}-${fileObj.size}-${fileObj.lastModified}`; } // Keyed variant so we can use DocFileMeta.cid for stable identity @@ -51,7 +54,7 @@ async function loadFile({ fileData?: FileType; fileObjRef: React.RefObject; setImgDataUrl: React.Dispatch>; - cleanupRef: React.RefObject<(() => void) | null>; + cleanupRef: React.RefObject<{ contentKey: string; revoke: () => void } | null>; keyRef: React.RefObject; }) { let fileObj: File | null = null; @@ -71,40 +74,58 @@ async function loadFile({ } } - // Use CID-based key for DocFileMeta, file-based key for direct File objects + // Use namespaced keys to prevent collisions: 'cid:' for DocFileMeta, 'file:' for File objects const currentKey = keyRef.current ?? null; const newKey = fileData && isFileMeta(fileData) && fileData.cid ? `cid:${String(fileData.cid)}` : fileData && isFile(fileData) - ? getCacheKey(fileData) + ? getCacheKey(fileData) // Already includes 'file:' prefix : null; const isDifferentFile = currentKey !== newKey; + // If same content key, check if we have a cached URL we can reuse + const canReuseCache = !isDifferentFile && newKey && objectUrlCache.has(newKey); + // Defer cleanup of previous URL until after new URL is set if (fileObj && /image/.test(fileType)) { - // Skip if it's the same file content (even if different object reference) + // Handle different file content if (isDifferentFile && newKey) { const src = getObjectUrlByKey(newKey, fileObj); setImgDataUrl(src); fileObjRef.current = fileObj; const prevCleanup = cleanupRef.current; - // Store cleanup function keyed by content identity - cleanupRef.current = () => { - if (objectUrlCache.has(newKey)) { - // eslint-disable-next-line no-restricted-globals - URL.revokeObjectURL(objectUrlCache.get(newKey) as string); - objectUrlCache.delete(newKey); - } + // Create content-aware cleanup function to return + const newCleanupObj = { + contentKey: newKey, + revoke: () => { + if (objectUrlCache.has(newKey)) { + // eslint-disable-next-line no-restricted-globals + URL.revokeObjectURL(objectUrlCache.get(newKey) as string); + objectUrlCache.delete(newKey); + } + }, }; keyRef.current = newKey; - if (prevCleanup) prevCleanup(); + if (prevCleanup && prevCleanup.revoke) { + prevCleanup.revoke(); + } + + return newCleanupObj; + } + // Handle same content key - reuse existing cached URL if available + if (canReuseCache && newKey) { + const src = objectUrlCache.get(newKey) as string; + setImgDataUrl(src); + fileObjRef.current = fileObj; + keyRef.current = newKey; + // Keep existing cleanup function - don't create a new one or call prevCleanup return cleanupRef.current; } - // Return existing cleanup if same file + // Return existing cleanup if same file and no cached URL return cleanupRef.current; } return null; @@ -113,8 +134,9 @@ async function loadFile({ export function ImgFile({ file, meta, ...imgProps }: ImgFileProps) { const [imgDataUrl, setImgDataUrl] = useState(""); const fileObjRef = useRef(null); - const cleanupRef = useRef<(() => void) | null>(null); + const cleanupRef = useRef<{ contentKey: string; revoke: () => void } | null>(null); const keyRef = useRef(null); + const nextFileDataRef = useRef(undefined); // Use meta as fallback if file is not provided (for backward compatibility) // Memoize fileData to prevent unnecessary re-renders @@ -122,23 +144,56 @@ export function ImgFile({ file, meta, ...imgProps }: ImgFileProps) { return file || meta; }, [file, meta]); + // Use layoutEffect to update tracking ref before useEffect cleanup runs + useLayoutEffect(() => { + nextFileDataRef.current = fileData; + }, [fileData]); + useEffect(() => { if (!fileData) return; let isMounted = true; + loadFile({ fileData, fileObjRef, cleanupRef, setImgDataUrl, keyRef }).then(function handleResult(result) { if (isMounted) { // Store the result in cleanupRef.current if component is still mounted cleanupRef.current = result; - } else if (result) { + } else if (result && result.revoke) { // If component unmounted before promise resolved, call cleanup immediately - result(); + result.revoke(); } }); return function cleanupEffect() { isMounted = false; + + // Content-aware conditional cleanup: only revoke URLs when content actually changes if (cleanupRef.current) { - cleanupRef.current(); + const currentContentKey = cleanupRef.current.contentKey; + + // Compute next content key from the upcoming fileData (same logic as in loadFile) + let nextContentKey = null; + const upcomingFileData = nextFileDataRef.current; + if (upcomingFileData) { + if (isFileMeta(upcomingFileData) && upcomingFileData.cid) { + nextContentKey = `cid:${String(upcomingFileData.cid)}`; + } else if (isFile(upcomingFileData)) { + nextContentKey = `file:${upcomingFileData.name}-${upcomingFileData.size}-${upcomingFileData.lastModified}`; + } + } + + // Different cleanup logic for File vs DocFileMeta objects: + // - File objects: Always cleanup on effect change (including unmount) + // - DocFileMeta objects: Only cleanup when CID actually changes + const isContentChanging = currentContentKey !== nextContentKey; + const isFileObject = currentContentKey?.startsWith("file:"); + const isDocFileMetaObject = currentContentKey?.startsWith("cid:"); + + const shouldCleanup = isFileObject || (isDocFileMetaObject && isContentChanging); + + if (shouldCleanup && cleanupRef.current.revoke) { + cleanupRef.current.revoke(); + } + cleanupRef.current = null; } }; diff --git a/vendor/package.json b/vendor/package.json index 6ac8743f5..81d6615ea 100644 --- a/vendor/package.json +++ b/vendor/package.json @@ -29,7 +29,7 @@ "zx": "^8.8.1" }, "dependencies": { - "@adviser/cement": "^0.4.35", + "@adviser/cement": "^0.4.39", "yocto-queue": "^1.2.1" } }