@tensorix/metahub 0.2.2 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +8 -1
  2. package/dist/cli.js +1309 -275
  3. package/dist/cli.js.map +21 -17
  4. package/dist/core/databases.d.ts +5 -1
  5. package/dist/core/databases.d.ts.map +1 -1
  6. package/dist/core/documents.d.ts +22 -0
  7. package/dist/core/documents.d.ts.map +1 -1
  8. package/dist/core/md/grammar.d.ts +77 -0
  9. package/dist/core/md/grammar.d.ts.map +1 -0
  10. package/dist/core/md/heal.d.ts +2 -0
  11. package/dist/core/md/heal.d.ts.map +1 -0
  12. package/dist/core/md/inline.d.ts +20 -0
  13. package/dist/core/md/inline.d.ts.map +1 -0
  14. package/dist/core/schema-init.d.ts +13 -0
  15. package/dist/core/schema-init.d.ts.map +1 -1
  16. package/dist/core/schema.d.ts +1 -1
  17. package/dist/core/schema.d.ts.map +1 -1
  18. package/dist/core/sync/auth.d.ts +3 -1
  19. package/dist/core/sync/auth.d.ts.map +1 -1
  20. package/dist/core/sync/share-render.d.ts +3 -1
  21. package/dist/core/sync/share-render.d.ts.map +1 -1
  22. package/dist/db-worker.js +51 -41
  23. package/dist/index.js +1201 -260
  24. package/dist/index.js.map +16 -12
  25. package/dist/mh-runtime.js +1 -1
  26. package/dist/sw.js +1 -1
  27. package/dist/webui/fmt/manifest.d.ts +17 -0
  28. package/dist/webui/fmt/manifest.d.ts.map +1 -0
  29. package/dist/webui/server/assets.d.ts +5 -0
  30. package/dist/webui/server/assets.d.ts.map +1 -1
  31. package/dist/webui-fmt-clang.js +1 -0
  32. package/dist/webui-fmt-clang.wasm +0 -0
  33. package/dist/webui-fmt-gofmt.js +1 -0
  34. package/dist/webui-fmt-gofmt.wasm +0 -0
  35. package/dist/webui-fmt-lua.js +2 -0
  36. package/dist/webui-fmt-lua.wasm +0 -0
  37. package/dist/webui-fmt-ruff.js +2 -0
  38. package/dist/webui-fmt-ruff.wasm +0 -0
  39. package/dist/webui-fmt-sh.js +8 -0
  40. package/dist/webui-fmt-taplo.js +2 -0
  41. package/dist/webui-fmt-taplo.wasm +0 -0
  42. package/dist/webui-fmt.js +425 -0
  43. package/dist/webui.js +148 -75
  44. package/package.json +15 -1
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/core/errors.ts", "../src/core/paths.ts", "../src/core/ids.ts", "../src/core/node.ts", "../src/core/hlc.ts", "../src/core/blocks.ts", "../src/core/crdt.ts", "../src/core/indexing.ts", "../src/core/properties.ts", "../src/core/databases.ts", "../src/core/resolve.ts", "../src/core/fracdex.ts", "../src/core/records.ts", "../src/core/documents.ts", "../src/core/blobs-core.ts", "../src/core/sync/storage-url.ts", "../src/core/cache.ts", "../src/core/sites-core.ts", "../node_modules/zod/v4/core/core.js", "../node_modules/zod/v4/core/util.js", "../node_modules/zod/v4/core/errors.js", "../node_modules/zod/v4/core/parse.js", "../node_modules/zod/v4/core/regexes.js", "../node_modules/zod/v4/core/checks.js", "../node_modules/zod/v4/core/doc.js", "../node_modules/zod/v4/core/versions.js", "../node_modules/zod/v4/core/schemas.js", "../node_modules/zod/v4/locales/ar.js", "../node_modules/zod/v4/locales/az.js", "../node_modules/zod/v4/locales/be.js", "../node_modules/zod/v4/locales/bg.js", "../node_modules/zod/v4/locales/ca.js", "../node_modules/zod/v4/locales/cs.js", "../node_modules/zod/v4/locales/da.js", "../node_modules/zod/v4/locales/de.js", "../node_modules/zod/v4/locales/el.js", "../node_modules/zod/v4/locales/en.js", "../node_modules/zod/v4/locales/eo.js", "../node_modules/zod/v4/locales/es.js", "../node_modules/zod/v4/locales/fa.js", "../node_modules/zod/v4/locales/fi.js", "../node_modules/zod/v4/locales/fr.js", "../node_modules/zod/v4/locales/fr-CA.js", "../node_modules/zod/v4/locales/he.js", "../node_modules/zod/v4/locales/hr.js", "../node_modules/zod/v4/locales/hu.js", "../node_modules/zod/v4/locales/hy.js", "../node_modules/zod/v4/locales/id.js", "../node_modules/zod/v4/locales/is.js", "../node_modules/zod/v4/locales/it.js", "../node_modules/zod/v4/locales/ja.js", "../node_modules/zod/v4/locales/ka.js", "../node_modules/zod/v4/locales/km.js", "../node_modules/zod/v4/locales/kh.js", "../node_modules/zod/v4/locales/ko.js", "../node_modules/zod/v4/locales/lt.js", "../node_modules/zod/v4/locales/mk.js", "../node_modules/zod/v4/locales/ms.js", "../node_modules/zod/v4/locales/nl.js", "../node_modules/zod/v4/locales/no.js", "../node_modules/zod/v4/locales/ota.js", "../node_modules/zod/v4/locales/ps.js", "../node_modules/zod/v4/locales/pl.js", "../node_modules/zod/v4/locales/pt.js", "../node_modules/zod/v4/locales/ro.js", "../node_modules/zod/v4/locales/ru.js", "../node_modules/zod/v4/locales/sl.js", "../node_modules/zod/v4/locales/sv.js", "../node_modules/zod/v4/locales/ta.js", "../node_modules/zod/v4/locales/th.js", "../node_modules/zod/v4/locales/tr.js", "../node_modules/zod/v4/locales/uk.js", "../node_modules/zod/v4/locales/ua.js", "../node_modules/zod/v4/locales/ur.js", "../node_modules/zod/v4/locales/uz.js", "../node_modules/zod/v4/locales/vi.js", "../node_modules/zod/v4/locales/zh-CN.js", "../node_modules/zod/v4/locales/zh-TW.js", "../node_modules/zod/v4/locales/yo.js", "../node_modules/zod/v4/locales/index.js", "../node_modules/zod/v4/core/registries.js", "../node_modules/zod/v4/core/api.js", "../node_modules/zod/v4/core/to-json-schema.js", "../node_modules/zod/v4/core/json-schema-processors.js", "../node_modules/zod/v4/core/json-schema-generator.js", "../node_modules/zod/v4/core/index.js", "../node_modules/zod/v4/classic/checks.js", "../node_modules/zod/v4/classic/iso.js", "../node_modules/zod/v4/classic/errors.js", "../node_modules/zod/v4/classic/parse.js", "../node_modules/zod/v4/classic/schemas.js", "../node_modules/zod/v4/classic/compat.js", "../node_modules/zod/v4/classic/from-json-schema.js", "../node_modules/zod/v4/classic/coerce.js", "../node_modules/zod/v4/classic/external.js", "../node_modules/zod/index.js", "../src/core/sync/protocol.ts", "../src/core/sync/client.ts", "../src/core/sync/publisher-lease.ts", "../src/core/sync/e2ee.ts", "../src/core/sync/storage.ts", "../src/core/sync/peers.ts", "../src/core/sync/token.ts", "../src/core/config.ts", "../src/core/blobs.ts", "../src/core/sites.ts", "../node_modules/aws4fetch/dist/aws4fetch.esm.mjs", "../src/core/sync/storage-s3-bun.ts", "../src/core/sync/sites-routes.ts", "../src/core/sync/pairing.ts", "../src/core/sync/peers-routes.ts", "../src/core/sync/blob-routes.ts", "../src/core/sync/routes.ts", "../src/core/sync/sites-serve.ts", "../src/core/shares.ts", "../src/core/sync/share-render.ts", "../src/core/sync/share-serve.ts", "../src/core/index.ts", "../src/core/db.ts", "../src/core/schema.ts", "../src/core/schema-init.ts", "../src/core/context.ts", "../src/core/search.ts", "../src/core/sync/server.ts", "../src/core/sync/openapi.ts", "../src/core/sync/auth.ts", "../src/webui/server/assets.ts", "../src/webui/server/icons.ts", "../src/webui/server/routes.ts", "../src/core/history.ts", "../src/webui/server/share-routes.ts", "../src/core/sync/share-actions.ts", "../src/core/sync/share-export.ts"],
3
+ "sources": ["../src/core/errors.ts", "../src/core/paths.ts", "../src/core/ids.ts", "../src/core/node.ts", "../src/core/hlc.ts", "../src/core/blocks.ts", "../src/core/crdt.ts", "../src/core/indexing.ts", "../src/core/properties.ts", "../src/core/databases.ts", "../src/core/resolve.ts", "../src/core/fracdex.ts", "../src/core/records.ts", "../src/core/documents.ts", "../src/core/blobs-core.ts", "../src/core/sync/storage-url.ts", "../src/core/cache.ts", "../src/core/sites-core.ts", "../node_modules/zod/v4/core/core.js", "../node_modules/zod/v4/core/util.js", "../node_modules/zod/v4/core/errors.js", "../node_modules/zod/v4/core/parse.js", "../node_modules/zod/v4/core/regexes.js", "../node_modules/zod/v4/core/checks.js", "../node_modules/zod/v4/core/doc.js", "../node_modules/zod/v4/core/versions.js", "../node_modules/zod/v4/core/schemas.js", "../node_modules/zod/v4/locales/ar.js", "../node_modules/zod/v4/locales/az.js", "../node_modules/zod/v4/locales/be.js", "../node_modules/zod/v4/locales/bg.js", "../node_modules/zod/v4/locales/ca.js", "../node_modules/zod/v4/locales/cs.js", "../node_modules/zod/v4/locales/da.js", "../node_modules/zod/v4/locales/de.js", "../node_modules/zod/v4/locales/el.js", "../node_modules/zod/v4/locales/en.js", "../node_modules/zod/v4/locales/eo.js", "../node_modules/zod/v4/locales/es.js", "../node_modules/zod/v4/locales/fa.js", "../node_modules/zod/v4/locales/fi.js", "../node_modules/zod/v4/locales/fr.js", "../node_modules/zod/v4/locales/fr-CA.js", "../node_modules/zod/v4/locales/he.js", "../node_modules/zod/v4/locales/hr.js", "../node_modules/zod/v4/locales/hu.js", "../node_modules/zod/v4/locales/hy.js", "../node_modules/zod/v4/locales/id.js", "../node_modules/zod/v4/locales/is.js", "../node_modules/zod/v4/locales/it.js", "../node_modules/zod/v4/locales/ja.js", "../node_modules/zod/v4/locales/ka.js", "../node_modules/zod/v4/locales/km.js", "../node_modules/zod/v4/locales/kh.js", "../node_modules/zod/v4/locales/ko.js", "../node_modules/zod/v4/locales/lt.js", "../node_modules/zod/v4/locales/mk.js", "../node_modules/zod/v4/locales/ms.js", "../node_modules/zod/v4/locales/nl.js", "../node_modules/zod/v4/locales/no.js", "../node_modules/zod/v4/locales/ota.js", "../node_modules/zod/v4/locales/ps.js", "../node_modules/zod/v4/locales/pl.js", "../node_modules/zod/v4/locales/pt.js", "../node_modules/zod/v4/locales/ro.js", "../node_modules/zod/v4/locales/ru.js", "../node_modules/zod/v4/locales/sl.js", "../node_modules/zod/v4/locales/sv.js", "../node_modules/zod/v4/locales/ta.js", "../node_modules/zod/v4/locales/th.js", "../node_modules/zod/v4/locales/tr.js", "../node_modules/zod/v4/locales/uk.js", "../node_modules/zod/v4/locales/ua.js", "../node_modules/zod/v4/locales/ur.js", "../node_modules/zod/v4/locales/uz.js", "../node_modules/zod/v4/locales/vi.js", "../node_modules/zod/v4/locales/zh-CN.js", "../node_modules/zod/v4/locales/zh-TW.js", "../node_modules/zod/v4/locales/yo.js", "../node_modules/zod/v4/locales/index.js", "../node_modules/zod/v4/core/registries.js", "../node_modules/zod/v4/core/api.js", "../node_modules/zod/v4/core/to-json-schema.js", "../node_modules/zod/v4/core/json-schema-processors.js", "../node_modules/zod/v4/core/json-schema-generator.js", "../node_modules/zod/v4/core/index.js", "../node_modules/zod/v4/classic/checks.js", "../node_modules/zod/v4/classic/iso.js", "../node_modules/zod/v4/classic/errors.js", "../node_modules/zod/v4/classic/parse.js", "../node_modules/zod/v4/classic/schemas.js", "../node_modules/zod/v4/classic/compat.js", "../node_modules/zod/v4/classic/from-json-schema.js", "../node_modules/zod/v4/classic/coerce.js", "../node_modules/zod/v4/classic/external.js", "../node_modules/zod/index.js", "../src/core/sync/protocol.ts", "../src/core/sync/client.ts", "../src/core/sync/publisher-lease.ts", "../src/core/sync/e2ee.ts", "../src/core/sync/storage.ts", "../src/core/sync/peers.ts", "../src/core/sync/token.ts", "../src/core/config.ts", "../src/core/blobs.ts", "../src/core/sites.ts", "../node_modules/aws4fetch/dist/aws4fetch.esm.mjs", "../src/core/sync/storage-s3-bun.ts", "../src/core/sync/sites-routes.ts", "../src/core/sync/pairing.ts", "../src/core/sync/peers-routes.ts", "../src/core/sync/blob-routes.ts", "../src/core/sync/routes.ts", "../src/core/sync/sites-serve.ts", "../src/core/shares.ts", "../src/core/md/grammar.ts", "../src/core/md/inline.ts", "../src/core/md/heal.ts", "../src/core/sync/share-render.ts", "../src/core/sync/share-serve.ts", "../src/core/index.ts", "../src/core/db.ts", "../src/core/schema.ts", "../src/core/schema-init.ts", "../src/core/context.ts", "../src/core/search.ts", "../src/core/sync/server.ts", "../src/core/sync/openapi.ts", "../src/core/sync/auth.ts", "../src/webui/server/assets.ts", "../src/webui/server/icons.ts", "../src/webui/fmt/manifest.ts", "../src/webui/server/routes.ts", "../src/core/history.ts", "../src/webui/server/share-routes.ts", "../src/core/sync/share-actions.ts", "../src/core/sync/share-export.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * Machine-readable error taxonomy — the contract between core and its callers.\n *\n * Agents and scripts dispatch on `code`, never on message text (messages may\n * be reworded freely). The CLI maps codes to exit codes (src/cli/output.ts)\n * and the HTTP layer maps them to status codes (src/webui/server/routes.ts),\n * so adding a code here is enough for both surfaces to pick it up.\n */\nexport type MhErrorCode =\n /** Bad arguments / refusing a request as stated (HTTP 400, exit 2). */\n | \"invalid_input\"\n /** Referenced entity does not exist (HTTP 404, exit 3). */\n | \"not_found\"\n /** A ref matched more than one entity — disambiguate and retry (exit 4). */\n | \"ambiguous\"\n /** Optimistic-concurrency failure: re-read, then retry (HTTP 409, exit 5). */\n | \"stale\"\n /** State conflict, e.g. a name that already exists (HTTP 409, exit 5). */\n | \"conflict\"\n /** Missing/invalid credentials (HTTP 401, exit 6). */\n | \"auth\"\n /** A remote peer was unreachable or replied non-OK — retryable (exit 7). */\n | \"network\"\n /** The requested listen port is taken (exit 98, historical). */\n | \"port_in_use\";\n\nexport class MhError extends Error {\n constructor(\n readonly code: MhErrorCode,\n message: string,\n ) {\n super(message);\n this.name = \"MhError\";\n }\n}\n\n/** The error's code, for errors that carry one (anything else → undefined). */\nexport function errorCode(e: unknown): MhErrorCode | undefined {\n return e instanceof MhError ? e.code : undefined;\n}\n",
6
6
  "import { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nexport function metahubHome(): string {\n return process.env.METAHUB_HOME ?? join(homedir(), \".metahub\");\n}\n\nexport function dbPath(): string {\n return join(metahubHome(), \"metahub.db\");\n}\n\nexport function cacheDir(): string {\n return join(metahubHome(), \"cache\");\n}\n",
@@ -8,14 +8,14 @@
8
8
  "import type { DbDriver } from \"./driver.ts\";\nimport { randomSuffix } from \"./ids.ts\";\n\n/** Stable per-machine node id, persisted in the meta table. */\nexport function getNodeId(db: DbDriver): string {\n const row = db\n .query(\"SELECT value FROM meta WHERE key = 'node_id'\")\n .get() as { value: string } | null;\n if (row) return row.value;\n const id = randomSuffix(8);\n db.query(\"INSERT INTO meta (key, value) VALUES ('node_id', ?)\").run(id);\n return id;\n}\n",
9
9
  "import type { DbDriver } from \"./driver.ts\";\n\n// Hybrid Logical Clock. String form `<millis:15>-<counter:hex4>-<node>` so that\n// lexicographic order == causal/total order (ASCII, fixed-width numeric parts).\n\nexport interface Hlc {\n millis: number;\n counter: number;\n node: string;\n}\n\nexport function formatHlc(h: Hlc): string {\n return `${String(h.millis).padStart(15, \"0\")}-${h.counter\n .toString(16)\n .padStart(4, \"0\")}-${h.node}`;\n}\n\nexport function parseHlc(s: string): Hlc {\n const i1 = s.indexOf(\"-\");\n const i2 = s.indexOf(\"-\", i1 + 1);\n return {\n millis: Number(s.slice(0, i1)),\n counter: parseInt(s.slice(i1 + 1, i2), 16),\n node: s.slice(i2 + 1),\n };\n}\n\nfunction readLast(db: DbDriver, node: string): Hlc {\n const row = db.query(\"SELECT value FROM meta WHERE key = 'hlc'\").get() as\n | { value: string }\n | null;\n return row ? parseHlc(row.value) : { millis: 0, counter: 0, node };\n}\n\nfunction writeLast(db: DbDriver, h: Hlc): void {\n db.query(\n \"INSERT INTO meta (key, value) VALUES ('hlc', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value\",\n ).run(formatHlc(h));\n}\n\n/** Issue a new timestamp for a local event, advancing the persisted clock. */\nexport function nextHlc(db: DbDriver, node: string, now = Date.now()): string {\n const last = readLast(db, node);\n const millis = Math.max(last.millis, now);\n const counter = millis === last.millis ? last.counter + 1 : 0;\n const h: Hlc = { millis, counter, node };\n writeLast(db, h);\n return formatHlc(h);\n}\n\n/** Advance the local clock to account for an observed remote timestamp. */\nexport function observeHlc(\n db: DbDriver,\n node: string,\n remote: string,\n now = Date.now(),\n): void {\n const last = readLast(db, node);\n const r = parseHlc(remote);\n const millis = Math.max(last.millis, r.millis, now);\n let counter: number;\n if (millis === last.millis && millis === r.millis)\n counter = Math.max(last.counter, r.counter) + 1;\n else if (millis === last.millis) counter = last.counter + 1;\n else if (millis === r.millis) counter = r.counter + 1;\n else counter = 0;\n writeLast(db, { millis, counter, node });\n}\n",
10
10
  "// Pure markdown <-> block conversion and diffing. A document body is a sequence\n// of blocks separated by blank lines; fenced code blocks (``` / ~~~) are kept\n// whole so their internal blank lines don't split them. No DB dependency.\n\n/**\n * A document block plus the blank lines the user left after it. `blankAfter` is\n * the count *beyond* the standard single-blank-line separator (so a normal\n * paragraph break is 0); for the last block it's the trailing blank-line run.\n * This is what lets deliberate vertical spacing survive a save/reload without\n * representing blank lines as zero-content blocks (which would churn the\n * text-keyed reconcile). See [[blocks]] doc-block model.\n */\nexport interface DocBlock {\n text: string;\n blankAfter: number;\n}\n\n/**\n * Split markdown into doc blocks, preserving blank-line runs as `blankAfter`.\n * Leading blank lines (before the first block) are dropped; one blank line\n * between two blocks is the standard separator, every extra blank line is kept.\n */\nexport function parseDocBlocks(md: string): DocBlock[] {\n if (!md) return [];\n const lines = md.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\");\n const blocks: DocBlock[] = [];\n let cur: string[] = [];\n let fenceChar: \"`\" | \"~\" | null = null;\n let fenceLen = 0;\n\n const closeBlock = () => {\n if (cur.length) {\n blocks.push({ text: cur.join(\"\\n\"), blankAfter: 0 });\n cur = [];\n }\n };\n const onBlank = () => {\n closeBlock();\n // Count toward the preceding block; a blank line before any block (leading\n // whitespace) has nowhere to attach and is dropped.\n if (blocks.length) blocks[blocks.length - 1]!.blankAfter++;\n };\n\n for (const raw of lines) {\n if (fenceChar) {\n cur.push(raw);\n const m = raw.match(/^\\s*(`{3,}|~{3,})\\s*$/);\n if (m && m[1]![0] === fenceChar && m[1]!.length >= fenceLen) {\n closeBlock();\n fenceChar = null;\n fenceLen = 0;\n }\n continue;\n }\n const open = raw.match(/^\\s*(`{3,}|~{3,})/);\n if (open) {\n closeBlock();\n fenceChar = open[1]![0] as \"`\" | \"~\";\n fenceLen = open[1]!.length;\n cur.push(raw);\n } else if (raw.trim() === \"\") {\n onBlank();\n } else {\n cur.push(raw);\n }\n }\n closeBlock(); // trailing paragraph or unterminated fence\n\n // Convert raw blank-line counts to \"extra beyond the standard separator\". The\n // last block keeps its raw count (trailing blanks have no following separator).\n for (let i = 0; i < blocks.length - 1; i++)\n blocks[i]!.blankAfter = Math.max(0, blocks[i]!.blankAfter - 1);\n return blocks;\n}\n\n/** Serialize doc blocks back to a body, re-emitting kept blank-line runs. */\nexport function serializeDocBlocks(\n blocks: readonly { text: string | null; blankAfter?: number }[],\n): string {\n const live = blocks.filter((b): b is { text: string; blankAfter?: number } => !!b.text && b.text.length > 0);\n const out: string[] = [];\n live.forEach((b, i) => {\n out.push(...b.text.split(\"\\n\"));\n const extra = Math.max(0, b.blankAfter ?? 0);\n if (i < live.length - 1) out.push(\"\"); // standard single-blank-line separator\n for (let k = 0; k < extra; k++) out.push(\"\");\n });\n return out.join(\"\\n\");\n}\n\nexport type ReconcileItem = { keep: number } | { insert: string };\nexport interface ReconcilePlan {\n /** The new block sequence, each item either reusing an old block or inserting text. */\n items: ReconcileItem[];\n /** Old block indices that are no longer present. */\n deleted: number[];\n}\n\n/**\n * Align a new sequence of block texts against the old one. Unchanged blocks\n * (exact text match, in order — the LCS) are kept by index so their identity and\n * order survive; everything else in a gap is a delete (old) or insert (new).\n */\nexport function reconcile(oldTexts: string[], newTexts: string[]): ReconcilePlan {\n const keep = lcs(oldTexts, newTexts);\n const keptOld = new Set(keep.map((p) => p[0]));\n const newToOld = new Map(keep.map((p) => [p[1], p[0]]));\n\n const items: ReconcileItem[] = newTexts.map((text, ni) =>\n newToOld.has(ni) ? { keep: newToOld.get(ni)! } : { insert: text },\n );\n const deleted: number[] = [];\n for (let oi = 0; oi < oldTexts.length; oi++)\n if (!keptOld.has(oi)) deleted.push(oi);\n\n return { items, deleted };\n}\n\n/** Longest common subsequence as aligned (oldIndex, newIndex) pairs. */\nfunction lcs(a: string[], b: string[]): [number, number][] {\n const m = a.length;\n const n = b.length;\n const dp: number[][] = Array.from({ length: m + 1 }, () =>\n new Array<number>(n + 1).fill(0),\n );\n for (let i = m - 1; i >= 0; i--)\n for (let j = n - 1; j >= 0; j--)\n dp[i]![j] =\n a[i] === b[j]\n ? dp[i + 1]![j + 1]! + 1\n : Math.max(dp[i + 1]![j]!, dp[i]![j + 1]!);\n\n const pairs: [number, number][] = [];\n let i = 0;\n let j = 0;\n while (i < m && j < n) {\n if (a[i] === b[j]) {\n pairs.push([i, j]);\n i++;\n j++;\n } else if (dp[i + 1]![j]! >= dp[i]![j + 1]!) {\n i++;\n } else {\n j++;\n }\n }\n return pairs;\n}\n",
11
- "import type { DbDriver } from \"./driver.ts\";\nimport { getNodeId } from \"./node.ts\";\nimport { nextHlc, observeHlc } from \"./hlc.ts\";\nimport { serializeDocBlocks } from \"./blocks.ts\";\nimport { randomSuffix } from \"./ids.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\n// A single field assignment — the unit of replication. `value` is JSON-encoded\n// (or null). `dataset`/`row_id`/`col` identify the CRDT register. `txn` groups\n// the changes of one logical mutation (one save / one API call) so history can\n// render them as a single revision; it replicates but plays no role in LWW.\nexport interface Change {\n hlc: string;\n node_id: string;\n dataset: string;\n row_id: string;\n col: string;\n value: string | null;\n txn?: string | null;\n}\n\n/** Oplog SELECT list, locked to the Change interface (also reused by history). */\nexport const CHANGE_COLS = [\"hlc\", \"node_id\", \"dataset\", \"row_id\", \"col\", \"value\", \"txn\"] as const;\nconst _changeCols: ColumnsOf<Change, typeof CHANGE_COLS> = CHANGE_COLS;\nexport const CHANGE_SELECT = CHANGE_COLS.join(\", \");\n\n// Current change group. Core mutations are synchronous and single-threaded, so\n// a module-level slot (set around each public mutator via grouped()) is enough.\nlet currentTxn: string | null = null;\n\n// Optional node-id override for the next emits, same single-threaded-mutator\n// assumption as currentTxn above. Used by edit-share write handlers so a write\n// made through a public share is attributed to that share's synthetic \"guest\"\n// node (see core/shares.ts, sync/share-serve.ts) instead of this host node —\n// the edit then replicates to the owner's devices as a distinct author.\nlet currentNodeOverride: string | null = null;\n\n/**\n * Run `fn` with every emit stamped with `node` as its node_id (and HLC node\n * segment) instead of the host node. INVARIANT: relies on core mutators being\n * synchronous (set/clear around one synchronous call) — do not make the wrapped\n * mutators async or the slot can leak across requests.\n */\nexport function withNodeId<T>(node: string | null, fn: () => T): T {\n const prev = currentNodeOverride;\n currentNodeOverride = node;\n try {\n return fn();\n } finally {\n currentNodeOverride = prev;\n }\n}\n\n/**\n * Run `fn` with all emits stamped with one shared txn id. Nested calls keep the\n * outermost group (a revert that calls updateDocument is ONE revision). `label`\n * prefixes the id (\"repair:\", \"revert:\") so history can classify the source.\n */\nexport function withChangeGroup<T>(label: string | null, fn: () => T): T {\n if (currentTxn !== null) return fn();\n currentTxn = (label ? label + \":\" : \"\") + randomSuffix(8);\n try {\n return fn();\n } finally {\n currentTxn = null;\n }\n}\n\n/** Wrap a mutator so its body runs inside one change group. */\nexport function grouped<A extends unknown[], R>(\n fn: (...args: A) => R,\n label: string | null = null,\n): (...args: A) => R {\n return (...args) => withChangeGroup(label, () => fn(...args));\n}\n\n// Domain tables addressable by id, with their write-allowed columns. `col` is\n// interpolated into SQL, so it MUST be validated against these allowlists\n// (changes can arrive from untrusted sync peers).\nconst DOMAIN: Record<string, { table: string; cols: Set<string> }> = {\n databases: {\n table: \"databases\",\n cols: new Set([\"name\", \"icon\", \"created_hlc\", \"__deleted\"]),\n },\n properties: {\n table: \"properties\",\n cols: new Set([\"database_id\", \"name\", \"type\", \"config\", \"position\", \"__deleted\"]),\n },\n documents: {\n table: \"documents\",\n cols: new Set([\"title\", \"body\", \"database_id\", \"parent_id\", \"created_hlc\", \"order_key\", \"__deleted\"]),\n },\n doc_blocks: {\n table: \"doc_blocks\",\n cols: new Set([\"doc_id\", \"text\", \"order_key\", \"blank_after\", \"__deleted\"]),\n },\n sites: {\n table: \"sites\",\n cols: new Set([\"name\", \"title\", \"created_hlc\", \"__deleted\"]),\n },\n site_files: {\n table: \"site_files\",\n cols: new Set([\n \"site_id\",\n \"path\",\n \"content_type\",\n \"encoding\",\n \"content\",\n \"created_hlc\",\n \"__deleted\",\n ]),\n },\n // blob_policy designates the durable full-blob device(s); it replicates so\n // every node agrees on the anchor. blob_cache (incl. the local `pending` gate\n // that governs clearing) is node-local and deliberately absent — clearing is\n // decided purely locally, never synced. (The old synced blob_presence is gone.)\n blob_policy: {\n table: \"blob_policy\",\n cols: new Set([\"full_nodes\", \"redundancy\", \"__deleted\"]),\n },\n};\n\n// The `records` dataset is special: these cols hit the `records` table, any\n// other col is a property cell (col == property id) folded into records.data JSON.\nconst RECORD_META = new Set([\"database_id\", \"created_hlc\", \"order_key\", \"__deleted\"]);\n\ntype SqlValue = string | number | null;\n\nfunction encodeScalar(val: unknown): SqlValue {\n if (val === null || val === undefined) return null;\n if (typeof val === \"boolean\") return val ? 1 : 0;\n if (typeof val === \"number\") return val;\n if (typeof val === \"string\") return val;\n return JSON.stringify(val);\n}\n\nfunction ensureRow(db: DbDriver, table: string, id: string): void {\n db.query(`INSERT OR IGNORE INTO ${table} (id) VALUES (?)`).run(id);\n}\n\n/** A doc is \"block-managed\" once it has any block row; blocks then own its body. */\nfunction isBlockManaged(db: DbDriver, docId: string): boolean {\n return (\n db.query(\"SELECT 1 AS x FROM doc_blocks WHERE doc_id = ? LIMIT 1\").get(docId) !=\n null\n );\n}\n\n/** Rebuild a document's materialized body from its live blocks (ordered). */\nfunction recomputeDocBody(db: DbDriver, docId: string): void {\n const rows = db\n .query(\n \"SELECT text, blank_after FROM doc_blocks WHERE doc_id = ? AND __deleted = 0 ORDER BY order_key, id\",\n )\n .all(docId) as { text: string | null; blank_after: number | null }[];\n ensureRow(db, \"documents\", docId);\n db.query(\"UPDATE documents SET body = ? WHERE id = ?\").run(\n serializeDocBlocks(rows.map((r) => ({ text: r.text, blankAfter: r.blank_after ?? 0 }))),\n docId,\n );\n}\n\nfunction materialize(\n db: DbDriver,\n dataset: string,\n rowId: string,\n col: string,\n valueJson: string | null,\n): void {\n if (dataset === \"records\") {\n if (RECORD_META.has(col)) {\n ensureRow(db, \"records\", rowId);\n const v = valueJson === null ? null : JSON.parse(valueJson);\n db.query(`UPDATE records SET \"${col}\" = ? WHERE id = ?`).run(\n encodeScalar(v),\n rowId,\n );\n } else {\n // Property cell -> a key in the record's JSON `data`. ensureRow first:\n // a cell write can arrive before database_id (out-of-order sync).\n ensureRow(db, \"records\", rowId);\n if (valueJson === null) {\n db.query(\n `UPDATE records SET data = json_remove(data, '$.\"' || ? || '\"') WHERE id = ?`,\n ).run(col, rowId);\n } else {\n // json(?) embeds the value with its real JSON type (number/array/object),\n // not as a quoted string.\n db.query(\n `UPDATE records SET data = json_set(coalesce(data, '{}'), '$.\"' || ? || '\"', json(?)) WHERE id = ?`,\n ).run(col, valueJson, rowId);\n }\n }\n return;\n }\n\n const d = DOMAIN[dataset];\n if (!d || !d.cols.has(col)) return; // unknown dataset/column -> ignore (forward-compat)\n\n // Legacy documents.body register is ignored once the doc is block-managed:\n // blocks are authoritative and recompute the body cache themselves.\n if (dataset === \"documents\" && col === \"body\" && isBlockManaged(db, rowId)) return;\n\n ensureRow(db, d.table, rowId);\n const v = valueJson === null ? null : JSON.parse(valueJson);\n db.query(`UPDATE ${d.table} SET \"${col}\" = ? WHERE id = ?`).run(\n encodeScalar(v),\n rowId,\n );\n\n // A block change re-derives its document's body cache. doc_id may not have\n // materialized yet (out-of-order sync) — the later doc_id write recomputes.\n if (dataset === \"doc_blocks\") {\n const blk = db\n .query(\"SELECT doc_id FROM doc_blocks WHERE id = ?\")\n .get(rowId) as { doc_id: string | null } | null;\n if (blk?.doc_id) recomputeDocBody(db, blk.doc_id);\n }\n}\n\n/** Outcome of applying one change to the oplog. `inserted` reports whether the\n * oplog actually gained a NEW row (false when we already had this exact change —\n * the INSERT OR IGNORE was a no-op); it is the honest \"did we receive new data\"\n * signal, distinct from `winner` (whether this change now wins its register and\n * was materialized). Re-applying a change we already hold still returns\n * `winner:true` if it's the current max-HLC, so callers that want progress (not\n * re-materialization) must key off `inserted`. */\nexport interface ApplyResult {\n inserted: boolean;\n winner: boolean;\n}\n\n/**\n * Record a change in the oplog (idempotent) and, if it is the latest write for\n * its register, materialize it. Order-independent: convergence holds regardless\n * of the order changes are applied, because the winner is recomputed as the max\n * HLC over the full oplog for that register.\n */\nexport function applyChange(db: DbDriver, c: Change): ApplyResult {\n const inserted =\n db\n .query(\n \"INSERT OR IGNORE INTO crdt_changes (hlc, node_id, dataset, row_id, col, value, txn) VALUES (?, ?, ?, ?, ?, ?, ?)\",\n )\n .run(c.hlc, c.node_id, c.dataset, c.row_id, c.col, c.value, c.txn ?? null).changes > 0;\n\n const cur = db\n .query(\n \"SELECT MAX(hlc) AS h FROM crdt_changes WHERE dataset = ? AND row_id = ? AND col = ?\",\n )\n .get(c.dataset, c.row_id, c.col) as { h: string | null };\n\n if (cur.h !== c.hlc) return { inserted, winner: false }; // a newer write already wins\n materialize(db, c.dataset, c.row_id, c.col, c.value);\n return { inserted, winner: true };\n}\n\n/** Apply a local write: assign a fresh HLC, append to oplog, materialize. */\nexport function emit(\n db: DbDriver,\n dataset: string,\n rowId: string,\n col: string,\n value: unknown,\n): Change {\n const node = currentNodeOverride ?? getNodeId(db);\n const change: Change = {\n hlc: nextHlc(db, node),\n node_id: node,\n dataset,\n row_id: rowId,\n col,\n value: value === undefined ? null : JSON.stringify(value),\n txn: currentTxn,\n };\n applyChange(db, change);\n return change;\n}\n\n/** Apply multiple local field writes to the same row. */\nexport function emitFields(\n db: DbDriver,\n dataset: string,\n rowId: string,\n fields: Record<string, unknown>,\n): Change[] {\n const out: Change[] = [];\n for (const [col, value] of Object.entries(fields)) {\n out.push(emit(db, dataset, rowId, col, value));\n }\n return out;\n}\n\n/** Apply remote changes from a sync peer (advances clock, then merges). Returns\n * the number of changes that were NEW to our oplog (rows actually inserted) —\n * the honest \"received\" count. Re-ingesting data we already hold returns 0, so\n * this is a reliable progress signal for the auto-sync backoff (a round that\n * only re-reads known data must not count as activity). */\nexport function ingest(db: DbDriver, changes: Change[]): number {\n const node = getNodeId(db);\n let received = 0;\n const tx = db.transaction((cs: Change[]) => {\n for (const c of cs) {\n observeHlc(db, node, c.hlc);\n if (applyChange(db, c).inserted) received++;\n }\n });\n tx(changes);\n return received;\n}\n\n/** All oplog changes with HLC strictly greater than `since` (test/debug helper). */\nexport function changesSince(db: DbDriver, since: string): Change[] {\n return db\n .query(`SELECT ${CHANGE_SELECT} FROM crdt_changes WHERE hlc > ? ORDER BY hlc`)\n .all(since) as Change[];\n}\n\nexport interface ChangeBatch {\n changes: Change[];\n cursor: number;\n}\n\nexport interface ChangesAfterOpts {\n /** Max rows to return — pagination for large pulls (initial hydration). */\n limit?: number;\n /** Datasets to omit (partial replicas, e.g. a phone skipping site_files). */\n excludeDatasets?: string[];\n /**\n * Return only changes this node produced itself. Storage-sync (see\n * sync/storage.ts) publishes each node's own ops under its own bucket prefix,\n * so it must not re-upload ops it merely ingested from peers. The cursor still\n * advances over the filtered-out rows (high-water on exhaustion), so ingested\n * ops are skipped once, not rescanned every round.\n */\n onlyNode?: string;\n}\n\n/**\n * Changes inserted after `seq` (a local rowid), in insertion order, plus the\n * new high-water cursor. Used for replication: insertion order never skips a\n * change even when clocks are skewed.\n *\n * With `limit`, the cursor stops at the last returned row so the next pull\n * resumes there; when the scan is exhausted (fewer rows than the limit, or no\n * limit) the cursor jumps to the table's high-water rowid so excluded-dataset\n * tails aren't rescanned every round.\n */\nexport function changesAfterSeq(\n db: DbDriver,\n seq: number,\n opts: ChangesAfterOpts = {},\n): ChangeBatch {\n const exclude = opts.excludeDatasets ?? [];\n const clauses = [\"rowid > ?\"];\n const params: (string | number)[] = [seq];\n if (exclude.length) {\n clauses.push(`dataset NOT IN (${exclude.map(() => \"?\").join(\", \")})`);\n params.push(...exclude);\n }\n if (opts.onlyNode != null) {\n clauses.push(\"node_id = ?\");\n params.push(opts.onlyNode);\n }\n const where = clauses.join(\" AND \");\n const limitSql = opts.limit != null && opts.limit > 0 ? ` LIMIT ${Math.floor(opts.limit)}` : \"\";\n const rows = db\n .query(\n `SELECT rowid AS seq, ${CHANGE_SELECT} FROM crdt_changes WHERE ${where} ORDER BY rowid${limitSql}`,\n )\n .all(...params) as (Change & { seq: number })[];\n\n const exhausted = opts.limit == null || opts.limit <= 0 || rows.length < opts.limit;\n let cursor: number;\n if (exhausted) {\n // High-water on exhaustion. crdt_changes.seq is an AUTOINCREMENT PK (rowid\n // alias), stable across VACUUM and never reused, so MAX(rowid) no longer\n // drops below a cursor a client already holds — the Math.max is now just a\n // defensive floor (was load-bearing before the seq migration, see\n // migrateCrdtChangesSeq).\n const top = db.query(\"SELECT MAX(rowid) AS m FROM crdt_changes\").get() as { m: number | null };\n cursor = Math.max(seq, top.m ?? seq);\n } else {\n cursor = rows[rows.length - 1]!.seq;\n }\n return { changes: rows.map(({ seq: _seq, ...c }) => c), cursor };\n}\n",
11
+ "import type { DbDriver } from \"./driver.ts\";\nimport { getNodeId } from \"./node.ts\";\nimport { nextHlc, observeHlc } from \"./hlc.ts\";\nimport { serializeDocBlocks } from \"./blocks.ts\";\nimport { randomSuffix } from \"./ids.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\n// A single field assignment — the unit of replication. `value` is JSON-encoded\n// (or null). `dataset`/`row_id`/`col` identify the CRDT register. `txn` groups\n// the changes of one logical mutation (one save / one API call) so history can\n// render them as a single revision; it replicates but plays no role in LWW.\nexport interface Change {\n hlc: string;\n node_id: string;\n dataset: string;\n row_id: string;\n col: string;\n value: string | null;\n txn?: string | null;\n}\n\n/** Oplog SELECT list, locked to the Change interface (also reused by history). */\nexport const CHANGE_COLS = [\"hlc\", \"node_id\", \"dataset\", \"row_id\", \"col\", \"value\", \"txn\"] as const;\nconst _changeCols: ColumnsOf<Change, typeof CHANGE_COLS> = CHANGE_COLS;\nexport const CHANGE_SELECT = CHANGE_COLS.join(\", \");\n\n// Current change group. Core mutations are synchronous and single-threaded, so\n// a module-level slot (set around each public mutator via grouped()) is enough.\nlet currentTxn: string | null = null;\n\n// Optional node-id override for the next emits, same single-threaded-mutator\n// assumption as currentTxn above. Used by edit-share write handlers so a write\n// made through a public share is attributed to that share's synthetic \"guest\"\n// node (see core/shares.ts, sync/share-serve.ts) instead of this host node —\n// the edit then replicates to the owner's devices as a distinct author.\nlet currentNodeOverride: string | null = null;\n\n/**\n * Run `fn` with every emit stamped with `node` as its node_id (and HLC node\n * segment) instead of the host node. INVARIANT: relies on core mutators being\n * synchronous (set/clear around one synchronous call) — do not make the wrapped\n * mutators async or the slot can leak across requests.\n */\nexport function withNodeId<T>(node: string | null, fn: () => T): T {\n const prev = currentNodeOverride;\n currentNodeOverride = node;\n try {\n return fn();\n } finally {\n currentNodeOverride = prev;\n }\n}\n\n/**\n * Run `fn` with all emits stamped with one shared txn id. Nested calls keep the\n * outermost group (a revert that calls updateDocument is ONE revision). `label`\n * prefixes the id (\"repair:\", \"revert:\") so history can classify the source.\n */\nexport function withChangeGroup<T>(label: string | null, fn: () => T): T {\n if (currentTxn !== null) return fn();\n currentTxn = (label ? label + \":\" : \"\") + randomSuffix(8);\n try {\n return fn();\n } finally {\n currentTxn = null;\n }\n}\n\n/** Wrap a mutator so its body runs inside one change group. */\nexport function grouped<A extends unknown[], R>(\n fn: (...args: A) => R,\n label: string | null = null,\n): (...args: A) => R {\n return (...args) => withChangeGroup(label, () => fn(...args));\n}\n\n// Domain tables addressable by id, with their write-allowed columns. `col` is\n// interpolated into SQL, so it MUST be validated against these allowlists\n// (changes can arrive from untrusted sync peers).\nconst DOMAIN: Record<string, { table: string; cols: Set<string> }> = {\n databases: {\n table: \"databases\",\n cols: new Set([\"name\", \"icon\", \"meta\", \"created_hlc\", \"__deleted\"]),\n },\n properties: {\n table: \"properties\",\n cols: new Set([\"database_id\", \"name\", \"type\", \"config\", \"position\", \"__deleted\"]),\n },\n documents: {\n table: \"documents\",\n cols: new Set([\"title\", \"body\", \"database_id\", \"parent_id\", \"created_hlc\", \"order_key\", \"__deleted\"]),\n },\n doc_blocks: {\n table: \"doc_blocks\",\n cols: new Set([\"doc_id\", \"text\", \"order_key\", \"blank_after\", \"__deleted\"]),\n },\n sites: {\n table: \"sites\",\n cols: new Set([\"name\", \"title\", \"created_hlc\", \"__deleted\"]),\n },\n site_files: {\n table: \"site_files\",\n cols: new Set([\n \"site_id\",\n \"path\",\n \"content_type\",\n \"encoding\",\n \"content\",\n \"created_hlc\",\n \"__deleted\",\n ]),\n },\n // blob_policy designates the durable full-blob device(s); it replicates so\n // every node agrees on the anchor. blob_cache (incl. the local `pending` gate\n // that governs clearing) is node-local and deliberately absent — clearing is\n // decided purely locally, never synced. (The old synced blob_presence is gone.)\n blob_policy: {\n table: \"blob_policy\",\n cols: new Set([\"full_nodes\", \"redundancy\", \"__deleted\"]),\n },\n};\n\n// The `records` dataset is special: these cols hit the `records` table, any\n// other col is a property cell (col == property id) folded into records.data JSON.\nconst RECORD_META = new Set([\"database_id\", \"created_hlc\", \"order_key\", \"__deleted\"]);\n\ntype SqlValue = string | number | null;\n\nfunction encodeScalar(val: unknown): SqlValue {\n if (val === null || val === undefined) return null;\n if (typeof val === \"boolean\") return val ? 1 : 0;\n if (typeof val === \"number\") return val;\n if (typeof val === \"string\") return val;\n return JSON.stringify(val);\n}\n\nfunction ensureRow(db: DbDriver, table: string, id: string): void {\n db.query(`INSERT OR IGNORE INTO ${table} (id) VALUES (?)`).run(id);\n}\n\n/** A doc is \"block-managed\" once it has any block row; blocks then own its body. */\nfunction isBlockManaged(db: DbDriver, docId: string): boolean {\n return (\n db.query(\"SELECT 1 AS x FROM doc_blocks WHERE doc_id = ? LIMIT 1\").get(docId) !=\n null\n );\n}\n\n/** Rebuild a document's materialized body from its live blocks (ordered). */\nfunction recomputeDocBody(db: DbDriver, docId: string): void {\n const rows = db\n .query(\n \"SELECT text, blank_after FROM doc_blocks WHERE doc_id = ? AND __deleted = 0 ORDER BY order_key, id\",\n )\n .all(docId) as { text: string | null; blank_after: number | null }[];\n ensureRow(db, \"documents\", docId);\n db.query(\"UPDATE documents SET body = ? WHERE id = ?\").run(\n serializeDocBlocks(rows.map((r) => ({ text: r.text, blankAfter: r.blank_after ?? 0 }))),\n docId,\n );\n}\n\nfunction materialize(\n db: DbDriver,\n dataset: string,\n rowId: string,\n col: string,\n valueJson: string | null,\n): void {\n if (dataset === \"records\") {\n if (RECORD_META.has(col)) {\n ensureRow(db, \"records\", rowId);\n const v = valueJson === null ? null : JSON.parse(valueJson);\n db.query(`UPDATE records SET \"${col}\" = ? WHERE id = ?`).run(\n encodeScalar(v),\n rowId,\n );\n } else {\n // Property cell -> a key in the record's JSON `data`. ensureRow first:\n // a cell write can arrive before database_id (out-of-order sync).\n ensureRow(db, \"records\", rowId);\n if (valueJson === null) {\n db.query(\n `UPDATE records SET data = json_remove(data, '$.\"' || ? || '\"') WHERE id = ?`,\n ).run(col, rowId);\n } else {\n // json(?) embeds the value with its real JSON type (number/array/object),\n // not as a quoted string.\n db.query(\n `UPDATE records SET data = json_set(coalesce(data, '{}'), '$.\"' || ? || '\"', json(?)) WHERE id = ?`,\n ).run(col, valueJson, rowId);\n }\n }\n return;\n }\n\n const d = DOMAIN[dataset];\n if (!d || !d.cols.has(col)) return; // unknown dataset/column -> ignore (forward-compat)\n\n // Legacy documents.body register is ignored once the doc is block-managed:\n // blocks are authoritative and recompute the body cache themselves.\n if (dataset === \"documents\" && col === \"body\" && isBlockManaged(db, rowId)) return;\n\n ensureRow(db, d.table, rowId);\n const v = valueJson === null ? null : JSON.parse(valueJson);\n db.query(`UPDATE ${d.table} SET \"${col}\" = ? WHERE id = ?`).run(\n encodeScalar(v),\n rowId,\n );\n\n // A block change re-derives its document's body cache. doc_id may not have\n // materialized yet (out-of-order sync) — the later doc_id write recomputes.\n if (dataset === \"doc_blocks\") {\n const blk = db\n .query(\"SELECT doc_id FROM doc_blocks WHERE id = ?\")\n .get(rowId) as { doc_id: string | null } | null;\n if (blk?.doc_id) recomputeDocBody(db, blk.doc_id);\n }\n}\n\n/** Outcome of applying one change to the oplog. `inserted` reports whether the\n * oplog actually gained a NEW row (false when we already had this exact change —\n * the INSERT OR IGNORE was a no-op); it is the honest \"did we receive new data\"\n * signal, distinct from `winner` (whether this change now wins its register and\n * was materialized). Re-applying a change we already hold still returns\n * `winner:true` if it's the current max-HLC, so callers that want progress (not\n * re-materialization) must key off `inserted`. */\nexport interface ApplyResult {\n inserted: boolean;\n winner: boolean;\n}\n\n/**\n * Record a change in the oplog (idempotent) and, if it is the latest write for\n * its register, materialize it. Order-independent: convergence holds regardless\n * of the order changes are applied, because the winner is recomputed as the max\n * HLC over the full oplog for that register.\n */\nexport function applyChange(db: DbDriver, c: Change): ApplyResult {\n const inserted =\n db\n .query(\n \"INSERT OR IGNORE INTO crdt_changes (hlc, node_id, dataset, row_id, col, value, txn) VALUES (?, ?, ?, ?, ?, ?, ?)\",\n )\n .run(c.hlc, c.node_id, c.dataset, c.row_id, c.col, c.value, c.txn ?? null).changes > 0;\n\n const cur = db\n .query(\n \"SELECT MAX(hlc) AS h FROM crdt_changes WHERE dataset = ? AND row_id = ? AND col = ?\",\n )\n .get(c.dataset, c.row_id, c.col) as { h: string | null };\n\n if (cur.h !== c.hlc) return { inserted, winner: false }; // a newer write already wins\n materialize(db, c.dataset, c.row_id, c.col, c.value);\n return { inserted, winner: true };\n}\n\n/** Apply a local write: assign a fresh HLC, append to oplog, materialize. */\nexport function emit(\n db: DbDriver,\n dataset: string,\n rowId: string,\n col: string,\n value: unknown,\n): Change {\n const node = currentNodeOverride ?? getNodeId(db);\n const change: Change = {\n hlc: nextHlc(db, node),\n node_id: node,\n dataset,\n row_id: rowId,\n col,\n value: value === undefined ? null : JSON.stringify(value),\n txn: currentTxn,\n };\n applyChange(db, change);\n return change;\n}\n\n/** Apply multiple local field writes to the same row. */\nexport function emitFields(\n db: DbDriver,\n dataset: string,\n rowId: string,\n fields: Record<string, unknown>,\n): Change[] {\n const out: Change[] = [];\n for (const [col, value] of Object.entries(fields)) {\n out.push(emit(db, dataset, rowId, col, value));\n }\n return out;\n}\n\n/** Apply remote changes from a sync peer (advances clock, then merges). Returns\n * the number of changes that were NEW to our oplog (rows actually inserted) —\n * the honest \"received\" count. Re-ingesting data we already hold returns 0, so\n * this is a reliable progress signal for the auto-sync backoff (a round that\n * only re-reads known data must not count as activity). */\nexport function ingest(db: DbDriver, changes: Change[]): number {\n const node = getNodeId(db);\n let received = 0;\n const tx = db.transaction((cs: Change[]) => {\n for (const c of cs) {\n observeHlc(db, node, c.hlc);\n if (applyChange(db, c).inserted) received++;\n }\n });\n tx(changes);\n return received;\n}\n\n/** All oplog changes with HLC strictly greater than `since` (test/debug helper). */\nexport function changesSince(db: DbDriver, since: string): Change[] {\n return db\n .query(`SELECT ${CHANGE_SELECT} FROM crdt_changes WHERE hlc > ? ORDER BY hlc`)\n .all(since) as Change[];\n}\n\nexport interface ChangeBatch {\n changes: Change[];\n cursor: number;\n}\n\nexport interface ChangesAfterOpts {\n /** Max rows to return — pagination for large pulls (initial hydration). */\n limit?: number;\n /** Datasets to omit (partial replicas, e.g. a phone skipping site_files). */\n excludeDatasets?: string[];\n /**\n * Return only changes this node produced itself. Storage-sync (see\n * sync/storage.ts) publishes each node's own ops under its own bucket prefix,\n * so it must not re-upload ops it merely ingested from peers. The cursor still\n * advances over the filtered-out rows (high-water on exhaustion), so ingested\n * ops are skipped once, not rescanned every round.\n */\n onlyNode?: string;\n}\n\n/**\n * Changes inserted after `seq` (a local rowid), in insertion order, plus the\n * new high-water cursor. Used for replication: insertion order never skips a\n * change even when clocks are skewed.\n *\n * With `limit`, the cursor stops at the last returned row so the next pull\n * resumes there; when the scan is exhausted (fewer rows than the limit, or no\n * limit) the cursor jumps to the table's high-water rowid so excluded-dataset\n * tails aren't rescanned every round.\n */\nexport function changesAfterSeq(\n db: DbDriver,\n seq: number,\n opts: ChangesAfterOpts = {},\n): ChangeBatch {\n const exclude = opts.excludeDatasets ?? [];\n const clauses = [\"rowid > ?\"];\n const params: (string | number)[] = [seq];\n if (exclude.length) {\n clauses.push(`dataset NOT IN (${exclude.map(() => \"?\").join(\", \")})`);\n params.push(...exclude);\n }\n if (opts.onlyNode != null) {\n clauses.push(\"node_id = ?\");\n params.push(opts.onlyNode);\n }\n const where = clauses.join(\" AND \");\n const limitSql = opts.limit != null && opts.limit > 0 ? ` LIMIT ${Math.floor(opts.limit)}` : \"\";\n const rows = db\n .query(\n `SELECT rowid AS seq, ${CHANGE_SELECT} FROM crdt_changes WHERE ${where} ORDER BY rowid${limitSql}`,\n )\n .all(...params) as (Change & { seq: number })[];\n\n const exhausted = opts.limit == null || opts.limit <= 0 || rows.length < opts.limit;\n let cursor: number;\n if (exhausted) {\n // High-water on exhaustion. crdt_changes.seq is an AUTOINCREMENT PK (rowid\n // alias), stable across VACUUM and never reused, so MAX(rowid) no longer\n // drops below a cursor a client already holds — the Math.max is now just a\n // defensive floor (was load-bearing before the seq migration, see\n // migrateCrdtChangesSeq).\n const top = db.query(\"SELECT MAX(rowid) AS m FROM crdt_changes\").get() as { m: number | null };\n cursor = Math.max(seq, top.m ?? seq);\n } else {\n cursor = rows[rows.length - 1]!.seq;\n }\n return { changes: rows.map(({ seq: _seq, ...c }) => c), cursor };\n}\n",
12
12
  "import type { DbDriver } from \"./driver.ts\";\nimport type { PropertyRow } from \"./properties.ts\";\n\n// Records of all databases share one `records` table; indexes are partial on\n// database_id so they stay small and per-collection. A field is indexed only\n// when it's actually used to filter/sort AND the collection is large enough to\n// matter — small tables scan instantly and don't earn the write cost.\nconst AUTO_INDEX_ROW_THRESHOLD = 2000;\n\n/** SQLite identifiers we build are slug+suffix ids; keep only safe chars. */\nfunction sanitize(s: string): string {\n return s.replace(/[^a-zA-Z0-9_]/g, \"_\");\n}\n\n/** Escape a string for embedding as a single-quoted SQL literal. */\nfunction lit(s: string): string {\n return s.replace(/'/g, \"''\");\n}\n\nfunction indexName(databaseId: string, propId: string): string {\n return `idx_rec_${sanitize(databaseId)}_${sanitize(propId)}`;\n}\n\nexport function hasIndex(db: DbDriver, databaseId: string, propId: string): boolean {\n const row = db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE type = 'index' AND name = ?\")\n .get(indexName(databaseId, propId)) as { ok: number } | null;\n return row != null;\n}\n\n/**\n * Create an expression index on `data ->> '<propId>'` (with created_hlc as the\n * sort tail), partial on this database. Idempotent. The expression matches\n * exactly what listRecords emits, so the optimizer uses it.\n */\nexport function ensurePropIndex(db: DbDriver, databaseId: string, propId: string): void {\n const name = indexName(databaseId, propId);\n db.exec(\n `CREATE INDEX IF NOT EXISTS \"${name}\" ON records (data ->> '${lit(propId)}', created_hlc) ` +\n `WHERE database_id = '${lit(databaseId)}' AND __deleted = 0`,\n );\n}\n\n/**\n * Ensure an index for a field that a query filters/sorts on — but only when it\n * will pay off. relation fields are almost always query keys (cheap, index\n * eagerly); other fields wait until the collection crosses the row threshold.\n */\nexport function maybeAutoIndex(db: DbDriver, databaseId: string, prop: PropertyRow): void {\n if (hasIndex(db, databaseId, prop.id)) return;\n if (prop.type !== \"relation\") {\n const row = db\n .query(\n \"SELECT COUNT(*) AS c FROM records WHERE database_id = ? AND __deleted = 0\",\n )\n .get(databaseId) as { c: number };\n if (row.c < AUTO_INDEX_ROW_THRESHOLD) return;\n }\n ensurePropIndex(db, databaseId, prop.id);\n}\n",
13
13
  "import type { DbDriver } from \"./driver.ts\";\nimport { newId } from \"./ids.ts\";\nimport { emit, grouped } from \"./crdt.ts\";\nimport { getDatabase } from \"./databases.ts\";\nimport { ensurePropIndex } from \"./indexing.ts\";\nimport { MhError } from \"./errors.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\nexport type PropType =\n | \"text\"\n | \"number\"\n | \"checkbox\"\n | \"select\"\n | \"multi_select\"\n | \"date\"\n | \"relation\"\n | \"url\";\n\nexport const PROP_TYPES: ReadonlySet<string> = new Set([\n \"text\",\n \"number\",\n \"checkbox\",\n \"select\",\n \"multi_select\",\n \"date\",\n \"relation\",\n \"url\",\n]);\n\nexport interface PropertyConfig {\n options?: string[]; // select / multi_select\n database?: string; // relation target database id\n indexed?: boolean; // hot query key — materialize an index for this field\n width?: number; // table column width in px (UI metadata, replicated via config)\n}\n\nexport interface PropertyRow {\n id: string;\n database_id: string;\n name: string;\n type: PropType;\n config: PropertyConfig | null;\n position: number;\n}\n\n// SQL returns config as a JSON string; rows are parsed into PropertyRow after.\nexport const PROPERTY_COLS = [\"id\", \"database_id\", \"name\", \"type\", \"config\", \"position\"] as const;\nconst _propertyCols: ColumnsOf<PropertyRow, typeof PROPERTY_COLS> = PROPERTY_COLS;\nconst PROPERTY_SELECT = PROPERTY_COLS.join(\", \");\n\nfunction validateConfig(type: PropType, config: PropertyConfig | undefined): void {\n if (type === \"select\" || type === \"multi_select\") {\n const opts = config?.options;\n if (!Array.isArray(opts) || opts.length === 0 || !opts.every((o) => typeof o === \"string\"))\n throw new MhError(\"invalid_input\", `${type} requires config.options: string[]`);\n }\n if (type === \"relation\") {\n if (typeof config?.database !== \"string\")\n throw new MhError(\"invalid_input\", \"relation requires config.database (target database id)\");\n }\n}\n\nfunction nextPosition(db: DbDriver, databaseId: string): number {\n const row = db\n .query(\n \"SELECT MAX(position) AS m FROM properties WHERE database_id = ? AND __deleted = 0\",\n )\n .get(databaseId) as { m: number | null };\n return (row.m ?? 0) + 1;\n}\n\nexport const addProperty = grouped(function addProperty(\n db: DbDriver,\n databaseId: string,\n opts: {\n name: string;\n type: PropType;\n config?: PropertyConfig;\n position?: number;\n // Low-level hint for built-in features that know a field is a hot query\n // key (e.g. an IM conversation id). Not surfaced to CLI users — ad-hoc\n // fields get indexed automatically from query usage (see indexing.ts).\n indexed?: boolean;\n },\n): PropertyRow {\n if (!getDatabase(db, databaseId)) throw new MhError(\"not_found\", `no such database: ${databaseId}`);\n if (!PROP_TYPES.has(opts.type)) throw new MhError(\"invalid_input\", `unknown property type: ${opts.type}`);\n validateConfig(opts.type, opts.config);\n\n // Persist the indexed hint in config so it replicates to peers and survives\n // snapshot/restore (the index itself is derived, not in the oplog).\n const config: PropertyConfig | null = opts.indexed\n ? { ...(opts.config ?? {}), indexed: true }\n : (opts.config ?? null);\n\n const id = newId(\"prop\", opts.name);\n emit(db, \"properties\", id, \"database_id\", databaseId);\n emit(db, \"properties\", id, \"name\", opts.name);\n emit(db, \"properties\", id, \"type\", opts.type);\n emit(db, \"properties\", id, \"config\", config);\n emit(db, \"properties\", id, \"position\", opts.position ?? nextPosition(db, databaseId));\n\n // Relations are almost always query keys; index eagerly. Honor explicit hint.\n if (opts.type === \"relation\" || opts.indexed === true)\n ensurePropIndex(db, databaseId, id);\n return getProperty(db, id)!;\n});\n\nexport function getProperty(db: DbDriver, id: string): PropertyRow | null {\n const row = db\n .query(`SELECT ${PROPERTY_SELECT} FROM properties WHERE id = ? AND __deleted = 0`)\n .get(id) as (Omit<PropertyRow, \"config\"> & { config: string | null }) | null;\n if (!row) return null;\n return { ...row, config: row.config ? (JSON.parse(row.config) as PropertyConfig) : null };\n}\n\nexport function listProperties(db: DbDriver, databaseId: string): PropertyRow[] {\n const rows = db\n .query(\n `SELECT ${PROPERTY_SELECT} FROM properties WHERE database_id = ? AND __deleted = 0 ORDER BY position`,\n )\n .all(databaseId) as (Omit<PropertyRow, \"config\"> & { config: string | null })[];\n return rows.map((r) => ({\n ...r,\n config: r.config ? (JSON.parse(r.config) as PropertyConfig) : null,\n }));\n}\n\nexport const updateProperty = grouped(function updateProperty(\n db: DbDriver,\n id: string,\n fields: { name?: string; type?: PropType; config?: PropertyConfig; position?: number },\n): PropertyRow {\n const cur = getProperty(db, id);\n if (!cur) throw new MhError(\"not_found\", `no such property: ${id}`);\n\n const typeChanged = fields.type !== undefined && fields.type !== cur.type;\n if (fields.type !== undefined && !PROP_TYPES.has(fields.type))\n throw new MhError(\"invalid_input\", `unknown property type: ${fields.type}`);\n\n // Validate config against whichever type will be in effect.\n const effectiveType = fields.type ?? cur.type;\n if (fields.config !== undefined) validateConfig(effectiveType, fields.config);\n else if (typeChanged) validateConfig(fields.type!, undefined);\n\n if (fields.name !== undefined) emit(db, \"properties\", id, \"name\", fields.name);\n if (fields.type !== undefined) emit(db, \"properties\", id, \"type\", fields.type);\n if (fields.config !== undefined) emit(db, \"properties\", id, \"config\", fields.config);\n if (fields.position !== undefined) emit(db, \"properties\", id, \"position\", fields.position);\n\n // A type change invalidates existing cell values (a number may not be a valid\n // select option, etc.), so clear the cells that currently hold a value for\n // this property. The field is keyed by property id in the records data JSON.\n if (typeChanged) {\n const rows = db\n .query(\n \"SELECT id FROM records WHERE database_id = ? AND __deleted = 0 AND data ->> ? IS NOT NULL\",\n )\n .all(cur.database_id, id) as { id: string }[];\n for (const r of rows) emit(db, \"records\", r.id, id, null);\n }\n return getProperty(db, id)!;\n});\n\n// Persist a column's display width. Merges into the existing config server-side\n// so concurrent callers can't strip sibling fields (e.g. a select's `options`),\n// and clamps to a sane range. The width replicates with `config` via the oplog.\nexport function setPropertyWidth(db: DbDriver, id: string, width: number): PropertyRow {\n const cur = getProperty(db, id);\n if (!cur) throw new MhError(\"not_found\", `no such property: ${id}`);\n if (!Number.isFinite(width)) throw new MhError(\"invalid_input\", \"width must be a finite number\");\n const w = Math.max(80, Math.min(2000, Math.round(width)));\n return updateProperty(db, id, { config: { ...(cur.config ?? {}), width: w } });\n}\n\nexport const removeProperty = grouped(function removeProperty(db: DbDriver, id: string): boolean {\n const prop = getProperty(db, id);\n if (!prop) return false;\n emit(db, \"properties\", id, \"__deleted\", 1);\n // Clear this property's now-orphaned cells (keyed by property id in the records\n // data JSON) so no dead cell data lingers — same cleanup repairHub would do off\n // the property tombstone. emit(undefined) materializes to json_remove.\n const rows = db\n .query(\n \"SELECT id FROM records WHERE database_id = ? AND __deleted = 0 AND data ->> ? IS NOT NULL\",\n )\n .all(prop.database_id, id) as { id: string }[];\n for (const r of rows) emit(db, \"records\", r.id, id, undefined);\n return true;\n});\n",
14
- "import type { DbDriver } from \"./driver.ts\";\nimport { newId } from \"./ids.ts\";\nimport { emit, grouped } from \"./crdt.ts\";\nimport { MhError } from \"./errors.ts\";\nimport { addProperty, listProperties, type PropertyConfig } from \"./properties.ts\";\nimport { createRecord, listRecords } from \"./records.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\nexport interface DatabaseRow {\n id: string;\n name: string;\n icon: string | null;\n created_hlc: string;\n}\n\nexport const DATABASE_COLS = [\"id\", \"name\", \"icon\", \"created_hlc\"] as const;\nconst _databaseCols: ColumnsOf<DatabaseRow, typeof DATABASE_COLS> = DATABASE_COLS;\nconst DATABASE_SELECT = DATABASE_COLS.join(\", \");\n\nexport const createDatabase = grouped(function createDatabase(\n db: DbDriver,\n opts: { name: string; icon?: string },\n): DatabaseRow {\n const id = newId(\"db\", opts.name);\n const first = emit(db, \"databases\", id, \"name\", opts.name);\n emit(db, \"databases\", id, \"created_hlc\", first.hlc);\n if (opts.icon !== undefined) emit(db, \"databases\", id, \"icon\", opts.icon);\n return getDatabase(db, id)!;\n});\n\nexport const updateDatabase = grouped(function updateDatabase(\n db: DbDriver,\n id: string,\n fields: { name?: string; icon?: string | null },\n): DatabaseRow {\n if (!getDatabase(db, id)) throw new MhError(\"not_found\", `no such database: ${id}`);\n if (fields.name !== undefined) emit(db, \"databases\", id, \"name\", fields.name);\n if (fields.icon !== undefined) emit(db, \"databases\", id, \"icon\", fields.icon);\n return getDatabase(db, id)!;\n});\n\n/**\n * Copy a database whole — name, icon, every property (type/config/position\n * preserved) and every record (in order, cells carried via an old→new property\n * id map, so duplicate property names copy losslessly). A relation column\n * pointing back at the *source* database is remapped to the copy so it stays\n * self-referential; relations to other databases keep their target.\n * `name`/`icon` override the defaults; the locale \"copy\" suffix is the\n * caller's job. All emits share one txn, so the copy syncs as one revision.\n */\nexport const duplicateDatabase = grouped(function duplicateDatabase(\n db: DbDriver,\n id: string,\n opts: { name?: string; icon?: string } = {},\n): DatabaseRow {\n const src = getDatabase(db, id);\n if (!src) throw new MhError(\"not_found\", `no such database: ${id}`);\n const dup = createDatabase(db, {\n name: opts.name ?? src.name,\n icon: (opts.icon ?? src.icon) ?? undefined,\n });\n const propIdMap = new Map<string, string>();\n for (const p of listProperties(db, id)) {\n const config: PropertyConfig | undefined =\n p.config?.database === id ? { ...p.config, database: dup.id } : (p.config ?? undefined);\n const np = addProperty(db, dup.id, { name: p.name, type: p.type, config, position: p.position });\n propIdMap.set(p.id, np.id);\n }\n for (const r of listRecords(db, id)) {\n const data: Record<string, unknown> = {};\n for (const [pid, v] of Object.entries(r.cells)) {\n const nid = propIdMap.get(pid);\n if (nid) data[nid] = v;\n }\n createRecord(db, dup.id, data);\n }\n return getDatabase(db, dup.id)!;\n});\n\nexport function getDatabase(db: DbDriver, id: string): DatabaseRow | null {\n return db\n .query(`SELECT ${DATABASE_SELECT} FROM databases WHERE id = ? AND __deleted = 0`)\n .get(id) as DatabaseRow | null;\n}\n\nexport function listDatabases(db: DbDriver): DatabaseRow[] {\n return db\n .query(`SELECT ${DATABASE_SELECT} FROM databases WHERE __deleted = 0 ORDER BY created_hlc`)\n .all() as DatabaseRow[];\n}\n\nexport const deleteDatabase = grouped(function deleteDatabase(db: DbDriver, id: string): boolean {\n if (!getDatabase(db, id)) return false;\n emit(db, \"databases\", id, \"__deleted\", 1);\n\n // Cascade so nothing is left dangling (the same fixes repairHub would make off\n // the database tombstone, applied eagerly here by the deleting node):\n // - properties/records are meaningless without the database -> tombstone;\n // - documents keep an optional scope link -> detach so their content survives.\n const tombstone = (table: string) => {\n for (const r of liveChildren(db, table, \"database_id\", id))\n emit(db, table, r, \"__deleted\", 1);\n };\n tombstone(\"properties\");\n tombstone(\"records\");\n for (const d of liveChildren(db, \"documents\", \"database_id\", id))\n emit(db, \"documents\", d, \"database_id\", null);\n\n // Drop the \"current database\" pointer if it referenced this one (raw query to\n // avoid a context.ts <-> databases.ts import cycle; read-side also self-heals).\n db.query(\"DELETE FROM meta WHERE key = 'current_db' AND value = ?\").run(id);\n return true;\n});\n\n/** Ids of live rows in `table` whose `col` references `parentId`. */\nfunction liveChildren(db: DbDriver, table: string, col: string, parentId: string): string[] {\n return (\n db\n .query(`SELECT id FROM ${table} WHERE ${col} = ? AND __deleted = 0`)\n .all(parentId) as { id: string }[]\n ).map((r) => r.id);\n}\n",
14
+ "import type { DbDriver } from \"./driver.ts\";\nimport { newId } from \"./ids.ts\";\nimport { emit, grouped } from \"./crdt.ts\";\nimport { MhError } from \"./errors.ts\";\nimport { addProperty, listProperties, type PropertyConfig } from \"./properties.ts\";\nimport { createRecord, listRecords } from \"./records.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\nexport interface DatabaseRow {\n id: string;\n name: string;\n icon: string | null;\n /** Generic replicated metadata (one LWW register). Domain-neutral by design:\n * consumers own their keys (e.g. the WebUI sidebar's `collapsed` flag). */\n meta: Record<string, unknown> | null;\n created_hlc: string;\n}\n\n// SQL returns meta as a JSON string; rows are parsed into DatabaseRow after.\nexport const DATABASE_COLS = [\"id\", \"name\", \"icon\", \"meta\", \"created_hlc\"] as const;\nconst _databaseCols: ColumnsOf<DatabaseRow, typeof DATABASE_COLS> = DATABASE_COLS;\nconst DATABASE_SELECT = DATABASE_COLS.join(\", \");\n\nfunction rowOut(r: (Omit<DatabaseRow, \"meta\"> & { meta: string | null }) | null): DatabaseRow | null {\n if (!r) return null;\n return { ...r, meta: r.meta === null ? null : JSON.parse(r.meta) };\n}\n\nexport const createDatabase = grouped(function createDatabase(\n db: DbDriver,\n opts: { name: string; icon?: string },\n): DatabaseRow {\n const id = newId(\"db\", opts.name);\n const first = emit(db, \"databases\", id, \"name\", opts.name);\n emit(db, \"databases\", id, \"created_hlc\", first.hlc);\n if (opts.icon !== undefined) emit(db, \"databases\", id, \"icon\", opts.icon);\n return getDatabase(db, id)!;\n});\n\nexport const updateDatabase = grouped(function updateDatabase(\n db: DbDriver,\n id: string,\n fields: { name?: string; icon?: string | null; meta?: Record<string, unknown> | null },\n): DatabaseRow {\n if (!getDatabase(db, id)) throw new MhError(\"not_found\", `no such database: ${id}`);\n if (fields.name !== undefined) emit(db, \"databases\", id, \"name\", fields.name);\n if (fields.icon !== undefined) emit(db, \"databases\", id, \"icon\", fields.icon);\n // Whole-object LWW register: callers merge into the current meta themselves.\n // TODO(meta-per-key): BEFORE a second meta key ships, switch to per-key\n // emits (one register per key). With one whole-object register, two writers\n // of DIFFERENT keys (offline devices, racing tabs) each emit a full object\n // missing the other's key, and LWW silently drops one — a structural lost\n // update the caller-side merge cannot prevent.\n if (fields.meta !== undefined) {\n if (fields.meta !== null && (typeof fields.meta !== \"object\" || Array.isArray(fields.meta)))\n throw new MhError(\"invalid_input\", \"meta must be a JSON object or null\");\n emit(db, \"databases\", id, \"meta\", fields.meta);\n }\n return getDatabase(db, id)!;\n});\n\n/**\n * Copy a database whole — name, icon, every property (type/config/position\n * preserved) and every record (in order, cells carried via an old→new property\n * id map, so duplicate property names copy losslessly). A relation column\n * pointing back at the *source* database is remapped to the copy so it stays\n * self-referential; relations to other databases keep their target.\n * `name`/`icon` override the defaults; the locale \"copy\" suffix is the\n * caller's job. All emits share one txn, so the copy syncs as one revision.\n */\nexport const duplicateDatabase = grouped(function duplicateDatabase(\n db: DbDriver,\n id: string,\n opts: { name?: string; icon?: string } = {},\n): DatabaseRow {\n const src = getDatabase(db, id);\n if (!src) throw new MhError(\"not_found\", `no such database: ${id}`);\n const dup = createDatabase(db, {\n name: opts.name ?? src.name,\n icon: (opts.icon ?? src.icon) ?? undefined,\n });\n // Copy meta minus `collapsed`: a duplicate of a folded database must not be\n // born hidden inside the sidebar's collapsed tail group (which defaults to\n // closed) — the user just created it and expects to see it.\n if (src.meta !== null) {\n const { collapsed: _hidden, ...meta } = src.meta as Record<string, unknown>;\n if (Object.keys(meta).length) emit(db, \"databases\", dup.id, \"meta\", meta);\n }\n const propIdMap = new Map<string, string>();\n for (const p of listProperties(db, id)) {\n const config: PropertyConfig | undefined =\n p.config?.database === id ? { ...p.config, database: dup.id } : (p.config ?? undefined);\n const np = addProperty(db, dup.id, { name: p.name, type: p.type, config, position: p.position });\n propIdMap.set(p.id, np.id);\n }\n for (const r of listRecords(db, id)) {\n const data: Record<string, unknown> = {};\n for (const [pid, v] of Object.entries(r.cells)) {\n const nid = propIdMap.get(pid);\n if (nid) data[nid] = v;\n }\n createRecord(db, dup.id, data);\n }\n return getDatabase(db, dup.id)!;\n});\n\nexport function getDatabase(db: DbDriver, id: string): DatabaseRow | null {\n return rowOut(\n db\n .query(`SELECT ${DATABASE_SELECT} FROM databases WHERE id = ? AND __deleted = 0`)\n .get(id) as (Omit<DatabaseRow, \"meta\"> & { meta: string | null }) | null,\n );\n}\n\nexport function listDatabases(db: DbDriver): DatabaseRow[] {\n const rows = db\n .query(`SELECT ${DATABASE_SELECT} FROM databases WHERE __deleted = 0 ORDER BY created_hlc`)\n .all() as (Omit<DatabaseRow, \"meta\"> & { meta: string | null })[];\n return rows.map((r) => rowOut(r)!);\n}\n\nexport const deleteDatabase = grouped(function deleteDatabase(db: DbDriver, id: string): boolean {\n if (!getDatabase(db, id)) return false;\n emit(db, \"databases\", id, \"__deleted\", 1);\n\n // Cascade so nothing is left dangling (the same fixes repairHub would make off\n // the database tombstone, applied eagerly here by the deleting node):\n // - properties/records are meaningless without the database -> tombstone;\n // - documents keep an optional scope link -> detach so their content survives.\n const tombstone = (table: string) => {\n for (const r of liveChildren(db, table, \"database_id\", id))\n emit(db, table, r, \"__deleted\", 1);\n };\n tombstone(\"properties\");\n tombstone(\"records\");\n for (const d of liveChildren(db, \"documents\", \"database_id\", id))\n emit(db, \"documents\", d, \"database_id\", null);\n\n // Drop the \"current database\" pointer if it referenced this one (raw query to\n // avoid a context.ts <-> databases.ts import cycle; read-side also self-heals).\n db.query(\"DELETE FROM meta WHERE key = 'current_db' AND value = ?\").run(id);\n return true;\n});\n\n/** Ids of live rows in `table` whose `col` references `parentId`. */\nfunction liveChildren(db: DbDriver, table: string, col: string, parentId: string): string[] {\n return (\n db\n .query(`SELECT id FROM ${table} WHERE ${col} = ? AND __deleted = 0`)\n .all(parentId) as { id: string }[]\n ).map((r) => r.id);\n}\n",
15
15
  "import type { DbDriver } from \"./driver.ts\";\nimport { idKind, type Kind } from \"./ids.ts\";\nimport { MhError } from \"./errors.ts\";\n\n/** Kinds reachable through the public reference resolver. `blk` is internal. */\nexport type PublicKind = \"db\" | \"prop\" | \"rec\" | \"doc\";\n\nexport interface Candidate {\n kind: PublicKind;\n id: string;\n label: string;\n}\n\ninterface KindSpec {\n table: string;\n nameCol: string | null; // column matched by name/title (null = no name match)\n scoped: boolean; // filtered by database_id when a scope is supplied\n noun: string; // human label for \"no such <noun>\"\n}\n\nconst SPECS: Record<PublicKind, KindSpec> = {\n db: { table: \"databases\", nameCol: \"name\", scoped: false, noun: \"database\" },\n prop: { table: \"properties\", nameCol: \"name\", scoped: true, noun: \"property\" },\n rec: { table: \"records\", nameCol: null, scoped: true, noun: \"record\" },\n doc: { table: \"documents\", nameCol: \"title\", scoped: true, noun: \"document\" },\n};\n\nconst PUBLIC_KINDS: PublicKind[] = [\"db\", \"prop\", \"rec\", \"doc\"];\n\nfunction isPublic(k: Kind | null): k is PublicKind {\n return k !== null && k !== \"blk\";\n}\n\ntype SqlValue = string;\n\n// '{' (0x7B) is the first code point above every char an id can contain\n// ([a-z0-9_-], max 'z' = 0x7A), so [p, p+'{') is exactly the set of ids with\n// prefix p under BINARY collation — a primary-key range scan, no LIKE wildcards.\nconst HI = \"{\";\n\n/** The first text property's id for a database — a record's de-facto title. */\nfunction titlePropId(db: DbDriver, databaseId: string): string | null {\n const row = db\n .query(\n \"SELECT id FROM properties WHERE database_id = ? AND type = 'text' AND __deleted = 0 ORDER BY position LIMIT 1\",\n )\n .get(databaseId) as { id: string } | null;\n return row?.id ?? null;\n}\n\n/** All live rows of one kind matching `ref` by id-prefix or name. */\nfunction queryKind(\n db: DbDriver,\n kind: PublicKind,\n ref: string,\n databaseId?: string,\n): Candidate[] {\n const spec = SPECS[kind];\n // Records have no name column; when scoped to a database, match/show the\n // first text property's value (its title) so \"Alice Chen\" resolves.\n let nameCol = spec.nameCol;\n if (kind === \"rec\" && databaseId) {\n const tp = titlePropId(db, databaseId);\n if (tp) nameCol = `data ->> '${tp.replace(/'/g, \"''\")}'`;\n }\n const labelExpr = nameCol ?? \"''\"; // kinds without a name show id only\n const conds: string[] = [];\n const args: SqlValue[] = [];\n\n // Raw prefix (covers an exact full id, and a typed prefix like \"rec_log\").\n conds.push(\"(id >= ? AND id < ?)\");\n args.push(ref, ref + HI);\n // Typed slug prefix: lets a bare slug \"login-bug\" hit \"rec_login-bug-…\".\n const typed = `${kind}_${ref}`;\n conds.push(\"(id >= ? AND id < ?)\");\n args.push(typed, typed + HI);\n // Name/title equality (case-insensitive), where the kind has a name.\n if (nameCol) {\n conds.push(`lower(${nameCol}) = lower(?)`);\n args.push(ref);\n }\n\n let sql = `SELECT id, ${labelExpr} AS label FROM ${spec.table} WHERE __deleted = 0 AND (${conds.join(\" OR \")})`;\n if (spec.scoped && databaseId) {\n sql += \" AND database_id = ?\";\n args.push(databaseId);\n }\n\n const rows = db.query(sql).all(...args) as { id: string; label: string | null }[];\n return rows.map((r) => ({ kind, id: r.id, label: r.label ?? \"\" }));\n}\n\n/**\n * Every entity matching `ref`. Kind scope: an explicit `opts.kind` (the command\n * knows what it wants) wins; otherwise a typed prefix on `ref` dispatches; else\n * all public kinds are searched (the generic `mh get`). `databaseId` narrows\n * rec/doc/prop to one collection.\n */\nexport function resolveCandidates(\n db: DbDriver,\n ref: string,\n opts: { kind?: PublicKind; databaseId?: string } = {},\n): Candidate[] {\n const kinds: PublicKind[] = opts.kind\n ? [opts.kind]\n : isPublic(idKind(ref))\n ? [idKind(ref) as PublicKind]\n : PUBLIC_KINDS;\n\n const out: Candidate[] = [];\n const seen = new Set<string>();\n for (const k of kinds) {\n for (const c of queryKind(db, k, ref, opts.databaseId)) {\n if (seen.has(c.id)) continue;\n seen.add(c.id);\n out.push(c);\n }\n }\n return out;\n}\n\nfunction fmt(cands: Candidate[]): string {\n return cands\n .map((c) => ` ${c.id}${c.label ? \" \" + c.label : \"\"} (${c.kind})`)\n .join(\"\\n\");\n}\n\n/**\n * Resolve `ref` to one entity. An exact full-id match always wins (the full id\n * keeps working). Otherwise a single candidate is returned; zero throws\n * \"no such …\"; multiple throws a git-style ambiguity list.\n */\nexport function resolveEntity(\n db: DbDriver,\n ref: string,\n opts: { kind?: PublicKind; databaseId?: string } = {},\n): Candidate {\n const cands = resolveCandidates(db, ref, opts);\n const exact = cands.filter((c) => c.id === ref);\n if (exact.length === 1) return exact[0]!;\n if (exact.length === 0 && cands.length === 1) return cands[0]!;\n\n if (cands.length === 0) {\n const noun = opts.kind ? SPECS[opts.kind].noun : \"item\";\n throw new MhError(\"not_found\", `no such ${noun}: ${ref}`);\n }\n const shown = exact.length > 1 ? exact : cands;\n throw new MhError(\n \"ambiguous\",\n `ambiguous \"${ref}\" — ${shown.length} matches:\\n${fmt(shown)}\\n add more characters.`,\n );\n}\n\n/** Resolve `ref` to one concrete row id. See {@link resolveEntity}. */\nexport function resolveRef(\n db: DbDriver,\n ref: string,\n opts: { kind?: PublicKind; databaseId?: string } = {},\n): string {\n return resolveEntity(db, ref, opts).id;\n}\n",
16
16
  "// Fractional indexing: compact string keys that sort lexicographically, so a new\n// key can always be produced strictly between two existing ones. Used to order\n// document blocks; concurrent inserts at the same slot are tie-broken by block id.\n//\n// Alphabet is base62 with ASCII order matching digit order (0-9 < A-Z < a-z), so\n// SQLite's default BINARY collation orders keys correctly with plain `ORDER BY`.\n\nconst DIGITS = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n/**\n * A digit string strictly between `a` and `b`. `a` is a digit string (possibly\n * \"\" = start) and `b` is a digit string or null (= end), with `a < b`. Neither\n * may end in the zero digit; this invariant is preserved by construction.\n */\nfunction midpoint(a: string, b: string | null): string {\n const zero = DIGITS[0]!;\n if (b !== null && a >= b) throw new Error(`fracdex: ${a} >= ${b}`);\n if (a.endsWith(zero) || (b !== null && b.endsWith(zero)))\n throw new Error(`fracdex: trailing zero in ${a}/${b}`);\n\n if (b !== null) {\n // Strip the common prefix, padding `a` with implicit zeros as we descend.\n let n = 0;\n while ((a[n] ?? zero) === b[n]) n++;\n if (n > 0) return b.slice(0, n) + midpoint(a.slice(n), b.slice(n));\n }\n\n const da = a === \"\" ? 0 : DIGITS.indexOf(a[0]!);\n const db = b === null ? DIGITS.length : DIGITS.indexOf(b[0]!);\n if (db - da > 1) {\n const mid = Math.round(0.5 * (da + db));\n return DIGITS[mid]!;\n }\n // First digits are consecutive (or equal at the boundary): descend.\n if (b !== null && b.length > 1) return b.slice(0, 1);\n return DIGITS[da]! + midpoint(a.slice(1), null);\n}\n\n/** A key strictly between `a` and `b` (lexicographically). null = open boundary. */\nexport function keyBetween(a: string | null, b: string | null): string {\n return midpoint(a ?? \"\", b);\n}\n\n/** `n` distinct keys in ascending order, all strictly between `a` and `b`. */\nexport function keysBetween(\n a: string | null,\n b: string | null,\n n: number,\n): string[] {\n if (n <= 0) return [];\n if (n === 1) return [keyBetween(a, b)];\n\n if (b === null) {\n let prev = keyBetween(a, null);\n const out = [prev];\n for (let i = 1; i < n; i++) {\n prev = keyBetween(prev, null);\n out.push(prev);\n }\n return out;\n }\n if (a === null) {\n let next = keyBetween(null, b);\n const out = [next];\n for (let i = 1; i < n; i++) {\n next = keyBetween(null, next);\n out.unshift(next);\n }\n return out;\n }\n\n // Both bounded: bisect so key lengths grow logarithmically.\n const mid = Math.floor(n / 2);\n const c = keyBetween(a, b);\n return [...keysBetween(a, c, mid), c, ...keysBetween(c, b, n - mid - 1)];\n}\n",
17
17
  "import type { DbDriver } from \"./driver.ts\";\nimport { newId, slugify, idKind } from \"./ids.ts\";\nimport { emit, grouped } from \"./crdt.ts\";\nimport { getDatabase } from \"./databases.ts\";\nimport { listProperties, type PropertyRow } from \"./properties.ts\";\nimport { maybeAutoIndex } from \"./indexing.ts\";\nimport { resolveCandidates } from \"./resolve.ts\";\nimport { keyBetween, keysBetween } from \"./fracdex.ts\";\nimport { MhError } from \"./errors.ts\";\n\ntype SqlValue = string | number | null;\n\n/** Scalars push down to SQL; arrays/objects/null are filtered in JS. */\nfunction isSqlScalar(v: unknown): v is string | number | boolean {\n return typeof v === \"string\" || typeof v === \"number\" || typeof v === \"boolean\";\n}\n\n/** Encode a coerced scalar to match what `data ->> '<prop>'` returns. */\nfunction sqlFilterValue(v: string | number | boolean): SqlValue {\n return typeof v === \"boolean\" ? (v ? 1 : 0) : v;\n}\n\nexport interface RecordRow {\n id: string;\n database_id: string;\n /** Cells keyed by property NAME — friendly for CLI / external agents, but\n * lossy when two properties share a name (one entry wins). */\n values: Record<string, unknown>;\n /** Cells keyed by property ID — lossless under duplicate names; the WebUI\n * reads/writes through this. */\n cells: Record<string, unknown>;\n}\n\ninterface OrderedRecordRow {\n id: string;\n database_id: string;\n created_hlc: string | null;\n order_key: string | null;\n}\n\n/**\n * Resolve one relation value to a concrete record id in the target database.\n * Accepts a full id / unique prefix / name. A well-formed record id that does\n * not (yet) exist passes through unchanged — a forward reference / explicit id\n * escape valve. Names/prefixes that match nothing, or match many, throw.\n */\nfunction resolveRelation(db: DbDriver, prop: PropertyRow, value: string): string {\n const target = prop.config?.database;\n if (!target) return value; // misconfigured relation — leave the value as-is\n const cands = resolveCandidates(db, value, { kind: \"rec\", databaseId: target });\n const exact = cands.find((c) => c.id === value);\n if (exact) return exact.id;\n if (cands.length === 1) return cands[0]!.id;\n if (cands.length === 0) {\n if (idKind(value) === \"rec\") return value; // forward reference to a full id\n throw new MhError(\"not_found\", `${prop.name}: no such record in target database: ${value}`);\n }\n throw new MhError(\"ambiguous\", `${prop.name}: ambiguous relation \"${value}\" (${cands.length} matches); use a full id`);\n}\n\n/** Validate + normalize a value for a property's type. Throws on mismatch. */\nfunction coerce(db: DbDriver, prop: PropertyRow, value: unknown): unknown {\n switch (prop.type) {\n case \"text\":\n case \"url\":\n case \"date\": {\n if (value === null) return null;\n if (typeof value !== \"string\") throw new MhError(\"invalid_input\", `${prop.name} expects a string`);\n return value;\n }\n case \"number\": {\n if (value === null) return null;\n const n = typeof value === \"number\" ? value : Number(value);\n if (!Number.isFinite(n)) throw new MhError(\"invalid_input\", `${prop.name} expects a number`);\n return n;\n }\n case \"checkbox\": {\n if (typeof value === \"boolean\") return value;\n if (value === \"true\" || value === 1) return true;\n if (value === \"false\" || value === 0 || value === null) return false;\n throw new MhError(\"invalid_input\", `${prop.name} expects a boolean`);\n }\n case \"select\": {\n if (value === null) return null;\n const v = String(value);\n if (!prop.config?.options?.includes(v))\n throw new MhError(\"invalid_input\", `${prop.name}: '${v}' is not an allowed option`);\n return v;\n }\n case \"multi_select\": {\n const arr = value === null ? [] : Array.isArray(value) ? value : [value];\n const opts = prop.config?.options ?? [];\n for (const item of arr)\n if (!opts.includes(String(item)))\n throw new MhError(\"invalid_input\", `${prop.name}: '${item}' is not an allowed option`);\n return arr.map(String);\n }\n case \"relation\": {\n const arr = value === null ? [] : Array.isArray(value) ? value : [value];\n return arr.map((v) => resolveRelation(db, prop, String(v)));\n }\n }\n}\n\n/** Group properties by lowercased name; duplicate names are legal. */\nfunction propsByName(props: PropertyRow[]): Map<string, PropertyRow[]> {\n const byName = new Map<string, PropertyRow[]>();\n for (const p of props) {\n const k = p.name.toLowerCase();\n const list = byName.get(k);\n if (list) list.push(p);\n else byName.set(k, [p]);\n }\n return byName;\n}\n\n/**\n * Match data keys (property name OR id) to properties. Duplicate property\n * names are a legal state (offline peers can create them concurrently), so a\n * name that matches several properties is ambiguous — callers must switch to\n * the property id.\n */\nfunction resolveData(\n props: PropertyRow[],\n data: Record<string, unknown>,\n): { prop: PropertyRow; value: unknown }[] {\n const byId = new Map(props.map((p) => [p.id, p]));\n const byName = propsByName(props);\n const out: { prop: PropertyRow; value: unknown }[] = [];\n for (const [key, value] of Object.entries(data)) {\n let prop = byId.get(key);\n if (!prop) {\n const matches = byName.get(key.toLowerCase()) ?? [];\n if (matches.length > 1)\n throw new MhError(\n \"ambiguous\",\n `property name \"${key}\" matches ${matches.length} properties; use a property id`,\n );\n prop = matches[0];\n }\n if (!prop) throw new MhError(\"not_found\", `unknown property: ${key}`);\n out.push({ prop, value });\n }\n return out;\n}\n\n/** Build a RecordRow from a materialized row; keys in `data` are property ids. */\nfunction rowToRecord(\n row: { id: string; database_id: string; data: string },\n props: PropertyRow[],\n): RecordRow {\n const raw = JSON.parse(row.data || \"{}\") as Record<string, unknown>;\n const byId = new Map(props.map((p) => [p.id, p]));\n const values: Record<string, unknown> = {};\n const cells: Record<string, unknown> = {};\n for (const [propId, v] of Object.entries(raw)) {\n const p = byId.get(propId);\n if (!p) continue; // skip cells for removed properties\n values[p.name] = v;\n cells[p.id] = v;\n }\n return { id: row.id, database_id: row.database_id, values, cells };\n}\n\nfunction deriveTitle(\n props: PropertyRow[],\n resolved: { prop: PropertyRow; value: unknown }[],\n fallbackBase: string,\n): string {\n const text = resolved.find(\n (r) => r.prop.type === \"text\" && typeof r.value === \"string\" && r.value,\n );\n return newId(\"rec\", text ? String(text.value) : \"\", fallbackBase);\n}\n\nfunction tableExists(db: DbDriver, table: string): boolean {\n return (\n db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE type = 'table' AND name = ?\")\n .get(table) != null\n );\n}\n\nfunction canEmitOrderKeys(db: DbDriver): boolean {\n return tableExists(db, \"meta\") && tableExists(db, \"crdt_changes\");\n}\n\nfunction writeRecordOrderKey(db: DbDriver, recordId: string, orderKey: string, emitChange: boolean): void {\n if (emitChange) emit(db, \"records\", recordId, \"order_key\", orderKey);\n else db.query(\"UPDATE records SET order_key = ? WHERE id = ?\").run(orderKey, recordId);\n}\n\nfunction lastRecordOrderKey(db: DbDriver, databaseId: string): string | null {\n const row = db\n .query(\n `SELECT order_key FROM records\n WHERE database_id = ? AND __deleted = 0 AND order_key IS NOT NULL\n ORDER BY order_key DESC, id DESC LIMIT 1`,\n )\n .get(databaseId) as { order_key: string | null } | null;\n return row?.order_key ?? null;\n}\n\nfunction orderedRecordRows(db: DbDriver, databaseId: string): OrderedRecordRow[] {\n return db\n .query(\n `SELECT id, database_id, created_hlc, order_key FROM records\n WHERE database_id = ? AND __deleted = 0\n ORDER BY order_key IS NULL, order_key, created_hlc, id`,\n )\n .all(databaseId) as OrderedRecordRow[];\n}\n\nfunction rebalanceRecordOrderKeys(db: DbDriver, databaseId: string): void {\n const rows = orderedRecordRows(db, databaseId);\n const keys = keysBetween(null, null, rows.length);\n rows.forEach((row, i) => {\n if (row.order_key !== keys[i]) emit(db, \"records\", row.id, \"order_key\", keys[i]!);\n });\n}\n\nexport const backfillRecordOrderKeys = grouped(function backfillRecordOrderKeys(\n db: DbDriver,\n databaseId?: string,\n): void {\n const emitChange = canEmitOrderKeys(db);\n const dbRows = databaseId\n ? [{ database_id: databaseId }]\n : (db\n .query(\n `SELECT DISTINCT database_id FROM records\n WHERE database_id IS NOT NULL AND __deleted = 0 AND order_key IS NULL`,\n )\n .all() as { database_id: string }[]);\n\n for (const d of dbRows) {\n const missing = db\n .query(\n `SELECT id FROM records\n WHERE database_id = ? AND __deleted = 0 AND order_key IS NULL\n ORDER BY created_hlc, id`,\n )\n .all(d.database_id) as { id: string }[];\n if (!missing.length) continue;\n\n const start = lastRecordOrderKey(db, d.database_id);\n const keys = keysBetween(start, null, missing.length);\n missing.forEach((row, i) => writeRecordOrderKey(db, row.id, keys[i]!, emitChange));\n }\n});\n\nexport const createRecord = grouped(function createRecord(\n db: DbDriver,\n databaseId: string,\n data: Record<string, unknown>,\n): RecordRow {\n const dbRow = getDatabase(db, databaseId);\n if (!dbRow) throw new MhError(\"not_found\", `no such database: ${databaseId}`);\n const props = listProperties(db, databaseId);\n const resolved = resolveData(props, data);\n const id = deriveTitle(props, resolved, slugify(dbRow.name, \"rec\"));\n const orderKey = keyBetween(lastRecordOrderKey(db, databaseId), null);\n\n const first = emit(db, \"records\", id, \"database_id\", databaseId);\n emit(db, \"records\", id, \"created_hlc\", first.hlc);\n emit(db, \"records\", id, \"order_key\", orderKey);\n for (const { prop, value } of resolved)\n emit(db, \"records\", id, prop.id, coerce(db, prop, value));\n return getRecord(db, id)!;\n});\n\nexport function getRecord(db: DbDriver, id: string): RecordRow | null {\n const row = db\n .query(\"SELECT id, database_id, data FROM records WHERE id = ? AND __deleted = 0\")\n .get(id) as { id: string; database_id: string; data: string } | null;\n if (!row) return null;\n return rowToRecord(row, listProperties(db, row.database_id));\n}\n\n/** Quote a property id for embedding in a JSON path / index expression. */\nfunction jsonKeyLit(propId: string): string {\n return propId.replace(/'/g, \"''\");\n}\n\nexport function listRecords(\n db: DbDriver,\n databaseId: string,\n opts: { filter?: Record<string, unknown>; sort?: string; limit?: number } = {},\n): RecordRow[] {\n const props = listProperties(db, databaseId);\n\n // Coerce filters, then split: scalars push down to SQL (and earn an index),\n // arrays/objects/null are matched in JS afterward.\n const resolved =\n opts.filter && Object.keys(opts.filter).length\n ? resolveData(props, opts.filter).map(({ prop, value }) => ({\n prop,\n value: coerce(db, prop, value),\n }))\n : [];\n const sqlFilters = resolved.filter((f) => isSqlScalar(f.value));\n const jsFilters = resolved.filter((f) => !isSqlScalar(f.value));\n\n // Resolve sort: default created_hlc; \"-field\" = descending.\n let sortProp: PropertyRow | undefined;\n let sortDesc = false;\n if (opts.sort) {\n let key = opts.sort;\n if (key.startsWith(\"-\")) {\n sortDesc = true;\n key = key.slice(1);\n }\n if (key !== \"created\" && key !== \"created_hlc\") {\n let p = props.find((p) => p.id === key);\n if (!p) {\n const matches = props.filter((q) => q.name.toLowerCase() === key.toLowerCase());\n if (matches.length > 1)\n throw new MhError(\n \"ambiguous\",\n `sort field \"${key}\" matches ${matches.length} properties; use a property id`,\n );\n p = matches[0];\n }\n if (!p) throw new MhError(\"not_found\", `unknown sort field: ${key}`);\n sortProp = p;\n }\n }\n\n // The act of filtering/sorting on a field is the signal to (maybe) index it.\n for (const f of sqlFilters) maybeAutoIndex(db, databaseId, f.prop);\n if (sortProp) maybeAutoIndex(db, databaseId, sortProp);\n\n const where = [\"database_id = ?\", \"__deleted = 0\"];\n const args: SqlValue[] = [databaseId];\n for (const f of sqlFilters) {\n where.push(`data ->> '${jsonKeyLit(f.prop.id)}' = ?`);\n args.push(sqlFilterValue(f.value as string | number | boolean));\n }\n\n const manualOrder = opts.sort == null;\n const orderExpr = sortProp\n ? `data ->> '${jsonKeyLit(sortProp.id)}'`\n : \"created_hlc\";\n let sql =\n `SELECT id, database_id, data FROM records WHERE ${where.join(\" AND \")} ` +\n (manualOrder\n ? \"ORDER BY order_key IS NULL, order_key, id\"\n : `ORDER BY ${orderExpr} ${sortDesc ? \"DESC\" : \"ASC\"}, id`);\n\n // LIMIT only pushes down when no JS-side filtering remains.\n const pushLimit = opts.limit != null && jsFilters.length === 0;\n if (pushLimit) {\n sql += \" LIMIT ?\";\n args.push(opts.limit!);\n }\n\n let rows = (\n db.query(sql).all(...args) as { id: string; database_id: string; data: string }[]\n ).map((r) => rowToRecord(r, props));\n\n if (jsFilters.length) {\n rows = rows.filter((r) =>\n jsFilters.every(\n (f) => JSON.stringify(r.cells[f.prop.id] ?? null) === JSON.stringify(f.value),\n ),\n );\n if (opts.limit != null) rows = rows.slice(0, opts.limit);\n }\n return rows;\n}\n\nexport const moveRecord = grouped(function moveRecord(\n db: DbDriver,\n id: string,\n targetId: string,\n where: \"before\" | \"after\",\n): RecordRow {\n if (where !== \"before\" && where !== \"after\")\n throw new MhError(\"invalid_input\", `unknown move position: ${where}`);\n\n const src = db\n .query(\n \"SELECT id, database_id FROM records WHERE id = ? AND __deleted = 0\",\n )\n .get(id) as { id: string; database_id: string } | null;\n if (!src) throw new MhError(\"not_found\", `no such record: ${id}`);\n const target = db\n .query(\n \"SELECT id, database_id FROM records WHERE id = ? AND __deleted = 0\",\n )\n .get(targetId) as { id: string; database_id: string } | null;\n if (!target) throw new MhError(\"not_found\", `no such record: ${targetId}`);\n if (src.database_id !== target.database_id)\n throw new MhError(\"invalid_input\", \"cannot move a record across databases\");\n if (id === targetId) return getRecord(db, id)!;\n\n backfillRecordOrderKeys(db, src.database_id);\n\n let rows = orderedRecordRows(db, src.database_id).filter((r) => r.id !== id);\n let to = rows.findIndex((r) => r.id === targetId);\n if (to < 0) throw new MhError(\"not_found\", `no such target record: ${targetId}`);\n\n let left = where === \"before\" ? (rows[to - 1]?.order_key ?? null) : rows[to]!.order_key;\n let right = where === \"before\" ? rows[to]!.order_key : (rows[to + 1]?.order_key ?? null);\n if (left !== null && right !== null && left >= right) {\n rebalanceRecordOrderKeys(db, src.database_id);\n rows = orderedRecordRows(db, src.database_id).filter((r) => r.id !== id);\n to = rows.findIndex((r) => r.id === targetId);\n left = where === \"before\" ? (rows[to - 1]?.order_key ?? null) : rows[to]!.order_key;\n right = where === \"before\" ? rows[to]!.order_key : (rows[to + 1]?.order_key ?? null);\n }\n emit(db, \"records\", id, \"order_key\", keyBetween(left, right));\n return getRecord(db, id)!;\n});\n\nexport const updateRecord = grouped(function updateRecord(\n db: DbDriver,\n id: string,\n data: Record<string, unknown>,\n): RecordRow {\n const rec = db\n .query(\"SELECT id, database_id FROM records WHERE id = ? AND __deleted = 0\")\n .get(id) as { id: string; database_id: string } | null;\n if (!rec) throw new MhError(\"not_found\", `no such record: ${id}`);\n const resolved = resolveData(listProperties(db, rec.database_id), data);\n for (const { prop, value } of resolved)\n emit(db, \"records\", id, prop.id, coerce(db, prop, value));\n return getRecord(db, id)!;\n});\n\nexport const deleteRecord = grouped(function deleteRecord(db: DbDriver, id: string): boolean {\n const rec = db\n .query(\"SELECT id FROM records WHERE id = ? AND __deleted = 0\")\n .get(id) as { id: string } | null;\n if (!rec) return false;\n emit(db, \"records\", id, \"__deleted\", 1);\n return true;\n});\n",
18
- "import type { DbDriver } from \"./driver.ts\";\nimport { newId } from \"./ids.ts\";\nimport { emit, grouped } from \"./crdt.ts\";\nimport { parseDocBlocks, serializeDocBlocks, reconcile, type DocBlock } from \"./blocks.ts\";\nimport { keyBetween, keysBetween } from \"./fracdex.ts\";\nimport { MhError } from \"./errors.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\nexport interface DocumentRow {\n id: string;\n title: string;\n body: string | null;\n database_id: string | null;\n parent_id: string | null;\n created_hlc: string;\n order_key: string | null;\n}\n\nexport type DocumentSummary = Omit<DocumentRow, \"body\">;\n\nexport const DOCUMENT_COLS = [\n \"id\", \"title\", \"body\", \"database_id\", \"parent_id\", \"created_hlc\", \"order_key\",\n] as const;\nconst _documentCols: ColumnsOf<DocumentRow, typeof DOCUMENT_COLS> = DOCUMENT_COLS;\nconst DOCUMENT_SELECT = DOCUMENT_COLS.join(\", \");\n\nconst DOC_SUMMARY_COLS = [\n \"id\", \"title\", \"database_id\", \"parent_id\", \"created_hlc\", \"order_key\",\n] as const;\nconst _docSummaryCols: ColumnsOf<DocumentSummary, typeof DOC_SUMMARY_COLS> = DOC_SUMMARY_COLS;\nconst DOC_SUMMARY_SELECT = DOC_SUMMARY_COLS.join(\", \");\n\ninterface BlockRow {\n id: string;\n text: string;\n order_key: string;\n blank_after: number;\n}\n\n// ---- block helpers ---------------------------------------------------------\n\nfunction liveBlocks(db: DbDriver, docId: string): BlockRow[] {\n return db\n .query(\n \"SELECT id, text, order_key, blank_after FROM doc_blocks WHERE doc_id = ? AND __deleted = 0 ORDER BY order_key, id\",\n )\n .all(docId) as BlockRow[];\n}\n\nfunction makeBlockId(text: string): string {\n return newId(\"blk\", text.split(\"\\n\", 1)[0] ?? \"\");\n}\n\n/** Emit a new block's fields; text last so the final body recompute is complete.\n * blank_after is only emitted when non-zero (0 is the column default). */\nfunction emitBlock(\n db: DbDriver,\n docId: string,\n fields: { text: string; order_key: string; blankAfter: number },\n): void {\n const id = makeBlockId(fields.text);\n emit(db, \"doc_blocks\", id, \"doc_id\", docId);\n emit(db, \"doc_blocks\", id, \"order_key\", fields.order_key);\n if (fields.blankAfter) emit(db, \"doc_blocks\", id, \"blank_after\", fields.blankAfter);\n emit(db, \"doc_blocks\", id, \"text\", fields.text);\n}\n\nfunction insertBlocks(\n db: DbDriver,\n docId: string,\n blocks: readonly DocBlock[],\n after: string | null,\n before: string | null,\n): void {\n const keys = keysBetween(after, before, blocks.length);\n blocks.forEach((b, i) =>\n emitBlock(db, docId, { text: b.text, order_key: keys[i]!, blankAfter: b.blankAfter }),\n );\n}\n\n/** Lazily migrate a legacy body-only document into blocks (idempotent). */\nfunction ensureBlocks(db: DbDriver, docId: string): void {\n if (db.query(\"SELECT 1 AS x FROM doc_blocks WHERE doc_id = ? LIMIT 1\").get(docId))\n return;\n const row = db.query(\"SELECT body FROM documents WHERE id = ?\").get(docId) as\n | { body: string | null }\n | null;\n const blocks = parseDocBlocks(row?.body ?? \"\");\n if (blocks.length) insertBlocks(db, docId, blocks, null, null);\n}\n\n/** Diff a full new body against current blocks; keep unchanged, delete/insert the rest. */\nfunction reconcileBody(db: DbDriver, docId: string, body: string): void {\n const old = liveBlocks(db, docId);\n const next = parseDocBlocks(body);\n const plan = reconcile(\n old.map((b) => b.text),\n next.map((b) => b.text),\n );\n\n for (const oi of plan.deleted) emit(db, \"doc_blocks\", old[oi]!.id, \"__deleted\", 1);\n\n const { items } = plan;\n let i = 0;\n while (i < items.length) {\n const it = items[i]!;\n if (\"keep\" in it) {\n // Text unchanged: only the surrounding blank-line count may have shifted.\n const oldB = old[it.keep]!;\n const want = next[i]!.blankAfter;\n if ((oldB.blank_after ?? 0) !== want) emit(db, \"doc_blocks\", oldB.id, \"blank_after\", want);\n i++;\n continue;\n }\n let j = i;\n while (j < items.length && \"insert\" in items[j]!) j++;\n const left = i > 0 ? old[(items[i - 1] as { keep: number }).keep]!.order_key : null;\n const right = j < items.length ? old[(items[j] as { keep: number }).keep]!.order_key : null;\n insertBlocks(db, docId, next.slice(i, j), left, right);\n i = j;\n }\n}\n\n/** Max HLC over a document's own register and all its blocks — a read/edit token. */\nexport function documentVersion(db: DbDriver, id: string): string {\n const row = db\n .query(\n `SELECT MAX(hlc) AS h FROM crdt_changes\n WHERE (dataset = 'documents' AND row_id = ?)\n OR (dataset = 'doc_blocks' AND row_id IN (SELECT id FROM doc_blocks WHERE doc_id = ?))`,\n )\n .get(id, id) as { h: string | null };\n return row.h ?? \"\";\n}\n\n// ---- public API ------------------------------------------------------------\n\nexport const createDocument = grouped(function createDocument(\n db: DbDriver,\n opts: { title: string; body?: string; database_id?: string; parent_id?: string },\n): DocumentRow {\n const id = newId(\"doc\", opts.title);\n const first = emit(db, \"documents\", id, \"title\", opts.title);\n emit(db, \"documents\", id, \"created_hlc\", first.hlc);\n if (opts.database_id !== undefined) emit(db, \"documents\", id, \"database_id\", opts.database_id);\n if (opts.parent_id !== undefined) emit(db, \"documents\", id, \"parent_id\", opts.parent_id);\n placeInSiblings(db, id, opts.parent_id ?? null); // append to the end of its sibling group\n if (opts.body !== undefined) {\n const blocks = parseDocBlocks(opts.body);\n if (blocks.length) insertBlocks(db, id, blocks, null, null);\n }\n return getDocument(db, id)!;\n});\n\nexport function getDocument(db: DbDriver, id: string): DocumentRow | null {\n return db\n .query(`SELECT ${DOCUMENT_SELECT} FROM documents WHERE id = ? AND __deleted = 0`)\n .get(id) as DocumentRow | null;\n}\n\n/** Display order among siblings: explicit order_key first, NULLs fall back to\n * creation time so an un-backfilled tree still renders in its historical order. */\nconst ORDER_BY = \"ORDER BY order_key IS NULL, order_key, created_hlc, id\";\n\nexport function listDocuments(\n db: DbDriver,\n opts: { database_id?: string; parent_id?: string } = {},\n): DocumentSummary[] {\n const cols = `SELECT ${DOC_SUMMARY_SELECT} FROM documents WHERE __deleted = 0`;\n if (opts.parent_id !== undefined)\n return db\n .query(`${cols} AND parent_id = ? ${ORDER_BY}`)\n .all(opts.parent_id) as DocumentSummary[];\n if (opts.database_id)\n return db\n .query(`${cols} AND database_id = ? ${ORDER_BY}`)\n .all(opts.database_id) as DocumentSummary[];\n return db.query(`${cols} ${ORDER_BY}`).all() as DocumentSummary[];\n}\n\n// ---- sibling ordering (fractional index scoped per parent_id) --------------\n\ninterface SiblingRow {\n id: string;\n order_key: string | null;\n}\n\n/** WHERE fragment + args selecting siblings under `parentId` (null = top level). */\nfunction siblingWhere(parentId: string | null): { clause: string; args: string[] } {\n return parentId === null\n ? { clause: \"parent_id IS NULL\", args: [] }\n : { clause: \"parent_id = ?\", args: [parentId] };\n}\n\nfunction canEmitOrderKeys(db: DbDriver): boolean {\n return tableExists(db, \"meta\") && tableExists(db, \"crdt_changes\");\n}\n\nfunction tableExists(db: DbDriver, table: string): boolean {\n return (\n db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE type = 'table' AND name = ?\")\n .get(table) != null\n );\n}\n\n/** Greatest order_key among siblings (optionally ignoring one row being placed). */\nfunction lastSiblingOrderKey(\n db: DbDriver,\n parentId: string | null,\n excludeId?: string,\n): string | null {\n const w = siblingWhere(parentId);\n const exclude = excludeId ? \" AND id <> ?\" : \"\";\n const row = db\n .query(\n `SELECT order_key FROM documents WHERE ${w.clause}${exclude}\n AND __deleted = 0 AND order_key IS NOT NULL\n ORDER BY order_key DESC, id DESC LIMIT 1`,\n )\n .get(...w.args, ...(excludeId ? [excludeId] : [])) as { order_key: string | null } | null;\n return row?.order_key ?? null;\n}\n\nfunction orderedSiblings(db: DbDriver, parentId: string | null): SiblingRow[] {\n const w = siblingWhere(parentId);\n return db\n .query(`SELECT id, order_key FROM documents WHERE ${w.clause} AND __deleted = 0 ${ORDER_BY}`)\n .all(...w.args) as SiblingRow[];\n}\n\n/** Re-space every sibling's key evenly — escape hatch when fractional keys collide. */\nfunction rebalanceSiblings(db: DbDriver, parentId: string | null): void {\n const rows = orderedSiblings(db, parentId);\n const keys = keysBetween(null, null, rows.length);\n rows.forEach((row, i) => {\n if (row.order_key !== keys[i]) emit(db, \"documents\", row.id, \"order_key\", keys[i]!);\n });\n}\n\n/** Assign keys to siblings that still lack one, appending in creation order. */\nfunction backfillSiblings(db: DbDriver, parentId: string | null): void {\n const emitChange = canEmitOrderKeys(db);\n const w = siblingWhere(parentId);\n const missing = db\n .query(\n `SELECT id FROM documents WHERE ${w.clause} AND __deleted = 0 AND order_key IS NULL\n ORDER BY created_hlc, id`,\n )\n .all(...w.args) as { id: string }[];\n if (!missing.length) return;\n const keys = keysBetween(lastSiblingOrderKey(db, parentId), null, missing.length);\n missing.forEach((row, i) => {\n if (emitChange) emit(db, \"documents\", row.id, \"order_key\", keys[i]!);\n else db.query(\"UPDATE documents SET order_key = ? WHERE id = ?\").run(keys[i]!, row.id);\n });\n}\n\n/** Backfill order_key for every parent group that has un-keyed live documents. */\nexport const backfillDocumentOrderKeys = grouped(function backfillDocumentOrderKeys(\n db: DbDriver,\n): void {\n const parents = db\n .query(\"SELECT DISTINCT parent_id FROM documents WHERE __deleted = 0 AND order_key IS NULL\")\n .all() as { parent_id: string | null }[];\n for (const p of parents) backfillSiblings(db, p.parent_id);\n});\n\n/**\n * Place `id` under `parentId` at the given position — the single point where a\n * document's parent_id and order_key are kept consistent (reparent always\n * implies a new sibling scope). No `anchor` appends to the end of the group.\n */\nfunction placeInSiblings(\n db: DbDriver,\n id: string,\n parentId: string | null,\n anchor?: { targetId: string; where: \"before\" | \"after\" },\n): void {\n // Walk the prospective ancestor chain; reaching `id` would form a cycle and\n // make the tree unrenderable. Guarded here so every caller is protected.\n let cur: string | null | undefined = parentId;\n while (cur) {\n if (cur === id) throw new MhError(\"invalid_input\", `cannot set parent_id: would create a cycle (${id})`);\n cur = getDocument(db, cur)?.parent_id ?? null;\n }\n\n const current = getDocument(db, id);\n if (current && (current.parent_id ?? null) !== parentId)\n emit(db, \"documents\", id, \"parent_id\", parentId);\n\n let key: string;\n if (!anchor) {\n key = keyBetween(lastSiblingOrderKey(db, parentId, id), null);\n } else {\n backfillSiblings(db, parentId); // ensure neighbors carry comparable keys\n const neighbors = (): [string | null, string | null] => {\n const rows = orderedSiblings(db, parentId).filter((r) => r.id !== id);\n const to = rows.findIndex((r) => r.id === anchor.targetId);\n if (to < 0) throw new MhError(\"not_found\", `no such target document: ${anchor.targetId}`);\n return anchor.where === \"before\"\n ? [rows[to - 1]?.order_key ?? null, rows[to]!.order_key]\n : [rows[to]!.order_key, rows[to + 1]?.order_key ?? null];\n };\n let [left, right] = neighbors();\n if (left !== null && right !== null && left >= right) {\n rebalanceSiblings(db, parentId);\n [left, right] = neighbors();\n }\n key = keyBetween(left, right);\n }\n emit(db, \"documents\", id, \"order_key\", key);\n}\n\n/**\n * Move a document next to / into another, atomically updating both its parent\n * and its order_key. `into` nests it as the last child of `targetId`;\n * `before`/`after` re-orders (and reparents if needed) among the target's siblings.\n */\nexport const moveDocument = grouped(function moveDocument(\n db: DbDriver,\n id: string,\n targetId: string,\n where: \"before\" | \"after\" | \"into\",\n): DocumentRow {\n const src = getDocument(db, id);\n if (!src) throw new MhError(\"not_found\", `no such document: ${id}`);\n if (id === targetId) return src;\n const target = getDocument(db, targetId);\n if (!target) throw new MhError(\"not_found\", `no such target document: ${targetId}`);\n\n if (where === \"into\") placeInSiblings(db, id, targetId);\n else placeInSiblings(db, id, target.parent_id, { targetId, where });\n return getDocument(db, id)!;\n});\n\n/**\n * Copy a document — title, every block (verbatim, with fresh block ids so the\n * copy edits independently) and its `database_id`/`parent_id`. The copy lands\n * right after its source in the same sibling scope. Blocks are cloned at the\n * block level (not via a markdown round-trip) so empty list items / blank-line\n * runs survive losslessly. `title`/`parentId` override the defaults; the locale\n * \"copy\" suffix is the caller's job. `created_hlc` is the copy's own birth time.\n */\nexport const duplicateDocument = grouped(function duplicateDocument(\n db: DbDriver,\n id: string,\n opts: { title?: string; parentId?: string | null } = {},\n): DocumentRow {\n const src = getDocument(db, id);\n if (!src) throw new MhError(\"not_found\", `no such document: ${id}`);\n ensureBlocks(db, id);\n const blocks = liveBlocks(db, id);\n const parentId = opts.parentId !== undefined ? opts.parentId : src.parent_id;\n const dup = createDocument(db, {\n title: opts.title ?? src.title,\n database_id: src.database_id ?? undefined,\n parent_id: parentId ?? undefined,\n });\n if (blocks.length)\n insertBlocks(\n db,\n dup.id,\n blocks.map((b) => ({ text: b.text, blankAfter: b.blank_after })),\n null,\n null,\n );\n // Sit the copy right after its source when they share a sibling scope.\n if (parentId === src.parent_id) moveDocument(db, dup.id, src.id, \"after\");\n return getDocument(db, dup.id)!;\n});\n\nexport const updateDocument = grouped(function updateDocument(\n db: DbDriver,\n id: string,\n fields: { title?: string; body?: string; database_id?: string; parent_id?: string | null },\n opts: { ifMatch?: string } = {},\n): DocumentRow {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n // Same staleness backstop as editDocument: a version from documentVersion()\n // rejects the write if the doc changed since the caller read it.\n if (opts.ifMatch !== undefined && documentVersion(db, id) !== opts.ifMatch)\n throw new MhError(\"stale\", `stale: document changed since ${opts.ifMatch}; re-read first`);\n if (fields.title !== undefined) emit(db, \"documents\", id, \"title\", fields.title);\n if (fields.database_id !== undefined) emit(db, \"documents\", id, \"database_id\", fields.database_id);\n if (fields.parent_id !== undefined) {\n // Reparenting moves the document into a new sibling scope, so its order_key\n // must be reassigned too — placeInSiblings keeps both consistent (and guards\n // against cycles) for every caller: CLI, WebUI, sync. Only act on a real\n // change so a no-op PATCH doesn't silently jump the document to the end.\n const next = fields.parent_id ?? null;\n if ((getDocument(db, id)!.parent_id ?? null) !== next) placeInSiblings(db, id, next);\n }\n if (fields.body !== undefined) {\n ensureBlocks(db, id);\n reconcileBody(db, id, fields.body);\n }\n return getDocument(db, id)!;\n});\n\nexport interface EditDocResult {\n id: string;\n changed: boolean;\n replaced: number;\n version: string;\n}\n\n/**\n * Anchored find/replace, like the Edit tool. `old` must occur exactly once\n * (or pass `replaceAll`); supplying it is the read-before-edit guarantee — you\n * cannot author it without current content, and drift surfaces as \"not found\".\n * `ifMatch` is an optional staleness backstop (a version from documentVersion).\n */\nexport const editDocument = grouped(function editDocument(\n db: DbDriver,\n id: string,\n opts: { old: string; new: string; replaceAll?: boolean; ifMatch?: string },\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n if (opts.ifMatch !== undefined && documentVersion(db, id) !== opts.ifMatch)\n throw new MhError(\"stale\", `stale: document changed since ${opts.ifMatch}; re-read first`);\n if (opts.old === \"\") throw new MhError(\"invalid_input\", \"--old must not be empty\");\n\n ensureBlocks(db, id);\n const blocks = liveBlocks(db, id);\n const body = serializeDocBlocks(blocks.map((b) => ({ text: b.text, blankAfter: b.blank_after })));\n const count = countOccurrences(body, opts.old);\n if (count === 0) throw new MhError(\"invalid_input\", `anchor not found: no match for --old`);\n if (count > 1 && !opts.replaceAll)\n throw new MhError(\n \"ambiguous\",\n `${count} matches for --old; add surrounding context or use --replace-all`,\n );\n\n // Fast path: edit stays within single blocks and introduces no block break.\n if (!opts.old.includes(\"\\n\\n\")) {\n const affected = blocks.filter((b) => b.text.includes(opts.old));\n const next = affected.map((b) =>\n opts.replaceAll ? b.text.replaceAll(opts.old, opts.new) : b.text.replace(opts.old, opts.new),\n );\n if (next.every((t) => t.length > 0 && !t.includes(\"\\n\\n\"))) {\n const targets = opts.replaceAll ? affected : affected.slice(0, 1);\n targets.forEach((b, i) => emit(db, \"doc_blocks\", b.id, \"text\", next[i]!));\n return { id, changed: true, replaced: opts.replaceAll ? count : 1, version: documentVersion(db, id) };\n }\n }\n\n // General path: rewrite the body and reconcile (handles spans/splits/merges).\n const newBody = opts.replaceAll\n ? body.replaceAll(opts.old, opts.new)\n : body.replace(opts.old, opts.new);\n reconcileBody(db, id, newBody);\n return { id, changed: newBody !== body, replaced: opts.replaceAll ? count : 1, version: documentVersion(db, id) };\n});\n\nexport const appendDocument = grouped(function appendDocument(\n db: DbDriver,\n id: string,\n body: string,\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n ensureBlocks(db, id);\n const next = parseDocBlocks(body);\n if (next.length) {\n const blocks = liveBlocks(db, id);\n const last = blocks.length ? blocks[blocks.length - 1]!.order_key : null;\n insertBlocks(db, id, next, last, null);\n }\n return { id, changed: next.length > 0, replaced: next.length, version: documentVersion(db, id) };\n});\n\nexport const prependDocument = grouped(function prependDocument(\n db: DbDriver,\n id: string,\n body: string,\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n ensureBlocks(db, id);\n const next = parseDocBlocks(body);\n if (next.length) {\n const blocks = liveBlocks(db, id);\n const first = blocks.length ? blocks[0]!.order_key : null;\n insertBlocks(db, id, next, null, first);\n }\n return { id, changed: next.length > 0, replaced: next.length, version: documentVersion(db, id) };\n});\n\nexport const deleteDocument = grouped(function deleteDocument(db: DbDriver, id: string): boolean {\n if (!getDocument(db, id)) return false;\n emit(db, \"documents\", id, \"__deleted\", 1);\n // Cascade off the tombstone, mirroring repairHub: the doc's blocks are derived\n // content -> tombstone them; live child documents survive as roots -> unparent.\n for (const b of liveChildIds(db, \"doc_blocks\", \"doc_id\", id))\n emit(db, \"doc_blocks\", b, \"__deleted\", 1);\n for (const c of liveChildIds(db, \"documents\", \"parent_id\", id))\n emit(db, \"documents\", c, \"parent_id\", null);\n return true;\n});\n\n/** Ids of live rows in `table` whose `col` references `parentId`. */\nfunction liveChildIds(db: DbDriver, table: string, col: string, parentId: string): string[] {\n return (\n db\n .query(`SELECT id FROM ${table} WHERE ${col} = ? AND __deleted = 0`)\n .all(parentId) as { id: string }[]\n ).map((r) => r.id);\n}\n\nfunction countOccurrences(haystack: string, needle: string): number {\n if (needle === \"\") return 0;\n let n = 0;\n let i = haystack.indexOf(needle);\n while (i !== -1) {\n n++;\n i = haystack.indexOf(needle, i + needle.length);\n }\n return n;\n}\n",
18
+ "import type { DbDriver } from \"./driver.ts\";\nimport { newId } from \"./ids.ts\";\nimport { emit, grouped } from \"./crdt.ts\";\nimport { parseDocBlocks, serializeDocBlocks, reconcile, type DocBlock } from \"./blocks.ts\";\nimport { keyBetween, keysBetween } from \"./fracdex.ts\";\nimport { MhError } from \"./errors.ts\";\nimport type { ColumnsOf } from \"./sqlcols.ts\";\n\nexport interface DocumentRow {\n id: string;\n title: string;\n body: string | null;\n database_id: string | null;\n parent_id: string | null;\n created_hlc: string;\n order_key: string | null;\n}\n\nexport type DocumentSummary = Omit<DocumentRow, \"body\">;\n\nexport const DOCUMENT_COLS = [\n \"id\", \"title\", \"body\", \"database_id\", \"parent_id\", \"created_hlc\", \"order_key\",\n] as const;\nconst _documentCols: ColumnsOf<DocumentRow, typeof DOCUMENT_COLS> = DOCUMENT_COLS;\nconst DOCUMENT_SELECT = DOCUMENT_COLS.join(\", \");\n\nconst DOC_SUMMARY_COLS = [\n \"id\", \"title\", \"database_id\", \"parent_id\", \"created_hlc\", \"order_key\",\n] as const;\nconst _docSummaryCols: ColumnsOf<DocumentSummary, typeof DOC_SUMMARY_COLS> = DOC_SUMMARY_COLS;\nconst DOC_SUMMARY_SELECT = DOC_SUMMARY_COLS.join(\", \");\n\ninterface BlockRow {\n id: string;\n text: string;\n order_key: string;\n blank_after: number;\n}\n\n// ---- block helpers ---------------------------------------------------------\n\nfunction liveBlocks(db: DbDriver, docId: string): BlockRow[] {\n return db\n .query(\n \"SELECT id, text, order_key, blank_after FROM doc_blocks WHERE doc_id = ? AND __deleted = 0 ORDER BY order_key, id\",\n )\n .all(docId) as BlockRow[];\n}\n\nfunction makeBlockId(text: string): string {\n return newId(\"blk\", text.split(\"\\n\", 1)[0] ?? \"\");\n}\n\n/** Emit a new block's fields; text last so the final body recompute is complete.\n * blank_after is only emitted when non-zero (0 is the column default). */\nfunction emitBlock(\n db: DbDriver,\n docId: string,\n fields: { text: string; order_key: string; blankAfter: number },\n): void {\n const id = makeBlockId(fields.text);\n emit(db, \"doc_blocks\", id, \"doc_id\", docId);\n emit(db, \"doc_blocks\", id, \"order_key\", fields.order_key);\n if (fields.blankAfter) emit(db, \"doc_blocks\", id, \"blank_after\", fields.blankAfter);\n emit(db, \"doc_blocks\", id, \"text\", fields.text);\n}\n\nfunction insertBlocks(\n db: DbDriver,\n docId: string,\n blocks: readonly DocBlock[],\n after: string | null,\n before: string | null,\n): void {\n const keys = keysBetween(after, before, blocks.length);\n blocks.forEach((b, i) =>\n emitBlock(db, docId, { text: b.text, order_key: keys[i]!, blankAfter: b.blankAfter }),\n );\n}\n\n/** Lazily migrate a legacy body-only document into blocks (idempotent). */\nfunction ensureBlocks(db: DbDriver, docId: string): void {\n if (db.query(\"SELECT 1 AS x FROM doc_blocks WHERE doc_id = ? LIMIT 1\").get(docId))\n return;\n const row = db.query(\"SELECT body FROM documents WHERE id = ?\").get(docId) as\n | { body: string | null }\n | null;\n const blocks = parseDocBlocks(row?.body ?? \"\");\n if (blocks.length) insertBlocks(db, docId, blocks, null, null);\n}\n\n/** Diff a full new body against current blocks; keep unchanged, delete/insert the rest. */\nfunction reconcileBody(db: DbDriver, docId: string, body: string): void {\n const old = liveBlocks(db, docId);\n const next = parseDocBlocks(body);\n const plan = reconcile(\n old.map((b) => b.text),\n next.map((b) => b.text),\n );\n\n for (const oi of plan.deleted) emit(db, \"doc_blocks\", old[oi]!.id, \"__deleted\", 1);\n\n const { items } = plan;\n let i = 0;\n while (i < items.length) {\n const it = items[i]!;\n if (\"keep\" in it) {\n // Text unchanged: only the surrounding blank-line count may have shifted.\n const oldB = old[it.keep]!;\n const want = next[i]!.blankAfter;\n if ((oldB.blank_after ?? 0) !== want) emit(db, \"doc_blocks\", oldB.id, \"blank_after\", want);\n i++;\n continue;\n }\n let j = i;\n while (j < items.length && \"insert\" in items[j]!) j++;\n const left = i > 0 ? old[(items[i - 1] as { keep: number }).keep]!.order_key : null;\n const right = j < items.length ? old[(items[j] as { keep: number }).keep]!.order_key : null;\n insertBlocks(db, docId, next.slice(i, j), left, right);\n i = j;\n }\n}\n\n/** Max HLC over a document's own register and all its blocks — a read/edit token. */\nexport function documentVersion(db: DbDriver, id: string): string {\n const row = db\n .query(\n `SELECT MAX(hlc) AS h FROM crdt_changes\n WHERE (dataset = 'documents' AND row_id = ?)\n OR (dataset = 'doc_blocks' AND row_id IN (SELECT id FROM doc_blocks WHERE doc_id = ?))`,\n )\n .get(id, id) as { h: string | null };\n return row.h ?? \"\";\n}\n\n// ---- public API ------------------------------------------------------------\n\nexport const createDocument = grouped(function createDocument(\n db: DbDriver,\n opts: { title: string; body?: string; database_id?: string; parent_id?: string },\n): DocumentRow {\n const id = newId(\"doc\", opts.title);\n const first = emit(db, \"documents\", id, \"title\", opts.title);\n emit(db, \"documents\", id, \"created_hlc\", first.hlc);\n if (opts.database_id !== undefined) emit(db, \"documents\", id, \"database_id\", opts.database_id);\n if (opts.parent_id !== undefined) emit(db, \"documents\", id, \"parent_id\", opts.parent_id);\n placeInSiblings(db, id, opts.parent_id ?? null); // append to the end of its sibling group\n if (opts.body !== undefined) {\n const blocks = parseDocBlocks(opts.body);\n if (blocks.length) insertBlocks(db, id, blocks, null, null);\n }\n return getDocument(db, id)!;\n});\n\nexport function getDocument(db: DbDriver, id: string): DocumentRow | null {\n return db\n .query(`SELECT ${DOCUMENT_SELECT} FROM documents WHERE id = ? AND __deleted = 0`)\n .get(id) as DocumentRow | null;\n}\n\n/** Display order among siblings: explicit order_key first, NULLs fall back to\n * creation time so an un-backfilled tree still renders in its historical order. */\nconst ORDER_BY = \"ORDER BY order_key IS NULL, order_key, created_hlc, id\";\n\nexport function listDocuments(\n db: DbDriver,\n opts: { database_id?: string; parent_id?: string } = {},\n): DocumentSummary[] {\n const cols = `SELECT ${DOC_SUMMARY_SELECT} FROM documents WHERE __deleted = 0`;\n if (opts.parent_id !== undefined)\n return db\n .query(`${cols} AND parent_id = ? ${ORDER_BY}`)\n .all(opts.parent_id) as DocumentSummary[];\n if (opts.database_id)\n return db\n .query(`${cols} AND database_id = ? ${ORDER_BY}`)\n .all(opts.database_id) as DocumentSummary[];\n return db.query(`${cols} ${ORDER_BY}`).all() as DocumentSummary[];\n}\n\n// ---- sibling ordering (fractional index scoped per parent_id) --------------\n\ninterface SiblingRow {\n id: string;\n order_key: string | null;\n}\n\n/** WHERE fragment + args selecting siblings under `parentId` (null = top level). */\nfunction siblingWhere(parentId: string | null): { clause: string; args: string[] } {\n return parentId === null\n ? { clause: \"parent_id IS NULL\", args: [] }\n : { clause: \"parent_id = ?\", args: [parentId] };\n}\n\nfunction canEmitOrderKeys(db: DbDriver): boolean {\n return tableExists(db, \"meta\") && tableExists(db, \"crdt_changes\");\n}\n\nfunction tableExists(db: DbDriver, table: string): boolean {\n return (\n db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE type = 'table' AND name = ?\")\n .get(table) != null\n );\n}\n\n/** Greatest order_key among siblings (optionally ignoring one row being placed). */\nfunction lastSiblingOrderKey(\n db: DbDriver,\n parentId: string | null,\n excludeId?: string,\n): string | null {\n const w = siblingWhere(parentId);\n const exclude = excludeId ? \" AND id <> ?\" : \"\";\n const row = db\n .query(\n `SELECT order_key FROM documents WHERE ${w.clause}${exclude}\n AND __deleted = 0 AND order_key IS NOT NULL\n ORDER BY order_key DESC, id DESC LIMIT 1`,\n )\n .get(...w.args, ...(excludeId ? [excludeId] : [])) as { order_key: string | null } | null;\n return row?.order_key ?? null;\n}\n\nfunction orderedSiblings(db: DbDriver, parentId: string | null): SiblingRow[] {\n const w = siblingWhere(parentId);\n return db\n .query(`SELECT id, order_key FROM documents WHERE ${w.clause} AND __deleted = 0 ${ORDER_BY}`)\n .all(...w.args) as SiblingRow[];\n}\n\n/** Re-space every sibling's key evenly — escape hatch when fractional keys collide. */\nfunction rebalanceSiblings(db: DbDriver, parentId: string | null): void {\n const rows = orderedSiblings(db, parentId);\n const keys = keysBetween(null, null, rows.length);\n rows.forEach((row, i) => {\n if (row.order_key !== keys[i]) emit(db, \"documents\", row.id, \"order_key\", keys[i]!);\n });\n}\n\n/** Assign keys to siblings that still lack one, appending in creation order. */\nfunction backfillSiblings(db: DbDriver, parentId: string | null): void {\n const emitChange = canEmitOrderKeys(db);\n const w = siblingWhere(parentId);\n const missing = db\n .query(\n `SELECT id FROM documents WHERE ${w.clause} AND __deleted = 0 AND order_key IS NULL\n ORDER BY created_hlc, id`,\n )\n .all(...w.args) as { id: string }[];\n if (!missing.length) return;\n const keys = keysBetween(lastSiblingOrderKey(db, parentId), null, missing.length);\n missing.forEach((row, i) => {\n if (emitChange) emit(db, \"documents\", row.id, \"order_key\", keys[i]!);\n else db.query(\"UPDATE documents SET order_key = ? WHERE id = ?\").run(keys[i]!, row.id);\n });\n}\n\n/** Backfill order_key for every parent group that has un-keyed live documents. */\nexport const backfillDocumentOrderKeys = grouped(function backfillDocumentOrderKeys(\n db: DbDriver,\n): void {\n const parents = db\n .query(\"SELECT DISTINCT parent_id FROM documents WHERE __deleted = 0 AND order_key IS NULL\")\n .all() as { parent_id: string | null }[];\n for (const p of parents) backfillSiblings(db, p.parent_id);\n});\n\n/**\n * Place `id` under `parentId` at the given position — the single point where a\n * document's parent_id and order_key are kept consistent (reparent always\n * implies a new sibling scope). No `anchor` appends to the end of the group.\n */\nfunction placeInSiblings(\n db: DbDriver,\n id: string,\n parentId: string | null,\n anchor?: { targetId: string; where: \"before\" | \"after\" },\n): void {\n // Walk the prospective ancestor chain; reaching `id` would form a cycle and\n // make the tree unrenderable. Guarded here so every caller is protected.\n let cur: string | null | undefined = parentId;\n while (cur) {\n if (cur === id) throw new MhError(\"invalid_input\", `cannot set parent_id: would create a cycle (${id})`);\n cur = getDocument(db, cur)?.parent_id ?? null;\n }\n\n const current = getDocument(db, id);\n if (current && (current.parent_id ?? null) !== parentId)\n emit(db, \"documents\", id, \"parent_id\", parentId);\n\n let key: string;\n if (!anchor) {\n key = keyBetween(lastSiblingOrderKey(db, parentId, id), null);\n } else {\n backfillSiblings(db, parentId); // ensure neighbors carry comparable keys\n const neighbors = (): [string | null, string | null] => {\n const rows = orderedSiblings(db, parentId).filter((r) => r.id !== id);\n const to = rows.findIndex((r) => r.id === anchor.targetId);\n if (to < 0) throw new MhError(\"not_found\", `no such target document: ${anchor.targetId}`);\n return anchor.where === \"before\"\n ? [rows[to - 1]?.order_key ?? null, rows[to]!.order_key]\n : [rows[to]!.order_key, rows[to + 1]?.order_key ?? null];\n };\n let [left, right] = neighbors();\n if (left !== null && right !== null && left >= right) {\n rebalanceSiblings(db, parentId);\n [left, right] = neighbors();\n }\n key = keyBetween(left, right);\n }\n emit(db, \"documents\", id, \"order_key\", key);\n}\n\n/**\n * Move a document next to / into another, atomically updating both its parent\n * and its order_key. `into` nests it as the last child of `targetId`;\n * `before`/`after` re-orders (and reparents if needed) among the target's siblings.\n */\nexport const moveDocument = grouped(function moveDocument(\n db: DbDriver,\n id: string,\n targetId: string,\n where: \"before\" | \"after\" | \"into\",\n): DocumentRow {\n const src = getDocument(db, id);\n if (!src) throw new MhError(\"not_found\", `no such document: ${id}`);\n if (id === targetId) return src;\n const target = getDocument(db, targetId);\n if (!target) throw new MhError(\"not_found\", `no such target document: ${targetId}`);\n\n if (where === \"into\") placeInSiblings(db, id, targetId);\n else placeInSiblings(db, id, target.parent_id, { targetId, where });\n return getDocument(db, id)!;\n});\n\n/**\n * Copy a document — title, every block (verbatim, with fresh block ids so the\n * copy edits independently) and its `database_id`/`parent_id`. The copy lands\n * right after its source in the same sibling scope. Blocks are cloned at the\n * block level (not via a markdown round-trip) so empty list items / blank-line\n * runs survive losslessly. `title`/`parentId` override the defaults; the locale\n * \"copy\" suffix is the caller's job. `created_hlc` is the copy's own birth time.\n */\nexport const duplicateDocument = grouped(function duplicateDocument(\n db: DbDriver,\n id: string,\n opts: { title?: string; parentId?: string | null } = {},\n): DocumentRow {\n const src = getDocument(db, id);\n if (!src) throw new MhError(\"not_found\", `no such document: ${id}`);\n ensureBlocks(db, id);\n const blocks = liveBlocks(db, id);\n const parentId = opts.parentId !== undefined ? opts.parentId : src.parent_id;\n const dup = createDocument(db, {\n title: opts.title ?? src.title,\n database_id: src.database_id ?? undefined,\n parent_id: parentId ?? undefined,\n });\n if (blocks.length)\n insertBlocks(\n db,\n dup.id,\n blocks.map((b) => ({ text: b.text, blankAfter: b.blank_after })),\n null,\n null,\n );\n // Sit the copy right after its source when they share a sibling scope.\n if (parentId === src.parent_id) moveDocument(db, dup.id, src.id, \"after\");\n return getDocument(db, dup.id)!;\n});\n\nexport const updateDocument = grouped(function updateDocument(\n db: DbDriver,\n id: string,\n fields: { title?: string; body?: string; database_id?: string; parent_id?: string | null },\n opts: { ifMatch?: string } = {},\n): DocumentRow {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n // Same staleness backstop as editDocument: a version from documentVersion()\n // rejects the write if the doc changed since the caller read it.\n if (opts.ifMatch !== undefined && documentVersion(db, id) !== opts.ifMatch)\n throw new MhError(\"stale\", `stale: document changed since ${opts.ifMatch}; re-read first`);\n if (fields.title !== undefined) emit(db, \"documents\", id, \"title\", fields.title);\n if (fields.database_id !== undefined) emit(db, \"documents\", id, \"database_id\", fields.database_id);\n if (fields.parent_id !== undefined) {\n // Reparenting moves the document into a new sibling scope, so its order_key\n // must be reassigned too — placeInSiblings keeps both consistent (and guards\n // against cycles) for every caller: CLI, WebUI, sync. Only act on a real\n // change so a no-op PATCH doesn't silently jump the document to the end.\n const next = fields.parent_id ?? null;\n if ((getDocument(db, id)!.parent_id ?? null) !== next) placeInSiblings(db, id, next);\n }\n if (fields.body !== undefined) {\n ensureBlocks(db, id);\n reconcileBody(db, id, fields.body);\n }\n return getDocument(db, id)!;\n});\n\nexport interface EditDocResult {\n id: string;\n changed: boolean;\n replaced: number;\n version: string;\n}\n\n/**\n * Anchored find/replace, like the Edit tool. `old` must occur exactly once\n * (or pass `replaceAll`); supplying it is the read-before-edit guarantee — you\n * cannot author it without current content, and drift surfaces as \"not found\".\n * `ifMatch` is an optional staleness backstop (a version from documentVersion).\n */\nexport const editDocument = grouped(function editDocument(\n db: DbDriver,\n id: string,\n opts: { old: string; new: string; replaceAll?: boolean; ifMatch?: string },\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n if (opts.ifMatch !== undefined && documentVersion(db, id) !== opts.ifMatch)\n throw new MhError(\"stale\", `stale: document changed since ${opts.ifMatch}; re-read first`);\n if (opts.old === \"\") throw new MhError(\"invalid_input\", \"--old must not be empty\");\n\n ensureBlocks(db, id);\n const blocks = liveBlocks(db, id);\n const body = serializeDocBlocks(blocks.map((b) => ({ text: b.text, blankAfter: b.blank_after })));\n const count = countOccurrences(body, opts.old);\n if (count === 0) throw new MhError(\"invalid_input\", `anchor not found: no match for --old`);\n if (count > 1 && !opts.replaceAll)\n throw new MhError(\n \"ambiguous\",\n `${count} matches for --old; add surrounding context or use --replace-all`,\n );\n\n // Fast path: edit stays within single blocks and introduces no block break.\n if (!opts.old.includes(\"\\n\\n\")) {\n const affected = blocks.filter((b) => b.text.includes(opts.old));\n // Function replacer → the new text is written verbatim; a string replacement\n // would expand `$&`/`$$`/`` $` ``/`$'` in the user's value.\n const next = affected.map((b) =>\n opts.replaceAll\n ? b.text.replaceAll(opts.old, () => opts.new)\n : b.text.replace(opts.old, () => opts.new),\n );\n if (next.every((t) => t.length > 0 && !t.includes(\"\\n\\n\"))) {\n const targets = opts.replaceAll ? affected : affected.slice(0, 1);\n // Skip a no-op emit (old === new) so a pure no-change doesn't bump the\n // version, and `changed` reports the real effect.\n let wrote = false;\n targets.forEach((b, i) => {\n if (next[i] !== b.text) {\n emit(db, \"doc_blocks\", b.id, \"text\", next[i]!);\n wrote = true;\n }\n });\n return { id, changed: wrote, replaced: opts.replaceAll ? count : 1, version: documentVersion(db, id) };\n }\n }\n\n // General path: rewrite the body and reconcile (handles spans/splits/merges).\n const newBody = opts.replaceAll\n ? body.replaceAll(opts.old, () => opts.new)\n : body.replace(opts.old, () => opts.new);\n reconcileBody(db, id, newBody);\n return { id, changed: newBody !== body, replaced: opts.replaceAll ? count : 1, version: documentVersion(db, id) };\n});\n\n/** One anchored find/replace within a batch; `new`/`replaceAll` default like the single-pair form. */\nexport interface EditPair {\n old: string;\n new?: string;\n replaceAll?: boolean;\n}\n\n/**\n * Apply several anchored find/replaces in one single-versioned pass — the batch\n * form of {@link editDocument}. Pairs fold left-to-right over the evolving body\n * (a later `old` can match an earlier `new`), EVERY pair is validated before\n * anything is written (validate-all-before-write), so any failing pair (empty/\n * missing/ambiguous anchor) aborts with the document untouched. The writes then\n * land in one oplog change-group (one revision, one version bump). `ifMatch` is\n * checked once up front, so callers need only a single `doc read` for N deltas.\n * NB: \"one pass\" here is validate-before-write + single-version, NOT a DB\n * transaction — like every `grouped` mutator, there is no cross-process lock or\n * rollback; concurrent writers reconcile via the block-level CRDT / LWW.\n */\nexport const editDocumentBatch = grouped(function editDocumentBatch(\n db: DbDriver,\n id: string,\n opts: { edits: EditPair[]; ifMatch?: string },\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n if (opts.edits.length === 0) throw new MhError(\"invalid_input\", \"no edits given\");\n if (opts.ifMatch !== undefined && documentVersion(db, id) !== opts.ifMatch)\n throw new MhError(\"stale\", `stale: document changed since ${opts.ifMatch}; re-read first`);\n\n ensureBlocks(db, id);\n const orig = serializeDocBlocks(\n liveBlocks(db, id).map((b) => ({ text: b.text, blankAfter: b.blank_after })),\n );\n\n // Validate + fold every pair over the evolving string first; any throw here\n // happens before the single reconcileBody below, so a bad pair leaves the doc\n // untouched (no emit) — atomicity without a rollback.\n let body = orig;\n let total = 0;\n opts.edits.forEach((e, i) => {\n if (e.old === \"\") throw new MhError(\"invalid_input\", `edit[${i}]: old must not be empty`);\n const count = countOccurrences(body, e.old);\n if (count === 0) throw new MhError(\"invalid_input\", `edit[${i}]: anchor not found: no match for old`);\n if (count > 1 && !e.replaceAll)\n throw new MhError(\n \"ambiguous\",\n `edit[${i}]: ${count} matches for old; add surrounding context or set replaceAll`,\n );\n const repl = e.new ?? \"\";\n // Function replacer → `repl` is written verbatim (no `$&`/`$$` expansion).\n body = e.replaceAll ? body.replaceAll(e.old, () => repl) : body.replace(e.old, () => repl);\n total += e.replaceAll ? count : 1;\n });\n\n if (body !== orig) reconcileBody(db, id, body);\n return { id, changed: body !== orig, replaced: total, version: documentVersion(db, id) };\n});\n\nexport const appendDocument = grouped(function appendDocument(\n db: DbDriver,\n id: string,\n body: string,\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n ensureBlocks(db, id);\n const next = parseDocBlocks(body);\n if (next.length) {\n const blocks = liveBlocks(db, id);\n const last = blocks.length ? blocks[blocks.length - 1]!.order_key : null;\n insertBlocks(db, id, next, last, null);\n }\n return { id, changed: next.length > 0, replaced: next.length, version: documentVersion(db, id) };\n});\n\nexport const prependDocument = grouped(function prependDocument(\n db: DbDriver,\n id: string,\n body: string,\n): EditDocResult {\n if (!getDocument(db, id)) throw new MhError(\"not_found\", `no such document: ${id}`);\n ensureBlocks(db, id);\n const next = parseDocBlocks(body);\n if (next.length) {\n const blocks = liveBlocks(db, id);\n const first = blocks.length ? blocks[0]!.order_key : null;\n insertBlocks(db, id, next, null, first);\n }\n return { id, changed: next.length > 0, replaced: next.length, version: documentVersion(db, id) };\n});\n\nexport const deleteDocument = grouped(function deleteDocument(db: DbDriver, id: string): boolean {\n if (!getDocument(db, id)) return false;\n emit(db, \"documents\", id, \"__deleted\", 1);\n // Cascade off the tombstone, mirroring repairHub: the doc's blocks are derived\n // content -> tombstone them; live child documents survive as roots -> unparent.\n for (const b of liveChildIds(db, \"doc_blocks\", \"doc_id\", id))\n emit(db, \"doc_blocks\", b, \"__deleted\", 1);\n for (const c of liveChildIds(db, \"documents\", \"parent_id\", id))\n emit(db, \"documents\", c, \"parent_id\", null);\n return true;\n});\n\n/** Ids of live rows in `table` whose `col` references `parentId`. */\nfunction liveChildIds(db: DbDriver, table: string, col: string, parentId: string): string[] {\n return (\n db\n .query(`SELECT id FROM ${table} WHERE ${col} = ? AND __deleted = 0`)\n .all(parentId) as { id: string }[]\n ).map((r) => r.id);\n}\n\nfunction countOccurrences(haystack: string, needle: string): number {\n if (needle === \"\") return 0;\n let n = 0;\n let i = haystack.indexOf(needle);\n while (i !== -1) {\n n++;\n i = haystack.indexOf(needle, i + needle.length);\n }\n return n;\n}\n",
19
19
  "// Portable (driver-only) half of the blob ledger: policy, presence, the offline\n// \"is this cached blob safe to clear?\" judgment, the reference index, and the\n// node-local blob_cache bookkeeping. No node:fs / Bun here, so a browser worker\n// can read the same judgment. The byte-touching half (delete from disk, resolve\n// missing bytes over the network) lives in blobs.ts.\n//\n// Model: blob bytes are content-addressed (cache.ts). A device may CLEAR a local\n// blob's bytes only when a durable anchor is designated (blob_policy.fullNodes)\n// AND the blob is not this node's own not-yet-flushed production — so the\n// reference (hash, kept in the oplog) stays re-fetchable. A device that is itself\n// a full node, or ANY device while no full node is designated, never clears (the\n// safety floor: with no anchor there is no guaranteed holder, so a cache copy may\n// be the last copy). Durability is judged locally via blob_cache.pending; see\n// docs/impl-context/22-blob-sync (D4, safety-floor revision).\n\nimport type { DbDriver } from \"./driver.ts\";\nimport { emit, withChangeGroup } from \"./crdt.ts\";\nimport { getNodeId } from \"./node.ts\";\n\nexport const POLICY_ID = \"default\";\n\nexport type Redundancy = \"all\" | \"any\";\n\nexport interface BlobPolicy {\n fullNodes: string[];\n redundancy: Redundancy;\n}\n\nexport interface CachedBlob {\n hash: string;\n size: number;\n content_type: string | null;\n last_access: number | null;\n /** Node-local pin: 1 = never auto-evicted / cleared (does not sync). */\n pinned: number;\n /** 1 = bytes produced here, not yet flushed to a durable anchor — protected. */\n pending: number;\n /** Node-local: 1 = the last presence verify confirmed a designated anchor holds\n * this blob (per redundancy). Drives isClearable; reset to 0 on policy change. */\n anchored: number;\n}\n\nexport interface CacheStats {\n /** Total bytes currently held in the node-local cache. */\n totalBytes: number;\n /** Bytes safe to clear (durable on the required full set). */\n clearableBytes: number;\n /** Bytes that cannot be cleared (sole copy / no anchor / this is a full node). */\n retainedBytes: number;\n count: number;\n clearableCount: number;\n}\n\n// ---- policy -----------------------------------------------------------------\n\nexport function readPolicy(db: DbDriver): BlobPolicy {\n const row = db\n .query(\"SELECT full_nodes, redundancy FROM blob_policy WHERE id = ? AND __deleted = 0\")\n .get(POLICY_ID) as { full_nodes: string | null; redundancy: string | null } | null;\n let fullNodes: string[] = [];\n if (row?.full_nodes) {\n try {\n const parsed = JSON.parse(row.full_nodes);\n if (Array.isArray(parsed)) fullNodes = parsed.filter((n) => typeof n === \"string\");\n } catch {\n // malformed — treat as none designated\n }\n }\n const redundancy: Redundancy = row?.redundancy === \"any\" ? \"any\" : \"all\";\n return { fullNodes, redundancy };\n}\n\n/** Designate the full-blob anchors (synced workspace policy). Each entry is\n * either a node id (a device that keeps everything) OR a bucket url `s3://…`\n * (object storage as a durable full library). Bucket urls never match a node id,\n * so isFullBlobNode()/isClearable() are unaffected — they're a visible guardrail. */\nexport const setFullNodes = (db: DbDriver, nodeIds: string[]): void => {\n withChangeGroup(null, () => {\n // de-dupe, keep order\n const seen = new Set<string>();\n const list = nodeIds.filter((n) => n && !seen.has(n) && seen.add(n) != null);\n emit(db, \"blob_policy\", POLICY_ID, \"full_nodes\", list);\n // ensure redundancy has a concrete value on first designation\n const cur = readPolicy(db);\n if (cur.redundancy == null) emit(db, \"blob_policy\", POLICY_ID, \"redundancy\", \"all\");\n });\n invalidateAnchored(db); // anchor set changed → prior verify verdict is stale\n};\n\nexport const setRedundancy = (db: DbDriver, redundancy: Redundancy): void => {\n emit(db, \"blob_policy\", POLICY_ID, \"redundancy\", redundancy);\n invalidateAnchored(db); // any/all changed → re-verify before anything is clearable\n};\n\n/** Is `node` (default: this device) a designated full-blob library? */\nexport function isFullBlobNode(db: DbDriver, node?: string): boolean {\n const id = node ?? getNodeId(db);\n return readPolicy(db).fullNodes.includes(id);\n}\n\n// ---- clear judgment ---------------------------------------------------------\n\n/**\n * Whether this device may safely drop `hash`'s local bytes — a purely LOCAL,\n * offline decision read from local flags. Clearable requires ALL of:\n * 1. This node is not itself the full-blob library (a full node keeps everything).\n * 2. The blob is not a `pending` production (bytes produced here, not yet flushed\n * to an anchor) — the only locally-unique copy.\n * 3. `anchored == 1`: the last presence verify confirmed a designated anchor holds\n * this blob, per redundancy(any/all). Until a verify runs (or after a policy\n * change resets it), anchored is 0 → nothing is clearable (conservative). This\n * replaces the earlier coarse \"an anchor is designated\" floor with a per-blob,\n * freshly-verified fact. See verifyAnchorPresence (blobs.ts) and\n * docs/impl-context/22-blob-sync (D4, on-demand presence verify).\n */\nexport function isClearable(db: DbDriver, hash: string): boolean {\n if (isFullBlobNode(db)) return false; // this node IS the full library → keeps everything\n const row = db\n .query(\"SELECT pending, anchored FROM blob_cache WHERE hash = ?\")\n .get(hash) as { pending: number; anchored: number } | null;\n return !!row && row.pending === 0 && row.anchored === 1;\n}\n\n// ---- verified-presence bookkeeping (node-local) -----------------------------\n\n/** Record/clear the per-blob \"a designated anchor verifiably holds this\" flag. */\nexport function setAnchored(db: DbDriver, hash: string, anchored: boolean): void {\n db.query(\"UPDATE blob_cache SET anchored = ? WHERE hash = ?\").run(anchored ? 1 : 0, hash);\n}\n\nexport function isAnchored(db: DbDriver, hash: string): boolean {\n const row = db.query(\"SELECT anchored FROM blob_cache WHERE hash = ?\").get(hash) as\n | { anchored: number }\n | null;\n return !!row && row.anchored === 1;\n}\n\n/** Drop every verified verdict (after a policy change) — forces a re-verify before\n * anything is clearable again. Also clears the last-verified stamp. */\nexport function invalidateAnchored(db: DbDriver): void {\n db.query(\"UPDATE blob_cache SET anchored = 0\").run();\n db.query(\"DELETE FROM meta WHERE key = ?\").run(BLOB_VERIFIED_AT_KEY);\n}\n\nconst BLOB_VERIFIED_AT_KEY = \"blob_verified_at\";\n\n/** Epoch-ms of the last successful presence verify, or null if never / invalidated. */\nexport function readBlobVerifiedAt(db: DbDriver): number | null {\n const row = db.query(\"SELECT value FROM meta WHERE key = ?\").get(BLOB_VERIFIED_AT_KEY) as\n | { value: string }\n | null;\n return row ? Number(row.value) : null;\n}\n\nexport function writeBlobVerifiedAt(db: DbDriver, ts: number): void {\n db.query(\n \"INSERT INTO meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value\",\n ).run(BLOB_VERIFIED_AT_KEY, String(ts));\n}\n\n// ---- reference index --------------------------------------------------------\n\n/** Matches a doc image reference `/blob/<hash>` (canonical 32-hex or legacy\n * 64-hex). Works on raw markdown and JSON-encoded oplog values alike. */\nconst DOC_BLOB_REF = /\\/blob\\/([0-9a-f]{16,64})/g;\n\n/** Blob hashes referenced by a `/blob/<hash>` URL inside a markdown/text value. */\nexport function blobRefsIn(text: string | null): string[] {\n if (!text) return [];\n const out: string[] = [];\n for (const m of text.matchAll(DOC_BLOB_REF)) out.push(m[1]!);\n return out;\n}\n\n/**\n * Every blob hash a live document or site still points at. Union of:\n * - site_files rows stored as a blob (content = hash), and\n * - `/blob/<hash>` references inside live doc_blocks markdown (doc images).\n * Drives GC (orphan = not in this set) and a full node's byte acquisition.\n */\nexport function referencedHashes(db: DbDriver): Set<string> {\n const out = new Set<string>();\n const files = db\n .query(\"SELECT content FROM site_files WHERE encoding = 'blob' AND __deleted = 0\")\n .all() as { content: string | null }[];\n for (const f of files) if (f.content) out.add(f.content);\n\n const blocks = db\n .query(\"SELECT text FROM doc_blocks WHERE __deleted = 0 AND text LIKE '%/blob/%'\")\n .all() as { text: string | null }[];\n for (const b of blocks) for (const h of blobRefsIn(b.text)) out.add(h);\n return out;\n}\n\n// ---- node-local cache ledger (blob_cache) -----------------------------------\n\n/** Record/refresh a blob's ledger row after its bytes land in the cache. */\n/** Record/refresh a cached blob. `pending`: 1 for bytes PRODUCED here (must flush\n * to an anchor before they're clearable), 0 for an ACQUIRED cache copy (already\n * durable at its source). */\nexport function recordBlob(\n db: DbDriver,\n hash: string,\n size: number,\n contentType?: string | null,\n pending = 1,\n): void {\n db.query(\n `INSERT INTO blob_cache (hash, size, content_type, last_access, pending)\n VALUES (?, ?, ?, ?, ?)\n ON CONFLICT(hash) DO UPDATE SET\n size = excluded.size,\n content_type = coalesce(excluded.content_type, blob_cache.content_type),\n last_access = excluded.last_access,\n pending = excluded.pending`,\n ).run(hash, size, contentType ?? null, Date.now(), pending ? 1 : 0);\n}\n\n/** Mark a blob flushed (0) or pending (1). Flush is set after the bytes are\n * confirmed at the durable anchor (see blobs.ts blobMaintenance). */\nexport function setPending(db: DbDriver, hash: string, pending: boolean): void {\n db.query(\"UPDATE blob_cache SET pending = ? WHERE hash = ?\").run(pending ? 1 : 0, hash);\n}\n\n/** Bump last_access on a cache hit (LRU signal for stats/future eviction). */\nexport function touchBlob(db: DbDriver, hash: string): void {\n db.query(\"UPDATE blob_cache SET last_access = ? WHERE hash = ?\").run(Date.now(), hash);\n}\n\nexport function forgetBlob(db: DbDriver, hash: string): void {\n db.query(\"DELETE FROM blob_cache WHERE hash = ?\").run(hash);\n}\n\nexport function cachedBlobs(db: DbDriver): CachedBlob[] {\n return db\n .query(\"SELECT hash, size, content_type, last_access, pinned, pending, anchored FROM blob_cache\")\n .all() as CachedBlob[];\n}\n\n/** Blobs produced here that are not yet flushed to a durable anchor (the upload\n * worklist; steady state is empty). */\nexport function pendingBlobs(db: DbDriver): { hash: string; size: number }[] {\n return db\n .query(\"SELECT hash, size FROM blob_cache WHERE pending = 1\")\n .all() as { hash: string; size: number }[];\n}\n\n/** Pin/unpin a cached blob (node-local; never synced). Returns true when a row\n * was updated (false when the hash isn't in the ledger). */\nexport function setPinned(db: DbDriver, hash: string, pinned: boolean): boolean {\n return (\n db.query(\"UPDATE blob_cache SET pinned = ? WHERE hash = ?\").run(pinned ? 1 : 0, hash)\n .changes > 0\n );\n}\n\n/** Is a cached blob pinned? (false when not in the ledger). */\nexport function isPinned(db: DbDriver, hash: string): boolean {\n const row = db\n .query(\"SELECT pinned FROM blob_cache WHERE hash = ?\")\n .get(hash) as { pinned: number } | null;\n return !!row?.pinned;\n}\n\n/** Recorded content type for a cached blob (null when unknown / not cached). */\nexport function blobContentType(db: DbDriver, hash: string): string | null {\n const row = db\n .query(\"SELECT content_type FROM blob_cache WHERE hash = ?\")\n .get(hash) as { content_type: string | null } | null;\n return row?.content_type ?? null;\n}\n\nexport function cacheStats(db: DbDriver): CacheStats {\n const blobs = cachedBlobs(db);\n let totalBytes = 0;\n let clearableBytes = 0;\n let clearableCount = 0;\n for (const b of blobs) {\n totalBytes += b.size;\n if (isClearable(db, b.hash)) {\n clearableBytes += b.size;\n clearableCount++;\n }\n }\n return {\n totalBytes,\n clearableBytes,\n retainedBytes: totalBytes - clearableBytes,\n count: blobs.length,\n clearableCount,\n };\n}\n\n// ---- device roster (for designating full nodes) -----------------------------\n\nexport interface KnownNode {\n nodeId: string;\n label: string | null;\n self: boolean;\n}\n\n/** Distinct node ids this device knows about (self + outbound peers + grantees),\n * for the \"pick a full-blob device\" selector in Settings / CLI. */\nexport function knownNodes(db: DbDriver): KnownNode[] {\n const self = getNodeId(db);\n const byId = new Map<string, string | null>();\n byId.set(self, null);\n const peers = db\n .query(\"SELECT node_id, label FROM peers WHERE node_id IS NOT NULL\")\n .all() as { node_id: string; label: string | null }[];\n for (const p of peers) if (!byId.get(p.node_id)) byId.set(p.node_id, p.label ?? byId.get(p.node_id) ?? null);\n const grants = db\n .query(\"SELECT DISTINCT node_id FROM peer_grants WHERE node_id IS NOT NULL\")\n .all() as { node_id: string }[];\n for (const g of grants) if (!byId.has(g.node_id)) byId.set(g.node_id, null);\n return [...byId.entries()].map(([nodeId, label]) => ({ nodeId, label, self: nodeId === self }));\n}\n",
20
20
  "// Single source of truth for the synthetic storage-peer key. Runtime-agnostic\n// (no Bun / node imports) so EVERY producer derives the identical key: the CLI\n// and server route (peers.ts addAndSyncStoragePeer), the WebUI worker's own add\n// path (db-worker addStorageReplica), and the schema migration. Any divergence\n// re-creates the very bug this key shape fixes — the same bucket registered two\n// ways becomes two peers with independent cursors, and a migration that rewrites\n// one producer's output while another keeps emitting the old shape turns into a\n// permanent whack-a-mole rename.\n\nexport const DEFAULT_STORAGE_PREFIX = \"metahub\";\n\nconst DEFAULT_PORT: Record<string, string> = { \"https:\": \"443\", \"http:\": \"80\" };\n\n/**\n * Stable host[:port] component of an S3 endpoint for the peer key. The default\n * port is stripped so `https://h` and `https://h:443` collapse to one key (that\n * spurious split is exactly the collision class the endpoint-qualified key is\n * meant to remove). Falls back to a parsed-by-hand host when the endpoint isn't\n * a valid URL, kept deterministic.\n */\nexport function storageEndpointHost(endpoint: string): string {\n try {\n const u = new URL(endpoint);\n const port = u.port && u.port !== DEFAULT_PORT[u.protocol] ? `:${u.port}` : \"\";\n return u.hostname + port;\n } catch {\n return endpoint\n .trim()\n .replace(/^[a-z]+:\\/\\//i, \"\")\n .replace(/\\/.*$/, \"\")\n .replace(/:(80|443)$/, \"\");\n }\n}\n\n/**\n * Synthetic peer key for a storage peer: one per endpoint+bucket+prefix. The\n * endpoint host is part of the identity because bucket names are only unique\n * within a single S3-compatible endpoint (R2/MinIO/COS each have their own\n * namespace) — without it, the same bucket+prefix on a second endpoint would\n * collide with (and silently overwrite, keeping the stale cursor) the first.\n */\nexport function storageUrl(endpoint: string, bucket: string, prefix?: string): string {\n const p = prefix?.trim() || DEFAULT_STORAGE_PREFIX;\n return `s3://${storageEndpointHost(endpoint)}/${bucket}/${p}`;\n}\n",
21
21
  "import { join } from \"node:path\";\nimport { cacheDir } from \"./paths.ts\";\n\nexport interface BlobInfo {\n hash: string;\n path: string;\n size: number;\n}\n\nexport function blobPath(hash: string): string {\n return join(cacheDir(), hash);\n}\n\n/** Content key length: sha256 truncated to 128 bits (32 hex). Shorter keys keep\n * doc markdown (`![](/blob/<hash>.png)`) readable; collision is negligible.\n * Addressing stays length-agnostic, so legacy full 64-hex refs still resolve. */\nexport const BLOB_HASH_HEX = 32;\n\n/** Full sha256 hex of the bytes. */\nexport function sha256Hex(bytes: Uint8Array): string {\n const hasher = new Bun.CryptoHasher(\"sha256\");\n hasher.update(bytes);\n return hasher.digest(\"hex\");\n}\n\n/** Canonical content hash for new blobs: sha256 of the bytes, truncated. */\nexport function blobHash(bytes: Uint8Array): string {\n return sha256Hex(bytes).slice(0, BLOB_HASH_HEX);\n}\n\n/** Verify fetched bytes match a content reference of either length (canonical\n * 32-hex or legacy 64-hex) — the ref is always a prefix of the full sha256. */\nexport function verifyBlobBytes(bytes: Uint8Array, hash: string): boolean {\n return sha256Hex(bytes).slice(0, hash.length) === hash;\n}\n\n/** Store bytes content-addressed under cache/. Returns its hash + path. */\nexport async function putBlob(data: ArrayBuffer | Uint8Array | string): Promise<BlobInfo> {\n const bytes =\n typeof data === \"string\"\n ? new TextEncoder().encode(data)\n : data instanceof Uint8Array\n ? data\n : new Uint8Array(data);\n const hash = blobHash(bytes);\n const path = blobPath(hash);\n if (!(await Bun.file(path).exists())) await Bun.write(path, bytes);\n return { hash, path, size: bytes.byteLength };\n}\n\nexport async function getBlob(hash: string): Promise<Uint8Array | null> {\n const file = Bun.file(blobPath(hash));\n if (!(await file.exists())) return null;\n return new Uint8Array(await file.arrayBuffer());\n}\n\n/** Whether this node currently holds a blob's bytes on disk — a cheap existence\n * check (no read). Use over the ledger when correctness depends on the bytes\n * actually being present (e.g. answering a peer's \"do you hold X\" before it\n * drops its own copy), since the ledger can lag a vanished file. */\nexport function blobExists(hash: string): Promise<boolean> {\n return Bun.file(blobPath(hash)).exists();\n}\n\n/** Store bytes under a GIVEN content hash (not recomputed) — for caching a blob\n * fetched from a peer/bucket by its reference, which may be a legacy 64-hex hash\n * that putBlob's truncation would not reproduce. Returns the byte length. */\nexport async function putBlobAt(hash: string, bytes: Uint8Array): Promise<number> {\n const path = blobPath(hash);\n if (!(await Bun.file(path).exists())) await Bun.write(path, bytes);\n return bytes.byteLength;\n}\n\n/** Remove a blob's bytes from the cache. Returns its size, or 0 if absent. */\nexport async function deleteBlob(hash: string): Promise<number> {\n const file = Bun.file(blobPath(hash));\n if (!(await file.exists())) return 0;\n const size = file.size;\n await file.delete();\n return size;\n}\n",
@@ -117,26 +117,30 @@
117
117
  "import type { ZodType } from \"zod\";\nimport type { Database } from \"bun:sqlite\";\nimport { ingest, changesAfterSeq } from \"../crdt.ts\";\nimport {\n SyncRequestSchema,\n SyncResponseSchema,\n HealthResponseSchema,\n SYNC_PATH,\n HEALTH_PATH,\n type SyncRequest,\n} from \"./protocol.ts\";\nimport { sitesRoutes } from \"./sites-routes.ts\";\nimport { peersRoutes } from \"./peers-routes.ts\";\nimport { blobRoutes } from \"./blob-routes.ts\";\nimport { errorCode, type MhErrorCode } from \"../errors.ts\";\n\n/** Injected at server startup; handlers reuse the open DB connection. */\nexport interface RouteCtx {\n db: Database;\n node: string;\n}\n\n/** HTTP status per error code (see core/errors.ts). Uncategorized errors stay\n * 400, matching the historical catch-all behavior. */\nconst HTTP_STATUS: Record<MhErrorCode, number> = {\n invalid_input: 400,\n not_found: 404,\n ambiguous: 400,\n stale: 409,\n conflict: 409,\n auth: 401,\n network: 502,\n port_in_use: 500,\n};\n\n/** Turn a thrown handler error into a JSON response: `{error, code?}` with a\n * semantic status, so HTTP clients can dispatch on `code` like CLI users\n * dispatch on exit codes. */\nexport function errorResponse(e: unknown): Response {\n const message = e instanceof Error ? e.message : String(e);\n const code = errorCode(e);\n return Response.json(code ? { error: message, code } : { error: message }, {\n status: code ? HTTP_STATUS[code] : 400,\n });\n}\n\n/**\n * One entry per endpoint. `request`/`response` are Zod schemas that double as\n * the OpenAPI source (see ./openapi.ts). Add an endpoint here and it shows up\n * in /docs automatically — no generate step, no separate spec file.\n */\nexport interface Route {\n method: \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\";\n path: string;\n summary: string;\n request?: ZodType;\n response: ZodType;\n handler: (req: Request, ctx: RouteCtx) => Promise<Response> | Response;\n}\n\nconst syncRoutes: Route[] = [\n {\n method: \"POST\",\n path: SYNC_PATH,\n summary: \"CRDT replication: push local changes and pull server changes\",\n request: SyncRequestSchema,\n response: SyncResponseSchema,\n async handler(req, { db, node }) {\n const body = (await req.json()) as SyncRequest;\n ingest(db, body.changes ?? []);\n const batch = changesAfterSeq(db, body.since ?? 0, {\n limit: body.limit,\n excludeDatasets: body.exclude_datasets,\n });\n return Response.json({ node_id: node, changes: batch.changes, cursor: batch.cursor });\n },\n },\n {\n method: \"GET\",\n path: HEALTH_PATH,\n summary: \"Health check\",\n response: HealthResponseSchema,\n handler(_req, { node }) {\n return Response.json({ ok: true, node });\n },\n },\n];\n\n// CRDT sync protocol routes + read-only site endpoints (sites are authored via\n// the `mh site` CLI) + peer pairing/management endpoints. The WebUI's data API\n// is not part of core: it is injected via startServer's `ui` option.\nexport const routes: Route[] = [...syncRoutes, ...sitesRoutes, ...peersRoutes, ...blobRoutes];\n",
118
118
  "import type { RouteCtx } from \"./routes.ts\";\nimport { resolveSite, getFileForServe } from \"../sites.ts\";\n\n// Serves agent-published sites at /sites/<name>/<path...>. Imported lazily from\n// server.ts so it stays off the CLI startup path. Returns null only for paths it\n// does not own (so the caller can fall through to 404). HTML responses get the\n// auth fetch-shim injected by the caller (server.ts withShim) in non-debug mode.\n\nexport async function serveSite(req: Request, ctx: RouteCtx): Promise<Response | null> {\n const url = new URL(req.url);\n const rest = url.pathname.slice(\"/sites/\".length);\n if (rest === \"\") return null; // /sites/ with no site name\n\n const slash = rest.indexOf(\"/\");\n const name = decodeURIComponent(slash === -1 ? rest : rest.slice(0, slash));\n\n // /sites/<name> → canonical /sites/<name>/ so relative asset URLs resolve.\n if (slash === -1) return Response.redirect(`${url.origin}/sites/${name}/`, 301);\n\n const filePath = decodeURIComponent(rest.slice(slash + 1));\n\n let siteId: string;\n try {\n siteId = resolveSite(ctx.db, name).id;\n } catch {\n return new Response(\"site not found\", { status: 404 });\n }\n\n const file = await getFileForServe(ctx.db, siteId, filePath);\n if (!file) return new Response(\"not found\", { status: 404 });\n const body = new Uint8Array(file.bytes.byteLength);\n body.set(file.bytes);\n return new Response(body.buffer, { headers: { \"content-type\": file.contentType } });\n}\n",
119
119
  "// Public capability links to a doc / database / site. The `shares` table is\n// node-local (declared in schema.ts, deliberately absent from crdt.ts's DOMAIN)\n// so it never enters the oplog and never syncs — same trust model as peers.\n//\n// A share is served either by this node's token-exempt /share/<slug> endpoint\n// (transport 'server') or as a presigned static export in a bucket (transport\n// 's3'; always read-only — a presigned object can't accept writes). Passwords:\n// the server path stores a PBKDF2 verifier (pw_hash+pw_salt); the s3 path is\n// end-to-end encrypted, so only pw_salt is kept (it travels in the link) and the\n// viewer derives the content key from password+salt — there is no server-side\n// verifier on the s3 path.\n\nimport type { DbDriver } from \"./driver.ts\";\nimport { MhError } from \"./errors.ts\";\nimport { randomSuffix } from \"./ids.ts\";\nimport { toB64, fromB64 } from \"./sync/e2ee.ts\";\n\nexport type ShareKind = \"doc\" | \"database\" | \"site\";\nexport type SharePermission = \"view\" | \"edit\";\nexport type ShareTransport = \"server\" | \"s3\";\n\nconst SHARE_KINDS: ReadonlySet<string> = new Set<ShareKind>([\"doc\", \"database\", \"site\"]);\n\nexport interface ShareRow {\n slug: string;\n kind: ShareKind;\n target_id: string;\n permission: SharePermission;\n transport: ShareTransport;\n /** base64 salt; null = no password. */\n pw_salt: string | null;\n /** base64 PBKDF2 verifier — server path only (s3 password is client-side E2EE). */\n pw_hash: string | null;\n /** epoch ms; null = never. */\n expires_at: number | null;\n /** synthetic node id every edit through this share is attributed to (edit only). */\n guest_node_id: string | null;\n /** Reachable base URL chosen at creation (for the link / source label). */\n served_base: string | null;\n // Vestigial s3_* columns (object-storage shares now live in the bucket, not in\n // this table); kept so the SELECT list matches existing DBs. Always null here.\n s3_peer_url: string | null;\n s3_object_prefix: string | null;\n s3_presign_exp: number | null;\n s3_key_b64: string | null;\n created_at: number;\n}\n\nconst SHARE_COLS =\n \"slug, kind, target_id, permission, transport, pw_salt, pw_hash, expires_at, guest_node_id, served_base, s3_peer_url, s3_object_prefix, s3_presign_exp, s3_key_b64, created_at\";\n\nexport interface CreateShareInput {\n kind: ShareKind;\n target_id: string;\n permission?: SharePermission;\n /** base64 salt + verifier (server path); produce with hashSharePassword. */\n pwSalt?: string | null;\n pwHash?: string | null;\n expiresAt?: number | null;\n /** Reachable base URL recorded for the link / source label. */\n servedBase?: string | null;\n}\n\n/**\n * Mint a server-transport share row. (Object-storage shares are NOT stored here —\n * they live in the bucket; see sync/share-export.ts.) Validates enums + the\n * `edit ⇒ server` rule and allocates an unguessable slug (+ guest node for edit).\n * The caller verifies that `target_id` exists.\n */\nexport function createShare(db: DbDriver, input: CreateShareInput): ShareRow {\n const permission = input.permission ?? \"view\";\n if (!SHARE_KINDS.has(input.kind))\n throw new MhError(\"invalid_input\", `unknown share kind: ${input.kind}`);\n if (permission !== \"view\" && permission !== \"edit\")\n throw new MhError(\"invalid_input\", `unknown share permission: ${permission}`);\n\n let slug = randomSuffix(12);\n while (getShare(db, slug)) slug = randomSuffix(12);\n const guest = permission === \"edit\" ? \"g\" + randomSuffix(8) : null;\n\n db.query(\n `INSERT INTO shares (${SHARE_COLS}) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n slug,\n input.kind,\n input.target_id,\n permission,\n \"server\",\n input.pwSalt ?? null,\n input.pwHash ?? null,\n input.expiresAt ?? null,\n guest,\n input.servedBase ?? null,\n null,\n null,\n null,\n null,\n Date.now(),\n );\n return getShare(db, slug)!;\n}\n\nexport function getShare(db: DbDriver, slug: string): ShareRow | null {\n return (\n (db.query(`SELECT ${SHARE_COLS} FROM shares WHERE slug = ?`).get(slug) as ShareRow | null) ??\n null\n );\n}\n\nexport function listShares(db: DbDriver): ShareRow[] {\n return db\n .query(`SELECT ${SHARE_COLS} FROM shares ORDER BY created_at DESC`)\n .all() as ShareRow[];\n}\n\n/** Shares pointing at one target — used to surface existing links in the UI. */\nexport function listSharesForTarget(db: DbDriver, targetId: string): ShareRow[] {\n return db\n .query(`SELECT ${SHARE_COLS} FROM shares WHERE target_id = ? ORDER BY created_at DESC`)\n .all(targetId) as ShareRow[];\n}\n\nexport function deleteShare(db: DbDriver, slug: string): boolean {\n return db.query(\"DELETE FROM shares WHERE slug = ?\").run(slug).changes > 0;\n}\n\n/** True once a share is past its expiry (null expiry = never expires). */\nexport function shareExpired(row: ShareRow, now = Date.now()): boolean {\n return row.expires_at != null && now >= row.expires_at;\n}\n\n// ---- password (PBKDF2-SHA256, matching e2ee.ts's KDF parameters) ---------------\n\nconst PW_ITER = 600_000;\nconst PW_SALT_BYTES = 16;\nconst PW_HASH_BITS = 256;\n\n// WebCrypto wants a real ArrayBuffer; mirror e2ee.ts's `ab` to avoid TS widening.\nfunction ab(u: Uint8Array): ArrayBuffer {\n const out = new Uint8Array(u.byteLength);\n out.set(u);\n return out.buffer;\n}\n\nasync function pbkdf2(password: string, salt: Uint8Array): Promise<Uint8Array> {\n const base = await crypto.subtle.importKey(\n \"raw\",\n ab(new TextEncoder().encode(password)),\n \"PBKDF2\",\n false,\n [\"deriveBits\"],\n );\n const bits = await crypto.subtle.deriveBits(\n { name: \"PBKDF2\", salt: ab(salt), iterations: PW_ITER, hash: \"SHA-256\" },\n base,\n PW_HASH_BITS,\n );\n return new Uint8Array(bits);\n}\n\n/** Derive a fresh {salt, hash} verifier for the server-path password. */\nexport async function hashSharePassword(password: string): Promise<{ salt: string; hash: string }> {\n const salt = crypto.getRandomValues(new Uint8Array(PW_SALT_BYTES));\n const hash = await pbkdf2(password, salt);\n return { salt: toB64(salt), hash: toB64(hash) };\n}\n\n/** Constant-time check of `password` against a share's stored verifier. A share\n * with no password always returns true (nothing to verify). */\nexport async function verifySharePassword(row: ShareRow, password: string): Promise<boolean> {\n if (!row.pw_hash || !row.pw_salt) return true;\n const expect = fromB64(row.pw_hash);\n const got = await pbkdf2(password, fromB64(row.pw_salt));\n return timingSafeEqual(expect, got);\n}\n\nfunction timingSafeEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a[i]! ^ b[i]!;\n return diff === 0;\n}\n",
120
- "// Runtime-agnostic Markdown → HTML rendering for read-only share pages. Pure\n// string ops (no DOM, no node:* — usable both server-side in serveShare and in\n// the static Cloudflare-Pages viewer that decrypts an s3 bundle in the browser).\n//\n// This is a deliberately small block renderer covering the document model\n// (headings, lists, code fences, quotes, rules, pipe tables, paragraphs with\n// inline bold/italic/code/link/image). It is NOT a full CommonMark engine — the\n// editor's own block model is the source of truth; this just presents it.\n\nexport function escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\"/g, \"&quot;\");\n}\n\nexport interface RenderOpts {\n /** Rewrite a `/blob/<hash>` URL to a reachable one (scoped endpoint or data URL). */\n rewriteBlob?: (url: string) => string;\n}\n\n// Private-use sentinels wrapping a protected code-span index (mirrors markdown.tsx).\nconst A = String.fromCharCode(0xe000);\nconst B = String.fromCharCode(0xe001);\nconst RESTORE = new RegExp(A + \"(\\\\d+)\" + B, \"g\");\n\n/** Inline Markdown → HTML: `code`, **bold**, *italic*, [link](url), ![img](url). */\nexport function renderInline(src: string, opts: RenderOpts = {}): string {\n const codes: string[] = [];\n let s = src.replace(/`([^`]+)`/g, (_m, c) => {\n codes.push(c);\n return A + (codes.length - 1) + B;\n });\n s = escapeHtml(s);\n s = s.replace(/!\\[([^\\]]*)\\]\\(([^)\\s]+)\\)/g, (_m, alt, u) => {\n const url = rewrite(String(u), opts).replace(/\"/g, \"&quot;\");\n return `<img src=\"${url}\" alt=\"${escapeHtml(String(alt))}\" loading=\"lazy\">`;\n });\n s = s.replace(/\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/g, (_m, t, u) => {\n const url = rewrite(String(u), opts).replace(/\"/g, \"&quot;\");\n return `<a href=\"${url}\" target=\"_blank\" rel=\"noreferrer noopener\">${t}</a>`;\n });\n s = s.replace(/\\*\\*([^*]+)\\*\\*/g, \"<strong>$1</strong>\");\n s = s.replace(/(^|[^*])\\*([^*\\n]+)\\*/g, \"$1<em>$2</em>\");\n s = s.replace(RESTORE, (_m, i) => `<code>${escapeHtml(codes[+i] ?? \"\")}</code>`);\n return s;\n}\n\nfunction rewrite(url: string, opts: RenderOpts): string {\n if (opts.rewriteBlob && url.startsWith(\"/blob/\")) return opts.rewriteBlob(url);\n return url;\n}\n\nconst FENCE = /^\\s*(`{3,}|~{3,})(.*)$/;\n\n/** Render a markdown body to an HTML string (block-level). */\nexport function renderMarkdown(md: string, opts: RenderOpts = {}): string {\n const lines = (md ?? \"\").replace(/\\r\\n?/g, \"\\n\").split(\"\\n\");\n const out: string[] = [];\n let i = 0;\n let para: string[] = [];\n\n const flushPara = () => {\n if (!para.length) return;\n out.push(`<p>${para.map((l) => renderInline(l, opts)).join(\"<br>\")}</p>`);\n para = [];\n };\n\n while (i < lines.length) {\n const line = lines[i]!;\n\n // Fenced code block (``` or ~~~). Info string `mh-html` renders as a\n // sandboxed iframe; everything else as <pre><code>.\n const fence = line.match(FENCE);\n if (fence) {\n flushPara();\n const marker = fence[1]![0];\n const info = (fence[2] ?? \"\").trim();\n const body: string[] = [];\n i++;\n while (i < lines.length) {\n const m = lines[i]!.match(/^\\s*(`{3,}|~{3,})\\s*$/);\n if (m && m[1]![0] === marker) {\n i++;\n break;\n }\n body.push(lines[i]!);\n i++;\n }\n if (info === \"mh-html\") {\n out.push(\n `<iframe class=\"mh-embed\" sandbox=\"allow-scripts allow-popups\" srcdoc=\"${escapeHtml(\n body.join(\"\\n\"),\n )}\"></iframe>`,\n );\n } else {\n const cls = info ? ` class=\"language-${escapeHtml(info)}\"` : \"\";\n out.push(`<pre><code${cls}>${escapeHtml(body.join(\"\\n\"))}</code></pre>`);\n }\n continue;\n }\n\n if (line.trim() === \"\") {\n flushPara();\n i++;\n continue;\n }\n\n // ATX heading.\n const h = line.match(/^(#{1,6})\\s+(.*)$/);\n if (h) {\n flushPara();\n const level = h[1]!.length;\n out.push(`<h${level}>${renderInline(h[2]!.trim(), opts)}</h${level}>`);\n i++;\n continue;\n }\n\n // Horizontal rule.\n if (/^\\s*([-*_])(\\s*\\1){2,}\\s*$/.test(line)) {\n flushPara();\n out.push(\"<hr>\");\n i++;\n continue;\n }\n\n // Blockquote: consecutive `> ` lines.\n if (/^\\s*>\\s?/.test(line)) {\n flushPara();\n const q: string[] = [];\n while (i < lines.length && /^\\s*>\\s?/.test(lines[i]!)) {\n q.push(lines[i]!.replace(/^\\s*>\\s?/, \"\"));\n i++;\n }\n out.push(`<blockquote>${renderMarkdown(q.join(\"\\n\"), opts)}</blockquote>`);\n continue;\n }\n\n // Pipe table: a header row followed by a |---|---| separator.\n if (line.includes(\"|\") && i + 1 < lines.length && /^\\s*\\|?[\\s:|-]+\\|?\\s*$/.test(lines[i + 1]!) && lines[i + 1]!.includes(\"-\")) {\n flushPara();\n const rows: string[][] = [];\n const head = splitRow(line);\n i += 2; // skip header + separator\n while (i < lines.length && lines[i]!.includes(\"|\") && lines[i]!.trim() !== \"\") {\n rows.push(splitRow(lines[i]!));\n i++;\n }\n const th = head.map((c) => `<th>${renderInline(c, opts)}</th>`).join(\"\");\n const body = rows\n .map((r) => `<tr>${r.map((c) => `<td>${renderInline(c, opts)}</td>`).join(\"\")}</tr>`)\n .join(\"\");\n out.push(`<table><thead><tr>${th}</tr></thead><tbody>${body}</tbody></table>`);\n continue;\n }\n\n // Unordered / ordered list: consecutive matching item lines.\n const ul = line.match(/^\\s*[-*+]\\s+/);\n const ol = line.match(/^\\s*\\d+[.)]\\s+/);\n if (ul || ol) {\n flushPara();\n const ordered = !!ol;\n const items: string[] = [];\n const re = ordered ? /^\\s*\\d+[.)]\\s+/ : /^\\s*[-*+]\\s+/;\n while (i < lines.length && re.test(lines[i]!)) {\n items.push(lines[i]!.replace(re, \"\"));\n i++;\n }\n const lis = items.map((t) => `<li>${renderInline(t, opts)}</li>`).join(\"\");\n out.push(ordered ? `<ol>${lis}</ol>` : `<ul>${lis}</ul>`);\n continue;\n }\n\n // Standalone image line → block image (avoid wrapping in <p>).\n if (/^\\s*!\\[[^\\]]*\\]\\([^)\\s]+\\)\\s*$/.test(line)) {\n flushPara();\n out.push(`<p class=\"mh-img\">${renderInline(line.trim(), opts)}</p>`);\n i++;\n continue;\n }\n\n para.push(line);\n i++;\n }\n flushPara();\n return out.join(\"\\n\");\n}\n\nfunction splitRow(line: string): string[] {\n let s = line.trim();\n if (s.startsWith(\"|\")) s = s.slice(1);\n if (s.endsWith(\"|\")) s = s.slice(0, -1);\n return s.split(\"|\").map((c) => c.trim());\n}\n",
121
- "// Public, token-exempt serving of a share (/share/<slug>...). Mounted in\n// server.ts BEFORE the route matcher and deliberately NOT wrapped in withShim,\n// so a share page never carries the master-token runtime (/mh-runtime.js).\n//\n// Access control is per-share (slug lookup + expiry + optional password) — NOT\n// the master token gate. View shares are server-rendered live each request;\n// edit shares (server-only) accept writes attributed to the share's guest node\n// id (see core/shares.ts, crdt.ts withNodeId) so they replicate to the owner's\n// devices as a distinct author. Object-storage shares never reach here — they're\n// a presigned static export served by a separate viewer (see share-export.ts).\n\nimport type { RouteCtx } from \"./routes.ts\";\nimport { randomSuffix } from \"../ids.ts\";\nimport {\n getShare,\n deleteShare,\n shareExpired,\n verifySharePassword,\n type ShareRow,\n} from \"../shares.ts\";\nimport { getDocument, updateDocument, documentVersion } from \"../documents.ts\";\nimport { getDatabase } from \"../databases.ts\";\nimport { listProperties, type PropertyRow } from \"../properties.ts\";\nimport { listRecords, updateRecord, getRecord } from \"../records.ts\";\nimport { resolveSite, getFileForServe, listFiles, getFileRow, putFile, deleteFile } from \"../sites.ts\";\nimport { resolveBlob, blobContentType } from \"../blobs.ts\";\nimport { inferContentType } from \"../sites-core.ts\";\nimport { withNodeId } from \"../crdt.ts\";\nimport { renderMarkdown, escapeHtml } from \"./share-render.ts\";\n\nconst HTML = { \"content-type\": \"text/html; charset=utf-8\" } as const;\nconst HASH_RE = /^[0-9a-f]{16,64}$/;\n\nfunction notFound(): Response {\n return new Response(\"not found\", { status: 404 });\n}\nfunction gone(): Response {\n return new Response(\"this share has expired\", { status: 410 });\n}\nfunction unauthorizedJson(): Response {\n return Response.json({ error: \"unauthorized\" }, { status: 401 });\n}\nfunction wantsHtml(req: Request): boolean {\n return (req.headers.get(\"accept\") ?? \"\").includes(\"text/html\");\n}\n\nexport async function serveShare(req: Request, ctx: RouteCtx): Promise<Response | null> {\n const url = new URL(req.url);\n const rest0 = url.pathname.slice(\"/share/\".length);\n if (!rest0) return null;\n const slash = rest0.indexOf(\"/\");\n const slug = decodeURIComponent(slash === -1 ? rest0 : rest0.slice(0, slash));\n const sub = slash === -1 ? \"\" : rest0.slice(slash + 1);\n if (!slug) return null;\n\n const share = getShare(ctx.db, slug);\n if (!share) return notFound();\n if (share.transport !== \"server\") return notFound(); // s3 shares aren't served here\n if (shareExpired(share)) {\n deleteShare(ctx.db, slug);\n return gone();\n }\n\n // Password gate (the unlock endpoint authenticates inside itself).\n if (sub === \"unlock\" && req.method === \"POST\") return handleUnlock(ctx, req, share, url);\n const locked = !!share.pw_hash && !(await hasShareSession(ctx, req, share));\n if (locked) {\n return wantsHtml(req)\n ? new Response(passwordPage(share, false), { headers: HTML })\n : unauthorizedJson();\n }\n\n // Scoped blob bytes for doc/table images (token-exempt, but only hashes the\n // shared target actually references — never an open blob oracle).\n if (sub.startsWith(\"blob/\")) return serveScopedBlob(ctx, share, sub.slice(\"blob/\".length));\n\n if (share.kind === \"doc\") return serveDoc(ctx, req, share, sub);\n if (share.kind === \"database\") return serveTable(ctx, req, share, sub);\n if (share.kind === \"site\") return serveSiteShare(ctx, req, share, sub);\n return notFound();\n}\n\n// ---- documents ----------------------------------------------------------------\n\nasync function serveDoc(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n sub: string,\n): Promise<Response> {\n const doc = getDocument(ctx.db, share.target_id);\n if (!doc) return notFound();\n\n // Edit write-back: replace the whole body, attributed to the guest node.\n if (sub === \"doc\" && req.method === \"POST\") {\n if (share.permission !== \"edit\") return unauthorizedJson();\n const body = (await req.json().catch(() => ({}))) as { body?: string; ifMatch?: string };\n if (typeof body.body !== \"string\")\n return Response.json({ error: \"body required\" }, { status: 400 });\n try {\n withNodeId(share.guest_node_id, () =>\n updateDocument(ctx.db, share.target_id, { body: body.body }, { ifMatch: body.ifMatch }),\n );\n } catch (e) {\n return Response.json(\n { error: (e as Error).message },\n { status: (e as { code?: string }).code === \"stale\" ? 409 : 400 },\n );\n }\n return Response.json({ version: documentVersion(ctx.db, share.target_id) });\n }\n\n if (sub !== \"\") return notFound();\n\n const rendered = renderMarkdown(doc.body ?? \"\", {\n rewriteBlob: (u) => `/share/${share.slug}/${u.replace(/^\\//, \"\")}`,\n });\n const version = documentVersion(ctx.db, share.target_id);\n const editable = share.permission === \"edit\";\n const inner = `<article class=\"doc\">${rendered || '<p class=\"muted\">(空文档)</p>'}</article>`;\n const script = editable ? docEditScript(share.slug, version, doc.body ?? \"\") : \"\";\n return new Response(\n pageShell(doc.title || \"文档\", inner, { editable, editLabel: \"编辑文档\", script }),\n { headers: HTML },\n );\n}\n\nfunction docEditScript(slug: string, version: string, body: string): string {\n return `\n let editing=false; const ver=${JSON.stringify(version)}; const body0=${JSON.stringify(body)};\n const art=document.querySelector('article.doc');\n const btn=document.getElementById('mh-edit');\n let ta;\n btn.addEventListener('click', async ()=>{\n if(!editing){\n editing=true; btn.textContent='保存';\n ta=document.createElement('textarea'); ta.className='mh-raw'; ta.value=body0;\n art.replaceWith(ta); ta.focus();\n } else {\n btn.disabled=true; btn.textContent='保存中…';\n const res=await fetch('/share/${slug}/doc',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({body:ta.value,ifMatch:ver})});\n if(res.ok){ location.reload(); }\n else { const j=await res.json().catch(()=>({})); alert(j.error||'保存失败'); btn.disabled=false; btn.textContent='保存'; }\n }\n });`;\n}\n\n// ---- databases / tables -------------------------------------------------------\n\nfunction cellText(prop: PropertyRow, value: unknown): string {\n if (value === null || value === undefined) return \"\";\n if (prop.type === \"checkbox\") return value ? \"✓\" : \"\";\n if (Array.isArray(value)) return value.map((v) => String(v)).join(\", \");\n return String(value);\n}\n\nfunction cellHtml(prop: PropertyRow, value: unknown): string {\n if (value === null || value === undefined) return \"\";\n if (prop.type === \"checkbox\") return value ? \"✓\" : \"\";\n if (prop.type === \"url\") {\n const s = String(value);\n return `<a href=\"${escapeHtml(s)}\" target=\"_blank\" rel=\"noreferrer noopener\">${escapeHtml(s)}</a>`;\n }\n if (Array.isArray(value))\n return value.map((v) => `<span class=\"tag\">${escapeHtml(String(v))}</span>`).join(\" \");\n return escapeHtml(String(value));\n}\n\n/** Cell types a recipient can edit inline (free-text-ish). */\nfunction editableType(t: string): boolean {\n return t === \"text\" || t === \"number\" || t === \"url\" || t === \"date\";\n}\n\nasync function serveTable(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n sub: string,\n): Promise<Response> {\n const dbRow = getDatabase(ctx.db, share.target_id);\n if (!dbRow) return notFound();\n const props = listProperties(ctx.db, share.target_id).sort((a, b) => a.position - b.position);\n\n if (sub === \"record\" && req.method === \"POST\") {\n if (share.permission !== \"edit\") return unauthorizedJson();\n const body = (await req.json().catch(() => ({}))) as { id?: string; propId?: string; value?: unknown };\n if (!body.id || !body.propId)\n return Response.json({ error: \"id and propId required\" }, { status: 400 });\n // Scope: the record must belong to THIS shared database, and the column to a\n // free-text property of it (no schema edits, no cross-database writes).\n const rec = getRecord(ctx.db, body.id);\n if (!rec || rec.database_id !== share.target_id) return notFound();\n const prop = props.find((p) => p.id === body.propId);\n if (!prop || !editableType(prop.type))\n return Response.json({ error: \"not an editable column\" }, { status: 400 });\n try {\n withNodeId(share.guest_node_id, () =>\n updateRecord(ctx.db, body.id!, { [body.propId!]: body.value ?? null }),\n );\n } catch (e) {\n return Response.json({ error: (e as Error).message }, { status: 400 });\n }\n return Response.json({ ok: true });\n }\n\n if (sub !== \"\") return notFound();\n\n const records = listRecords(ctx.db, share.target_id);\n const editable = share.permission === \"edit\";\n const head = props.map((p) => `<th>${escapeHtml(p.name)}</th>`).join(\"\");\n const rows = records\n .map((r) => {\n const tds = props\n .map((p) => {\n const v = r.cells[p.id];\n if (editable && editableType(p.type)) {\n return `<td contenteditable data-rec=\"${escapeHtml(r.id)}\" data-prop=\"${escapeHtml(\n p.id,\n )}\" data-type=\"${p.type}\">${escapeHtml(cellText(p, v))}</td>`;\n }\n return `<td>${cellHtml(p, v)}</td>`;\n })\n .join(\"\");\n return `<tr>${tds}</tr>`;\n })\n .join(\"\");\n const inner = `<div class=\"table-wrap\"><table class=\"db\"><thead><tr>${head}</tr></thead><tbody>${rows}</tbody></table></div>`;\n const script = editable ? tableEditScript(share.slug) : \"\";\n return new Response(pageShell(dbRow.name || \"表格\", inner, { script, hint: editable ? \"可编辑文本/数字/URL/日期单元格,失焦自动保存\" : \"\" }), {\n headers: HTML,\n });\n}\n\nfunction tableEditScript(slug: string): string {\n return `\n document.querySelectorAll('td[contenteditable]').forEach(td=>{\n let orig=td.textContent;\n td.addEventListener('blur', async ()=>{\n const val=td.textContent;\n if(val===orig) return;\n const type=td.dataset.type;\n let v=val; if(type==='number'){ v = val===''?null:Number(val); if(v!==null && !isFinite(v)){ td.textContent=orig; return; } }\n td.classList.add('saving');\n const res=await fetch('/share/${slug}/record',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({id:td.dataset.rec,propId:td.dataset.prop,value:v})});\n td.classList.remove('saving');\n if(res.ok){ orig=val; td.classList.add('saved'); setTimeout(()=>td.classList.remove('saved'),600); }\n else { td.textContent=orig; const j=await res.json().catch(()=>({})); alert(j.error||'保存失败'); }\n });\n });`;\n}\n\n// ---- sites --------------------------------------------------------------------\n\nasync function serveSiteShare(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n sub: string,\n): Promise<Response> {\n let siteId: string;\n try {\n siteId = resolveSite(ctx.db, share.target_id).id;\n } catch {\n return notFound();\n }\n\n // Edit surface (reserved underscore paths so they never collide with files).\n if (share.permission === \"edit\") {\n if (sub === \"_files\") return new Response(siteFilesPage(ctx, share, siteId), { headers: HTML });\n if (sub === \"_file\" && req.method === \"POST\") {\n const body = (await req.json().catch(() => ({}))) as { path?: string; content?: string; contentType?: string };\n if (!body.path || typeof body.content !== \"string\")\n return Response.json({ error: \"path and content required\" }, { status: 400 });\n try {\n await withNodeId(share.guest_node_id, () =>\n putFile(ctx.db, siteId, body.path!, { data: body.content!, contentType: body.contentType }),\n );\n } catch (e) {\n return Response.json({ error: (e as Error).message }, { status: 400 });\n }\n return Response.json({ ok: true });\n }\n if (sub === \"_file/delete\" && req.method === \"POST\") {\n const body = (await req.json().catch(() => ({}))) as { path?: string };\n if (!body.path) return Response.json({ error: \"path required\" }, { status: 400 });\n withNodeId(share.guest_node_id, () => deleteFile(ctx.db, siteId, body.path!));\n return Response.json({ ok: true });\n }\n if (sub === \"_raw\") {\n // Raw text of one file for the editor (text files only).\n const url = new URL(req.url);\n const p = url.searchParams.get(\"path\") ?? \"\";\n const row = getFileRow(ctx.db, siteId, p);\n if (!row || row.encoding !== \"utf8\") return Response.json({ content: null });\n return Response.json({ content: row.content ?? \"\" });\n }\n }\n\n // Serve the site itself (live), exactly like /sites/<name>/ but token-exempt.\n const file = await getFileForServe(ctx.db, siteId, sub);\n if (!file) return notFound();\n const out = new Uint8Array(file.bytes.byteLength);\n out.set(file.bytes);\n return new Response(out.buffer, { headers: { \"content-type\": file.contentType } });\n}\n\nfunction siteFilesPage(ctx: RouteCtx, share: ShareRow, siteId: string): string {\n const files = listFiles(ctx.db, siteId);\n const list = files\n .map(\n (f) =>\n `<li><button class=\"file\" data-path=\"${escapeHtml(f.path)}\" data-text=\"${\n f.encoding === \"utf8\" ? \"1\" : \"0\"\n }\">${escapeHtml(f.path)}</button> <span class=\"muted\">${escapeHtml(f.content_type)}</span></li>`,\n )\n .join(\"\");\n const inner = `\n <p class=\"hint\">编辑站点文件(文本文件可在线编辑;保存即对所有访问者生效)。</p>\n <ul class=\"files\">${list || '<li class=\"muted\">(暂无文件)</li>'}</ul>\n <div id=\"editor\" hidden>\n <div class=\"row\"><strong id=\"fpath\"></strong> <a id=\"open\" target=\"_blank\" rel=\"noreferrer\">预览 ↗</a></div>\n <textarea class=\"mh-raw\" id=\"fbody\"></textarea>\n <div class=\"row\"><button id=\"save\">保存</button></div>\n </div>`;\n const script = `\n const slug=${JSON.stringify(share.slug)};\n const ed=document.getElementById('editor'), fpath=document.getElementById('fpath'), fbody=document.getElementById('fbody'), open=document.getElementById('open');\n let cur=null;\n document.querySelectorAll('button.file').forEach(b=>b.addEventListener('click', async ()=>{\n cur=b.dataset.path; fpath.textContent=cur; open.href='/share/'+slug+'/'+cur;\n if(b.dataset.text==='1'){ const r=await fetch('/share/'+slug+'/_raw?path='+encodeURIComponent(cur)); const j=await r.json(); fbody.value=j.content||''; fbody.disabled=false; }\n else { fbody.value='(二进制文件,不可在线编辑)'; fbody.disabled=true; }\n ed.hidden=false;\n }));\n document.getElementById('save').addEventListener('click', async ()=>{\n if(!cur||fbody.disabled) return;\n const res=await fetch('/share/'+slug+'/_file',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({path:cur,content:fbody.value})});\n if(res.ok){ const s=document.getElementById('save'); s.textContent='已保存 ✓'; setTimeout(()=>s.textContent='保存',900); }\n else { const j=await res.json().catch(()=>({})); alert(j.error||'保存失败'); }\n });`;\n return pageShell(`${resolveSite(ctx.db, share.target_id).name} · 文件`, inner, { script });\n}\n\n// ---- scoped blob --------------------------------------------------------------\n\nfunction referencedHashes(ctx: RouteCtx, share: ShareRow): Set<string> {\n const out = new Set<string>();\n const scan = (text: string | null | undefined) => {\n if (!text) return;\n const re = /\\/blob\\/([0-9a-f]{16,64})/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(text))) out.add(m[1]!.toLowerCase());\n };\n if (share.kind === \"doc\") scan(getDocument(ctx.db, share.target_id)?.body);\n else if (share.kind === \"database\")\n for (const r of listRecords(ctx.db, share.target_id)) scan(JSON.stringify(r.cells));\n return out;\n}\n\nasync function serveScopedBlob(ctx: RouteCtx, share: ShareRow, tail: string): Promise<Response> {\n const dot = tail.indexOf(\".\");\n const hash = (dot >= 0 ? tail.slice(0, dot) : tail).toLowerCase();\n if (!HASH_RE.test(hash)) return notFound();\n if (!referencedHashes(ctx, share).has(hash)) return notFound();\n const bytes = await resolveBlob(ctx.db, hash);\n if (!bytes) return notFound();\n const ct = dot >= 0 ? inferContentType(tail) : blobContentType(ctx.db, hash) ?? \"application/octet-stream\";\n const out = new Uint8Array(bytes.byteLength);\n out.set(bytes);\n return new Response(out.buffer, {\n headers: { \"content-type\": ct, \"cache-control\": \"private, max-age=3600\" },\n });\n}\n\n// ---- password session ---------------------------------------------------------\n\nfunction shareSecret(ctx: RouteCtx): string {\n const row = ctx.db.query(\"SELECT value FROM meta WHERE key='share_cookie_secret'\").get() as\n | { value: string }\n | null;\n if (row) return row.value;\n const secret = randomSuffix(32);\n ctx.db\n .query(\"INSERT INTO meta (key, value) VALUES ('share_cookie_secret', ?) ON CONFLICT(key) DO NOTHING\")\n .run(secret);\n return (\n (ctx.db.query(\"SELECT value FROM meta WHERE key='share_cookie_secret'\").get() as { value: string })\n .value\n );\n}\n\nfunction toHex(b: Uint8Array): string {\n let s = \"\";\n for (const x of b) s += x.toString(16).padStart(2, \"0\");\n return s;\n}\n\nasync function hmac(secret: string, msg: string): Promise<string> {\n const enc = new TextEncoder();\n const key = await crypto.subtle.importKey(\n \"raw\",\n enc.encode(secret) as unknown as ArrayBuffer,\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\"],\n );\n const sig = await crypto.subtle.sign(\"HMAC\", key, enc.encode(msg) as unknown as ArrayBuffer);\n return toHex(new Uint8Array(sig));\n}\n\nconst SHARE_SESSION_TTL_MS = 12 * 60 * 60 * 1000;\n\nfunction shareCookieName(slug: string): string {\n return \"mh_share_\" + slug;\n}\n\nfunction readCookie(req: Request, name: string): string | null {\n const header = req.headers.get(\"cookie\");\n if (!header) return null;\n for (const part of header.split(\";\")) {\n const [k, ...v] = part.trim().split(\"=\");\n if (k === name) return decodeURIComponent(v.join(\"=\"));\n }\n return null;\n}\n\nasync function hasShareSession(ctx: RouteCtx, req: Request, share: ShareRow): Promise<boolean> {\n const raw = readCookie(req, shareCookieName(share.slug));\n if (!raw) return false;\n const dot = raw.lastIndexOf(\".\");\n if (dot < 0) return false;\n const exp = Number(raw.slice(0, dot));\n const mac = raw.slice(dot + 1);\n if (!Number.isFinite(exp) || Date.now() > exp) return false;\n const expect = await hmac(shareSecret(ctx), `${share.slug}:${exp}`);\n return timingSafeStr(expect, mac);\n}\n\nfunction timingSafeStr(a: string, b: string): boolean {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a.charCodeAt(i) ^ b.charCodeAt(i);\n return diff === 0;\n}\n\nasync function handleUnlock(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n url: URL,\n): Promise<Response> {\n let pw = \"\";\n const ct = req.headers.get(\"content-type\") ?? \"\";\n if (ct.includes(\"application/json\")) pw = String(((await req.json().catch(() => ({}))) as { password?: string }).password ?? \"\");\n else {\n const form = await req.formData().catch(() => null);\n pw = form ? String(form.get(\"password\") ?? \"\") : \"\";\n }\n if (!(await verifySharePassword(share, pw))) {\n return new Response(passwordPage(share, true), { headers: HTML, status: 401 });\n }\n const exp = Date.now() + Math.min(SHARE_SESSION_TTL_MS, ttlRemaining(share));\n const mac = await hmac(shareSecret(ctx), `${share.slug}:${exp}`);\n const secure = url.protocol === \"https:\";\n const cookie =\n `${shareCookieName(share.slug)}=${exp}.${mac}; Path=/share/${share.slug}; SameSite=Strict; Max-Age=${Math.floor(\n (exp - Date.now()) / 1000,\n )}` + (secure ? \"; Secure\" : \"\");\n return new Response(null, {\n status: 303,\n headers: { location: `/share/${share.slug}`, \"set-cookie\": cookie },\n });\n}\n\nfunction ttlRemaining(share: ShareRow): number {\n return share.expires_at == null ? SHARE_SESSION_TTL_MS : Math.max(0, share.expires_at - Date.now());\n}\n\n// ---- page shell ---------------------------------------------------------------\n\nfunction passwordPage(share: ShareRow, error: boolean): string {\n const inner = `\n <form method=\"post\" action=\"/share/${share.slug}/unlock\" class=\"pw\">\n <h1>🔒 此分享受口令保护</h1>\n ${error ? '<p class=\"err\">口令错误,请重试。</p>' : \"\"}\n <input type=\"password\" name=\"password\" placeholder=\"口令\" autofocus autocomplete=\"current-password\">\n <button type=\"submit\">解锁</button>\n </form>`;\n return pageShell(\"受保护的分享\", inner, { bare: true });\n}\n\nfunction pageShell(\n title: string,\n inner: string,\n opts: { editable?: boolean; editLabel?: string; script?: string; hint?: string; bare?: boolean } = {},\n): string {\n const editBtn = opts.editable ? `<button id=\"mh-edit\" class=\"edit-btn\">${opts.editLabel ?? \"编辑\"}</button>` : \"\";\n const hint = opts.hint ? `<p class=\"hint\">${escapeHtml(opts.hint)}</p>` : \"\";\n const script = opts.script ? `<script>(function(){${opts.script}})();</script>` : \"\";\n return `<!doctype html><html lang=\"zh\"><head>\n<meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n<meta name=\"robots\" content=\"noindex\">\n<title>${escapeHtml(title)}</title>\n<style>\n :root{--bg:#ffffff;--fg:#1f2328;--muted:#6e7781;--line:#d0d7de;--accent:#0969da;--card:#f6f8fa}\n @media (prefers-color-scheme: dark){:root{--bg:#0d1117;--fg:#e6edf3;--muted:#8b949e;--line:#30363d;--accent:#4493f8;--card:#161b22}}\n *{box-sizing:border-box}\n body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"PingFang SC\",\"Microsoft YaHei\",sans-serif}\n .wrap{max-width:820px;margin:0 auto;padding:32px 20px 80px}\n header.mh{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:14px}\n header.mh h1.title{font-size:22px;margin:0}\n .edit-btn{background:var(--accent);color:#fff;border:0;border-radius:7px;padding:7px 14px;cursor:pointer;font-size:14px}\n .hint{color:var(--muted);font-size:13px;margin:0 0 14px}\n article.doc h1,article.doc h2,article.doc h3{line-height:1.3;margin:1.4em 0 .5em}\n article.doc h1{font-size:1.7em} article.doc h2{font-size:1.4em} article.doc h3{font-size:1.2em}\n article.doc p{margin:.7em 0} article.doc img{max-width:100%;border-radius:8px}\n article.doc pre{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px;overflow:auto}\n article.doc code{background:var(--card);padding:.15em .35em;border-radius:4px;font-size:.9em}\n article.doc pre code{background:none;padding:0}\n article.doc blockquote{margin:.8em 0;padding:.2em 1em;border-left:3px solid var(--line);color:var(--muted)}\n article.doc table,table.db{border-collapse:collapse;width:100%;font-size:14px}\n article.doc td,article.doc th,table.db td,table.db th{border:1px solid var(--line);padding:7px 10px;text-align:left}\n table.db th{background:var(--card)}\n .table-wrap{overflow:auto}\n td[contenteditable]{outline:none} td.saving{opacity:.5} td.saved{background:rgba(46,160,67,.18)}\n .tag{display:inline-block;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:12px}\n .muted{color:var(--muted)} .mh-img{text-align:center}\n iframe.mh-embed{width:100%;border:1px solid var(--line);border-radius:8px;min-height:240px}\n textarea.mh-raw{width:100%;min-height:60vh;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg)}\n ul.files{list-style:none;padding:0} ul.files li{padding:4px 0} button.file{background:none;border:0;color:var(--accent);cursor:pointer;font-size:15px;padding:0}\n .row{display:flex;gap:10px;align-items:center;margin:10px 0}\n form.pw{max-width:320px;margin:12vh auto 0;display:flex;flex-direction:column;gap:12px}\n form.pw input{padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--fg)}\n form.pw button{padding:9px;border:0;border-radius:7px;background:var(--accent);color:#fff;cursor:pointer}\n form.pw .err{color:#f85149;font-size:13px;margin:0}\n footer.mh{margin-top:48px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:12px;text-align:center}\n</style></head><body>\n${opts.bare ? `<div class=\"wrap\">${inner}</div>` : `<div class=\"wrap\">\n<header class=\"mh\"><h1 class=\"title\">${escapeHtml(title)}</h1>${editBtn}</header>\n${hint}\n${inner}\n<footer class=\"mh\">通过 metahub 分享</footer>\n</div>`}\n${script}\n</body></html>`;\n}\n",
120
+ "// The SINGLE line-level Markdown grammar for every surface.\n//\n// Core stores document bodies as Markdown and both parses (core/blocks.ts,\n// share SSR) and serializes them, so the grammar lives in core: pure string\n// predicates, no DOM/editor imports, safe for the server renderer and the\n// static E2EE share shell. Consumers: the CM6 editor scan (webui/cm6/\n// blockmodel.ts), the save/load parser + serializer (webui/blocks.ts, which\n// re-exports this module), and the share renderer (core/sync/share-render.ts).\n// Because they all classify lines through the same predicates, the same bytes\n// can never render as different block types on different surfaces.\n//\n// STRICT rule: every marker — quote included — needs trailing whitespace, so\n// nothing renders as a block until the user commits with the space. `> foo`\n// and `> ` (an empty quote line, exactly what the serializer emits) are\n// quotes; a bare `>` (mid-typing, before the space) and `>foo` are paragraphs.\n// Same for todo: `- [ ] x` / `- [ ] ` are todos, `- [ ]` with nothing after\n// the bracket is still a bullet whose content is `[ ]`. Compatibility is a\n// parse-only change — existing bodies are never rewritten; legacy forms the\n// old serializer emitted are repaired at read boundaries by ./heal.ts.\n\n/** Reserved code-fence info string for a rendered-HTML block. `cleanLang` keeps\n * the hyphen, so it round-trips, and it can't collide with a real language id. */\nexport const HTML_FENCE = \"mh-html\";\n\nexport const RE = {\n fenceOpen: /^\\s*(`{3,}|~{3,})\\s*([^\\s`]*)?.*$/,\n h: /^(#{1,6})\\s+(.*)$/,\n todo: /^\\s*[-*+]\\s+\\[([ xX])\\][ \\t](.*)$/,\n bullet: /^\\s*[-*+]\\s+(.*)$/,\n numbered: /^\\s*(\\d+)[.)]\\s+(.*)$/,\n quote: /^>[ \\t](.*)$/,\n divider: /^\\s*(?:-{3,}|\\*{3,}|_{3,})\\s*$/,\n};\n\n/** URL-scheme whitelist for rendered links/images — the single sanitizer every\n * surface uses before emitting an `href`/`src` or calling `window.open`. Blocks\n * the injection vectors (`javascript:`, `vbscript:`, and — for links — `data:`)\n * while allowing normal web/mail/blob links, relative paths and `#anchors`.\n * Returns \"#\" for anything rejected, so a hostile URL from synced or shared\n * content can never execute. `allowData` is set for `<img>`, where `data:`\n * image URIs are legitimate and non-executable. */\nexport function safeUrl(url: string, opts: { allowData?: boolean } = {}): string {\n // Probe against a copy with C0 control chars + whitespace removed: browsers\n // strip those before parsing the scheme, so `\u0001javascript:` / `java\\tscript:`\n // would otherwise slip past a naive `^\\s*[a-z]` match and still execute. Only\n // the DETECTION uses the stripped copy — a safe URL is returned verbatim.\n const probe = url.replace(/[\\u0000-\\u0020]+/g, \"\");\n const m = /^([a-z][a-z0-9+.-]*):/i.exec(probe);\n if (!m) return url; // relative path, #anchor, or scheme-less — safe\n const scheme = m[1]!.toLowerCase();\n if (scheme === \"http\" || scheme === \"https\" || scheme === \"mailto\" || scheme === \"blob\")\n return url;\n if (scheme === \"data\" && opts.allowData) return url;\n return \"#\";\n}\n\n// ---- media-embed grammar (shared by editor scan, save parser, share render) ----\n\n/** A line that is solely a media/file embed is a block-level void on every\n * surface. The classifier + its helpers live here so the same bytes are a block\n * on all three (editor scan, `blocks.startsLeafBlock`, share renderer) — the\n * divergence that let a media line fold into a paragraph on save only. */\nexport type MediaKind = \"image\" | \"video\" | \"audio\" | \"file\";\n\nconst VIDEO_EXTS = new Set([\"mp4\", \"webm\", \"mov\", \"m4v\", \"ogv\", \"mkv\", \"ogg\"]);\nconst AUDIO_EXTS = new Set([\"mp3\", \"wav\", \"m4a\", \"aac\", \"flac\", \"opus\", \"oga\", \"weba\"]);\n\n/** Lowercased file extension of a URL (no query/fragment), or \"\". */\nexport function extOf(url: string): string {\n const clean = url.split(/[?#]/, 1)[0] ?? url;\n const base = clean.slice(clean.lastIndexOf(\"/\") + 1);\n const dot = base.lastIndexOf(\".\");\n return dot >= 0 ? base.slice(dot + 1).toLowerCase() : \"\";\n}\n\n/** Which `![](url)` embed a media URL is, by extension. Image syntax never maps\n * to \"file\": an unknown extension written as `![]()` is treated as an image. */\nexport function imageSyntaxKind(ext: string): \"image\" | \"video\" | \"audio\" {\n if (VIDEO_EXTS.has(ext)) return \"video\";\n if (AUDIO_EXTS.has(ext)) return \"audio\";\n return \"image\";\n}\n\n/** Split a media URL into its base src and an optional `w=` width, preserving any\n * other query params / fragment (external images may carry signed tokens). */\nexport function parseMediaUrl(url: string): { src: string; width?: number } {\n const hash = url.indexOf(\"#\");\n const frag = hash >= 0 ? url.slice(hash) : \"\";\n const noFrag = hash >= 0 ? url.slice(0, hash) : url;\n const q = noFrag.indexOf(\"?\");\n if (q < 0) return { src: url };\n const base = noFrag.slice(0, q);\n let width: number | undefined;\n const kept: string[] = [];\n for (const p of noFrag.slice(q + 1).split(\"&\").filter(Boolean)) {\n const m = p.match(/^w=(\\d+)$/);\n if (m) width = parseInt(m[1]!, 10);\n else kept.push(p);\n }\n return { src: base + (kept.length ? \"?\" + kept.join(\"&\") : \"\") + frag, width };\n}\n\nexport interface MediaLine {\n kind: MediaKind;\n src: string;\n name: string;\n width?: number; // image only\n size?: number; // file only\n}\n\n/** A line that is solely one embed → its classified parts, else null. Media use\n * `![alt](url)` (kind by extension); a file uses a `[name](/blob/..)` link so a\n * plain standalone hyperlink stays a paragraph. */\nexport function matchMediaEmbed(line: string): MediaLine | null {\n const t = line.trim();\n let m = t.match(/^!\\[([^\\]]*)\\]\\(([^\\s)]+)\\)$/);\n if (m) {\n const { src, width } = parseMediaUrl(m[2]!);\n const kind = imageSyntaxKind(extOf(src));\n const r: MediaLine = { kind, src, name: m[1]! };\n if (kind === \"image\" && width) r.width = width;\n return r;\n }\n m = t.match(/^\\[([^\\]]*)\\]\\(([^\\s)]+)(?:\\s+\"([^\"]*)\")?\\)$/);\n if (m && m[2]!.startsWith(\"/blob/\")) {\n const r: MediaLine = { kind: \"file\", src: m[2]!, name: m[1]! };\n if (m[3] != null && /^\\d+$/.test(m[3])) r.size = parseInt(m[3], 10);\n return r;\n }\n return null;\n}\n\n/** The single quote-line predicate for all consumers: quote content of `text`\n * (\"\" for the serializer's empty form `> `), or null if the line is not a\n * quote line. `text` must already be indent-stripped. */\nexport function matchQuoteLine(text: string): string | null {\n const m = text.match(RE.quote);\n return m ? m[1]! : null;\n}\n\nexport interface ListLine {\n indent: number;\n type: \"bullet\" | \"numbered\" | \"todo\";\n checked?: boolean;\n content: string;\n num?: number; // numbered only: the literal number the user wrote\n}\n\nexport function matchListLine(line: string, minIndent: number): ListLine | null {\n const indent = leadingIndent(line);\n if (indent < minIndent) return null;\n const text = stripIndent(line, indent);\n\n // STRICT like RE.todo: whitespace after `]` required — `- [ ] x` / `- [ ] `\n // are todos, a bare `- [ ]` (mid-typing) is a bullet whose content is `[ ]`.\n let m = text.match(/^[-*+]\\s+\\[([ xX])\\][ \\t](.*)$/);\n if (m) {\n return {\n indent,\n type: \"todo\",\n checked: m[1]!.toLowerCase() === \"x\",\n content: m[2]!,\n };\n }\n\n // STRICT: the marker needs trailing whitespace to be a list item. An empty\n // item serializes as `- ` / `2. ` (marker + trailing space, empty content) and\n // parses back as one — core's parseDocBlocks keeps line content verbatim, so\n // the trailing space survives sync. A BARE `-` / `2.` (no space, the state\n // mid-typing before the space) is a paragraph, `-foo`/`2.foo` are paragraphs,\n // `---` is a divider. This is the same rule the CM6 render uses, so what you\n // see while typing is exactly what a save/reload/share produces.\n m = text.match(/^(\\d+)[.)][ \\t]+(.*)$/);\n if (m) return { indent, type: \"numbered\", content: m[2]!, num: parseInt(m[1]!, 10) };\n\n m = text.match(/^[-*+][ \\t]+(.*)$/);\n if (m) return { indent, type: \"bullet\", content: m[1]! };\n\n return null;\n}\n\n/** Leading indentation of `line` in COLUMNS (tab = 4). */\nexport function leadingIndent(line: string): number {\n let indent = 0;\n for (const ch of line) {\n if (ch === \" \") indent++;\n else if (ch === \"\\t\") indent += 4;\n else break;\n }\n return indent;\n}\n\n/** Drop up to `columns` columns of leading whitespace from `line` (tab = 4). */\nexport function stripIndent(line: string, columns: number): string {\n let indent = 0;\n let i = 0;\n for (; i < line.length && indent < columns; i++) {\n const ch = line[i]!;\n if (ch === \" \") indent++;\n else if (ch === \"\\t\") indent += 4;\n else break;\n }\n return line.slice(i);\n}\n\n/** True when `line` closes a fence opened with `len` × `char` (same character,\n * at least the same length, nothing else on the line). */\nexport function isFenceClose(line: string, char: string, len: number): boolean {\n const trimmed = line.trim();\n if (!trimmed || trimmed[0] !== char) return false;\n for (const ch of trimmed) {\n if (ch !== char) return false;\n }\n return trimmed.length >= len;\n}\n\nexport function cleanLang(lang: string): string {\n return lang.trim().replace(/[^A-Za-z0-9_+.#-]/g, \"\");\n}\n\n// ---- GFM pipe tables ----\nexport const RE_DELIM_CELL = /^\\s*:?-+:?\\s*$/;\n\n/** True if a GFM table begins at line `i`: a pipe row immediately followed by a\n * delimiter row (e.g. `| :--- | ---: |`). */\nexport function looksLikeTableAt(lines: string[], i: number, minIndent: number): boolean {\n const head = lines[i];\n const delim = lines[i + 1];\n if (head == null || delim == null) return false;\n if (leadingIndent(head) < minIndent || leadingIndent(delim) < minIndent) return false;\n const headText = stripIndent(head, minIndent);\n const delimText = stripIndent(delim, minIndent);\n if (!headText.includes(\"|\") || !delimText.includes(\"|\")) return false;\n const cells = splitTableRow(delimText);\n return cells.length > 0 && cells.every((c) => RE_DELIM_CELL.test(c));\n}\n\n/** Split a table row into trimmed cells, honoring `\\|` escapes and dropping the\n * empty cells produced by the outer (leading/trailing) pipes. */\nexport function splitTableRow(line: string): string[] {\n const cells: string[] = [];\n let cur = \"\";\n for (let i = 0; i < line.length; i++) {\n const ch = line[i]!;\n if (ch === \"\\\\\" && line[i + 1] === \"|\") {\n cur += \"|\";\n i++;\n continue;\n }\n if (ch === \"|\") {\n cells.push(cur);\n cur = \"\";\n continue;\n }\n cur += ch;\n }\n cells.push(cur);\n if (cells.length && cells[0]!.trim() === \"\") cells.shift();\n if (cells.length && cells[cells.length - 1]!.trim() === \"\") cells.pop();\n return cells.map((c) => c.trim());\n}\n",
121
+ "// Single source of truth for the constrained inline-markdown grammar.\n//\n// Four surfaces render the same inline syntax — the CM6 live editor\n// (webui/cm6/inline.ts), the contenteditable/table HTML bridge\n// (webui/markdown.tsx), the TOC label stripper (webui/cm6/chrome/toc.tsx), and\n// the share renderer (core/sync/share-render.ts) — and they had drifted apart.\n// They all consume this tokenizer now, so the grammar can only change in one\n// place. Pure string ops (no DOM): lives in core so the share SSR and the\n// static E2EE share shell can use it too.\n//\n// Semantics (deliberately simple, single level — no nested emphasis):\n// `code` — content is literal; protects its interior from every other rule\n// ![a](u) — inline image; MUST outrank the link rule (it contains one)\n// **b**/__b__ ~~d~~ *i*/_i_ [t](u)\n// Candidates are collected per pattern and selected greedily left-to-right with\n// a priority rank on start-ties, exactly like the CM6 editor always did — so a\n// chosen span swallows anything overlapping it (`` `**x**` `` is one code token).\n//\n// Escapes (v1): a backslash immediately before a delimiter prevents the token\n// (`\\*not em\\*` stays literal); the backslash itself remains literal text —\n// no unescaping pass. Escapes do not apply inside code spans (CommonMark-like).\n\nexport interface InlineToken {\n kind: \"code\" | \"image\" | \"strong\" | \"em\" | \"del\" | \"link\";\n /** Token span in the source string (end exclusive), delimiters included. */\n start: number;\n end: number;\n /** Content span (code text, emphasis body, link text, image alt). */\n innerFrom: number;\n innerTo: number;\n /** link / image only. */\n url?: string;\n /** image only (may be \"\"). */\n alt?: string;\n}\n\ninterface Pattern {\n kind: InlineToken[\"kind\"];\n re: RegExp;\n /** Delimiter width on each side (symmetric tokens only). */\n delim: number;\n /** Lower wins when two candidates start at the same offset. */\n rank: number;\n}\n\n// Boundary guards ((?<![*\\w]) …) are inherited from the original CM6 grammar;\n// the (?<!\\\\) guards close the escape hole shared by all three old copies.\n// Content classes exclude \\n so tokens never span lines; URLs exclude\n// whitespace so a pasted sentence in parens doesn't become a link target.\nconst PATTERNS: Pattern[] = [\n { kind: \"code\", re: /(?<!\\\\)`([^`\\n]+)`/g, delim: 1, rank: 0 },\n { kind: \"image\", re: /(?<!\\\\)!\\[([^\\]\\n]*)\\]\\(([^)\\s]+)\\)/g, delim: 0, rank: 1 },\n { kind: \"strong\", re: /(?<!\\\\)\\*\\*([^*\\n]+?)(?<!\\\\)\\*\\*/g, delim: 2, rank: 2 },\n { kind: \"strong\", re: /(?<!\\\\)__([^_\\n]+?)(?<!\\\\)__/g, delim: 2, rank: 2 },\n { kind: \"del\", re: /(?<!\\\\)~~([^~\\n]+?)(?<!\\\\)~~/g, delim: 2, rank: 3 },\n { kind: \"em\", re: /(?<![*\\w])(?<!\\\\)\\*([^*\\n]+?)(?<!\\\\)\\*(?!\\*)/g, delim: 1, rank: 4 },\n { kind: \"em\", re: /(?<![_\\w])(?<!\\\\)_([^_\\n]+?)(?<!\\\\)_(?!_)/g, delim: 1, rank: 4 },\n { kind: \"link\", re: /(?<!\\\\)\\[([^\\]\\n]+)\\]\\(([^)\\s]+)\\)/g, delim: 0, rank: 5 },\n];\n\ninterface Cand extends InlineToken {\n rank: number;\n}\n\n/** Tokenize one inline string. Returns non-overlapping tokens sorted by start. */\nexport function tokenizeInline(text: string): InlineToken[] {\n if (!text) return [];\n const cands: Cand[] = [];\n for (const p of PATTERNS) {\n p.re.lastIndex = 0;\n let m: RegExpExecArray | null;\n while ((m = p.re.exec(text))) {\n const start = m.index;\n const end = start + m[0]!.length;\n let innerFrom: number;\n let innerTo: number;\n let url: string | undefined;\n let alt: string | undefined;\n if (p.kind === \"link\") {\n innerFrom = start + 1;\n innerTo = start + 1 + m[1]!.length;\n url = m[2]!;\n } else if (p.kind === \"image\") {\n innerFrom = start + 2; // after `![`\n innerTo = start + 2 + m[1]!.length;\n url = m[2]!;\n alt = m[1]!;\n } else {\n innerFrom = start + p.delim;\n innerTo = end - p.delim;\n if (innerTo <= innerFrom) continue;\n }\n cands.push({ kind: p.kind, start, end, innerFrom, innerTo, url, alt, rank: p.rank });\n }\n }\n // Greedy left-to-right, single level: earliest start wins; on a start-tie the\n // higher-priority (lower rank) pattern wins, then the longer match.\n cands.sort((a, b) => a.start - b.start || a.rank - b.rank || b.end - a.end);\n const out: InlineToken[] = [];\n let cursor = 0;\n for (const c of cands) {\n if (c.start < cursor) continue; // overlaps a chosen span\n cursor = c.end;\n out.push({\n kind: c.kind,\n start: c.start,\n end: c.end,\n innerFrom: c.innerFrom,\n innerTo: c.innerTo,\n ...(c.url !== undefined ? { url: c.url } : {}),\n ...(c.alt !== undefined ? { alt: c.alt } : {}),\n });\n }\n return out;\n}\n\n/** Reduce a string to its plain text: delimiters dropped, links/images keep\n * their text/alt. Runs to a fixed point so `[**b**](u)` fully flattens even\n * though a single tokenize pass is single-level. Used for TOC labels etc. */\nexport function stripInlineTokens(text: string): string {\n let s = text;\n for (let i = 0; i < 8; i++) {\n const tokens = tokenizeInline(s);\n if (!tokens.length) break;\n let out = \"\";\n let pos = 0;\n for (const t of tokens) {\n out += s.slice(pos, t.start);\n out += t.kind === \"image\" ? (t.alt ?? \"\") : s.slice(t.innerFrom, t.innerTo);\n pos = t.end;\n }\n out += s.slice(pos);\n if (out === s) break;\n s = out;\n }\n return s;\n}\n",
122
+ "// Read-boundary healing of LEGACY marker forms the pre-strict serializer\n// emitted. The strict grammar (./grammar.ts) requires trailing whitespace after\n// every marker; two historical forms predate the tightening:\n//\n// • empty todo without the trailing space: old lenient parsing accepted\n// `- [ ]` as a todo; strict reads it as a bullet whose content is `[ ]`.\n// • bare `>` for an empty line INSIDE a quote block: the old serializer wrote\n// `>${line ? \" \" + line : \"\"}`, so a multi-paragraph quote was stored as\n// `> a` / `>` / `> b`. Strict reads the bare `>` as a paragraph, splitting\n// the quote in two with a literal \">\" line between.\n//\n// healLegacyMarkdown restores the serializer's canonical forms (append the\n// missing space). Deliberately narrow — the grammar itself is NOT relaxed:\n// • todo: only lines ENDING at the `]` (an empty todo); `- [ ]x` stays.\n// • quote: only a bare `>` ADJACENT to a real quote line (before or after,\n// same fence region) — the shape the old serializer produced. An isolated\n// `>` paragraph the user typed stays a paragraph.\n// • never inside a fenced region (code/html may legally contain such text);\n// the closed-fence rule mirrors the scanners: an unclosed opener is prose.\n// • idempotent and pure. Applied at read boundaries only (editor load /\n// remote setDoc, blocksFromBody, share renderMarkdown) — persisted lazily\n// when the user next saves; stored bodies are never mass-rewritten (a\n// write migration would churn every synced peer for a cosmetic fix).\n\nimport { RE, isFenceClose, matchQuoteLine } from \"./grammar.ts\";\n\n/** `- [ ]` / `- [x]` (any list glyph, any indent) with nothing after the `]`. */\nconst LEGACY_EMPTY_TODO = /^[ \\t]*[-*+][ \\t]+\\[[ xX]\\]$/;\nconst BARE_QUOTE = /^[ \\t]*>$/;\n/** Fast bail: any line that IS one of the two legacy forms. */\nconst MAYBE_LEGACY = /^[ \\t]*(?:[-*+][ \\t]+\\[[ xX]\\]|>)$/m;\n\n/** Lines covered by a CLOSED fence (opener + matching closer), as a boolean\n * mask. Mirrors the scanners' rule; tables/media lines can't collide with the\n * legacy patterns (whole-line matches), so fences are the only voids that\n * matter here. */\nfunction fenceMask(lines: string[]): boolean[] {\n const mask = new Array<boolean>(lines.length).fill(false);\n for (let i = 0; i < lines.length; i++) {\n const m = lines[i]!.match(RE.fenceOpen);\n if (!m) continue;\n const ch = m[1]![0]!;\n const len = m[1]!.length;\n let close = -1;\n for (let j = i + 1; j < lines.length; j++) {\n if (isFenceClose(lines[j]!, ch, len)) {\n close = j;\n break;\n }\n }\n if (close === -1) continue; // unclosed opener is prose — healable region\n for (let j = i; j <= close; j++) mask[j] = true;\n i = close;\n }\n return mask;\n}\n\nexport function healLegacyMarkdown(src: string): string {\n if (!MAYBE_LEGACY.test(src)) return src;\n const lines = src.split(\"\\n\");\n const inFence = fenceMask(lines);\n const quoteish = (i: number): boolean =>\n i >= 0 && i < lines.length && !inFence[i] &&\n matchQuoteLine(lines[i]!.replace(/^[ \\t]*/, \"\")) !== null;\n\n let changed = false;\n for (let i = 0; i < lines.length; i++) {\n if (inFence[i]) continue;\n const line = lines[i]!;\n if (LEGACY_EMPTY_TODO.test(line)) {\n lines[i] = line + \" \";\n changed = true;\n } else if (BARE_QUOTE.test(line) && (quoteish(i - 1) || quoteish(i + 1))) {\n // Top-down pass: a healed `>` becomes `> `, so a RUN of bare `>`s heals\n // transitively DOWNWARD via the quoteish(i - 1) check.\n lines[i] = line + \" \";\n changed = true;\n }\n }\n // Backward pass: a run of bare `>` at the START of a quote (no real quote line\n // above it) can't heal top-down — when i is visited, the line below is still\n // bare. Propagate UPWARD so the whole leading run heals off the first `> text`.\n for (let i = lines.length - 1; i >= 0; i--) {\n if (inFence[i]) continue;\n const line = lines[i]!;\n if (BARE_QUOTE.test(line) && (quoteish(i - 1) || quoteish(i + 1))) {\n lines[i] = line + \" \";\n changed = true;\n }\n }\n return changed ? lines.join(\"\\n\") : src;\n}\n",
123
+ "// Runtime-agnostic Markdown → HTML rendering for read-only share pages. Pure\n// string ops (no DOM, no node:* — usable both server-side in serveShare and in\n// the static Cloudflare-Pages viewer that decrypts an s3 bundle in the browser).\n//\n// This is a deliberately small block renderer covering the document model — it\n// is NOT a CommonMark engine. Every classification goes through the shared\n// grammar (core/md/grammar.ts) and the shared inline tokenizer (core/md/\n// inline.ts), the same predicates the editor scan and the save parser use, so\n// the same bytes can never render as different blocks on different surfaces\n// (pinned by webui/cm6/grammar-parity.test.ts). Legacy marker forms heal at\n// this read boundary too (core/md/heal.ts).\n\nimport {\n RE,\n HTML_FENCE,\n cleanLang,\n isFenceClose,\n looksLikeTableAt,\n matchListLine,\n matchMediaEmbed,\n matchQuoteLine,\n safeUrl,\n splitTableRow,\n stripIndent,\n type MediaLine,\n} from \"../md/grammar.ts\";\nimport { tokenizeInline } from \"../md/inline.ts\";\nimport { healLegacyMarkdown } from \"../md/heal.ts\";\n\nexport function escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\"/g, \"&quot;\");\n}\n\nexport interface RenderOpts {\n /** Rewrite a `/blob/<hash>` URL to a reachable one (scoped endpoint or data URL). */\n rewriteBlob?: (url: string) => string;\n}\n\n/** Inline Markdown → HTML: a pure function of the shared tokenizer. Gaps are\n * escaped text; each token maps to one tag shape (the parity test's oracle\n * mirrors this table exactly). */\nexport function renderInline(src: string, opts: RenderOpts = {}): string {\n const tokens = tokenizeInline(src);\n let out = \"\";\n let pos = 0;\n for (const t of tokens) {\n out += escapeHtml(src.slice(pos, t.start));\n const inner = src.slice(t.innerFrom, t.innerTo);\n const rawUrl = rewrite(t.url ?? \"\", opts);\n switch (t.kind) {\n case \"code\":\n out += `<code>${escapeHtml(inner)}</code>`;\n break;\n case \"strong\":\n out += `<strong>${escapeHtml(inner)}</strong>`;\n break;\n case \"em\":\n out += `<em>${escapeHtml(inner)}</em>`;\n break;\n case \"del\":\n out += `<del>${escapeHtml(inner)}</del>`;\n break;\n case \"link\": {\n // Whitelist the scheme so a hostile `javascript:`/`data:text/html` href\n // from a shared doc can't execute when a page visitor clicks it, and\n // escapeHtml (not just quote-escaping) so an entity-encoded scheme like\n // `&#106;avascript:` can't be decoded back to `javascript:` in the attr.\n const href = escapeHtml(safeUrl(rawUrl));\n out += `<a href=\"${href}\" target=\"_blank\" rel=\"noreferrer noopener\">${escapeHtml(inner)}</a>`;\n break;\n }\n case \"image\": {\n const imgSrc = escapeHtml(safeUrl(rawUrl, { allowData: true }));\n out += `<img src=\"${imgSrc}\" alt=\"${escapeHtml(t.alt ?? \"\")}\" loading=\"lazy\">`;\n break;\n }\n }\n pos = t.end;\n }\n return out + escapeHtml(src.slice(pos));\n}\n\nfunction rewrite(url: string, opts: RenderOpts): string {\n if (opts.rewriteBlob && url.startsWith(\"/blob/\")) return opts.rewriteBlob(url);\n return url;\n}\n\n/** Render a standalone non-image media/file embed by kind, so video/audio play\n * and a file becomes a download link instead of degrading to a broken <img> or\n * a bare hyperlink (image is rendered inline by the caller). */\nfunction renderMedia(m: MediaLine, opts: RenderOpts): string {\n const raw = rewrite(m.src, opts);\n if (m.kind === \"video\") {\n const src = escapeHtml(safeUrl(raw, { allowData: true }));\n return `<p class=\"mh-media\"><video src=\"${src}\" controls preload=\"metadata\"></video></p>`;\n }\n if (m.kind === \"audio\") {\n const src = escapeHtml(safeUrl(raw, { allowData: true }));\n return `<p class=\"mh-media\"><audio src=\"${src}\" controls preload=\"metadata\"></audio></p>`;\n }\n // file\n const href = escapeHtml(safeUrl(raw));\n return `<p class=\"mh-file\"><a href=\"${href}\" download>${escapeHtml(m.name || \"file\")}</a></p>`;\n}\n\n/** Render a markdown body to an HTML string (block-level). */\nexport function renderMarkdown(md: string, opts: RenderOpts = {}): string {\n const healed = healLegacyMarkdown((md ?? \"\").replace(/\\r\\n?/g, \"\\n\"));\n const lines = healed.split(\"\\n\");\n const out: string[] = [];\n let i = 0;\n let para: string[] = [];\n\n const flushPara = () => {\n if (!para.length) return;\n out.push(`<p>${para.map((l) => renderInline(l, opts)).join(\"<br>\")}</p>`);\n para = [];\n };\n\n while (i < lines.length) {\n const line = lines[i]!;\n\n // Fenced code block (``` or ~~~). Editor semantics via the shared rules:\n // the closer must repeat the opener's character at least as many times\n // (isFenceClose), and an UNCLOSED opener is prose, not code-to-EOF — so the\n // fence branch only fires when a closer exists.\n const fence = line.match(RE.fenceOpen);\n if (fence) {\n const marker = fence[1]![0]!;\n const len = fence[1]!.length;\n let close = -1;\n for (let j = i + 1; j < lines.length; j++) {\n if (isFenceClose(lines[j]!, marker, len)) {\n close = j;\n break;\n }\n }\n if (close !== -1) {\n flushPara();\n const info = cleanLang(fence[2] ?? \"\");\n const body = lines.slice(i + 1, close);\n i = close + 1;\n if (info === HTML_FENCE) {\n out.push(\n `<iframe class=\"mh-embed\" sandbox=\"allow-scripts allow-popups\" srcdoc=\"${escapeHtml(\n body.join(\"\\n\"),\n )}\"></iframe>`,\n );\n } else {\n const cls = info ? ` class=\"language-${escapeHtml(info)}\"` : \"\";\n out.push(`<pre><code${cls}>${escapeHtml(body.join(\"\\n\"))}</code></pre>`);\n }\n continue;\n }\n }\n\n if (line.trim() === \"\") {\n flushPara();\n i++;\n continue;\n }\n\n // ATX heading. Strip nesting indent first (RE.h is anchored flush-left by\n // contract): an indented ` # x` is a heading in the editor scan, so it must\n // be one here and in rich copy too.\n const h = stripLead(line).match(RE.h);\n if (h) {\n flushPara();\n const level = h[1]!.length;\n out.push(`<h${level}>${renderInline(h[2]!.trim(), opts)}</h${level}>`);\n i++;\n continue;\n }\n\n // Horizontal rule. Strict (shared RE.divider): no interior spaces —\n // \"- - -\" is a bullet whose content is \"- -\", exactly like the editor.\n if (RE.divider.test(line)) {\n flushPara();\n out.push(\"<hr>\");\n i++;\n continue;\n }\n\n // Blockquote: consecutive quote lines through the shared predicate\n // (`>` + space/tab; a bare `>` or `>foo` is a paragraph on every surface).\n if (matchQuoteLine(stripLead(line)) !== null) {\n flushPara();\n const q: string[] = [];\n while (i < lines.length) {\n const content = matchQuoteLine(stripLead(lines[i]!));\n if (content === null) break;\n q.push(content);\n i++;\n }\n out.push(`<blockquote>${renderMarkdown(q.join(\"\\n\"), opts)}</blockquote>`);\n continue;\n }\n\n // Pipe table: shared strict check — header row + delimiter row whose every\n // cell matches `:?-+:?` (the editor rejects anything looser, so must we).\n if (looksLikeTableAt(lines, i, 0)) {\n flushPara();\n const rows: string[][] = [];\n const head = splitTableRow(stripLead(lines[i]!));\n i += 2; // skip header + delimiter\n while (i < lines.length && lines[i]!.includes(\"|\") && lines[i]!.trim() !== \"\") {\n rows.push(splitTableRow(stripLead(lines[i]!)));\n i++;\n }\n const th = head.map((c) => `<th>${renderInline(c, opts)}</th>`).join(\"\");\n const body = rows\n .map((r) => `<tr>${r.map((c) => `<td>${renderInline(c, opts)}</td>`).join(\"\")}</tr>`)\n .join(\"\");\n out.push(`<table><thead><tr>${th}</tr></thead><tbody>${body}</tbody></table>`);\n continue;\n }\n\n // List run: consecutive lines the shared list predicate accepts, split\n // whenever orderedness flips (a bullet run and a numbered run are separate\n // lists). Todos render as real checkboxes; ordered items carry their\n // LITERAL number as `value` — the editor treats source numbers as\n // authoritative, so the share page must not let the browser renumber.\n const first = matchListLine(line, 0);\n if (first) {\n flushPara();\n const ordered = first.type === \"numbered\";\n const lis: string[] = [];\n while (i < lines.length) {\n const it = matchListLine(lines[i]!, 0);\n if (!it || (it.type === \"numbered\") !== ordered) break;\n if (it.type === \"todo\") {\n lis.push(\n `<li class=\"todo\"><input type=\"checkbox\" disabled${it.checked ? \" checked\" : \"\"}> ${renderInline(it.content, opts)}</li>`,\n );\n } else if (it.type === \"numbered\" && it.num !== undefined) {\n lis.push(`<li value=\"${it.num}\">${renderInline(it.content, opts)}</li>`);\n } else {\n lis.push(`<li>${renderInline(it.content, opts)}</li>`);\n }\n i++;\n }\n out.push(ordered ? `<ol>${lis.join(\"\")}</ol>` : `<ul>${lis.join(\"\")}</ul>`);\n continue;\n }\n\n // Standalone media/file embed → its own block (the same predicate the editor\n // scan and save parser use). Image renders inline as before; video/audio/file\n // render by kind so they don't degrade to a broken <img> or a bare link.\n const media = matchMediaEmbed(line);\n if (media) {\n flushPara();\n out.push(\n media.kind === \"image\"\n ? `<p class=\"mh-img\">${renderInline(line.trim(), opts)}</p>`\n : renderMedia(media, opts),\n );\n i++;\n continue;\n }\n\n para.push(line);\n i++;\n }\n flushPara();\n return out.join(\"\\n\");\n}\n\n/** Strip leading whitespace (indent) — quote/table cells tolerate nesting\n * indent on the share page like the editor render does. */\nfunction stripLead(line: string): string {\n return stripIndent(line, Number.MAX_SAFE_INTEGER);\n}\n",
124
+ "// Public, token-exempt serving of a share (/share/<slug>...). Mounted in\n// server.ts BEFORE the route matcher and deliberately NOT wrapped in withShim,\n// so a share page never carries the master-token runtime (/mh-runtime.js).\n//\n// Access control is per-share (slug lookup + expiry + optional password) — NOT\n// the master token gate. View shares are server-rendered live each request;\n// edit shares (server-only) accept writes attributed to the share's guest node\n// id (see core/shares.ts, crdt.ts withNodeId) so they replicate to the owner's\n// devices as a distinct author. Object-storage shares never reach here — they're\n// a presigned static export served by a separate viewer (see share-export.ts).\n\nimport type { RouteCtx } from \"./routes.ts\";\nimport { randomSuffix } from \"../ids.ts\";\nimport {\n getShare,\n deleteShare,\n shareExpired,\n verifySharePassword,\n type ShareRow,\n} from \"../shares.ts\";\nimport { getDocument, updateDocument, documentVersion } from \"../documents.ts\";\nimport { getDatabase } from \"../databases.ts\";\nimport { listProperties, type PropertyRow } from \"../properties.ts\";\nimport { listRecords, updateRecord, getRecord } from \"../records.ts\";\nimport { resolveSite, getFileForServe, listFiles, getFileRow, putFile, deleteFile } from \"../sites.ts\";\nimport { resolveBlob, blobContentType } from \"../blobs.ts\";\nimport { inferContentType } from \"../sites-core.ts\";\nimport { withNodeId } from \"../crdt.ts\";\nimport { renderMarkdown, escapeHtml } from \"./share-render.ts\";\n\nconst HTML = { \"content-type\": \"text/html; charset=utf-8\" } as const;\nconst HASH_RE = /^[0-9a-f]{16,64}$/;\n\nfunction notFound(): Response {\n return new Response(\"not found\", { status: 404 });\n}\nfunction gone(): Response {\n return new Response(\"this share has expired\", { status: 410 });\n}\nfunction unauthorizedJson(): Response {\n return Response.json({ error: \"unauthorized\" }, { status: 401 });\n}\nfunction wantsHtml(req: Request): boolean {\n return (req.headers.get(\"accept\") ?? \"\").includes(\"text/html\");\n}\n\nexport async function serveShare(req: Request, ctx: RouteCtx): Promise<Response | null> {\n const url = new URL(req.url);\n const rest0 = url.pathname.slice(\"/share/\".length);\n if (!rest0) return null;\n const slash = rest0.indexOf(\"/\");\n const slug = decodeURIComponent(slash === -1 ? rest0 : rest0.slice(0, slash));\n const sub = slash === -1 ? \"\" : rest0.slice(slash + 1);\n if (!slug) return null;\n\n const share = getShare(ctx.db, slug);\n if (!share) return notFound();\n if (share.transport !== \"server\") return notFound(); // s3 shares aren't served here\n if (shareExpired(share)) {\n deleteShare(ctx.db, slug);\n return gone();\n }\n\n // Password gate (the unlock endpoint authenticates inside itself).\n if (sub === \"unlock\" && req.method === \"POST\") return handleUnlock(ctx, req, share, url);\n const locked = !!share.pw_hash && !(await hasShareSession(ctx, req, share));\n if (locked) {\n return wantsHtml(req)\n ? new Response(passwordPage(share, false), { headers: HTML })\n : unauthorizedJson();\n }\n\n // Scoped blob bytes for doc/table images (token-exempt, but only hashes the\n // shared target actually references — never an open blob oracle).\n if (sub.startsWith(\"blob/\")) return serveScopedBlob(ctx, share, sub.slice(\"blob/\".length));\n\n if (share.kind === \"doc\") return serveDoc(ctx, req, share, sub);\n if (share.kind === \"database\") return serveTable(ctx, req, share, sub);\n if (share.kind === \"site\") return serveSiteShare(ctx, req, share, sub);\n return notFound();\n}\n\n// ---- documents ----------------------------------------------------------------\n\nasync function serveDoc(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n sub: string,\n): Promise<Response> {\n const doc = getDocument(ctx.db, share.target_id);\n if (!doc) return notFound();\n\n // Edit write-back: replace the whole body, attributed to the guest node.\n if (sub === \"doc\" && req.method === \"POST\") {\n if (share.permission !== \"edit\") return unauthorizedJson();\n const body = (await req.json().catch(() => ({}))) as { body?: string; ifMatch?: string };\n if (typeof body.body !== \"string\")\n return Response.json({ error: \"body required\" }, { status: 400 });\n try {\n withNodeId(share.guest_node_id, () =>\n updateDocument(ctx.db, share.target_id, { body: body.body }, { ifMatch: body.ifMatch }),\n );\n } catch (e) {\n return Response.json(\n { error: (e as Error).message },\n { status: (e as { code?: string }).code === \"stale\" ? 409 : 400 },\n );\n }\n return Response.json({ version: documentVersion(ctx.db, share.target_id) });\n }\n\n if (sub !== \"\") return notFound();\n\n const rendered = renderMarkdown(doc.body ?? \"\", {\n rewriteBlob: (u) => `/share/${share.slug}/${u.replace(/^\\//, \"\")}`,\n });\n const version = documentVersion(ctx.db, share.target_id);\n const editable = share.permission === \"edit\";\n const inner = `<article class=\"doc\">${rendered || '<p class=\"muted\">(空文档)</p>'}</article>`;\n const script = editable ? docEditScript(share.slug, version, doc.body ?? \"\") : \"\";\n return new Response(\n pageShell(doc.title || \"文档\", inner, { editable, editLabel: \"编辑文档\", script }),\n { headers: HTML },\n );\n}\n\nfunction docEditScript(slug: string, version: string, body: string): string {\n return `\n let editing=false; const ver=${JSON.stringify(version)}; const body0=${JSON.stringify(body)};\n const art=document.querySelector('article.doc');\n const btn=document.getElementById('mh-edit');\n let ta;\n btn.addEventListener('click', async ()=>{\n if(!editing){\n editing=true; btn.textContent='保存';\n ta=document.createElement('textarea'); ta.className='mh-raw'; ta.value=body0;\n art.replaceWith(ta); ta.focus();\n } else {\n btn.disabled=true; btn.textContent='保存中…';\n const res=await fetch('/share/${slug}/doc',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({body:ta.value,ifMatch:ver})});\n if(res.ok){ location.reload(); }\n else { const j=await res.json().catch(()=>({})); alert(j.error||'保存失败'); btn.disabled=false; btn.textContent='保存'; }\n }\n });`;\n}\n\n// ---- databases / tables -------------------------------------------------------\n\nfunction cellText(prop: PropertyRow, value: unknown): string {\n if (value === null || value === undefined) return \"\";\n if (prop.type === \"checkbox\") return value ? \"✓\" : \"\";\n if (Array.isArray(value)) return value.map((v) => String(v)).join(\", \");\n return String(value);\n}\n\nfunction cellHtml(prop: PropertyRow, value: unknown): string {\n if (value === null || value === undefined) return \"\";\n if (prop.type === \"checkbox\") return value ? \"✓\" : \"\";\n if (prop.type === \"url\") {\n const s = String(value);\n return `<a href=\"${escapeHtml(s)}\" target=\"_blank\" rel=\"noreferrer noopener\">${escapeHtml(s)}</a>`;\n }\n if (Array.isArray(value))\n return value.map((v) => `<span class=\"tag\">${escapeHtml(String(v))}</span>`).join(\" \");\n return escapeHtml(String(value));\n}\n\n/** Cell types a recipient can edit inline (free-text-ish). */\nfunction editableType(t: string): boolean {\n return t === \"text\" || t === \"number\" || t === \"url\" || t === \"date\";\n}\n\nasync function serveTable(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n sub: string,\n): Promise<Response> {\n const dbRow = getDatabase(ctx.db, share.target_id);\n if (!dbRow) return notFound();\n const props = listProperties(ctx.db, share.target_id).sort((a, b) => a.position - b.position);\n\n if (sub === \"record\" && req.method === \"POST\") {\n if (share.permission !== \"edit\") return unauthorizedJson();\n const body = (await req.json().catch(() => ({}))) as { id?: string; propId?: string; value?: unknown };\n if (!body.id || !body.propId)\n return Response.json({ error: \"id and propId required\" }, { status: 400 });\n // Scope: the record must belong to THIS shared database, and the column to a\n // free-text property of it (no schema edits, no cross-database writes).\n const rec = getRecord(ctx.db, body.id);\n if (!rec || rec.database_id !== share.target_id) return notFound();\n const prop = props.find((p) => p.id === body.propId);\n if (!prop || !editableType(prop.type))\n return Response.json({ error: \"not an editable column\" }, { status: 400 });\n try {\n withNodeId(share.guest_node_id, () =>\n updateRecord(ctx.db, body.id!, { [body.propId!]: body.value ?? null }),\n );\n } catch (e) {\n return Response.json({ error: (e as Error).message }, { status: 400 });\n }\n return Response.json({ ok: true });\n }\n\n if (sub !== \"\") return notFound();\n\n const records = listRecords(ctx.db, share.target_id);\n const editable = share.permission === \"edit\";\n const head = props.map((p) => `<th>${escapeHtml(p.name)}</th>`).join(\"\");\n const rows = records\n .map((r) => {\n const tds = props\n .map((p) => {\n const v = r.cells[p.id];\n if (editable && editableType(p.type)) {\n return `<td contenteditable data-rec=\"${escapeHtml(r.id)}\" data-prop=\"${escapeHtml(\n p.id,\n )}\" data-type=\"${p.type}\">${escapeHtml(cellText(p, v))}</td>`;\n }\n return `<td>${cellHtml(p, v)}</td>`;\n })\n .join(\"\");\n return `<tr>${tds}</tr>`;\n })\n .join(\"\");\n const inner = `<div class=\"table-wrap\"><table class=\"db\"><thead><tr>${head}</tr></thead><tbody>${rows}</tbody></table></div>`;\n const script = editable ? tableEditScript(share.slug) : \"\";\n return new Response(pageShell(dbRow.name || \"表格\", inner, { script, hint: editable ? \"可编辑文本/数字/URL/日期单元格,失焦自动保存\" : \"\" }), {\n headers: HTML,\n });\n}\n\nfunction tableEditScript(slug: string): string {\n return `\n document.querySelectorAll('td[contenteditable]').forEach(td=>{\n let orig=td.textContent;\n td.addEventListener('blur', async ()=>{\n const val=td.textContent;\n if(val===orig) return;\n const type=td.dataset.type;\n let v=val; if(type==='number'){ v = val===''?null:Number(val); if(v!==null && !isFinite(v)){ td.textContent=orig; return; } }\n td.classList.add('saving');\n const res=await fetch('/share/${slug}/record',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({id:td.dataset.rec,propId:td.dataset.prop,value:v})});\n td.classList.remove('saving');\n if(res.ok){ orig=val; td.classList.add('saved'); setTimeout(()=>td.classList.remove('saved'),600); }\n else { td.textContent=orig; const j=await res.json().catch(()=>({})); alert(j.error||'保存失败'); }\n });\n });`;\n}\n\n// ---- sites --------------------------------------------------------------------\n\nasync function serveSiteShare(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n sub: string,\n): Promise<Response> {\n let siteId: string;\n try {\n siteId = resolveSite(ctx.db, share.target_id).id;\n } catch {\n return notFound();\n }\n\n // Edit surface (reserved underscore paths so they never collide with files).\n if (share.permission === \"edit\") {\n if (sub === \"_files\") return new Response(siteFilesPage(ctx, share, siteId), { headers: HTML });\n if (sub === \"_file\" && req.method === \"POST\") {\n const body = (await req.json().catch(() => ({}))) as { path?: string; content?: string; contentType?: string };\n if (!body.path || typeof body.content !== \"string\")\n return Response.json({ error: \"path and content required\" }, { status: 400 });\n try {\n await withNodeId(share.guest_node_id, () =>\n putFile(ctx.db, siteId, body.path!, { data: body.content!, contentType: body.contentType }),\n );\n } catch (e) {\n return Response.json({ error: (e as Error).message }, { status: 400 });\n }\n return Response.json({ ok: true });\n }\n if (sub === \"_file/delete\" && req.method === \"POST\") {\n const body = (await req.json().catch(() => ({}))) as { path?: string };\n if (!body.path) return Response.json({ error: \"path required\" }, { status: 400 });\n withNodeId(share.guest_node_id, () => deleteFile(ctx.db, siteId, body.path!));\n return Response.json({ ok: true });\n }\n if (sub === \"_raw\") {\n // Raw text of one file for the editor (text files only).\n const url = new URL(req.url);\n const p = url.searchParams.get(\"path\") ?? \"\";\n const row = getFileRow(ctx.db, siteId, p);\n if (!row || row.encoding !== \"utf8\") return Response.json({ content: null });\n return Response.json({ content: row.content ?? \"\" });\n }\n }\n\n // Serve the site itself (live), exactly like /sites/<name>/ but token-exempt.\n const file = await getFileForServe(ctx.db, siteId, sub);\n if (!file) return notFound();\n const out = new Uint8Array(file.bytes.byteLength);\n out.set(file.bytes);\n return new Response(out.buffer, { headers: { \"content-type\": file.contentType } });\n}\n\nfunction siteFilesPage(ctx: RouteCtx, share: ShareRow, siteId: string): string {\n const files = listFiles(ctx.db, siteId);\n const list = files\n .map(\n (f) =>\n `<li><button class=\"file\" data-path=\"${escapeHtml(f.path)}\" data-text=\"${\n f.encoding === \"utf8\" ? \"1\" : \"0\"\n }\">${escapeHtml(f.path)}</button> <span class=\"muted\">${escapeHtml(f.content_type)}</span></li>`,\n )\n .join(\"\");\n const inner = `\n <p class=\"hint\">编辑站点文件(文本文件可在线编辑;保存即对所有访问者生效)。</p>\n <ul class=\"files\">${list || '<li class=\"muted\">(暂无文件)</li>'}</ul>\n <div id=\"editor\" hidden>\n <div class=\"row\"><strong id=\"fpath\"></strong> <a id=\"open\" target=\"_blank\" rel=\"noreferrer\">预览 ↗</a></div>\n <textarea class=\"mh-raw\" id=\"fbody\"></textarea>\n <div class=\"row\"><button id=\"save\">保存</button></div>\n </div>`;\n const script = `\n const slug=${JSON.stringify(share.slug)};\n const ed=document.getElementById('editor'), fpath=document.getElementById('fpath'), fbody=document.getElementById('fbody'), open=document.getElementById('open');\n let cur=null;\n document.querySelectorAll('button.file').forEach(b=>b.addEventListener('click', async ()=>{\n cur=b.dataset.path; fpath.textContent=cur; open.href='/share/'+slug+'/'+cur;\n if(b.dataset.text==='1'){ const r=await fetch('/share/'+slug+'/_raw?path='+encodeURIComponent(cur)); const j=await r.json(); fbody.value=j.content||''; fbody.disabled=false; }\n else { fbody.value='(二进制文件,不可在线编辑)'; fbody.disabled=true; }\n ed.hidden=false;\n }));\n document.getElementById('save').addEventListener('click', async ()=>{\n if(!cur||fbody.disabled) return;\n const res=await fetch('/share/'+slug+'/_file',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({path:cur,content:fbody.value})});\n if(res.ok){ const s=document.getElementById('save'); s.textContent='已保存 ✓'; setTimeout(()=>s.textContent='保存',900); }\n else { const j=await res.json().catch(()=>({})); alert(j.error||'保存失败'); }\n });`;\n return pageShell(`${resolveSite(ctx.db, share.target_id).name} · 文件`, inner, { script });\n}\n\n// ---- scoped blob --------------------------------------------------------------\n\nfunction referencedHashes(ctx: RouteCtx, share: ShareRow): Set<string> {\n const out = new Set<string>();\n const scan = (text: string | null | undefined) => {\n if (!text) return;\n const re = /\\/blob\\/([0-9a-f]{16,64})/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(text))) out.add(m[1]!.toLowerCase());\n };\n if (share.kind === \"doc\") scan(getDocument(ctx.db, share.target_id)?.body);\n else if (share.kind === \"database\")\n for (const r of listRecords(ctx.db, share.target_id)) scan(JSON.stringify(r.cells));\n return out;\n}\n\nasync function serveScopedBlob(ctx: RouteCtx, share: ShareRow, tail: string): Promise<Response> {\n const dot = tail.indexOf(\".\");\n const hash = (dot >= 0 ? tail.slice(0, dot) : tail).toLowerCase();\n if (!HASH_RE.test(hash)) return notFound();\n if (!referencedHashes(ctx, share).has(hash)) return notFound();\n const bytes = await resolveBlob(ctx.db, hash);\n if (!bytes) return notFound();\n const ct = dot >= 0 ? inferContentType(tail) : blobContentType(ctx.db, hash) ?? \"application/octet-stream\";\n const out = new Uint8Array(bytes.byteLength);\n out.set(bytes);\n return new Response(out.buffer, {\n headers: { \"content-type\": ct, \"cache-control\": \"private, max-age=3600\" },\n });\n}\n\n// ---- password session ---------------------------------------------------------\n\nfunction shareSecret(ctx: RouteCtx): string {\n const row = ctx.db.query(\"SELECT value FROM meta WHERE key='share_cookie_secret'\").get() as\n | { value: string }\n | null;\n if (row) return row.value;\n const secret = randomSuffix(32);\n ctx.db\n .query(\"INSERT INTO meta (key, value) VALUES ('share_cookie_secret', ?) ON CONFLICT(key) DO NOTHING\")\n .run(secret);\n return (\n (ctx.db.query(\"SELECT value FROM meta WHERE key='share_cookie_secret'\").get() as { value: string })\n .value\n );\n}\n\nfunction toHex(b: Uint8Array): string {\n let s = \"\";\n for (const x of b) s += x.toString(16).padStart(2, \"0\");\n return s;\n}\n\nasync function hmac(secret: string, msg: string): Promise<string> {\n const enc = new TextEncoder();\n const key = await crypto.subtle.importKey(\n \"raw\",\n enc.encode(secret) as unknown as ArrayBuffer,\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\"],\n );\n const sig = await crypto.subtle.sign(\"HMAC\", key, enc.encode(msg) as unknown as ArrayBuffer);\n return toHex(new Uint8Array(sig));\n}\n\nconst SHARE_SESSION_TTL_MS = 12 * 60 * 60 * 1000;\n\nfunction shareCookieName(slug: string): string {\n return \"mh_share_\" + slug;\n}\n\nfunction readCookie(req: Request, name: string): string | null {\n const header = req.headers.get(\"cookie\");\n if (!header) return null;\n for (const part of header.split(\";\")) {\n const [k, ...v] = part.trim().split(\"=\");\n if (k === name) return decodeURIComponent(v.join(\"=\"));\n }\n return null;\n}\n\nasync function hasShareSession(ctx: RouteCtx, req: Request, share: ShareRow): Promise<boolean> {\n const raw = readCookie(req, shareCookieName(share.slug));\n if (!raw) return false;\n const dot = raw.lastIndexOf(\".\");\n if (dot < 0) return false;\n const exp = Number(raw.slice(0, dot));\n const mac = raw.slice(dot + 1);\n if (!Number.isFinite(exp) || Date.now() > exp) return false;\n const expect = await hmac(shareSecret(ctx), `${share.slug}:${exp}`);\n return timingSafeStr(expect, mac);\n}\n\nfunction timingSafeStr(a: string, b: string): boolean {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a.charCodeAt(i) ^ b.charCodeAt(i);\n return diff === 0;\n}\n\nasync function handleUnlock(\n ctx: RouteCtx,\n req: Request,\n share: ShareRow,\n url: URL,\n): Promise<Response> {\n let pw = \"\";\n const ct = req.headers.get(\"content-type\") ?? \"\";\n if (ct.includes(\"application/json\")) pw = String(((await req.json().catch(() => ({}))) as { password?: string }).password ?? \"\");\n else {\n const form = await req.formData().catch(() => null);\n pw = form ? String(form.get(\"password\") ?? \"\") : \"\";\n }\n if (!(await verifySharePassword(share, pw))) {\n return new Response(passwordPage(share, true), { headers: HTML, status: 401 });\n }\n const exp = Date.now() + Math.min(SHARE_SESSION_TTL_MS, ttlRemaining(share));\n const mac = await hmac(shareSecret(ctx), `${share.slug}:${exp}`);\n const secure = url.protocol === \"https:\";\n const cookie =\n `${shareCookieName(share.slug)}=${exp}.${mac}; Path=/share/${share.slug}; SameSite=Strict; Max-Age=${Math.floor(\n (exp - Date.now()) / 1000,\n )}` + (secure ? \"; Secure\" : \"\");\n return new Response(null, {\n status: 303,\n headers: { location: `/share/${share.slug}`, \"set-cookie\": cookie },\n });\n}\n\nfunction ttlRemaining(share: ShareRow): number {\n return share.expires_at == null ? SHARE_SESSION_TTL_MS : Math.max(0, share.expires_at - Date.now());\n}\n\n// ---- page shell ---------------------------------------------------------------\n\nfunction passwordPage(share: ShareRow, error: boolean): string {\n const inner = `\n <form method=\"post\" action=\"/share/${share.slug}/unlock\" class=\"pw\">\n <h1>🔒 此分享受口令保护</h1>\n ${error ? '<p class=\"err\">口令错误,请重试。</p>' : \"\"}\n <input type=\"password\" name=\"password\" placeholder=\"口令\" autofocus autocomplete=\"current-password\">\n <button type=\"submit\">解锁</button>\n </form>`;\n return pageShell(\"受保护的分享\", inner, { bare: true });\n}\n\nfunction pageShell(\n title: string,\n inner: string,\n opts: { editable?: boolean; editLabel?: string; script?: string; hint?: string; bare?: boolean } = {},\n): string {\n const editBtn = opts.editable ? `<button id=\"mh-edit\" class=\"edit-btn\">${opts.editLabel ?? \"编辑\"}</button>` : \"\";\n const hint = opts.hint ? `<p class=\"hint\">${escapeHtml(opts.hint)}</p>` : \"\";\n const script = opts.script ? `<script>(function(){${opts.script}})();</script>` : \"\";\n return `<!doctype html><html lang=\"zh\"><head>\n<meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n<meta name=\"robots\" content=\"noindex\">\n<title>${escapeHtml(title)}</title>\n<style>\n :root{--bg:#ffffff;--fg:#1f2328;--muted:#6e7781;--line:#d0d7de;--accent:#0969da;--card:#f6f8fa}\n @media (prefers-color-scheme: dark){:root{--bg:#0d1117;--fg:#e6edf3;--muted:#8b949e;--line:#30363d;--accent:#4493f8;--card:#161b22}}\n *{box-sizing:border-box}\n body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"PingFang SC\",\"Microsoft YaHei\",sans-serif}\n .wrap{max-width:820px;margin:0 auto;padding:32px 20px 80px}\n header.mh{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:14px}\n header.mh h1.title{font-size:22px;margin:0}\n .edit-btn{background:var(--accent);color:#fff;border:0;border-radius:7px;padding:7px 14px;cursor:pointer;font-size:14px}\n .hint{color:var(--muted);font-size:13px;margin:0 0 14px}\n article.doc h1,article.doc h2,article.doc h3{line-height:1.3;margin:1.4em 0 .5em}\n article.doc h1{font-size:1.7em} article.doc h2{font-size:1.4em} article.doc h3{font-size:1.2em}\n article.doc p{margin:.7em 0} article.doc img{max-width:100%;border-radius:8px}\n article.doc pre{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px;overflow:auto}\n article.doc code{background:var(--card);padding:.15em .35em;border-radius:4px;font-size:.9em}\n article.doc pre code{background:none;padding:0}\n article.doc blockquote{margin:.8em 0;padding:.2em 1em;border-left:3px solid var(--line);color:var(--muted)}\n article.doc table,table.db{border-collapse:collapse;width:100%;font-size:14px}\n article.doc td,article.doc th,table.db td,table.db th{border:1px solid var(--line);padding:7px 10px;text-align:left}\n table.db th{background:var(--card)}\n .table-wrap{overflow:auto}\n td[contenteditable]{outline:none} td.saving{opacity:.5} td.saved{background:rgba(46,160,67,.18)}\n .tag{display:inline-block;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:12px}\n .muted{color:var(--muted)} .mh-img{text-align:center}\n .mh-media{text-align:center} .mh-media video,.mh-media audio{max-width:100%}\n .mh-file a{display:inline-block;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 14px;color:var(--accent);text-decoration:none}\n iframe.mh-embed{width:100%;border:1px solid var(--line);border-radius:8px;min-height:240px}\n textarea.mh-raw{width:100%;min-height:60vh;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg)}\n ul.files{list-style:none;padding:0} ul.files li{padding:4px 0} button.file{background:none;border:0;color:var(--accent);cursor:pointer;font-size:15px;padding:0}\n .row{display:flex;gap:10px;align-items:center;margin:10px 0}\n form.pw{max-width:320px;margin:12vh auto 0;display:flex;flex-direction:column;gap:12px}\n form.pw input{padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--fg)}\n form.pw button{padding:9px;border:0;border-radius:7px;background:var(--accent);color:#fff;cursor:pointer}\n form.pw .err{color:#f85149;font-size:13px;margin:0}\n footer.mh{margin-top:48px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:12px;text-align:center}\n</style></head><body>\n${opts.bare ? `<div class=\"wrap\">${inner}</div>` : `<div class=\"wrap\">\n<header class=\"mh\"><h1 class=\"title\">${escapeHtml(title)}</h1>${editBtn}</header>\n${hint}\n${inner}\n<footer class=\"mh\">通过 metahub 分享</footer>\n</div>`}\n${script}\n</body></html>`;\n}\n",
122
125
  "export * from \"./errors.ts\";\nexport * from \"./paths.ts\";\nexport * from \"./driver.ts\";\nexport * from \"./db.ts\";\nexport * from \"./ids.ts\";\nexport * from \"./resolve.ts\";\nexport * from \"./hlc.ts\";\nexport * from \"./crdt.ts\";\nexport * from \"./blocks.ts\";\nexport * from \"./fracdex.ts\";\nexport * from \"./node.ts\";\nexport * from \"./databases.ts\";\nexport * from \"./context.ts\";\nexport * from \"./properties.ts\";\nexport * from \"./indexing.ts\";\nexport * from \"./records.ts\";\nexport * from \"./documents.ts\";\nexport * from \"./search.ts\";\nexport * from \"./cache.ts\";\nexport * from \"./sites.ts\";\nexport * from \"./sync/protocol.ts\";\nexport * from \"./sync/client.ts\";\nexport * from \"./sync/server.ts\";\n",
123
126
  "import { Database } from \"bun:sqlite\";\nimport { mkdirSync } from \"node:fs\";\nimport { dbPath, cacheDir, metahubHome } from \"./paths.ts\";\nimport { initSchema } from \"./schema-init.ts\";\n\n// Schema bootstrap lives in schema-init.ts (runtime-agnostic, driver-typed);\n// re-exported here so existing imports keep working.\nexport {\n runSchema,\n ftsAvailable,\n migrateRecords,\n migratePeers,\n migrateDocBlocks,\n migrateDocuments,\n migrateOplog,\n initSchema,\n} from \"./schema-init.ts\";\n\nexport function ensureDirs(): void {\n mkdirSync(metahubHome(), { recursive: true });\n mkdirSync(cacheDir(), { recursive: true });\n}\n\n/** Open (and migrate) the on-disk metahub database for the resolved home. */\nexport function openMetahub(): Database {\n ensureDirs();\n const db = new Database(dbPath(), { create: true });\n db.exec(\"PRAGMA journal_mode = WAL;\");\n initSchema(db);\n return db;\n}\n",
124
- "export const CORE_SCHEMA = `\nCREATE TABLE IF NOT EXISTS meta (\n key TEXT PRIMARY KEY,\n value TEXT\n);\n\n-- CRDT oplog: one row per field assignment. Source of truth for sync.\n-- txn groups the changes of one logical mutation for history rendering\n-- (nullable: legacy rows and changes from pre-txn peers have none).\n--\n-- seq is an explicit AUTOINCREMENT id used as the replication cursor. It must\n-- be a declared INTEGER PRIMARY KEY (not the implicit rowid): VACUUM renumbers\n-- the rowids of tables that lack one, which would shift them below a peer's\n-- stored push/pull cursor and silently strand every write in the gap.\n-- AUTOINCREMENT additionally guarantees ids are never reused. The\n-- (dataset,row_id,col,hlc) tuple stays UNIQUE so applyChange's INSERT OR IGNORE\n-- dedup is unchanged. Legacy databases are rebuilt into this shape by\n-- migrateCrdtChangesSeq (schema-init.ts).\nCREATE TABLE IF NOT EXISTS crdt_changes (\n seq INTEGER PRIMARY KEY AUTOINCREMENT,\n hlc TEXT NOT NULL,\n node_id TEXT NOT NULL,\n dataset TEXT NOT NULL,\n row_id TEXT NOT NULL,\n col TEXT NOT NULL,\n value TEXT,\n txn TEXT,\n UNIQUE (dataset, row_id, col, hlc)\n);\nCREATE INDEX IF NOT EXISTS idx_changes_hlc ON crdt_changes(hlc);\n-- Serves history's \"every block ever attached to this doc\" lookup. Partial so\n-- it never indexes the large values other datasets carry (e.g. site file bodies).\nCREATE INDEX IF NOT EXISTS idx_changes_docref ON crdt_changes(value)\n WHERE dataset = 'doc_blocks' AND col = 'doc_id';\n\n-- Per-peer replication cursors (crdt_changes.seq: AUTOINCREMENT, monotonic in\n-- insertion order and stable across VACUUM, so no change is ever skipped\n-- regardless of HLC/clock skew). Outbound side of\n-- a pairing: \"token\" is the credential the *remote* issued to us (sent as a\n-- Bearer header when we sync to them). See migratePeers in db.ts for the columns\n-- added to legacy databases.\n--\n-- kind selects the transport: 'http' (POST /sync to a peer server, the classic\n-- path) or 's3' (an S3-compatible bucket used as dumb store-and-forward — see\n-- sync/storage.ts). For 's3' peers url is a synthetic key (s3://<bucket>/<prefix>)\n-- and config holds the bucket settings + credentials + master key as JSON.\n-- Like the rest of peers, config is local-only and never enters the CRDT oplog.\nCREATE TABLE IF NOT EXISTS peers (\n url TEXT PRIMARY KEY,\n pull_cursor INTEGER NOT NULL DEFAULT 0,\n push_cursor INTEGER NOT NULL DEFAULT 0,\n token TEXT,\n label TEXT,\n node_id TEXT,\n enabled INTEGER NOT NULL DEFAULT 1,\n last_sync_at INTEGER,\n last_success_at INTEGER,\n last_status TEXT,\n last_error TEXT,\n kind TEXT NOT NULL DEFAULT 'http',\n config TEXT\n);\n\n-- Per-(storage-peer, remote-node) pull progress: the key of the last oplog\n-- segment we consumed from that node's bucket prefix. HTTP peers use the single\n-- pull_cursor above; storage peers need one cursor per remote node because each\n-- node publishes its own segment stream under its own prefix. last_key is a\n-- bucket object key (lexicographically ordered = chronological), so LIST\n-- start-after resumes exactly where we left off.\nCREATE TABLE IF NOT EXISTS storage_cursors (\n peer_url TEXT NOT NULL,\n node_id TEXT NOT NULL,\n last_key TEXT,\n PRIMARY KEY (peer_url, node_id)\n);\n\n-- Inbound side of a pairing: credentials *we* issued to remote devices. A peer\n-- presents one of these on /sync; acceptsSyncToken() checks it alongside the\n-- managed master token. Revoke by deleting the row.\nCREATE TABLE IF NOT EXISTS peer_grants (\n token TEXT PRIMARY KEY,\n peer_url TEXT,\n node_id TEXT,\n created_at INTEGER\n);\n\n-- One-time pairing codes minted by \"mh config peer code\" / POST /api/pair/new.\n-- Short-lived and single-use: redeemed during the pairing handshake, then the\n-- two devices exchange durable peer_grants. used/exp gate redemption.\nCREATE TABLE IF NOT EXISTS pairing_codes (\n code TEXT PRIMARY KEY,\n exp INTEGER NOT NULL,\n used INTEGER NOT NULL DEFAULT 0,\n created_at INTEGER\n);\n\n-- Public capability links to a doc / database / site. Like peers and blob_cache\n-- this is node-local and deliberately ABSENT from crdt.ts's DOMAIN map, so it\n-- never enters the oplog and never syncs — a share is a property of the access\n-- point that minted it, not of the workspace. slug is the unguessable capability\n-- in the URL (/share/<slug>). transport selects how it's served: 'server' (the\n-- token-exempt /share endpoint on this node) or 's3' (a presigned static export\n-- under <prefix>/shares/<slug> in a bucket). permission 'edit' is server-only:\n-- a presigned static object can't accept writes. guest_node_id attributes every\n-- edit made through an edit-share to one synthetic node (see crdt.ts withNodeId).\n-- pw_hash/pw_salt: server path stores a PBKDF2 verifier; the s3 path is E2EE so\n-- only pw_salt travels (in the link) and decryption happens in the viewer.\nCREATE TABLE IF NOT EXISTS shares (\n slug TEXT PRIMARY KEY,\n kind TEXT NOT NULL, -- 'doc' | 'database' | 'site'\n target_id TEXT NOT NULL, -- documents.id / databases.id / sites.id\n permission TEXT NOT NULL, -- 'view' | 'edit'\n transport TEXT NOT NULL, -- 'server' | 's3'\n pw_salt TEXT, -- base64; null = no password\n pw_hash TEXT, -- base64 PBKDF2 verifier (server path only)\n expires_at INTEGER, -- epoch ms; null = never\n guest_node_id TEXT, -- synthetic node id for edit shares (null for view)\n served_base TEXT, -- reachable base URL chosen at creation (link / source label)\n s3_peer_url TEXT, -- vestigial (s3 shares live in the bucket, not here)\n s3_object_prefix TEXT, -- vestigial\n s3_presign_exp INTEGER, -- vestigial\n s3_key_b64 TEXT, -- vestigial\n created_at INTEGER NOT NULL\n);\nCREATE INDEX IF NOT EXISTS idx_shares_target ON shares(target_id);\n\nCREATE TABLE IF NOT EXISTS databases (\n id TEXT PRIMARY KEY,\n name TEXT,\n icon TEXT,\n created_hlc TEXT,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS properties (\n id TEXT PRIMARY KEY,\n database_id TEXT,\n name TEXT,\n type TEXT,\n config TEXT,\n position REAL,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_properties_db ON properties(database_id);\n\n-- One row per record. Field cells live in the data JSON object, keyed by\n-- property id (rename-safe). Each (record,property) is still an independent\n-- CRDT register in the oplog; materialize() folds the winner into data via\n-- json_set/json_remove. Hot fields get expression indexes on data->>'propid'\n-- (see indexing.ts) so filter/sort/limit push down to SQL.\nCREATE TABLE IF NOT EXISTS records (\n id TEXT PRIMARY KEY,\n database_id TEXT,\n created_hlc TEXT,\n order_key TEXT,\n data TEXT NOT NULL DEFAULT '{}',\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_records_db_hlc ON records(database_id, created_hlc);\n\nCREATE TABLE IF NOT EXISTS documents (\n id TEXT PRIMARY KEY,\n title TEXT,\n body TEXT, -- materialized cache: serialized from doc_blocks\n database_id TEXT,\n parent_id TEXT,\n created_hlc TEXT,\n order_key TEXT, -- fractional index among siblings (same parent_id); ties broken by created_hlc,id\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n\n-- Document body as an ordered list of blocks; each (block,field) is an\n-- independent CRDT register so concurrent edits to different blocks merge.\n-- order_key is a fractional index (ties broken by id) giving display order.\nCREATE TABLE IF NOT EXISTS doc_blocks (\n id TEXT PRIMARY KEY,\n doc_id TEXT,\n text TEXT,\n order_key TEXT,\n blank_after INTEGER NOT NULL DEFAULT 0, -- extra blank lines kept after this block (user spacing)\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_doc_blocks_doc ON doc_blocks(doc_id);\n\n-- A named static site (Supabase-Storage-style bucket). Served at /sites/<name>/.\nCREATE TABLE IF NOT EXISTS sites (\n id TEXT PRIMARY KEY,\n name TEXT, -- URL slug; resolved by getSiteByName\n title TEXT,\n created_hlc TEXT,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n\n-- One row per file in a site. content holds inline utf8/base64 text, or a blob\n-- hash (see cache.ts) when encoding = 'blob'. (site_id, path) maps to a stable\n-- id so re-uploads merge as a CRDT register instead of duplicating.\nCREATE TABLE IF NOT EXISTS site_files (\n id TEXT PRIMARY KEY,\n site_id TEXT,\n path TEXT,\n content_type TEXT,\n encoding TEXT, -- 'utf8' | 'base64' | 'blob'\n content TEXT,\n created_hlc TEXT,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_site_files_site ON site_files(site_id);\n\n-- Node-local blob cache ledger (NOT synced, like peers/storage_cursors): one row\n-- per blob byte-file held in cache.ts's content-addressed store (~/.metahub/cache).\n-- Gives the bare hash-named files the metadata clearing/stats need. hash is the\n-- canonical content key (sha256 truncated to 32 hex; legacy 64-hex coexist).\n-- pending = bytes produced HERE not yet confirmed flushed to a durable anchor\n-- (bucket) — the only blobs a device must protect; never auto-evicted/cleared.\n-- pending=0 means a flushed production OR an acquired cache, both safely\n-- clearable (re-fetchable). This local fact replaces the old SYNCED blob_presence\n-- table — clearing is now purely local/offline. See blobs.ts / 22-blob-sync.\nCREATE TABLE IF NOT EXISTS blob_cache (\n hash TEXT PRIMARY KEY,\n size INTEGER NOT NULL,\n content_type TEXT,\n last_access INTEGER,\n pinned INTEGER NOT NULL DEFAULT 0, -- node-local: never auto-evicted / cleared\n pending INTEGER NOT NULL DEFAULT 1, -- produced here, not yet flushed to anchor\n anchored INTEGER NOT NULL DEFAULT 0 -- node-local: last verify confirmed a designated anchor holds it (per redundancy). Drives isClearable; reset on policy change\n);\n\n-- Synced workspace policy (single row \"default\"): which nodes are designated\n-- full-blob libraries — the durable anchor in no-bucket topologies (they pull\n-- everything and never clear). full_nodes is a JSON array of node_id; redundancy\n-- is retained but unused since clearing moved to the local pending model.\nCREATE TABLE IF NOT EXISTS blob_policy (\n id TEXT PRIMARY KEY, -- always \"default\"\n full_nodes TEXT, -- JSON array of node_id\n redundancy TEXT, -- 'all' | 'any'\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n`;\n\n// Best-effort: FTS5 may not be compiled in. Search falls back to LIKE if this fails.\nexport const FTS_SCHEMA = `\nCREATE VIRTUAL TABLE IF NOT EXISTS search_fts USING fts5(\n kind UNINDEXED,\n id UNINDEXED,\n database_id UNINDEXED,\n title,\n body\n);\n`;\n",
125
- "// Runtime-agnostic schema bootstrap: everything needed to bring a metahub\n// database to the current schema, typed against the portable driver surface so\n// it runs both on Bun (bun:sqlite) and in a browser worker (sqlite-wasm).\n// Opening the on-disk database lives in db.ts, which composes these.\n\nimport type { DbDriver } from \"./driver.ts\";\nimport { CORE_SCHEMA, FTS_SCHEMA } from \"./schema.ts\";\nimport { backfillRecordOrderKeys } from \"./records.ts\";\nimport { backfillDocumentOrderKeys } from \"./documents.ts\";\nimport { readPolicy, setFullNodes } from \"./blobs-core.ts\";\nimport { storageUrl } from \"./sync/storage-url.ts\";\n\nexport function runSchema(db: DbDriver): void {\n db.exec(CORE_SCHEMA);\n try {\n db.exec(FTS_SCHEMA);\n } catch {\n // FTS5 unavailable; search will fall back to LIKE.\n }\n}\n\nexport function ftsAvailable(db: DbDriver): boolean {\n const row = db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE name = 'search_fts'\")\n .get() as { ok: number } | null;\n return row != null;\n}\n\nfunction hasColumn(db: DbDriver, table: string, column: string): boolean {\n const cols = db.query(`PRAGMA table_info(${table})`).all() as { name: string }[];\n return cols.some((c) => c.name === column);\n}\n\nfunction tableExists(db: DbDriver, table: string): boolean {\n return (\n db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE type = 'table' AND name = ?\")\n .get(table) != null\n );\n}\n\n/**\n * Migrate legacy EAV records (record_values: one row per cell) to the JSON\n * layout (records.data: one row per record). Idempotent — keyed off schema\n * shape, no version flag. A no-op for fresh databases.\n */\nexport function migrateRecords(db: DbDriver): void {\n if (!hasColumn(db, \"records\", \"data\"))\n db.exec(\"ALTER TABLE records ADD COLUMN data TEXT NOT NULL DEFAULT '{}'\");\n if (!hasColumn(db, \"records\", \"order_key\"))\n db.exec(\"ALTER TABLE records ADD COLUMN order_key TEXT\");\n\n if (!tableExists(db, \"record_values\")) return;\n\n const tx = db.transaction(() => {\n // Fold each record's cells into a JSON object keyed by property id.\n db.exec(`\n UPDATE records SET data = coalesce((\n SELECT json_group_object(rv.property_id, json(rv.value))\n FROM record_values rv WHERE rv.record_id = records.id\n ), '{}')\n WHERE id IN (SELECT DISTINCT record_id FROM record_values);\n `);\n db.exec(\"DROP TABLE record_values\");\n backfillRecordOrderKeys(db);\n });\n tx();\n\n backfillRecordOrderKeys(db);\n}\n\n/**\n * Add the peer-pairing columns to a legacy `peers` table (token/label/node_id/\n * enabled/last_sync_at/last_success_at/last_status/last_error). Idempotent —\n * guarded per column, never drops the table so existing replication cursors survive.\n */\n/** Add `served_base` to a `shares` table created before the column existed\n * (idempotent). The vestigial s3_* columns are left as-is. */\nexport function migrateShares(db: DbDriver): void {\n if (!hasColumn(db, \"shares\", \"served_base\"))\n db.exec(\"ALTER TABLE shares ADD COLUMN served_base TEXT\");\n}\n\nexport function migratePeers(db: DbDriver): void {\n const add: [string, string][] = [\n [\"token\", \"TEXT\"],\n [\"label\", \"TEXT\"],\n [\"node_id\", \"TEXT\"],\n [\"enabled\", \"INTEGER NOT NULL DEFAULT 1\"],\n [\"last_sync_at\", \"INTEGER\"],\n [\"last_success_at\", \"INTEGER\"],\n [\"last_status\", \"TEXT\"],\n [\"last_error\", \"TEXT\"],\n // Storage-sync (sync/storage.ts): kind selects the transport, config holds\n // an 's3' peer's bucket settings. Legacy rows default to 'http', unchanged.\n [\"kind\", \"TEXT NOT NULL DEFAULT 'http'\"],\n [\"config\", \"TEXT\"],\n ];\n for (const [col, decl] of add) {\n if (!hasColumn(db, \"peers\", col)) db.exec(`ALTER TABLE peers ADD COLUMN ${col} ${decl}`);\n }\n db.exec(\n \"UPDATE peers SET last_success_at = last_sync_at \" +\n \"WHERE last_success_at IS NULL AND last_status = 'ok' AND last_sync_at IS NOT NULL\",\n );\n}\n\n/**\n * Add the `blank_after` column to a legacy `doc_blocks` table. Idempotent —\n * guarded by hasColumn; existing blocks default to 0 (canonical single-blank-line\n * separators), so the migration never changes an existing document's body.\n */\nexport function migrateDocBlocks(db: DbDriver): void {\n if (!hasColumn(db, \"doc_blocks\", \"blank_after\"))\n db.exec(\"ALTER TABLE doc_blocks ADD COLUMN blank_after INTEGER NOT NULL DEFAULT 0\");\n}\n\n/**\n * Bring a legacy `blob_cache` to the current shape and retire the old synced\n * `blob_presence` table. Idempotent (guarded by hasColumn / IF EXISTS).\n * - `pinned`: node-local, never auto-evicted/cleared.\n * - `pending`: bytes produced here, not yet flushed to a durable anchor. Existing\n * rows can't be classified produced-vs-acquired, so default to 1 (protected);\n * the next online flush sets already-in-bucket blobs back to 0, so it self-heals\n * and is loss-free. See blobs.ts.\n * - `blob_presence` (was synced) is dropped: clearing is now decided locally from\n * `pending`. Leftover presence oplog changes are ignored (forward-compat).\n */\nexport function migrateBlobCache(db: DbDriver): void {\n if (!hasColumn(db, \"blob_cache\", \"pinned\"))\n db.exec(\"ALTER TABLE blob_cache ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0\");\n if (!hasColumn(db, \"blob_cache\", \"pending\"))\n db.exec(\"ALTER TABLE blob_cache ADD COLUMN pending INTEGER NOT NULL DEFAULT 1\");\n if (!hasColumn(db, \"blob_cache\", \"anchored\"))\n db.exec(\"ALTER TABLE blob_cache ADD COLUMN anchored INTEGER NOT NULL DEFAULT 0\");\n db.exec(\"DROP TABLE IF EXISTS blob_presence\");\n}\n\n/**\n * Add the `order_key` column to a legacy `documents` table and backfill it.\n * Idempotent — guarded by hasColumn; backfill only touches rows with a NULL key,\n * assigning per-parent fractional indices in current created_hlc order, so the\n * displayed document order is unchanged until the user first drags something.\n */\nexport function migrateDocuments(db: DbDriver): void {\n if (!hasColumn(db, \"documents\", \"order_key\"))\n db.exec(\"ALTER TABLE documents ADD COLUMN order_key TEXT\");\n backfillDocumentOrderKeys(db);\n}\n\n/**\n * Add the `txn` change-group column to a legacy `crdt_changes` table.\n * Idempotent — guarded by hasColumn; existing rows stay NULL (history falls\n * back to time-gap clustering for them).\n */\nexport function migrateOplog(db: DbDriver): void {\n if (!hasColumn(db, \"crdt_changes\", \"txn\"))\n db.exec(\"ALTER TABLE crdt_changes ADD COLUMN txn TEXT\");\n}\n\n/**\n * Rebuild a legacy `crdt_changes` (composite PRIMARY KEY, implicit rowid) into\n * the current shape with an explicit `seq INTEGER PRIMARY KEY AUTOINCREMENT`.\n *\n * Why: replication push/pull cursors are crdt_changes rowids. The legacy table\n * has no declared INTEGER PRIMARY KEY, so a `VACUUM` (run by `mh` compaction)\n * renumbers its rowids 1..N; a peer's stored cursor then sits above the new\n * MAX(rowid) and `changesAfterSeq`'s \"never regress\" floor pins it there,\n * silently never pushing/pulling the writes below it. The declared `seq` is\n * stable across VACUUM and never reused, closing the hole.\n *\n * Idempotent — guarded by the `seq` column. Old rowids are copied verbatim into\n * seq so any *uncorrupted* cursor stays meaningful; then push/pull cursors are\n * reset to 0 because we cannot tell which were already stranded by a past\n * VACUUM, and a from-scratch re-sync is safe (INSERT OR IGNORE / ingest dedup)\n * — a one-time catch-up on first sync after upgrade. storage_cursors are\n * object-key based, never rowids, so they are left intact.\n */\nexport function migrateCrdtChangesSeq(db: DbDriver): void {\n if (hasColumn(db, \"crdt_changes\", \"seq\")) return;\n const tx = db.transaction(() => {\n db.exec(`\n DROP TABLE IF EXISTS crdt_changes_new;\n CREATE TABLE crdt_changes_new (\n seq INTEGER PRIMARY KEY AUTOINCREMENT,\n hlc TEXT NOT NULL,\n node_id TEXT NOT NULL,\n dataset TEXT NOT NULL,\n row_id TEXT NOT NULL,\n col TEXT NOT NULL,\n value TEXT,\n txn TEXT,\n UNIQUE (dataset, row_id, col, hlc)\n );\n INSERT INTO crdt_changes_new (seq, hlc, node_id, dataset, row_id, col, value, txn)\n SELECT rowid, hlc, node_id, dataset, row_id, col, value, txn\n FROM crdt_changes ORDER BY rowid;\n DROP TABLE crdt_changes;\n ALTER TABLE crdt_changes_new RENAME TO crdt_changes;\n CREATE INDEX IF NOT EXISTS idx_changes_hlc ON crdt_changes(hlc);\n CREATE INDEX IF NOT EXISTS idx_changes_docref ON crdt_changes(value)\n WHERE dataset = 'doc_blocks' AND col = 'doc_id';\n `);\n if (tableExists(db, \"peers\")) db.exec(\"UPDATE peers SET push_cursor = 0, pull_cursor = 0\");\n });\n tx();\n}\n\n/**\n * Migrate legacy storage-peer keys `s3://<bucket>/<prefix>` to the\n * endpoint-qualified `s3://<host>/<bucket>/<prefix>` so two endpoints sharing a\n * bucket name (R2/MinIO/COS each have their own namespace) no longer collide and\n * silently overwrite each other's peer row (and stale cursor). Rewrites all three\n * places the key is referenced — the peers row, its storage_cursors, and any\n * blob_policy.fullNodes anchor pointing at the bucket.\n *\n * Key derivation goes through the shared `storageUrl` (storage-url.ts) so every\n * producer — CLI/server, the WebUI worker, and this migration — agrees byte for\n * byte; otherwise a producer still minting the legacy shape turns the rename into\n * a permanent whack-a-mole.\n *\n * Idempotent — a row already at its endpoint-qualified key produces no rename.\n * Keyed off config.endpoint (authoritative), so re-running is a no-op.\n *\n * Cross-version note: rewriting blob_policy.fullNodes is a CRDT write, so it\n * replicates. A device still on the old code keeps a legacy-format storage peer\n * and matches anchors by exact string, so it won't recognize the new-format\n * anchor until it upgrades — during that window a bucket-anchored device pauses\n * cache eviction (loss-free: bytes stay, nothing is dropped) and self-heals once\n * the fleet is upgraded. Only affects setups that designate a bucket as a\n * full-blob anchor. (Accepted over a tolerant-matcher rewrite, which is wider and\n * still can't fix already-shipped old clients.)\n */\nexport function migrateStoragePeerUrls(db: DbDriver): void {\n if (!tableExists(db, \"peers\")) return;\n const rows = db\n .query(\"SELECT url, config FROM peers WHERE kind = 's3' AND config IS NOT NULL\")\n .all() as { url: string; config: string }[];\n if (rows.length === 0) return;\n\n const renames: { oldUrl: string; newUrl: string }[] = [];\n const claimed = new Set<string>(); // newUrls taken this batch — avoid two→one\n for (const r of rows) {\n let cfg: { endpoint?: string; bucket?: string; prefix?: string };\n try {\n cfg = JSON.parse(r.config);\n } catch {\n continue; // malformed config — leave the row untouched\n }\n if (!cfg.endpoint || !cfg.bucket || !cfg.prefix) continue;\n const newUrl = storageUrl(cfg.endpoint, cfg.bucket, cfg.prefix);\n if (newUrl === r.url) {\n claimed.add(newUrl); // already canonical — reserve so nothing renames onto it\n continue;\n }\n // Skip if the target key is already occupied — by an existing peers row, an\n // existing storage_cursors row (composite PK would throw), or another row in\n // this same batch. A throwing migration would make the DB fail to open; the\n // legacy row is left as-is instead (collisions are vanishingly rare).\n if (\n claimed.has(newUrl) ||\n db.query(\"SELECT 1 FROM peers WHERE url = ?\").get(newUrl) ||\n (tableExists(db, \"storage_cursors\") &&\n db.query(\"SELECT 1 FROM storage_cursors WHERE peer_url = ?\").get(newUrl))\n ) {\n continue;\n }\n claimed.add(newUrl);\n renames.push({ oldUrl: r.url, newUrl });\n }\n if (renames.length === 0) return;\n\n const map = new Map(renames.map(({ oldUrl, newUrl }) => [oldUrl, newUrl]));\n const tx = db.transaction(() => {\n for (const { oldUrl, newUrl } of renames) {\n if (tableExists(db, \"storage_cursors\"))\n db.query(\"UPDATE storage_cursors SET peer_url = ? WHERE peer_url = ?\").run(newUrl, oldUrl);\n db.query(\"UPDATE peers SET url = ? WHERE url = ?\").run(newUrl, oldUrl);\n }\n // Rewrite synced anchor references (CRDT-backed, so this replicates). See the\n // cross-version note above.\n if (tableExists(db, \"blob_policy\")) {\n const fullNodes = readPolicy(db).fullNodes;\n if (fullNodes.some((n) => map.has(n)))\n setFullNodes(db, fullNodes.map((n) => map.get(n) ?? n));\n }\n });\n tx();\n}\n\n/** Bring a freshly opened (or legacy) database to the current schema. */\nexport function initSchema(db: DbDriver): void {\n runSchema(db);\n migrateOplog(db);\n migrateCrdtChangesSeq(db);\n migrateRecords(db);\n migratePeers(db);\n migrateStoragePeerUrls(db);\n migrateDocBlocks(db);\n migrateDocuments(db);\n migrateBlobCache(db);\n migrateShares(db);\n}\n",
127
+ "export const CORE_SCHEMA = `\nCREATE TABLE IF NOT EXISTS meta (\n key TEXT PRIMARY KEY,\n value TEXT\n);\n\n-- CRDT oplog: one row per field assignment. Source of truth for sync.\n-- txn groups the changes of one logical mutation for history rendering\n-- (nullable: legacy rows and changes from pre-txn peers have none).\n--\n-- seq is an explicit AUTOINCREMENT id used as the replication cursor. It must\n-- be a declared INTEGER PRIMARY KEY (not the implicit rowid): VACUUM renumbers\n-- the rowids of tables that lack one, which would shift them below a peer's\n-- stored push/pull cursor and silently strand every write in the gap.\n-- AUTOINCREMENT additionally guarantees ids are never reused. The\n-- (dataset,row_id,col,hlc) tuple stays UNIQUE so applyChange's INSERT OR IGNORE\n-- dedup is unchanged. Legacy databases are rebuilt into this shape by\n-- migrateCrdtChangesSeq (schema-init.ts).\nCREATE TABLE IF NOT EXISTS crdt_changes (\n seq INTEGER PRIMARY KEY AUTOINCREMENT,\n hlc TEXT NOT NULL,\n node_id TEXT NOT NULL,\n dataset TEXT NOT NULL,\n row_id TEXT NOT NULL,\n col TEXT NOT NULL,\n value TEXT,\n txn TEXT,\n UNIQUE (dataset, row_id, col, hlc)\n);\nCREATE INDEX IF NOT EXISTS idx_changes_hlc ON crdt_changes(hlc);\n-- Serves history's \"every block ever attached to this doc\" lookup. Partial so\n-- it never indexes the large values other datasets carry (e.g. site file bodies).\nCREATE INDEX IF NOT EXISTS idx_changes_docref ON crdt_changes(value)\n WHERE dataset = 'doc_blocks' AND col = 'doc_id';\n\n-- Per-peer replication cursors (crdt_changes.seq: AUTOINCREMENT, monotonic in\n-- insertion order and stable across VACUUM, so no change is ever skipped\n-- regardless of HLC/clock skew). Outbound side of\n-- a pairing: \"token\" is the credential the *remote* issued to us (sent as a\n-- Bearer header when we sync to them). See migratePeers in db.ts for the columns\n-- added to legacy databases.\n--\n-- kind selects the transport: 'http' (POST /sync to a peer server, the classic\n-- path) or 's3' (an S3-compatible bucket used as dumb store-and-forward — see\n-- sync/storage.ts). For 's3' peers url is a synthetic key (s3://<bucket>/<prefix>)\n-- and config holds the bucket settings + credentials + master key as JSON.\n-- Like the rest of peers, config is local-only and never enters the CRDT oplog.\nCREATE TABLE IF NOT EXISTS peers (\n url TEXT PRIMARY KEY,\n pull_cursor INTEGER NOT NULL DEFAULT 0,\n push_cursor INTEGER NOT NULL DEFAULT 0,\n token TEXT,\n label TEXT,\n node_id TEXT,\n enabled INTEGER NOT NULL DEFAULT 1,\n last_sync_at INTEGER,\n last_success_at INTEGER,\n last_status TEXT,\n last_error TEXT,\n kind TEXT NOT NULL DEFAULT 'http',\n config TEXT\n);\n\n-- Per-(storage-peer, remote-node) pull progress: the key of the last oplog\n-- segment we consumed from that node's bucket prefix. HTTP peers use the single\n-- pull_cursor above; storage peers need one cursor per remote node because each\n-- node publishes its own segment stream under its own prefix. last_key is a\n-- bucket object key (lexicographically ordered = chronological), so LIST\n-- start-after resumes exactly where we left off.\nCREATE TABLE IF NOT EXISTS storage_cursors (\n peer_url TEXT NOT NULL,\n node_id TEXT NOT NULL,\n last_key TEXT,\n PRIMARY KEY (peer_url, node_id)\n);\n\n-- Inbound side of a pairing: credentials *we* issued to remote devices. A peer\n-- presents one of these on /sync; acceptsSyncToken() checks it alongside the\n-- managed master token. Revoke by deleting the row.\nCREATE TABLE IF NOT EXISTS peer_grants (\n token TEXT PRIMARY KEY,\n peer_url TEXT,\n node_id TEXT,\n created_at INTEGER\n);\n\n-- One-time pairing codes minted by \"mh config peer code\" / POST /api/pair/new.\n-- Short-lived and single-use: redeemed during the pairing handshake, then the\n-- two devices exchange durable peer_grants. used/exp gate redemption.\nCREATE TABLE IF NOT EXISTS pairing_codes (\n code TEXT PRIMARY KEY,\n exp INTEGER NOT NULL,\n used INTEGER NOT NULL DEFAULT 0,\n created_at INTEGER\n);\n\n-- Public capability links to a doc / database / site. Like peers and blob_cache\n-- this is node-local and deliberately ABSENT from crdt.ts's DOMAIN map, so it\n-- never enters the oplog and never syncs — a share is a property of the access\n-- point that minted it, not of the workspace. slug is the unguessable capability\n-- in the URL (/share/<slug>). transport selects how it's served: 'server' (the\n-- token-exempt /share endpoint on this node) or 's3' (a presigned static export\n-- under <prefix>/shares/<slug> in a bucket). permission 'edit' is server-only:\n-- a presigned static object can't accept writes. guest_node_id attributes every\n-- edit made through an edit-share to one synthetic node (see crdt.ts withNodeId).\n-- pw_hash/pw_salt: server path stores a PBKDF2 verifier; the s3 path is E2EE so\n-- only pw_salt travels (in the link) and decryption happens in the viewer.\nCREATE TABLE IF NOT EXISTS shares (\n slug TEXT PRIMARY KEY,\n kind TEXT NOT NULL, -- 'doc' | 'database' | 'site'\n target_id TEXT NOT NULL, -- documents.id / databases.id / sites.id\n permission TEXT NOT NULL, -- 'view' | 'edit'\n transport TEXT NOT NULL, -- 'server' | 's3'\n pw_salt TEXT, -- base64; null = no password\n pw_hash TEXT, -- base64 PBKDF2 verifier (server path only)\n expires_at INTEGER, -- epoch ms; null = never\n guest_node_id TEXT, -- synthetic node id for edit shares (null for view)\n served_base TEXT, -- reachable base URL chosen at creation (link / source label)\n s3_peer_url TEXT, -- vestigial (s3 shares live in the bucket, not here)\n s3_object_prefix TEXT, -- vestigial\n s3_presign_exp INTEGER, -- vestigial\n s3_key_b64 TEXT, -- vestigial\n created_at INTEGER NOT NULL\n);\nCREATE INDEX IF NOT EXISTS idx_shares_target ON shares(target_id);\n\nCREATE TABLE IF NOT EXISTS databases (\n id TEXT PRIMARY KEY,\n name TEXT,\n icon TEXT,\n meta TEXT, -- JSON: generic replicated metadata (e.g. UI flags), one LWW register\n created_hlc TEXT,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS properties (\n id TEXT PRIMARY KEY,\n database_id TEXT,\n name TEXT,\n type TEXT,\n config TEXT,\n position REAL,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_properties_db ON properties(database_id);\n\n-- One row per record. Field cells live in the data JSON object, keyed by\n-- property id (rename-safe). Each (record,property) is still an independent\n-- CRDT register in the oplog; materialize() folds the winner into data via\n-- json_set/json_remove. Hot fields get expression indexes on data->>'propid'\n-- (see indexing.ts) so filter/sort/limit push down to SQL.\nCREATE TABLE IF NOT EXISTS records (\n id TEXT PRIMARY KEY,\n database_id TEXT,\n created_hlc TEXT,\n order_key TEXT,\n data TEXT NOT NULL DEFAULT '{}',\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_records_db_hlc ON records(database_id, created_hlc);\n\nCREATE TABLE IF NOT EXISTS documents (\n id TEXT PRIMARY KEY,\n title TEXT,\n body TEXT, -- materialized cache: serialized from doc_blocks\n database_id TEXT,\n parent_id TEXT,\n created_hlc TEXT,\n order_key TEXT, -- fractional index among siblings (same parent_id); ties broken by created_hlc,id\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n\n-- Document body as an ordered list of blocks; each (block,field) is an\n-- independent CRDT register so concurrent edits to different blocks merge.\n-- order_key is a fractional index (ties broken by id) giving display order.\nCREATE TABLE IF NOT EXISTS doc_blocks (\n id TEXT PRIMARY KEY,\n doc_id TEXT,\n text TEXT,\n order_key TEXT,\n blank_after INTEGER NOT NULL DEFAULT 0, -- extra blank lines kept after this block (user spacing)\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_doc_blocks_doc ON doc_blocks(doc_id);\n\n-- A named static site (Supabase-Storage-style bucket). Served at /sites/<name>/.\nCREATE TABLE IF NOT EXISTS sites (\n id TEXT PRIMARY KEY,\n name TEXT, -- URL slug; resolved by getSiteByName\n title TEXT,\n created_hlc TEXT,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n\n-- One row per file in a site. content holds inline utf8/base64 text, or a blob\n-- hash (see cache.ts) when encoding = 'blob'. (site_id, path) maps to a stable\n-- id so re-uploads merge as a CRDT register instead of duplicating.\nCREATE TABLE IF NOT EXISTS site_files (\n id TEXT PRIMARY KEY,\n site_id TEXT,\n path TEXT,\n content_type TEXT,\n encoding TEXT, -- 'utf8' | 'base64' | 'blob'\n content TEXT,\n created_hlc TEXT,\n __deleted INTEGER NOT NULL DEFAULT 0\n);\nCREATE INDEX IF NOT EXISTS idx_site_files_site ON site_files(site_id);\n\n-- Node-local blob cache ledger (NOT synced, like peers/storage_cursors): one row\n-- per blob byte-file held in cache.ts's content-addressed store (~/.metahub/cache).\n-- Gives the bare hash-named files the metadata clearing/stats need. hash is the\n-- canonical content key (sha256 truncated to 32 hex; legacy 64-hex coexist).\n-- pending = bytes produced HERE not yet confirmed flushed to a durable anchor\n-- (bucket) — the only blobs a device must protect; never auto-evicted/cleared.\n-- pending=0 means a flushed production OR an acquired cache, both safely\n-- clearable (re-fetchable). This local fact replaces the old SYNCED blob_presence\n-- table — clearing is now purely local/offline. See blobs.ts / 22-blob-sync.\nCREATE TABLE IF NOT EXISTS blob_cache (\n hash TEXT PRIMARY KEY,\n size INTEGER NOT NULL,\n content_type TEXT,\n last_access INTEGER,\n pinned INTEGER NOT NULL DEFAULT 0, -- node-local: never auto-evicted / cleared\n pending INTEGER NOT NULL DEFAULT 1, -- produced here, not yet flushed to anchor\n anchored INTEGER NOT NULL DEFAULT 0 -- node-local: last verify confirmed a designated anchor holds it (per redundancy). Drives isClearable; reset on policy change\n);\n\n-- Synced workspace policy (single row \"default\"): which nodes are designated\n-- full-blob libraries — the durable anchor in no-bucket topologies (they pull\n-- everything and never clear). full_nodes is a JSON array of node_id; redundancy\n-- is retained but unused since clearing moved to the local pending model.\nCREATE TABLE IF NOT EXISTS blob_policy (\n id TEXT PRIMARY KEY, -- always \"default\"\n full_nodes TEXT, -- JSON array of node_id\n redundancy TEXT, -- 'all' | 'any'\n __deleted INTEGER NOT NULL DEFAULT 0\n);\n`;\n\n// Best-effort: FTS5 may not be compiled in. Search falls back to LIKE if this fails.\nexport const FTS_SCHEMA = `\nCREATE VIRTUAL TABLE IF NOT EXISTS search_fts USING fts5(\n kind UNINDEXED,\n id UNINDEXED,\n database_id UNINDEXED,\n title,\n body\n);\n`;\n",
128
+ "// Runtime-agnostic schema bootstrap: everything needed to bring a metahub\n// database to the current schema, typed against the portable driver surface so\n// it runs both on Bun (bun:sqlite) and in a browser worker (sqlite-wasm).\n// Opening the on-disk database lives in db.ts, which composes these.\n\nimport type { DbDriver } from \"./driver.ts\";\nimport { CORE_SCHEMA, FTS_SCHEMA } from \"./schema.ts\";\nimport { backfillRecordOrderKeys } from \"./records.ts\";\nimport { backfillDocumentOrderKeys } from \"./documents.ts\";\nimport { readPolicy, setFullNodes } from \"./blobs-core.ts\";\nimport { storageUrl } from \"./sync/storage-url.ts\";\n\nexport function runSchema(db: DbDriver): void {\n db.exec(CORE_SCHEMA);\n try {\n db.exec(FTS_SCHEMA);\n } catch {\n // FTS5 unavailable; search will fall back to LIKE.\n }\n}\n\nexport function ftsAvailable(db: DbDriver): boolean {\n const row = db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE name = 'search_fts'\")\n .get() as { ok: number } | null;\n return row != null;\n}\n\nfunction hasColumn(db: DbDriver, table: string, column: string): boolean {\n const cols = db.query(`PRAGMA table_info(${table})`).all() as { name: string }[];\n return cols.some((c) => c.name === column);\n}\n\nfunction tableExists(db: DbDriver, table: string): boolean {\n return (\n db\n .query(\"SELECT 1 AS ok FROM sqlite_master WHERE type = 'table' AND name = ?\")\n .get(table) != null\n );\n}\n\n/**\n * Migrate legacy EAV records (record_values: one row per cell) to the JSON\n * layout (records.data: one row per record). Idempotent — keyed off schema\n * shape, no version flag. A no-op for fresh databases.\n */\nexport function migrateRecords(db: DbDriver): void {\n if (!hasColumn(db, \"records\", \"data\"))\n db.exec(\"ALTER TABLE records ADD COLUMN data TEXT NOT NULL DEFAULT '{}'\");\n if (!hasColumn(db, \"records\", \"order_key\"))\n db.exec(\"ALTER TABLE records ADD COLUMN order_key TEXT\");\n\n if (!tableExists(db, \"record_values\")) return;\n\n const tx = db.transaction(() => {\n // Fold each record's cells into a JSON object keyed by property id.\n db.exec(`\n UPDATE records SET data = coalesce((\n SELECT json_group_object(rv.property_id, json(rv.value))\n FROM record_values rv WHERE rv.record_id = records.id\n ), '{}')\n WHERE id IN (SELECT DISTINCT record_id FROM record_values);\n `);\n db.exec(\"DROP TABLE record_values\");\n backfillRecordOrderKeys(db);\n });\n tx();\n\n backfillRecordOrderKeys(db);\n}\n\n/**\n * Add the peer-pairing columns to a legacy `peers` table (token/label/node_id/\n * enabled/last_sync_at/last_success_at/last_status/last_error). Idempotent —\n * guarded per column, never drops the table so existing replication cursors survive.\n */\n/** Add `served_base` to a `shares` table created before the column existed\n * (idempotent). The vestigial s3_* columns are left as-is. */\nexport function migrateShares(db: DbDriver): void {\n if (!hasColumn(db, \"shares\", \"served_base\"))\n db.exec(\"ALTER TABLE shares ADD COLUMN served_base TEXT\");\n}\n\nexport function migratePeers(db: DbDriver): void {\n const add: [string, string][] = [\n [\"token\", \"TEXT\"],\n [\"label\", \"TEXT\"],\n [\"node_id\", \"TEXT\"],\n [\"enabled\", \"INTEGER NOT NULL DEFAULT 1\"],\n [\"last_sync_at\", \"INTEGER\"],\n [\"last_success_at\", \"INTEGER\"],\n [\"last_status\", \"TEXT\"],\n [\"last_error\", \"TEXT\"],\n // Storage-sync (sync/storage.ts): kind selects the transport, config holds\n // an 's3' peer's bucket settings. Legacy rows default to 'http', unchanged.\n [\"kind\", \"TEXT NOT NULL DEFAULT 'http'\"],\n [\"config\", \"TEXT\"],\n ];\n for (const [col, decl] of add) {\n if (!hasColumn(db, \"peers\", col)) db.exec(`ALTER TABLE peers ADD COLUMN ${col} ${decl}`);\n }\n db.exec(\n \"UPDATE peers SET last_success_at = last_sync_at \" +\n \"WHERE last_success_at IS NULL AND last_status = 'ok' AND last_sync_at IS NOT NULL\",\n );\n}\n\n/**\n * Add the `blank_after` column to a legacy `doc_blocks` table. Idempotent —\n * guarded by hasColumn; existing blocks default to 0 (canonical single-blank-line\n * separators), so the migration never changes an existing document's body.\n */\nexport function migrateDocBlocks(db: DbDriver): void {\n if (!hasColumn(db, \"doc_blocks\", \"blank_after\"))\n db.exec(\"ALTER TABLE doc_blocks ADD COLUMN blank_after INTEGER NOT NULL DEFAULT 0\");\n}\n\n/**\n * Bring a legacy `blob_cache` to the current shape and retire the old synced\n * `blob_presence` table. Idempotent (guarded by hasColumn / IF EXISTS).\n * - `pinned`: node-local, never auto-evicted/cleared.\n * - `pending`: bytes produced here, not yet flushed to a durable anchor. Existing\n * rows can't be classified produced-vs-acquired, so default to 1 (protected);\n * the next online flush sets already-in-bucket blobs back to 0, so it self-heals\n * and is loss-free. See blobs.ts.\n * - `blob_presence` (was synced) is dropped: clearing is now decided locally from\n * `pending`. Leftover presence oplog changes are ignored (forward-compat).\n */\nexport function migrateBlobCache(db: DbDriver): void {\n if (!hasColumn(db, \"blob_cache\", \"pinned\"))\n db.exec(\"ALTER TABLE blob_cache ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0\");\n if (!hasColumn(db, \"blob_cache\", \"pending\"))\n db.exec(\"ALTER TABLE blob_cache ADD COLUMN pending INTEGER NOT NULL DEFAULT 1\");\n if (!hasColumn(db, \"blob_cache\", \"anchored\"))\n db.exec(\"ALTER TABLE blob_cache ADD COLUMN anchored INTEGER NOT NULL DEFAULT 0\");\n db.exec(\"DROP TABLE IF EXISTS blob_presence\");\n}\n\n/**\n * Add the `order_key` column to a legacy `documents` table and backfill it.\n * Idempotent — guarded by hasColumn; backfill only touches rows with a NULL key,\n * assigning per-parent fractional indices in current created_hlc order, so the\n * displayed document order is unchanged until the user first drags something.\n */\nexport function migrateDocuments(db: DbDriver): void {\n if (!hasColumn(db, \"documents\", \"order_key\"))\n db.exec(\"ALTER TABLE documents ADD COLUMN order_key TEXT\");\n backfillDocumentOrderKeys(db);\n}\n\n/**\n * Add the `txn` change-group column to a legacy `crdt_changes` table.\n * Idempotent — guarded by hasColumn; existing rows stay NULL (history falls\n * back to time-gap clustering for them).\n */\nexport function migrateOplog(db: DbDriver): void {\n if (!hasColumn(db, \"crdt_changes\", \"txn\"))\n db.exec(\"ALTER TABLE crdt_changes ADD COLUMN txn TEXT\");\n}\n\n/**\n * Rebuild a legacy `crdt_changes` (composite PRIMARY KEY, implicit rowid) into\n * the current shape with an explicit `seq INTEGER PRIMARY KEY AUTOINCREMENT`.\n *\n * Why: replication push/pull cursors are crdt_changes rowids. The legacy table\n * has no declared INTEGER PRIMARY KEY, so a `VACUUM` (run by `mh` compaction)\n * renumbers its rowids 1..N; a peer's stored cursor then sits above the new\n * MAX(rowid) and `changesAfterSeq`'s \"never regress\" floor pins it there,\n * silently never pushing/pulling the writes below it. The declared `seq` is\n * stable across VACUUM and never reused, closing the hole.\n *\n * Idempotent — guarded by the `seq` column. Old rowids are copied verbatim into\n * seq so any *uncorrupted* cursor stays meaningful; then push/pull cursors are\n * reset to 0 because we cannot tell which were already stranded by a past\n * VACUUM, and a from-scratch re-sync is safe (INSERT OR IGNORE / ingest dedup)\n * — a one-time catch-up on first sync after upgrade. storage_cursors are\n * object-key based, never rowids, so they are left intact.\n */\nexport function migrateCrdtChangesSeq(db: DbDriver): void {\n if (hasColumn(db, \"crdt_changes\", \"seq\")) return;\n const tx = db.transaction(() => {\n db.exec(`\n DROP TABLE IF EXISTS crdt_changes_new;\n CREATE TABLE crdt_changes_new (\n seq INTEGER PRIMARY KEY AUTOINCREMENT,\n hlc TEXT NOT NULL,\n node_id TEXT NOT NULL,\n dataset TEXT NOT NULL,\n row_id TEXT NOT NULL,\n col TEXT NOT NULL,\n value TEXT,\n txn TEXT,\n UNIQUE (dataset, row_id, col, hlc)\n );\n INSERT INTO crdt_changes_new (seq, hlc, node_id, dataset, row_id, col, value, txn)\n SELECT rowid, hlc, node_id, dataset, row_id, col, value, txn\n FROM crdt_changes ORDER BY rowid;\n DROP TABLE crdt_changes;\n ALTER TABLE crdt_changes_new RENAME TO crdt_changes;\n CREATE INDEX IF NOT EXISTS idx_changes_hlc ON crdt_changes(hlc);\n CREATE INDEX IF NOT EXISTS idx_changes_docref ON crdt_changes(value)\n WHERE dataset = 'doc_blocks' AND col = 'doc_id';\n `);\n if (tableExists(db, \"peers\")) db.exec(\"UPDATE peers SET push_cursor = 0, pull_cursor = 0\");\n });\n tx();\n}\n\n/**\n * Migrate legacy storage-peer keys `s3://<bucket>/<prefix>` to the\n * endpoint-qualified `s3://<host>/<bucket>/<prefix>` so two endpoints sharing a\n * bucket name (R2/MinIO/COS each have their own namespace) no longer collide and\n * silently overwrite each other's peer row (and stale cursor). Rewrites all three\n * places the key is referenced — the peers row, its storage_cursors, and any\n * blob_policy.fullNodes anchor pointing at the bucket.\n *\n * Key derivation goes through the shared `storageUrl` (storage-url.ts) so every\n * producer — CLI/server, the WebUI worker, and this migration — agrees byte for\n * byte; otherwise a producer still minting the legacy shape turns the rename into\n * a permanent whack-a-mole.\n *\n * Idempotent — a row already at its endpoint-qualified key produces no rename.\n * Keyed off config.endpoint (authoritative), so re-running is a no-op.\n *\n * Cross-version note: rewriting blob_policy.fullNodes is a CRDT write, so it\n * replicates. A device still on the old code keeps a legacy-format storage peer\n * and matches anchors by exact string, so it won't recognize the new-format\n * anchor until it upgrades — during that window a bucket-anchored device pauses\n * cache eviction (loss-free: bytes stay, nothing is dropped) and self-heals once\n * the fleet is upgraded. Only affects setups that designate a bucket as a\n * full-blob anchor. (Accepted over a tolerant-matcher rewrite, which is wider and\n * still can't fix already-shipped old clients.)\n */\nexport function migrateStoragePeerUrls(db: DbDriver): void {\n if (!tableExists(db, \"peers\")) return;\n const rows = db\n .query(\"SELECT url, config FROM peers WHERE kind = 's3' AND config IS NOT NULL\")\n .all() as { url: string; config: string }[];\n if (rows.length === 0) return;\n\n const renames: { oldUrl: string; newUrl: string }[] = [];\n const claimed = new Set<string>(); // newUrls taken this batch — avoid two→one\n for (const r of rows) {\n let cfg: { endpoint?: string; bucket?: string; prefix?: string };\n try {\n cfg = JSON.parse(r.config);\n } catch {\n continue; // malformed config — leave the row untouched\n }\n if (!cfg.endpoint || !cfg.bucket || !cfg.prefix) continue;\n const newUrl = storageUrl(cfg.endpoint, cfg.bucket, cfg.prefix);\n if (newUrl === r.url) {\n claimed.add(newUrl); // already canonical — reserve so nothing renames onto it\n continue;\n }\n // Skip if the target key is already occupied — by an existing peers row, an\n // existing storage_cursors row (composite PK would throw), or another row in\n // this same batch. A throwing migration would make the DB fail to open; the\n // legacy row is left as-is instead (collisions are vanishingly rare).\n if (\n claimed.has(newUrl) ||\n db.query(\"SELECT 1 FROM peers WHERE url = ?\").get(newUrl) ||\n (tableExists(db, \"storage_cursors\") &&\n db.query(\"SELECT 1 FROM storage_cursors WHERE peer_url = ?\").get(newUrl))\n ) {\n continue;\n }\n claimed.add(newUrl);\n renames.push({ oldUrl: r.url, newUrl });\n }\n if (renames.length === 0) return;\n\n const map = new Map(renames.map(({ oldUrl, newUrl }) => [oldUrl, newUrl]));\n const tx = db.transaction(() => {\n for (const { oldUrl, newUrl } of renames) {\n if (tableExists(db, \"storage_cursors\"))\n db.query(\"UPDATE storage_cursors SET peer_url = ? WHERE peer_url = ?\").run(newUrl, oldUrl);\n db.query(\"UPDATE peers SET url = ? WHERE url = ?\").run(newUrl, oldUrl);\n }\n // Rewrite synced anchor references (CRDT-backed, so this replicates). See the\n // cross-version note above.\n if (tableExists(db, \"blob_policy\")) {\n const fullNodes = readPolicy(db).fullNodes;\n if (fullNodes.some((n) => map.has(n)))\n setFullNodes(db, fullNodes.map((n) => map.get(n) ?? n));\n }\n });\n tx();\n}\n\n/**\n * Add the generic `meta` JSON column to a legacy `databases` table.\n * Idempotent — guarded by hasColumn.\n *\n * Re-materialization: an OLD binary that pulled `databases/meta` changes from\n * newer peers stored them in crdt_changes (applyChange inserts before the\n * column check) but skipped materialization (unknown column, forward-compat)\n * and advanced the pull cursor past them — they would never replay on their\n * own. When the column is first added, backfill each database's meta from its\n * WINNING oplog change (max HLC — the same LWW rule applyChange uses), so an\n * upgrade sees the state its peers already agreed on.\n */\nexport function migrateDatabases(db: DbDriver): void {\n if (hasColumn(db, \"databases\", \"meta\")) return;\n db.exec(\"ALTER TABLE databases ADD COLUMN meta TEXT\");\n db.exec(`\n UPDATE databases SET meta = (\n SELECT c.value FROM crdt_changes c\n WHERE c.dataset = 'databases' AND c.col = 'meta' AND c.row_id = databases.id\n ORDER BY c.hlc DESC LIMIT 1\n )\n WHERE id IN (\n SELECT DISTINCT row_id FROM crdt_changes WHERE dataset = 'databases' AND col = 'meta'\n )\n `);\n}\n\n/** Bring a freshly opened (or legacy) database to the current schema. */\nexport function initSchema(db: DbDriver): void {\n runSchema(db);\n migrateOplog(db);\n migrateDatabases(db);\n migrateCrdtChangesSeq(db);\n migrateRecords(db);\n migratePeers(db);\n migrateStoragePeerUrls(db);\n migrateDocBlocks(db);\n migrateDocuments(db);\n migrateBlobCache(db);\n migrateShares(db);\n}\n",
126
129
  "import type { DbDriver } from \"./driver.ts\";\nimport { getDatabase, type DatabaseRow } from \"./databases.ts\";\n\n// The \"current database\" is per-machine UI context, not data — it lives in the\n// local `meta` table (like node_id / search_hlc), never in the oplog, so it\n// does not sync to peers.\nconst KEY = \"current_db\";\n\n/**\n * The current database, or null. Validated on read: if it points at a database\n * that no longer exists (deleted, or gone after a snapshot restore), the stale\n * pointer is cleared and null returned — no coupling to delete/restore paths.\n */\nexport function getCurrentDatabase(db: DbDriver): DatabaseRow | null {\n const row = db.query(\"SELECT value FROM meta WHERE key = ?\").get(KEY) as\n | { value: string }\n | null;\n if (!row) return null;\n const found = getDatabase(db, row.value);\n if (!found) {\n clearCurrentDatabase(db);\n return null;\n }\n return found;\n}\n\nexport function setCurrentDatabase(db: DbDriver, id: string): void {\n db.query(\n \"INSERT INTO meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value\",\n ).run(KEY, id);\n}\n\nexport function clearCurrentDatabase(db: DbDriver): void {\n db.query(\"DELETE FROM meta WHERE key = ?\").run(KEY);\n}\n",
127
130
  "import type { DbDriver } from \"./driver.ts\";\nimport { ftsAvailable } from \"./schema-init.ts\";\nimport { changesAfterSeq } from \"./crdt.ts\";\n\nexport interface SearchHit {\n type: \"document\" | \"record\";\n id: string;\n database_id: string | null;\n title?: string;\n snippet: string;\n}\n\nconst TEXT_TYPES = \"('text','url','select','multi_select','date')\";\n\n// Bump when the indexing logic changes (TEXT_TYPES, indexed columns, FTS schema)\n// so existing hubs discard `search_seq` and rebuild from scratch on next search.\nconst SEARCH_INDEX_VERSION = \"1\";\n\nfunction readMeta(db: DbDriver, key: string): string | null {\n return (\n (db.query(\"SELECT value FROM meta WHERE key = ?\").get(key) as { value: string } | null)\n ?.value ?? null\n );\n}\n\nfunction writeMeta(db: DbDriver, key: string, value: string): void {\n db.query(\n \"INSERT INTO meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value\",\n ).run(key, value);\n}\n\n// --- per-object (re)indexing ------------------------------------------------\n// FTS rows are derived from the materialized tables, so (re)indexing one object\n// is \"delete its rows, then re-derive from the live row(s)\". A tombstoned or\n// body-less object simply re-derives to nothing.\n\ninterface DocRow {\n id: string;\n title: string | null;\n body: string | null;\n database_id: string | null;\n}\n\nfunction reindexDocument(db: DbDriver, id: string): void {\n db.query(\"DELETE FROM search_fts WHERE kind = 'document' AND id = ?\").run(id);\n const d = db\n .query(\"SELECT id, title, body, database_id FROM documents WHERE id = ? AND __deleted = 0\")\n .get(id) as DocRow | null;\n if (d)\n db.query(\n \"INSERT INTO search_fts (kind, id, database_id, title, body) VALUES ('document', ?, ?, ?, ?)\",\n ).run(d.id, d.database_id, d.title ?? \"\", d.body ?? \"\");\n}\n\ninterface RecBodyRow {\n id: string;\n database_id: string | null;\n body: string | null;\n}\n\n// A record's body is the concatenation of its TEXT-typed cell values. `where`\n// scopes which records to (re)derive; it is a fixed literal, never user input.\nfunction recordBodyRows(db: DbDriver, where: string, ...args: (string | number)[]): RecBodyRow[] {\n return db\n .query(\n `SELECT r.id AS id, r.database_id AS database_id, group_concat(je.value, ' ') AS body\n FROM records r, json_each(r.data) je\n JOIN properties p ON p.id = je.key AND p.__deleted = 0\n WHERE ${where} AND r.__deleted = 0 AND p.type IN ${TEXT_TYPES}\n GROUP BY r.id`,\n )\n .all(...args) as RecBodyRow[];\n}\n\nfunction insertRecordRow(db: DbDriver, r: RecBodyRow): void {\n db.query(\n \"INSERT INTO search_fts (kind, id, database_id, title, body) VALUES ('record', ?, ?, ?, ?)\",\n ).run(r.id, r.database_id, r.id, r.body ?? \"\");\n}\n\nfunction reindexRecord(db: DbDriver, id: string): void {\n db.query(\"DELETE FROM search_fts WHERE kind = 'record' AND id = ?\").run(id);\n const r = recordBodyRows(db, \"r.id = ?\", id)[0];\n if (r) insertRecordRow(db, r);\n}\n\n// Used for property-level changes (type/deletion/scope) that affect a whole\n// database's records at once.\nfunction reindexDatabaseRecords(db: DbDriver, databaseId: string): void {\n db.query(\"DELETE FROM search_fts WHERE kind = 'record' AND database_id = ?\").run(databaseId);\n for (const r of recordBodyRows(db, \"r.database_id = ?\", databaseId)) insertRecordRow(db, r);\n}\n\n// --- index maintenance ------------------------------------------------------\n\n// Full rebuild: the fallback path (first build, version bump, snapshot reset,\n// manual repair). Clears the index and re-derives every object, then pins the\n// cursor to the current oplog head so incremental updates pick up from there.\nfunction fullRebuild(db: DbDriver): void {\n db.query(\"DELETE FROM search_fts\").run();\n for (const d of db\n .query(\"SELECT id, title, body, database_id FROM documents WHERE __deleted = 0\")\n .all() as DocRow[])\n db.query(\n \"INSERT INTO search_fts (kind, id, database_id, title, body) VALUES ('document', ?, ?, ?, ?)\",\n ).run(d.id, d.database_id, d.title ?? \"\", d.body ?? \"\");\n for (const r of recordBodyRows(db, \"1 = 1\")) insertRecordRow(db, r);\n const max = (db.query(\"SELECT MAX(rowid) AS m FROM crdt_changes\").get() as { m: number | null }).m ?? 0;\n writeMeta(db, \"search_seq\", String(max));\n writeMeta(db, \"search_index_version\", SEARCH_INDEX_VERSION);\n}\n\n// Incremental: scan oplog changes since the cursor, derive the set of affected\n// objects, and re-derive only those. Insertion-order (rowid) means no change is\n// ever skipped, even when a remote write carries an older HLC than the local max.\nfunction incrementalUpdate(db: DbDriver): void {\n const cursor = Number(readMeta(db, \"search_seq\") ?? \"0\");\n const { changes, cursor: next } = changesAfterSeq(db, cursor);\n if (changes.length === 0) return;\n\n const docIds = new Set<string>();\n const recordIds = new Set<string>();\n const dbIds = new Set<string>(); // databases whose records need a full re-derive\n\n for (const c of changes) {\n switch (c.dataset) {\n case \"documents\":\n docIds.add(c.row_id);\n break;\n case \"doc_blocks\": {\n const blk = db\n .query(\"SELECT doc_id FROM doc_blocks WHERE id = ?\")\n .get(c.row_id) as { doc_id: string | null } | null;\n if (blk?.doc_id) docIds.add(blk.doc_id);\n break;\n }\n case \"records\":\n recordIds.add(c.row_id);\n break;\n case \"properties\":\n // Only type/deletion/scope change which cells contribute to record bodies.\n if (c.col === \"type\" || c.col === \"__deleted\" || c.col === \"database_id\") {\n const p = db\n .query(\"SELECT database_id FROM properties WHERE id = ?\")\n .get(c.row_id) as { database_id: string | null } | null;\n if (p?.database_id) dbIds.add(p.database_id);\n }\n break;\n // databases / sites / site_files are not represented in the FTS index.\n }\n }\n\n for (const id of docIds) reindexDocument(db, id);\n for (const dbId of dbIds) reindexDatabaseRecords(db, dbId);\n for (const id of recordIds) {\n const r = db\n .query(\"SELECT database_id FROM records WHERE id = ?\")\n .get(id) as { database_id: string | null } | null;\n if (r?.database_id && dbIds.has(r.database_id)) continue; // already covered above\n reindexRecord(db, id);\n }\n writeMeta(db, \"search_seq\", String(next));\n}\n\n// Bring the FTS index up to date before searching. Returns false when FTS5 is\n// unavailable (caller falls back to LIKE). All work is one transaction so the\n// cursor never advances past the index state it describes.\nfunction ensureIndex(db: DbDriver): boolean {\n if (!ftsAvailable(db)) return false;\n const version = readMeta(db, \"search_index_version\");\n const seq = readMeta(db, \"search_seq\");\n db.transaction(() => {\n if (version !== SEARCH_INDEX_VERSION || seq === null) fullRebuild(db);\n else incrementalUpdate(db);\n })();\n return true;\n}\n\n/** Force a full rebuild of the search index (maintenance / repair). */\nexport function rebuildSearchIndex(db: DbDriver): boolean {\n if (!ftsAvailable(db)) return false;\n db.transaction(() => fullRebuild(db))();\n return true;\n}\n\nfunction ftsSearch(db: DbDriver, query: string, limit: number): SearchHit[] {\n const match = query\n .split(/\\s+/)\n .filter(Boolean)\n .map((t) => `\"${t.replace(/\"/g, '\"\"')}\"`)\n .join(\" \");\n if (!match) return [];\n const rows = db\n .query(\n \"SELECT kind, id, database_id, title, snippet(search_fts, -1, '[', ']', '…', 10) AS snippet FROM search_fts WHERE search_fts MATCH ? ORDER BY rank LIMIT ?\",\n )\n .all(match, limit) as {\n kind: \"document\" | \"record\";\n id: string;\n database_id: string | null;\n title: string | null;\n snippet: string;\n }[];\n return rows.map((r) => ({\n type: r.kind,\n id: r.id,\n database_id: r.database_id,\n title: r.title || undefined,\n snippet: r.snippet,\n }));\n}\n\nfunction makeSnippet(text: string, q: string): string {\n const i = text.toLowerCase().indexOf(q.toLowerCase());\n if (i < 0) return text.slice(0, 80);\n const start = Math.max(0, i - 30);\n return `${start > 0 ? \"…\" : \"\"}${text.slice(start, i + q.length + 50)}…`;\n}\n\n// Substring match — robust for CJK and exact phrases where FTS tokenization misses.\nfunction likeSearch(db: DbDriver, query: string, limit: number): SearchHit[] {\n const like = `%${query.replace(/[%_\\\\]/g, \"\\\\$&\")}%`;\n const out: SearchHit[] = [];\n const docs = db\n .query(\n \"SELECT id, title, body, database_id FROM documents WHERE __deleted = 0 AND (title LIKE ? ESCAPE '\\\\' OR body LIKE ? ESCAPE '\\\\') LIMIT ?\",\n )\n .all(like, like, limit) as {\n id: string;\n title: string | null;\n body: string | null;\n database_id: string | null;\n }[];\n for (const d of docs)\n out.push({\n type: \"document\",\n id: d.id,\n database_id: d.database_id,\n title: d.title ?? undefined,\n snippet: makeSnippet(d.body || d.title || \"\", query),\n });\n\n if (out.length < limit) {\n const recs = db\n .query(\n `SELECT r.id AS id, r.database_id AS database_id, group_concat(je.value, ' ') AS body\n FROM records r, json_each(r.data) je\n JOIN properties p ON p.id = je.key AND p.__deleted = 0\n WHERE r.__deleted = 0 AND p.type IN ${TEXT_TYPES}\n GROUP BY r.id HAVING body LIKE ? ESCAPE '\\\\' LIMIT ?`,\n )\n .all(like, limit - out.length) as {\n id: string;\n database_id: string | null;\n body: string | null;\n }[];\n for (const r of recs)\n out.push({\n type: \"record\",\n id: r.id,\n database_id: r.database_id,\n snippet: makeSnippet(r.body || \"\", query),\n });\n }\n return out;\n}\n\nexport function search(\n db: DbDriver,\n query: string,\n opts: { limit?: number } = {},\n): SearchHit[] {\n const limit = opts.limit ?? 20;\n if (ensureIndex(db)) {\n try {\n const hits = ftsSearch(db, query, limit);\n if (hits.length) return hits;\n } catch {\n // fall through to LIKE\n }\n }\n return likeSearch(db, query, limit);\n}\n",
128
131
  "import \"./storage-s3-bun.ts\"; // side effect: register the Bun S3 storage-sync client (auto-sync timer)\nimport { openMetahub } from \"../db.ts\";\nimport { MhError } from \"../errors.ts\";\nimport { getNodeId } from \"../node.ts\";\nimport { getServerConfig } from \"../config.ts\";\nimport pkg from \"../../../package.json\" with { type: \"json\" };\nimport { routes, type Route, type RouteCtx } from \"./routes.ts\";\nimport { SYNC_PATH, HEALTH_PATH, RENEW_PATH, PAIR_PATH } from \"./protocol.ts\";\nimport { DEFAULT_TTL_MS, DEFAULT_GRACE_MS } from \"./token.ts\";\nimport { syncPeer, listPeers } from \"./peers.ts\";\nimport { blobMaintenance } from \"../blobs.ts\";\nimport { buildOpenApi } from \"./openapi.ts\";\nimport {\n type AuthConfig,\n activeToken,\n hasValidToken,\n acceptsSyncToken,\n renewToken,\n wantsHtml,\n unlockPage,\n withShim,\n unauthorized,\n HTML_HEADERS,\n} from \"./auth.ts\";\n\nexport interface RunningServer {\n server: ReturnType<typeof Bun.serve>;\n node: string;\n port: number;\n /** Resolved bind address (loopback unless explicitly exposed). */\n host: string;\n /** The active token, or null in --debug mode (auth disabled). */\n token: string | null;\n /** Token expiry (epoch ms); Infinity for a static --token, null when auth is off. */\n exp: number | null;\n /** How the token was sourced: rotating (managed), fixed (static), or off (disabled). */\n authMode: \"managed\" | \"static\" | \"disabled\";\n /** Whether the server terminates TLS itself (URLs are https://). */\n tls: boolean;\n /** Whether the auto-sync timer is running. */\n autoSync: boolean;\n /** Auto-sync poll interval in ms (meaningful only when autoSync). */\n syncIntervalMs: number;\n /** Stop the server and the auto-sync timer. */\n stop: () => void;\n}\n\n/** Thrown when the requested port is already taken, so callers can react. */\nexport class PortInUseError extends MhError {\n constructor(\n readonly port: number,\n readonly host: string,\n ) {\n super(\n \"port_in_use\",\n `port ${port} is already in use — another mh server may be running. ` +\n `Stop it, or start on a free port with --port <n>.`,\n );\n this.name = \"PortInUseError\";\n }\n}\n\nexport interface ServerOptions {\n port?: number;\n /** Bind address. Defaults to 127.0.0.1; pass \"0.0.0.0\" to expose. */\n host?: string;\n /** Disable auth entirely. */\n debug?: boolean;\n /** Custom token. If omitted in non-debug mode, one is generated. */\n token?: string;\n /** Auto-sync poll interval in ms; <= 0 disables it. Falls back to stored config. */\n syncIntervalMs?: number;\n /** Master switch for the auto-sync timer. Falls back to stored config. */\n autoSync?: boolean;\n /** Browser UI plug-in point. Core ships no UI; callers (CLI, desktop\n * sidecar) inject the WebUI's asset handler + data API routes here.\n * Omitted = a headless sync/sites server. */\n ui?: UiHandler;\n /** Optional TLS (PEM file paths). When set the server terminates TLS itself\n * and serves https — service workers/PWA need a secure context off\n * localhost. A reverse proxy (Caddy, Tailscale Serve) in front is the\n * recommended alternative; this is for setups without one. */\n tls?: { certPath: string; keyPath: string };\n}\n\n/** What a pluggable browser UI provides (see src/webui/server/). */\nexport interface UiHandler {\n /** Serve UI assets (GET / , /webui.js, /webui.css); null = not a UI asset. */\n serveAssets(req: Request): Promise<Response | null>;\n /** The UI's data API routes, merged into the route registry (and /docs). */\n routes: Route[];\n}\n\n/** Scalar API reference UI, loaded from CDN — no bundling or npm dependency. */\nfunction scalarHtml(specUrl: string): string {\n return `<!doctype html><html><head>\n<meta charset=\"utf-8\"><title>Metahub API</title>\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"></head>\n<body><script id=\"api-reference\" data-url=\"${specUrl}\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/@scalar/api-reference\"></script>\n</body></html>`;\n}\n\n/** Start the CRDT sync server. It is just another node backed by ~/.metahub. */\nexport function startServer(opts: ServerOptions = {}): RunningServer {\n const db = openMetahub();\n const node = getNodeId(db);\n const ctx: RouteCtx = { db, node };\n const allRoutes = opts.ui ? [...routes, ...opts.ui.routes] : routes;\n\n // Resolve runtime settings: explicit opts (CLI flags) override stored config.\n const cfg = getServerConfig(db);\n const port = opts.port ?? cfg.port;\n const host = opts.host ?? cfg.host;\n const syncIntervalMs = opts.syncIntervalMs ?? cfg.syncIntervalMs;\n const autoSync = opts.autoSync ?? cfg.autoSync;\n\n // Three modes: --debug disables auth; an explicit --token/env is a fixed,\n // non-persisted token; otherwise a persistent, rotating token from ~/.metahub.\n const auth: AuthConfig = opts.debug\n ? { debug: true, staticToken: null, db: null, ttlMs: 0, graceMs: 0 }\n : opts.token\n ? { debug: false, staticToken: opts.token, db: null, ttlMs: 0, graceMs: 0 }\n : {\n debug: false,\n staticToken: null,\n db,\n ttlMs: DEFAULT_TTL_MS,\n graceMs: DEFAULT_GRACE_MS,\n };\n\n let server: ReturnType<typeof Bun.serve>;\n try {\n server = Bun.serve({\n port,\n hostname: host,\n tls: opts.tls\n ? { cert: Bun.file(opts.tls.certPath), key: Bun.file(opts.tls.keyPath) }\n : undefined,\n async fetch(req) {\n const url = new URL(req.url);\n\n // /sync now requires the master token OR a per-peer grant from pairing\n // (the old open trusted-peer model is gone; pairing distributes the\n // credentials — see ./pairing.ts, acceptsSyncToken). /health and\n // /auth/token stay open (the latter must work with an expired token), and\n // the pairing handshake authenticates via its one-time code in-handler.\n // Share management a paired peer may drive remotely (create on / list from /\n // revoke on this node): authorized by the master token OR a pairing grant,\n // like /sync. EXACT paths only — /api/share/servers|buckets|renew (peer/bucket\n // inventory + re-presign) stay master-only via the else branch below.\n const shareMgmt =\n ((req.method === \"POST\" || req.method === \"DELETE\") && url.pathname === \"/api/share\") ||\n (req.method === \"GET\" && url.pathname === \"/api/shares\");\n if (\n url.pathname === SYNC_PATH ||\n url.pathname.startsWith(\"/blob/\") ||\n url.pathname === \"/api/blobs/has\" ||\n shareMgmt\n ) {\n // /blob/<hash> byte transport (and /api/blobs/has presence probe) authorize\n // like /sync: the master token OR a per-peer grant (a paired peer fetching a\n // blob it only has the hash of, or asking whether this node holds hashes).\n if (!acceptsSyncToken(req, url, auth, db)) return unauthorized();\n } else {\n const exempt =\n url.pathname === HEALTH_PATH ||\n url.pathname === RENEW_PATH ||\n url.pathname === PAIR_PATH ||\n // PWA install metadata + the worker script: browsers fetch these\n // without credentials, and they carry nothing sensitive (app name,\n // icons, generic caching code), so they sit outside the token gate.\n url.pathname === \"/manifest.webmanifest\" ||\n url.pathname === \"/sw.js\" ||\n url.pathname.startsWith(\"/icons/\") ||\n // Public shares enforce their own per-share access control (slug +\n // expiry + optional password) inside serveShare — never the master\n // token. See ./share-serve.ts.\n url.pathname.startsWith(\"/share/\");\n\n // Token gate (no-op in --debug). A browser without a token gets the\n // unlock page; everything else gets 401. Once the unlock page sets the\n // cookie the reload passes here and the real content is served.\n if (!exempt && !hasValidToken(req, url, auth)) {\n return wantsHtml(req)\n ? // x-mh-unlock tells the service worker this 200 is the unlock\n // page, not the app shell — caching it would brick offline starts.\n new Response(unlockPage(), { headers: { ...HTML_HEADERS, \"x-mh-unlock\": \"1\" } })\n : unauthorized();\n }\n }\n\n // Seamless renewal: swap the current (or in-grace previous) token for the\n // current token + expiry. 401 if the presented token isn't recognized.\n if (url.pathname === RENEW_PATH) {\n const r = renewToken(req, url, auth);\n return r ? Response.json(r) : unauthorized();\n }\n\n // Auto-generated API docs.\n if (req.method === \"GET\" && url.pathname === \"/docs.json\") {\n return Response.json(buildOpenApi(pkg.version, allRoutes));\n }\n if (req.method === \"GET\" && url.pathname === \"/docs\") {\n return withShim(new Response(scalarHtml(\"/docs.json\"), { headers: HTML_HEADERS }), auth, req, url);\n }\n\n // Injected browser UI assets (core itself ships no UI).\n if (req.method === \"GET\" && opts.ui) {\n const res = await opts.ui.serveAssets(req);\n if (res) return withShim(res, auth, req, url);\n }\n\n // Agent-published static sites at /sites/<name>/<path...>. Lazy-imported\n // for the same zero-startup-cost reason as the WebUI.\n if (req.method === \"GET\" && url.pathname.startsWith(\"/sites/\")) {\n const { serveSite } = await import(\"./sites-serve.ts\");\n const res = await serveSite(req, ctx);\n if (res) return withShim(res, auth, req, url);\n }\n\n // Content-addressed blob bytes at /blob/<hash>[.ext] (document images /\n // large files). Resolves on demand (local → peers → bucket); raw bytes, no\n // shim. See blob-routes.ts / blobs.ts.\n if (req.method === \"GET\" && url.pathname.startsWith(\"/blob/\")) {\n const { serveBlob } = await import(\"./blob-routes.ts\");\n const res = await serveBlob(req, ctx);\n if (res) return res;\n }\n\n // Public capability shares at /share/<slug>... (any method — edit shares\n // accept writes). Per-share access control lives in serveShare; responses\n // are returned RAW (never withShim) so a public page never carries the\n // master-token runtime. Lazy-imported like the other off-startup handlers.\n if (url.pathname.startsWith(\"/share/\")) {\n const { serveShare } = await import(\"./share-serve.ts\");\n const res = await serveShare(req, ctx);\n if (res) return res;\n }\n\n // Registered API routes.\n const route = allRoutes.find((r) => r.method === req.method && r.path === url.pathname);\n if (route) return route.handler(req, ctx);\n\n return new Response(\"not found\", { status: 404 });\n },\n });\n } catch (e) {\n // Bun.serve throws synchronously on a bind failure. Turn the raw EADDRINUSE\n // (and the related EACCES) into an actionable message instead of a stack\n // trace pointing into the framework.\n const code = (e as { code?: string } | null)?.code;\n if (code === \"EADDRINUSE\") {\n throw new PortInUseError(port, host);\n }\n if (code === \"EACCES\") {\n throw new MhError(\n \"invalid_input\",\n `permission denied binding ${host}:${port} — ports below 1024 need elevated privileges; pick a higher port with --port`,\n );\n }\n throw e;\n }\n // Auto-sync timer: each tick runs one push/pull round against every enabled\n // peer. The DB is the source of truth, so peers added by `mh config` (a\n // separate process) are picked up on the next tick without a restart.\n let timer: ReturnType<typeof setInterval> | null = null;\n if (autoSync && syncIntervalMs > 0) {\n // Per-peer idle backoff for storage (s3) peers — the bucket poll is the metered\n // cost. When the hub hasn't advanced (no local edit, nothing pulled) and a\n // peer's rounds keep coming up empty, slow it down, capped at TTL/2 so the\n // publisher lease / failover stay timely. Any hub advance (a local edit OR a\n // pulled remote edit) reclaims the base cadence so propagation stays prompt.\n // http peers sync every tick.\n const S3_POLL_MAX_MS = 150_000; // 2.5min ≈ publisher-lease TTL/2\n const s3Next = new Map<string, { delay: number; due: number }>();\n let lastMaxSeq = -1;\n let ticking = false;\n // Blob upkeep is metered separately from the oplog poll: a full-blob device\n // pulls/announces referenced blobs and pushes held blobs to buckets. Runs at\n // most once a minute regardless of the (possibly faster) sync cadence.\n const BLOB_MAINT_MS = 60_000;\n let lastBlobMaint = 0;\n const tick = async (): Promise<void> => {\n const maxSeq =\n (db.query(\"SELECT MAX(seq) AS s FROM crdt_changes\").get() as { s: number | null }).s ?? 0;\n const advanced = lastMaxSeq >= 0 && maxSeq > lastMaxSeq;\n lastMaxSeq = maxSeq;\n const now = Date.now();\n for (const p of listPeers(db)) {\n if (!p.enabled) continue;\n if (p.kind !== \"s3\") {\n await syncPeer(db, p.url);\n continue;\n }\n const st = s3Next.get(p.url);\n if (!advanced && st && now < st.due) continue; // idle & backed off → not due\n const out = await syncPeer(db, p.url);\n const busy = advanced || (out.pushed ?? 0) > 0 || (out.pulled ?? 0) > 0;\n const delay = busy\n ? syncIntervalMs\n : Math.min((st?.delay ?? syncIntervalMs) * 2, S3_POLL_MAX_MS);\n s3Next.set(p.url, { delay, due: Date.now() + delay });\n }\n if (Date.now() - lastBlobMaint >= BLOB_MAINT_MS) {\n lastBlobMaint = Date.now();\n try {\n await blobMaintenance(db);\n } catch (e) {\n console.error(\"[blob] maintenance failed —\", e);\n }\n }\n };\n timer = setInterval(() => {\n if (ticking) return;\n ticking = true;\n // Per-peer errors are already recorded in the DB (last_error) by syncPeer and\n // surfaced via CLI/WebUI; this catch only covers an *unexpected* tick crash.\n void tick()\n .catch((e) => console.error(\"[sync] auto-sync tick failed —\", e))\n .finally(() => {\n ticking = false;\n });\n }, syncIntervalMs);\n timer.unref?.();\n }\n\n const active = activeToken(auth);\n const authMode: RunningServer[\"authMode\"] = opts.debug\n ? \"disabled\"\n : opts.token\n ? \"static\"\n : \"managed\";\n return {\n server,\n node,\n port: server.port ?? port,\n host,\n token: active?.token ?? null,\n exp: active?.exp ?? null,\n authMode,\n tls: Boolean(opts.tls),\n autoSync: Boolean(autoSync && syncIntervalMs > 0),\n syncIntervalMs,\n stop() {\n if (timer) clearInterval(timer);\n server.stop();\n },\n };\n}\n",
129
132
  "import { z } from \"zod\";\nimport { routes as coreRoutes, type Route } from \"./routes.ts\";\n\n/**\n * Build an OpenAPI 3.1 document by walking a route registry. Each route's\n * Zod schemas are converted to JSON Schema (draft 2020-12, which 3.1 accepts).\n * Adding a route to ./routes.ts is enough — this picks it up with no codegen.\n * The server passes its full registry (core + injected UI routes) so /docs\n * always matches what is actually served.\n */\nexport function buildOpenApi(version: string, routes: readonly Route[] = coreRoutes) {\n const paths: Record<string, Record<string, unknown>> = {};\n\n for (const route of routes) {\n const op: Record<string, unknown> = {\n summary: route.summary,\n responses: {\n \"200\": {\n description: \"OK\",\n content: { \"application/json\": { schema: z.toJSONSchema(route.response) } },\n },\n },\n };\n if (route.request) {\n op.requestBody = {\n required: true,\n content: { \"application/json\": { schema: z.toJSONSchema(route.request) } },\n };\n }\n (paths[route.path] ??= {})[route.method.toLowerCase()] = op;\n }\n\n return {\n openapi: \"3.1.0\",\n info: { title: \"Metahub Sync API\", version },\n paths,\n };\n}\n",
130
- "// Token gate for the server. In --debug mode auth is disabled entirely. Otherwise\n// a single token guards every request. A token may arrive three ways so both\n// programmatic clients and browsers work:\n// - Authorization: Bearer <token> (API clients, and the injected fetch shim)\n// - Cookie: mh_token=<token> (browser top-level navigations)\n// - ?token=<token> (links / quick curl testing)\n// Browsers without a token get an unlock page that stores the password to\n// localStorage + a cookie and reloads; served HTML then gets a fetch shim that\n// re-attaches the token as a Bearer header on same-origin API calls.\n\nimport type { Database } from \"bun:sqlite\";\nimport { loadOrRotate } from \"./token.ts\";\nimport { isAcceptedGrant } from \"./pairing.ts\";\nimport { RENEW_PATH } from \"./protocol.ts\";\n\n// Three modes:\n// debug — auth off entirely.\n// staticToken — fixed token from --token/env; not persisted, never expires.\n// db (managed) — persistent, rotating token in ~/.metahub (see ./token.ts).\nexport interface AuthConfig {\n debug: boolean;\n staticToken: string | null;\n db: Database | null;\n ttlMs: number;\n graceMs: number;\n}\n\nconst COOKIE = \"mh_token\";\n/** Shared cookie attributes for the token cookie (server Set-Cookie and the\n * unlock page's client-side write must stay identical). */\nconst COOKIE_ATTRS = \"path=/; SameSite=Strict; Max-Age=31536000\";\n\n/** The `Set-Cookie` value that persists `token` as the browser's mh_token. Adds\n * `Secure` over TLS so a cookie carrying the master credential can't leak over an\n * accidental plaintext same-host request. */\nfunction tokenCookie(token: string, secure: boolean): string {\n return `${COOKIE}=${encodeURIComponent(token)}; ${COOKIE_ATTRS}${secure ? \"; Secure\" : \"\"}`;\n}\n\n/**\n * When a request authenticated via a `?token=` query param and carries no cookie\n * yet, return the `Set-Cookie` to persist it; otherwise null. A `/?token=...`\n * link (QR / \"copy login link\") authorizes only that one navigation — without\n * this, the browser's follow-up /webui.css, /webui.js etc. carry no credential\n * and 401, serving a broken page. Setting the cookie on the HTML response lets\n * those same-origin sub-requests ride it automatically.\n */\nexport function queryTokenCookie(req: Request, url: URL, cfg: AuthConfig): string | null {\n const cur = activeToken(cfg);\n if (!cur) return null; // auth off — nothing to persist\n if (cookieToken(req) != null) return null; // already has a cookie session\n const q = url.searchParams.get(\"token\");\n return q && q === cur.token ? tokenCookie(cur.token, url.protocol === \"https:\") : null;\n}\n\nfunction cookieToken(req: Request): string | null {\n const header = req.headers.get(\"cookie\");\n if (!header) return null;\n for (const part of header.split(\";\")) {\n const [k, ...v] = part.trim().split(\"=\");\n if (k === COOKIE) return decodeURIComponent(v.join(\"=\"));\n }\n return null;\n}\n\nexport function extractToken(req: Request, url: URL): string | null {\n const auth = req.headers.get(\"authorization\");\n if (auth?.startsWith(\"Bearer \")) return auth.slice(7);\n return cookieToken(req) ?? url.searchParams.get(\"token\");\n}\n\n/** Whether auth is on at all (so the gate runs and the fetch shim is injected). */\nexport function authActive(cfg: AuthConfig): boolean {\n return !cfg.debug && (cfg.staticToken != null || cfg.db != null);\n}\n\n/** The currently-valid token and its expiry, or null when auth is off. */\nexport function activeToken(cfg: AuthConfig): { token: string; exp: number } | null {\n if (cfg.debug) return null;\n if (cfg.staticToken != null) return { token: cfg.staticToken, exp: Infinity };\n if (cfg.db) {\n const s = loadOrRotate(cfg.db, cfg.ttlMs, cfg.graceMs);\n return { token: s.token, exp: s.exp };\n }\n return null;\n}\n\nexport function hasValidToken(req: Request, url: URL, cfg: AuthConfig): boolean {\n const cur = activeToken(cfg);\n if (!cur) return true;\n return extractToken(req, url) === cur.token;\n}\n\n/**\n * Gate for /sync: accept the master token OR any durable per-peer grant issued\n * during pairing (see ./pairing.ts). Returns true when auth is off (--debug).\n * `db` is needed to look up grants even in staticToken mode where cfg.db is null.\n */\nexport function acceptsSyncToken(req: Request, url: URL, cfg: AuthConfig, db: Database): boolean {\n if (!authActive(cfg)) return true;\n const presented = extractToken(req, url);\n if (!presented) return false;\n const cur = activeToken(cfg);\n if (cur && presented === cur.token) return true;\n return isAcceptedGrant(db, presented);\n}\n\n/**\n * Token exchange: a holder of the current token (or the in-grace previous token)\n * gets the current token back. Managed mode only — returns null otherwise.\n */\nexport function renewToken(\n req: Request,\n url: URL,\n cfg: AuthConfig,\n): { token: string; exp: number } | null {\n if (cfg.debug || cfg.staticToken != null || !cfg.db) return null;\n const s = loadOrRotate(cfg.db, cfg.ttlMs, cfg.graceMs);\n const presented = extractToken(req, url);\n if (!presented) return null;\n if (presented === s.token) return { token: s.token, exp: s.exp };\n if (s.prev && presented === s.prev && Date.now() < s.prevExp) {\n return { token: s.token, exp: s.exp };\n }\n return null;\n}\n\n/** A browser navigation (so we can answer with an unlock page instead of a 401). */\nexport function wantsHtml(req: Request): boolean {\n return req.method === \"GET\" && (req.headers.get(\"accept\") ?? \"\").includes(\"text/html\");\n}\n\nconst HTML_HEADERS = { \"content-type\": \"text/html; charset=utf-8\" };\n\n/** Self-contained password prompt: stores token to localStorage + cookie, reloads. */\nexport function unlockPage(): string {\n return `<!doctype html><html lang=\"en\"><head>\n<meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n<title>Unlock</title>\n<style>\n body{font:14px/1.5 -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif;\n display:flex;min-height:100vh;margin:0;align-items:center;justify-content:center;\n background:#0d1117;color:#e6edf3}\n form{background:#161b22;border:1px solid #30363d;border-radius:10px;padding:28px;width:300px}\n h1{font-size:16px;margin:0 0 14px}\n input{width:100%;box-sizing:border-box;padding:8px;border-radius:6px;border:1px solid #30363d;\n background:#0d1117;color:inherit;margin-bottom:12px}\n button{width:100%;padding:8px;border:0;border-radius:6px;background:#238636;color:#fff;cursor:pointer}\n .err{color:#f85149;margin:0 0 12px;font-size:13px}\n</style></head><body>\n<form id=\"f\" style=\"display:none\">\n <h1>🔒 This server requires a token</h1>\n <p class=\"err\" id=\"e\" style=\"display:none\">Token rejected — try again.</p>\n <input id=\"t\" type=\"password\" placeholder=\"Token\" autocomplete=\"current-password\">\n <button type=\"submit\">Unlock</button>\n</form>\n<script>\n var KEY = \"mh_token\";\n function save(t) {\n localStorage.setItem(KEY, t);\n document.cookie = \"${COOKIE}=\" + encodeURIComponent(t) + \"; ${COOKIE_ATTRS}\" +\n (location.protocol === \"https:\" ? \"; Secure\" : \"\");\n }\n function showForm() {\n document.getElementById(\"f\").style.display = \"block\";\n // A leftover token means an attempt (or silent renewal) failed the gate.\n if (localStorage.getItem(KEY)) document.getElementById(\"e\").style.display = \"block\";\n document.getElementById(\"t\").focus();\n }\n document.getElementById(\"f\").addEventListener(\"submit\", function (ev) {\n ev.preventDefault();\n save(document.getElementById(\"t\").value);\n location.reload();\n });\n // Seamless renewal for top-level navigation: if we hold a token, try swapping\n // it for the current one before prompting. Covers the case where the token\n // rotated while this browser held the (in-grace) previous one.\n var stored = localStorage.getItem(KEY);\n if (stored) {\n fetch(\"${RENEW_PATH}\", { headers: { authorization: \"Bearer \" + stored } })\n .then(function (r) { return r.ok ? r.json() : null; })\n .then(function (d) { if (d && d.token) { save(d.token); location.reload(); } else { showForm(); } })\n .catch(showForm);\n } else {\n showForm();\n }\n</script>\n</body></html>`;\n}\n\n/**\n * The injected page runtime (built from src/webui/runtime.ts, served at\n * /mh-runtime.js). Carries what the old inline fetch shim did — same-origin\n * Bearer attach + transparent 401 renewal — plus the offline machinery:\n * service-worker registration and the local-replica RPC bridge that lets\n * hosted site pages read/write hub data with no network. Loaded synchronously\n * (classic script, head-first) so fetch is wrapped before page code runs.\n */\nconst RUNTIME_TAG = `<script src=\"/mh-runtime.js\"></script>`;\n\n/** Insert the runtime into an HTML document (right after <head>, else prepend). */\nexport function injectShim(html: string): string {\n const i = html.toLowerCase().indexOf(\"<head>\");\n if (i >= 0) return html.slice(0, i + 6) + RUNTIME_TAG + html.slice(i + 6);\n return RUNTIME_TAG + html;\n}\n\n/** Inject the page runtime into HTML responses. Unconditional (unlike the old\n * token-only shim): the offline bridge matters even in --debug mode where\n * auth is off — the token half simply no-ops without a stored token.\n *\n * When `req`/`url` are supplied and the navigation authenticated via a `?token=`\n * query param, persist that token as the mh_token cookie on this HTML response\n * so the browser's follow-up asset requests (/webui.css, /webui.js) carry it. */\nexport async function withShim(\n res: Response,\n cfg: AuthConfig,\n req?: Request,\n url?: URL,\n): Promise<Response> {\n const ct = res.headers.get(\"content-type\") ?? \"\";\n if (!ct.includes(\"text/html\")) return res;\n const html = injectShim(await res.text());\n const headers = new Headers(res.headers);\n if (req && url) {\n const cookie = queryTokenCookie(req, url, cfg);\n if (cookie) headers.append(\"set-cookie\", cookie);\n }\n return new Response(html, { status: res.status, headers });\n}\n\nexport function unauthorized(): Response {\n return Response.json({ error: \"unauthorized\" }, { status: 401 });\n}\n\nexport { HTML_HEADERS };\n",
131
- "import { fileURLToPath } from \"node:url\";\nimport { readdirSync, statSync } from \"node:fs\";\nimport { join, dirname } from \"node:path\";\n// Inlined as a string at build time (Bun text loader), so packaged builds and\n// compiled binaries carry the stylesheet with no extra asset file. In dev the\n// file is re-read from disk per request instead — see getCss().\nimport APP_CSS from \"../styles.css\" with { type: \"text\" };\nimport { ICON_192, ICON_512, ICON_180 } from \"./icons.ts\";\nimport pkg from \"../../../package.json\" with { type: \"json\" };\n\n// Serves the browser WebUI at `/`. Core never imports this module: it is wired\n// into the server through startServer's `ui` option (see core/sync/server.ts),\n// keeping presentation code out of the core layer and off the CLI startup path.\n// The Preact bundle itself is built or loaded lazily on the first request.\n\n/** True when running from the source tree (bun dev / bun test) rather than a\n * packaged dist build or a compiled binary. Switches asset serving to\n * rebuild-on-change so a browser refresh is enough to see edits. */\nconst RUNNING_FROM_SOURCE = import.meta.url.includes(\"/src/webui/\");\n\n/** The HTML shell. The Preact app and stylesheet are delivered separately as\n * /webui.js and /webui.css (both served below, never cached). */\nconst HTML = `<!doctype html>\n<html lang=\"zh\">\n<head>\n<meta charset=\"utf-8\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" />\n<!-- Mobile browser chrome (status/address bar) tints to theme-color; app.tsx\n keeps #theme-color-meta in sync with the active theme + visible surface. -->\n<meta name=\"theme-color\" id=\"theme-color-meta\" content=\"#ffffff\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"default\" />\n<title>Metahub</title>\n<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<!-- Load web fonts without blocking first paint: media=\"print\" keeps the\n stylesheet non-render-blocking, then onload flips it to \"all\". The page\n paints instantly with the system-font fallbacks baked into --ui/--mono and\n swaps to the web fonts when they arrive (or stays on system fonts offline).\n This is what kept the desktop cold-start white for seconds on slow networks. -->\n<link rel=\"stylesheet\" media=\"print\" onload=\"this.media='all'\" href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap\">\n<noscript><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap\"></noscript>\n<!-- FOUC guard: resolve the stored choice (system → OS preference) to an\n explicit data-resolved before first paint. CSS keys off data-resolved\n alone, so the dark palette exists exactly once — see styles.css. Dark also\n pre-tints the status bar (hex mirrors --bg) so the first frame isn't white. -->\n<script>try{var t=localStorage.getItem('mh-theme'),d=t==='dark'||(t!=='light'&&matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.dataset.resolved=d?'dark':'light';if(d)document.getElementById('theme-color-meta').content='#1a1a1c'}catch(e){}</script>\n<link rel=\"manifest\" href=\"/manifest.webmanifest\">\n<link rel=\"apple-touch-icon\" href=\"/icons/icon-180.png\">\n<link rel=\"stylesheet\" href=\"/webui.css\">\n</head>\n<body>\n<div id=\"app\"></div>\n<script type=\"module\" src=\"/webui.js\"></script>\n</body>\n</html>`;\n\n/** Bundles injected by `bun build --compile` binaries (e.g. the desktop\n * sidecar), where neither a sibling dist/ nor the source tree exists at\n * runtime — embedded at build time and handed in here. */\nconst injected: Record<string, string | null> = {\n js: null,\n sw: null,\n dbWorker: null,\n runtime: null,\n sdk: null,\n};\nlet injectedWasm: ArrayBuffer | null = null;\n\nexport function setWebuiBundle(bundle: {\n js: string;\n sw: string;\n dbWorker: string;\n runtime: string;\n sdk: string;\n wasm: Uint8Array;\n}): void {\n injected.js = bundle.js;\n injected.sw = bundle.sw;\n injected.dbWorker = bundle.dbWorker;\n injected.runtime = bundle.runtime;\n injected.sdk = bundle.sdk;\n // Normalize to a whole ArrayBuffer (what Response accepts under every lib).\n const w = bundle.wasm;\n injectedWasm =\n w.byteOffset === 0 && w.byteLength === w.buffer.byteLength\n ? (w.buffer as ArrayBuffer)\n : (w.slice().buffer as ArrayBuffer);\n}\n\n/** Newest mtime across the browser-bundle sources (src/webui/**.ts[x]).\n * ./server is skipped — server-side code never enters the browser bundle. */\nfunction newestSourceMtime(dir: string): number {\n let newest = 0;\n for (const e of readdirSync(dir, { withFileTypes: true })) {\n if (e.name === \"server\" || e.name.startsWith(\".\")) continue;\n const p = join(dir, e.name);\n if (e.isDirectory()) newest = Math.max(newest, newestSourceMtime(p));\n else if (/\\.tsx?$/.test(e.name)) newest = Math.max(newest, statSync(p).mtimeMs);\n }\n return newest;\n}\n\n/**\n * One resolver per browser bundle, all with the same three-way strategy:\n * embedded (compiled binary) > rebuild-on-change from source (dev: any newer\n * source file triggers a rebuild, so a refresh is enough) > prebuilt dist\n * sibling (packaged builds), process-cached.\n */\nfunction bundleGetter(opts: {\n key: keyof typeof injected;\n /** Dev entrypoint, relative to this file. */\n entry: string;\n /** Prebuilt artifact name in dist/ (sibling of the compiled assets.js). */\n dist: string;\n /** Extra source dirs (relative to repo src/) the dev mtime scan must cover. */\n extraDirs?: string[];\n}): () => Promise<string> {\n let cached: string | null = null;\n let cachedMtime = 0;\n return async () => {\n const fromBinary = injected[opts.key];\n if (fromBinary != null) return fromBinary;\n\n if (RUNNING_FROM_SOURCE) {\n const srcDir = fileURLToPath(new URL(\"..\", import.meta.url));\n let newest = newestSourceMtime(srcDir);\n for (const extra of opts.extraDirs ?? []) {\n newest = Math.max(newest, newestSourceMtime(fileURLToPath(new URL(extra, import.meta.url))));\n }\n if (cached == null || newest > cachedMtime) {\n const entry = fileURLToPath(new URL(opts.entry, import.meta.url));\n const res = await Bun.build({ entrypoints: [entry], target: \"browser\" });\n if (!res.success) throw new AggregateError(res.logs, `${opts.dist} build failed`);\n cached = await res.outputs[0]!.text();\n cachedMtime = newest;\n }\n return cached;\n }\n\n if (cached == null) {\n const prebuilt = Bun.file(fileURLToPath(new URL(`./${opts.dist}`, import.meta.url)));\n if (!(await prebuilt.exists())) {\n throw new Error(`${opts.dist} missing: run \\`bun run build\\``);\n }\n cached = await prebuilt.text();\n }\n return cached;\n };\n}\n\nconst getJs = bundleGetter({ key: \"js\", entry: \"../app.tsx\", dist: \"webui.js\" });\nconst getSwRaw = bundleGetter({ key: \"sw\", entry: \"../sw.ts\", dist: \"sw.js\" });\nconst getDbWorker = bundleGetter({ key: \"dbWorker\", entry: \"../data/db-worker.ts\", dist: \"db-worker.js\" });\nconst getRuntime = bundleGetter({ key: \"runtime\", entry: \"../runtime.ts\", dist: \"mh-runtime.js\" });\nconst getSdk = bundleGetter({ key: \"sdk\", entry: \"../../sdk/client.ts\", dist: \"metahub-sdk.js\", extraDirs: [\"../../sdk\"] });\n\n/** The stylesheet: read from disk per request in dev (so CSS edits land on the\n * next refresh), the build-time inlined copy otherwise. */\nasync function getCss(): Promise<string> {\n if (RUNNING_FROM_SOURCE) {\n return Bun.file(fileURLToPath(new URL(\"../styles.css\", import.meta.url))).text();\n }\n return APP_CSS;\n}\n\n/** /webui.js with the package version stamped into the __MH_WEBUI_VERSION__\n * placeholder, so the data-blind PWA shell — which has no /api/version server\n * to ask — can still show its build version. Flows to every serve path (live\n * server, the static shell build via serveWebui, packaged dist, compiled\n * binary) the same way the SW version stamp does. */\nasync function getJsStamped(): Promise<string> {\n return (await getJs()).replaceAll(\"__MH_WEBUI_VERSION__\", pkg.version);\n}\n\n/** /sw.js with its cache version stamped in: a hash of the current js+css, so\n * any bundle change byte-diffs the worker (the browser's update trigger) and\n * stale shell caches are dropped on activation. Hashing the *stamped* js means\n * a version-only bump (identical code) still busts the shell cache. */\nasync function getSw(): Promise<string> {\n const [raw, js, css] = await Promise.all([getSwRaw(), getJsStamped(), getCss()]);\n const version = new Bun.CryptoHasher(\"sha256\").update(js).update(css).digest(\"hex\").slice(0, 16);\n return raw.replaceAll(\"__MH_SW_VERSION__\", version);\n}\n\n/** sqlite3.wasm bytes: embedded (compiled binary) > node_modules (dev) >\n * sibling dist copy (packaged; build.ts copies it next to the bundles). */\nasync function getWasm(): Promise<ArrayBuffer> {\n if (injectedWasm != null) return injectedWasm;\n const path = RUNNING_FROM_SOURCE\n ? join(\n dirname(Bun.resolveSync(\"@sqlite.org/sqlite-wasm\", fileURLToPath(new URL(\".\", import.meta.url)))),\n \"sqlite3.wasm\",\n )\n : fileURLToPath(new URL(\"./sqlite3.wasm\", import.meta.url));\n const f = Bun.file(path);\n if (!(await f.exists())) {\n throw new Error(`sqlite3.wasm missing at ${path} — run \\`bun install\\` / \\`bun run build\\``);\n }\n return f.arrayBuffer();\n}\n\n/** Web app manifest: installability metadata for add-to-home-screen/PWA. */\nconst MANIFEST = JSON.stringify({\n name: \"Metahub\",\n short_name: \"Metahub\",\n start_url: \"/\",\n scope: \"/\",\n display: \"standalone\",\n background_color: \"#ffffff\",\n theme_color: \"#ffffff\",\n icons: [\n { src: \"/icons/icon-192.png\", sizes: \"192x192\", type: \"image/png\" },\n { src: \"/icons/icon-512.png\", sizes: \"512x512\", type: \"image/png\" },\n ],\n});\n\nconst ICONS: Record<string, string> = {\n \"/icons/icon-192.png\": ICON_192,\n \"/icons/icon-512.png\": ICON_512,\n \"/icons/icon-180.png\": ICON_180,\n};\n\n/** Pre-build & cache the JS bundle ahead of the first request. In dev the first\n * `/webui.js` hit otherwise pays for a `Bun.build` (1–3s) that blocks the\n * WebUI's first paint; warming it right after the server starts listening\n * moves that cost off the cold-start critical path. In packaged builds the\n * bundle is already embedded via setWebuiBundle(), so this is a no-op. */\nexport async function warmWebui(): Promise<void> {\n try {\n await getJs();\n } catch {\n // best-effort: a failed warm just falls back to building on first request\n }\n}\n\n// Served by a local server to (mostly) one machine: `no-store` everywhere\n// trades a few KB per load for never needing a hard refresh after an update.\nfunction asset(body: string, contentType: string): Response {\n return new Response(body, {\n headers: { \"content-type\": contentType, \"cache-control\": \"no-store\" },\n });\n}\n\n/** Handle WebUI asset requests. Returns null for anything else so the caller\n * can fall through to the API routes. */\nexport async function serveWebui(req: Request): Promise<Response | null> {\n if (req.method !== \"GET\") return null;\n const { pathname } = new URL(req.url);\n\n if (pathname === \"/\") return asset(HTML, \"text/html; charset=utf-8\");\n if (pathname === \"/webui.css\") return asset(await getCss(), \"text/css; charset=utf-8\");\n if (pathname === \"/manifest.webmanifest\") return asset(MANIFEST, \"application/manifest+json\");\n const icon = ICONS[pathname];\n if (icon) {\n return new Response(Buffer.from(icon, \"base64\"), {\n // Icons never change within a deploy; let the browser keep them a day.\n headers: { \"content-type\": \"image/png\", \"cache-control\": \"public, max-age=86400\" },\n });\n }\n if (pathname === \"/sqlite3.wasm\") {\n try {\n return new Response(await getWasm(), {\n // ~1MB and changes only on dependency upgrades; the service worker\n // additionally keeps it cache-first for offline starts.\n headers: { \"content-type\": \"application/wasm\", \"cache-control\": \"public, max-age=86400\" },\n });\n } catch (e) {\n console.error(\"[webui] failed to serve /sqlite3.wasm —\", e);\n return new Response(`sqlite3.wasm unavailable: ${e}`, { status: 500 });\n }\n }\n const script: Record<string, () => Promise<string>> = {\n \"/webui.js\": getJsStamped,\n \"/sw.js\": getSw,\n \"/db-worker.js\": getDbWorker,\n \"/mh-runtime.js\": getRuntime,\n \"/metahub-sdk.js\": getSdk,\n };\n const getter = script[pathname];\n if (getter) {\n try {\n return asset(await getter(), \"text/javascript; charset=utf-8\");\n } catch (e) {\n // This catch is the only thing between the error and oblivion: Bun only\n // auto-logs *uncaught* handler errors, and we catch this one. Log the full\n // error object (not `${e}`) so getJs's AggregateError sub-logs surface —\n // otherwise the 500 lives solely in the response body, never the logs.\n console.error(`[webui] failed to serve ${pathname} —`, e);\n return new Response(`webui build failed: ${e}`, { status: 500 });\n }\n }\n return null;\n}\n",
133
+ "// Token gate for the server. In --debug mode auth is disabled entirely. Otherwise\n// a single token guards every request. A token may arrive three ways so both\n// programmatic clients and browsers work:\n// - Authorization: Bearer <token> (API clients, and the injected fetch shim)\n// - Cookie: mh_token=<token> (browser top-level navigations)\n// - ?token=<token> (links / quick curl testing)\n// Browsers without a token get an unlock page that stores the password to\n// localStorage + a cookie and reloads; served HTML then gets a fetch shim that\n// re-attaches the token as a Bearer header on same-origin API calls.\n\nimport type { Database } from \"bun:sqlite\";\nimport { loadOrRotate } from \"./token.ts\";\nimport { isAcceptedGrant } from \"./pairing.ts\";\nimport { RENEW_PATH } from \"./protocol.ts\";\n\n// Three modes:\n// debug — auth off entirely.\n// staticToken — fixed token from --token/env; not persisted, never expires.\n// db (managed) — persistent, rotating token in ~/.metahub (see ./token.ts).\nexport interface AuthConfig {\n debug: boolean;\n staticToken: string | null;\n db: Database | null;\n ttlMs: number;\n graceMs: number;\n}\n\nconst COOKIE = \"mh_token\";\n/** Shared cookie attributes for the token cookie (server Set-Cookie and the\n * unlock page's client-side write must stay identical). */\nconst COOKIE_ATTRS = \"path=/; SameSite=Strict; Max-Age=31536000\";\n\n/** The `Set-Cookie` value that persists `token` as the browser's mh_token. Adds\n * `Secure` over TLS so a cookie carrying the master credential can't leak over an\n * accidental plaintext same-host request. */\nfunction tokenCookie(token: string, secure: boolean): string {\n return `${COOKIE}=${encodeURIComponent(token)}; ${COOKIE_ATTRS}${secure ? \"; Secure\" : \"\"}`;\n}\n\n/**\n * When a request authenticated via a `?token=` query param and carries no cookie\n * yet, return the `Set-Cookie` to persist it; otherwise null. A `/?token=...`\n * link (QR / \"copy login link\") authorizes only that one navigation — without\n * this, the browser's follow-up /webui.css, /webui.js etc. carry no credential\n * and 401, serving a broken page. Setting the cookie on the HTML response lets\n * those same-origin sub-requests ride it automatically.\n */\nexport function queryTokenCookie(req: Request, url: URL, cfg: AuthConfig): string | null {\n const cur = activeToken(cfg);\n if (!cur) return null; // auth off — nothing to persist\n if (cookieToken(req) != null) return null; // already has a cookie session\n const q = url.searchParams.get(\"token\");\n return q && q === cur.token ? tokenCookie(cur.token, url.protocol === \"https:\") : null;\n}\n\nfunction cookieToken(req: Request): string | null {\n const header = req.headers.get(\"cookie\");\n if (!header) return null;\n for (const part of header.split(\";\")) {\n const [k, ...v] = part.trim().split(\"=\");\n if (k === COOKIE) return decodeURIComponent(v.join(\"=\"));\n }\n return null;\n}\n\nexport function extractToken(req: Request, url: URL): string | null {\n const auth = req.headers.get(\"authorization\");\n if (auth?.startsWith(\"Bearer \")) return auth.slice(7);\n return cookieToken(req) ?? url.searchParams.get(\"token\");\n}\n\n/** Whether auth is on at all (so the gate runs and the fetch shim is injected). */\nexport function authActive(cfg: AuthConfig): boolean {\n return !cfg.debug && (cfg.staticToken != null || cfg.db != null);\n}\n\n/** The currently-valid token and its expiry, or null when auth is off. */\nexport function activeToken(cfg: AuthConfig): { token: string; exp: number } | null {\n if (cfg.debug) return null;\n if (cfg.staticToken != null) return { token: cfg.staticToken, exp: Infinity };\n if (cfg.db) {\n const s = loadOrRotate(cfg.db, cfg.ttlMs, cfg.graceMs);\n return { token: s.token, exp: s.exp };\n }\n return null;\n}\n\nexport function hasValidToken(req: Request, url: URL, cfg: AuthConfig): boolean {\n const cur = activeToken(cfg);\n if (!cur) return true;\n return extractToken(req, url) === cur.token;\n}\n\n/**\n * Gate for /sync: accept the master token OR any durable per-peer grant issued\n * during pairing (see ./pairing.ts). Returns true when auth is off (--debug).\n * `db` is needed to look up grants even in staticToken mode where cfg.db is null.\n */\nexport function acceptsSyncToken(req: Request, url: URL, cfg: AuthConfig, db: Database): boolean {\n if (!authActive(cfg)) return true;\n const presented = extractToken(req, url);\n if (!presented) return false;\n const cur = activeToken(cfg);\n if (cur && presented === cur.token) return true;\n return isAcceptedGrant(db, presented);\n}\n\n/**\n * Token exchange: a holder of the current token (or the in-grace previous token)\n * gets the current token back. Managed mode only — returns null otherwise.\n */\nexport function renewToken(\n req: Request,\n url: URL,\n cfg: AuthConfig,\n): { token: string; exp: number } | null {\n if (cfg.debug || cfg.staticToken != null || !cfg.db) return null;\n const s = loadOrRotate(cfg.db, cfg.ttlMs, cfg.graceMs);\n const presented = extractToken(req, url);\n if (!presented) return null;\n if (presented === s.token) return { token: s.token, exp: s.exp };\n if (s.prev && presented === s.prev && Date.now() < s.prevExp) {\n return { token: s.token, exp: s.exp };\n }\n return null;\n}\n\n/** A browser navigation (so we can answer with an unlock page instead of a 401). */\nexport function wantsHtml(req: Request): boolean {\n return req.method === \"GET\" && (req.headers.get(\"accept\") ?? \"\").includes(\"text/html\");\n}\n\nconst HTML_HEADERS = { \"content-type\": \"text/html; charset=utf-8\" };\n\n// The metahub cube mark + eye glyphs, copied as literal path data from\n// src/webui/icons.tsx (CUBE_OUTER/CUBE_INNER, eye/eyeOff) — the unlock page is\n// served *before* the WebUI bundle, inside the token gate, so it can't import\n// anything. Keep these in sync with icons.tsx if the mark changes.\nconst CUBE_SVG =\n '<path d=\"M21 7.5 12 2 3 7.5v9L12 22l9-5.5z\"/><path d=\"m3 7.5 9 5.5 9-5.5M12 22v-9\"/>';\nconst EYE_SVG = '<path d=\"M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/>';\nconst EYE_OFF_SVG =\n '<path d=\"M4 4l16 16M9.5 9.5a3 3 0 0 0 4 4M6.5 6.7C4.5 8 3 10 2 12c2 4 6 7 10 7 1.6 0 3-.4 4.4-1.1M9.5 5.2A9.7 9.7 0 0 1 12 5c4 0 8 3 10 7-.6 1.3-1.5 2.5-2.5 3.5\"/>';\n\n// Two palettes mirrored *by literal value* from src/webui/styles.css :root and\n// :root[data-resolved=\"dark\"] — the page carries no stylesheet, so the tokens\n// it themes with are inlined here. Change styles.css → change these too.\nconst UNLOCK_CSS = `\n :root{color-scheme:light;\n --bg:#ffffff;--surface:#fbfbfa;--surface-2:#f1f1ef;--fg:#2c2c30;--fg-soft:#5b5b62;\n --muted:#75757f;--line:#ebebe8;--line-strong:#dededb;--accent:#4a55d6;--accent-fg:#ffffff;\n --accent-soft:#eef0ff;--danger:#d6473b;--danger-soft:#fdeceb;--code-bg:#f8f8f6}\n :root[data-resolved=\"dark\"]{color-scheme:dark;\n --bg:#1a1a1c;--surface:#202022;--surface-2:#2a2a2d;--fg:#e6e6e9;--fg-soft:#b4b4bb;\n --muted:#8b8b95;--line:#2c2c30;--line-strong:#3a3a40;--accent:#7b86ff;--accent-fg:#14141a;\n --accent-soft:#23243a;--danger:#f87168;--danger-soft:#341e1c;--code-bg:#26262a}\n *{box-sizing:border-box}\n html,body{margin:0;min-height:100%}\n body{font-family:\"Hanken Grotesk\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"PingFang SC\",\"Microsoft YaHei\",sans-serif;\n color:var(--fg);background:var(--bg);line-height:1.55;\n display:flex;align-items:center;justify-content:center;min-height:100dvh;\n padding:calc(24px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));\n -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow:hidden}\n /* Ambient wash: two faint accent blooms behind the card. */\n body::before{content:\"\";position:fixed;inset:0;pointer-events:none;z-index:0;\n background:\n radial-gradient(58vmax 58vmax at 14% -8%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 60%),\n radial-gradient(50vmax 50vmax at 108% 112%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 55%)}\n .card{position:relative;z-index:1;width:100%;max-width:420px;background:var(--surface);\n border:1px solid var(--line);border-radius:18px;padding:32px 26px 26px;\n box-shadow:0 24px 60px rgba(20,20,40,.14),0 4px 14px rgba(20,20,40,.06);\n animation:rise .45s cubic-bezier(.2,.7,.3,1) both}\n @keyframes rise{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}\n .brand{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;\n background:var(--accent-soft);color:var(--accent);margin-bottom:18px}\n .brand svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;\n stroke-linecap:round;stroke-linejoin:round}\n .brand path{stroke-dasharray:120;stroke-dashoffset:120;animation:draw .9s .12s ease forwards}\n @keyframes draw{to{stroke-dashoffset:0}}\n h1{font-size:21px;font-weight:650;letter-spacing:-.01em;margin:0 0 8px}\n .sub{color:var(--muted);font-size:13.5px;margin:0 0 22px;line-height:1.6}\n .sub code{font-family:\"JetBrains Mono\",ui-monospace,SFMono-Regular,monospace;font-size:12.5px;\n background:var(--code-bg);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--fg-soft);\n white-space:nowrap}\n .field{position:relative;display:flex;align-items:center}\n input{width:100%;height:50px;padding:0 48px 0 15px;font-size:16px; /* 16px: never let iOS Safari zoom on focus */\n font-family:\"JetBrains Mono\",ui-monospace,SFMono-Regular,monospace;letter-spacing:.01em;\n color:var(--fg);background:var(--bg);border:1.5px solid var(--line-strong);border-radius:12px;\n outline:none;transition:border-color .15s,box-shadow .15s}\n input::placeholder{font-family:var(--ui,inherit);letter-spacing:normal;color:var(--muted);opacity:.8}\n input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}\n .card.bad input{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 20%,transparent)}\n .card.bad .field{animation:shake .34s cubic-bezier(.36,.07,.19,.97)}\n @keyframes shake{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}\n 30%,50%,70%{transform:translateX(-5px)}40%,60%{transform:translateX(5px)}}\n .peek{position:absolute;right:6px;width:40px;height:40px;border:0;background:none;cursor:pointer;\n color:var(--muted);display:flex;align-items:center;justify-content:center;border-radius:9px}\n .peek:hover{color:var(--fg-soft)}\n .peek svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;\n stroke-linecap:round;stroke-linejoin:round}\n .err{color:var(--danger);font-size:13px;font-weight:500;margin:11px 2px 0;\n display:flex;gap:6px;align-items:center;animation:fade .2s ease both}\n @keyframes fade{from{opacity:0}to{opacity:1}}\n button.go{width:100%;height:48px;margin-top:20px;border:0;border-radius:12px;cursor:pointer;\n background:var(--accent);color:var(--accent-fg);font-size:15px;font-weight:600;font-family:inherit;\n display:flex;align-items:center;justify-content:center;gap:9px;\n transition:filter .15s,transform .05s}\n button.go:hover{filter:brightness(1.06)}\n button.go:active{transform:translateY(1px)}\n button.go:disabled{opacity:.7;cursor:default}\n .spin{width:17px;height:17px;border:2px solid color-mix(in srgb,var(--accent-fg) 45%,transparent);\n border-top-color:var(--accent-fg);border-radius:50%;animation:spin .7s linear infinite}\n /* Full-page loader shown while a silent renewal is in flight. */\n .boot{position:fixed;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:var(--bg)}\n .boot svg{width:40px;height:40px;fill:none;stroke:var(--accent);stroke-width:1.4;\n stroke-linecap:round;stroke-linejoin:round;animation:breathe 1.5s ease-in-out infinite}\n @keyframes breathe{0%,100%{opacity:.35;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}\n @keyframes spin{to{transform:rotate(360deg)}}\n @media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important}\n .brand path{stroke-dashoffset:0}}\n`;\n\n/** Self-contained token gate: themed to match the WebUI (light/dark, metahub\n * mark), validates the token before entering, and stores it to localStorage +\n * cookie on success. No stylesheet/bundle — it runs inside the auth gate. */\nexport function unlockPage(): string {\n return `<!doctype html><html lang=\"zh-CN\"><head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,viewport-fit=cover\">\n<meta name=\"theme-color\" content=\"#ffffff\">\n<title>验证访问令牌 · metahub</title>\n<script>\n // FOUC-guard theme resolution, same key/logic as src/webui/theme.ts.\n try {\n var mt = localStorage.getItem(\"mh-theme\");\n var dark = mt === \"dark\" || (mt !== \"light\" && matchMedia(\"(prefers-color-scheme: dark)\").matches);\n document.documentElement.dataset.resolved = dark ? \"dark\" : \"light\";\n document.head.querySelector('meta[name=theme-color]').setAttribute(\"content\", dark ? \"#1a1a1c\" : \"#ffffff\");\n } catch (e) {}\n</script>\n<style>${UNLOCK_CSS}</style></head><body>\n<div class=\"boot\" id=\"boot\"><svg viewBox=\"0 0 24 24\">${CUBE_SVG}</svg></div>\n<form class=\"card\" id=\"f\" style=\"display:none\" autocomplete=\"on\">\n <div class=\"brand\"><svg viewBox=\"0 0 24 24\">${CUBE_SVG}</svg></div>\n <h1>输入访问令牌</h1>\n <p class=\"sub\">此服务器已开启访问保护。在已登录设备的「设置 → 设备与授权」获取登录链接或二维码,或在服务器上运行 <code>mh token show</code>。</p>\n <div class=\"field\">\n <input id=\"t\" type=\"password\" placeholder=\"粘贴访问令牌或登录链接\"\n autocomplete=\"current-password\" autocapitalize=\"off\" autocorrect=\"off\" spellcheck=\"false\" enterkeyhint=\"go\">\n <button type=\"button\" class=\"peek\" id=\"peek\" aria-label=\"显示令牌\"><svg viewBox=\"0 0 24 24\">${EYE_SVG}</svg></button>\n </div>\n <p class=\"err\" id=\"e\" style=\"display:none\"></p>\n <button type=\"submit\" class=\"go\" id=\"go\">解锁并进入</button>\n</form>\n<script>\n var KEY = \"mh_token\";\n var form = document.getElementById(\"f\"), boot = document.getElementById(\"boot\");\n var input = document.getElementById(\"t\"), errEl = document.getElementById(\"e\");\n var goBtn = document.getElementById(\"go\"), peek = document.getElementById(\"peek\");\n\n function save(t) {\n localStorage.setItem(KEY, t);\n document.cookie = \"${COOKIE}=\" + encodeURIComponent(t) + \"; ${COOKIE_ATTRS}\" +\n (location.protocol === \"https:\" ? \"; Secure\" : \"\");\n }\n // Accept a pasted \"…/?token=xxx\" login link, not just the bare token.\n function normalize(v) {\n v = (v || \"\").trim();\n var m = /[?&#]token=([^&\\\\s]+)/.exec(v);\n if (m) { try { return decodeURIComponent(m[1]); } catch (e) { return m[1]; } }\n return v;\n }\n function showForm(msg) {\n boot.style.display = \"none\";\n form.style.display = \"block\";\n if (msg) { errEl.textContent = msg; errEl.style.display = \"flex\"; }\n input.focus();\n }\n function fail(msg) {\n goBtn.disabled = false;\n goBtn.innerHTML = \"解锁并进入\";\n errEl.textContent = msg;\n errEl.style.display = \"flex\";\n form.classList.remove(\"bad\");\n void form.offsetWidth; // reflow so the shake animation restarts\n form.classList.add(\"bad\");\n input.focus();\n input.select();\n }\n peek.addEventListener(\"click\", function () {\n var pw = input.type === \"password\";\n input.type = pw ? \"text\" : \"password\";\n peek.innerHTML = '<svg viewBox=\"0 0 24 24\">' + (pw ? ${JSON.stringify(EYE_OFF_SVG)} : ${JSON.stringify(EYE_SVG)}) + \"</svg>\";\n peek.setAttribute(\"aria-label\", pw ? \"隐藏令牌\" : \"显示令牌\");\n input.focus();\n });\n input.addEventListener(\"input\", function () {\n if (errEl.style.display !== \"none\") { errEl.style.display = \"none\"; form.classList.remove(\"bad\"); }\n });\n\n form.addEventListener(\"submit\", function (ev) {\n ev.preventDefault();\n var token = normalize(input.value);\n if (!token) { fail(\"请输入访问令牌。\"); return; }\n goBtn.disabled = true;\n goBtn.innerHTML = '<span class=\"spin\"></span>验证中…';\n var hdr = { headers: { authorization: \"Bearer \" + token } };\n // Prefer the renewal endpoint (managed mode returns the canonical token,\n // also upgrading a pasted in-grace token). Fall back to a cheap\n // authenticated probe so we can reject a bad token *inline* instead of\n // storing it and reloading into another gate.\n fetch(\"${RENEW_PATH}\", hdr)\n .then(function (r) { return r.ok ? r.json() : null; })\n .then(function (d) {\n if (d && d.token) { save(d.token); location.reload(); return; }\n return fetch(\"/api/version\", hdr).then(function (r) {\n if (r.status === 401) { fail(\"令牌无效,请检查后重试。\"); return; }\n // 200 (static-token mode) or no UI (404) → trust it and reload.\n save(token); location.reload();\n });\n })\n .catch(function () { save(token); location.reload(); }); // network hiccup → old behavior\n });\n\n // Silent renewal on load: a held token may just need swapping for the current\n // one (rotation while this browser held the in-grace previous). Show the boot\n // loader meanwhile; drop to the form (with a hint) if it can't be renewed.\n var stored = localStorage.getItem(KEY);\n if (stored) {\n fetch(\"${RENEW_PATH}\", { headers: { authorization: \"Bearer \" + stored } })\n .then(function (r) { return r.ok ? r.json() : null; })\n .then(function (d) {\n if (d && d.token) { save(d.token); location.reload(); }\n else showForm(\"登录已过期,请重新输入令牌。\");\n })\n .catch(function () { showForm(\"\"); });\n } else {\n showForm(\"\");\n }\n</script>\n</body></html>`;\n}\n\n/**\n * The injected page runtime (built from src/webui/runtime.ts, served at\n * /mh-runtime.js). Carries what the old inline fetch shim did — same-origin\n * Bearer attach + transparent 401 renewal — plus the offline machinery:\n * service-worker registration and the local-replica RPC bridge that lets\n * hosted site pages read/write hub data with no network. Loaded synchronously\n * (classic script, head-first) so fetch is wrapped before page code runs.\n */\nconst RUNTIME_TAG = `<script src=\"/mh-runtime.js\"></script>`;\n\n/** Insert the runtime into an HTML document (right after <head>, else prepend). */\nexport function injectShim(html: string): string {\n const i = html.toLowerCase().indexOf(\"<head>\");\n if (i >= 0) return html.slice(0, i + 6) + RUNTIME_TAG + html.slice(i + 6);\n return RUNTIME_TAG + html;\n}\n\n/** Inject the page runtime into HTML responses. Unconditional (unlike the old\n * token-only shim): the offline bridge matters even in --debug mode where\n * auth is off — the token half simply no-ops without a stored token.\n *\n * When `req`/`url` are supplied and the navigation authenticated via a `?token=`\n * query param, persist that token as the mh_token cookie on this HTML response\n * so the browser's follow-up asset requests (/webui.css, /webui.js) carry it. */\nexport async function withShim(\n res: Response,\n cfg: AuthConfig,\n req?: Request,\n url?: URL,\n): Promise<Response> {\n const ct = res.headers.get(\"content-type\") ?? \"\";\n if (!ct.includes(\"text/html\")) return res;\n const html = injectShim(await res.text());\n const headers = new Headers(res.headers);\n if (req && url) {\n const cookie = queryTokenCookie(req, url, cfg);\n if (cookie) headers.append(\"set-cookie\", cookie);\n }\n return new Response(html, { status: res.status, headers });\n}\n\nexport function unauthorized(): Response {\n return Response.json({ error: \"unauthorized\" }, { status: 401 });\n}\n\nexport { HTML_HEADERS };\n",
134
+ "import { fileURLToPath } from \"node:url\";\nimport { readdirSync, statSync } from \"node:fs\";\nimport { join, dirname } from \"node:path\";\n// Inlined as a string at build time (Bun text loader), so packaged builds and\n// compiled binaries carry the stylesheet with no extra asset file. In dev the\n// file is re-read from disk per request instead — see getCss().\nimport APP_CSS from \"../styles.css\" with { type: \"text\" };\nimport { ICON_192, ICON_512, ICON_180 } from \"./icons.ts\";\nimport { FMT_PROVIDERS, type FmtProvider } from \"../fmt/manifest.ts\";\nimport pkg from \"../../../package.json\" with { type: \"json\" };\n\n// Serves the browser WebUI at `/`. Core never imports this module: it is wired\n// into the server through startServer's `ui` option (see core/sync/server.ts),\n// keeping presentation code out of the core layer and off the CLI startup path.\n// The Preact bundle itself is built or loaded lazily on the first request.\n\n/** True when running from the source tree (bun dev / bun test) rather than a\n * packaged dist build or a compiled binary. Switches asset serving to\n * rebuild-on-change so a browser refresh is enough to see edits. */\nconst RUNNING_FROM_SOURCE = import.meta.url.includes(\"/src/webui/\");\n\n/** The HTML shell. The Preact app and stylesheet are delivered separately as\n * /webui.js and /webui.css (both served below, never cached). */\nconst HTML = `<!doctype html>\n<html lang=\"zh\">\n<head>\n<meta charset=\"utf-8\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" />\n<!-- Mobile browser chrome (status/address bar) tints to theme-color; app.tsx\n keeps #theme-color-meta in sync with the active theme + visible surface. -->\n<meta name=\"theme-color\" id=\"theme-color-meta\" content=\"#ffffff\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"default\" />\n<title>Metahub</title>\n<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<!-- Load web fonts without blocking first paint: media=\"print\" keeps the\n stylesheet non-render-blocking, then onload flips it to \"all\". The page\n paints instantly with the system-font fallbacks baked into --ui/--mono and\n swaps to the web fonts when they arrive (or stays on system fonts offline).\n This is what kept the desktop cold-start white for seconds on slow networks. -->\n<link rel=\"stylesheet\" media=\"print\" onload=\"this.media='all'\" href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap\">\n<noscript><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap\"></noscript>\n<!-- FOUC guard: resolve the stored choice (system → OS preference) to an\n explicit data-resolved before first paint. CSS keys off data-resolved\n alone, so the dark palette exists exactly once — see styles.css. Dark also\n pre-tints the status bar (hex mirrors --bg) so the first frame isn't white. -->\n<script>try{var t=localStorage.getItem('mh-theme'),d=t==='dark'||(t!=='light'&&matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.dataset.resolved=d?'dark':'light';if(d)document.getElementById('theme-color-meta').content='#1a1a1c'}catch(e){}</script>\n<link rel=\"manifest\" href=\"/manifest.webmanifest\">\n<link rel=\"apple-touch-icon\" href=\"/icons/icon-180.png\">\n<link rel=\"stylesheet\" href=\"/webui.css\">\n</head>\n<body>\n<div id=\"app\"></div>\n<script type=\"module\" src=\"/webui.js\"></script>\n</body>\n</html>`;\n\n/** Bundles injected by `bun build --compile` binaries (e.g. the desktop\n * sidecar), where neither a sibling dist/ nor the source tree exists at\n * runtime — embedded at build time and handed in here. */\nconst injected: Record<string, string | null> = {\n js: null,\n sw: null,\n dbWorker: null,\n runtime: null,\n sdk: null,\n // fmt_<id> keys for the lazy 格式化 provider bundles are added below from\n // the manifest, so bundleGetter serves them through the same three-way path.\n};\nlet injectedWasm: ArrayBuffer | null = null;\n/** Embedded 格式化 wasm sidecars, keyed by serve route (fmt/manifest.ts). */\nconst injectedFmtWasm: Record<string, ArrayBuffer> = {};\n\n/** Normalize to a whole ArrayBuffer (what Response accepts under every lib). */\nfunction toArrayBuffer(w: Uint8Array): ArrayBuffer {\n return w.byteOffset === 0 && w.byteLength === w.buffer.byteLength\n ? (w.buffer as ArrayBuffer)\n : (w.slice().buffer as ArrayBuffer);\n}\n\nexport function setWebuiBundle(bundle: {\n js: string;\n sw: string;\n dbWorker: string;\n runtime: string;\n sdk: string;\n wasm: Uint8Array;\n /** Lazy 格式化 provider assets keyed by serve route (fmt/manifest.ts).\n * Optional so embedders built before a provider existed keep working — a\n * missing asset 500s only when that language's 格式化 is actually used. */\n fmt?: Record<string, string>;\n fmtWasm?: Record<string, Uint8Array>;\n}): void {\n injected.js = bundle.js;\n injected.sw = bundle.sw;\n injected.dbWorker = bundle.dbWorker;\n injected.runtime = bundle.runtime;\n injected.sdk = bundle.sdk;\n injectedWasm = toArrayBuffer(bundle.wasm);\n for (const p of FMT_PROVIDERS) {\n const js = bundle.fmt?.[p.js];\n if (js != null) injected[`fmt_${p.id}`] = js;\n const w = p.wasm && bundle.fmtWasm?.[p.wasm.route];\n if (p.wasm && w) injectedFmtWasm[p.wasm.route] = toArrayBuffer(w);\n }\n}\n\n/** Newest mtime across the browser-bundle sources (src/webui/**.ts[x]).\n * ./server is skipped — server-side code never enters the browser bundle. */\nfunction newestSourceMtime(dir: string): number {\n let newest = 0;\n for (const e of readdirSync(dir, { withFileTypes: true })) {\n if (e.name === \"server\" || e.name.startsWith(\".\")) continue;\n const p = join(dir, e.name);\n if (e.isDirectory()) newest = Math.max(newest, newestSourceMtime(p));\n else if (/\\.tsx?$/.test(e.name)) newest = Math.max(newest, statSync(p).mtimeMs);\n }\n return newest;\n}\n\n/**\n * One resolver per browser bundle, all with the same three-way strategy:\n * embedded (compiled binary) > rebuild-on-change from source (dev: any newer\n * source file triggers a rebuild, so a refresh is enough) > prebuilt dist\n * sibling (packaged builds), process-cached.\n */\nfunction bundleGetter(opts: {\n key: keyof typeof injected;\n /** Dev entrypoint, relative to this file. */\n entry: string;\n /** Prebuilt artifact name in dist/ (sibling of the compiled assets.js). */\n dist: string;\n /** Extra source dirs (relative to repo src/) the dev mtime scan must cover. */\n extraDirs?: string[];\n}): () => Promise<string> {\n let cached: string | null = null;\n let cachedMtime = 0;\n return async () => {\n const fromBinary = injected[opts.key];\n if (fromBinary != null) return fromBinary;\n\n if (RUNNING_FROM_SOURCE) {\n const srcDir = fileURLToPath(new URL(\"..\", import.meta.url));\n let newest = newestSourceMtime(srcDir);\n for (const extra of opts.extraDirs ?? []) {\n newest = Math.max(newest, newestSourceMtime(fileURLToPath(new URL(extra, import.meta.url))));\n }\n if (cached == null || newest > cachedMtime) {\n const entry = fileURLToPath(new URL(opts.entry, import.meta.url));\n const res = await Bun.build({ entrypoints: [entry], target: \"browser\" });\n if (!res.success) throw new AggregateError(res.logs, `${opts.dist} build failed`);\n cached = await res.outputs[0]!.text();\n cachedMtime = newest;\n }\n return cached;\n }\n\n if (cached == null) {\n const prebuilt = Bun.file(fileURLToPath(new URL(`./${opts.dist}`, import.meta.url)));\n if (!(await prebuilt.exists())) {\n throw new Error(`${opts.dist} missing: run \\`bun run build\\``);\n }\n cached = await prebuilt.text();\n }\n return cached;\n };\n}\n\nconst getJs = bundleGetter({ key: \"js\", entry: \"../app.tsx\", dist: \"webui.js\" });\nconst getSwRaw = bundleGetter({ key: \"sw\", entry: \"../sw.ts\", dist: \"sw.js\" });\n\n// Lazy 格式化 provider bundles: one getter per manifest entry (fmt/manifest.ts\n// is the single source of truth shared with the build and the static shell).\n// webui.js only references these routes through a runtime variable, so nothing\n// here is ever inlined into the main bundle.\nconst fmtJs: Record<string, () => Promise<string>> = {};\nfor (const p of FMT_PROVIDERS) {\n injected[`fmt_${p.id}`] = null;\n fmtJs[p.js] = bundleGetter({ key: `fmt_${p.id}`, entry: `../${p.entry}`, dist: p.js.slice(1) });\n}\nconst fmtWasmByRoute: Record<string, FmtProvider> = Object.fromEntries(\n FMT_PROVIDERS.filter((p) => p.wasm).map((p) => [p.wasm!.route, p]),\n);\n\n/** 格式化 wasm sidecar bytes: same three-way strategy as sqlite3.wasm. */\nasync function getFmtWasm(p: FmtProvider): Promise<ArrayBuffer> {\n const w = p.wasm!;\n const embedded = injectedFmtWasm[w.route];\n if (embedded != null) return embedded;\n const path = RUNNING_FROM_SOURCE\n ? join(\n dirname(Bun.resolveSync(w.pkg, fileURLToPath(new URL(\".\", import.meta.url)))),\n w.file,\n )\n : fileURLToPath(new URL(`.${w.route}`, import.meta.url));\n const f = Bun.file(path);\n if (!(await f.exists())) {\n throw new Error(`${w.route} missing at ${path} — run \\`bun install\\` / \\`bun run build\\``);\n }\n return f.arrayBuffer();\n}\nconst getDbWorker = bundleGetter({ key: \"dbWorker\", entry: \"../data/db-worker.ts\", dist: \"db-worker.js\" });\nconst getRuntime = bundleGetter({ key: \"runtime\", entry: \"../runtime.ts\", dist: \"mh-runtime.js\" });\nconst getSdk = bundleGetter({ key: \"sdk\", entry: \"../../sdk/client.ts\", dist: \"metahub-sdk.js\", extraDirs: [\"../../sdk\"] });\n\n/** The stylesheet: read from disk per request in dev (so CSS edits land on the\n * next refresh), the build-time inlined copy otherwise. */\nasync function getCss(): Promise<string> {\n if (RUNNING_FROM_SOURCE) {\n return Bun.file(fileURLToPath(new URL(\"../styles.css\", import.meta.url))).text();\n }\n return APP_CSS;\n}\n\n/** /webui.js with the package version stamped into the __MH_WEBUI_VERSION__\n * placeholder, so the data-blind PWA shell — which has no /api/version server\n * to ask — can still show its build version. Flows to every serve path (live\n * server, the static shell build via serveWebui, packaged dist, compiled\n * binary) the same way the SW version stamp does. */\nasync function getJsStamped(): Promise<string> {\n return (await getJs()).replaceAll(\"__MH_WEBUI_VERSION__\", pkg.version);\n}\n\n/** /sw.js with its cache version stamped in: a hash of the current js+css, so\n * any bundle change byte-diffs the worker (the browser's update trigger) and\n * stale shell caches are dropped on activation. Hashing the *stamped* js means\n * a version-only bump (identical code) still busts the shell cache. */\nasync function getSw(): Promise<string> {\n const [raw, js, css] = await Promise.all([getSwRaw(), getJsStamped(), getCss()]);\n const version = new Bun.CryptoHasher(\"sha256\").update(js).update(css).digest(\"hex\").slice(0, 16);\n return raw.replaceAll(\"__MH_SW_VERSION__\", version);\n}\n\n/** sqlite3.wasm bytes: embedded (compiled binary) > node_modules (dev) >\n * sibling dist copy (packaged; build.ts copies it next to the bundles). */\nasync function getWasm(): Promise<ArrayBuffer> {\n if (injectedWasm != null) return injectedWasm;\n const path = RUNNING_FROM_SOURCE\n ? join(\n dirname(Bun.resolveSync(\"@sqlite.org/sqlite-wasm\", fileURLToPath(new URL(\".\", import.meta.url)))),\n \"sqlite3.wasm\",\n )\n : fileURLToPath(new URL(\"./sqlite3.wasm\", import.meta.url));\n const f = Bun.file(path);\n if (!(await f.exists())) {\n throw new Error(`sqlite3.wasm missing at ${path} — run \\`bun install\\` / \\`bun run build\\``);\n }\n return f.arrayBuffer();\n}\n\n/** Web app manifest: installability metadata for add-to-home-screen/PWA. */\nconst MANIFEST = JSON.stringify({\n name: \"Metahub\",\n short_name: \"Metahub\",\n start_url: \"/\",\n scope: \"/\",\n display: \"standalone\",\n background_color: \"#ffffff\",\n theme_color: \"#ffffff\",\n icons: [\n { src: \"/icons/icon-192.png\", sizes: \"192x192\", type: \"image/png\" },\n { src: \"/icons/icon-512.png\", sizes: \"512x512\", type: \"image/png\" },\n ],\n});\n\nconst ICONS: Record<string, string> = {\n \"/icons/icon-192.png\": ICON_192,\n \"/icons/icon-512.png\": ICON_512,\n \"/icons/icon-180.png\": ICON_180,\n};\n\n/** Pre-build & cache the JS bundle ahead of the first request. In dev the first\n * `/webui.js` hit otherwise pays for a `Bun.build` (1–3s) that blocks the\n * WebUI's first paint; warming it right after the server starts listening\n * moves that cost off the cold-start critical path. In packaged builds the\n * bundle is already embedded via setWebuiBundle(), so this is a no-op. */\nexport async function warmWebui(): Promise<void> {\n try {\n await getJs();\n } catch {\n // best-effort: a failed warm just falls back to building on first request\n }\n}\n\n// Served by a local server to (mostly) one machine: `no-store` everywhere\n// trades a few KB per load for never needing a hard refresh after an update.\nfunction asset(body: string, contentType: string): Response {\n return new Response(body, {\n headers: { \"content-type\": contentType, \"cache-control\": \"no-store\" },\n });\n}\n\n/** Handle WebUI asset requests. Returns null for anything else so the caller\n * can fall through to the API routes. */\nexport async function serveWebui(req: Request): Promise<Response | null> {\n if (req.method !== \"GET\") return null;\n const { pathname } = new URL(req.url);\n\n if (pathname === \"/\") return asset(HTML, \"text/html; charset=utf-8\");\n if (pathname === \"/webui.css\") return asset(await getCss(), \"text/css; charset=utf-8\");\n if (pathname === \"/manifest.webmanifest\") return asset(MANIFEST, \"application/manifest+json\");\n const icon = ICONS[pathname];\n if (icon) {\n return new Response(Buffer.from(icon, \"base64\"), {\n // Icons never change within a deploy; let the browser keep them a day.\n headers: { \"content-type\": \"image/png\", \"cache-control\": \"public, max-age=86400\" },\n });\n }\n if (pathname === \"/sqlite3.wasm\") {\n try {\n return new Response(await getWasm(), {\n // ~1MB and changes only on dependency upgrades; the service worker\n // additionally keeps it cache-first for offline starts.\n headers: { \"content-type\": \"application/wasm\", \"cache-control\": \"public, max-age=86400\" },\n });\n } catch (e) {\n console.error(\"[webui] failed to serve /sqlite3.wasm —\", e);\n return new Response(`sqlite3.wasm unavailable: ${e}`, { status: 500 });\n }\n }\n const fmtWasmProvider = fmtWasmByRoute[pathname];\n if (fmtWasmProvider) {\n try {\n return new Response(await getFmtWasm(fmtWasmProvider), {\n // Immutable within a dependency version (like sqlite3.wasm); the SW\n // keeps it cache-first in the versioned shell cache after first use.\n headers: { \"content-type\": \"application/wasm\", \"cache-control\": \"public, max-age=86400\" },\n });\n } catch (e) {\n console.error(`[webui] failed to serve ${pathname} —`, e);\n return new Response(`${pathname} unavailable: ${e}`, { status: 500 });\n }\n }\n const script: Record<string, () => Promise<string>> = {\n \"/webui.js\": getJsStamped,\n \"/sw.js\": getSw,\n \"/db-worker.js\": getDbWorker,\n \"/mh-runtime.js\": getRuntime,\n \"/metahub-sdk.js\": getSdk,\n ...fmtJs,\n };\n const getter = script[pathname];\n if (getter) {\n try {\n return asset(await getter(), \"text/javascript; charset=utf-8\");\n } catch (e) {\n // This catch is the only thing between the error and oblivion: Bun only\n // auto-logs *uncaught* handler errors, and we catch this one. Log the full\n // error object (not `${e}`) so getJs's AggregateError sub-logs surface —\n // otherwise the 500 lives solely in the response body, never the logs.\n console.error(`[webui] failed to serve ${pathname} —`, e);\n return new Response(`webui build failed: ${e}`, { status: 500 });\n }\n }\n return null;\n}\n",
132
135
  "// PWA icons (PNG, base64) — resized from apps/desktop/build/icon.png (1024px).\n// Embedded as strings so packaged builds and compiled binaries need no asset files.\n\nexport const ICON_192 = \"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\";\n\nexport const ICON_512 = \"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\";\n\nexport const ICON_180 = \"iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAtKADAAQAAAABAAAAtAAAAABW1ZZ5AAAZyElEQVR4Ae1da7AVVXZe3X1e99yLQNDRCIwP1FEHlWEQYyKpjGVUsIjMKGMMjq9iwDyoVE2qJGX+UPlhRiuZqoQZo0gEB/ExTKZQo1edV6IkBqUYfGJGER0QJULuBe7rPLo76+tzG+7j3HtO7919us89a1GHc273Xnut9e2vd+9X7yYSEQQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEgfERMMY/ncyzq1a52Wl279SC6UwxbXeKYWVyVC4n09lm8SqVItcuDjiW0Z11zO7DVnvX2rVGoVnc9/1MPKFd1zXuXnnk7EwmM5ccmueQczEfO8skOsUlo50DyZpmir9cPyb5VkLAIMfxKoWCQW6vQ/S5YRh7TTLfJJN2FIvFnfc/NPlDPpZooBNL6HtW9M5lIBeTYVzLZJ1tWZkOwzDJdZnSrs3fNh92B2mcaIyV6BWPkkEeIQz+Niwy+eNjbtvFHiLjbcb8Ba5Ynr13XfvOeHwc32qiCL16xf9NTlltS7gGvpMM9/JUqi3tOCWv5gCRReJDAMTGndA009y66y+Ra7zKtfUjZbt/633rfutIfJ4Nt5wIQoPIlplbzlXCCstMn0dMXq4RuPaVmnd4cSXjL9TjfMfkCtsk2yn9mm+Z62xnYH0SiB0rodescc3CZ73LDNO6xzIz51dqY774k1Fu4kUNBEAe1Nj42E7xPdex782e1r55zRojtttpbIRevaLnIsuy7jNNayGaE3yl14BPTicZAb6zeu1tx7E7bdtefd+6jrfi8DcWQv/1yt67TNO4l2vlqaVyfxxxi82IEEin2lBbdzmOe893H2p/MCIzY2bbUEKvWnX4pPZS9h9TZuZ2r3mBkQqRCYcARke8zqNT3NibLvzl2rXTjjYqyIYR+jt/dnhmzsk+ZqXafr9U6uP4pKXcqEKOx45B6XSe7HL/ywNm4ZbvPTBtXyP8aAih/2rl4QszRm6LZWUvLJdBZpFWQSCVYlLbhXeL7sDSf3ho2rtRxx05oe9efuwCK2U9y2OYs8r2QNTxSP4JRCBl5TCXsMcu24vvXz9pd5QuRkrou5f3zTBN5yUes7xAyBxlMSY/b5Ca5xZ2O4559f3r8/uj8piXREQjd9/5+STTsh9PpXJC5mggbqpcUaGBC+AEuBGV8xER2jXMVGYtt58WlKTNHFXZNV2+4AI4AW7woEAkrYNICM2TJissq+22ymhG0+EuDkeIADgBboAjUZgJ/SpZ/e1jX+Ypo228cGXK4HLEKPyWPJsYASxy4gVo3fzfFfc9POmdMEMJtYZeutS1eBL7eykrI2QOs5QmWF6o6DyOMFfAmTDDC5XQZ0w+enPayl0t09lhFtHEzAscAVfAmTAjDK3JsWrZ4ZPa2lM7LCN9riw0CrOIJm5eWNBku6X3+3vL89ZuDmd6PLQaOp9PL09beSHzxOVf6JGh4gNnwJ2wMg+lhsaio1x/aidfcbOw6EhEEKgXgcpa6tKegbby3DAWMeHpUm1hMi/hx6Vm8aM52nlJBq2FAGppcCfX37+EI/+hbvTaTQ48dcLPqn4bj02JCAJKCDB3wCFwSUl/iJJ2Br2fdF9smuZlZX4GUEQQUEEA3AGHwCUV/aE62k0O1zWvT6dy6VKpd2i+8lsQCICAy82O9nSx3Hc9K+0KoDgqqVYNvXTpjyzDdRdKR3AUrnIgIALgELgETgVUHZZcq4aecfLVZ7hFmm3zzI88fzIMV/kjIAKDHJoNTrHqhwHVjyfXqqGtAs2zrFy7bAJzHE/5oYgAOAQugVOKWXhqWoTmrbrmmbzZiIggEAYCHpeYUzp5aTU5yDEucrGniLQ3dMpAdAcRcB3mEnNKBxDl6nXVQjfLu1SehY0TRQSBMBAAl8ApcEs1P2VCT5reO4U3NzvZ2wVU1XoEerhZ8CB95RNB/s2eZZLxqXDJOLnCLTWklZscBXNgKrmpDiwGScqmiiVeRsI7wVIux9sJ8qVaLLhU5GO8lzcP3KsBNFG0cDfHnvDpNFEG91b+e2CAS44ZjmPJEPbHcDs8bhEdVPFJmdBu0ZhiYv1fApocKCxcWJdcmqZLfzdDp56OrV8NOtLt0Lu7SvTatiIdO+JQKh3KWiwVnGPVKZdcmjTZpPlXZOjCOWmaPMXkbQVcOnjAodf/q0jv7KxskBn7Rc9XGe9LnXaYW6qAKROaHLPNsAyTcYlVQOYs18jfvCNPX7lseFVz8qkmzfpSiuYvyNAT6/to7/tlro1ai9QlJvNZ56bo5uV5vtCHz1l84bctuuirafrV9hL9aEMfFbjGjpPUoJKJjaiZW6qkUr4Rc+AxU5lDZg/QxLjpzrZRZB4KCAryjlXtdBp/t9KrWBArYkbsI8k8FB9UBMAQWCagVHFRKXNLmdBDAYnrd6ns0uyvpGnOfN58u4ZMnmrSspV5yufxLpEaiSfAacSIWBEzYq8lwBBYAtNmltqRjhMdQo/zgyrlUm4X1itfPDtF37i1jTec5+FO/sTpe5S2/fgQK2KuVzwsGdMofasn73r9rZau/mirafveVTsX8TGYxmjGF0a0C2uZncedxs8+senFrQOUyUzM9nSp6NI1S3KEWIMIsASmaHfHhgwKVkO0amgNu/qqHDjafDyYEVgWfqON5lya8Yb1AisnXAFDlYgNMQYVYJmUdnRQ3/30zUtoPwKFb4s7+zfdmacZZ3AnkWujiSKIBTEhNsTYiqJJaJAh7o9asXWchA5TO7VP4k6iHXcM+vYRA2JBTIhNXfR90eeEuvdahG7u0IlmnGl549doMDZzJxG+IwaMxSMmHWn2Mm3aTuHxG4NO6bEuhqs+3W/Tcz/ub9pOIjqB193I/YI6hi9rwuUzumbCiBLAvoZo1dAadhOles2SNm9EAB2qZhP4jNEMxCDCgwQCQmXh0tLb2+mMWSlvyKpZMMHwGnyG73FOWScJLyH0YGm087pBdKhO4kU8ThMs8YaP8NXr2HprHpNEq/h8EUIPwf70mRYv4mn3lp5ieWVSBb5heSx8hc8iJxBQ7hTyuhcyucmJ9bRxiL+IP2zbs+emadENbfT0E32UTuhMIpoa19+cJ/gatkSFa71+wr7ODVKZ0BUHweaYGH0cofDtX7U4R58dsOm//73Ai+GPG0rEj2KB6Hf+IEvwMXzxyzN8TOv3Vc+2NDmqII3p3xtvzdPZvJYatWFSBL7AJ/jmTVEnxbEE+SGEHqMw2njp5S13tdMUXnpp69wDx8g/6GH4AF/gE3wTqY6AOqHRiB56h4rrd/W4Qjl6Kj/RsWxFB78PhENFJzGmGGEbPsAX+BSpxBTjMGzBLUVRJzQbTELs8CFKueCSNC3+47y38D2ueLHoHj7AlyglrvhG2tWJUYvQOoabSfdr1+bo967MxbLcFDOBsA0fRGojIISujZG38OeGb+XpvC/zI0q8bqJRAluwCdvxrbhvVLTh2GkpQqMteuigWg8PT5bfsrKDpp1ika3Rxqu32GADtmATtlUEsXptfxXlJtXRI/TIxk8cfwcAHrNrzzzZTx/xdgYqgm0RMNWMjVm86fGI4kXesAFbsKkiiBGxIuZAElFMgTpcgRwenjhouMO1A3kZFVIjXKrxZ88xh374wDHqOYphi+Dypdlp+jo3ARwb7wUJPybkibxhA7ZUBLF5MXKswSX8mIIPHwT32tfQInQzhm7x3Oi+j2za/HAPNx0QQXBZcFWOFlzTRkVu44aNAfJE3rChIogJsSFGxBpUwo5HJb+gPg9Nr0XooRk10+80T2fv2l70FvWr+v31P8nztlr8oG2InUTkhTyRt6rgQQXEhhhbUfQIrXL5ha0TtNQG7WNLsJ8+3Uevb+PFEQqCDQ/RYTv1NO4k4l2jmnEhD+SFPJG3iiAWxORtd+b7EzQjXy/O76A+D0mvR+ghGTXbT28tBP/31CO99NEHap3EqdN4KvpPmYDcOtDZjQm6yAN5IU8VQQyIBYs8Wnmdhxp6KognUAdPefT3ubSJO4lHulQ6UETnnJ+mpbe1e4T2+ogB44QOCI08kJeKwHfEgFha/ckVLULHeVfybasQwNfFNzpOB/ZxJ3Fdj/KkyeVfy9GV1/FMokInETrQRR4qgskX+I4YEMvQ2FTyG6of128Vv30dLUL7mTT7d5rbrG/uKNIzT/Uph/JHvNbioq8G240J09rQga6qwGf4jhhEtB6S5XYn7pexf4IWY3WfMZHx83/rp1d/ORA0Qy89OmLo0J0+Y3A3phq4YJcjpIWO6p7V8BU+ezvwV7Pn1dcBwvGq5Or4NLScSa1Pg0ilhh4sb3Sk0P7csrGHPngPwxbBBdvW3vrnk7z1yuN1EnEOa5qRtp6tbqt5Ah/hK3xu5U7gSGyE0EMQATkKXEGjg9V1SK2TeOY5Kd5brsNrzKLSHCneMT6ONEirIvANPsLXVu8EjsRPCD0CEXSsDn5q06YHjylPmsxfkKWreeOXaivzcAznkEZF0ImEb/BRZSZQxWYz6SgTGq87qNZsa+SxoE1EFEw9/uFp73d+VaSfbOJxXUVZdGM7zbks6723xGuacj54hwmO4ZyqwCf4Bh/riSWwnQQ0ocEtVVEmtKrBptDjQsVs3X+80E8vv6TWScSr5PDI1MyzUlTmWhUf/PYe6VJraXi+wCdvJhFXicgoBITQoyA5ccC0DK6le+h/3lbrJOJVarf9BXcS203vg984piLwAb7AJ5GxEVBDd+z8JtQZdLiwDwaWYqo+GDDzTLxSrcP74LeKwDZ8gC/SCRwfQSH0+Ph4Ha9D/wtC9Xht4BrJq56+9Iosv9xIrROIdjdswwfpBFaFd9hBtSpjMAssRq8sch+WZ0P+8DtEQY1V9CqvBK5XFxMX771V8MZ9l62c1LBxX/iKsWbYRrs5CNaVsqk3whPp4ixTeBEkxhNen/glNfQJLMb9BUK98tN++sVz6tPj4xqochK2YNPrBFY5L4dGIyCEHo3JmEdSKYO2Ps7DZruKY6YJ6wRswBZsitSPgBC6fqy8B04xRrrpgaPeuw4DqAZKivcowgZsBX7INZCliZdYCB2wTPG6tK7DDj36g6Pe+uOA6jWTY00z8oaNVn01W02QxkmgRWi/Yxbn9zixjXlK11+sjvtgd4me+peeUPe9wB4ayBN5w4aun2MCMM4JXZth6I/jXs1TWoSumfsETYBJOnTU/vOX/fQiP8MXliAv5OmNaISVaYvlI4TWKHDUos882UtvvK7fSUQeyEt1bbRGGBNKVQitUZxYh+zwWy8fe/AoHfiN+ooa6CIP5CVrmzUKhFX1CB1Gg0k3j6Dx69oboW8xgke6bNrwT0epV2GnIuhAF3kgL+2G8wj/gsITuv2R/tTzd2CnTyhoEvpERq38C82EvR+U6PGHj3lPcNeLBZ5cgQ50pakxiJrmKkLlqW/cYLGXvKb9est+VDrYVbHt66nojnJiyAF05La/PECnTU/R4pvqW+/83JZeTyeKTqAf5xAX6/qpqldX5nUkgn21/WErmevV0HU42EpJsOj+uR9XSForbpAfaZP66rha/if1vHINndSA4vQLHTo0ETf9c6U9veAP20YRFo9gYX3GTx7r8VyVTmC4JaZOaLQ5vE5MuA7VnZvqvdHXw3cEYjKpsVn5k+uPeVsiXDI/S9O/WIH5Ex7NeOO1An28p8RLQQ1CWqV2Uz1++3HWk3ZoGlW9oXno/tZoc6gTWtfpCayPWjfFHcXffFimve+Xjq/HwEygxU+c4JxINAhoETrOi9m3je8goqoXxIaf1mR0zSqr5YL67OcX5NuPU0WnEf6N5ZeubS1CV+6Xui6MFVpUx1WKOipfosxXNU5VvbBi0eOTHqHjjF3Vtq+nh1tYpRddPn6cQS2o6gW1E1F6GbaLCFjJNh4EhNDx4C5WI0JACB0RsJJtPAhotaHjbG6p2vb18D2RxY8zaIyqekHtjJVet1y0CO1NCuh6MFZktY77yKvY93Vr2Wjm8zq4qOgmBCtpciSkIMSNcBAQQoeDo+SSEAQ0mhxYzAH1Zrs/tUJ7A+xSjVNVDzbDENgHt9REg9DqkKm5OlxLB3Yd3eFeJPcvxKgicWOj6rcfqxahlSsB37rOt2rkfomp6uv43EhdP04Vm3Fjo7F2S9rQKgUuOolFQAid2KIRx1QQEEKroCY6iUVAvQ2dhCdWVN685rct424nRk0JP86gdoBp3NjE8cQK+CxPfQdlS+PSq/JZVS+syGBfg8/eQLKGL3GHD9fhQ1BR0QlqI+70KjH65amiG1a8erZbrg3dSk9Zt1Ks/uXU1ITGQ6f4BJFqb3cNot9MaYPGqoJn0vBQ7xQiEv8OFUNUGHvv73Po0/1lOpV3K6pHsI/cwQNl3kOOtfXubPWYizUNYkSsiLl9Un31FrAEpt5T6U2KT32RjlE0Pp/j+ubNOmnbz/vH8G704TdeL9Chz21vW4G4fG6UXbzKArEi5noFWALTRvk4lp16/a2WTovQ1TJs5DHUJLu2D9Dr22q/vrjrsE1PP3GMX1ypMa/ayOBCsIVYETNiryXAEFg2+54hyoTmnTNjZwY6PbjKN36/m157ZeyaGrfSH/xdFx38lJsbGGtsEUGsiBmxA4OxBNgBQ2CZhI6kDrfqa3xWQYI3UOnnjdwccnFzAxTxCF4VPMAv2ln390xq3gDx8ivb6PSZKW+v5e4uh7feGqBtP+ujI91OZZ+5+FyNBSBs0/vB7iJ9d/UhuuKqPF0yP0dTpppkc2f6wL4yvfqLftrFGGFPPjPOiQUPHa6hDNfxuKWIlnItu+KGQ+e75eIu9iDL72VVNB+iGrtQKlV2wM/lsW+cwa8ydvgYtuXiwmqhpkY1VPF2gDJjgbfiZnMmt5VdryIAkb29qZWZUM2a2jHDu+m7BSOVmbPuX09+TyUX5RraKdldrkE9zJus7utsVRwfpcMFkspUjmK4Cv9w70gPvmI7ERfdKKcbd2AoFgOFSnvRYnJDEoMNk4kvsB6DuVXxLPj/ym3oT0pHuxmKQwaQSprgzpWAGidpsPj+eNgkEJ8Kl9xDFW753gb7VmZjZ+e5GA/aaxjKlXwwTyX1hEdgkEt7B7mlFK8WGw2X3jJc89okNKGVohelRCHAXOI+Ib2l45RyDQ2j3LHYgYEOEUEgDATAJXBKJy8tQmcde4ftFHoT2Y7WQUV0G44AOAQugVM6xrUIfSi//WMe9XkbbR8M3MlHMFDlwCCH3ganYiP0li3f5DlVt1M6hjpFILpAoMIht7PCKXVMtDqFMGuZ7tO2PfA3XD3zqCauTxFBICgCBjGHSuBSUM2R6bWaHMhs+pzpb7quvd0yB2c1RlqQvwWBGgiAO+AQuFQjac3T2oRes8bg9Rz0sCEzGTXBlgTVEfC4wxzyuFQ9Sd1HtZscsFSw27a6Rt8e08jMclxeMCAiCNSJgGmkqWT37yna+a11qoybTLuGRu6bO6cddV3jATgnQx0MiGpXvwX1wBlwBxwal6l1ngyF0LDFV9n6st33vmkOrnip0wFJ1roIgCvgDLgTFgqhEXpz57lH+VL7W164GZZvks8ER8DjCnPG405IsYbKvp78jCfKzsBLKastJPckm4mKADgCroAzYcYYKqG3bDFs13C+w1OY3YbRQs86hVkiLZAXuAGOgCvgTJghR7Iq9o5F+1eaVuZB2ymyrzLZEmaBNX9eBk/GZcixi3dteH7GQ2HHE2oN7Tu34fnp62xn4FFpeviIyLePADgBboAj/rEwvyMhNJ50NK22VdyDfUVIHWZxNXdeXruZOQFugCNRRBNJk8N3dNnC/TMylvkSD89cwHP1/mH5bkEELCtHjlPaXbSdqzd3ztgfFQSREhpOf+u6AxekyHjWNFOzhNRRFWOy862QubynTO7iTc+dvjtKbyMnNJy/Y+HHF5KZ2cI19YVle+wNYaIMVPKOBwE0M7hmfpec4tINnWe8G7UXEbWhh7vtBVLqvda2Cy+nrDyfbMh1NNwJ+avBCBiEskaZE5d9I8iMABtCaBja8NI5+0pu32JudmzEsI2MUwOViSkoW5QxyhpljrJvVKSxVJW3L9p/FzP6Xg56atnrLEbS4W0UhmLnOAKolXM8LFfs4mUQ92x8fsaDx0816EcshEZsty/adxEPsd/HV/NCl/hpX0eWnTaozCMxg4VGWJvBC/U7XbJXb3x+ptZ2BKpOxkZoOLyGXPOjRZ8s49r6HsvInO84ZX6MXYitWphx6GH5J49gke0W32M233vm89M3ryF+6CMmiZXQfsxLr9ozOZ/OLmdir+Ar/TwGBrctPi1NER+jZH1Xpq+5vHBn/TWX17q+UmH9lp/NOhK3n4kgtA8CiN2RzS5xXONOfnnK5ZbVlnZcHr30PrFd9L57Lf2NfTPwZLbJH9vuL/FOmK+ahvtIT6GwNQlE9gsnUYT2ncL3Ldd8NNe00osN172WK+zZlpXuQO+Z22iDHxDc3zdTavKh2Kn/rmxoi2HVCoEt/q5gbtsl7DT7tmsYLzh26dnHXjxzp7qd6DQTS+gTIbvGbQv3nc2rQ+YymPO45r6YO5FnMeinsPPtTOUsag0RfQRwN2RMC4xpL1cWn3Mnby/XxG9ypbKDl3rufLRz5oeMe6JrjyYg9OiCWrXw/ewxIzWVytkpZDlTyOWxIhr7lQujc5AjoxHgSsHgMVTb7KZUoXuSW+5aW9lhdnRSOSIICAKCgCAgCAgCgoAgIAgIAoKAICAICAKCgCAgCAgCgoAgIAgIAoKAICAICAKCgCAgCAgCgoAgIAgIAoKAICAICAJNjMD/AxMAEbVbwVdUAAAAAElFTkSuQmCC\";\n",
136
+ "// Single source of truth for the lazy code-format provider assets. Imported by\n// the browser loader (routes), the server (src/webui/server/assets.ts getters +\n// routes), the build (scripts/build.ts bundling + wasm copy), the static shell\n// (scripts/build-shell.ts) and the smoke test — pure data, no dependencies, so\n// every consumer stays in step when a provider is added or renamed.\n//\n// Each provider is one lazily-imported ESM bundle served on `js`, plus an\n// optional sidecar `.wasm` asset the bundle init()s by URL. None of these are\n// referenced statically from webui.js — the loader imports `js` through a\n// runtime variable, so the main bundle never inlines them.\n\nexport interface FmtProvider {\n /** Registry id, referenced by lang-map.ts. */\n id: string;\n /** Serve route of the provider bundle (also its dist/ artifact name). */\n js: string;\n /** Bundle entrypoint, relative to src/webui/. */\n entry: string;\n /** Sidecar wasm: serve route + the npm package/file it is copied from. */\n wasm?: { route: string; pkg: string; file: string };\n}\n\nexport const FMT_PROVIDERS: FmtProvider[] = [\n // prettier standalone + plugins (js/ts/css/html/yaml/php) + sql-formatter\n { id: \"core\", js: \"/webui-fmt.js\", entry: \"fmt/fmt-core.ts\" },\n {\n id: \"ruff\", js: \"/webui-fmt-ruff.js\", entry: \"fmt/fmt-ruff.ts\",\n wasm: { route: \"/webui-fmt-ruff.wasm\", pkg: \"@wasm-fmt/ruff_fmt\", file: \"ruff_fmt_bg.wasm\" },\n },\n {\n id: \"gofmt\", js: \"/webui-fmt-gofmt.js\", entry: \"fmt/fmt-gofmt.ts\",\n wasm: { route: \"/webui-fmt-gofmt.wasm\", pkg: \"@wasm-fmt/gofmt\", file: \"gofmt.wasm\" },\n },\n {\n id: \"clang\", js: \"/webui-fmt-clang.js\", entry: \"fmt/fmt-clang.ts\",\n wasm: { route: \"/webui-fmt-clang.wasm\", pkg: \"@wasm-fmt/clang-format\", file: \"clang-format.wasm\" },\n },\n {\n id: \"lua\", js: \"/webui-fmt-lua.js\", entry: \"fmt/fmt-lua.ts\",\n wasm: { route: \"/webui-fmt-lua.wasm\", pkg: \"@wasm-fmt/lua_fmt\", file: \"lua_fmt_bg.wasm\" },\n },\n {\n id: \"taplo\", js: \"/webui-fmt-taplo.js\", entry: \"fmt/fmt-taplo.ts\",\n wasm: { route: \"/webui-fmt-taplo.wasm\", pkg: \"@wasm-fmt/taplo_fmt\", file: \"taplo_fmt_bg.wasm\" },\n },\n // mvdan-sh (shfmt's GopherJS build) is pure JS — no wasm sidecar\n { id: \"sh\", js: \"/webui-fmt-sh.js\", entry: \"fmt/fmt-sh.ts\" },\n];\n\nexport function fmtProvider(id: string): FmtProvider | undefined {\n return FMT_PROVIDERS.find((p) => p.id === id);\n}\n",
133
137
  "import { z } from \"zod\";\nimport { MhError } from \"../../core/errors.ts\";\nimport { errorResponse, type Route, type RouteCtx } from \"../../core/sync/routes.ts\";\nimport {\n listDatabases,\n createDatabase,\n updateDatabase,\n duplicateDatabase,\n deleteDatabase,\n} from \"../../core/databases.ts\";\nimport {\n listProperties,\n addProperty,\n updateProperty,\n setPropertyWidth,\n removeProperty,\n type PropType,\n type PropertyConfig,\n} from \"../../core/properties.ts\";\nimport {\n listRecords,\n getRecord,\n createRecord,\n updateRecord,\n moveRecord,\n deleteRecord,\n} from \"../../core/records.ts\";\nimport {\n listDocuments,\n getDocument,\n createDocument,\n updateDocument,\n documentVersion,\n moveDocument,\n duplicateDocument,\n deleteDocument,\n} from \"../../core/documents.ts\";\nimport {\n listDocumentRevisions,\n documentAtVersion,\n revertDocument,\n listRecordRevisions,\n recordAtVersion,\n recordFieldHistory,\n revertRecord,\n listPropertyRevisions,\n revertProperty,\n listDatabaseActivity,\n} from \"../../core/history.ts\";\nimport { search } from \"../../core/search.ts\";\nimport { getNodeId } from \"../../core/node.ts\";\nimport {\n cacheStats,\n cachedBlobs,\n readPolicy,\n knownNodes,\n knownBuckets,\n clearCache,\n clearBlobs,\n deleteOrphanBlobs,\n isClearable,\n referencedHashes,\n reconcileCache,\n setFullNodes,\n setRedundancy,\n setPinned,\n verifyAnchorPresence,\n readBlobVerifiedAt,\n} from \"../../core/blobs.ts\";\nimport type { DbDriver } from \"../../core/driver.ts\";\nimport { getServerConfig } from \"../../core/config.ts\";\nimport { shareRoutes } from \"./share-routes.ts\";\nimport pkg from \"../../../package.json\" with { type: \"json\" };\n\n// Read-only viewer + light editing for the browser UI. These routes wrap the\n// same core functions the CLI uses, so every write goes through `emit()` and\n// replicates over /sync. Ids are carried as query params to keep the server's\n// exact-path matcher (see ./routes.ts) and OpenAPI generation unchanged.\n\n// --- pragmatic schemas (drive /docs; intentionally loose) -------------------\n\nconst DatabaseSchema = z.object({\n id: z.string(),\n name: z.string(),\n icon: z.string().nullable(),\n created_hlc: z.string(),\n});\nconst PropertySchema = z.object({\n id: z.string(),\n database_id: z.string(),\n name: z.string(),\n type: z.string(),\n config: z.any().nullable(),\n position: z.number(),\n});\nconst RecordSchema = z.object({\n id: z.string(),\n database_id: z.string(),\n values: z\n .record(z.string(), z.any())\n .describe(\n 'Field values keyed by property name (e.g. {\"Amount\":35}). Reads nest cells here; writes take a flat {column: value} map. Lossy when two properties share a name — prefer `cells` then.',\n ),\n cells: z\n .record(z.string(), z.any())\n .describe(\n \"Field values keyed by property id — lossless under duplicate property names. Writes accept property ids as keys too.\",\n ),\n});\nconst MoveRecordReq = z.object({\n target: z.string(),\n where: z.enum([\"before\", \"after\"]),\n});\nconst DocumentSummarySchema = z.object({\n id: z.string(),\n title: z.string(),\n database_id: z.string().nullable(),\n parent_id: z.string().nullable(),\n created_hlc: z.string(),\n order_key: z.string().nullable(),\n});\nconst MoveDocumentReq = z.object({\n target: z.string(),\n where: z.enum([\"before\", \"after\", \"into\"]),\n});\nconst DocumentSchema = DocumentSummarySchema.extend({\n body: z.string().nullable(),\n // Read/edit token (max HLC over the doc + its blocks); echo it back as\n // `if_match` on PATCH to detect concurrent changes.\n version: z.string().optional(),\n});\nconst SearchHitSchema = z.object({\n type: z.string(),\n id: z.string(),\n database_id: z.string().nullable(),\n title: z.string().optional(),\n snippet: z.string(),\n});\nconst OkSchema = z.object({ ok: z.boolean() });\n\nconst CreateDatabaseReq = z.object({ name: z.string(), icon: z.string().optional() });\nconst UpdateDatabaseReq = z.object({\n name: z.string().optional(),\n icon: z.string().nullable().optional(),\n});\nconst DuplicateDatabaseReq = z.object({\n name: z.string().optional().describe(\"Name for the copy (defaults to the source name)\"),\n icon: z.string().optional(),\n});\nconst CreatePropertyReq = z.object({\n db: z.string(),\n name: z.string(),\n type: z.string(),\n config: z.any().optional(),\n});\nconst UpdatePropertyReq = z.object({\n name: z.string().optional(),\n type: z.string().optional(),\n config: z.any().optional(),\n position: z.number().optional(),\n});\nconst SetWidthReq = z.object({ width: z.number() });\nconst RecordValuesReq = z\n .record(z.string(), z.any())\n .describe('Flat { column: value } cell patch (keyed by property name).');\nconst CreateDocumentReq = z.object({\n title: z.string(),\n body: z.string().optional(),\n database_id: z.string().optional(),\n parent_id: z.string().optional(),\n});\nconst UpdateDocumentReq = z.object({\n title: z.string().optional(),\n body: z.string().optional(),\n parent_id: z.string().nullable().optional(),\n // Optimistic concurrency: a `version` from GET /api/document. A concurrent\n // change (CLI, another window, sync) makes the PATCH fail 409 `stale`\n // instead of silently clobbering it.\n if_match: z.string().optional(),\n});\nconst DuplicateDocumentReq = z.object({\n title: z.string().optional().describe(\"Title for the copy (defaults to the source title)\"),\n parent_id: z.string().nullable().optional(),\n});\n\nconst RevisionBase = z.object({\n // Version token (max HLC of the revision); pass as `to` on revert or\n // `version` on GET /api/document/at.\n version: z.string(),\n at: z.string().describe(\"Wall-clock time of the revision (ISO 8601)\"),\n node_id: z.string(),\n kind: z.enum([\"user\", \"repair\", \"revert\"]).describe(\"Source of the revision\"),\n changes: z.number(),\n created: z.boolean(),\n deleted: z.boolean(),\n});\nconst DocRevisionSchema = RevisionBase.extend({\n title_changed: z.boolean(),\n blocks_changed: z.number(),\n blocks_deleted: z.number(),\n});\nconst RecordRevisionSchema = RevisionBase.extend({\n fields: z.array(z.string()).describe(\"Property ids of the cells written\"),\n moved: z.boolean(),\n});\nconst DatabaseActivityEntrySchema = RecordRevisionSchema.extend({\n record_id: z.string(),\n record_title: z\n .string()\n .nullable()\n .describe(\"Title-property value as of this revision (deleted records keep their last title)\"),\n diffs: z\n .array(\n z.object({\n prop: z.string(),\n before: z.any().optional(),\n after: z.any().optional(),\n }),\n )\n .describe(\"Value-level cell changes; a missing side means the cell did not exist\"),\n});\nconst DocumentVersionStateSchema = z.object({\n id: z.string(),\n title: z.string(),\n body: z.string(),\n deleted: z.boolean(),\n version: z.string(),\n});\nconst RevertDocumentReq = z.object({\n to: z.string().describe(\"Version token from /api/document/history\"),\n if_match: z.string().optional(),\n});\nconst RevertRecordReq = z.object({\n to: z.string().describe(\"Version token from /api/record/history\"),\n});\nconst RevertDocResultSchema = z.object({\n id: z.string(),\n changed: z.boolean(),\n restored: z.string(),\n version: z.string(),\n undeleted: z.boolean(),\n});\nconst RevertRecordResultSchema = z.object({\n id: z.string(),\n changed: z.boolean(),\n fields: z.array(z.string()),\n undeleted: z.boolean(),\n restored: z.string(),\n});\nconst PropertyRevisionSchema = RevisionBase.extend({\n fields: z.array(z.string()).describe(\"Definition columns touched (name/type/config/position)\"),\n cells_cleared: z.number(),\n});\nconst RevertPropertyReq = z.object({\n to: z.string().describe(\"Version token from /api/property/history\"),\n});\nconst RevertPropertyResultSchema = z.object({\n id: z.string(),\n changed: z.boolean(),\n fields: z.array(z.string()),\n restored_cells: z.number(),\n skipped_cells: z.number(),\n undeleted: z.boolean(),\n restored: z.string(),\n});\nconst RecordVersionStateSchema = z.object({\n id: z.string(),\n database_id: z.string().nullable(),\n deleted: z.boolean(),\n data: z.record(z.string(), z.any()).describe(\"Cells at that version, keyed by property id\"),\n version: z.string(),\n});\nconst FieldHistoryEntrySchema = z.object({\n version: z.string(),\n at: z.string(),\n node_id: z.string(),\n value: z.any().optional(),\n cleared: z.boolean(),\n});\nconst NodeInfoSchema = z.object({\n node_id: z.string(),\n label: z.string().nullable().describe(\"Peer label from pairing; null when unnamed\"),\n self: z.boolean().describe(\"True for the node serving this request\"),\n});\nconst CacheStatsSchema = z.object({\n totalBytes: z.number(),\n clearableBytes: z.number(),\n retainedBytes: z.number(),\n count: z.number(),\n clearableCount: z.number(),\n});\nconst BlobPolicySchema = z.object({\n fullNodes: z.array(z.string()),\n redundancy: z.enum([\"all\", \"any\"]),\n});\nconst KnownNodeSchema = z.object({\n nodeId: z.string(),\n label: z.string().nullable(),\n self: z.boolean(),\n});\nconst BucketAnchorSchema = z.object({\n url: z.string(),\n label: z.string().nullable(),\n bucket: z.string().nullable(),\n});\nconst BlobCacheSchema = z.object({\n stats: CacheStatsSchema,\n policy: BlobPolicySchema,\n nodes: z.array(KnownNodeSchema),\n buckets: z.array(BucketAnchorSchema).describe(\"Attached object-storage buckets, selectable as full-blob anchors\"),\n quotaBytes: z.number().describe(\"Auto-evict over this many bytes; 0 = disabled\"),\n pinnedCount: z.number(),\n pinnedBytes: z.number(),\n lastVerifiedAt: z\n .number()\n .nullable()\n .describe(\"Epoch-ms of the last anchor-presence verify; null = never / invalidated\"),\n unreachableAnchors: z\n .array(z.string())\n .describe(\"Anchors the last verify couldn't reach (only populated by /verify)\"),\n});\nconst PinReq = z.object({\n hash: z.string(),\n pinned: z.boolean(),\n});\nconst PinResSchema = z.object({ hash: z.string(), pinned: z.boolean() });\nconst ClearResultSchema = z.object({\n cleared: z.number(),\n freedBytes: z.number(),\n skipped: z.number(),\n});\nconst GcResultSchema = z.object({\n removed: z.number(),\n freedBytes: z.number(),\n});\nconst BlobRowSchema = z.object({\n hash: z.string(),\n size: z.number(),\n contentType: z.string().nullable(),\n lastAccess: z.number().nullable(),\n pinned: z.boolean(),\n pending: z.boolean().describe(\"Produced here, not yet flushed to an anchor — protected\"),\n clearable: z.boolean().describe(\"Safe to drop: durable on the designated full set\"),\n referenced: z.boolean().describe(\"A live document/site still points at it; !referenced = orphan\"),\n});\nconst BlobListSchema = z.array(BlobRowSchema);\nconst HashListReq = z.object({ hashes: z.array(z.string()) });\nconst SetBlobPolicyReq = z.object({\n full_nodes: z\n .array(z.string())\n .optional()\n .describe(\"Full-blob anchors: node ids and/or bucket urls (s3://…)\"),\n redundancy: z.enum([\"all\", \"any\"]).optional(),\n});\nconst SetBlobPolicyResSchema = z.object({\n policy: BlobPolicySchema,\n});\n\n// --- helpers ----------------------------------------------------------------\n\nfunction need(req: Request, key: string): string {\n const v = new URL(req.url).searchParams.get(key);\n if (!v) throw new Error(`missing query param: ${key}`);\n return v;\n}\n\nfunction opt(req: Request, key: string): string | undefined {\n return new URL(req.url).searchParams.get(key) ?? undefined;\n}\n\n/** Wrap a handler: serialize the return value, turn thrown errors into 400 JSON. */\nfunction handle(\n fn: (req: Request, ctx: RouteCtx) => unknown | Promise<unknown>,\n): Route[\"handler\"] {\n return async (req, ctx) => {\n try {\n const out = await fn(req, ctx);\n if (out instanceof Response) return out;\n return Response.json(out ?? null);\n } catch (e) {\n return errorResponse(e);\n }\n };\n}\n\n// --- routes -----------------------------------------------------------------\n\nconst VersionSchema = z.object({ version: z.string() });\n\n/** Shape the Settings storage-panel payload. `unreachable` is supplied by /verify\n * (the anchors it couldn't reach); GET reports the stored last-verified stamp. */\nfunction blobCacheInfo(db: DbDriver, unreachable: string[] = []) {\n reconcileCache(db);\n const pinned = cachedBlobs(db).filter((b) => b.pinned);\n return {\n stats: cacheStats(db),\n policy: readPolicy(db),\n nodes: knownNodes(db),\n buckets: knownBuckets(db),\n quotaBytes: getServerConfig(db).blobCacheQuotaBytes,\n pinnedCount: pinned.length,\n pinnedBytes: pinned.reduce((s, b) => s + b.size, 0),\n lastVerifiedAt: readBlobVerifiedAt(db),\n unreachableAnchors: unreachable,\n };\n}\n\n/** Per-blob detail for the Settings blob-manager popup: every cached blob with its\n * size/type/last-access plus the two computed flags the UI gates actions on —\n * `clearable` (safe to drop, durable elsewhere) and `referenced` (a live doc/site\n * points at it; the inverse is an orphan, eligible for true deletion). */\nfunction blobList(db: DbDriver) {\n reconcileCache(db);\n const refs = referencedHashes(db);\n return cachedBlobs(db).map((b) => ({\n hash: b.hash,\n size: b.size,\n contentType: b.content_type,\n lastAccess: b.last_access,\n pinned: !!b.pinned,\n pending: !!b.pending,\n clearable: isClearable(db, b.hash),\n referenced: refs.has(b.hash),\n }));\n}\n\nexport const webuiRoutes: Route[] = [\n {\n method: \"GET\",\n path: \"/api/version\",\n summary: \"Version of the running core (sidecar). Used by the desktop app's settings footer.\",\n response: VersionSchema,\n handler: () => Response.json({ version: pkg.version }),\n },\n {\n method: \"GET\",\n path: \"/api/databases\",\n summary: \"List all databases\",\n response: z.array(DatabaseSchema),\n handler: handle((_req, { db }) => listDatabases(db)),\n },\n {\n method: \"POST\",\n path: \"/api/databases\",\n summary: \"Create a database\",\n request: CreateDatabaseReq,\n response: DatabaseSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { name: string; icon?: string };\n return createDatabase(db, body);\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/database\",\n summary: \"Rename a database or change its icon. Query: ?id=<id>\",\n request: UpdateDatabaseReq,\n response: DatabaseSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { name?: string; icon?: string | null };\n return updateDatabase(db, need(req, \"id\"), body);\n }),\n },\n {\n method: \"POST\",\n path: \"/api/database/duplicate\",\n summary: \"Copy a database whole — schema and all records. Query: ?id=<id>\",\n request: DuplicateDatabaseReq,\n response: DatabaseSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json().catch(() => ({}))) as { name?: string; icon?: string };\n return duplicateDatabase(db, need(req, \"id\"), body);\n }),\n },\n {\n method: \"DELETE\",\n path: \"/api/database\",\n summary: \"Delete a database (and stop it being the current one). Query: ?id=<id>\",\n response: OkSchema,\n handler: handle((req, { db }) => ({ ok: deleteDatabase(db, need(req, \"id\")) })),\n },\n {\n method: \"GET\",\n path: \"/api/database/activity\",\n summary:\n \"Recent changes across all records of a database, newest first. Query: ?db=<id>&limit=<n>\",\n response: z.array(DatabaseActivityEntrySchema),\n handler: handle((req, { db }) => {\n const limit = opt(req, \"limit\");\n return listDatabaseActivity(db, need(req, \"db\"), {\n limit: limit ? Number(limit) : undefined,\n });\n }),\n },\n {\n method: \"GET\",\n path: \"/api/properties\",\n summary: \"List a database's properties (columns). Query: ?db=<id>\",\n response: z.array(PropertySchema),\n handler: handle((req, { db }) => listProperties(db, need(req, \"db\"))),\n },\n {\n method: \"POST\",\n path: \"/api/properties\",\n summary: \"Add a property to a database\",\n request: CreatePropertyReq,\n response: PropertySchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as {\n db: string;\n name: string;\n type: PropType;\n config?: PropertyConfig;\n };\n return addProperty(db, body.db, { name: body.name, type: body.type, config: body.config });\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/property\",\n summary: \"Update a property: rename, change type, edit config/options, reorder. Query: ?id=<id>\",\n request: UpdatePropertyReq,\n response: PropertySchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as {\n name?: string;\n type?: PropType;\n config?: PropertyConfig;\n position?: number;\n };\n return updateProperty(db, need(req, \"id\"), body);\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/property/width\",\n summary: \"Set a property's table column width (px). Query: ?id=<id>\",\n request: SetWidthReq,\n response: PropertySchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { width: number };\n return setPropertyWidth(db, need(req, \"id\"), body.width);\n }),\n },\n {\n method: \"DELETE\",\n path: \"/api/property\",\n summary: \"Delete a property (column) and its cells. Query: ?id=<id>\",\n response: OkSchema,\n handler: handle((req, { db }) => ({ ok: removeProperty(db, need(req, \"id\")) })),\n },\n {\n method: \"GET\",\n path: \"/api/property/history\",\n summary: \"List a property's definition revisions, newest first. Query: ?id=<id>\",\n response: z.array(PropertyRevisionSchema),\n handler: handle((req, { db }) => listPropertyRevisions(db, need(req, \"id\"))),\n },\n {\n method: \"POST\",\n path: \"/api/property/revert\",\n summary:\n \"Schema rollback: restore a property's definition and the cells its type-change/removal cleared (user edits since are kept). Query: ?id=<id>\",\n request: RevertPropertyReq,\n response: RevertPropertyResultSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { to: string };\n return revertProperty(db, need(req, \"id\"), body.to);\n }),\n },\n {\n method: \"GET\",\n path: \"/api/records\",\n summary: \"List records in a database. Query: ?db=<id>&sort=<field>&limit=<n>\",\n response: z.array(RecordSchema),\n handler: handle((req, { db }) => {\n const limit = opt(req, \"limit\");\n return listRecords(db, need(req, \"db\"), {\n sort: opt(req, \"sort\"),\n limit: limit ? Number(limit) : undefined,\n });\n }),\n },\n {\n method: \"POST\",\n path: \"/api/records\",\n summary: \"Create a record. Query: ?db=<id>; body is a {field: value} map\",\n request: RecordValuesReq,\n response: RecordSchema,\n handler: handle(async (req, { db }) => {\n const values = (await req.json()) as Record<string, unknown>;\n return createRecord(db, need(req, \"db\"), values);\n }),\n },\n {\n method: \"GET\",\n path: \"/api/record\",\n summary: \"Get one record. Query: ?id=<id>\",\n response: RecordSchema,\n handler: handle((req, { db }) => {\n const id = need(req, \"id\");\n const rec = getRecord(db, id);\n if (!rec) throw new MhError(\"not_found\", `no such record: ${id}`);\n return rec;\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/record\",\n summary: \"Update record fields. Query: ?id=<id>; body is a {field: value} map\",\n request: RecordValuesReq,\n response: RecordSchema,\n handler: handle(async (req, { db }) => {\n const values = (await req.json()) as Record<string, unknown>;\n return updateRecord(db, need(req, \"id\"), values);\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/record/order\",\n summary: \"Move a record before or after another record. Query: ?id=<id>\",\n request: MoveRecordReq,\n response: RecordSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { target: string; where: \"before\" | \"after\" };\n return moveRecord(db, need(req, \"id\"), body.target, body.where);\n }),\n },\n {\n method: \"GET\",\n path: \"/api/record/history\",\n summary: \"List a record's revisions, newest first. Query: ?id=<id>\",\n response: z.array(RecordRevisionSchema),\n handler: handle((req, { db }) => listRecordRevisions(db, need(req, \"id\"))),\n },\n {\n method: \"GET\",\n path: \"/api/record/at\",\n summary: \"A record's cells as of a past version. Query: ?id=<id>&version=<token>\",\n response: RecordVersionStateSchema,\n handler: handle((req, { db }) => recordAtVersion(db, need(req, \"id\"), need(req, \"version\"))),\n },\n {\n method: \"GET\",\n path: \"/api/record/field-history\",\n summary: \"The write trail of one record cell, newest first. Query: ?id=<id>&prop=<propertyId>\",\n response: z.array(FieldHistoryEntrySchema),\n handler: handle((req, { db }) => recordFieldHistory(db, need(req, \"id\"), need(req, \"prop\"))),\n },\n {\n method: \"POST\",\n path: \"/api/record/revert\",\n summary:\n \"Restore a record's cells to a past version, recorded as a new revision. Query: ?id=<id>\",\n request: RevertRecordReq,\n response: RevertRecordResultSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { to: string };\n return revertRecord(db, need(req, \"id\"), body.to);\n }),\n },\n {\n method: \"DELETE\",\n path: \"/api/record\",\n summary: \"Delete a record. Query: ?id=<id>\",\n response: OkSchema,\n handler: handle((req, { db }) => ({ ok: deleteRecord(db, need(req, \"id\")) })),\n },\n {\n method: \"GET\",\n path: \"/api/documents\",\n summary: \"List documents. Optional query: ?db=<id> or ?parent=<id>\",\n response: z.array(DocumentSummarySchema),\n handler: handle((req, { db }) =>\n listDocuments(db, { database_id: opt(req, \"db\"), parent_id: opt(req, \"parent\") }),\n ),\n },\n {\n method: \"POST\",\n path: \"/api/documents\",\n summary: \"Create a document\",\n request: CreateDocumentReq,\n response: DocumentSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as {\n title: string;\n body?: string;\n database_id?: string;\n parent_id?: string;\n };\n return createDocument(db, body);\n }),\n },\n {\n method: \"GET\",\n path: \"/api/document\",\n summary: \"Get one document with full body. Query: ?id=<id>\",\n response: DocumentSchema,\n handler: handle((req, { db }) => {\n const id = need(req, \"id\");\n const doc = getDocument(db, id);\n if (!doc) throw new MhError(\"not_found\", `no such document: ${id}`);\n return { ...doc, version: documentVersion(db, doc.id) };\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/document\",\n summary: \"Update a document's title/body/parent_id (null = top level). Query: ?id=<id>\",\n request: UpdateDocumentReq,\n response: DocumentSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as {\n title?: string;\n body?: string;\n parent_id?: string | null;\n if_match?: string;\n };\n const { if_match, ...fields } = body;\n const doc = updateDocument(db, need(req, \"id\"), fields, { ifMatch: if_match });\n return { ...doc, version: documentVersion(db, doc.id) };\n }),\n },\n {\n method: \"POST\",\n path: \"/api/document/duplicate\",\n summary: \"Copy a document — title and every block — next to the source. Query: ?id=<id>\",\n request: DuplicateDocumentReq,\n response: DocumentSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json().catch(() => ({}))) as {\n title?: string;\n parent_id?: string | null;\n };\n const doc = duplicateDocument(db, need(req, \"id\"), {\n title: body.title,\n parentId: body.parent_id,\n });\n return { ...doc, version: documentVersion(db, doc.id) };\n }),\n },\n {\n method: \"PATCH\",\n path: \"/api/document/move\",\n summary: \"Move a document before/after another, or into it as a child. Query: ?id=<id>\",\n request: MoveDocumentReq,\n response: DocumentSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { target: string; where: \"before\" | \"after\" | \"into\" };\n return moveDocument(db, need(req, \"id\"), body.target, body.where);\n }),\n },\n {\n method: \"GET\",\n path: \"/api/document/history\",\n summary: \"List a document's revisions, newest first. Query: ?id=<id>\",\n response: z.array(DocRevisionSchema),\n handler: handle((req, { db }) => listDocumentRevisions(db, need(req, \"id\"))),\n },\n {\n method: \"GET\",\n path: \"/api/document/at\",\n summary: \"A document's title/body as of a past version. Query: ?id=<id>&version=<token>\",\n response: DocumentVersionStateSchema,\n handler: handle((req, { db }) => documentAtVersion(db, need(req, \"id\"), need(req, \"version\"))),\n },\n {\n method: \"POST\",\n path: \"/api/document/revert\",\n summary:\n \"Restore a document's title/body to a past version, recorded as a new revision. Query: ?id=<id>\",\n request: RevertDocumentReq,\n response: RevertDocResultSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { to: string; if_match?: string };\n return revertDocument(db, need(req, \"id\"), body.to, { ifMatch: body.if_match });\n }),\n },\n {\n method: \"DELETE\",\n path: \"/api/document\",\n summary: \"Delete a document. Query: ?id=<id>\",\n response: OkSchema,\n handler: handle((req, { db }) => ({ ok: deleteDocument(db, need(req, \"id\")) })),\n },\n {\n method: \"GET\",\n path: \"/api/nodes\",\n summary: \"Known nodes for display: this device plus paired peers with their labels\",\n response: z.array(NodeInfoSchema),\n handler: handle((_req, { db }) => {\n const self = getNodeId(db);\n const peers = db\n .query(\n \"SELECT node_id, label FROM peers WHERE node_id IS NOT NULL AND node_id <> '' GROUP BY node_id\",\n )\n .all() as { node_id: string; label: string | null }[];\n return [\n { node_id: self, label: null, self: true },\n ...peers.filter((p) => p.node_id !== self).map((p) => ({ ...p, self: false })),\n ];\n }),\n },\n {\n method: \"GET\",\n path: \"/api/search\",\n summary: \"Full-text search across documents and records. Query: ?q=<text>&limit=<n>\",\n response: z.array(SearchHitSchema),\n handler: handle((req, { db }) => {\n const limit = opt(req, \"limit\");\n return search(db, need(req, \"q\"), { limit: limit ? Number(limit) : undefined });\n }),\n },\n {\n method: \"GET\",\n path: \"/api/blob-cache\",\n summary:\n \"Local blob cache stats + clear policy + device/bucket roster (Settings storage panel). \" +\n \"A blob is clearable only once a presence verify confirmed a designated anchor holds it.\",\n response: BlobCacheSchema,\n handler: handle((_req, { db }) => blobCacheInfo(db)),\n },\n {\n method: \"POST\",\n path: \"/api/blob-cache/verify\",\n summary:\n \"Verify NOW which cached blobs the designated anchors durably hold (bucket LIST / \" +\n \"device /api/blobs/has), recording the per-blob `anchored` flag that gates clearing. \" +\n \"Returns the refreshed cache info incl. any unreachable anchors. Run on panel open / refresh.\",\n response: BlobCacheSchema,\n handler: handle(async (_req, { db }) => {\n const r = await verifyAnchorPresence(db);\n return blobCacheInfo(db, r.unreachable);\n }),\n },\n {\n method: \"POST\",\n path: \"/api/blob-cache/clear\",\n summary:\n \"Drop locally-cached blob bytes a full blob device durably holds (the reference stays; bytes re-download on demand). Returns bytes freed.\",\n response: ClearResultSchema,\n handler: handle((_req, { db }) => clearCache(db)),\n },\n {\n method: \"POST\",\n path: \"/api/blob-cache/pin\",\n summary:\n \"Pin/unpin a cached blob by hash (node-local; never synced). Pinned blobs are kept by both manual clear and automatic quota eviction.\",\n request: PinReq,\n response: PinResSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { hash: string; pinned: boolean };\n reconcileCache(db);\n if (!setPinned(db, body.hash, body.pinned))\n throw new MhError(\"not_found\", `blob not in cache: ${body.hash}`);\n return { hash: body.hash, pinned: body.pinned };\n }),\n },\n {\n method: \"GET\",\n path: \"/api/blobs\",\n summary:\n \"Per-blob detail for the Settings blob manager: size, content type, last access, \" +\n \"and the pinned/pending/clearable/referenced flags the popup sorts, filters and acts on.\",\n response: BlobListSchema,\n handler: handle((_req, { db }) => blobList(db)),\n },\n {\n method: \"POST\",\n path: \"/api/blobs/clear\",\n summary:\n \"Drop bytes for a chosen subset of clearable blobs (the reference stays; bytes re-download on demand). \" +\n \"Pinned / non-clearable hashes are skipped. Returns bytes freed and skipped count.\",\n request: HashListReq,\n response: ClearResultSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { hashes: string[] };\n return clearBlobs(db, body.hashes ?? []);\n }),\n },\n {\n method: \"POST\",\n path: \"/api/blobs/delete\",\n summary:\n \"Permanently delete a chosen subset of ORPHAN blobs (not referenced by any live document/site). \" +\n \"Still-referenced hashes are refused (skipped) so an in-use file is never removed. Returns bytes freed.\",\n request: HashListReq,\n response: GcResultSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { hashes: string[] };\n return deleteOrphanBlobs(db, body.hashes ?? []);\n }),\n },\n {\n method: \"POST\",\n path: \"/api/blob-policy\",\n summary:\n \"Set the full blob device(s) and/or redundancy (all|any). Anchor designation only — clearing is decided locally per device.\",\n request: SetBlobPolicyReq,\n response: SetBlobPolicyResSchema,\n handler: handle(async (req, { db }) => {\n const body = (await req.json()) as { full_nodes?: string[]; redundancy?: \"all\" | \"any\" };\n if (body.full_nodes) setFullNodes(db, body.full_nodes);\n if (body.redundancy) setRedundancy(db, body.redundancy);\n return { policy: readPolicy(db) };\n }),\n },\n ...shareRoutes,\n];\n",
134
138
  "import type { DbDriver } from \"./driver.ts\";\nimport { emit, grouped, CHANGE_SELECT } from \"./crdt.ts\";\nimport { serializeDocBlocks } from \"./blocks.ts\";\nimport { getDocument, updateDocument, documentVersion } from \"./documents.ts\";\nimport { listProperties } from \"./properties.ts\";\nimport { MhError } from \"./errors.ts\";\n\n// Read-side history over the CRDT oplog. The oplog (crdt_changes) is append-only\n// and never compacted, so the state of any register at a cutoff HLC `at` is the\n// value with the greatest hlc <= at — the same last-write-wins rule materialize()\n// applies at the head. Revert is a *forward* write: reconstruct the old state,\n// diff against the present, and emit the differences as new changes. The oplog\n// itself is never edited (it is the sync source of truth), so reverts replicate\n// and converge like any other edit.\n\n/** Changes from the same node closer together than this are one revision: a\n * single save emits a burst of field writes with near-identical timestamps. */\nconst REVISION_GAP_MS = 1500;\n\n/** Physical wall-clock milliseconds encoded in an HLC (first 15 digits). */\nfunction hlcMillis(hlc: string): number {\n return Number(hlc.slice(0, 15));\n}\n\nfunction hlcIso(hlc: string): string {\n return new Date(hlcMillis(hlc)).toISOString();\n}\n\n// A fully-read oplog row: Change with txn always present (CHANGE_SELECT\n// includes it; NULL for legacy rows). The reused select list keeps these\n// queries locked to the Change interface.\ninterface RawChange {\n hlc: string;\n node_id: string;\n dataset: string;\n row_id: string;\n col: string;\n value: string | null;\n txn: string | null;\n}\n\n/** Where a revision came from, derived from its change-group label. */\nexport type RevisionKind = \"user\" | \"repair\" | \"revert\";\n\nfunction revisionKind(txn: string | null): RevisionKind {\n if (txn?.startsWith(\"repair:\")) return \"repair\";\n if (txn?.startsWith(\"revert:\")) return \"revert\";\n return \"user\";\n}\n\n/**\n * Group an HLC-ordered change stream into revisions. Changes sharing a txn are\n * one revision; between txn-less changes (legacy rows, pre-txn peers) fall back\n * to author + wall-clock gap. Clustering depends only on oplog content, so\n * every synced node renders the same list.\n */\nfunction clusterRevisions(changes: RawChange[]): RawChange[][] {\n const groups: RawChange[][] = [];\n let cur: RawChange[] = [];\n for (const c of changes) {\n const prev = cur[cur.length - 1];\n const boundary =\n prev &&\n (prev.txn !== null && c.txn !== null\n ? prev.txn !== c.txn\n : prev.node_id !== c.node_id || hlcMillis(c.hlc) - hlcMillis(prev.hlc) > REVISION_GAP_MS);\n if (boundary) {\n groups.push(cur);\n cur = [];\n }\n cur.push(c);\n }\n if (cur.length) groups.push(cur);\n return groups;\n}\n\n/** True when a JSON-encoded oplog value is a truthy flag (e.g. __deleted = 1). */\nfunction flagSet(value: string | null): boolean {\n return value !== null && value !== \"0\" && value !== \"false\" && value !== \"null\";\n}\n\n/** Latest value per register (col) among `changes` with hlc <= at.\n * A `null` value column means the register was cleared (json_remove). */\nfunction registersAt(\n changes: RawChange[],\n at: string,\n): Map<string, { value: string | null; hlc: string }> {\n const out = new Map<string, { value: string | null; hlc: string }>();\n for (const c of changes) {\n if (c.hlc > at) continue;\n const cur = out.get(c.col);\n if (!cur || c.hlc > cur.hlc) out.set(c.col, { value: c.value, hlc: c.hlc });\n }\n return out;\n}\n\n/** All oplog changes for one row of a dataset, in HLC order. */\nfunction rowChanges(db: DbDriver, dataset: string, rowId: string): RawChange[] {\n return db\n .query(\n `SELECT ${CHANGE_SELECT} FROM crdt_changes WHERE dataset = ? AND row_id = ? ORDER BY hlc`,\n )\n .all(dataset, rowId) as RawChange[];\n}\n\n// ---- documents ---------------------------------------------------------------\n\n/** Ids of every block that was ever assigned to this document. Whether a block\n * counts at a given cutoff is decided later from its registers at that cutoff. */\nfunction everBlockIds(db: DbDriver, docId: string): string[] {\n return (\n db\n .query(\n \"SELECT DISTINCT row_id FROM crdt_changes WHERE dataset = 'doc_blocks' AND col = 'doc_id' AND value = ?\",\n )\n .all(JSON.stringify(docId)) as { row_id: string }[]\n ).map((r) => r.row_id);\n}\n\n/** Doc register changes + changes of every block ever attached, in HLC order. */\nfunction docChanges(db: DbDriver, docId: string): RawChange[] {\n const blocks = everBlockIds(db, docId);\n const placeholders = blocks.map(() => \"?\").join(\",\");\n const blockClause = blocks.length\n ? ` OR (dataset = 'doc_blocks' AND row_id IN (${placeholders}))`\n : \"\";\n return db\n .query(\n `SELECT ${CHANGE_SELECT} FROM crdt_changes\n WHERE (dataset = 'documents' AND row_id = ?)${blockClause}\n ORDER BY hlc`,\n )\n .all(docId, ...blocks) as RawChange[];\n}\n\nexport interface DocRevision {\n /** Version token (max HLC of the revision) — pass to documentAtVersion/revertDocument. */\n version: string;\n /** Wall-clock time derived from the version HLC (ISO 8601). */\n at: string;\n node_id: string;\n /** Source of the revision: a user edit, a repairHub fix, or a revert. */\n kind: RevisionKind;\n changes: number;\n created: boolean;\n deleted: boolean;\n title_changed: boolean;\n blocks_changed: number;\n blocks_deleted: number;\n}\n\n/** A document's edit history, newest first, clustered into save-sized revisions. */\nexport function listDocumentRevisions(db: DbDriver, id: string): DocRevision[] {\n const changes = docChanges(db, id);\n if (!changes.length) throw new MhError(\"not_found\", `no such document: ${id}`);\n return clusterRevisions(changes)\n .map((group) => {\n const changedBlocks = new Set<string>();\n const deletedBlocks = new Set<string>();\n let created = false;\n let deleted = false;\n let titleChanged = false;\n for (const c of group) {\n if (c.dataset === \"documents\") {\n if (c.col === \"created_hlc\") created = true;\n else if (c.col === \"title\") titleChanged = true;\n else if (c.col === \"__deleted\") deleted = flagSet(c.value);\n } else if (c.col === \"__deleted\" && flagSet(c.value)) {\n deletedBlocks.add(c.row_id);\n } else if (c.col === \"text\") {\n changedBlocks.add(c.row_id);\n }\n }\n const last = group[group.length - 1]!;\n return {\n version: last.hlc,\n at: hlcIso(last.hlc),\n node_id: last.node_id,\n kind: revisionKind(last.txn),\n changes: group.length,\n created,\n deleted,\n title_changed: titleChanged,\n blocks_changed: changedBlocks.size,\n blocks_deleted: deletedBlocks.size,\n };\n })\n .reverse();\n}\n\nexport interface DocumentVersionState {\n id: string;\n title: string;\n body: string;\n deleted: boolean;\n /** Exact version (max HLC <= the requested cutoff) this state corresponds to. */\n version: string;\n}\n\n/** Reconstruct a document as of version cutoff `at` (state at hlc <= at). */\nexport function documentAtVersion(db: DbDriver, id: string, at: string): DocumentVersionState {\n if (!at) throw new MhError(\"invalid_input\", \"missing version cutoff\");\n const changes = docChanges(db, id).filter((c) => c.hlc <= at);\n if (!changes.length)\n throw new MhError(\"not_found\", `no version of document ${id} at or before ${at}`);\n\n const docRegs = registersAt(changes.filter((c) => c.dataset === \"documents\"), at);\n const parse = (col: string): unknown => {\n const r = docRegs.get(col);\n return r?.value == null ? undefined : JSON.parse(r.value);\n };\n\n // Per-block registers at the cutoff; a block counts only if it points at this\n // document, is not tombstoned, and has text — mirroring recomputeDocBody().\n const byBlock = new Map<string, RawChange[]>();\n for (const c of changes) {\n if (c.dataset !== \"doc_blocks\") continue;\n (byBlock.get(c.row_id) ?? byBlock.set(c.row_id, []).get(c.row_id)!).push(c);\n }\n const blocks: { id: string; text: string; order_key: string | null; blankAfter: number }[] = [];\n for (const [blockId, blockChanges] of byBlock) {\n const regs = registersAt(blockChanges, at);\n const reg = (col: string): unknown => {\n const r = regs.get(col);\n return r?.value == null ? undefined : JSON.parse(r.value);\n };\n if (reg(\"doc_id\") !== id) continue;\n if (regs.get(\"__deleted\") && flagSet(regs.get(\"__deleted\")!.value)) continue;\n const text = reg(\"text\");\n if (typeof text !== \"string\" || !text) continue;\n blocks.push({\n id: blockId,\n text,\n order_key: (reg(\"order_key\") as string | undefined) ?? null,\n blankAfter: (reg(\"blank_after\") as number | undefined) ?? 0,\n });\n }\n blocks.sort((a, b) => {\n if (a.order_key !== b.order_key) {\n if (a.order_key === null) return -1; // NULL sorts first, like the SQL ORDER BY\n if (b.order_key === null) return 1;\n return a.order_key < b.order_key ? -1 : 1;\n }\n return a.id < b.id ? -1 : 1;\n });\n\n // Pre-block-model documents kept their body in the documents.body register;\n // it stays authoritative until the first block exists (cf. isBlockManaged).\n const body = byBlock.size\n ? serializeDocBlocks(blocks)\n : ((parse(\"body\") as string | undefined) ?? \"\");\n\n return {\n id,\n title: (parse(\"title\") as string | undefined) ?? \"\",\n body,\n deleted: docRegs.get(\"__deleted\") ? flagSet(docRegs.get(\"__deleted\")!.value) : false,\n version: changes[changes.length - 1]!.hlc,\n };\n}\n\nexport interface RevertDocResult {\n id: string;\n changed: boolean;\n /** The version token the document was restored to. */\n restored: string;\n /** The document's version after the revert (a new head — revert is a forward write). */\n version: string;\n /** True when the revert resurrected a tombstoned document. */\n undeleted: boolean;\n}\n\n/**\n * Restore a document's title/body to a past version, as a new forward edit\n * (reuses updateDocument's block reconcile, so unchanged blocks keep identity).\n * Reverting a tombstoned document resurrects it; children unparented by the\n * delete stay where they are. One change group, so history shows ONE revision.\n */\nexport const revertDocument = grouped(function revertDocument(\n db: DbDriver,\n id: string,\n to: string,\n opts: { ifMatch?: string } = {},\n): RevertDocResult {\n let cur = getDocument(db, id);\n if (!cur && !db.query(\"SELECT 1 AS x FROM documents WHERE id = ?\").get(id))\n throw new MhError(\"not_found\", `no such document: ${id}`);\n if (opts.ifMatch !== undefined && documentVersion(db, id) !== opts.ifMatch)\n throw new MhError(\"stale\", `stale: document changed since ${opts.ifMatch}; re-read first`);\n\n const past = documentAtVersion(db, id, to);\n if (past.deleted)\n throw new MhError(\"invalid_input\", \"target version is a deleted state; use doc delete instead\");\n\n const undeleted = !cur;\n if (!cur) {\n // Resurrect the doc row; its blocks stay tombstoned (the body cache is empty),\n // so the body restore below re-inserts the past blocks via reconcile.\n emit(db, \"documents\", id, \"__deleted\", 0);\n cur = getDocument(db, id)!;\n }\n\n const fields: { title?: string; body?: string } = {};\n if (past.title !== cur.title) fields.title = past.title;\n if (past.body !== (cur.body ?? \"\")) fields.body = past.body;\n if (Object.keys(fields).length) updateDocument(db, id, fields);\n\n return {\n id,\n changed: Object.keys(fields).length > 0 || undeleted,\n restored: past.version,\n version: documentVersion(db, id),\n undeleted,\n };\n}, \"revert\");\n\n// ---- records -------------------------------------------------------------------\n\n/** records-dataset meta columns; every other col is a property cell. */\nconst RECORD_META = new Set([\"database_id\", \"created_hlc\", \"order_key\", \"__deleted\"]);\n\nexport interface RecordRevision {\n version: string;\n at: string;\n node_id: string;\n kind: RevisionKind;\n changes: number;\n created: boolean;\n deleted: boolean;\n /** Property ids of the cells written in this revision. */\n fields: string[];\n moved: boolean;\n}\n\n/** Summarize one change group of a record into a revision. */\nfunction recordRevisionOf(group: RawChange[]): RecordRevision {\n const fields = new Set<string>();\n let created = false;\n let deleted = false;\n let moved = false;\n for (const c of group) {\n if (c.col === \"created_hlc\") created = true;\n else if (c.col === \"__deleted\") deleted = flagSet(c.value);\n else if (c.col === \"order_key\") moved = true;\n else if (!RECORD_META.has(c.col)) fields.add(c.col);\n }\n const last = group[group.length - 1]!;\n return {\n version: last.hlc,\n at: hlcIso(last.hlc),\n node_id: last.node_id,\n kind: revisionKind(last.txn),\n changes: group.length,\n created,\n deleted,\n fields: [...fields],\n moved,\n };\n}\n\n/** A record's edit history, newest first, clustered into save-sized revisions. */\nexport function listRecordRevisions(db: DbDriver, id: string): RecordRevision[] {\n const changes = rowChanges(db, \"records\", id);\n if (!changes.length) throw new MhError(\"not_found\", `no such record: ${id}`);\n return clusterRevisions(changes).map(recordRevisionOf).reverse();\n}\n\n/** One cell's value change inside a revision. A missing `before`/`after` key\n * means the cell did not exist on that side (distinct from an explicit null). */\nexport interface FieldChange {\n prop: string;\n before?: unknown;\n after?: unknown;\n}\n\nexport interface DatabaseActivityEntry extends RecordRevision {\n record_id: string;\n /** Title-property value as of this revision — deleted records keep their last title. */\n record_title: string | null;\n /** Value-level changes of the touched cells. */\n diffs: FieldChange[];\n}\n\n/**\n * \"What happened in this table lately\": every record's revisions, merged and\n * sorted newest first. Includes tombstoned records (so deletions show up) — a\n * read-only aggregation, same clustering as listRecordRevisions per record.\n * Walking each record's change stream oldest-first lets us carry a running\n * cell-state map, so every entry ships its old→new values and a title snapshot\n * for free (no extra queries). After compaction, `before` at the window edge\n * may be missing (the superseded write was pruned) — it reads as \"was empty\".\n */\nexport function listDatabaseActivity(\n db: DbDriver,\n databaseId: string,\n opts: { limit?: number } = {},\n): DatabaseActivityEntry[] {\n if (!db.query(\"SELECT 1 AS x FROM databases WHERE id = ?\").get(databaseId))\n throw new MhError(\"not_found\", `no such database: ${databaseId}`);\n // The first live text property is the de-facto record title (same rule the\n // reference resolver uses).\n const titleProp =\n (\n db\n .query(\n \"SELECT id FROM properties WHERE database_id = ? AND type = 'text' AND __deleted = 0 ORDER BY position LIMIT 1\",\n )\n .get(databaseId) as { id: string } | null\n )?.id ?? null;\n\n const changes = db\n .query(\n `SELECT ${CHANGE_SELECT} FROM crdt_changes\n WHERE dataset = 'records' AND row_id IN (SELECT id FROM records WHERE database_id = ?)\n ORDER BY row_id, hlc`,\n )\n .all(databaseId) as RawChange[];\n\n const out: DatabaseActivityEntry[] = [];\n let start = 0;\n for (let i = 1; i <= changes.length; i++) {\n if (i !== changes.length && changes[i]!.row_id === changes[start]!.row_id) continue;\n const rowId = changes[start]!.row_id;\n // Running cell state, mirroring materialize(): null value = json_remove.\n const state = new Map<string, unknown>();\n for (const g of clusterRevisions(changes.slice(start, i))) {\n const touched = new Set<string>();\n for (const c of g) if (!RECORD_META.has(c.col)) touched.add(c.col);\n const before = new Map<string, unknown>();\n for (const col of touched) if (state.has(col)) before.set(col, state.get(col));\n for (const c of g) {\n if (RECORD_META.has(c.col)) continue;\n if (c.value === null) state.delete(c.col);\n else state.set(c.col, JSON.parse(c.value));\n }\n const diffs: FieldChange[] = [];\n for (const col of touched) {\n const fc: FieldChange = { prop: col };\n if (before.has(col)) fc.before = before.get(col);\n if (state.has(col)) fc.after = state.get(col);\n diffs.push(fc);\n }\n out.push({\n ...recordRevisionOf(g),\n record_id: rowId,\n record_title:\n titleProp && state.has(titleProp) ? String(state.get(titleProp) ?? \"\") : null,\n diffs,\n });\n }\n start = i;\n }\n out.sort((a, b) => (a.version < b.version ? 1 : -1));\n return out.slice(0, opts.limit ?? 100);\n}\n\nexport interface RecordVersionState {\n id: string;\n database_id: string | null;\n deleted: boolean;\n /** Cells present at that version, keyed by property id (raw, no name mapping). */\n data: Record<string, unknown>;\n version: string;\n}\n\n/** Reconstruct a record as of version cutoff `at` (state at hlc <= at). */\nexport function recordAtVersion(db: DbDriver, id: string, at: string): RecordVersionState {\n if (!at) throw new MhError(\"invalid_input\", \"missing version cutoff\");\n const changes = rowChanges(db, \"records\", id).filter((c) => c.hlc <= at);\n if (!changes.length)\n throw new MhError(\"not_found\", `no version of record ${id} at or before ${at}`);\n\n const regs = registersAt(changes, at);\n const data: Record<string, unknown> = {};\n for (const [col, reg] of regs) {\n if (RECORD_META.has(col)) continue;\n if (reg.value === null) continue; // cleared cell (json_remove)\n data[col] = JSON.parse(reg.value);\n }\n const dbReg = regs.get(\"database_id\");\n return {\n id,\n database_id: dbReg?.value == null ? null : (JSON.parse(dbReg.value) as string),\n deleted: regs.get(\"__deleted\") ? flagSet(regs.get(\"__deleted\")!.value) : false,\n data,\n version: changes[changes.length - 1]!.hlc,\n };\n}\n\nexport interface RevertRecordResult {\n id: string;\n changed: boolean;\n /** Property ids whose cells were written by the revert. */\n fields: string[];\n /** True when the revert resurrected a tombstoned record. */\n undeleted: boolean;\n restored: string;\n}\n\n/** Restore a record's cells to a past version as a new forward edit. Only cells\n * of currently-live properties are touched, so no orphan cells are recreated\n * (the repairHub invariant). Reverting a tombstoned record resurrects it. */\nexport const revertRecord = grouped(function revertRecord(\n db: DbDriver,\n id: string,\n to: string,\n): RevertRecordResult {\n const cur = db\n .query(\"SELECT database_id, data, __deleted FROM records WHERE id = ?\")\n .get(id) as { database_id: string | null; data: string; __deleted: number } | null;\n if (!cur) throw new MhError(\"not_found\", `no such record: ${id}`);\n\n const past = recordAtVersion(db, id, to);\n if (past.deleted)\n throw new MhError(\"invalid_input\", \"target version is a deleted state; use record delete instead\");\n\n const liveProps = new Set(\n cur.database_id ? listProperties(db, cur.database_id).map((p) => p.id) : [],\n );\n const curData = JSON.parse(cur.data || \"{}\") as Record<string, unknown>;\n const fields: string[] = [];\n for (const propId of liveProps) {\n const inPast = Object.hasOwn(past.data, propId);\n const inCur = Object.hasOwn(curData, propId);\n if (inPast && (!inCur || JSON.stringify(past.data[propId]) !== JSON.stringify(curData[propId]))) {\n emit(db, \"records\", id, propId, past.data[propId]);\n fields.push(propId);\n } else if (!inPast && inCur) {\n emit(db, \"records\", id, propId, undefined); // clear: materializes as json_remove\n fields.push(propId);\n }\n }\n const undeleted = cur.__deleted !== 0;\n if (undeleted) emit(db, \"records\", id, \"__deleted\", 0);\n\n return { id, changed: fields.length > 0 || undeleted, fields, undeleted, restored: past.version };\n}, \"revert\");\n\n// ---- properties (schema-level rollback) ------------------------------------------\n\n/** Property register columns that make up the column definition. */\nconst PROP_DEF_COLS = [\"name\", \"type\", \"config\", \"position\"] as const;\n\nexport interface PropertyRevision {\n version: string;\n at: string;\n node_id: string;\n kind: RevisionKind;\n changes: number;\n created: boolean;\n deleted: boolean;\n /** Definition columns touched in this revision (name/type/config/position). */\n fields: string[];\n /** Record cells the same change group cleared (a type change / removal cascade). */\n cells_cleared: number;\n}\n\n/** A property's definition history, newest first. Cascaded cell clears are\n * counted via the shared txn so a type change reads as one revision. */\nexport function listPropertyRevisions(db: DbDriver, id: string): PropertyRevision[] {\n const changes = rowChanges(db, \"properties\", id);\n if (!changes.length) throw new MhError(\"not_found\", `no such property: ${id}`);\n const clearedByTxn = new Map<string, number>(\n (\n db\n .query(\n \"SELECT txn, COUNT(*) AS n FROM crdt_changes WHERE dataset = 'records' AND col = ? AND txn IS NOT NULL GROUP BY txn\",\n )\n .all(id) as { txn: string; n: number }[]\n ).map((r) => [r.txn, r.n]),\n );\n return clusterRevisions(changes)\n .map((group) => {\n const fields = new Set<string>();\n let created = false;\n let deleted = false;\n for (const c of group) {\n if (c.col === \"database_id\") created = true; // only emitted at creation\n else if (c.col === \"__deleted\") deleted = flagSet(c.value);\n else if ((PROP_DEF_COLS as readonly string[]).includes(c.col)) fields.add(c.col);\n }\n const last = group[group.length - 1]!;\n return {\n version: last.hlc,\n at: hlcIso(last.hlc),\n node_id: last.node_id,\n kind: revisionKind(last.txn),\n changes: group.length,\n created,\n deleted,\n fields: [...fields],\n cells_cleared: last.txn ? (clearedByTxn.get(last.txn) ?? 0) : 0,\n };\n })\n .reverse();\n}\n\nexport interface PropertyVersionState {\n id: string;\n database_id: string | null;\n name: string;\n type: string;\n config: unknown;\n position: number | null;\n deleted: boolean;\n version: string;\n}\n\n/** Reconstruct a property definition as of version cutoff `at`. */\nexport function propertyAtVersion(db: DbDriver, id: string, at: string): PropertyVersionState {\n if (!at) throw new MhError(\"invalid_input\", \"missing version cutoff\");\n const changes = rowChanges(db, \"properties\", id).filter((c) => c.hlc <= at);\n if (!changes.length)\n throw new MhError(\"not_found\", `no version of property ${id} at or before ${at}`);\n const regs = registersAt(changes, at);\n const reg = (col: string): unknown => {\n const r = regs.get(col);\n return r?.value == null ? undefined : JSON.parse(r.value);\n };\n return {\n id,\n database_id: (reg(\"database_id\") as string | undefined) ?? null,\n name: (reg(\"name\") as string | undefined) ?? \"\",\n type: (reg(\"type\") as string | undefined) ?? \"text\",\n config: reg(\"config\") ?? null,\n position: (reg(\"position\") as number | undefined) ?? null,\n deleted: regs.get(\"__deleted\") ? flagSet(regs.get(\"__deleted\")!.value) : false,\n version: changes[changes.length - 1]!.hlc,\n };\n}\n\nexport interface RevertPropertyResult {\n id: string;\n changed: boolean;\n /** Definition columns the revert wrote. */\n fields: string[];\n /** Record cells restored to their value at the target version. */\n restored_cells: number;\n /** Cells left alone because a user wrote them after the target version. */\n skipped_cells: number;\n undeleted: boolean;\n restored: string;\n}\n\n/**\n * Schema-level rollback: restore a property's definition AND the record cells\n * its later type-change/removal cascades cleared. Definition registers are\n * emitted directly (never via updateProperty — its type-change cascade would\n * re-clear the cells being restored). A cell is only touched when its current\n * winner IS the cascade (or a repair); it is restored to the last value before\n * that cascade, so user data — written before or after the target version —\n * always survives. Cells whose winner is a user write are kept (skipped_cells).\n * Pre-txn legacy writes can't be attributed, so they count as user writes.\n */\nexport const revertProperty = grouped(function revertProperty(\n db: DbDriver,\n id: string,\n to: string,\n): RevertPropertyResult {\n const cur = db\n .query(\n \"SELECT database_id, name, type, config, position, __deleted FROM properties WHERE id = ?\",\n )\n .get(id) as {\n database_id: string | null;\n name: string | null;\n type: string | null;\n config: string | null;\n position: number | null;\n __deleted: number;\n } | null;\n if (!cur) throw new MhError(\"not_found\", `no such property: ${id}`);\n\n const past = propertyAtVersion(db, id, to);\n if (past.deleted)\n throw new MhError(\"invalid_input\", \"target version is a deleted state; use prop remove instead\");\n\n // 1) Restore the column definition (diff only — no cascades).\n const curDef: Record<string, unknown> = {\n name: cur.name,\n type: cur.type,\n config: cur.config ? JSON.parse(cur.config) : null,\n position: cur.position,\n };\n const pastDef: Record<string, unknown> = {\n name: past.name,\n type: past.type,\n config: past.config,\n position: past.position,\n };\n const fields: string[] = [];\n for (const col of PROP_DEF_COLS) {\n if (JSON.stringify(pastDef[col] ?? null) !== JSON.stringify(curDef[col] ?? null)) {\n emit(db, \"properties\", id, col, pastDef[col]);\n fields.push(col);\n }\n }\n const undeleted = cur.__deleted !== 0;\n if (undeleted) emit(db, \"properties\", id, \"__deleted\", 0);\n\n // 2) Restore the cells. Cascade writes are identified by sharing a txn with a\n // post-target change to this property's own registers.\n const schemaTxns = new Set(\n (\n db\n .query(\n \"SELECT DISTINCT txn FROM crdt_changes WHERE dataset = 'properties' AND row_id = ? AND hlc > ? AND txn IS NOT NULL\",\n )\n .all(id, to) as { txn: string }[]\n ).map((r) => r.txn),\n );\n const cellChanges = db\n .query(\n \"SELECT row_id, hlc, value, txn FROM crdt_changes WHERE dataset = 'records' AND col = ? ORDER BY row_id, hlc\",\n )\n .all(id) as { row_id: string; hlc: string; value: string | null; txn: string | null }[];\n\n const isCascade = (txn: string | null): boolean =>\n txn !== null && (schemaTxns.has(txn) || txn.startsWith(\"repair:\"));\n\n let restored = 0;\n let skipped = 0;\n let i = 0;\n while (i < cellChanges.length) {\n const rowId = cellChanges[i]!.row_id;\n let winner = cellChanges[i]!;\n let lastUser: { value: string | null } | null = null; // latest non-cascade write\n for (; i < cellChanges.length && cellChanges[i]!.row_id === rowId; i++) {\n winner = cellChanges[i]!;\n if (!isCascade(winner.txn)) lastUser = winner;\n }\n if (winner.hlc <= to) continue; // untouched since the target version\n if (!isCascade(winner.txn)) {\n skipped++; // current value is a user write — keep it\n continue;\n }\n const target = lastUser ? lastUser.value : null; // null = cell never had a user value\n if (target === winner.value) continue; // converged back on its own\n emit(db, \"records\", rowId, id, target === null ? undefined : JSON.parse(target));\n restored++;\n }\n\n return {\n id,\n changed: fields.length > 0 || undeleted || restored > 0,\n fields,\n restored_cells: restored,\n skipped_cells: skipped,\n undeleted,\n restored: past.version,\n };\n}, \"revert\");\n\nexport interface FieldHistoryEntry {\n version: string;\n at: string;\n node_id: string;\n /** The value written; undefined when the write cleared the cell. */\n value: unknown;\n cleared: boolean;\n}\n\n/** The full write trail of one record cell (property id), newest first. */\nexport function recordFieldHistory(db: DbDriver, id: string, propId: string): FieldHistoryEntry[] {\n const rows = db\n .query(\n \"SELECT hlc, node_id, value FROM crdt_changes WHERE dataset = 'records' AND row_id = ? AND col = ? ORDER BY hlc DESC\",\n )\n .all(id, propId) as { hlc: string; node_id: string; value: string | null }[];\n return rows.map((r) => ({\n version: r.hlc,\n at: hlcIso(r.hlc),\n node_id: r.node_id,\n value: r.value === null ? undefined : JSON.parse(r.value),\n cleared: r.value === null,\n }));\n}\n",
135
139
  "import { z } from \"zod\";\nimport { errorResponse, type Route } from \"../../core/sync/routes.ts\";\nimport { MhError } from \"../../core/errors.ts\";\nimport {\n createShareAction,\n revokeShareAction,\n renewShareAction,\n listSharesLocal,\n listShareServers,\n listShareBuckets,\n type CreateShareRequest,\n} from \"../../core/sync/share-actions.ts\";\n\n// Share management. POST/DELETE /api/share and GET /api/shares additionally accept\n// a pairing grant (see server.ts gate) so a paired peer can create/list/revoke a\n// share on this node remotely. The PUBLIC surface — opening a share — is the\n// separate token-exempt /share/<slug> path (core/sync/share-serve.ts).\n\nconst CreateShareReq = z.object({\n kind: z.enum([\"doc\", \"database\", \"site\"]),\n ref: z.string(),\n transport: z.enum([\"server\", \"s3\"]).optional(),\n permission: z.enum([\"view\", \"edit\"]).optional(),\n password: z.string().nullable().optional(),\n expiresMs: z.number().nullable().optional(),\n server: z.string().nullable().optional(),\n bucketUrl: z.string().nullable().optional(),\n viewerBase: z.string().optional(),\n});\nconst CreatedShareRes = z.object({\n slug: z.string(),\n kind: z.string(),\n permission: z.string(),\n transport: z.string(),\n url: z.string(),\n expiresAt: z.number().nullable(),\n source: z.string(),\n});\nconst ShareListItemRes = z.object({\n slug: z.string(),\n kind: z.string(),\n target_id: z.string(),\n title: z.string(),\n permission: z.string(),\n transport: z.string(),\n source: z.string(),\n sourceKind: z.string(),\n expiresAt: z.number().nullable(),\n hasPassword: z.boolean(),\n url: z.string().optional(),\n});\n\nfunction originBase(req: Request): string {\n const url = new URL(req.url);\n return `${url.protocol}//${url.host}`;\n}\n\nexport const shareRoutes: Route[] = [\n {\n method: \"GET\",\n path: \"/api/share/servers\",\n summary: \"Paired servers a share can be created on / served by (master-only).\",\n response: z.array(z.object({ url: z.string(), label: z.string() })),\n handler: (_req, { db }) => Response.json(listShareServers(db)),\n },\n {\n method: \"GET\",\n path: \"/api/share/buckets\",\n summary: \"Object-storage buckets available as a share transport (master-only).\",\n response: z.array(z.object({ url: z.string(), label: z.string() })),\n handler: (_req, { db }) => Response.json(listShareBuckets(db)),\n },\n {\n method: \"GET\",\n path: \"/api/shares\",\n summary:\n \"List shares this node serves (its local server shares + its buckets). Query: ?target=<id>. \" +\n \"Accepts a pairing grant so a peer's aggregated list can fan in. Does NOT fan out itself.\",\n response: z.array(ShareListItemRes),\n handler: async (req, { db }) => {\n try {\n const target = new URL(req.url).searchParams.get(\"target\") ?? undefined;\n return Response.json(await listSharesLocal(db, target));\n } catch (e) {\n return errorResponse(e);\n }\n },\n },\n {\n method: \"POST\",\n path: \"/api/share\",\n summary: \"Create a share (transport: server | s3). server=<peer url> creates it remotely on that peer.\",\n request: CreateShareReq,\n response: CreatedShareRes,\n handler: async (req, { db }) => {\n try {\n const body = (await req.json()) as Partial<CreateShareRequest>;\n if (!body.kind || !body.ref) throw new MhError(\"invalid_input\", \"kind and ref are required\");\n const transport = body.transport ?? \"server\";\n // For a LOCAL server share, default the recorded base to the address the\n // caller reached us on (so the copied link is reachable). A peer url in\n // `server` is left as-is → createShareAction creates it on that peer.\n let server = body.server ?? undefined;\n if (transport === \"server\" && !isPeer(db, server)) server = server || originBase(req);\n const out = await createShareAction(db, {\n kind: body.kind,\n ref: body.ref,\n transport,\n permission: body.permission,\n password: body.password ?? null,\n expiresMs: body.expiresMs ?? null,\n server,\n bucketUrl: body.bucketUrl ?? null,\n viewerBase: body.viewerBase,\n });\n return Response.json(out);\n } catch (e) {\n return errorResponse(e);\n }\n },\n },\n {\n method: \"POST\",\n path: \"/api/share/renew\",\n summary: \"Re-presign an object-storage share and return a fresh link. Query: ?slug=<slug>\",\n response: CreatedShareRes,\n handler: async (req, { db }) => {\n try {\n const slug = new URL(req.url).searchParams.get(\"slug\");\n if (!slug) throw new MhError(\"invalid_input\", \"slug required\");\n return Response.json(await renewShareAction(db, slug));\n } catch (e) {\n return errorResponse(e);\n }\n },\n },\n {\n method: \"DELETE\",\n path: \"/api/share\",\n summary: \"Revoke a share (local server row, or a bucket share's objects). Query: ?slug=<slug>\",\n response: z.object({ ok: z.boolean() }),\n handler: async (req, { db }) => {\n try {\n const slug = new URL(req.url).searchParams.get(\"slug\");\n if (!slug) throw new MhError(\"invalid_input\", \"slug required\");\n return Response.json({ ok: await revokeShareAction(db, slug) });\n } catch (e) {\n return errorResponse(e);\n }\n },\n },\n];\n\nfunction isPeer(db: import(\"../../core/driver.ts\").DbDriver, url?: string): boolean {\n if (!url) return false;\n return listShareServers(db).some((s) => s.url === url);\n}\n",
136
140
  "// Share orchestration shared by the CLI (`mh share`) and the WebUI (/api/share),\n// so both surfaces resolve targets, mint rows / bucket bundles, and aggregate\n// listings identically (the addAndSyncStoragePeer pattern).\n//\n// Two backends, two homes for the record:\n// - server share → a local `shares` row on the serving node (this node, or a\n// paired peer when `server` names one — created there over HTTP with the grant).\n// - object-storage share → objects in the bucket (no local row); listable by any\n// device that holds the bucket. See share-export.ts.\n// Cross-device listing is fan-out: local rows + each bucket + each paired peer.\n\nimport type { DbDriver } from \"../driver.ts\";\nimport { MhError } from \"../errors.ts\";\nimport { randomSuffix } from \"../ids.ts\";\nimport { resolveEntity } from \"../resolve.ts\";\nimport { resolveSite, getSite } from \"../sites.ts\";\nimport { getDocument } from \"../documents.ts\";\nimport { getDatabase } from \"../databases.ts\";\nimport { listPeers, getPeer } from \"./peers.ts\";\nimport {\n createShare,\n deleteShare,\n getShare,\n listShares,\n listSharesForTarget,\n hashSharePassword,\n type ShareKind,\n type SharePermission,\n} from \"../shares.ts\";\nimport {\n createBucketShare,\n renewBucketShare,\n listBucketShares,\n deleteBucketShareObjects,\n} from \"./share-export.ts\";\nimport { MAX_PRESIGN_SECONDS } from \"./storage-s3-bun.ts\";\nimport type { S3Config } from \"./storage.ts\";\n\nconst DEFAULT_SHARE_VIEWER = \"https://share.mh.tensorix.org\";\nconst DEFAULT_S3_EXPIRY_SEC = MAX_PRESIGN_SECONDS;\nconst PEER_LIST_TIMEOUT_MS = 4000;\n\nexport interface CreateShareRequest {\n kind: ShareKind;\n ref: string;\n permission?: SharePermission;\n transport?: \"server\" | \"s3\";\n password?: string | null;\n /** Server: any duration (ms); null = never. s3: clamped to ≤7d; default 7d. */\n expiresMs?: number | null;\n /** server transport target: a paired peer url → create remotely on that peer;\n * any other base url (this node's origin / LAN / domain) → create locally and\n * record it as served_base; undefined → local with no recorded base. */\n server?: string | null;\n /** s3: which bucket peer url; default the single s3 peer if exactly one. */\n bucketUrl?: string | null;\n /** s3 only: the static viewer base for the link. */\n viewerBase?: string;\n}\n\nexport interface CreatedShare {\n slug: string;\n kind: ShareKind;\n permission: SharePermission;\n transport: \"server\" | \"s3\";\n /** Full link to copy (server: served_base/share/slug; s3: viewer link). */\n url: string;\n expiresAt: number | null;\n /** Human label of where it's served: a server address or a bucket name. */\n source: string;\n}\n\n/** A row in the aggregated share listing (CLI `list` / WebUI panel). */\nexport interface ShareListItem {\n slug: string;\n kind: string;\n target_id: string;\n /** Human title of the shared object (for the management list). */\n title: string;\n permission: string;\n transport: \"server\" | \"s3\";\n source: string;\n sourceKind: \"server\" | \"peer\" | \"bucket\";\n expiresAt: number | null;\n hasPassword: boolean;\n /** server: ready-to-copy link; s3: omitted (use renew to mint a fresh one). */\n url?: string;\n}\n\n/** Best-effort human title of a shared target (falls back to the id). */\nfunction targetTitle(db: DbDriver, kind: string, id: string): string {\n try {\n if (kind === \"doc\") return getDocument(db, id)?.title || id;\n if (kind === \"database\") return getDatabase(db, id)?.name || id;\n if (kind === \"site\") {\n const s = getSite(db, id);\n return s?.title || s?.name || id;\n }\n } catch {\n /* ignore — fall through to id */\n }\n return id;\n}\n\nfunction resolveTarget(db: DbDriver, kind: ShareKind, ref: string): { id: string; title: string } {\n if (kind === \"site\") {\n const s = resolveSite(db, ref);\n return { id: s.id, title: s.name };\n }\n const c = resolveEntity(db, ref, { kind: kind === \"database\" ? \"db\" : \"doc\" });\n return { id: c.id, title: c.label };\n}\n\nfunction s3PeerConfig(db: DbDriver, url: string): { config: S3Config; label: string } {\n const peer = getPeer(db, url);\n if (!peer || peer.kind !== \"s3\" || !peer.config)\n throw new MhError(\"not_found\", `no such object-storage bucket: ${url}`);\n return { config: JSON.parse(peer.config) as S3Config, label: peer.label ?? url };\n}\n\n/** s3 bucket peers (no secrets) for a transport picker. */\nexport function listShareBuckets(db: DbDriver): { url: string; label: string }[] {\n return listPeers(db)\n .filter((p) => p.kind === \"s3\")\n .map((p) => ({ url: p.url, label: p.label ?? p.url }));\n}\n\n/** Paired HTTP peer servers (a share can be created on / served by them). */\nexport function listShareServers(db: DbDriver): { url: string; label: string }[] {\n return listPeers(db)\n .filter((p) => p.kind !== \"s3\")\n .map((p) => ({ url: p.url, label: p.label ?? p.url }));\n}\n\nfunction pickBucket(db: DbDriver, bucketUrl?: string | null): string {\n if (bucketUrl) return bucketUrl;\n const buckets = listShareBuckets(db);\n if (buckets.length === 0)\n throw new MhError(\"invalid_input\", \"no object-storage bucket attached — add one with `mh config peer add --s3`\");\n if (buckets.length > 1)\n throw new MhError(\"invalid_input\", `multiple buckets — pass --bucket <url> (one of: ${buckets.map((b) => b.url).join(\", \")})`);\n return buckets[0]!.url;\n}\n\nfunction viewerBase(db: DbDriver, override?: string): string {\n if (override) return override.replace(/\\/+$/, \"\");\n const row = db.query(\"SELECT value FROM meta WHERE key='cfg_share_viewer_url'\").get() as\n | { value: string }\n | null;\n return (row?.value || DEFAULT_SHARE_VIEWER).replace(/\\/+$/, \"\");\n}\n\nfunction viewerOriginOf(base: string): string | undefined {\n try {\n return new URL(base).origin;\n } catch {\n return undefined;\n }\n}\n\nfunction bucketLink(base: string, manifestUrl: string, keyB64?: string, saltB64?: string): string {\n const frag = `m=${encodeURIComponent(manifestUrl)}&` + (keyB64 ? `k=${keyB64}` : `s=${saltB64}`);\n return `${base}/#${frag}`;\n}\n\n/** Resolve, validate, and create (server local / server remote / s3 bucket) a share. */\nexport async function createShareAction(db: DbDriver, req: CreateShareRequest): Promise<CreatedShare> {\n const permission = req.permission ?? \"view\";\n const transport = req.transport ?? \"server\";\n\n // ── object storage ──────────────────────────────────────────────────────────\n if (transport === \"s3\") {\n if (permission === \"edit\")\n throw new MhError(\"invalid_input\", \"object-storage shares are read-only — use the server transport to allow editing\");\n if (req.kind === \"site\")\n throw new MhError(\"invalid_input\", \"sites can't be shared via object storage — use the server transport\");\n const target = resolveTarget(db, req.kind, req.ref);\n const bucketUrl = pickBucket(db, req.bucketUrl);\n const { config, label } = s3PeerConfig(db, bucketUrl);\n const base = viewerBase(db, req.viewerBase);\n const slug = freshSlug(db);\n const out = await createBucketShare(db, {\n slug,\n kind: req.kind,\n targetId: target.id,\n config,\n password: req.password,\n expiresSec: req.expiresMs != null ? Math.floor(req.expiresMs / 1000) : DEFAULT_S3_EXPIRY_SEC,\n viewerOrigin: viewerOriginOf(base),\n });\n return {\n slug,\n kind: req.kind,\n permission: \"view\",\n transport: \"s3\",\n url: bucketLink(base, out.manifestUrl, out.keyB64, out.saltB64),\n expiresAt: out.presignExp,\n source: `桶 ${label}`,\n };\n }\n\n // ── server: remote (a paired peer) ────────────────────────────────────────────\n const peer = req.server ? getPeer(db, req.server) : null;\n if (req.server && peer && peer.kind !== \"s3\") {\n const res = await fetch(`${req.server.replace(/\\/+$/, \"\")}/api/share`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n ...(peer.token ? { authorization: `Bearer ${peer.token}` } : {}),\n },\n body: JSON.stringify({ ...req, server: undefined }),\n }).catch((e) => {\n throw new MhError(\"network\", `could not reach ${req.server}: ${(e as Error).message}`);\n });\n const data = (await res.json().catch(() => ({}))) as Partial<CreatedShare> & { error?: string };\n if (!res.ok) throw new MhError(\"network\", data.error || `remote share failed: ${res.status}`);\n return {\n slug: data.slug!,\n kind: req.kind,\n permission,\n transport: \"server\",\n url: data.url!,\n expiresAt: data.expiresAt ?? null,\n source: peer.label ?? req.server,\n };\n }\n\n // ── server: local ─────────────────────────────────────────────────────────────\n const target = resolveTarget(db, req.kind, req.ref);\n let pwSalt: string | null = null;\n let pwHash: string | null = null;\n if (req.password) {\n const h = await hashSharePassword(req.password);\n pwSalt = h.salt;\n pwHash = h.hash;\n }\n // `server` here is a plain reachable base (not a peer): record it as served_base.\n const servedBase = req.server ? req.server.replace(/\\/+$/, \"\") : null;\n const share = createShare(db, {\n kind: req.kind,\n target_id: target.id,\n permission,\n pwSalt,\n pwHash,\n expiresAt: req.expiresMs != null ? Date.now() + req.expiresMs : null,\n servedBase,\n });\n return {\n slug: share.slug,\n kind: req.kind,\n permission,\n transport: \"server\",\n url: `${servedBase ?? \"\"}/share/${share.slug}`,\n expiresAt: share.expires_at,\n source: servedBase || \"本机服务器\",\n };\n}\n\n/** Local listing (server rows + each attached bucket) — NO peer fan-out (so the\n * /api/shares endpoint a peer calls can't recurse). Optional target filter. */\nexport async function listSharesLocal(db: DbDriver, targetId?: string): Promise<ShareListItem[]> {\n const out: ShareListItem[] = [];\n const rows = targetId ? listSharesForTarget(db, targetId) : listShares(db);\n for (const r of rows) {\n out.push({\n slug: r.slug,\n kind: r.kind,\n target_id: r.target_id,\n title: targetTitle(db, r.kind, r.target_id),\n permission: r.permission,\n transport: \"server\",\n source: r.served_base || \"本机服务器\",\n sourceKind: \"server\",\n expiresAt: r.expires_at,\n hasPassword: !!r.pw_hash,\n url: r.served_base ? `${r.served_base}/share/${r.slug}` : `/share/${r.slug}`,\n });\n }\n for (const p of listPeers(db).filter((x) => x.kind === \"s3\" && x.config)) {\n const config = JSON.parse(p.config!) as S3Config;\n const metas = await listBucketShares(config).catch(() => []);\n for (const m of metas) {\n if (targetId && m.target_id !== targetId) continue;\n out.push({\n slug: m.slug,\n kind: m.kind,\n target_id: m.target_id,\n title: m.title || m.target_id,\n permission: m.permission,\n transport: \"s3\",\n source: `桶 ${p.label ?? p.url}`,\n sourceKind: \"bucket\",\n expiresAt: m.presign_exp,\n hasPassword: m.has_password,\n });\n }\n }\n return out;\n}\n\n/** Aggregated listing for CLI/WebUI: local ∪ each paired peer's /api/shares\n * (best-effort, bounded), deduped by slug. Optional target filter. */\nexport async function listSharesAggregated(db: DbDriver, targetId?: string): Promise<ShareListItem[]> {\n const bySlug = new Map<string, ShareListItem>();\n for (const item of await listSharesLocal(db, targetId)) bySlug.set(item.slug, item);\n\n await Promise.all(\n listShareServers(db).map(async ({ url, label }) => {\n const peer = getPeer(db, url);\n if (!peer?.token) return;\n const items = await fetchPeerShares(url, peer.token, targetId).catch(() => []);\n for (const it of items) {\n if (!bySlug.has(it.slug)) bySlug.set(it.slug, { ...it, source: label, sourceKind: \"peer\" });\n }\n }),\n );\n return [...bySlug.values()];\n}\n\nasync function fetchPeerShares(url: string, token: string, targetId?: string): Promise<ShareListItem[]> {\n const u = `${url.replace(/\\/+$/, \"\")}/api/shares${targetId ? `?target=${encodeURIComponent(targetId)}` : \"\"}`;\n const res = await Promise.race([\n fetch(u, { headers: { authorization: `Bearer ${token}` } }),\n new Promise<Response>((_r, rej) => setTimeout(() => rej(new Error(\"timeout\")), PEER_LIST_TIMEOUT_MS)),\n ]);\n if (!res.ok) return [];\n return (await res.json()) as ShareListItem[];\n}\n\n/** Revoke: local server row → delete it; else a bucket holds it → delete objects. */\nexport async function revokeShareAction(db: DbDriver, slug: string): Promise<boolean> {\n if (getShare(db, slug)) return deleteShare(db, slug);\n for (const p of listPeers(db).filter((x) => x.kind === \"s3\" && x.config)) {\n const config = JSON.parse(p.config!) as S3Config;\n const metas = await listBucketShares(config).catch(() => []);\n if (metas.some((m) => m.slug === slug)) {\n await deleteBucketShareObjects(config, slug);\n return true;\n }\n }\n return false;\n}\n\n/** Renew an s3 share (re-presign, mint a fresh ≤7d link). */\nexport async function renewShareAction(db: DbDriver, slug: string, viewerBaseOverride?: string): Promise<CreatedShare> {\n for (const p of listPeers(db).filter((x) => x.kind === \"s3\" && x.config)) {\n const config = JSON.parse(p.config!) as S3Config;\n const metas = await listBucketShares(config).catch(() => []);\n const m = metas.find((x) => x.slug === slug);\n if (!m) continue;\n const base = viewerBase(db, viewerBaseOverride);\n const out = await renewBucketShare(db, config, slug);\n return {\n slug,\n kind: m.kind,\n permission: \"view\",\n transport: \"s3\",\n url: bucketLink(base, out.manifestUrl, out.keyB64, out.saltB64),\n expiresAt: out.presignExp,\n source: `桶 ${p.label ?? p.url}`,\n };\n }\n throw new MhError(\"not_found\", `no such object-storage share: ${slug}`);\n}\n\n/** An unguessable slug that doesn't collide with a local server-share row. */\nfunction freshSlug(db: DbDriver): string {\n let slug = randomSuffix(12);\n while (getShare(db, slug)) slug = randomSuffix(12);\n return slug;\n}\n",
137
141
  "// Object-storage share export (server-side only — needs the bucket credentials\n// and the blob bytes). Builds a self-contained, end-to-end-encrypted bundle for\n// one doc / database under <prefix>/shares/<slug>/ and presigns every object so\n// a recipient can fetch it with no credential. Decrypted in the browser viewer\n// (share/share-viewer.ts) — the bucket only ever holds ciphertext.\n//\n// Object-storage shares are READ-ONLY (a presigned static object can't accept\n// writes) and cover doc + database only (sites stay on the server transport).\n//\n// The share RECORD lives in the bucket, not in any local table: each share has a\n// `meta.json` (encrypted with the bucket MASTER key, so only devices that hold\n// the bucket can list/manage shares — recipients with just a link cannot). meta\n// carries the per-share content key, which lets any bucket-holding device renew\n// (re-presign) or re-copy the link without the original password.\n\nimport type { DbDriver } from \"../driver.ts\";\nimport { MhError } from \"../errors.ts\";\nimport { getDocument } from \"../documents.ts\";\nimport { getDatabase } from \"../databases.ts\";\nimport { listProperties } from \"../properties.ts\";\nimport { listRecords } from \"../records.ts\";\nimport { resolveBlob, blobContentType } from \"../blobs.ts\";\nimport { storageClientFor, type S3Config } from \"./storage.ts\";\nimport { presignGet, putBucketCors, MAX_PRESIGN_SECONDS } from \"./storage-s3-bun.ts\";\nimport {\n encryptBytes,\n decryptBytes,\n generateMasterKey,\n deriveShareKey,\n toB64,\n fromB64,\n} from \"./e2ee.ts\";\n\nexport interface ShareManifest {\n v: 1;\n kind: \"doc\" | \"database\";\n title: string;\n body?: string;\n properties?: { id: string; name: string; type: string }[];\n records?: { cells: Record<string, unknown> }[];\n /** hash → { presigned GET of the (encrypted) blob, original content-type }. */\n blobs?: Record<string, { url: string; ct: string }>;\n}\n\n/** Bucket-resident share descriptor (master-key encrypted). The listable source\n * of truth for an object-storage share. */\nexport interface BucketShareMeta {\n v: 1;\n slug: string;\n kind: \"doc\" | \"database\";\n target_id: string;\n title: string;\n permission: \"view\";\n created_at: number;\n /** epoch ms the presigned URLs expire (≤ 7 days out). */\n presign_exp: number;\n has_password: boolean;\n /** every object key this share owns (manifest + each blob) — for renew + delete. */\n objects: string[];\n /** base64 per-share content key (lets a bucket-holder renew / re-copy the link). */\n key: string;\n /** base64 salt (password shares); the link carries this, viewer derives the key. */\n salt?: string;\n}\n\nexport interface BucketShareLink {\n manifestUrl: string;\n presignExp: number;\n /** base64 random key (no-password) — goes in the link fragment as #k=. */\n keyB64?: string;\n /** base64 salt (password) — goes in the link fragment as #s=. */\n saltB64?: string;\n title: string;\n}\n\nfunction sharesRoot(prefix: string): string {\n const p = (prefix || \"\").replace(/^\\/+|\\/+$/g, \"\");\n return p ? `${p}/shares` : \"shares\";\n}\nconst metaKey = (root: string, slug: string) => `${root}/${slug}/meta.json`;\nconst manifestKeyOf = (root: string, slug: string) => `${root}/${slug}/manifest.bin`;\nconst blobKeyOf = (root: string, slug: string, hash: string) => `${root}/${slug}/blobs/${hash}`;\n\nfunction blobHashes(text: string): string[] {\n const out = new Set<string>();\n const re = /\\/blob\\/([0-9a-f]{16,64})/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(text))) out.add(m[1]!.toLowerCase());\n return [...out];\n}\n\n// ---- meta.json (master-key encrypted) -----------------------------------------\n\nfunction metaBytes(config: S3Config, meta: BucketShareMeta): Promise<Uint8Array> {\n const plain = new TextEncoder().encode(JSON.stringify(meta));\n return config.encrypt && config.masterKey\n ? encryptBytes(fromB64(config.masterKey), plain)\n : Promise.resolve(plain);\n}\n\nasync function readMeta(config: S3Config, slug: string): Promise<BucketShareMeta | null> {\n const client = storageClientFor(config);\n const raw = await client.get(metaKey(sharesRoot(config.prefix), slug)).catch(() => null);\n if (!raw) return null;\n try {\n const plain = config.encrypt && config.masterKey ? await decryptBytes(fromB64(config.masterKey), raw) : raw;\n return JSON.parse(new TextDecoder().decode(plain)) as BucketShareMeta;\n } catch {\n return null;\n }\n}\n\n// ---- manifest + blobs (per-share-key encrypted) -------------------------------\n\n/** Read the target, (re-)encrypt referenced blobs with `shareKey`, upload\n * manifest+blobs, presign all. Returns the presigned manifest URL + object keys. */\nasync function writeShareObjects(\n db: DbDriver,\n opts: { slug: string; kind: \"doc\" | \"database\"; targetId: string; config: S3Config; shareKey: Uint8Array; expiresSec: number },\n): Promise<{ manifestUrl: string; objects: string[]; title: string }> {\n const client = storageClientFor(opts.config);\n const root = sharesRoot(opts.config.prefix);\n\n const manifest: ShareManifest = { v: 1, kind: opts.kind, title: \"\" };\n let refHashes: string[] = [];\n if (opts.kind === \"doc\") {\n const doc = getDocument(db, opts.targetId);\n if (!doc) throw new MhError(\"not_found\", `no such document: ${opts.targetId}`);\n manifest.title = doc.title;\n manifest.body = doc.body ?? \"\";\n refHashes = blobHashes(manifest.body);\n } else {\n const dbRow = getDatabase(db, opts.targetId);\n if (!dbRow) throw new MhError(\"not_found\", `no such database: ${opts.targetId}`);\n manifest.title = dbRow.name;\n const props = listProperties(db, opts.targetId).sort((a, b) => a.position - b.position);\n manifest.properties = props.map((p) => ({ id: p.id, name: p.name, type: p.type }));\n const recs = listRecords(db, opts.targetId);\n manifest.records = recs.map((r) => ({ cells: r.cells }));\n refHashes = blobHashes(JSON.stringify(recs.map((r) => r.cells)));\n }\n\n const objects: string[] = [];\n const blobs: Record<string, { url: string; ct: string }> = {};\n for (const hash of refHashes) {\n const bytes = await resolveBlob(db, hash);\n if (!bytes) continue;\n const key = blobKeyOf(root, opts.slug, hash);\n await client.put(key, await encryptBytes(opts.shareKey, bytes), { contentType: \"application/octet-stream\" });\n objects.push(key);\n blobs[hash] = {\n url: await presignGet(opts.config, key, opts.expiresSec),\n ct: blobContentType(db, hash) ?? \"application/octet-stream\",\n };\n }\n if (Object.keys(blobs).length) manifest.blobs = blobs;\n\n const mKey = manifestKeyOf(root, opts.slug);\n await client.put(mKey, await encryptBytes(opts.shareKey, new TextEncoder().encode(JSON.stringify(manifest))), {\n contentType: \"application/octet-stream\",\n });\n objects.push(mKey);\n return { manifestUrl: await presignGet(opts.config, mKey, opts.expiresSec), objects, title: manifest.title };\n}\n\n/** Best-effort: allow the static viewer's origin to fetch this bucket's objects\n * (cross-origin presigned GET is CORS-gated). Non-fatal — surfaced as a warning. */\nasync function mergeViewerCors(config: S3Config, viewerOrigin?: string): Promise<void> {\n if (!viewerOrigin) return;\n try {\n await putBucketCors(config, [viewerOrigin], { merge: true });\n } catch (e) {\n console.warn(`share: could not add viewer origin to bucket CORS (${(e as Error).message}); the viewer may be blocked until CORS allows ${viewerOrigin}`);\n }\n}\n\n// ---- public: create / renew / list / delete -----------------------------------\n\n/** Create an object-storage share: write manifest+blobs (per-share-key encrypted)\n * then meta.json (master-key encrypted, written LAST so a half-built share is\n * never listed), and allow the viewer origin in the bucket's CORS. */\nexport async function createBucketShare(\n db: DbDriver,\n opts: {\n slug: string;\n kind: \"doc\" | \"database\";\n targetId: string;\n config: S3Config;\n password?: string | null;\n expiresSec: number;\n viewerOrigin?: string;\n },\n): Promise<BucketShareLink> {\n const expiresSec = clampExpiry(opts.expiresSec);\n let shareKey: Uint8Array;\n let saltB64: string | undefined;\n if (opts.password) {\n const salt = crypto.getRandomValues(new Uint8Array(16));\n shareKey = await deriveShareKey(opts.password, salt);\n saltB64 = toB64(salt);\n } else {\n shareKey = generateMasterKey();\n }\n\n const { manifestUrl, objects, title } = await writeShareObjects(db, {\n slug: opts.slug,\n kind: opts.kind,\n targetId: opts.targetId,\n config: opts.config,\n shareKey,\n expiresSec,\n });\n const presignExp = Date.now() + expiresSec * 1000;\n\n const meta: BucketShareMeta = {\n v: 1,\n slug: opts.slug,\n kind: opts.kind,\n target_id: opts.targetId,\n title,\n permission: \"view\",\n created_at: Date.now(),\n presign_exp: presignExp,\n has_password: !!opts.password,\n objects,\n key: toB64(shareKey),\n salt: saltB64,\n };\n await storageClientFor(opts.config).put(metaKey(sharesRoot(opts.config.prefix), opts.slug), await metaBytes(opts.config, meta), {\n contentType: \"application/octet-stream\",\n });\n await mergeViewerCors(opts.config, opts.viewerOrigin);\n\n return { manifestUrl, presignExp, keyB64: opts.password ? undefined : toB64(shareKey), saltB64, title };\n}\n\n/** Renew an object-storage share: re-read the (live) source, re-encrypt with the\n * stored per-share key, re-upload + re-presign, refresh meta.json. Works for\n * password shares too (the key is stored master-encrypted). */\nexport async function renewBucketShare(\n db: DbDriver,\n config: S3Config,\n slug: string,\n expiresSec = MAX_PRESIGN_SECONDS,\n): Promise<BucketShareLink> {\n const meta = await readMeta(config, slug);\n if (!meta) throw new MhError(\"not_found\", `no such bucket share: ${slug}`);\n const shareKey = fromB64(meta.key);\n const exp = clampExpiry(expiresSec);\n const { manifestUrl, objects, title } = await writeShareObjects(db, {\n slug,\n kind: meta.kind,\n targetId: meta.target_id,\n config,\n shareKey,\n expiresSec: exp,\n });\n const presignExp = Date.now() + exp * 1000;\n const next: BucketShareMeta = { ...meta, title, presign_exp: presignExp, objects };\n await storageClientFor(config).put(metaKey(sharesRoot(config.prefix), slug), await metaBytes(config, next), {\n contentType: \"application/octet-stream\",\n });\n return { manifestUrl, presignExp, keyB64: meta.has_password ? undefined : meta.key, saltB64: meta.salt, title };\n}\n\n/** List all object-storage shares in a bucket (decrypts each meta.json). */\nexport async function listBucketShares(config: S3Config): Promise<BucketShareMeta[]> {\n const client = storageClientFor(config);\n const root = sharesRoot(config.prefix);\n const entries = await client.list(`${root}/`, undefined, \"/\").catch(() => []);\n const slugs = entries\n .map((e) => e.key.slice(`${root}/`.length).replace(/\\/$/, \"\"))\n .filter((s) => s && !s.includes(\"/\"));\n const out: BucketShareMeta[] = [];\n for (const slug of slugs) {\n const meta = await readMeta(config, slug);\n if (meta) out.push(meta);\n }\n return out;\n}\n\n/** Delete a bucket share's objects. meta.json is deleted FIRST so the share\n * immediately disappears from listings even if the rest is slow. */\nexport async function deleteBucketShareObjects(config: S3Config, slug: string): Promise<void> {\n const client = storageClientFor(config);\n const root = sharesRoot(config.prefix);\n await client.del(metaKey(root, slug)).catch(() => undefined);\n const meta = await readMeta(config, slug).catch(() => null); // may already be gone\n const objs = meta?.objects ?? (await client.list(`${root}/${slug}/`).catch(() => [])).map((o) => o.key);\n for (const key of objs) await client.del(key).catch(() => undefined);\n}\n\nfunction clampExpiry(sec: number): number {\n return Math.min(Math.max(60, Math.floor(sec)), MAX_PRESIGN_SECONDS);\n}\n"
138
142
  ],
139
- "mappings": "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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCF,IAAM,WAAW;AAEjB,IAAM,WAAW;AAEjB,IAAM,WAAW;;;ADWxB,IAAM,sBAAsB,YAAY,IAAI,SAAS,aAAa;AAIlE,IAAM,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCb,IAAM,WAA0C;AAAA,EAC9C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,KAAK;AACP;AACA,IAAI,eAAmC;AAEhC,SAAS,cAAc,CAAC,QAOtB;AAAA,EACP,SAAS,KAAK,OAAO;AAAA,EACrB,SAAS,KAAK,OAAO;AAAA,EACrB,SAAS,WAAW,OAAO;AAAA,EAC3B,SAAS,UAAU,OAAO;AAAA,EAC1B,SAAS,MAAM,OAAO;AAAA,EAEtB,MAAM,IAAI,OAAO;AAAA,EACjB,eACE,EAAE,eAAe,KAAK,EAAE,eAAe,EAAE,OAAO,aAC3C,EAAE,SACF,EAAE,MAAM,EAAE;AAAA;AAKnB,SAAS,iBAAiB,CAAC,KAAqB;AAAA,EAC9C,IAAI,SAAS;AAAA,EACb,WAAW,KAAK,aAAY,KAAK,EAAE,eAAe,KAAK,CAAC,GAAG;AAAA,IACzD,IAAI,EAAE,SAAS,YAAY,EAAE,KAAK,WAAW,GAAG;AAAA,MAAG;AAAA,IACnD,MAAM,IAAI,MAAK,KAAK,EAAE,IAAI;AAAA,IAC1B,IAAI,EAAE,YAAY;AAAA,MAAG,SAAS,KAAK,IAAI,QAAQ,kBAAkB,CAAC,CAAC;AAAA,IAC9D,SAAI,UAAU,KAAK,EAAE,IAAI;AAAA,MAAG,SAAS,KAAK,IAAI,QAAQ,UAAS,CAAC,EAAE,OAAO;AAAA,EAChF;AAAA,EACA,OAAO;AAAA;AAST,SAAS,YAAY,CAAC,MAQI;AAAA,EACxB,IAAI,UAAwB;AAAA,EAC5B,IAAI,cAAc;AAAA,EAClB,OAAO,YAAY;AAAA,IACjB,MAAM,aAAa,SAAS,KAAK;AAAA,IACjC,IAAI,cAAc;AAAA,MAAM,OAAO;AAAA,IAE/B,IAAI,qBAAqB;AAAA,MACvB,MAAM,SAAS,cAAc,IAAI,IAAI,MAAM,YAAY,GAAG,CAAC;AAAA,MAC3D,IAAI,SAAS,kBAAkB,MAAM;AAAA,MACrC,WAAW,SAAS,KAAK,aAAa,CAAC,GAAG;AAAA,QACxC,SAAS,KAAK,IAAI,QAAQ,kBAAkB,cAAc,IAAI,IAAI,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC;AAAA,MAC7F;AAAA,MACA,IAAI,WAAU,QAAQ,SAAS,aAAa;AAAA,QAC1C,MAAM,QAAQ,cAAc,IAAI,IAAI,KAAK,OAAO,YAAY,GAAG,CAAC;AAAA,QAChE,MAAM,MAAM,MAAM,IAAI,MAAM,EAAE,aAAa,CAAC,KAAK,GAAG,QAAQ,UAAU,CAAC;AAAA,QACvE,IAAI,CAAC,IAAI;AAAA,UAAS,MAAM,IAAI,eAAe,IAAI,MAAM,GAAG,KAAK,mBAAmB;AAAA,QAChF,UAAS,MAAM,IAAI,QAAQ,GAAI,KAAK;AAAA,QACpC,cAAc;AAAA,MAChB;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IAEA,IAAI,WAAU,MAAM;AAAA,MAClB,MAAM,WAAW,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,KAAK,QAAQ,YAAY,GAAG,CAAC,CAAC;AAAA,MACnF,IAAI,CAAE,MAAM,SAAS,OAAO,GAAI;AAAA,QAC9B,MAAM,IAAI,MAAM,GAAG,KAAK,qCAAqC;AAAA,MAC/D;AAAA,MACA,UAAS,MAAM,SAAS,KAAK;AAAA,IAC/B;AAAA,IACA,OAAO;AAAA;AAAA;AAIX,IAAM,QAAQ,aAAa,EAAE,KAAK,MAAM,OAAO,cAAc,MAAM,WAAW,CAAC;AAC/E,IAAM,WAAW,aAAa,EAAE,KAAK,MAAM,OAAO,YAAY,MAAM,QAAQ,CAAC;AAC7E,IAAM,cAAc,aAAa,EAAE,KAAK,YAAY,OAAO,wBAAwB,MAAM,eAAe,CAAC;AACzG,IAAM,aAAa,aAAa,EAAE,KAAK,WAAW,OAAO,iBAAiB,MAAM,gBAAgB,CAAC;AACjG,IAAM,SAAS,aAAa,EAAE,KAAK,OAAO,OAAO,uBAAuB,MAAM,kBAAkB,WAAW,CAAC,WAAW,EAAE,CAAC;AAI1H,eAAe,MAAM,GAAoB;AAAA,EACvC,IAAI,qBAAqB;AAAA,IACvB,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,iBAAiB,YAAY,GAAG,CAAC,CAAC,EAAE,KAAK;AAAA,EACjF;AAAA,EACA,OAAO;AAAA;AAQT,eAAe,YAAY,GAAoB;AAAA,EAC7C,QAAQ,MAAM,MAAM,GAAG,WAAW,wBAAwB,gBAAI,OAAO;AAAA;AAOvE,eAAe,KAAK,GAAoB;AAAA,EACtC,OAAO,KAAK,IAAI,OAAO,MAAM,QAAQ,IAAI,CAAC,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC;AAAA,EAC/E,MAAM,WAAU,IAAI,IAAI,aAAa,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE;AAAA,EAC/F,OAAO,IAAI,WAAW,qBAAqB,QAAO;AAAA;AAKpD,eAAe,OAAO,GAAyB;AAAA,EAC7C,IAAI,gBAAgB;AAAA,IAAM,OAAO;AAAA,EACjC,MAAM,OAAO,sBACT,MACE,QAAQ,IAAI,YAAY,2BAA2B,cAAc,IAAI,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,GAChG,cACF,IACA,cAAc,IAAI,IAAI,kBAAkB,YAAY,GAAG,CAAC;AAAA,EAC5D,MAAM,IAAI,IAAI,KAAK,IAAI;AAAA,EACvB,IAAI,CAAE,MAAM,EAAE,OAAO,GAAI;AAAA,IACvB,MAAM,IAAI,MAAM,2BAA2B,qDAA+C;AAAA,EAC5F;AAAA,EACA,OAAO,EAAE,YAAY;AAAA;AAIvB,IAAM,WAAW,KAAK,UAAU;AAAA,EAC9B,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,OAAO;AAAA,IACL,EAAE,KAAK,uBAAuB,OAAO,WAAW,MAAM,YAAY;AAAA,IAClE,EAAE,KAAK,uBAAuB,OAAO,WAAW,MAAM,YAAY;AAAA,EACpE;AACF,CAAC;AAED,IAAM,QAAgC;AAAA,EACpC,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,uBAAuB;AACzB;AAOA,eAAsB,SAAS,GAAkB;AAAA,EAC/C,IAAI;AAAA,IACF,MAAM,MAAM;AAAA,IACZ,MAAM;AAAA;AAOV,SAAS,KAAK,CAAC,MAAc,aAA+B;AAAA,EAC1D,OAAO,IAAI,SAAS,MAAM;AAAA,IACxB,SAAS,EAAE,gBAAgB,aAAa,iBAAiB,WAAW;AAAA,EACtE,CAAC;AAAA;AAKH,eAAsB,UAAU,CAAC,KAAwC;AAAA,EACvE,IAAI,IAAI,WAAW;AAAA,IAAO,OAAO;AAAA,EACjC,QAAQ,aAAa,IAAI,IAAI,IAAI,GAAG;AAAA,EAEpC,IAAI,aAAa;AAAA,IAAK,OAAO,MAAM,OAAM,0BAA0B;AAAA,EACnE,IAAI,aAAa;AAAA,IAAc,OAAO,MAAM,MAAM,OAAO,GAAG,yBAAyB;AAAA,EACrF,IAAI,aAAa;AAAA,IAAyB,OAAO,MAAM,UAAU,2BAA2B;AAAA,EAC5F,MAAM,OAAO,MAAM;AAAA,EACnB,IAAI,MAAM;AAAA,IACR,OAAO,IAAI,SAAS,OAAO,KAAK,MAAM,QAAQ,GAAG;AAAA,MAE/C,SAAS,EAAE,gBAAgB,aAAa,iBAAiB,wBAAwB;AAAA,IACnF,CAAC;AAAA,EACH;AAAA,EACA,IAAI,aAAa,iBAAiB;AAAA,IAChC,IAAI;AAAA,MACF,OAAO,IAAI,SAAS,MAAM,QAAQ,GAAG;AAAA,QAGnC,SAAS,EAAE,gBAAgB,oBAAoB,iBAAiB,wBAAwB;AAAA,MAC1F,CAAC;AAAA,MACD,OAAO,GAAG;AAAA,MACV,QAAQ,MAAM,gDAA0C,CAAC;AAAA,MACzD,OAAO,IAAI,SAAS,6BAA6B,KAAK,EAAE,QAAQ,IAAI,CAAC;AAAA;AAAA,EAEzE;AAAA,EACA,MAAM,SAAgD;AAAA,IACpD,aAAa;AAAA,IACb,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,EACrB;AAAA,EACA,MAAM,SAAS,OAAO;AAAA,EACtB,IAAI,QAAQ;AAAA,IACV,IAAI;AAAA,MACF,OAAO,MAAM,MAAM,OAAO,GAAG,gCAAgC;AAAA,MAC7D,OAAO,GAAG;AAAA,MAKV,QAAQ,MAAM,2BAA2B,mBAAa,CAAC;AAAA,MACvD,OAAO,IAAI,SAAS,uBAAuB,KAAK,EAAE,QAAQ,IAAI,CAAC;AAAA;AAAA,EAEnE;AAAA,EACA,OAAO;AAAA;;AEpST;AACA;AACA;AACA;AAOA;AASA;AAQA;;;AC1BA;AAEA;AACA;AACA;AAYA,IAAM,kBAAkB;AAGxB,SAAS,SAAS,CAAC,MAAqB;AAAA,EACtC,OAAO,OAAO,KAAI,MAAM,GAAG,EAAE,CAAC;AAAA;AAGhC,SAAS,MAAM,CAAC,MAAqB;AAAA,EACnC,OAAO,IAAI,KAAK,UAAU,IAAG,CAAC,EAAE,YAAY;AAAA;AAmB9C,SAAS,YAAY,CAAC,KAAkC;AAAA,EACtD,IAAI,KAAK,WAAW,SAAS;AAAA,IAAG,OAAO;AAAA,EACvC,IAAI,KAAK,WAAW,SAAS;AAAA,IAAG,OAAO;AAAA,EACvC,OAAO;AAAA;AAST,SAAS,gBAAgB,CAAC,SAAqC;AAAA,EAC7D,MAAM,SAAwB,CAAC;AAAA,EAC/B,IAAI,MAAmB,CAAC;AAAA,EACxB,WAAW,KAAK,SAAS;AAAA,IACvB,MAAM,OAAO,IAAI,IAAI,SAAS;AAAA,IAC9B,MAAM,WACJ,SACC,KAAK,QAAQ,QAAQ,EAAE,QAAQ,OAC5B,KAAK,QAAQ,EAAE,MACf,KAAK,YAAY,EAAE,WAAW,UAAU,EAAE,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI;AAAA,IAC7E,IAAI,UAAU;AAAA,MACZ,OAAO,KAAK,GAAG;AAAA,MACf,MAAM,CAAC;AAAA,IACT;AAAA,IACA,IAAI,KAAK,CAAC;AAAA,EACZ;AAAA,EACA,IAAI,IAAI;AAAA,IAAQ,OAAO,KAAK,GAAG;AAAA,EAC/B,OAAO;AAAA;AAIT,SAAS,OAAO,CAAC,OAA+B;AAAA,EAC9C,OAAO,UAAU,QAAQ,UAAU,OAAO,UAAU,WAAW,UAAU;AAAA;AAK3E,SAAS,WAAW,CAClB,SACA,IACoD;AAAA,EACpD,MAAM,MAAM,IAAI;AAAA,EAChB,WAAW,KAAK,SAAS;AAAA,IACvB,IAAI,EAAE,MAAM;AAAA,MAAI;AAAA,IAChB,MAAM,MAAM,IAAI,IAAI,EAAE,GAAG;AAAA,IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI;AAAA,MAAK,IAAI,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,EAAE,IAAI,CAAC;AAAA,EAC5E;AAAA,EACA,OAAO;AAAA;AAIT,SAAS,UAAU,CAAC,KAAc,SAAiB,OAA4B;AAAA,EAC7E,OAAO,IACJ,MACC,UAAU,+EACZ,EACC,IAAI,SAAS,KAAK;AAAA;AAOvB,SAAS,YAAY,CAAC,KAAc,OAAyB;AAAA,EAC3D,OACE,IACG,MACC,wGACF,EACC,IAAI,KAAK,UAAU,KAAK,CAAC,EAC5B,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA;AAIvB,SAAS,UAAU,CAAC,KAAc,OAA4B;AAAA,EAC5D,MAAM,UAAS,aAAa,KAAI,KAAK;AAAA,EACrC,MAAM,eAAe,QAAO,IAAI,MAAM,GAAG,EAAE,KAAK,GAAG;AAAA,EACnD,MAAM,cAAc,QAAO,SACvB,8CAA8C,mBAC9C;AAAA,EACJ,OAAO,IACJ,MACC,UAAU;AAAA,qDACqC;AAAA,oBAEjD,EACC,IAAI,OAAO,GAAG,OAAM;AAAA;AAoBlB,SAAS,qBAAqB,CAAC,KAAc,IAA2B;AAAA,EAC7E,MAAM,UAAU,WAAW,KAAI,EAAE;AAAA,EACjC,IAAI,CAAC,QAAQ;AAAA,IAAQ,MAAM,IAAI,QAAQ,aAAa,qBAAqB,IAAI;AAAA,EAC7E,OAAO,iBAAiB,OAAO,EAC5B,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,gBAAgB,IAAI;AAAA,IAC1B,MAAM,gBAAgB,IAAI;AAAA,IAC1B,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,IAAI,eAAe;AAAA,IACnB,WAAW,KAAK,OAAO;AAAA,MACrB,IAAI,EAAE,YAAY,aAAa;AAAA,QAC7B,IAAI,EAAE,QAAQ;AAAA,UAAe,UAAU;AAAA,QAClC,SAAI,EAAE,QAAQ;AAAA,UAAS,eAAe;AAAA,QACtC,SAAI,EAAE,QAAQ;AAAA,UAAa,UAAU,QAAQ,EAAE,KAAK;AAAA,MAC3D,EAAO,SAAI,EAAE,QAAQ,eAAe,QAAQ,EAAE,KAAK,GAAG;AAAA,QACpD,cAAc,IAAI,EAAE,MAAM;AAAA,MAC5B,EAAO,SAAI,EAAE,QAAQ,QAAQ;AAAA,QAC3B,cAAc,IAAI,EAAE,MAAM;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,MAAM,OAAO,MAAM,MAAM,SAAS;AAAA,IAClC,OAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,IAAI,OAAO,KAAK,GAAG;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,MAAM,aAAa,KAAK,GAAG;AAAA,MAC3B,SAAS,MAAM;AAAA,MACf;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,gBAAgB,cAAc;AAAA,MAC9B,gBAAgB,cAAc;AAAA,IAChC;AAAA,GACD,EACA,QAAQ;AAAA;AAaN,SAAS,iBAAiB,CAAC,KAAc,IAAY,IAAkC;AAAA,EAC5F,IAAI,CAAC;AAAA,IAAI,MAAM,IAAI,QAAQ,iBAAiB,wBAAwB;AAAA,EACpE,MAAM,UAAU,WAAW,KAAI,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,EAC5D,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,QAAQ,aAAa,0BAA0B,mBAAmB,IAAI;AAAA,EAElF,MAAM,UAAU,YAAY,QAAQ,OAAO,CAAC,MAAM,EAAE,YAAY,WAAW,GAAG,EAAE;AAAA,EAChF,MAAM,SAAQ,CAAC,QAAyB;AAAA,IACtC,MAAM,IAAI,QAAQ,IAAI,GAAG;AAAA,IACzB,OAAO,GAAG,SAAS,OAAO,YAAY,KAAK,MAAM,EAAE,KAAK;AAAA;AAAA,EAK1D,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,KAAK,SAAS;AAAA,IACvB,IAAI,EAAE,YAAY;AAAA,MAAc;AAAA,KAC/B,QAAQ,IAAI,EAAE,MAAM,KAAK,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAI,KAAK,CAAC;AAAA,EAC5E;AAAA,EACA,MAAM,UAAuF,CAAC;AAAA,EAC9F,YAAY,SAAS,iBAAiB,SAAS;AAAA,IAC7C,MAAM,OAAO,YAAY,cAAc,EAAE;AAAA,IACzC,MAAM,MAAM,CAAC,QAAyB;AAAA,MACpC,MAAM,IAAI,KAAK,IAAI,GAAG;AAAA,MACtB,OAAO,GAAG,SAAS,OAAO,YAAY,KAAK,MAAM,EAAE,KAAK;AAAA;AAAA,IAE1D,IAAI,IAAI,QAAQ,MAAM;AAAA,MAAI;AAAA,IAC1B,IAAI,KAAK,IAAI,WAAW,KAAK,QAAQ,KAAK,IAAI,WAAW,EAAG,KAAK;AAAA,MAAG;AAAA,IACpE,MAAM,OAAO,IAAI,MAAM;AAAA,IACvB,IAAI,OAAO,SAAS,YAAY,CAAC;AAAA,MAAM;AAAA,IACvC,QAAO,KAAK;AAAA,MACV,IAAI;AAAA,MACJ;AAAA,MACA,WAAY,IAAI,WAAW,KAA4B;AAAA,MACvD,YAAa,IAAI,aAAa,KAA4B;AAAA,IAC5D,CAAC;AAAA,EACH;AAAA,EACA,QAAO,KAAK,CAAC,GAAG,MAAM;AAAA,IACpB,IAAI,EAAE,cAAc,EAAE,WAAW;AAAA,MAC/B,IAAI,EAAE,cAAc;AAAA,QAAM,OAAO;AAAA,MACjC,IAAI,EAAE,cAAc;AAAA,QAAM,OAAO;AAAA,MACjC,OAAO,EAAE,YAAY,EAAE,YAAY,KAAK;AAAA,IAC1C;AAAA,IACA,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK;AAAA,GAC3B;AAAA,EAID,MAAM,OAAO,QAAQ,OACjB,mBAAmB,OAAM,IACvB,OAAM,MAAM,KAA4B;AAAA,EAE9C,OAAO;AAAA,IACL;AAAA,IACA,OAAQ,OAAM,OAAO,KAA4B;AAAA,IACjD;AAAA,IACA,SAAS,QAAQ,IAAI,WAAW,IAAI,QAAQ,QAAQ,IAAI,WAAW,EAAG,KAAK,IAAI;AAAA,IAC/E,SAAS,QAAQ,QAAQ,SAAS,GAAI;AAAA,EACxC;AAAA;AAoBK,IAAM,iBAAiB,QAAQ,SAAS,eAAc,CAC3D,KACA,IACA,IACA,OAA6B,CAAC,GACb;AAAA,EACjB,IAAI,MAAM,YAAY,KAAI,EAAE;AAAA,EAC5B,IAAI,CAAC,OAAO,CAAC,IAAG,MAAM,2CAA2C,EAAE,IAAI,EAAE;AAAA,IACvE,MAAM,IAAI,QAAQ,aAAa,qBAAqB,IAAI;AAAA,EAC1D,IAAI,KAAK,YAAY,aAAa,gBAAgB,KAAI,EAAE,MAAM,KAAK;AAAA,IACjE,MAAM,IAAI,QAAQ,SAAS,iCAAiC,KAAK,wBAAwB;AAAA,EAE3F,MAAM,OAAO,kBAAkB,KAAI,IAAI,EAAE;AAAA,EACzC,IAAI,KAAK;AAAA,IACP,MAAM,IAAI,QAAQ,iBAAiB,2DAA2D;AAAA,EAEhG,MAAM,YAAY,CAAC;AAAA,EACnB,IAAI,CAAC,KAAK;AAAA,IAGR,KAAK,KAAI,aAAa,IAAI,aAAa,CAAC;AAAA,IACxC,MAAM,YAAY,KAAI,EAAE;AAAA,EAC1B;AAAA,EAEA,MAAM,SAA4C,CAAC;AAAA,EACnD,IAAI,KAAK,UAAU,IAAI;AAAA,IAAO,OAAO,QAAQ,KAAK;AAAA,EAClD,IAAI,KAAK,UAAU,IAAI,QAAQ;AAAA,IAAK,OAAO,OAAO,KAAK;AAAA,EACvD,IAAI,OAAO,KAAK,MAAM,EAAE;AAAA,IAAQ,eAAe,KAAI,IAAI,MAAM;AAAA,EAE7D,OAAO;AAAA,IACL;AAAA,IACA,SAAS,OAAO,KAAK,MAAM,EAAE,SAAS,KAAK;AAAA,IAC3C,UAAU,KAAK;AAAA,IACf,SAAS,gBAAgB,KAAI,EAAE;AAAA,IAC/B;AAAA,EACF;AAAA,GACC,QAAQ;AAKX,IAAM,eAAc,IAAI,IAAI,CAAC,eAAe,eAAe,aAAa,WAAW,CAAC;AAgBpF,SAAS,gBAAgB,CAAC,OAAoC;AAAA,EAC5D,MAAM,SAAS,IAAI;AAAA,EACnB,IAAI,UAAU;AAAA,EACd,IAAI,UAAU;AAAA,EACd,IAAI,QAAQ;AAAA,EACZ,WAAW,KAAK,OAAO;AAAA,IACrB,IAAI,EAAE,QAAQ;AAAA,MAAe,UAAU;AAAA,IAClC,SAAI,EAAE,QAAQ;AAAA,MAAa,UAAU,QAAQ,EAAE,KAAK;AAAA,IACpD,SAAI,EAAE,QAAQ;AAAA,MAAa,QAAQ;AAAA,IACnC,SAAI,CAAC,aAAY,IAAI,EAAE,GAAG;AAAA,MAAG,OAAO,IAAI,EAAE,GAAG;AAAA,EACpD;AAAA,EACA,MAAM,OAAO,MAAM,MAAM,SAAS;AAAA,EAClC,OAAO;AAAA,IACL,SAAS,KAAK;AAAA,IACd,IAAI,OAAO,KAAK,GAAG;AAAA,IACnB,SAAS,KAAK;AAAA,IACd,MAAM,aAAa,KAAK,GAAG;AAAA,IAC3B,SAAS,MAAM;AAAA,IACf;AAAA,IACA;AAAA,IACA,QAAQ,CAAC,GAAG,MAAM;AAAA,IAClB;AAAA,EACF;AAAA;AAIK,SAAS,mBAAmB,CAAC,KAAc,IAA8B;AAAA,EAC9E,MAAM,UAAU,WAAW,KAAI,WAAW,EAAE;AAAA,EAC5C,IAAI,CAAC,QAAQ;AAAA,IAAQ,MAAM,IAAI,QAAQ,aAAa,mBAAmB,IAAI;AAAA,EAC3E,OAAO,iBAAiB,OAAO,EAAE,IAAI,gBAAgB,EAAE,QAAQ;AAAA;AA4B1D,SAAS,oBAAoB,CAClC,KACA,YACA,OAA2B,CAAC,GACH;AAAA,EACzB,IAAI,CAAC,IAAG,MAAM,2CAA2C,EAAE,IAAI,UAAU;AAAA,IACvE,MAAM,IAAI,QAAQ,aAAa,qBAAqB,YAAY;AAAA,EAGlE,MAAM,YAEF,IACG,MACC,+GACF,EACC,IAAI,UAAU,GAChB,MAAM;AAAA,EAEX,MAAM,UAAU,IACb,MACC,UAAU;AAAA;AAAA,4BAGZ,EACC,IAAI,UAAU;AAAA,EAEjB,MAAM,MAA+B,CAAC;AAAA,EACtC,IAAI,QAAQ;AAAA,EACZ,SAAS,IAAI,EAAG,KAAK,QAAQ,QAAQ,KAAK;AAAA,IACxC,IAAI,MAAM,QAAQ,UAAU,QAAQ,GAAI,WAAW,QAAQ,OAAQ;AAAA,MAAQ;AAAA,IAC3E,MAAM,QAAQ,QAAQ,OAAQ;AAAA,IAE9B,MAAM,QAAQ,IAAI;AAAA,IAClB,WAAW,KAAK,iBAAiB,QAAQ,MAAM,OAAO,CAAC,CAAC,GAAG;AAAA,MACzD,MAAM,UAAU,IAAI;AAAA,MACpB,WAAW,KAAK;AAAA,QAAG,IAAI,CAAC,aAAY,IAAI,EAAE,GAAG;AAAA,UAAG,QAAQ,IAAI,EAAE,GAAG;AAAA,MACjE,MAAM,SAAS,IAAI;AAAA,MACnB,WAAW,OAAO;AAAA,QAAS,IAAI,MAAM,IAAI,GAAG;AAAA,UAAG,OAAO,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC;AAAA,MAC7E,WAAW,KAAK,GAAG;AAAA,QACjB,IAAI,aAAY,IAAI,EAAE,GAAG;AAAA,UAAG;AAAA,QAC5B,IAAI,EAAE,UAAU;AAAA,UAAM,MAAM,OAAO,EAAE,GAAG;AAAA,QACnC;AAAA,gBAAM,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,KAAK,CAAC;AAAA,MAC3C;AAAA,MACA,MAAM,QAAuB,CAAC;AAAA,MAC9B,WAAW,OAAO,SAAS;AAAA,QACzB,MAAM,KAAkB,EAAE,MAAM,IAAI;AAAA,QACpC,IAAI,OAAO,IAAI,GAAG;AAAA,UAAG,GAAG,SAAS,OAAO,IAAI,GAAG;AAAA,QAC/C,IAAI,MAAM,IAAI,GAAG;AAAA,UAAG,GAAG,QAAQ,MAAM,IAAI,GAAG;AAAA,QAC5C,MAAM,KAAK,EAAE;AAAA,MACf;AAAA,MACA,IAAI,KAAK;AAAA,WACJ,iBAAiB,CAAC;AAAA,QACrB,WAAW;AAAA,QACX,cACE,aAAa,MAAM,IAAI,SAAS,IAAI,OAAO,MAAM,IAAI,SAAS,KAAK,EAAE,IAAI;AAAA,QAC3E;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,QAAQ;AAAA,EACV;AAAA,EACA,IAAI,KAAK,CAAC,GAAG,MAAO,EAAE,UAAU,EAAE,UAAU,IAAI,EAAG;AAAA,EACnD,OAAO,IAAI,MAAM,GAAG,KAAK,SAAS,GAAG;AAAA;AAahC,SAAS,eAAe,CAAC,KAAc,IAAY,IAAgC;AAAA,EACxF,IAAI,CAAC;AAAA,IAAI,MAAM,IAAI,QAAQ,iBAAiB,wBAAwB;AAAA,EACpE,MAAM,UAAU,WAAW,KAAI,WAAW,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,EACvE,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,QAAQ,aAAa,wBAAwB,mBAAmB,IAAI;AAAA,EAEhF,MAAM,OAAO,YAAY,SAAS,EAAE;AAAA,EACpC,MAAM,OAAgC,CAAC;AAAA,EACvC,YAAY,KAAK,QAAQ,MAAM;AAAA,IAC7B,IAAI,aAAY,IAAI,GAAG;AAAA,MAAG;AAAA,IAC1B,IAAI,IAAI,UAAU;AAAA,MAAM;AAAA,IACxB,KAAK,OAAO,KAAK,MAAM,IAAI,KAAK;AAAA,EAClC;AAAA,EACA,MAAM,QAAQ,KAAK,IAAI,aAAa;AAAA,EACpC,OAAO;AAAA,IACL;AAAA,IACA,aAAa,OAAO,SAAS,OAAO,OAAQ,KAAK,MAAM,MAAM,KAAK;AAAA,IAClE,SAAS,KAAK,IAAI,WAAW,IAAI,QAAQ,KAAK,IAAI,WAAW,EAAG,KAAK,IAAI;AAAA,IACzE;AAAA,IACA,SAAS,QAAQ,QAAQ,SAAS,GAAI;AAAA,EACxC;AAAA;AAgBK,IAAM,eAAe,QAAQ,SAAS,aAAY,CACvD,KACA,IACA,IACoB;AAAA,EACpB,MAAM,MAAM,IACT,MAAM,+DAA+D,EACrE,IAAI,EAAE;AAAA,EACT,IAAI,CAAC;AAAA,IAAK,MAAM,IAAI,QAAQ,aAAa,mBAAmB,IAAI;AAAA,EAEhE,MAAM,OAAO,gBAAgB,KAAI,IAAI,EAAE;AAAA,EACvC,IAAI,KAAK;AAAA,IACP,MAAM,IAAI,QAAQ,iBAAiB,8DAA8D;AAAA,EAEnG,MAAM,YAAY,IAAI,IACpB,IAAI,cAAc,eAAe,KAAI,IAAI,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAC5E;AAAA,EACA,MAAM,UAAU,KAAK,MAAM,IAAI,QAAQ,IAAI;AAAA,EAC3C,MAAM,SAAmB,CAAC;AAAA,EAC1B,WAAW,UAAU,WAAW;AAAA,IAC9B,MAAM,SAAS,OAAO,OAAO,KAAK,MAAM,MAAM;AAAA,IAC9C,MAAM,QAAQ,OAAO,OAAO,SAAS,MAAM;AAAA,IAC3C,IAAI,WAAW,CAAC,SAAS,KAAK,UAAU,KAAK,KAAK,OAAO,MAAM,KAAK,UAAU,QAAQ,OAAO,IAAI;AAAA,MAC/F,KAAK,KAAI,WAAW,IAAI,QAAQ,KAAK,KAAK,OAAO;AAAA,MACjD,OAAO,KAAK,MAAM;AAAA,IACpB,EAAO,SAAI,CAAC,UAAU,OAAO;AAAA,MAC3B,KAAK,KAAI,WAAW,IAAI,QAAQ,SAAS;AAAA,MACzC,OAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF;AAAA,EACA,MAAM,YAAY,IAAI,cAAc;AAAA,EACpC,IAAI;AAAA,IAAW,KAAK,KAAI,WAAW,IAAI,aAAa,CAAC;AAAA,EAErD,OAAO,EAAE,IAAI,SAAS,OAAO,SAAS,KAAK,WAAW,QAAQ,WAAW,UAAU,KAAK,QAAQ;AAAA,GAC/F,QAAQ;AAKX,IAAM,gBAAgB,CAAC,QAAQ,QAAQ,UAAU,UAAU;AAkBpD,SAAS,qBAAqB,CAAC,KAAc,IAAgC;AAAA,EAClF,MAAM,UAAU,WAAW,KAAI,cAAc,EAAE;AAAA,EAC/C,IAAI,CAAC,QAAQ;AAAA,IAAQ,MAAM,IAAI,QAAQ,aAAa,qBAAqB,IAAI;AAAA,EAC7E,MAAM,eAAe,IAAI,IAErB,IACG,MACC,oHACF,EACC,IAAI,EAAE,EACT,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAC3B;AAAA,EACA,OAAO,iBAAiB,OAAO,EAC5B,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,SAAS,IAAI;AAAA,IACnB,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,WAAW,KAAK,OAAO;AAAA,MACrB,IAAI,EAAE,QAAQ;AAAA,QAAe,UAAU;AAAA,MAClC,SAAI,EAAE,QAAQ;AAAA,QAAa,UAAU,QAAQ,EAAE,KAAK;AAAA,MACpD,SAAK,cAAoC,SAAS,EAAE,GAAG;AAAA,QAAG,OAAO,IAAI,EAAE,GAAG;AAAA,IACjF;AAAA,IACA,MAAM,OAAO,MAAM,MAAM,SAAS;AAAA,IAClC,OAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,IAAI,OAAO,KAAK,GAAG;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,MAAM,aAAa,KAAK,GAAG;AAAA,MAC3B,SAAS,MAAM;AAAA,MACf;AAAA,MACA;AAAA,MACA,QAAQ,CAAC,GAAG,MAAM;AAAA,MAClB,eAAe,KAAK,MAAO,aAAa,IAAI,KAAK,GAAG,KAAK,IAAK;AAAA,IAChE;AAAA,GACD,EACA,QAAQ;AAAA;AAeN,SAAS,iBAAiB,CAAC,KAAc,IAAY,IAAkC;AAAA,EAC5F,IAAI,CAAC;AAAA,IAAI,MAAM,IAAI,QAAQ,iBAAiB,wBAAwB;AAAA,EACpE,MAAM,UAAU,WAAW,KAAI,cAAc,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,EAC1E,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,QAAQ,aAAa,0BAA0B,mBAAmB,IAAI;AAAA,EAClF,MAAM,OAAO,YAAY,SAAS,EAAE;AAAA,EACpC,MAAM,MAAM,CAAC,QAAyB;AAAA,IACpC,MAAM,IAAI,KAAK,IAAI,GAAG;AAAA,IACtB,OAAO,GAAG,SAAS,OAAO,YAAY,KAAK,MAAM,EAAE,KAAK;AAAA;AAAA,EAE1D,OAAO;AAAA,IACL;AAAA,IACA,aAAc,IAAI,aAAa,KAA4B;AAAA,IAC3D,MAAO,IAAI,MAAM,KAA4B;AAAA,IAC7C,MAAO,IAAI,MAAM,KAA4B;AAAA,IAC7C,QAAQ,IAAI,QAAQ,KAAK;AAAA,IACzB,UAAW,IAAI,UAAU,KAA4B;AAAA,IACrD,SAAS,KAAK,IAAI,WAAW,IAAI,QAAQ,KAAK,IAAI,WAAW,EAAG,KAAK,IAAI;AAAA,IACzE,SAAS,QAAQ,QAAQ,SAAS,GAAI;AAAA,EACxC;AAAA;AA0BK,IAAM,iBAAiB,QAAQ,SAAS,eAAc,CAC3D,KACA,IACA,IACsB;AAAA,EACtB,MAAM,MAAM,IACT,MACC,0FACF,EACC,IAAI,EAAE;AAAA,EAQT,IAAI,CAAC;AAAA,IAAK,MAAM,IAAI,QAAQ,aAAa,qBAAqB,IAAI;AAAA,EAElE,MAAM,OAAO,kBAAkB,KAAI,IAAI,EAAE;AAAA,EACzC,IAAI,KAAK;AAAA,IACP,MAAM,IAAI,QAAQ,iBAAiB,4DAA4D;AAAA,EAGjG,MAAM,SAAkC;AAAA,IACtC,MAAM,IAAI;AAAA,IACV,MAAM,IAAI;AAAA,IACV,QAAQ,IAAI,SAAS,KAAK,MAAM,IAAI,MAAM,IAAI;AAAA,IAC9C,UAAU,IAAI;AAAA,EAChB;AAAA,EACA,MAAM,UAAmC;AAAA,IACvC,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,UAAU,KAAK;AAAA,EACjB;AAAA,EACA,MAAM,SAAmB,CAAC;AAAA,EAC1B,WAAW,OAAO,eAAe;AAAA,IAC/B,IAAI,KAAK,UAAU,QAAQ,QAAQ,IAAI,MAAM,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;AAAA,MAChF,KAAK,KAAI,cAAc,IAAI,KAAK,QAAQ,IAAI;AAAA,MAC5C,OAAO,KAAK,GAAG;AAAA,IACjB;AAAA,EACF;AAAA,EACA,MAAM,YAAY,IAAI,cAAc;AAAA,EACpC,IAAI;AAAA,IAAW,KAAK,KAAI,cAAc,IAAI,aAAa,CAAC;AAAA,EAIxD,MAAM,aAAa,IAAI,IAEnB,IACG,MACC,mHACF,EACC,IAAI,IAAI,EAAE,EACb,IAAI,CAAC,MAAM,EAAE,GAAG,CACpB;AAAA,EACA,MAAM,cAAc,IACjB,MACC,6GACF,EACC,IAAI,EAAE;AAAA,EAET,MAAM,YAAY,CAAC,QACjB,QAAQ,SAAS,WAAW,IAAI,GAAG,KAAK,IAAI,WAAW,SAAS;AAAA,EAElE,IAAI,WAAW;AAAA,EACf,IAAI,UAAU;AAAA,EACd,IAAI,IAAI;AAAA,EACR,OAAO,IAAI,YAAY,QAAQ;AAAA,IAC7B,MAAM,QAAQ,YAAY,GAAI;AAAA,IAC9B,IAAI,SAAS,YAAY;AAAA,IACzB,IAAI,WAA4C;AAAA,IAChD,MAAO,IAAI,YAAY,UAAU,YAAY,GAAI,WAAW,OAAO,KAAK;AAAA,MACtE,SAAS,YAAY;AAAA,MACrB,IAAI,CAAC,UAAU,OAAO,GAAG;AAAA,QAAG,WAAW;AAAA,IACzC;AAAA,IACA,IAAI,OAAO,OAAO;AAAA,MAAI;AAAA,IACtB,IAAI,CAAC,UAAU,OAAO,GAAG,GAAG;AAAA,MAC1B;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,SAAS,WAAW,SAAS,QAAQ;AAAA,IAC3C,IAAI,WAAW,OAAO;AAAA,MAAO;AAAA,IAC7B,KAAK,KAAI,WAAW,OAAO,IAAI,WAAW,OAAO,YAAY,KAAK,MAAM,MAAM,CAAC;AAAA,IAC/E;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IACA,SAAS,OAAO,SAAS,KAAK,aAAa,WAAW;AAAA,IACtD;AAAA,IACA,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf;AAAA,IACA,UAAU,KAAK;AAAA,EACjB;AAAA,GACC,QAAQ;AAYJ,SAAS,kBAAkB,CAAC,KAAc,IAAY,QAAqC;AAAA,EAChG,MAAM,OAAO,IACV,MACC,qHACF,EACC,IAAI,IAAI,MAAM;AAAA,EACjB,OAAO,KAAK,IAAI,CAAC,OAAO;AAAA,IACtB,SAAS,EAAE;AAAA,IACX,IAAI,OAAO,EAAE,GAAG;AAAA,IAChB,SAAS,EAAE;AAAA,IACX,OAAO,EAAE,UAAU,OAAO,YAAY,KAAK,MAAM,EAAE,KAAK;AAAA,IACxD,SAAS,EAAE,UAAU;AAAA,EACvB,EAAE;AAAA;;;ADrtBJ;AACA;AAmBA;;;AEtEA;AACA;AACA;;;ACUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAmDA,SAAS,UAAU,CAAC,QAAwB;AAAA,EAC1C,MAAM,KAAK,UAAU,IAAI,QAAQ,cAAc,EAAE;AAAA,EACjD,OAAO,IAAI,GAAG,aAAa;AAAA;AAE7B,IAAM,UAAU,CAAC,MAAc,SAAiB,GAAG,QAAQ;AAC3D,IAAM,gBAAgB,CAAC,MAAc,SAAiB,GAAG,QAAQ;AACjE,IAAM,YAAY,CAAC,MAAc,MAAc,UAAiB,GAAG,QAAQ,cAAc;AAEzF,SAAS,UAAU,CAAC,MAAwB;AAAA,EAC1C,MAAM,MAAM,IAAI;AAAA,EAChB,MAAM,KAAK;AAAA,EACX,IAAI;AAAA,EACJ,OAAQ,IAAI,GAAG,KAAK,IAAI;AAAA,IAAI,IAAI,IAAI,EAAE,GAAI,YAAY,CAAC;AAAA,EACvD,OAAO,CAAC,GAAG,GAAG;AAAA;AAKhB,SAAS,SAAS,CAAC,SAAkB,OAA4C;AAAA,EAC/E,MAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,KAAK,UAAU,KAAI,CAAC;AAAA,EAC3D,OAAO,QAAO,WAAW,QAAO,YAC5B,aAAa,QAAQ,QAAO,SAAS,GAAG,KAAK,IAC7C,QAAQ,QAAQ,KAAK;AAAA;AAG3B,eAAe,SAAQ,CAAC,SAAkB,MAA+C;AAAA,EACvF,MAAM,UAAS,iBAAiB,OAAM;AAAA,EACtC,MAAM,MAAM,MAAM,QAAO,IAAI,QAAQ,WAAW,QAAO,MAAM,GAAG,IAAI,CAAC,EAAE,MAAM,MAAM,IAAI;AAAA,EACvF,IAAI,CAAC;AAAA,IAAK,OAAO;AAAA,EACjB,IAAI;AAAA,IACF,MAAM,QAAQ,QAAO,WAAW,QAAO,YAAY,MAAM,aAAa,QAAQ,QAAO,SAAS,GAAG,GAAG,IAAI;AAAA,IACxG,OAAO,KAAK,MAAM,IAAI,YAAY,EAAE,OAAO,KAAK,CAAC;AAAA,IACjD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAQX,eAAe,iBAAiB,CAC9B,KACA,MACoE;AAAA,EACpE,MAAM,UAAS,iBAAiB,KAAK,MAAM;AAAA,EAC3C,MAAM,OAAO,WAAW,KAAK,OAAO,MAAM;AAAA,EAE1C,MAAM,WAA0B,EAAE,GAAG,GAAG,MAAM,KAAK,MAAM,OAAO,GAAG;AAAA,EACnE,IAAI,YAAsB,CAAC;AAAA,EAC3B,IAAI,KAAK,SAAS,OAAO;AAAA,IACvB,MAAM,OAAM,YAAY,KAAI,KAAK,QAAQ;AAAA,IACzC,IAAI,CAAC;AAAA,MAAK,MAAM,IAAI,QAAQ,aAAa,qBAAqB,KAAK,UAAU;AAAA,IAC7E,SAAS,QAAQ,KAAI;AAAA,IACrB,SAAS,OAAO,KAAI,QAAQ;AAAA,IAC5B,YAAY,WAAW,SAAS,IAAI;AAAA,EACtC,EAAO;AAAA,IACL,MAAM,QAAQ,YAAY,KAAI,KAAK,QAAQ;AAAA,IAC3C,IAAI,CAAC;AAAA,MAAO,MAAM,IAAI,QAAQ,aAAa,qBAAqB,KAAK,UAAU;AAAA,IAC/E,SAAS,QAAQ,MAAM;AAAA,IACvB,MAAM,QAAQ,eAAe,KAAI,KAAK,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AAAA,IACtF,SAAS,aAAa,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,EAAE,KAAK,EAAE;AAAA,IACjF,MAAM,OAAO,YAAY,KAAI,KAAK,QAAQ;AAAA,IAC1C,SAAS,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AAAA,IACvD,YAAY,WAAW,KAAK,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAAA;AAAA,EAGjE,MAAM,UAAoB,CAAC;AAAA,EAC3B,MAAM,QAAqD,CAAC;AAAA,EAC5D,WAAW,SAAQ,WAAW;AAAA,IAC5B,MAAM,QAAQ,MAAM,YAAY,KAAI,KAAI;AAAA,IACxC,IAAI,CAAC;AAAA,MAAO;AAAA,IACZ,MAAM,MAAM,UAAU,MAAM,KAAK,MAAM,KAAI;AAAA,IAC3C,MAAM,QAAO,IAAI,KAAK,MAAM,aAAa,KAAK,UAAU,KAAK,GAAG,EAAE,aAAa,2BAA2B,CAAC;AAAA,IAC3G,QAAQ,KAAK,GAAG;AAAA,IAChB,MAAM,SAAQ;AAAA,MACZ,KAAK,MAAM,WAAW,KAAK,QAAQ,KAAK,KAAK,UAAU;AAAA,MACvD,IAAI,gBAAgB,KAAI,KAAI,KAAK;AAAA,IACnC;AAAA,EACF;AAAA,EACA,IAAI,OAAO,KAAK,KAAK,EAAE;AAAA,IAAQ,SAAS,QAAQ;AAAA,EAEhD,MAAM,OAAO,cAAc,MAAM,KAAK,IAAI;AAAA,EAC1C,MAAM,QAAO,IAAI,MAAM,MAAM,aAAa,KAAK,UAAU,IAAI,YAAY,EAAE,OAAO,KAAK,UAAU,QAAQ,CAAC,CAAC,GAAG;AAAA,IAC5G,aAAa;AAAA,EACf,CAAC;AAAA,EACD,QAAQ,KAAK,IAAI;AAAA,EACjB,OAAO,EAAE,aAAa,MAAM,WAAW,KAAK,QAAQ,MAAM,KAAK,UAAU,GAAG,SAAS,OAAO,SAAS,MAAM;AAAA;AAK7G,eAAe,eAAe,CAAC,SAAkB,cAAsC;AAAA,EACrF,IAAI,CAAC;AAAA,IAAc;AAAA,EACnB,IAAI;AAAA,IACF,MAAM,cAAc,SAAQ,CAAC,YAAY,GAAG,EAAE,OAAO,KAAK,CAAC;AAAA,IAC3D,OAAO,GAAG;AAAA,IACV,QAAQ,KAAK,sDAAuD,EAAY,yDAAyD,cAAc;AAAA;AAAA;AAS3J,eAAsB,iBAAiB,CACrC,KACA,MAS0B;AAAA,EAC1B,MAAM,aAAa,YAAY,KAAK,UAAU;AAAA,EAC9C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,KAAK,UAAU;AAAA,IACjB,MAAM,OAAO,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC;AAAA,IACtD,WAAW,MAAM,eAAe,KAAK,UAAU,IAAI;AAAA,IACnD,UAAU,MAAM,IAAI;AAAA,EACtB,EAAO;AAAA,IACL,WAAW,kBAAkB;AAAA;AAAA,EAG/B,QAAQ,aAAa,SAAS,UAAU,MAAM,kBAAkB,KAAI;AAAA,IAClE,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,IACf,QAAQ,KAAK;AAAA,IACb;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAM,aAAa,KAAK,IAAI,IAAI,aAAa;AAAA,EAE7C,MAAM,QAAwB;AAAA,IAC5B,GAAG;AAAA,IACH,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,WAAW,KAAK;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,IACZ,YAAY,KAAK,IAAI;AAAA,IACrB,aAAa;AAAA,IACb,cAAc,CAAC,CAAC,KAAK;AAAA,IACrB;AAAA,IACA,KAAK,MAAM,QAAQ;AAAA,IACnB,MAAM;AAAA,EACR;AAAA,EACA,MAAM,iBAAiB,KAAK,MAAM,EAAE,IAAI,QAAQ,WAAW,KAAK,OAAO,MAAM,GAAG,KAAK,IAAI,GAAG,MAAM,UAAU,KAAK,QAAQ,KAAI,GAAG;AAAA,IAC9H,aAAa;AAAA,EACf,CAAC;AAAA,EACD,MAAM,gBAAgB,KAAK,QAAQ,KAAK,YAAY;AAAA,EAEpD,OAAO,EAAE,aAAa,YAAY,QAAQ,KAAK,WAAW,YAAY,MAAM,QAAQ,GAAG,SAAS,MAAM;AAAA;AAMxG,eAAsB,gBAAgB,CACpC,KACA,SACA,MACA,aAAa,qBACa;AAAA,EAC1B,MAAM,QAAO,MAAM,UAAS,SAAQ,IAAI;AAAA,EACxC,IAAI,CAAC;AAAA,IAAM,MAAM,IAAI,QAAQ,aAAa,yBAAyB,MAAM;AAAA,EACzE,MAAM,WAAW,QAAQ,MAAK,GAAG;AAAA,EACjC,MAAM,MAAM,YAAY,UAAU;AAAA,EAClC,QAAQ,aAAa,SAAS,UAAU,MAAM,kBAAkB,KAAI;AAAA,IAClE;AAAA,IACA,MAAM,MAAK;AAAA,IACX,UAAU,MAAK;AAAA,IACf;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd,CAAC;AAAA,EACD,MAAM,aAAa,KAAK,IAAI,IAAI,MAAM;AAAA,EACtC,MAAM,OAAwB,KAAK,OAAM,OAAO,aAAa,YAAY,QAAQ;AAAA,EACjF,MAAM,iBAAiB,OAAM,EAAE,IAAI,QAAQ,WAAW,QAAO,MAAM,GAAG,IAAI,GAAG,MAAM,UAAU,SAAQ,IAAI,GAAG;AAAA,IAC1G,aAAa;AAAA,EACf,CAAC;AAAA,EACD,OAAO,EAAE,aAAa,YAAY,QAAQ,MAAK,eAAe,YAAY,MAAK,KAAK,SAAS,MAAK,MAAM,MAAM;AAAA;AAIhH,eAAsB,gBAAgB,CAAC,SAA8C;AAAA,EACnF,MAAM,UAAS,iBAAiB,OAAM;AAAA,EACtC,MAAM,OAAO,WAAW,QAAO,MAAM;AAAA,EACrC,MAAM,UAAU,MAAM,QAAO,KAAK,GAAG,SAAS,WAAW,GAAG,EAAE,MAAM,MAAM,CAAC,CAAC;AAAA,EAC5E,MAAM,QAAQ,QACX,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,GAAG,QAAQ,MAAM,EAAE,QAAQ,OAAO,EAAE,CAAC,EAC5D,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS,GAAG,CAAC;AAAA,EACtC,MAAM,MAAyB,CAAC;AAAA,EAChC,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,QAAO,MAAM,UAAS,SAAQ,IAAI;AAAA,IACxC,IAAI;AAAA,MAAM,IAAI,KAAK,KAAI;AAAA,EACzB;AAAA,EACA,OAAO;AAAA;AAKT,eAAsB,wBAAwB,CAAC,SAAkB,MAA6B;AAAA,EAC5F,MAAM,UAAS,iBAAiB,OAAM;AAAA,EACtC,MAAM,OAAO,WAAW,QAAO,MAAM;AAAA,EACrC,MAAM,QAAO,IAAI,QAAQ,MAAM,IAAI,CAAC,EAAE,MAAM,MAAG;AAAA,IAAG;AAAA,GAAS;AAAA,EAC3D,MAAM,QAAO,MAAM,UAAS,SAAQ,IAAI,EAAE,MAAM,MAAM,IAAI;AAAA,EAC1D,MAAM,OAAO,OAAM,YAAY,MAAM,QAAO,KAAK,GAAG,QAAQ,OAAO,EAAE,MAAM,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG;AAAA,EACtG,WAAW,OAAO;AAAA,IAAM,MAAM,QAAO,IAAI,GAAG,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA;AAGrE,SAAS,WAAW,CAAC,KAAqB;AAAA,EACxC,OAAO,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,mBAAmB;AAAA;;;ADlQpE;AAGA,IAAM,uBAAuB;AAC7B,IAAM,wBAAwB;AAmD9B,SAAS,WAAW,CAAC,KAAc,MAAc,IAAoB;AAAA,EACnE,IAAI;AAAA,IACF,IAAI,SAAS;AAAA,MAAO,OAAO,YAAY,KAAI,EAAE,GAAG,SAAS;AAAA,IACzD,IAAI,SAAS;AAAA,MAAY,OAAO,YAAY,KAAI,EAAE,GAAG,QAAQ;AAAA,IAC7D,IAAI,SAAS,QAAQ;AAAA,MACnB,MAAM,IAAI,QAAQ,KAAI,EAAE;AAAA,MACxB,OAAO,GAAG,SAAS,GAAG,QAAQ;AAAA,IAChC;AAAA,IACA,MAAM;AAAA,EAGR,OAAO;AAAA;AAGT,SAAS,aAAa,CAAC,KAAc,MAAiB,KAA4C;AAAA,EAChG,IAAI,SAAS,QAAQ;AAAA,IACnB,MAAM,IAAI,YAAY,KAAI,GAAG;AAAA,IAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK;AAAA,EACnC;AAAA,EACA,MAAM,IAAI,cAAc,KAAI,KAAK,EAAE,MAAM,SAAS,aAAa,OAAO,MAAM,CAAC;AAAA,EAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,MAAM;AAAA;AAGpC,SAAS,aAAY,CAAC,KAAc,MAAkD;AAAA,EACpF,MAAM,OAAO,SAAQ,KAAI,IAAG;AAAA,EAC5B,IAAI,CAAC,QAAQ,KAAK,SAAS,QAAQ,CAAC,KAAK;AAAA,IACvC,MAAM,IAAI,QAAQ,aAAa,kCAAkC,MAAK;AAAA,EACxE,OAAO,EAAE,QAAQ,KAAK,MAAM,KAAK,MAAM,GAAe,OAAO,KAAK,SAAS,KAAI;AAAA;AAI1E,SAAS,gBAAgB,CAAC,KAAgD;AAAA,EAC/E,OAAO,UAAU,GAAE,EAChB,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,EAC7B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AAAA;AAIlD,SAAS,gBAAgB,CAAC,KAAgD;AAAA,EAC/E,OAAO,UAAU,GAAE,EAChB,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,EAC7B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AAAA;AAGzD,SAAS,UAAU,CAAC,KAAc,WAAmC;AAAA,EACnE,IAAI;AAAA,IAAW,OAAO;AAAA,EACtB,MAAM,UAAU,iBAAiB,GAAE;AAAA,EACnC,IAAI,QAAQ,WAAW;AAAA,IACrB,MAAM,IAAI,QAAQ,iBAAiB,iFAA2E;AAAA,EAChH,IAAI,QAAQ,SAAS;AAAA,IACnB,MAAM,IAAI,QAAQ,iBAAiB,wDAAkD,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI;AAAA,EAC9H,OAAO,QAAQ,GAAI;AAAA;AAGrB,SAAS,UAAU,CAAC,KAAc,UAA2B;AAAA,EAC3D,IAAI;AAAA,IAAU,OAAO,SAAS,QAAQ,QAAQ,EAAE;AAAA,EAChD,MAAM,MAAM,IAAG,MAAM,yDAAyD,EAAE,IAAI;AAAA,EAGpF,QAAQ,KAAK,SAAS,sBAAsB,QAAQ,QAAQ,EAAE;AAAA;AAGhE,SAAS,cAAc,CAAC,MAAkC;AAAA,EACxD,IAAI;AAAA,IACF,OAAO,IAAI,IAAI,IAAI,EAAE;AAAA,IACrB,MAAM;AAAA,IACN;AAAA;AAAA;AAIJ,SAAS,UAAU,CAAC,MAAc,aAAqB,QAAiB,SAA0B;AAAA,EAChG,MAAM,OAAO,KAAK,mBAAmB,WAAW,QAAQ,SAAS,KAAK,WAAW,KAAK;AAAA,EACtF,OAAO,GAAG,SAAS;AAAA;AAIrB,eAAsB,iBAAiB,CAAC,KAAc,KAAgD;AAAA,EACpG,MAAM,aAAa,IAAI,cAAc;AAAA,EACrC,MAAM,YAAY,IAAI,aAAa;AAAA,EAGnC,IAAI,cAAc,MAAM;AAAA,IACtB,IAAI,eAAe;AAAA,MACjB,MAAM,IAAI,QAAQ,iBAAiB,sFAAgF;AAAA,IACrH,IAAI,IAAI,SAAS;AAAA,MACf,MAAM,IAAI,QAAQ,iBAAiB,0EAAoE;AAAA,IACzG,MAAM,UAAS,cAAc,KAAI,IAAI,MAAM,IAAI,GAAG;AAAA,IAClD,MAAM,YAAY,WAAW,KAAI,IAAI,SAAS;AAAA,IAC9C,QAAQ,iBAAQ,UAAU,cAAa,KAAI,SAAS;AAAA,IACpD,MAAM,OAAO,WAAW,KAAI,IAAI,UAAU;AAAA,IAC1C,MAAM,OAAO,UAAU,GAAE;AAAA,IACzB,MAAM,MAAM,MAAM,kBAAkB,KAAI;AAAA,MACtC;AAAA,MACA,MAAM,IAAI;AAAA,MACV,UAAU,QAAO;AAAA,MACjB;AAAA,MACA,UAAU,IAAI;AAAA,MACd,YAAY,IAAI,aAAa,OAAO,KAAK,MAAM,IAAI,YAAY,IAAI,IAAI;AAAA,MACvE,cAAc,eAAe,IAAI;AAAA,IACnC,CAAC;AAAA,IACD,OAAO;AAAA,MACL;AAAA,MACA,MAAM,IAAI;AAAA,MACV,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,KAAK,WAAW,MAAM,IAAI,aAAa,IAAI,QAAQ,IAAI,OAAO;AAAA,MAC9D,WAAW,IAAI;AAAA,MACf,QAAQ,UAAI;AAAA,IACd;AAAA,EACF;AAAA,EAGA,MAAM,OAAO,IAAI,SAAS,SAAQ,KAAI,IAAI,MAAM,IAAI;AAAA,EACpD,IAAI,IAAI,UAAU,QAAQ,KAAK,SAAS,MAAM;AAAA,IAC5C,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,OAAO,QAAQ,QAAQ,EAAE,eAAe;AAAA,MACrE,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,WACZ,KAAK,QAAQ,EAAE,eAAe,UAAU,KAAK,QAAQ,IAAI,CAAC;AAAA,MAChE;AAAA,MACA,MAAM,KAAK,UAAU,KAAK,KAAK,QAAQ,UAAU,CAAC;AAAA,IACpD,CAAC,EAAE,MAAM,CAAC,MAAM;AAAA,MACd,MAAM,IAAI,QAAQ,WAAW,mBAAmB,IAAI,WAAY,EAAY,SAAS;AAAA,KACtF;AAAA,IACD,MAAM,OAAQ,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAAA,IAC/C,IAAI,CAAC,IAAI;AAAA,MAAI,MAAM,IAAI,QAAQ,WAAW,KAAK,SAAS,wBAAwB,IAAI,QAAQ;AAAA,IAC5F,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,IAAI;AAAA,MACV;AAAA,MACA,WAAW;AAAA,MACX,KAAK,KAAK;AAAA,MACV,WAAW,KAAK,aAAa;AAAA,MAC7B,QAAQ,KAAK,SAAS,IAAI;AAAA,IAC5B;AAAA,EACF;AAAA,EAGA,MAAM,SAAS,cAAc,KAAI,IAAI,MAAM,IAAI,GAAG;AAAA,EAClD,IAAI,SAAwB;AAAA,EAC5B,IAAI,SAAwB;AAAA,EAC5B,IAAI,IAAI,UAAU;AAAA,IAChB,MAAM,IAAI,MAAM,kBAAkB,IAAI,QAAQ;AAAA,IAC9C,SAAS,EAAE;AAAA,IACX,SAAS,EAAE;AAAA,EACb;AAAA,EAEA,MAAM,aAAa,IAAI,SAAS,IAAI,OAAO,QAAQ,QAAQ,EAAE,IAAI;AAAA,EACjE,MAAM,QAAQ,YAAY,KAAI;AAAA,IAC5B,MAAM,IAAI;AAAA,IACV,WAAW,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,IAAI,aAAa,OAAO,KAAK,IAAI,IAAI,IAAI,YAAY;AAAA,IAChE;AAAA,EACF,CAAC;AAAA,EACD,OAAO;AAAA,IACL,MAAM,MAAM;AAAA,IACZ,MAAM,IAAI;AAAA,IACV;AAAA,IACA,WAAW;AAAA,IACX,KAAK,GAAG,cAAc,YAAY,MAAM;AAAA,IACxC,WAAW,MAAM;AAAA,IACjB,QAAQ,cAAc;AAAA,EACxB;AAAA;AAKF,eAAsB,eAAe,CAAC,KAAc,UAA6C;AAAA,EAC/F,MAAM,MAAuB,CAAC;AAAA,EAC9B,MAAM,OAAO,WAAW,oBAAoB,KAAI,QAAQ,IAAI,WAAW,GAAE;AAAA,EACzE,WAAW,KAAK,MAAM;AAAA,IACpB,IAAI,KAAK;AAAA,MACP,MAAM,EAAE;AAAA,MACR,MAAM,EAAE;AAAA,MACR,WAAW,EAAE;AAAA,MACb,OAAO,YAAY,KAAI,EAAE,MAAM,EAAE,SAAS;AAAA,MAC1C,YAAY,EAAE;AAAA,MACd,WAAW;AAAA,MACX,QAAQ,EAAE,eAAe;AAAA,MACzB,YAAY;AAAA,MACZ,WAAW,EAAE;AAAA,MACb,aAAa,CAAC,CAAC,EAAE;AAAA,MACjB,KAAK,EAAE,cAAc,GAAG,EAAE,qBAAqB,EAAE,SAAS,UAAU,EAAE;AAAA,IACxE,CAAC;AAAA,EACH;AAAA,EACA,WAAW,KAAK,UAAU,GAAE,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,MAAM,GAAG;AAAA,IACxE,MAAM,UAAS,KAAK,MAAM,EAAE,MAAO;AAAA,IACnC,MAAM,QAAQ,MAAM,iBAAiB,OAAM,EAAE,MAAM,MAAM,CAAC,CAAC;AAAA,IAC3D,WAAW,KAAK,OAAO;AAAA,MACrB,IAAI,YAAY,EAAE,cAAc;AAAA,QAAU;AAAA,MAC1C,IAAI,KAAK;AAAA,QACP,MAAM,EAAE;AAAA,QACR,MAAM,EAAE;AAAA,QACR,WAAW,EAAE;AAAA,QACb,OAAO,EAAE,SAAS,EAAE;AAAA,QACpB,YAAY,EAAE;AAAA,QACd,WAAW;AAAA,QACX,QAAQ,UAAI,EAAE,SAAS,EAAE;AAAA,QACzB,YAAY;AAAA,QACZ,WAAW,EAAE;AAAA,QACb,aAAa,EAAE;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAiCT,eAAsB,iBAAiB,CAAC,KAAc,MAAgC;AAAA,EACpF,IAAI,SAAS,KAAI,IAAI;AAAA,IAAG,OAAO,YAAY,KAAI,IAAI;AAAA,EACnD,WAAW,KAAK,UAAU,GAAE,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,MAAM,GAAG;AAAA,IACxE,MAAM,UAAS,KAAK,MAAM,EAAE,MAAO;AAAA,IACnC,MAAM,QAAQ,MAAM,iBAAiB,OAAM,EAAE,MAAM,MAAM,CAAC,CAAC;AAAA,IAC3D,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG;AAAA,MACtC,MAAM,yBAAyB,SAAQ,IAAI;AAAA,MAC3C,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIT,eAAsB,gBAAgB,CAAC,KAAc,MAAc,oBAAoD;AAAA,EACrH,WAAW,KAAK,UAAU,GAAE,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,MAAM,GAAG;AAAA,IACxE,MAAM,UAAS,KAAK,MAAM,EAAE,MAAO;AAAA,IACnC,MAAM,QAAQ,MAAM,iBAAiB,OAAM,EAAE,MAAM,MAAM,CAAC,CAAC;AAAA,IAC3D,MAAM,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI;AAAA,IAC3C,IAAI,CAAC;AAAA,MAAG;AAAA,IACR,MAAM,OAAO,WAAW,KAAI,kBAAkB;AAAA,IAC9C,MAAM,MAAM,MAAM,iBAAiB,KAAI,SAAQ,IAAI;AAAA,IACnD,OAAO;AAAA,MACL;AAAA,MACA,MAAM,EAAE;AAAA,MACR,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,KAAK,WAAW,MAAM,IAAI,aAAa,IAAI,QAAQ,IAAI,OAAO;AAAA,MAC9D,WAAW,IAAI;AAAA,MACf,QAAQ,UAAI,EAAE,SAAS,EAAE;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,MAAM,IAAI,QAAQ,aAAa,iCAAiC,MAAM;AAAA;AAIxE,SAAS,SAAS,CAAC,KAAsB;AAAA,EACvC,IAAI,OAAO,aAAa,EAAE;AAAA,EAC1B,OAAO,SAAS,KAAI,IAAI;AAAA,IAAG,OAAO,aAAa,EAAE;AAAA,EACjD,OAAO;AAAA;;;AD/VT,IAAM,iBAAiB,iBAAE,OAAO;AAAA,EAC9B,MAAM,iBAAE,KAAK,CAAC,OAAO,YAAY,MAAM,CAAC;AAAA,EACxC,KAAK,iBAAE,OAAO;AAAA,EACd,WAAW,iBAAE,KAAK,CAAC,UAAU,IAAI,CAAC,EAAE,SAAS;AAAA,EAC7C,YAAY,iBAAE,KAAK,CAAC,QAAQ,MAAM,CAAC,EAAE,SAAS;AAAA,EAC9C,UAAU,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACzC,WAAW,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC1C,QAAQ,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACvC,WAAW,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC1C,YAAY,iBAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AACD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAC/B,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO;AAAA,EACf,YAAY,iBAAE,OAAO;AAAA,EACrB,WAAW,iBAAE,OAAO;AAAA,EACpB,KAAK,iBAAE,OAAO;AAAA,EACd,WAAW,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,QAAQ,iBAAE,OAAO;AACnB,CAAC;AACD,IAAM,mBAAmB,iBAAE,OAAO;AAAA,EAChC,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO;AAAA,EACf,WAAW,iBAAE,OAAO;AAAA,EACpB,OAAO,iBAAE,OAAO;AAAA,EAChB,YAAY,iBAAE,OAAO;AAAA,EACrB,WAAW,iBAAE,OAAO;AAAA,EACpB,QAAQ,iBAAE,OAAO;AAAA,EACjB,YAAY,iBAAE,OAAO;AAAA,EACrB,WAAW,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAa,iBAAE,QAAQ;AAAA,EACvB,KAAK,iBAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,KAAsB;AAAA,EACxC,MAAM,OAAM,IAAI,IAAI,IAAI,GAAG;AAAA,EAC3B,OAAO,GAAG,KAAI,aAAa,KAAI;AAAA;AAG1B,IAAM,cAAuB;AAAA,EAClC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,iBAAE,OAAO,EAAE,KAAK,iBAAE,OAAO,GAAG,OAAO,iBAAE,OAAO,EAAE,CAAC,CAAC;AAAA,IAClE,SAAS,CAAC,QAAQ,cAAS,SAAS,KAAK,iBAAiB,GAAE,CAAC;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,iBAAE,OAAO,EAAE,KAAK,iBAAE,OAAO,GAAG,OAAO,iBAAE,OAAO,EAAE,CAAC,CAAC;AAAA,IAClE,SAAS,CAAC,QAAQ,cAAS,SAAS,KAAK,iBAAiB,GAAE,CAAC;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE,gGACA;AAAA,IACF,UAAU,iBAAE,MAAM,gBAAgB;AAAA,IAClC,SAAS,OAAO,OAAO,cAAS;AAAA,MAC9B,IAAI;AAAA,QACF,MAAM,SAAS,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,IAAI,QAAQ,KAAK;AAAA,QAC9D,OAAO,SAAS,KAAK,MAAM,gBAAgB,KAAI,MAAM,CAAC;AAAA,QACtD,OAAO,GAAG;AAAA,QACV,OAAO,cAAc,CAAC;AAAA;AAAA;AAAA,EAG5B;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,OAAO,OAAO,cAAS;AAAA,MAC9B,IAAI;AAAA,QACF,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,QAC7B,IAAI,CAAC,KAAK,QAAQ,CAAC,KAAK;AAAA,UAAK,MAAM,IAAI,QAAQ,iBAAiB,2BAA2B;AAAA,QAC3F,MAAM,YAAY,KAAK,aAAa;AAAA,QAIpC,IAAI,UAAS,KAAK,UAAU;AAAA,QAC5B,IAAI,cAAc,YAAY,CAAC,OAAO,KAAI,OAAM;AAAA,UAAG,UAAS,WAAU,WAAW,GAAG;AAAA,QACpF,MAAM,MAAM,MAAM,kBAAkB,KAAI;AAAA,UACtC,MAAM,KAAK;AAAA,UACX,KAAK,KAAK;AAAA,UACV;AAAA,UACA,YAAY,KAAK;AAAA,UACjB,UAAU,KAAK,YAAY;AAAA,UAC3B,WAAW,KAAK,aAAa;AAAA,UAC7B;AAAA,UACA,WAAW,KAAK,aAAa;AAAA,UAC7B,YAAY,KAAK;AAAA,QACnB,CAAC;AAAA,QACD,OAAO,SAAS,KAAK,GAAG;AAAA,QACxB,OAAO,GAAG;AAAA,QACV,OAAO,cAAc,CAAC;AAAA;AAAA;AAAA,EAG5B;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,OAAO,OAAO,cAAS;AAAA,MAC9B,IAAI;AAAA,QACF,MAAM,OAAO,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,IAAI,MAAM;AAAA,QACrD,IAAI,CAAC;AAAA,UAAM,MAAM,IAAI,QAAQ,iBAAiB,eAAe;AAAA,QAC7D,OAAO,SAAS,KAAK,MAAM,iBAAiB,KAAI,IAAI,CAAC;AAAA,QACrD,OAAO,GAAG;AAAA,QACV,OAAO,cAAc,CAAC;AAAA;AAAA;AAAA,EAG5B;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,OAAO,EAAE,IAAI,iBAAE,QAAQ,EAAE,CAAC;AAAA,IACtC,SAAS,OAAO,OAAO,cAAS;AAAA,MAC9B,IAAI;AAAA,QACF,MAAM,OAAO,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,IAAI,MAAM;AAAA,QACrD,IAAI,CAAC;AAAA,UAAM,MAAM,IAAI,QAAQ,iBAAiB,eAAe;AAAA,QAC7D,OAAO,SAAS,KAAK,EAAE,IAAI,MAAM,kBAAkB,KAAI,IAAI,EAAE,CAAC;AAAA,QAC9D,OAAO,GAAG;AAAA,QACV,OAAO,cAAc,CAAC;AAAA;AAAA;AAAA,EAG5B;AACF;AAEA,SAAS,MAAM,CAAC,KAA6C,MAAuB;AAAA,EAClF,IAAI,CAAC;AAAA,IAAK,OAAO;AAAA,EACjB,OAAO,iBAAiB,GAAE,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAG;AAAA;;;AF1EvD,IAAM,iBAAiB,iBAAE,OAAO;AAAA,EAC9B,IAAI,iBAAE,OAAO;AAAA,EACb,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,aAAa,iBAAE,OAAO;AACxB,CAAC;AACD,IAAM,iBAAiB,iBAAE,OAAO;AAAA,EAC9B,IAAI,iBAAE,OAAO;AAAA,EACb,aAAa,iBAAE,OAAO;AAAA,EACtB,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO;AAAA,EACf,QAAQ,iBAAE,IAAI,EAAE,SAAS;AAAA,EACzB,UAAU,iBAAE,OAAO;AACrB,CAAC;AACD,IAAM,eAAe,iBAAE,OAAO;AAAA,EAC5B,IAAI,iBAAE,OAAO;AAAA,EACb,aAAa,iBAAE,OAAO;AAAA,EACtB,QAAQ,iBACL,OAAO,iBAAE,OAAO,GAAG,iBAAE,IAAI,CAAC,EAC1B,SACC,6LACF;AAAA,EACF,OAAO,iBACJ,OAAO,iBAAE,OAAO,GAAG,iBAAE,IAAI,CAAC,EAC1B,SACC,2HACF;AACJ,CAAC;AACD,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EAC7B,QAAQ,iBAAE,OAAO;AAAA,EACjB,OAAO,iBAAE,KAAK,CAAC,UAAU,OAAO,CAAC;AACnC,CAAC;AACD,IAAM,wBAAwB,iBAAE,OAAO;AAAA,EACrC,IAAI,iBAAE,OAAO;AAAA,EACb,OAAO,iBAAE,OAAO;AAAA,EAChB,aAAa,iBAAE,OAAO,EAAE,SAAS;AAAA,EACjC,WAAW,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAa,iBAAE,OAAO;AAAA,EACtB,WAAW,iBAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AACD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAC/B,QAAQ,iBAAE,OAAO;AAAA,EACjB,OAAO,iBAAE,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC;AAC3C,CAAC;AACD,IAAM,iBAAiB,sBAAsB,OAAO;AAAA,EAClD,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAG1B,SAAS,iBAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AACD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAC/B,MAAM,iBAAE,OAAO;AAAA,EACf,IAAI,iBAAE,OAAO;AAAA,EACb,aAAa,iBAAE,OAAO,EAAE,SAAS;AAAA,EACjC,OAAO,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,SAAS,iBAAE,OAAO;AACpB,CAAC;AACD,IAAM,YAAW,iBAAE,OAAO,EAAE,IAAI,iBAAE,QAAQ,EAAE,CAAC;AAE7C,IAAM,oBAAoB,iBAAE,OAAO,EAAE,MAAM,iBAAE,OAAO,GAAG,MAAM,iBAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACpF,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AACvC,CAAC;AACD,IAAM,uBAAuB,iBAAE,OAAO;AAAA,EACpC,MAAM,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iDAAiD;AAAA,EACtF,MAAM,iBAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AACD,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,IAAI,iBAAE,OAAO;AAAA,EACb,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO;AAAA,EACf,QAAQ,iBAAE,IAAI,EAAE,SAAS;AAC3B,CAAC;AACD,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,iBAAE,IAAI,EAAE,SAAS;AAAA,EACzB,UAAU,iBAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AACD,IAAM,cAAc,iBAAE,OAAO,EAAE,OAAO,iBAAE,OAAO,EAAE,CAAC;AAClD,IAAM,kBAAkB,iBACrB,OAAO,iBAAE,OAAO,GAAG,iBAAE,IAAI,CAAC,EAC1B,SAAS,6DAA6D;AACzE,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,OAAO,iBAAE,OAAO;AAAA,EAChB,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,aAAa,iBAAE,OAAO,EAAE,SAAS;AAAA,EACjC,WAAW,iBAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AACD,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,OAAO,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,WAAW,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAI1C,UAAU,iBAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AACD,IAAM,uBAAuB,iBAAE,OAAO;AAAA,EACpC,OAAO,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mDAAmD;AAAA,EACzF,WAAW,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAC5C,CAAC;AAED,IAAM,eAAe,iBAAE,OAAO;AAAA,EAG5B,SAAS,iBAAE,OAAO;AAAA,EAClB,IAAI,iBAAE,OAAO,EAAE,SAAS,4CAA4C;AAAA,EACpE,SAAS,iBAAE,OAAO;AAAA,EAClB,MAAM,iBAAE,KAAK,CAAC,QAAQ,UAAU,QAAQ,CAAC,EAAE,SAAS,wBAAwB;AAAA,EAC5E,SAAS,iBAAE,OAAO;AAAA,EAClB,SAAS,iBAAE,QAAQ;AAAA,EACnB,SAAS,iBAAE,QAAQ;AACrB,CAAC;AACD,IAAM,oBAAoB,aAAa,OAAO;AAAA,EAC5C,eAAe,iBAAE,QAAQ;AAAA,EACzB,gBAAgB,iBAAE,OAAO;AAAA,EACzB,gBAAgB,iBAAE,OAAO;AAC3B,CAAC;AACD,IAAM,uBAAuB,aAAa,OAAO;AAAA,EAC/C,QAAQ,iBAAE,MAAM,iBAAE,OAAO,CAAC,EAAE,SAAS,mCAAmC;AAAA,EACxE,OAAO,iBAAE,QAAQ;AACnB,CAAC;AACD,IAAM,8BAA8B,qBAAqB,OAAO;AAAA,EAC9D,WAAW,iBAAE,OAAO;AAAA,EACpB,cAAc,iBACX,OAAO,EACP,SAAS,EACT,SAAS,kFAAkF;AAAA,EAC9F,OAAO,iBACJ,MACC,iBAAE,OAAO;AAAA,IACP,MAAM,iBAAE,OAAO;AAAA,IACf,QAAQ,iBAAE,IAAI,EAAE,SAAS;AAAA,IACzB,OAAO,iBAAE,IAAI,EAAE,SAAS;AAAA,EAC1B,CAAC,CACH,EACC,SAAS,uEAAuE;AACrF,CAAC;AACD,IAAM,6BAA6B,iBAAE,OAAO;AAAA,EAC1C,IAAI,iBAAE,OAAO;AAAA,EACb,OAAO,iBAAE,OAAO;AAAA,EAChB,MAAM,iBAAE,OAAO;AAAA,EACf,SAAS,iBAAE,QAAQ;AAAA,EACnB,SAAS,iBAAE,OAAO;AACpB,CAAC;AACD,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,IAAI,iBAAE,OAAO,EAAE,SAAS,0CAA0C;AAAA,EAClE,UAAU,iBAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AACD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAC/B,IAAI,iBAAE,OAAO,EAAE,SAAS,wCAAwC;AAClE,CAAC;AACD,IAAM,wBAAwB,iBAAE,OAAO;AAAA,EACrC,IAAI,iBAAE,OAAO;AAAA,EACb,SAAS,iBAAE,QAAQ;AAAA,EACnB,UAAU,iBAAE,OAAO;AAAA,EACnB,SAAS,iBAAE,OAAO;AAAA,EAClB,WAAW,iBAAE,QAAQ;AACvB,CAAC;AACD,IAAM,2BAA2B,iBAAE,OAAO;AAAA,EACxC,IAAI,iBAAE,OAAO;AAAA,EACb,SAAS,iBAAE,QAAQ;AAAA,EACnB,QAAQ,iBAAE,MAAM,iBAAE,OAAO,CAAC;AAAA,EAC1B,WAAW,iBAAE,QAAQ;AAAA,EACrB,UAAU,iBAAE,OAAO;AACrB,CAAC;AACD,IAAM,yBAAyB,aAAa,OAAO;AAAA,EACjD,QAAQ,iBAAE,MAAM,iBAAE,OAAO,CAAC,EAAE,SAAS,wDAAwD;AAAA,EAC7F,eAAe,iBAAE,OAAO;AAC1B,CAAC;AACD,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,IAAI,iBAAE,OAAO,EAAE,SAAS,0CAA0C;AACpE,CAAC;AACD,IAAM,6BAA6B,iBAAE,OAAO;AAAA,EAC1C,IAAI,iBAAE,OAAO;AAAA,EACb,SAAS,iBAAE,QAAQ;AAAA,EACnB,QAAQ,iBAAE,MAAM,iBAAE,OAAO,CAAC;AAAA,EAC1B,gBAAgB,iBAAE,OAAO;AAAA,EACzB,eAAe,iBAAE,OAAO;AAAA,EACxB,WAAW,iBAAE,QAAQ;AAAA,EACrB,UAAU,iBAAE,OAAO;AACrB,CAAC;AACD,IAAM,2BAA2B,iBAAE,OAAO;AAAA,EACxC,IAAI,iBAAE,OAAO;AAAA,EACb,aAAa,iBAAE,OAAO,EAAE,SAAS;AAAA,EACjC,SAAS,iBAAE,QAAQ;AAAA,EACnB,MAAM,iBAAE,OAAO,iBAAE,OAAO,GAAG,iBAAE,IAAI,CAAC,EAAE,SAAS,6CAA6C;AAAA,EAC1F,SAAS,iBAAE,OAAO;AACpB,CAAC;AACD,IAAM,0BAA0B,iBAAE,OAAO;AAAA,EACvC,SAAS,iBAAE,OAAO;AAAA,EAClB,IAAI,iBAAE,OAAO;AAAA,EACb,SAAS,iBAAE,OAAO;AAAA,EAClB,OAAO,iBAAE,IAAI,EAAE,SAAS;AAAA,EACxB,SAAS,iBAAE,QAAQ;AACrB,CAAC;AACD,IAAM,iBAAiB,iBAAE,OAAO;AAAA,EAC9B,SAAS,iBAAE,OAAO;AAAA,EAClB,OAAO,iBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,EAClF,MAAM,iBAAE,QAAQ,EAAE,SAAS,wCAAwC;AACrE,CAAC;AACD,IAAM,mBAAmB,iBAAE,OAAO;AAAA,EAChC,YAAY,iBAAE,OAAO;AAAA,EACrB,gBAAgB,iBAAE,OAAO;AAAA,EACzB,eAAe,iBAAE,OAAO;AAAA,EACxB,OAAO,iBAAE,OAAO;AAAA,EAChB,gBAAgB,iBAAE,OAAO;AAC3B,CAAC;AACD,IAAM,mBAAmB,iBAAE,OAAO;AAAA,EAChC,WAAW,iBAAE,MAAM,iBAAE,OAAO,CAAC;AAAA,EAC7B,YAAY,iBAAE,KAAK,CAAC,OAAO,KAAK,CAAC;AACnC,CAAC;AACD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAC/B,QAAQ,iBAAE,OAAO;AAAA,EACjB,OAAO,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,iBAAE,QAAQ;AAClB,CAAC;AACD,IAAM,qBAAqB,iBAAE,OAAO;AAAA,EAClC,KAAK,iBAAE,OAAO;AAAA,EACd,OAAO,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQ,iBAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AACD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO,iBAAE,MAAM,eAAe;AAAA,EAC9B,SAAS,iBAAE,MAAM,kBAAkB,EAAE,SAAS,kEAAkE;AAAA,EAChH,YAAY,iBAAE,OAAO,EAAE,SAAS,+CAA+C;AAAA,EAC/E,aAAa,iBAAE,OAAO;AAAA,EACtB,aAAa,iBAAE,OAAO;AAAA,EACtB,gBAAgB,iBACb,OAAO,EACP,SAAS,EACT,SAAS,yEAAyE;AAAA,EACrF,oBAAoB,iBACjB,MAAM,iBAAE,OAAO,CAAC,EAChB,SAAS,oEAAoE;AAClF,CAAC;AACD,IAAM,SAAS,iBAAE,OAAO;AAAA,EACtB,MAAM,iBAAE,OAAO;AAAA,EACf,QAAQ,iBAAE,QAAQ;AACpB,CAAC;AACD,IAAM,eAAe,iBAAE,OAAO,EAAE,MAAM,iBAAE,OAAO,GAAG,QAAQ,iBAAE,QAAQ,EAAE,CAAC;AACvE,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACjC,SAAS,iBAAE,OAAO;AAAA,EAClB,YAAY,iBAAE,OAAO;AAAA,EACrB,SAAS,iBAAE,OAAO;AACpB,CAAC;AACD,IAAM,iBAAiB,iBAAE,OAAO;AAAA,EAC9B,SAAS,iBAAE,OAAO;AAAA,EAClB,YAAY,iBAAE,OAAO;AACvB,CAAC;AACD,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EAC7B,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO;AAAA,EACf,aAAa,iBAAE,OAAO,EAAE,SAAS;AAAA,EACjC,YAAY,iBAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQ,iBAAE,QAAQ;AAAA,EAClB,SAAS,iBAAE,QAAQ,EAAE,SAAS,8DAAwD;AAAA,EACtF,WAAW,iBAAE,QAAQ,EAAE,SAAS,kDAAkD;AAAA,EAClF,YAAY,iBAAE,QAAQ,EAAE,SAAS,+DAA+D;AAClG,CAAC;AACD,IAAM,iBAAiB,iBAAE,MAAM,aAAa;AAC5C,IAAM,cAAc,iBAAE,OAAO,EAAE,QAAQ,iBAAE,MAAM,iBAAE,OAAO,CAAC,EAAE,CAAC;AAC5D,IAAM,mBAAmB,iBAAE,OAAO;AAAA,EAChC,YAAY,iBACT,MAAM,iBAAE,OAAO,CAAC,EAChB,SAAS,EACT,SAAS,8DAAwD;AAAA,EACpE,YAAY,iBAAE,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,SAAS;AAC9C,CAAC;AACD,IAAM,yBAAyB,iBAAE,OAAO;AAAA,EACtC,QAAQ;AACV,CAAC;AAID,SAAS,KAAI,CAAC,KAAc,KAAqB;AAAA,EAC/C,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,IAAI,GAAG;AAAA,EAC/C,IAAI,CAAC;AAAA,IAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK;AAAA,EACrD,OAAO;AAAA;AAGT,SAAS,GAAG,CAAC,KAAc,KAAiC;AAAA,EAC1D,OAAO,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,IAAI,GAAG,KAAK;AAAA;AAInD,SAAS,OAAM,CACb,IACkB;AAAA,EAClB,OAAO,OAAO,KAAK,QAAQ;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG;AAAA,MAC7B,IAAI,eAAe;AAAA,QAAU,OAAO;AAAA,MACpC,OAAO,SAAS,KAAK,OAAO,IAAI;AAAA,MAChC,OAAO,GAAG;AAAA,MACV,OAAO,cAAc,CAAC;AAAA;AAAA;AAAA;AAO5B,IAAM,gBAAgB,iBAAE,OAAO,EAAE,SAAS,iBAAE,OAAO,EAAE,CAAC;AAItD,SAAS,aAAa,CAAC,KAAc,cAAwB,CAAC,GAAG;AAAA,EAC/D,eAAe,GAAE;AAAA,EACjB,MAAM,SAAS,YAAY,GAAE,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM;AAAA,EACrD,OAAO;AAAA,IACL,OAAO,WAAW,GAAE;AAAA,IACpB,QAAQ,WAAW,GAAE;AAAA,IACrB,OAAO,WAAW,GAAE;AAAA,IACpB,SAAS,aAAa,GAAE;AAAA,IACxB,YAAY,gBAAgB,GAAE,EAAE;AAAA,IAChC,aAAa,OAAO;AAAA,IACpB,aAAa,OAAO,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM,CAAC;AAAA,IAClD,gBAAgB,mBAAmB,GAAE;AAAA,IACrC,oBAAoB;AAAA,EACtB;AAAA;AAOF,SAAS,QAAQ,CAAC,KAAc;AAAA,EAC9B,eAAe,GAAE;AAAA,EACjB,MAAM,OAAO,iBAAiB,GAAE;AAAA,EAChC,OAAO,YAAY,GAAE,EAAE,IAAI,CAAC,OAAO;AAAA,IACjC,MAAM,EAAE;AAAA,IACR,MAAM,EAAE;AAAA,IACR,aAAa,EAAE;AAAA,IACf,YAAY,EAAE;AAAA,IACd,QAAQ,CAAC,CAAC,EAAE;AAAA,IACZ,SAAS,CAAC,CAAC,EAAE;AAAA,IACb,WAAW,YAAY,KAAI,EAAE,IAAI;AAAA,IACjC,YAAY,KAAK,IAAI,EAAE,IAAI;AAAA,EAC7B,EAAE;AAAA;AAGG,IAAM,cAAuB;AAAA,EAClC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,MAAM,SAAS,KAAK,EAAE,SAAS,gBAAI,QAAQ,CAAC;AAAA,EACvD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,cAAc;AAAA,IAChC,SAAS,QAAO,CAAC,QAAQ,cAAS,cAAc,GAAE,CAAC;AAAA,EACrD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,eAAe,KAAI,IAAI;AAAA,KAC/B;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,eAAe,KAAI,MAAK,KAAK,IAAI,GAAG,IAAI;AAAA,KAChD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAAA,MAC/C,OAAO,kBAAkB,KAAI,MAAK,KAAK,IAAI,GAAG,IAAI;AAAA,KACnD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,eAAU,EAAE,IAAI,eAAe,KAAI,MAAK,KAAK,IAAI,CAAC,EAAE,EAAE;AAAA,EAChF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,UAAU,iBAAE,MAAM,2BAA2B;AAAA,IAC7C,SAAS,QAAO,CAAC,OAAO,cAAS;AAAA,MAC/B,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,OAAO,qBAAqB,KAAI,MAAK,KAAK,IAAI,GAAG;AAAA,QAC/C,OAAO,QAAQ,OAAO,KAAK,IAAI;AAAA,MACjC,CAAC;AAAA,KACF;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,cAAc;AAAA,IAChC,SAAS,QAAO,CAAC,OAAO,cAAS,eAAe,KAAI,MAAK,KAAK,IAAI,CAAC,CAAC;AAAA,EACtE;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAM7B,OAAO,YAAY,KAAI,KAAK,IAAI,EAAE,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,QAAQ,KAAK,OAAO,CAAC;AAAA,KAC1F;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAM7B,OAAO,eAAe,KAAI,MAAK,KAAK,IAAI,GAAG,IAAI;AAAA,KAChD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,iBAAiB,KAAI,MAAK,KAAK,IAAI,GAAG,KAAK,KAAK;AAAA,KACxD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,eAAU,EAAE,IAAI,eAAe,KAAI,MAAK,KAAK,IAAI,CAAC,EAAE,EAAE;AAAA,EAChF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,sBAAsB;AAAA,IACxC,SAAS,QAAO,CAAC,OAAO,cAAS,sBAAsB,KAAI,MAAK,KAAK,IAAI,CAAC,CAAC;AAAA,EAC7E;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,eAAe,KAAI,MAAK,KAAK,IAAI,GAAG,KAAK,EAAE;AAAA,KACnD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,YAAY;AAAA,IAC9B,SAAS,QAAO,CAAC,OAAO,cAAS;AAAA,MAC/B,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,OAAO,YAAY,KAAI,MAAK,KAAK,IAAI,GAAG;AAAA,QACtC,MAAM,IAAI,KAAK,MAAM;AAAA,QACrB,OAAO,QAAQ,OAAO,KAAK,IAAI;AAAA,MACjC,CAAC;AAAA,KACF;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,SAAU,MAAM,IAAI,KAAK;AAAA,MAC/B,OAAO,aAAa,KAAI,MAAK,KAAK,IAAI,GAAG,MAAM;AAAA,KAChD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,cAAS;AAAA,MAC/B,MAAM,KAAK,MAAK,KAAK,IAAI;AAAA,MACzB,MAAM,MAAM,UAAU,KAAI,EAAE;AAAA,MAC5B,IAAI,CAAC;AAAA,QAAK,MAAM,IAAI,QAAQ,aAAa,mBAAmB,IAAI;AAAA,MAChE,OAAO;AAAA,KACR;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,SAAU,MAAM,IAAI,KAAK;AAAA,MAC/B,OAAO,aAAa,KAAI,MAAK,KAAK,IAAI,GAAG,MAAM;AAAA,KAChD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,WAAW,KAAI,MAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,KAAK,KAAK;AAAA,KAC/D;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,oBAAoB;AAAA,IACtC,SAAS,QAAO,CAAC,OAAO,cAAS,oBAAoB,KAAI,MAAK,KAAK,IAAI,CAAC,CAAC;AAAA,EAC3E;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,cAAS,gBAAgB,KAAI,MAAK,KAAK,IAAI,GAAG,MAAK,KAAK,SAAS,CAAC,CAAC;AAAA,EAC7F;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,uBAAuB;AAAA,IACzC,SAAS,QAAO,CAAC,OAAO,cAAS,mBAAmB,KAAI,MAAK,KAAK,IAAI,GAAG,MAAK,KAAK,MAAM,CAAC,CAAC;AAAA,EAC7F;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,aAAa,KAAI,MAAK,KAAK,IAAI,GAAG,KAAK,EAAE;AAAA,KACjD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,eAAU,EAAE,IAAI,aAAa,KAAI,MAAK,KAAK,IAAI,CAAC,EAAE,EAAE;AAAA,EAC9E;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,qBAAqB;AAAA,IACvC,SAAS,QAAO,CAAC,OAAO,cACtB,cAAc,KAAI,EAAE,aAAa,IAAI,KAAK,IAAI,GAAG,WAAW,IAAI,KAAK,QAAQ,EAAE,CAAC,CAClF;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAM7B,OAAO,eAAe,KAAI,IAAI;AAAA,KAC/B;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,cAAS;AAAA,MAC/B,MAAM,KAAK,MAAK,KAAK,IAAI;AAAA,MACzB,MAAM,OAAM,YAAY,KAAI,EAAE;AAAA,MAC9B,IAAI,CAAC;AAAA,QAAK,MAAM,IAAI,QAAQ,aAAa,qBAAqB,IAAI;AAAA,MAClE,OAAO,KAAK,MAAK,SAAS,gBAAgB,KAAI,KAAI,EAAE,EAAE;AAAA,KACvD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAM7B,QAAQ,aAAa,WAAW;AAAA,MAChC,MAAM,OAAM,eAAe,KAAI,MAAK,KAAK,IAAI,GAAG,QAAQ,EAAE,SAAS,SAAS,CAAC;AAAA,MAC7E,OAAO,KAAK,MAAK,SAAS,gBAAgB,KAAI,KAAI,EAAE,EAAE;AAAA,KACvD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAAA,MAI/C,MAAM,OAAM,kBAAkB,KAAI,MAAK,KAAK,IAAI,GAAG;AAAA,QACjD,OAAO,KAAK;AAAA,QACZ,UAAU,KAAK;AAAA,MACjB,CAAC;AAAA,MACD,OAAO,KAAK,MAAK,SAAS,gBAAgB,KAAI,KAAI,EAAE,EAAE;AAAA,KACvD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,aAAa,KAAI,MAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,KAAK,KAAK;AAAA,KACjE;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,iBAAiB;AAAA,IACnC,SAAS,QAAO,CAAC,OAAO,cAAS,sBAAsB,KAAI,MAAK,KAAK,IAAI,CAAC,CAAC;AAAA,EAC7E;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,cAAS,kBAAkB,KAAI,MAAK,KAAK,IAAI,GAAG,MAAK,KAAK,SAAS,CAAC,CAAC;AAAA,EAC/F;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,eAAe,KAAI,MAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC;AAAA,KAC/E;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,OAAO,eAAU,EAAE,IAAI,eAAe,KAAI,MAAK,KAAK,IAAI,CAAC,EAAE,EAAE;AAAA,EAChF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,cAAc;AAAA,IAChC,SAAS,QAAO,CAAC,QAAQ,cAAS;AAAA,MAChC,MAAM,OAAO,UAAU,GAAE;AAAA,MACzB,MAAM,QAAQ,IACX,MACC,+FACF,EACC,IAAI;AAAA,MACP,OAAO;AAAA,QACL,EAAE,SAAS,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA,QACzC,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,GAAG,MAAM,MAAM,EAAE;AAAA,MAC/E;AAAA,KACD;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,iBAAE,MAAM,eAAe;AAAA,IACjC,SAAS,QAAO,CAAC,OAAO,cAAS;AAAA,MAC/B,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,OAAO,OAAO,KAAI,MAAK,KAAK,GAAG,GAAG,EAAE,OAAO,QAAQ,OAAO,KAAK,IAAI,UAAU,CAAC;AAAA,KAC/E;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE,4FACA;AAAA,IACF,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,QAAQ,cAAS,cAAc,GAAE,CAAC;AAAA,EACrD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE,sFACA,yFACA;AAAA,IACF,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,QAAQ,cAAS;AAAA,MACtC,MAAM,IAAI,MAAM,qBAAqB,GAAE;AAAA,MACvC,OAAO,cAAc,KAAI,EAAE,WAAW;AAAA,KACvC;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,QAAQ,cAAS,WAAW,GAAE,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,eAAe,GAAE;AAAA,MACjB,IAAI,CAAC,UAAU,KAAI,KAAK,MAAM,KAAK,MAAM;AAAA,QACvC,MAAM,IAAI,QAAQ,aAAa,sBAAsB,KAAK,MAAM;AAAA,MAClE,OAAO,EAAE,MAAM,KAAK,MAAM,QAAQ,KAAK,OAAO;AAAA,KAC/C;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE,qFACA;AAAA,IACF,UAAU;AAAA,IACV,SAAS,QAAO,CAAC,QAAQ,cAAS,SAAS,GAAE,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE,2GACA;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,WAAW,KAAI,KAAK,UAAU,CAAC,CAAC;AAAA,KACxC;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE,oGACA;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,OAAO,kBAAkB,KAAI,KAAK,UAAU,CAAC,CAAC;AAAA,KAC/C;AAAA,EACH;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SACE;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,QAAO,OAAO,OAAO,cAAS;AAAA,MACrC,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAC7B,IAAI,KAAK;AAAA,QAAY,aAAa,KAAI,KAAK,UAAU;AAAA,MACrD,IAAI,KAAK;AAAA,QAAY,cAAc,KAAI,KAAK,UAAU;AAAA,MACtD,OAAO,EAAE,QAAQ,WAAW,GAAE,EAAE;AAAA,KACjC;AAAA,EACH;AAAA,EACA,GAAG;AACL;",
140
- "debugId": "53C623352D26C68364756E2164756E21",
143
+ "mappings": "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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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",
144
+ "debugId": "6391E3807369E20264756E2164756E21",
141
145
  "names": []
142
146
  }