@fairfox/polly 0.91.0 → 0.92.1
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.
- package/dist/cli/polly.js +3 -3
- package/dist/cli/polly.js.map +3 -3
- package/dist/gallery/gallery.css +2 -2
- package/dist/gallery/gallery.js +248 -241
- package/dist/src/background/index.js +27 -11
- package/dist/src/background/index.js.map +2 -2
- package/dist/src/background/message-router.js +27 -11
- package/dist/src/background/message-router.js.map +2 -2
- package/dist/src/client/index.js +56 -56
- package/dist/src/client/index.js.map +4 -4
- package/dist/src/elysia/index.js +16 -7
- package/dist/src/elysia/index.js.map +4 -4
- package/dist/src/elysia/plugin.d.ts +4 -4
- package/dist/src/index.js +27 -11
- package/dist/src/index.js.map +2 -2
- package/dist/src/mesh.js +2 -2
- package/dist/src/mesh.js.map +3 -3
- package/dist/src/peer.js +6 -6
- package/dist/src/peer.js.map +3 -3
- package/dist/src/polly-ui/index.css +2 -2
- package/dist/src/polly-ui/markdown.js +1844 -1010
- package/dist/src/polly-ui/markdown.js.map +5 -5
- package/dist/src/polly-ui/styles.css +2 -2
- package/dist/src/shared/adapters/index.js +27 -11
- package/dist/src/shared/adapters/index.js.map +2 -2
- package/dist/src/shared/lib/context-helpers.js +27 -11
- package/dist/src/shared/lib/context-helpers.js.map +2 -2
- package/dist/src/shared/lib/message-bus.js +27 -11
- package/dist/src/shared/lib/message-bus.js.map +2 -2
- package/dist/src/shared/lib/resource.js +17 -1
- package/dist/src/shared/lib/resource.js.map +2 -2
- package/dist/src/shared/lib/state.js +17 -1
- package/dist/src/shared/lib/state.js.map +2 -2
- package/dist/src/shared/state/app-state.js +17 -1
- package/dist/src/shared/state/app-state.js.map +2 -2
- package/dist/tools/bdd/src/cli.js +20 -2
- package/dist/tools/bdd/src/cli.js.map +4 -4
- package/dist/tools/bdd/src/index.js +20 -2
- package/dist/tools/bdd/src/index.js.map +3 -3
- package/dist/tools/init/templates/pwa/package.json.template +2 -3
- package/dist/tools/mutate/src/args.d.ts +25 -3
- package/dist/tools/mutate/src/cli.js +3238 -312
- package/dist/tools/mutate/src/cli.js.map +32 -12
- package/dist/tools/mutate/src/config.d.ts +13 -2
- package/dist/tools/mutate/src/define.d.ts +76 -0
- package/dist/tools/mutate/src/engine/ast.d.ts +13 -0
- package/dist/tools/mutate/src/engine/baseline.d.ts +20 -0
- package/dist/tools/mutate/src/engine/cache.d.ts +32 -0
- package/dist/tools/mutate/src/engine/coverage.d.ts +60 -0
- package/dist/tools/mutate/src/engine/generate.d.ts +23 -0
- package/dist/tools/mutate/src/engine/graph.d.ts +11 -0
- package/dist/tools/mutate/src/engine/index.d.ts +16 -0
- package/dist/tools/mutate/src/engine/junit.d.ts +38 -0
- package/dist/tools/mutate/src/engine/operators.d.ts +14 -0
- package/dist/tools/mutate/src/engine/preload.d.ts +10 -0
- package/dist/tools/mutate/src/engine/preload.js +180 -0
- package/dist/tools/mutate/src/engine/preload.js.map +10 -0
- package/dist/tools/mutate/src/engine/probes.d.ts +12 -0
- package/dist/tools/mutate/src/engine/report-writer.d.ts +44 -0
- package/dist/tools/mutate/src/engine/runner.d.ts +31 -0
- package/dist/tools/mutate/src/engine/stray-writes.d.ts +25 -0
- package/dist/tools/mutate/src/engine/typecheck.d.ts +37 -0
- package/dist/tools/mutate/src/engine/types.d.ts +191 -0
- package/dist/tools/mutate/src/engine/verify-callsites.d.ts +9 -0
- package/dist/tools/mutate/src/engine/workdir.d.ts +16 -0
- package/dist/tools/mutate/src/engine-config.d.ts +7 -0
- package/dist/tools/mutate/src/index.d.ts +7 -3
- package/dist/tools/mutate/src/index.js +2821 -193
- package/dist/tools/mutate/src/index.js.map +26 -7
- package/dist/tools/mutate/src/ingest.d.ts +30 -1
- package/dist/tools/mutate/src/init.d.ts +2 -1
- package/dist/tools/mutate/src/migrate.d.ts +32 -0
- package/dist/tools/mutate/src/report.d.ts +3 -0
- package/dist/tools/mutate/src/run.d.ts +17 -8
- package/dist/tools/mutate/src/verify-matrix.d.ts +12 -15
- package/dist/tools/quality/src/cli.js +9 -9
- package/dist/tools/quality/src/cli.js.map +4 -4
- package/dist/tools/quality/src/index.js +9 -9
- package/dist/tools/quality/src/index.js.map +4 -4
- package/dist/tools/quality/src/no-tautology-ensures.d.ts +2 -2
- package/dist/tools/quality/src/plugins/import-checks.d.ts +1 -1
- package/dist/tools/test/src/adapters/index.js +3 -2
- package/dist/tools/test/src/adapters/index.js.map +3 -3
- package/dist/tools/test/src/coverage-policy/cli.d.ts +2 -2
- package/dist/tools/test/src/coverage-policy/cli.js +217 -17
- package/dist/tools/test/src/coverage-policy/cli.js.map +7 -5
- package/dist/tools/test/src/coverage-policy/index.d.ts +1 -1
- package/dist/tools/test/src/coverage-policy/index.js +213 -12
- package/dist/tools/test/src/coverage-policy/index.js.map +7 -5
- package/dist/tools/test/src/coverage-policy/mutate-targets.d.ts +29 -12
- package/dist/tools/test/src/e2e-mesh/index.js +6 -6
- package/dist/tools/test/src/e2e-mesh/index.js.map +4 -4
- package/dist/tools/test/src/e2e-relay/index.js +230 -226
- package/dist/tools/test/src/e2e-relay/index.js.map +7 -7
- package/dist/tools/test/src/index.js +3 -2
- package/dist/tools/test/src/index.js.map +3 -3
- package/dist/tools/test/src/visual/index.js +684 -511
- package/dist/tools/test/src/visual/index.js.map +11 -11
- package/dist/tools/verify/src/cli.js +17 -2
- package/dist/tools/verify/src/cli.js.map +4 -4
- package/dist/tools/verify/src/config.d.ts +1 -1
- package/dist/tools/verify/src/config.js +68 -3
- package/dist/tools/verify/src/config.js.map +4 -4
- package/dist/tools/verify/src/primitives/index.d.ts +34 -0
- package/dist/tools/visualize/src/cli.js +16 -1
- package/dist/tools/visualize/src/cli.js.map +3 -3
- package/package.json +29 -39
- package/dist/tools/verify/src/stryker/index.d.ts +0 -32
- package/dist/tools/verify/src/stryker/index.js +0 -86
- package/dist/tools/verify/src/stryker/index.js.map +0 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/shared/lib/sweep-sealed.ts", "../tools/test/src/e2e-shared/timeout-context.ts", "../tools/test/src/e2e-relay/wait-for-relay-convergence.ts", "../tools/test/src/e2e-relay/with-repo-server.ts", "../src/shared/lib/wasm-init.ts", "../src/shared/lib/crdt-specialised.ts", "../../../node_modules/.bun/preact@10.29.
|
|
3
|
+
"sources": ["../src/shared/lib/sweep-sealed.ts", "../tools/test/src/e2e-shared/timeout-context.ts", "../tools/test/src/e2e-relay/wait-for-relay-convergence.ts", "../tools/test/src/e2e-relay/with-repo-server.ts", "../src/shared/lib/wasm-init.ts", "../src/shared/lib/crdt-specialised.ts", "../../../node_modules/.bun/preact@10.29.8+6d480b93d497d3a1/node_modules/preact/dist/preact.mjs", "../../../node_modules/.bun/preact@10.29.8+6d480b93d497d3a1/node_modules/preact/hooks/dist/hooks.mjs", "../../../node_modules/.bun/@preact+signals-core@1.14.4/node_modules/@preact/signals-core/dist/signals-core.mjs", "../../../node_modules/.bun/@preact+signals@2.11.3+6d480b93d497d3a1/node_modules/@preact/signals/dist/signals.mjs", "../src/shared/lib/migrate-primitive.ts", "../src/shared/lib/primitive-registry.ts", "../src/shared/lib/crdt-state.ts", "../src/shared/lib/peer-relay-adapter.ts", "../src/shared/lib/mesh-network-adapter.ts", "../src/shared/lib/encryption.ts", "../src/shared/lib/mesh-diagnostics.ts", "../src/shared/lib/signing.ts", "../src/shared/lib/peer-repo-server.ts", "../src/shared/lib/peer-state.ts", "../src/peer.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * `sweepSealed` — storage-adapter garbage collection of sealed mesh-doc\n * bytes (polly#121).\n *\n * When a consumer compacts a `$meshState` document it seeds a fresh\n * successor and leaves an in-band sentinel in the old document. polly's\n * {@link RedirectDetector} follows that sentinel so live wrappers rebind\n * transparently — but the old document's bytes then sit in storage\n * forever, because nothing removes them.\n *\n * `sweepSealed` is that missing GC step. polly owns the walk, the\n * open-handle gate, the age window, the dry-run report and the byte\n * removal. The consumer owns the sentinel shape — it is the very\n * document the consumer's {@link RedirectDetector} already inspects —\n * supplied here as the {@link SweepSealedOptions.isSealed} predicate.\n * polly deliberately does not define a canonical sentinel format: that\n * would compete with the one consumers' detectors already read.\n *\n * polly never runs this on a timer. The consumer calls it explicitly.\n *\n * ## Redirect-index-not-yet-synced hazard\n *\n * A peer whose redirect index (`mesh:document-index`) has not yet synced\n * may still reach for a sealed document by its *old* docId. If the sweep\n * has just removed that document's bytes, the peer gets a\n * missing-document error instead of a redirect. Two gates bound the risk,\n * and the caller must size them deliberately:\n *\n * - `olderThan` — only documents sealed longer ago than this window are\n * swept. Make it comfortably larger than the worst-case time a peer\n * can stay offline-then-resync, so any peer that could still hold the\n * old docId has had the redirect delivered.\n * - the open-handle gate — a document with a live handle on the supplied\n * `repo` is never swept, regardless of age.\n *\n * Neither gate can see a peer that is currently offline; `olderThan` is\n * the only protection there. Choose it conservatively.\n */\n\nimport type {\n Chunk,\n DocumentId,\n Repo,\n StorageAdapterInterface,\n} from \"@automerge/automerge-repo/slim\";\nimport { Automerge } from \"@automerge/automerge-repo/slim\";\n\nexport interface SweepSealedOptions {\n /** The Repo whose storage is swept. Its open handles gate removal. */\n repo: Repo;\n /** The storage adapter backing {@link repo}. */\n storage: StorageAdapterInterface;\n /**\n * Predicate that recognises a sealed document. Given a materialised\n * document, returns the epoch-ms timestamp at which it was sealed, or\n * `undefined` if the document is not sealed.\n *\n * This is the same document the consumer's {@link RedirectDetector}\n * inspects: the consumer owns the sentinel shape, polly never defines\n * it. The returned timestamp feeds both the {@link olderThan} filter\n * and the dry-run report.\n */\n isSealed: (doc: unknown) => number | undefined;\n /** Sweep only documents sealed more than this many milliseconds ago. */\n olderThan: number;\n /**\n * The candidate documents to consider. When omitted, the sweep\n * enumerates the whole adapter via `storage.loadRange([])`.\n *\n * That whole-adapter enumeration works for the IndexedDB and\n * in-memory adapters but **not** the NodeFS adapter, whose `loadRange`\n * requires at least a documentId prefix. Server-side callers should\n * use {@link PeerRepoServer.sweepSealed}, which enumerates the\n * filesystem and supplies this list; per-document `loadRange` then\n * works on every adapter.\n */\n documentIds?: Iterable<string>;\n /** When true, report candidates without removing anything. */\n dryRun?: boolean;\n /** Clock source, injectable for tests. Defaults to {@link Date.now}. */\n now?: () => number;\n}\n\n/** A document removed by the sweep — or, under `dryRun`, that would be. */\nexport interface SweptDoc {\n documentId: DocumentId;\n /** Epoch-ms the document was sealed, as reported by `isSealed`. */\n sealedAt: number;\n /** Total bytes across the document's storage chunks. */\n byteSize: number;\n}\n\n/** Why a sealed document was left in place rather than swept. */\nexport type KeptReason = \"open-handle\" | \"too-recent\";\n\n/** A sealed document the sweep deliberately did not remove. */\nexport interface KeptDoc {\n documentId: DocumentId;\n reason: KeptReason;\n}\n\nexport interface SweepResult {\n /** Documents removed — or, under `dryRun`, that would be removed. */\n swept: SweptDoc[];\n /** Sealed documents deliberately left in place, with the reason. */\n kept: KeptDoc[];\n /** Echoes the `dryRun` flag the sweep ran under. */\n dryRun: boolean;\n}\n\n/** Concatenate chunk payloads into one buffer for a single load call. */\nfunction concat(parts: Uint8Array[]): Uint8Array {\n let total = 0;\n for (const part of parts) total += part.byteLength;\n const out = new Uint8Array(total);\n let offset = 0;\n for (const part of parts) {\n out.set(part, offset);\n offset += part.byteLength;\n }\n return out;\n}\n\n/**\n * Materialise a document from its storage chunks. Snapshot chunks are\n * loaded before incrementals so the loader has its base first;\n * `sync-state` chunks are not document data and are excluded. A document\n * whose bytes fail to load (corrupt or partial) yields `undefined` and\n * is left untouched by the sweep.\n */\nfunction materialise(chunks: Chunk[]): unknown | undefined {\n const content = chunks\n .filter(\n (chunk): chunk is Chunk & { data: Uint8Array } =>\n chunk.key[1] !== \"sync-state\" && chunk.data !== undefined\n )\n .sort((a, b) => (a.key[1] === \"snapshot\" ? 0 : 1) - (b.key[1] === \"snapshot\" ? 0 : 1));\n if (content.length === 0) return undefined;\n try {\n return Automerge.loadIncremental(Automerge.init(), concat(content.map((chunk) => chunk.data)));\n } catch {\n return undefined;\n }\n}\n\n/**\n * Load the storage chunks for every candidate document and group the\n * flat chunk stream back into documents keyed by documentId.\n *\n * Each storage key is `[documentId, chunkType, chunkId]`. With an\n * explicit `documentIds` list each document is loaded by its own prefix\n * (supported by every adapter); without one, a whole-adapter\n * `loadRange([])` is used (supported by IndexedDB and in-memory adapters,\n * but not NodeFS — see {@link SweepSealedOptions.documentIds}).\n */\nasync function collectChunksByDocument(\n storage: StorageAdapterInterface,\n documentIds: Iterable<string> | undefined\n): Promise<Map<string, Chunk[]>> {\n const chunks: Chunk[] = [];\n if (documentIds === undefined) {\n chunks.push(...(await storage.loadRange([])));\n } else {\n for (const documentId of documentIds) {\n chunks.push(...(await storage.loadRange([documentId])));\n }\n }\n\n const byDocument = new Map<string, Chunk[]>();\n for (const chunk of chunks) {\n const documentId = chunk.key[0];\n if (documentId === undefined) continue;\n const existing = byDocument.get(documentId);\n if (existing) existing.push(chunk);\n else byDocument.set(documentId, [chunk]);\n }\n return byDocument;\n}\n\n/** The sweep's decision for one document. */\ntype Verdict =\n | { action: \"sweep\"; entry: SweptDoc }\n | { action: \"keep\"; entry: KeptDoc }\n | { action: \"ignore\" };\n\n/**\n * Decide what to do with one document: ignore it if it does not load or\n * is not sealed; keep it if it has an open handle or was sealed too\n * recently; otherwise mark it for sweeping.\n */\nfunction classifyDocument(\n documentId: string,\n chunks: Chunk[],\n context: {\n repo: Repo;\n isSealed: (doc: unknown) => number | undefined;\n olderThan: number;\n at: number;\n }\n): Verdict {\n const doc = materialise(chunks);\n if (doc === undefined) return { action: \"ignore\" };\n\n const sealedAt = context.isSealed(doc);\n if (sealedAt === undefined) return { action: \"ignore\" }; // not sealed — never swept\n\n // Storage keys carry raw document-id strings; brand for Repo lookups.\n const id = documentId as unknown as DocumentId;\n\n // Open-handle gate: a document with a live handle on this Repo is\n // never swept, regardless of age.\n if (context.repo.handles[id] !== undefined) {\n return { action: \"keep\", entry: { documentId: id, reason: \"open-handle\" } };\n }\n\n // Age gate: only documents sealed longer ago than the window.\n if (context.at - sealedAt < context.olderThan) {\n return { action: \"keep\", entry: { documentId: id, reason: \"too-recent\" } };\n }\n\n const byteSize = chunks.reduce((sum, chunk) => sum + (chunk.data?.byteLength ?? 0), 0);\n return { action: \"sweep\", entry: { documentId: id, sealedAt, byteSize } };\n}\n\n/**\n * Garbage-collect sealed mesh-doc bytes from a Repo's storage adapter.\n *\n * Walks every candidate document, materialises it, and asks\n * {@link SweepSealedOptions.isSealed} whether it is sealed. A sealed\n * document is removed only when it has no open handle on the Repo *and*\n * was sealed longer ago than `olderThan`; otherwise it is reported under\n * `kept` with the reason. Unsealed documents are never touched and never\n * reported. With `dryRun`, candidates are reported but nothing is removed.\n *\n * See the module doc comment for the redirect-index-not-yet-synced\n * hazard that `olderThan` and the open-handle gate exist to bound.\n */\nexport async function sweepSealed(options: SweepSealedOptions): Promise<SweepResult> {\n const { repo, storage, isSealed, olderThan } = options;\n const dryRun = options.dryRun ?? false;\n const now = options.now ?? Date.now;\n\n const byDocument = await collectChunksByDocument(storage, options.documentIds);\n\n const swept: SweptDoc[] = [];\n const kept: KeptDoc[] = [];\n const at = now();\n\n for (const [documentId, chunks] of byDocument) {\n const verdict = classifyDocument(documentId, chunks, { repo, isSealed, olderThan, at });\n if (verdict.action === \"keep\") {\n kept.push(verdict.entry);\n } else if (verdict.action === \"sweep\") {\n swept.push(verdict.entry);\n if (!dryRun) await storage.removeRange([documentId]);\n }\n }\n\n return { swept, kept, dryRun };\n}\n",
|
|
6
6
|
"/**\n * @fairfox/polly/test/e2e-shared — timeout diagnostic context.\n *\n * A convergence poller that times out can only show the per-peer values it\n * was watching. That answers \"what did each peer see\" but not \"why\" — was the\n * peer ever connected to the relay, does the hub even know about the document?\n * The pollers accept an optional `context()` that a caller wires to live\n * transport state (e.g. `relayStats(server)`); it is evaluated ONLY on the\n * timeout path and appended to the failure, so a hung e2e self-diagnoses\n * instead of leaving the reader to guess.\n *\n * Borrowed from fairfox's `waitForLine(..., context)` pattern, where the relay\n * heartbeat is embedded in every timeout so the error pinpoints sync state.\n */\n\n/** Evaluate a timeout-only diagnostic context, never letting it throw — a\n * broken context must not mask the real timeout it is trying to explain. */\nexport async function resolveContext(\n context: (() => string | Promise<string>) | undefined\n): Promise<string> {\n if (!context) return \"\";\n try {\n return `\\n\\ntransport: ${await context()}`;\n } catch (err) {\n return `\\n\\ntransport: <context threw: ${err instanceof Error ? err.message : String(err)}>`;\n }\n}\n",
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"/**\n * @fairfox/polly/test/e2e-relay — boot a peer-relay server on an ephemeral\n * port. The relay analogue of the mesh kit's {@link withRelay}.\n *\n * `createPeerRepoServer` takes a fixed port, which races in CI when two\n * runs collide. It also accepts a pre-built `WebSocketServer` override\n * \"useful for tests that want to bind to a random port\" — so we bind one to\n * port 0, read the OS-assigned port back, and hand it in. Storage goes to a\n * fresh temp dir per run so every script starts from cold disk, the relay\n * analogue of the mesh kit's fresh-profile guarantee.\n */\n\nimport { mkdtempSync, rmSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { WebSocketServer } from \"ws\";\nimport { createPeerRepoServer, type PeerRepoServer } from \"../../../../src/peer\";\n\nexport interface WithRepoServerResult {\n /** ws://127.0.0.1:<port> — pass to createPeerStateClient({ url }). */\n url: string;\n /** The running peer-relay server. Its `repo` is the always-on peer. */\n server: PeerRepoServer;\n /** Stop the server and delete its storage dir. Idempotent. */\n close: () => Promise<void>;\n}\n\n/**\n * Start a peer-relay server bound to a random free port with cold storage.\n */\nexport async function withRepoServer(): Promise<WithRepoServerResult> {\n const storageDir = mkdtempSync(join(tmpdir(), \"polly-e2e-relay-\"));\n\n const wss = new WebSocketServer({ port: 0, host: \"127.0.0.1\" });\n await new Promise<void>((resolve, reject) => {\n wss.once(\"listening\", () => resolve());\n wss.once(\"error\", reject);\n });\n const address = wss.address();\n if (typeof address === \"string\" || address === null) {\n throw new Error(\"withRepoServer: expected the server to be bound to a TCP address\");\n }\n const port = address.port;\n\n // `port` is required by the type but ignored when `webSocketServer` is\n // supplied; pass the real one anyway so the value is coherent.\n const server = await createPeerRepoServer({\n port,\n webSocketServer: wss,\n storagePath: storageDir,\n });\n\n return {\n url: `ws://127.0.0.1:${port}`,\n server,\n close: async () => {\n await server.close();\n try {\n rmSync(storageDir, { recursive: true, force: true });\n } catch {\n // best effort\n }\n },\n };\n}\n\n/**\n * A one-line transport snapshot of a relay server, for convergence-timeout\n * diagnostics. `clients` is how many peers currently hold a socket to the hub\n * (the `ws` server's tracked connections); `docs` is how many documents the\n * hub's repo knows about. Pass `() => relayStats(relay.server)` as the\n * `context` of a convergence poller so a timeout answers the first question\n * worth asking — did the peers even reach the relay, and does it have the doc?\n */\nexport function relayStats(server: PeerRepoServer): string {\n const clients = server.webSocketServer.clients.size;\n const docs = Object.keys(server.repo.handles).length;\n return `clients=${clients} docs=${docs}`;\n}\n",
|
|
9
9
|
"/**\n * Eagerly initialise Automerge's WebAssembly runtime by pointing the library\n * at the raw `.wasm` file shipped in `@automerge/automerge`.\n *\n * The `import.meta.url` pattern below is recognised by every modern bundler\n * (Bun, Vite, webpack 5+, esbuild) as an asset reference: the `.wasm` gets\n * copied into the consumer's output alongside the JavaScript, and the URL is\n * rewritten to point at the copied file. `initializeWasm` then fetches and\n * instantiates it at runtime. That keeps the WebAssembly out of the JavaScript\n * bundle entirely — no megabyte-scale base64 string inlined per subpath — and\n * lets the browser parse the JS and stream-compile the `.wasm` in parallel.\n *\n * The top-level `await` makes this module async so any consumer that\n * transitively imports it inherits the \"wait for WASM\" behaviour through the\n * import graph, without needing an explicit init call.\n */\n\nimport wasmPath from \"@automerge/automerge/automerge.wasm\";\nimport { initializeWasm } from \"@automerge/automerge-repo/slim\";\n\n// Bun's file loader returns a relative path; resolving it against the\n// current module's URL yields an absolute URL that fetches correctly\n// regardless of where the consumer's bundler places the script.\nconst wasmUrl = new URL(wasmPath, import.meta.url).href;\n\nawait initializeWasm(wasmUrl);\n",
|
|
10
10
|
"/**\n * crdt-specialised — text, counter, and list variants for Polly's peer-first\n * state primitives.\n *\n * Where the base $crdtState binds a signal to a whole Automerge document with\n * naive top-level structural assignment, the specialised variants each own a\n * single field inside their document and use type-specific Automerge\n * operations to mutate it. This is the difference between \"your write\n * survives a concurrent edit\" and \"your write clobbers the other peer's\n * edit,\" and it matters most for text editing where every keystroke from a\n * concurrent peer would otherwise be lost.\n *\n * - **$crdtText** stores its value in `doc.text` and writes via\n * `Automerge.updateText`, which computes the minimal sequence of character\n * splices between the previous and new strings and records each one as a\n * CRDT operation. Concurrent text edits merge.\n *\n * - **$crdtCounter** stores its value in `doc.count` as an `Automerge.Counter`\n * instance and writes via `counter.increment(delta)`. Increments commute\n * across peers, so two clients each adding 1 to a counter at 5 produce a\n * counter at 7 after merging — last-write-wins semantics on a plain number\n * would lose one of the increments.\n *\n * - **$crdtList** stores its value in `doc.items` and, for the Phase 0 cut,\n * uses naive whole-array replacement on every write. This is correct for\n * single-writer scenarios and good enough to exercise the rest of the\n * pipeline. Phase 1 will replace the write path with proper diff-to-splice\n * logic so that concurrent inserts and removes preserve list ordering.\n *\n * All three variants share a single internal factory that handles the\n * primitive-registry guard, migration-registry guard, schema-version\n * migration, hydration promise, two-way binding with an `updating` flag,\n * and the {@link MigratableState} interface. Variants differ only in the\n * `extractValue` and `applyWrite` hooks they pass.\n */\n\nimport { Automerge, Counter, type DocHandle, updateText } from \"@automerge/automerge-repo/slim\";\nimport { effect, signal } from \"@preact/signals\";\nimport type { Access } from \"./access\";\nimport { type MigratableState, MigrationError, migrationRegistry } from \"./migrate-primitive\";\nimport { type PrimitiveKind, primitiveRegistry } from \"./primitive-registry\";\nimport { type Migrations, runMigrations, setDocVersion, type VersionedDoc } from \"./schema-version\";\n\n/**\n * Public interface for a specialised primitive. The signal value type V is\n * not the same as the underlying Automerge document — for example, $crdtText\n * exposes a string signal whose value lives at `doc.text` inside the\n * document. Implements {@link MigratableState} so the cross-primitive\n * migration helper can consume it directly.\n */\nexport interface SpecialisedPrimitive<V> extends MigratableState<V> {\n readonly key: string;\n readonly primitive: PrimitiveKind;\n value: V;\n readonly loaded: Promise<void>;\n readonly handle: DocHandle<unknown> | undefined;\n /** Number of Automerge changes recorded on the current doc, or\n * `undefined` while {@link loaded} is still pending. Stable proxy\n * for the incremental-chunk count the storage adapter writes. See\n * the matching field on {@link CrdtPrimitive} and RFC-041\n * §History growth. */\n readonly changeCount: number | undefined;\n}\n\n/** Internal config shape consumed by {@link createSpecialisedPrimitive}. */\ninterface SpecialisedConfig<V, D extends VersionedDoc> {\n key: string;\n primitive: PrimitiveKind;\n initialValue: V;\n getHandle: () => Promise<DocHandle<D>>;\n /** Read the typed signal value out of the Automerge document. Called once\n * on hydration and again on every remote change. */\n extractValue: (doc: D) => V;\n /** Apply a typed signal value to the Automerge document inside the\n * `handle.change` block. Called every time the local signal is reassigned. */\n applyWrite: (doc: D, value: V) => void;\n schemaVersion?: number;\n migrations?: Migrations;\n access?: Access;\n callSite?: string;\n}\n\n/**\n * Shared factory. Identical guard, hydration, and binding wiring across all\n * three specialised variants; the variants differ only in the extract and\n * apply hooks they supply.\n */\nfunction createSpecialisedPrimitive<V, D extends VersionedDoc>(\n config: SpecialisedConfig<V, D>\n): SpecialisedPrimitive<V> {\n if (migrationRegistry.isMarked(config.key, config.primitive)) {\n throw new MigrationError(\n `Cannot construct $${config.primitive}(\"${config.key}\"): this key has been marked as migrated. Migrations are one-way; use the destination primitive instead.`,\n \"already-migrated\",\n config.key,\n config.primitive\n );\n }\n primitiveRegistry.register(config.key, config.primitive, config.callSite);\n\n const inner = signal<V>(config.initialValue);\n let updating = false;\n let currentHandle: DocHandle<D> | undefined;\n\n const loaded = (async () => {\n const handle = await config.getHandle();\n await handle.whenReady();\n currentHandle = handle;\n\n if (config.schemaVersion !== undefined) {\n const targetVersion = config.schemaVersion;\n const migrations = config.migrations ?? {};\n handle.change((doc) => {\n runMigrations(doc as unknown as Record<string, unknown>, targetVersion, migrations);\n setDocVersion(doc as unknown as Record<string, unknown>, targetVersion);\n });\n }\n\n updating = true;\n try {\n inner.value = config.extractValue(handle.doc());\n } finally {\n updating = false;\n }\n\n handle.on(\"change\", (payload) => {\n if (updating) return;\n updating = true;\n try {\n inner.value = config.extractValue(payload.doc);\n } finally {\n updating = false;\n }\n });\n\n effect(() => {\n const value = inner.value;\n if (updating) return;\n if (!currentHandle) return;\n updating = true;\n try {\n currentHandle.change((doc) => {\n config.applyWrite(doc, value);\n });\n } finally {\n updating = false;\n }\n });\n })();\n\n return {\n key: config.key,\n primitive: config.primitive,\n get value() {\n return inner.value;\n },\n set value(next: V) {\n inner.value = next;\n },\n loaded,\n get handle() {\n return currentHandle as unknown as DocHandle<unknown> | undefined;\n },\n get changeCount() {\n if (!currentHandle) return undefined;\n const doc = currentHandle.doc();\n if (!doc) return undefined;\n return Automerge.getAllChanges(doc).length;\n },\n };\n}\n\n// $crdtText\n\n/** The Automerge document shape backing a $crdtText primitive. */\nexport type TextDoc = VersionedDoc & { text?: string };\n\n/** Options for {@link $crdtText}. */\nexport interface CrdtTextOptions {\n /** Primitive kind label. Defaults to \"peerState\"; Phase 2's $meshState\n * wrapper passes \"meshState\" instead. */\n primitive?: PrimitiveKind;\n /** Async factory that returns a ready DocHandle for the text document. */\n getHandle: () => Promise<DocHandle<TextDoc>>;\n schemaVersion?: number;\n migrations?: Migrations;\n access?: Access;\n callSite?: string;\n}\n\n/**\n * Create a CRDT-backed text primitive. The signal exposes a plain string;\n * writes are diffed into character-level splices via `Automerge.updateText`\n * so that concurrent edits from peers merge cleanly rather than clobbering\n * each other.\n */\nexport function $crdtText(\n key: string,\n initialValue: string,\n options: CrdtTextOptions\n): SpecialisedPrimitive<string> {\n return createSpecialisedPrimitive<string, TextDoc>({\n key,\n primitive: options.primitive ?? \"peerState\",\n initialValue,\n getHandle: options.getHandle,\n extractValue: (doc) => doc.text ?? \"\",\n applyWrite: (doc, value) => {\n if (doc.text === undefined) {\n // First write — seed the field. Subsequent writes will use updateText.\n (doc as unknown as TextDoc).text = value;\n } else {\n updateText(doc, [\"text\"], value);\n }\n },\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n callSite: options.callSite,\n });\n}\n\n// $crdtCounter\n\n/** The Automerge document shape backing a $crdtCounter primitive. */\nexport type CounterDoc = VersionedDoc & { count?: Counter };\n\n/** Options for {@link $crdtCounter}. */\nexport interface CrdtCounterOptions {\n primitive?: PrimitiveKind;\n getHandle: () => Promise<DocHandle<CounterDoc>>;\n schemaVersion?: number;\n migrations?: Migrations;\n access?: Access;\n callSite?: string;\n}\n\n/**\n * Create a CRDT-backed counter primitive. The signal exposes a plain number;\n * writes compute the delta from the document's current value and call\n * `counter.increment(delta)` on the underlying `Automerge.Counter`. Concurrent\n * increments from peers commute, so two clients each adding 1 to a counter at\n * 5 produce a counter at 7 after merging.\n *\n * Application code that wants to express increments idiomatically can write\n * `counter.value = counter.value + 1`; the signal's reactivity captures the\n * read-then-write pattern and the factory translates it into a proper CRDT\n * increment operation underneath.\n */\nexport function $crdtCounter(\n key: string,\n initialValue: number,\n options: CrdtCounterOptions\n): SpecialisedPrimitive<number> {\n return createSpecialisedPrimitive<number, CounterDoc>({\n key,\n primitive: options.primitive ?? \"peerState\",\n initialValue,\n getHandle: options.getHandle,\n extractValue: (doc) => {\n const c = doc.count;\n if (c === undefined) return 0;\n return c.value;\n },\n applyWrite: (doc, value) => {\n const existing = doc.count;\n if (existing === undefined) {\n (doc as unknown as CounterDoc).count = new Counter(value);\n } else {\n const delta = value - existing.value;\n if (delta !== 0) {\n existing.increment(delta);\n }\n }\n },\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n callSite: options.callSite,\n });\n}\n\n// $crdtList\n\n/** The Automerge document shape backing a $crdtList primitive. */\nexport type ListDoc<T> = VersionedDoc & { items?: T[] };\n\n/** Options for {@link $crdtList}. */\nexport interface CrdtListOptions<T> {\n primitive?: PrimitiveKind;\n getHandle: () => Promise<DocHandle<ListDoc<T>>>;\n schemaVersion?: number;\n migrations?: Migrations;\n access?: Access;\n callSite?: string;\n}\n\n/**\n * Create a CRDT-backed list primitive. The signal exposes a plain array;\n * for the Phase 0 cut, writes replace the underlying array wholesale inside\n * an `Automerge.change` block. This is correct for single-writer scenarios\n * and is the simplest way to ship a working list primitive on the same\n * pipeline as text and counter.\n *\n * Phase 1 will replace the write path with proper structural diffing into\n * insert and remove operations so that concurrent edits from peers preserve\n * list ordering. Until then, applications using $crdtList in a multi-writer\n * setting should expect last-writer-wins semantics on the array as a whole.\n */\nexport function $crdtList<T>(\n key: string,\n initialValue: T[],\n options: CrdtListOptions<T>\n): SpecialisedPrimitive<T[]> {\n return createSpecialisedPrimitive<T[], ListDoc<T>>({\n key,\n primitive: options.primitive ?? \"peerState\",\n initialValue,\n getHandle: options.getHandle,\n extractValue: (doc) => (doc.items ? [...doc.items] : []),\n applyWrite: (doc, value) => {\n // Phase 0 naive replacement; see the function-level docstring for the\n // refinement plan.\n (doc as unknown as ListDoc<T>).items = [...value];\n },\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n callSite: options.callSite,\n });\n}\n",
|
|
11
|
-
"var n,l,u,t,i,r,o,e,f,c,s,a,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,g,m=t&&t.__k||w,b=l.length;for(f=T(u,l,m,f,b),a=0;a<b;a++)null!=(p=u.__k[a])&&(h=-1!=p.__i&&m[p.__i]||d,p.__i=a,_=q(n,p,h,i,r,o,e,f,c,s),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),s.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),(g=!!(4&p.__u))||h.__k===p.__k?(f=j(p,f,n,g),g&&h.__e&&(h.__e=null)):\"function\"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=j(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=$(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==e||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||_.test(l)?u:u+\"px\"}function N(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||z(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(a,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[s]=t[s]:(u[s]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[s])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,d,_,k,x,M,$,I,P,A,H,T=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof T)try{if(k=u.props,x=T.prototype&&T.prototype.render,M=(a=T.contextType)&&i[a.__c],$=a?M?M.props.value:a.__:i,t.__c?_=(h=u.__c=t.__c).__=h.__E:(x?u.__c=h=new T(k,$):(u.__c=h=new C(k,$),h.constructor=T,h.render=Q),M&&M.sub(h),h.state||(h.state={}),h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),x&&null==h.__s&&(h.__s=h.state),x&&null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=m({},h.__s)),m(h.__s,T.getDerivedStateFromProps(k,h.__s))),v=h.props,y=h.state,h.__v=u,p)x&&null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),x&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(x&&null==T.getDerivedStateFromProps&&k!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(k,$),u.__v==t.__v||!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(k,h.__s,$)){u.__v!=t.__v&&(h.props=k,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(h.__h,h._sb),h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(k,h.__s,$),x&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,d)})}if(h.context=$,h.props=k,h.__P=n,h.__e=!1,I=l.__r,P=0,x)h.state=h.__s,h.__d=!1,I&&I(u),a=h.render(h.props,h.state,h.context),w.push.apply(h.__h,h._sb),h._sb=[];else do{h.__d=!1,I&&I(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++P<25);h.state=h.__s,null!=h.getChildContext&&(i=m(m({},i),h.getChildContext())),x&&!p&&null!=h.getSnapshotBeforeUpdate&&(d=h.getSnapshotBeforeUpdate(v,y)),A=null!=a&&a.type===S&&null==a.key?E(a.props.children):a,f=L(n,g(A)?A:[A],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),_&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else{for(H=o.length;H--;)b(o[H]);B(u)}else u.__e=t.__e,u.__k=t.__k,n.then||B(u);l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function E(n){return\"object\"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):m({},n)}function G(u,t,i,r,o,e,f,c,s){var a,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((y=e[a])&&\"setAttribute\"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),!c&&null!=e)for(m={},a=0;a<u.attributes.length;a++)m[(y=u.attributes[a]).name]=y.value;for(a in m)y=m[a],\"dangerouslySetInnerHTML\"==a?p=y:\"children\"==a||a in k||\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k||N(u,a,null,y,o);for(a in k)y=k[a],\"children\"==a?v=y:\"dangerouslySetInnerHTML\"==a?h=y:\"value\"==a?w=y:\"checked\"==a?_=y:c&&\"function\"!=typeof y||m[a]===y||N(u,a,y,m[a],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=\"\"),L(\"template\"==t.type?u.content:u,g(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&$(i,0),c,s),null!=e)for(a=e.length;a--;)b(e[a]);c||(a=\"value\",\"progress\"==x&&null==w?u.removeAttribute(\"value\"):null!=w&&(w!==u[a]||\"progress\"==x&&!w||\"option\"==x&&w!=m[a])&&N(u,a,w,m[a],o),a=\"checked\",null!=_&&_!=u[a]&&N(u,a,_,m[a],o))}return u}function J(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||\"function\"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f)}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),\"function\"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c=\"__d\"+f,s=\"__a\"+f,a=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;export{C as Component,S as Fragment,W as cloneElement,X as createContext,k as createElement,M as createRef,k as h,U as hydrate,t as isValidElement,l as options,R as render,F as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n",
|
|
12
|
-
"import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,
|
|
13
|
-
"const i=Symbol.for(\"preact-signals\");function t(){if(e>1){e--;return}let i,t=!1;!function(){let i=
|
|
14
|
-
"import{Component as t,options as i,isValidElement as
|
|
11
|
+
"var n,l,u,t,i,r,o,e,f,c,a,s,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,_,g=t&&t.__k||w,m=l.length;for(f=T(u,l,g,f,m),s=0;s<m;s++)null!=(p=u.__k[s])&&(h=-1!=p.__i&&g[p.__i]||d,p.__i=s,_=q(n,p,h,i,r,o,e,f,c,a),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),a.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),4&p.__u?(f=j(p,f,n),h.__e&&(h.__e=null)):\"function\"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,a=u.length,s=a,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,s))&&(s--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>a?h--:i<a&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(s)for(r=0;r<a;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=j(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!l.parentNode&&(l=$(n)),l=u.insertBefore(n.__e,l||null));do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],a=null!=c&&0==(2&c.__u);if(null===c&&null==e||a&&e==c.key&&f==c.type)return u;if(t>(a?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||_.test(l)?u:u+\"px\"}function N(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||z(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(s,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[a]=t[a]:(u[a]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[a])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,d,_,k,x,M,I,P,A,H,T,j,F=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(s=l.__b)&&s(u);n:if(\"function\"==typeof F){h=e.length;try{if(x=u.props,M=F.prototype&&F.prototype.render,I=(s=F.contextType)&&i[s.__c],P=s?I?I.props.value:s.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:(M?u.__c=p=new F(x,P):(u.__c=p=new C(x,P),p.constructor=F,p.render=Q),I&&I.sub(p),p.state||(p.state={}),p.__n=i,v=p.__d=!0,p.__h=[],p._sb=[]),M&&null==p.__s&&(p.__s=p.state),M&&null!=F.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=m({},p.__s)),m(p.__s,F.getDerivedStateFromProps(x,p.__s))),y=p.props,d=p.state,p.__v=u,v)M&&null==F.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),M&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(M&&null==F.getDerivedStateFromProps&&x!==y&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(x,P),u.__v==t.__v||!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(x,p.__s,P)){u.__v!=t.__v&&(p.props=x,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&e.push(p),f=$(t);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(x,p.__s,P),M&&null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(y,d,_)})}if(p.context=P,p.props=x,p.__P=n,p.__e=!1,A=l.__r,H=0,M)p.state=p.__s,p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),w.push.apply(p.__h,p._sb),p._sb=[];else do{p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=m(m({},i),p.getChildContext())),M&&!v&&null!=p.getSnapshotBeforeUpdate&&(_=p.getSnapshotBeforeUpdate(y,d)),T=null!=s&&s.type===S&&null==s.key?E(s.props.children):s,f=L(n,g(T)?T:[T],u,t,i,r,o,e,f,c,a),p.base=u.__e,u.__u&=-161,p.__h.length&&e.push(p),k&&(p.__E=p.__=null)}catch(n){if(e.length=h,u.__v=null,c||null!=o){if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;null!=o&&(o[o.indexOf(f)]=null),u.__e=f}else if(null!=o)for(j=o.length;j--;)b(o[j])}else u.__e=t.__e;null==u.__k&&(u.__k=t.__k||[]),n.then||B(u),l.__e(n,u,t)}}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,a);return(s=l.diffed)&&s(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function E(n){return\"object\"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):void 0!==n.constructor?null:m({},n)}function G(u,t,i,r,o,e,f,c,a){var s,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(s=0;s<e.length;s++)if((y=e[s])&&\"setAttribute\"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[s]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e=\"textarea\"==x&&null!=k.defaultValue?null:e&&n.call(u.childNodes),!c&&null!=e)for(m={},s=0;s<u.attributes.length;s++)m[(y=u.attributes[s]).name]=y.value;for(s in m)y=m[s],\"dangerouslySetInnerHTML\"==s?p=y:\"children\"==s||s in k||\"value\"==s&&\"defaultValue\"in k||\"checked\"==s&&\"defaultChecked\"in k||N(u,s,null,y,o);for(s in k)y=k[s],\"children\"==s?v=y:\"dangerouslySetInnerHTML\"==s?h=y:\"value\"==s?w=y:\"checked\"==s?_=y:c&&\"function\"!=typeof y||m[s]===y||N(u,s,y,m[s],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=\"\"),L(\"template\"==t.type?u.content:u,g(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&$(i,0),c,a),null!=e)for(s=e.length;s--;)b(e[s]);c&&\"textarea\"!=x||(s=\"value\",\"progress\"==x&&null==w?u.removeAttribute(\"value\"):null!=w&&(w!==u[s]||\"progress\"==x&&!w||\"option\"==x&&w!=m[s])&&N(u,s,w,m[s],o),s=\"checked\",null!=_&&_!=u[s]&&N(u,s,_,m[s],o))}return u}function J(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=i.__n=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||\"function\"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f),u.props.children=null}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),\"function\"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c=\"__d\"+f,a=\"__a\"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;export{C as Component,S as Fragment,W as cloneElement,X as createContext,k as createElement,M as createRef,k as h,U as hydrate,t as isValidElement,l as options,R as render,F as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n",
|
|
12
|
+
"import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,p=c.__;function s(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,y(D,n)}function y(n,u,i){var o=s(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=!1,i=o.__c.props!==n;if(o.__c.__H.__.some(function(n){if(n.__N){u=!0;var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c){var f=c.call(this,n,t,r);return u?f||i:f}return!u||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function h(n,u){var i=s(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=s(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=s(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=s(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=s(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=s(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();){var t=n.__H;if(n.__P&&t)try{t.__h.some(z),t.__h.some(B),t.__h=[]}catch(r){t.__h=[],c.__e(r,n.__v)}}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),p&&p(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(z),i.__h.some(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.some(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.some(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,h as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,y as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n",
|
|
13
|
+
"const i=Symbol.for(\"preact-signals\");function t(){if(e>1){e--;return}let i,t=!1;!function(){let i=f;f=void 0;while(void 0!==i){const t=i.S;if(t.v===i.v)for(let n=t.t;void 0!==n;n=n.x)if(n.i===i.i)n.i=t.i;i=i.o}}();while(void 0!==h){let n=h;h=void 0;c++;while(void 0!==n){const o=n.u;n.u=void 0;n.f&=-3;if(!(8&n.f)&&w(n))try{n.c()}catch(n){if(!t){i=n;t=!0}}n=o}}c=0;e--;if(t)throw i}function n(i){if(e>0)return i();d=++u;e++;try{return i()}finally{t()}}let o,s,h;function r(i){const t=o,n=s;o=void 0;s=void 0;try{return i()}finally{o=t;s=n}}let f,e=0,c=0,u=0,d=0,v=0;function l(i){if(void 0===o)return;let t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}function a(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.l=0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}a.prototype.brand=i;a.prototype.h=function(){return!0};a.prototype.S=function(i){const t=this.t;if(t!==i&&void 0===i.e){i.x=t;this.t=i;if(void 0!==t)t.e=i;else r(()=>{var i;null==(i=this.W)||i.call(this)})}};a.prototype.U=function(i){if(void 0!==this.t){const t=i.e,n=i.x;if(void 0!==t){t.x=n;i.e=void 0}if(void 0!==n){n.e=t;i.x=void 0}if(i===this.t){this.t=n;if(void 0===n)r(()=>{var i;null==(i=this.Z)||i.call(this)})}}};a.prototype.subscribe=function(i){return j(()=>{const t=this.value;r(()=>i(t))},{name:\"sub\"})};a.prototype.valueOf=function(){return this.value};a.prototype.toString=function(){return this.value+\"\"};a.prototype.toJSON=function(){return this.value};a.prototype.peek=function(){return r(()=>this.value)};Object.defineProperty(a.prototype,\"value\",{get(){const i=l(this);if(void 0!==i)i.i=this.i;return this.v},set(i){if(i!==this.v){if(c>100)throw new Error(\"Cycle detected\");!function(i){if(0!==e&&0===c)if(i.l!==d){i.l=d;f={S:i,v:i.v,i:i.i,o:f}}}(this);this.v=i;this.i++;v++;e++;try{for(let i=this.t;void 0!==i;i=i.x)i.t.N()}finally{t()}}}});function y(i,t){return new a(i,t)}function w(i){for(let t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function _(i){for(let t=i.s;void 0!==t;t=t.n){const n=t.S.n;if(void 0!==n)t.r=n;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function b(i){let t,n=i.s;while(void 0!==n){const i=n.p;if(-1===n.i){n.S.U(n);if(void 0!==i)i.n=n.n;if(void 0!==n.n)n.n.p=i}else t=n;n.S.n=n.r;if(void 0!==n.r)n.r=void 0;n=i}i.s=t}function p(i,t){a.call(this,void 0,t);this.x=i;this.s=void 0;this.g=v-1;this.f=4}p.prototype=new a;p.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!w(this)){this.f&=-2;return!0}const i=o;try{_(this);o=this;const i=this.x();if(16&this.f||this.v!==i||0===this.i){this.v=i;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;b(this);this.f&=-2;return!0};p.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(let i=this.s;void 0!==i;i=i.n)i.S.S(i)}a.prototype.S.call(this,i)};p.prototype.U=function(i){if(void 0!==this.t){a.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(let i=this.s;void 0!==i;i=i.n)i.S.U(i)}}};p.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(let i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(p.prototype,\"value\",{get(){if(1&this.f)throw new Error(\"Cycle detected\");const i=l(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function g(i,t){return new p(i,t)}function S(i){const n=i.m;i.m=void 0;if(\"function\"==typeof n){e++;const s=o;o=void 0;try{n()}catch(t){i.f&=-2;i.f|=8;m(i);throw t}finally{o=s;t()}}}function m(i){for(let t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;S(i)}function x(i){if(o!==this)throw new Error(\"Out-of-order effect\");b(this);o=i;this.f&=-2;if(8&this.f)m(this);t()}function E(i,t){this.x=i;this.m=void 0;this.s=void 0;this.u=void 0;this.f=32;this.name=null==t?void 0:t.name;if(s)s.push(this)}E.prototype.c=function(){const i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;const t=this.x();if(\"function\"==typeof t)this.m=t}finally{i()}};E.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;S(this);_(this);e++;const i=o;o=this;return x.bind(this,i)};E.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.u=h;h=this}};E.prototype.d=function(){this.f|=8;if(!(1&this.f))m(this)};E.prototype.dispose=function(){this.d()};function j(i,t){const n=new E(i,t);try{n.c()}catch(i){n.d();throw i}const o=n.d.bind(n);o[Symbol.dispose]=o;return o}function C(i){return function(...t){return n(()=>r(()=>i.apply(this,t)))}}const O=i=>{for(const t in i){const n=i[t];if(\"function\"==typeof n)i[t]=C(n);else if(\"object\"==typeof n&&null!==n&&!(\"brand\"in n))O(n)}};function k(i){return function(...t){let n,o;const h=function(){let i=s;s=[];return function(){let t=s;if(s&&i)i=i.concat(s);s=i;return t}}();try{o=i(...t)}catch(i){s=void 0;throw i}finally{n=h()}O(o);o[Symbol.dispose]=C(function(){if(n)for(let i=0;i<n.length;i++)n[i].dispose();n=void 0});return o}}export{p as Computed,E as Effect,a as Signal,C as action,n as batch,g as computed,k as createModel,j as effect,y as signal,r as untracked};//# sourceMappingURL=signals-core.mjs.map\n",
|
|
14
|
+
"import{Component as t,options as i,isValidElement as n,Fragment as e}from\"preact\";import{useMemo as o,useRef as f,useEffect as r}from\"preact/hooks\";import{effect as u,Signal as c,computed as s,signal as l,batch as a}from\"@preact/signals-core\";export{Signal,action,batch,computed,createModel,effect,signal,untracked}from\"@preact/signals-core\";const h=\"undefined\"!=typeof window&&!!window.__PREACT_SIGNALS_DEVTOOLS__;let d,p,m,v=[],_=[];u(function(){d=this.N})();function g(t,n){i[t]=n.bind(null,i[t]||(()=>{}))}function b(t){if(m){const t=m;m=void 0;t()}m=t&&t.S()}function y({data:t}){const i=useSignal(t);i.name=\"ReactiveDom\";i.value=t;const[e,f]=o(()=>{let t=this,e=this.__v;while(e=e.__)if(e.__c){e.__c.__$f|=4;break}const o=s(()=>{let t=i.value.value;return 0===t?0:!0===t?\"\":t||\"\"}),f=s(()=>!Array.isArray(o.value)&&!n(o.value)),r=u(function(){this.N=F;if(f.value){const i=o.value;if(t.__v&&t.__v.__e&&3===t.__v.__e.nodeType)t.__v.__e.data=i}}),c=this.__$u.d;this.__$u.d=function(){r();c.call(this)};return[f,o]},[]);return e.value?f.peek():f.value}y.displayName=\"ReactiveTextNode\";Object.defineProperties(c.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:y},props:{configurable:!0,get(){const t=this;return{data:{get value(){return t.value}}}}},__b:{configurable:!0,value:1}});g(\"__b\",(t,i)=>{b();p=void 0;if(\"string\"==typeof i.type){let t,n=i.props;for(let e in n){if(\"children\"===e)continue;let o=n[e];if(o instanceof c){if(!t)i.__np=t={};t[e]=o;n[e]=o.peek()}}}t(i)});g(\"__r\",(t,i)=>{t(i);if(i.type!==e){b();let t,n=i.__c;if(n){n.__$f&=-2;t=n.__$u;if(void 0===t)n.__$u=t=function(t,i){let n;u(function(){n=this},{name:i});n.c=t;return n}(function(t){return function(){var i;if(h)null==(i=this.y)||i.call(this);t.__$f|=1;t.setState({})}}(n),\"function\"==typeof i.type?i.type.displayName||i.type.name:\"\")}p=n;b(t)}});g(\"__e\",(t,i,n,e)=>{b();p=void 0;t(i,n,e)});g(\"diffed\",(t,i)=>{b();p=void 0;let n;if(\"string\"==typeof i.type&&(n=i.__e)){let t=i.__np,e=i.props,o=n.U;if(o)for(let i in o){let n=o[i];if(!(void 0===n||t&&i in t)){n.d();o[i]=void 0}}if(t){if(!o){o={};n.U=o}for(let i in t){let f=o[i],r=t[i];if(void 0===f){f=w(n,i,r,e);o[i]=f}else f.o(r,e)}}}t(i)});function w(t,i,n,e){const o=i in t&&void 0===t.ownerSVGElement,f=l(n);return{o:(t,i)=>{f.value=t;e=i},d:u(function(){this.N=F;const n=f.value.value;if(e[i]!==n){e[i]=n;if(o)t[i]=n;else if(null!=n&&(!1!==n||\"-\"===i[4]))t.setAttribute(i,n);else t.removeAttribute(i)}})}}g(\"unmount\",(t,i)=>{if(\"string\"==typeof i.type){let t=i.__e;if(t){const i=t.U;if(i){t.U=void 0;for(let t in i){let n=i[t];if(n)n.d()}}}let n=i.__np;if(n){let t=i.props;for(let i in n)t[i]=n[i]}i.__np=void 0}else{let t=i.__c;if(t){t.__$f|=8;const i=t.__$u;if(i){t.__$u=void 0;i.d()}}}t(i)});g(\"__h\",(t,i,n,e)=>{if(e<3)i.__$f|=2;t(i,n,e)});t.prototype.shouldComponentUpdate=function(t,i){if(this.__R)return!0;const n=this.__$u,e=n&&void 0!==n.s;for(let t in i)return!0;if(this.__f||\"boolean\"==typeof this.u&&!0===this.u){const t=2&this.__$f;if(!(e||t||4&this.__$f))return!0;if(1&this.__$f)return!0}else{if(!(e||4&this.__$f))return!0;if(3&this.__$f)return!0}for(let i in t)if(\"__source\"!==i&&t[i]!==this.props[i])return!0;for(let i in this.props)if(!(i in t))return!0;return!1};function useSignal(t,i){return o(()=>l(t,i),[])}function useComputed(t,i){const n=f(t);n.current=t;p.__$f|=4;return o(()=>s(()=>n.current(),i),[])}const k=\"undefined\"==typeof requestAnimationFrame?setTimeout:function(t){const i=()=>{clearTimeout(n);cancelAnimationFrame(e);t()},n=setTimeout(i,35),e=requestAnimationFrame(i)},q=t=>{queueMicrotask(()=>{queueMicrotask(t)})};function A(){a(()=>{let t;while(t=v.shift())d.call(t)})}function T(){if(1===v.push(this))(i.requestAnimationFrame||k)(A)}function x(){a(()=>{let t;while(t=_.shift())d.call(t)})}function F(){if(1===_.push(this))(i.requestAnimationFrame||q)(x)}function useSignalEffect(t,i){const n=f(t);n.current=t;const e=p;r(()=>u(function(){this.N=T;if(!(e&&8&e.__$f))return n.current()},i),[])}function M(t){const i=o(()=>t(),[]);r(()=>i[Symbol.dispose],[i]);return i}export{useComputed,M as useModel,useSignal,useSignalEffect};//# sourceMappingURL=signals.mjs.map\n",
|
|
15
15
|
"/**\n * migrate-primitive — one-way cross-primitive data migration helper.\n *\n * Moving data from one Polly primitive to another ($sharedState to $peerState,\n * $peerState to $meshState, etc.) is a deliberate, one-time, application-authored\n * operation. The three primitive families serialise differently — LWW value plus\n * Lamport clock, plaintext Automerge ops, signed and encrypted Automerge ops —\n * and Polly never silently coerces between them. An application that wants to\n * move data explicitly reads the current value from the source, applies a\n * user-supplied transform, writes the result into the destination, and marks\n * the source as migrated so subsequent reads from it fail loudly rather than\n * returning stale data.\n *\n * This module provides the helper ({@link migratePrimitive}) and the migration\n * registry ({@link migrationRegistry}) that records which (key, primitive kind)\n * pairs have been migrated. Primitive read paths consult the registry at load\n * time and refuse to hydrate sources that have been marked. Migration is one-way\n * by design: there is no rollback, and running a migration twice throws.\n *\n * The registry is in-memory only. Persistence of the migrated flag across page\n * loads is each primitive's own responsibility at its storage boundary; Phase 1\n * and Phase 2 primitives will restore the registry state on startup from their\n * local stores.\n *\n * @example\n * ```ts\n * await migratePrimitive(\n * $sharedState<OldNotes>(\"notes\"),\n * $meshState<NewNotes>(\"notes\", { entries: [] }),\n * (old) => ({ entries: old.entries ?? [] }),\n * );\n * ```\n */\n\nimport type { PrimitiveKind } from \"./primitive-registry\";\n\n/**\n * Minimal interface that every migratable state primitive must satisfy. Real\n * primitive instances will implement this plus everything else their type\n * expects; tests construct plain objects.\n */\nexport interface MigratableState<T> {\n /** Stable logical key the primitive was registered under. */\n readonly key: string;\n /** The primitive kind owning this state. Used to identify entries in the\n * migration registry alongside the key. */\n readonly primitive: PrimitiveKind;\n /** Current value. Must be readable and writable. */\n value: T;\n /** Hydration promise. The migration helper awaits this on both source and\n * destination before reading the source value. */\n readonly loaded: Promise<void>;\n}\n\n/**\n * Error thrown by the migration subsystem. The {@link code} field distinguishes\n * the failure modes so callers can branch on them.\n */\nexport class MigrationError extends Error {\n readonly code: \"already-migrated\" | \"same-primitive-instance\";\n readonly key: string;\n readonly primitive: PrimitiveKind;\n\n constructor(\n message: string,\n code: MigrationError[\"code\"],\n key: string,\n primitive: PrimitiveKind\n ) {\n super(message);\n this.name = \"MigrationError\";\n this.code = code;\n this.key = key;\n this.primitive = primitive;\n }\n}\n\n/**\n * In-memory registry of migrated (key, primitive kind) pairs. Exported as a\n * class so tests can construct fresh instances; application code uses the\n * module-level {@link migrationRegistry} singleton.\n */\nexport class MigrationRegistry {\n private readonly marks = new Set<string>();\n\n private entryKey(key: string, primitive: PrimitiveKind): string {\n return `${primitive}:${key}`;\n }\n\n /** Mark a source primitive as migrated. Idempotent. */\n mark(key: string, primitive: PrimitiveKind): void {\n this.marks.add(this.entryKey(key, primitive));\n }\n\n /** Check whether a source primitive has been marked as migrated. */\n isMarked(key: string, primitive: PrimitiveKind): boolean {\n return this.marks.has(this.entryKey(key, primitive));\n }\n\n /** Drop every mark. Intended for tests; application code should not call this. */\n clear(): void {\n this.marks.clear();\n }\n\n /** Number of recorded marks. Intended for tests. */\n get size(): number {\n return this.marks.size;\n }\n}\n\n/**\n * The process-wide migration registry. Primitives and application migrations\n * both consult it: tests can reset it with {@link MigrationRegistry.clear}.\n */\nexport const migrationRegistry = new MigrationRegistry();\n\n/**\n * Migrate data from one Polly primitive to another. Reads the source's current\n * value, applies the caller's transform, writes the result to the destination,\n * and marks the source as migrated so subsequent reads fail loudly.\n *\n * The helper is one-way and one-time. Running it twice on the same source\n * throws a {@link MigrationError} with code `already-migrated`. Running it\n * with the same object as both source and destination throws with code\n * `same-primitive-instance`.\n *\n * Applications invoke this explicitly on upgrade, once per device, typically\n * inside a startup hook before the primitives that depend on the migrated data\n * are read. It is not a replacement for the schema-version migration protocol\n * inside a single primitive — that handles shape evolution within one primitive\n * family, whereas this helper handles moves between primitive families.\n */\nexport async function migratePrimitive<Source, Destination>(\n source: MigratableState<Source>,\n destination: MigratableState<Destination>,\n transform: (value: Source) => Destination\n): Promise<void> {\n if ((source as unknown as unknown) === (destination as unknown as unknown)) {\n throw new MigrationError(\n `Cannot migrate a primitive to itself: \"${source.key}\" under ${source.primitive}.`,\n \"same-primitive-instance\",\n source.key,\n source.primitive\n );\n }\n if (migrationRegistry.isMarked(source.key, source.primitive)) {\n throw new MigrationError(\n `Cannot migrate: source \"${source.key}\" under $${source.primitive} has already been migrated. Migrations are one-way and one-time.`,\n \"already-migrated\",\n source.key,\n source.primitive\n );\n }\n await source.loaded;\n await destination.loaded;\n const transformed = transform(source.value);\n destination.value = transformed;\n migrationRegistry.mark(source.key, source.primitive);\n}\n",
|
|
16
16
|
"/**\n * PrimitiveRegistry — runtime namespace collision detection across Polly's\n * synced state primitives.\n *\n * The three primitive families ($sharedState, $peerState, $meshState) each store\n * data under a developer-chosen logical key. If two different primitives both\n * claim the same key, the developer almost certainly has a bug: the on-disk\n * formats are incompatible, no sync happens between them, and whichever primitive\n * resolves first silently \"wins\" from the developer's perspective. By the time\n * the mistake is noticed, data has diverged.\n *\n * The registry catches the mistake at the first mismatched registration and\n * throws a structured error naming the key, both primitives, and (when available)\n * the call site of each registration. This is run-to-failure by design: a\n * collision is always a bug, and the failure should be loud.\n *\n * Same primitive re-registering the same key is allowed and is a no-op — it\n * supports hot module reloading and component re-mounts without spurious errors.\n * Changing the primitive kind of an existing key is still an error; developers\n * doing that during local HMR should hard-reload to reset the registry.\n *\n * @example\n * ```ts\n * primitiveRegistry.register(\"notes\", \"sharedState\", \"src/app.ts:10\");\n * primitiveRegistry.register(\"notes\", \"peerState\", \"src/other.ts:22\");\n * // throws PrimitiveCollisionError — names both primitives and both call sites\n * ```\n */\n\n/**\n * Canonical identifiers for Polly's synced state primitives. The registry\n * uses these as opaque labels; nothing else in Polly needs to match them.\n */\nexport type PrimitiveKind =\n | \"sharedState\"\n | \"syncedState\"\n | \"persistedState\"\n | \"state\"\n | \"peerState\"\n | \"meshState\";\n\n/**\n * Thrown when a logical key is registered under more than one primitive.\n * The message names the key, both primitives, and (when available) the\n * call site of each registration, so the developer can navigate to both\n * sites from the error output.\n */\nexport class PrimitiveCollisionError extends Error {\n readonly key: string;\n readonly firstPrimitive: PrimitiveKind;\n readonly firstCallSite: string | undefined;\n readonly secondPrimitive: PrimitiveKind;\n readonly secondCallSite: string | undefined;\n\n constructor(\n key: string,\n firstPrimitive: PrimitiveKind,\n firstCallSite: string | undefined,\n secondPrimitive: PrimitiveKind,\n secondCallSite: string | undefined\n ) {\n const firstLocation = firstCallSite ? ` (at ${firstCallSite})` : \"\";\n const secondLocation = secondCallSite ? ` (at ${secondCallSite})` : \"\";\n super(\n `Polly primitive key collision: \"${key}\" is already registered as ` +\n `$${firstPrimitive}${firstLocation} and cannot also be registered ` +\n `as $${secondPrimitive}${secondLocation}. Pick a different key or ` +\n `use the same primitive in both places.`\n );\n this.name = \"PrimitiveCollisionError\";\n this.key = key;\n this.firstPrimitive = firstPrimitive;\n this.firstCallSite = firstCallSite;\n this.secondPrimitive = secondPrimitive;\n this.secondCallSite = secondCallSite;\n }\n}\n\ntype RegistryEntry = {\n primitive: PrimitiveKind;\n callSite: string | undefined;\n};\n\n/**\n * A small Map-backed registry of \"logical key → primitive kind\". Exported as\n * a class so tests can construct fresh instances without sharing state; the\n * module-level {@link primitiveRegistry} singleton is what application code\n * actually uses.\n */\nexport class PrimitiveRegistry {\n private readonly entries = new Map<string, RegistryEntry>();\n\n /**\n * Register a key under a primitive kind. Re-registering the same key under\n * the same primitive is a no-op, which is what hot module reloading and\n * component re-mounts produce.\n *\n * @throws {PrimitiveCollisionError} if the key is already registered under\n * a different primitive kind.\n */\n register(key: string, primitive: PrimitiveKind, callSite?: string): void {\n const existing = this.entries.get(key);\n if (existing && existing.primitive !== primitive) {\n throw new PrimitiveCollisionError(\n key,\n existing.primitive,\n existing.callSite,\n primitive,\n callSite\n );\n }\n if (!existing) {\n this.entries.set(key, { primitive, callSite });\n }\n }\n\n /**\n * True if the key has been registered (under any primitive kind).\n */\n has(key: string): boolean {\n return this.entries.has(key);\n }\n\n /**\n * Look up the primitive kind a key is registered under, if any.\n * Returns undefined for unregistered keys.\n */\n kindOf(key: string): PrimitiveKind | undefined {\n return this.entries.get(key)?.primitive;\n }\n\n /**\n * Drop every registration. Intended for test setup and teardown; application\n * code should not call this.\n */\n clear(): void {\n this.entries.clear();\n }\n\n /**\n * Number of registered keys. Intended for tests.\n */\n get size(): number {\n return this.entries.size;\n }\n}\n\n/**\n * The process-wide primitive registry. Application code registers here\n * implicitly via primitive constructors; tests can reset it with `clear()`.\n */\nexport const primitiveRegistry = new PrimitiveRegistry();\n",
|
|
17
17
|
"/**\n * crdt-state — base machinery for Polly's peer-first state primitives.\n *\n * This module is transport-agnostic: it takes a caller-supplied async factory\n * that produces a ready {@link DocHandle}, binds it bidirectionally to a\n * Preact signal, runs any pending schema migrations on load, and integrates\n * with the primitive-registry and migration-registry guards. Phase 1's\n * $peerState and Phase 2's $meshState both construct these base primitives\n * with their own handle factories — one over Automerge-Repo's WebSocket\n * client adapter, the other over WebRTC — and the base never knows which.\n *\n * The signal-to-handle binding uses an `updating` guard flag to prevent write\n * loops: when a local signal assignment runs the effect that pushes the value\n * into `handle.change`, the flag is raised so that the 'change' event the\n * handle fires back is ignored. The same flag protects in the other direction\n * when a remote change seeds the signal.\n *\n * For the Phase 0 cut, writes are applied with a naive top-level structural\n * replacement inside the `Automerge.change` block. This is correct for\n * JSON-shaped documents with scalar and flat-object fields and is good enough\n * to exercise the rest of the pipeline. The specialised variants for text,\n * counters, and lists (which require type-specific operation capture to\n * preserve concurrent-edit semantics) land in Phase 1's crdt-specialised.ts.\n */\n\nimport { Automerge, type DocHandle } from \"@automerge/automerge-repo/slim\";\nimport { effect, signal } from \"@preact/signals\";\nimport type { Access } from \"./access\";\nimport { type MigratableState, MigrationError, migrationRegistry } from \"./migrate-primitive\";\nimport { type PrimitiveKind, primitiveRegistry } from \"./primitive-registry\";\nimport {\n type Migrations,\n runMigrations,\n SCHEMA_VERSION_FIELD,\n setDocVersion,\n type VersionedDoc,\n} from \"./schema-version\";\n\n/**\n * The interface a Polly peer-first primitive exposes at the call site. It\n * satisfies {@link MigratableState} so that the cross-primitive migration\n * helper can consume it directly.\n */\nexport interface CrdtPrimitive<T extends VersionedDoc> extends MigratableState<T> {\n /** Stable logical key the primitive was registered under. */\n readonly key: string;\n /** Primitive kind — one of the {@link PrimitiveKind} labels. */\n readonly primitive: PrimitiveKind;\n /** Current value. Writes push into the backing Automerge document. */\n value: T;\n /** Resolves when the handle is ready and migrations have run. */\n readonly loaded: Promise<void>;\n /** The underlying {@link DocHandle}, populated after {@link loaded} resolves.\n * Intended for advanced escape hatches; most callers should stay at the\n * signal surface. */\n readonly handle: DocHandle<T> | undefined;\n /** Number of Automerge changes recorded on the current doc, or\n * `undefined` while {@link loaded} is still pending. Stable proxy\n * for the incremental-chunk count the storage adapter writes —\n * consumers building heartbeat-doc auto-compaction read this to\n * decide when to seed a fresh successor via\n * {@link registerRedirectDetector}. See RFC-041 §History growth. */\n readonly changeCount: number | undefined;\n}\n\n/**\n * Options for constructing a base CRDT-backed primitive. Phase 1 and Phase 2\n * primitive constructors pass a transport-specific {@link getHandle} factory\n * and their own {@link primitive} label; everything else is shared.\n */\nexport interface CrdtStateOptions<T extends VersionedDoc> {\n /** Stable logical key identifying this piece of state. */\n key: string;\n /** Primitive kind label for registry and error-message purposes. */\n primitive: PrimitiveKind;\n /** Initial value if no stored document exists yet. Applied by the caller's\n * handle factory; the base module does not create documents itself. */\n initialValue: T;\n /** Async factory that resolves to a ready {@link DocHandle}. The factory is\n * responsible for repo lookup, document creation, and any transport-specific\n * setup. The base module calls this once, during hydration. */\n getHandle: () => Promise<DocHandle<T>>;\n /** Optional reactive redirect. When provided, the primitive runs\n * this against every doc state (initial load and every `change`\n * event afterwards). Returning a {@link DocHandle} different from\n * the currently-bound one tells the primitive to detach from the\n * current handle and rebind to the returned one — the signal\n * re-fires with the new doc's state and subsequent writes target\n * the new handle. Returning `undefined` keeps the current binding.\n *\n * Designed for ADR-0008-style document compaction redirects: the\n * caller (e.g. fairfox) provides a callback that inspects the doc\n * for a sealed-sentinel field and, if present, resolves the named\n * `migratedTo` docId via its repo. Continuous, so a peer-synced\n * sentinel rebinds the wrapper without a reload. */\n resolveRedirect?: (handle: DocHandle<T>, doc: T) => Promise<DocHandle<T> | undefined>;\n /** Target schema version for the application. If set, migrations run on\n * load to bring the document up to this version before the signal hydrates. */\n schemaVersion?: number;\n /** Migration table. Ignored if {@link schemaVersion} is not set. */\n migrations?: Migrations;\n /** Declarative access predicates. Not consumed by the base module; the\n * transport-specific constructors compile it to their enforcement layer. */\n access?: Access;\n /** Optional free-text call-site label for primitive-registry error messages. */\n callSite?: string;\n}\n\n/**\n * Construct a base CRDT-backed Polly primitive. Integrates with\n * primitive-registry (for collision detection), migration-registry (for\n * cross-family migration guards), and schema-version (for on-load migrations).\n *\n * @throws {MigrationError} if the source key has been marked as migrated.\n * @throws {PrimitiveCollisionError} if the key is already registered under a\n * different primitive kind.\n */\nexport function $crdtState<T extends VersionedDoc>(options: CrdtStateOptions<T>): CrdtPrimitive<T> {\n if (migrationRegistry.isMarked(options.key, options.primitive)) {\n throw new MigrationError(\n `Cannot construct $${options.primitive}(\"${options.key}\"): this key has been marked as migrated. Migrations are one-way; use the destination primitive instead.`,\n \"already-migrated\",\n options.key,\n options.primitive\n );\n }\n primitiveRegistry.register(options.key, options.primitive, options.callSite);\n\n const inner = signal<T>(options.initialValue);\n let updating = false;\n let currentHandle: DocHandle<T> | undefined;\n // Detach handle is bound to the live `currentHandle`; rebind swaps\n // both the handle reference (used by the signal→remote effect) and\n // this detacher (called before attaching a fresh listener to the\n // post-redirect handle).\n let detachChangeListener: (() => void) | undefined;\n // Re-entry guard for the change → resolveRedirect → swap →\n // re-listen chain. The change listener fires synchronously off\n // Automerge's state machine; without the guard a swap-while-handling\n // would race the listener attach.\n let swapping = false;\n\n function attachChangeListener(handle: DocHandle<T>): void {\n const listener = (payload: { doc: T }): void => {\n if (updating) return;\n updating = true;\n try {\n inner.value = cloneDoc(payload.doc);\n } finally {\n updating = false;\n }\n // After every change, see if the doc now points elsewhere\n // (e.g. a peer-synced compaction sentinel). The async path\n // runs in the background; the change listener itself stays\n // synchronous so Automerge's event dispatch isn't blocked.\n if (options.resolveRedirect && !swapping) {\n void maybeRebind(handle, payload.doc);\n }\n };\n handle.on(\"change\", listener);\n detachChangeListener = () => {\n handle.off(\"change\", listener);\n };\n }\n\n async function maybeRebind(fromHandle: DocHandle<T>, doc: T): Promise<void> {\n if (!options.resolveRedirect) return;\n if (swapping) return;\n swapping = true;\n try {\n const next = await options.resolveRedirect(fromHandle, doc);\n if (!next) return;\n if (next === currentHandle) return;\n if (next.documentId === fromHandle.documentId) return;\n // Detach from the old handle, swap, re-attach, re-fire the signal.\n detachChangeListener?.();\n detachChangeListener = undefined;\n currentHandle = next;\n attachChangeListener(next);\n updating = true;\n try {\n inner.value = cloneDoc(next.doc());\n } finally {\n updating = false;\n }\n } finally {\n swapping = false;\n }\n }\n\n async function followInitialRedirects(start: DocHandle<T>): Promise<DocHandle<T>> {\n if (!options.resolveRedirect) return start;\n let handle = start;\n const seen = new Set<string>([handle.documentId as unknown as string]);\n for (;;) {\n const doc = handle.doc();\n if (!doc) break;\n const next = await options.resolveRedirect(handle, doc);\n if (!next || next === handle) break;\n const nextIdString = next.documentId as unknown as string;\n if (seen.has(nextIdString)) break;\n seen.add(nextIdString);\n handle = next;\n await handle.whenReady();\n }\n return handle;\n }\n\n function applyPendingMigrations(handle: DocHandle<T>): void {\n if (options.schemaVersion === undefined) return;\n const targetVersion = options.schemaVersion;\n const migrations = options.migrations ?? {};\n handle.change((doc) => {\n runMigrations(doc as unknown as Record<string, unknown>, targetVersion, migrations);\n // runMigrations stamps the version on every intermediate step; make\n // sure the final value is recorded even when no migrations ran.\n setDocVersion(doc as unknown as Record<string, unknown>, targetVersion);\n });\n }\n\n function bindSignalToHandle(): void {\n effect(() => {\n const value = inner.value;\n if (updating) return;\n if (!currentHandle) return;\n updating = true;\n try {\n currentHandle.change((doc) => {\n applyTopLevel(doc as unknown as Record<string, unknown>, value);\n });\n } finally {\n updating = false;\n }\n });\n }\n\n const loaded = (async () => {\n const initialHandle = await options.getHandle();\n await initialHandle.whenReady();\n // Initial redirect check before we attach the listener — a doc\n // that's already sealed at load time shouldn't fire a write loop\n // through the change listener; just resolve to the post-redirect\n // handle up front. The same recursive follow lives in\n // {@link maybeRebind} for changes that arrive after load.\n const handle = await followInitialRedirects(initialHandle);\n currentHandle = handle;\n\n // Run any pending schema migrations inside a change block so they land\n // as a single Automerge operation set.\n applyPendingMigrations(handle);\n\n // Seed the signal with the hydrated doc state. Raise the guard first so\n // the 'change' listener we install below does not echo this write back.\n updating = true;\n try {\n inner.value = cloneDoc(handle.doc());\n } finally {\n updating = false;\n }\n\n // Remote-changes-to-signal binding. Routed through a helper so\n // {@link maybeRebind} can detach + re-attach against the\n // post-redirect handle when a sentinel appears.\n attachChangeListener(handle);\n\n // Signal-to-remote binding. The effect runs once on registration with\n // the already-hydrated value; the guard makes that first run a no-op at\n // the handle level because updating is false but the doc already equals\n // the signal, so Automerge records no new operations.\n bindSignalToHandle();\n })();\n\n return {\n key: options.key,\n primitive: options.primitive,\n get value() {\n return inner.value;\n },\n set value(next: T) {\n inner.value = next;\n },\n loaded,\n get handle() {\n return currentHandle;\n },\n get changeCount() {\n if (!currentHandle) return undefined;\n const doc = currentHandle.doc();\n if (!doc) return undefined;\n return Automerge.getAllChanges(doc).length;\n },\n };\n}\n\n/**\n * Shallow clone of an Automerge doc into a plain JS object. Automerge docs\n * are Proxies; the signal holds a detached plain-object snapshot so that\n * application code does not accidentally mutate the CRDT through the signal.\n */\nfunction cloneDoc<T>(doc: T): T {\n return JSON.parse(JSON.stringify(doc)) as unknown as T;\n}\n\n/**\n * Copy every top-level field from the incoming value onto the Automerge doc\n * — but only for fields whose serialised form actually differs from what's\n * already there. The equality skip is load-bearing, not an optimisation:\n *\n * - Automerge records a new operation for every assignment (`doc[k] = v`),\n * even when v is structurally identical to the current value.\n * - Every op triggers a state-machine transition, which via\n * `#checkForChanges` fires a `change` event, which the signal binding\n * above handles by setting `inner.value = cloneDoc(...)`.\n * - Under certain event-loop timings — most consistently on bun — preact\n * signals' synchronous effect propagation re-runs this write path with\n * the just-cloned value, which compares ref-different to the previous\n * signal value, so the effect doesn't short-circuit, so applyTopLevel\n * runs again, so more ops are recorded, and the whole chain loops until\n * preact's own cycle counter trips with \"Cycle detected\".\n *\n * Skipping value-equal assignments makes the write a true no-op at the\n * Automerge level, which makes `docChanged` in `#checkForChanges` false,\n * which skips the change emission, which breaks the loop at its origin.\n * Browsers mask this under typical interactive timing; a tight CLI boot\n * reproduces it every time.\n *\n * The reserved schema-version field is not copied — it is managed by the\n * migration subsystem and must not be overwritten by application writes.\n */\nfunction applyTopLevel<T extends VersionedDoc>(doc: Record<string, unknown>, value: T): void {\n const source = value as unknown as Record<string, unknown>;\n for (const key of Object.keys(value)) {\n if (key === SCHEMA_VERSION_FIELD) continue;\n const incoming = source[key];\n if (fieldEquals(doc[key], incoming)) continue;\n doc[key] = incoming;\n }\n}\n\n/** Structural equality check for the top-level-field comparison. JSON.stringify\n * round-trip because Automerge docs are Proxies and `===` would miss a match\n * when the proxy wraps an equal value. Arrays, objects, and primitives all\n * round-trip cleanly for the CRDT-state use case. Cycles in the input aren't\n * supported (neither is Automerge — it refuses cyclic structures). */\nfunction fieldEquals(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n try {\n return JSON.stringify(a) === JSON.stringify(b);\n } catch {\n return false;\n }\n}\n",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"/**\n * peer-state — Phase 1 wrappers exposing $peerState, $peerText, $peerCounter,\n * and $peerList. These are the application-facing constructors for the middle\n * resilience tier in RFC-041: every device is a full Automerge replica, the\n * server included, and server-side code can read and mutate document contents\n * because the server participates in the data plane as an ordinary peer.\n *\n * Each primitive wraps the corresponding Phase 0 base ($crdtState, $crdtText,\n * $crdtCounter, $crdtList) with three additions:\n *\n * 1. The `primitive` label is hard-coded to \"peerState\" so the\n * primitive-registry collision detection knows which family the key\n * belongs to.\n *\n * 2. A handle factory that resolves the application's logical key to an\n * Automerge DocumentId via a per-Repo key map. The first time a key is\n * registered, the factory creates a new document on the configured Repo\n * and records the mapping. On subsequent constructions of the same key,\n * the factory looks up the existing DocumentId and finds the handle.\n *\n * 3. The `sign` option field validates that the configured Repo was\n * created with signing enabled (via createPeerStateClient with\n * `sign: true`). Signing adds Byzantine defence at the transport\n * level without preventing the server from reading document\n * contents. Encryption is not offered on $peerState because it\n * would prevent the server from participating as an Automerge\n * peer; applications that want encrypted state should use $meshState.\n *\n * The Repo itself is supplied by the application via {@link configurePeerState}\n * or per-call via the `repo` option. There is no transport in this Phase 1\n * cut — applications use a local-only Repo and document operations stay\n * inside the calling process. Phase 1's WebSocket relay adapter will plug in\n * via the same configuration path; Phase 2's mesh adapter does the same for\n * $meshState.\n */\n\nimport type { DocHandle, DocumentId, Repo } from \"@automerge/automerge-repo/slim\";\nimport type { Access } from \"./access\";\nimport {\n $crdtCounter,\n $crdtList,\n $crdtText,\n type CounterDoc,\n type ListDoc,\n type SpecialisedPrimitive,\n type TextDoc,\n} from \"./crdt-specialised\";\nimport { $crdtState, type CrdtPrimitive } from \"./crdt-state\";\nimport type { Migrations, VersionedDoc } from \"./schema-version\";\n\n/** Common option shape across all four $peer* primitives. */\nexport interface PeerStateOptions<T> {\n /** Override the default Repo for this primitive. Useful for tests and for\n * applications that maintain multiple Repos (rare). */\n repo?: Repo;\n /** Request per-op Ed25519 signing for this primitive. Signing is a\n * transport-level concern: pass `sign: true` to `createPeerStateClient`\n * to enable it for all primitives on that Repo. Passing `sign: true`\n * here validates that the configured Repo was created with signing\n * enabled and throws if it was not. */\n sign?: boolean;\n /** Schema version target for the application. Migrations run on load. */\n schemaVersion?: number;\n /** Migration table keyed by target version. Required if schemaVersion is set. */\n migrations?: Migrations;\n /** Declarative read/write access. Compiled into a server share policy\n * once the relay transport is wired in. */\n access?: Access;\n /** Initial value used when this primitive's key has not been registered\n * before. Phase 0 callers passed this positionally; Phase 1 application\n * code does the same. */\n initialValue?: T;\n}\n\n/** Internal: per-Repo key → DocumentId map. Cleared by configurePeerState. */\nconst keyMapsByRepo = new WeakMap<Repo, Map<string, DocumentId>>();\n/** Internal: set of Repos configured with signing enabled. */\nconst signingEnabledRepos = new WeakSet<Repo>();\nlet defaultRepo: Repo | undefined;\n\n/**\n * Set the default Repo that the $peer* primitives use when no `repo` option\n * is supplied. Calling this with a new Repo clears the per-Repo key map so\n * that tests start each scenario with a fresh document space.\n *\n * Production code typically calls this once at application startup with a\n * Repo configured for the relay transport. Tests call it before each scenario\n * with an in-memory Repo.\n */\nexport function configurePeerState(repo: Repo, options?: { signEnabled?: boolean }): void {\n defaultRepo = repo;\n keyMapsByRepo.set(repo, new Map());\n if (options?.signEnabled) {\n signingEnabledRepos.add(repo);\n }\n}\n\n/**\n * Reset the peer-state subsystem to its initial unconfigured state. Intended\n * for tests; production code should not call this.\n */\nexport function resetPeerState(): void {\n defaultRepo = undefined;\n}\n\nfunction resolveRepo(option: Repo | undefined): Repo {\n const repo = option ?? defaultRepo;\n if (!repo) {\n throw new Error(\n \"Polly $peerState: no Repo configured. Call configurePeerState(repo) at startup or pass { repo } in the primitive options.\"\n );\n }\n return repo;\n}\n\nfunction getKeyMap(repo: Repo): Map<string, DocumentId> {\n let map = keyMapsByRepo.get(repo);\n if (!map) {\n map = new Map();\n keyMapsByRepo.set(repo, map);\n }\n return map;\n}\n\nfunction validateSignOption(options: PeerStateOptions<unknown>, repo: Repo): void {\n if (!options.sign) return;\n if (!signingEnabledRepos.has(repo)) {\n throw new Error(\n \"Polly $peerState: { sign: true } was passed to the primitive but the configured Repo does not have signing enabled. \" +\n \"Pass { sign: true, keyring: ... } to createPeerStateClient to enable signing at the transport level, \" +\n \"then call configurePeerState(client.repo, { signEnabled: true }).\"\n );\n }\n}\n\n/**\n * Build a getHandle factory that resolves a logical key to a DocHandle on\n * the supplied Repo. The first call creates a new document seeded with the\n * given initial value and records the (key → DocumentId) mapping; subsequent\n * calls look up the existing DocumentId and find the handle.\n */\nfunction buildHandleFactory<D>(\n repo: Repo,\n key: string,\n initialDoc: D\n): () => Promise<DocHandle<D>> {\n return async () => {\n const map = getKeyMap(repo);\n const existingId = map.get(key);\n if (existingId !== undefined) {\n return repo.find<D>(existingId);\n }\n const handle = repo.create<D>(initialDoc);\n map.set(key, handle.documentId);\n return handle;\n };\n}\n\n// $peerState\n\n/**\n * Create a peer-replicated state primitive backed by Automerge. Every device\n * holds a full replica; the server, when one is configured via the relay\n * transport, holds one too and participates in the sync protocol as an\n * ordinary peer. Server-side code can read and mutate document contents.\n *\n * @example\n * ```ts\n * const settings = $peerState<Settings>(\"settings\", { theme: \"dark\" });\n * await settings.loaded;\n * settings.value = { theme: \"light\" };\n * ```\n */\nexport function $peerState<T extends VersionedDoc>(\n key: string,\n initialValue: T,\n options: PeerStateOptions<T> = {}\n): CrdtPrimitive<T> {\n const repo = resolveRepo(options.repo);\n validateSignOption(options, repo);\n return $crdtState<T>({\n key,\n primitive: \"peerState\",\n initialValue,\n getHandle: buildHandleFactory<T>(repo, key, initialValue),\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n });\n}\n\n// $peerText\n\nexport interface PeerTextOptions extends Omit<PeerStateOptions<unknown>, \"initialValue\"> {}\n\n/**\n * Create a peer-replicated text primitive. Concurrent character-level edits\n * from peers merge cleanly via Automerge's updateText splicing.\n */\nexport function $peerText(\n key: string,\n initialValue: string,\n options: PeerTextOptions = {}\n): SpecialisedPrimitive<string> {\n const repo = resolveRepo(options.repo);\n validateSignOption(options, repo);\n return $crdtText(key, initialValue, {\n primitive: \"peerState\",\n getHandle: buildHandleFactory<TextDoc>(repo, key, { text: initialValue }),\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n });\n}\n\n// $peerCounter\n\nexport interface PeerCounterOptions extends Omit<PeerStateOptions<unknown>, \"initialValue\"> {}\n\n/**\n * Create a peer-replicated counter primitive. Concurrent increments from\n * peers commute, so two clients each adding 1 to a counter at 5 produce a\n * counter at 7 after merging.\n */\nexport function $peerCounter(\n key: string,\n initialValue: number,\n options: PeerCounterOptions = {}\n): SpecialisedPrimitive<number> {\n const repo = resolveRepo(options.repo);\n validateSignOption(options, repo);\n return $crdtCounter(key, initialValue, {\n primitive: \"peerState\",\n getHandle: buildHandleFactory<CounterDoc>(repo, key, {}),\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n });\n}\n\n// $peerList\n\nexport interface PeerListOptions extends Omit<PeerStateOptions<unknown>, \"initialValue\"> {}\n\n/**\n * Create a peer-replicated list primitive. The Phase 0 base uses naive\n * whole-array replacement; Phase 1.1 will refine the write path with\n * structural diff-to-splice for concurrent insert/remove preservation.\n */\nexport function $peerList<T>(\n key: string,\n initialValue: T[],\n options: PeerListOptions = {}\n): SpecialisedPrimitive<T[]> {\n const repo = resolveRepo(options.repo);\n validateSignOption(options, repo);\n return $crdtList<T>(key, initialValue, {\n primitive: \"peerState\",\n getHandle: buildHandleFactory<ListDoc<T>>(repo, key, { items: initialValue }),\n schemaVersion: options.schemaVersion,\n migrations: options.migrations,\n access: options.access,\n });\n}\n",
|
|
25
25
|
"/**\n * @fairfox/polly/peer — peer-first CRDT state primitives.\n *\n * Automerge-backed reactive state that syncs via a relay server.\n * This subpath export isolates the @automerge/* dependency tree so\n * consumers who only use $sharedState / $syncedState / $resource\n * never pull in automerge.\n *\n * @example\n * ```typescript\n * import { $peerState, configurePeerState } from \"@fairfox/polly/peer\";\n * ```\n */\n\n// Eagerly initialise Automerge's WASM runtime. Must come before anything\n// that touches @automerge/automerge-repo/slim.\nimport \"./shared/lib/wasm-init\";\n\n// Base CRDT primitives (transport-agnostic, caller-supplied handle factory)\nexport type {\n CounterDoc,\n CrdtCounterOptions,\n CrdtListOptions,\n CrdtTextOptions,\n ListDoc,\n SpecialisedPrimitive,\n TextDoc,\n} from \"./shared/lib/crdt-specialised\";\nexport { $crdtCounter, $crdtList, $crdtText } from \"./shared/lib/crdt-specialised\";\nexport type { CrdtPrimitive, CrdtStateOptions } from \"./shared/lib/crdt-state\";\nexport { $crdtState } from \"./shared/lib/crdt-state\";\n// Migration support (needed for CRDT schema versioning)\nexport type { MigratableState } from \"./shared/lib/migrate-primitive\";\nexport { MigrationError, migratePrimitive } from \"./shared/lib/migrate-primitive\";\n\n// Relay adapter and server\nexport type {\n CreatePeerStateClientOptions,\n PeerRelayConnectionState,\n PeerStateClient,\n} from \"./shared/lib/peer-relay-adapter\";\nexport { createPeerStateClient } from \"./shared/lib/peer-relay-adapter\";\nexport type {\n CreatePeerRepoServerOptions,\n PeerRepoServer,\n} from \"./shared/lib/peer-repo-server\";\nexport { createPeerRepoServer } from \"./shared/lib/peer-repo-server\";\n// Peer-state wrappers (key→DocumentId mapping per Repo, relay transport)\nexport type {\n PeerCounterOptions,\n PeerListOptions,\n PeerStateOptions,\n PeerTextOptions,\n} from \"./shared/lib/peer-state\";\nexport {\n $peerCounter,\n $peerList,\n $peerState,\n $peerText,\n configurePeerState,\n resetPeerState,\n} from \"./shared/lib/peer-state\";\n// Primitive registry (needed for CRDT primitive kinds)\nexport type { PrimitiveKind } from \"./shared/lib/primitive-registry\";\nexport { PrimitiveCollisionError } from \"./shared/lib/primitive-registry\";\nexport type {\n Migration,\n Migrations,\n OpVersionCheck,\n VersionedDoc,\n} from \"./shared/lib/schema-version\";\nexport {\n assertOpVersion,\n checkOpVersion,\n getDocVersion,\n SCHEMA_VERSION_FIELD,\n SchemaVersionError,\n} from \"./shared/lib/schema-version\";\n// Sealed-doc storage GC (polly#121)\nexport type {\n KeptDoc,\n KeptReason,\n SweepResult,\n SweepSealedOptions,\n SweptDoc,\n} from \"./shared/lib/sweep-sealed\";\nexport { sweepSealed } from \"./shared/lib/sweep-sealed\";\n"
|
|
26
26
|
],
|
|
27
|
-
"mappings": "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",
|
|
28
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "24C991421497CD7364756E2164756E21",
|
|
29
29
|
"names": []
|
|
30
30
|
}
|
|
@@ -297,7 +297,8 @@ function createMockTabs() {
|
|
|
297
297
|
groupId: -1,
|
|
298
298
|
url: createProperties.url || "about:blank",
|
|
299
299
|
title: createProperties.url || "New Tab",
|
|
300
|
-
frozen: false
|
|
300
|
+
frozen: false,
|
|
301
|
+
lastAccessed: 0
|
|
301
302
|
};
|
|
302
303
|
if (newTab.id !== undefined) {
|
|
303
304
|
tabs.set(newTab.id, newTab);
|
|
@@ -461,4 +462,4 @@ export {
|
|
|
461
462
|
waitForCondition
|
|
462
463
|
};
|
|
463
464
|
|
|
464
|
-
//# debugId=
|
|
465
|
+
//# debugId=5769EA11544EFFD464756E2164756E21
|