@catalyst-cloud/sdk 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +92 -0
  2. package/dist/browser.d.ts +9 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +24 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/live-sync-client.d.ts +128 -9
  7. package/dist/live-sync-client.d.ts.map +1 -1
  8. package/dist/live-sync-client.js +369 -51
  9. package/dist/live-sync-client.js.map +1 -1
  10. package/dist/replica/browser/apply.d.ts +29 -0
  11. package/dist/replica/browser/apply.d.ts.map +1 -0
  12. package/dist/replica/browser/apply.js +59 -0
  13. package/dist/replica/browser/apply.js.map +1 -0
  14. package/dist/replica/browser/browser-lock.d.ts +25 -0
  15. package/dist/replica/browser/browser-lock.d.ts.map +1 -0
  16. package/dist/replica/browser/browser-lock.js +91 -0
  17. package/dist/replica/browser/browser-lock.js.map +1 -0
  18. package/dist/replica/browser/browser-replica.d.ts +237 -0
  19. package/dist/replica/browser/browser-replica.d.ts.map +1 -0
  20. package/dist/replica/browser/browser-replica.js +952 -0
  21. package/dist/replica/browser/browser-replica.js.map +1 -0
  22. package/dist/replica/browser/db.worker.d.ts +2 -0
  23. package/dist/replica/browser/db.worker.d.ts.map +1 -0
  24. package/dist/replica/browser/db.worker.js +40 -0
  25. package/dist/replica/browser/db.worker.js.map +1 -0
  26. package/dist/replica/browser/delta-queue.d.ts +187 -0
  27. package/dist/replica/browser/delta-queue.d.ts.map +1 -0
  28. package/dist/replica/browser/delta-queue.js +328 -0
  29. package/dist/replica/browser/delta-queue.js.map +1 -0
  30. package/dist/replica/browser/ports.d.ts +39 -0
  31. package/dist/replica/browser/ports.d.ts.map +1 -0
  32. package/dist/replica/browser/ports.js +144 -0
  33. package/dist/replica/browser/ports.js.map +1 -0
  34. package/dist/replica/browser/protocol.d.ts +129 -0
  35. package/dist/replica/browser/protocol.d.ts.map +1 -0
  36. package/dist/replica/browser/protocol.js +12 -0
  37. package/dist/replica/browser/protocol.js.map +1 -0
  38. package/dist/replica/browser/seed-read-gate.d.ts +13 -0
  39. package/dist/replica/browser/seed-read-gate.d.ts.map +1 -0
  40. package/dist/replica/browser/seed-read-gate.js +36 -0
  41. package/dist/replica/browser/seed-read-gate.js.map +1 -0
  42. package/dist/replica/browser/seed-session.d.ts +23 -0
  43. package/dist/replica/browser/seed-session.d.ts.map +1 -0
  44. package/dist/replica/browser/seed-session.js +57 -0
  45. package/dist/replica/browser/seed-session.js.map +1 -0
  46. package/dist/replica/browser/snapshot-stream.d.ts +24 -0
  47. package/dist/replica/browser/snapshot-stream.d.ts.map +1 -0
  48. package/dist/replica/browser/snapshot-stream.js +113 -0
  49. package/dist/replica/browser/snapshot-stream.js.map +1 -0
  50. package/dist/replica/browser/sqlite-db.d.ts +9 -0
  51. package/dist/replica/browser/sqlite-db.d.ts.map +1 -0
  52. package/dist/replica/browser/sqlite-db.js +28 -0
  53. package/dist/replica/browser/sqlite-db.js.map +1 -0
  54. package/dist/replica/browser/support.d.ts +2 -0
  55. package/dist/replica/browser/support.d.ts.map +1 -0
  56. package/dist/replica/browser/support.js +30 -0
  57. package/dist/replica/browser/support.js.map +1 -0
  58. package/dist/replica/browser/validate.d.ts +17 -0
  59. package/dist/replica/browser/validate.d.ts.map +1 -0
  60. package/dist/replica/browser/validate.js +47 -0
  61. package/dist/replica/browser/validate.js.map +1 -0
  62. package/dist/replica/browser/worker-core.d.ts +10 -0
  63. package/dist/replica/browser/worker-core.d.ts.map +1 -0
  64. package/dist/replica/browser/worker-core.js +181 -0
  65. package/dist/replica/browser/worker-core.js.map +1 -0
  66. package/dist/replica/catalyst-replica.d.ts +6 -9
  67. package/dist/replica/catalyst-replica.d.ts.map +1 -1
  68. package/dist/replica/catalyst-replica.js +6 -15
  69. package/dist/replica/catalyst-replica.js.map +1 -1
  70. package/dist/replica/migration-shape.d.ts +11 -0
  71. package/dist/replica/migration-shape.d.ts.map +1 -0
  72. package/dist/replica/migration-shape.js +25 -0
  73. package/dist/replica/migration-shape.js.map +1 -0
  74. package/package.json +16 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-stream.js","sourceRoot":"","sources":["../../../src/replica/browser/snapshot-stream.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,+FAA+F;AAC/F,uGAAuG;AACvG,iGAAiG;AACjG,EAAE;AACF,uGAAuG;AACvG,uGAAuG;AACvG,sGAAsG;AACtG,iEAAiE;AACjE,EAAE;AACF,oGAAoG;AACpG,gFAAgF;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,yGAAyG;AACzG,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAoBpC,wGAAwG;AACxG,SAAS,YAAY,CAAC,CAAwC;IAC5D,OAAO,OAAQ,CAAwB,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,IAAgC,EAChC,YAAoB,eAAe;AACnC;;iFAEiF;AACjF,OAAoB;IAEpB,yFAAyF;IACzF,4FAA4F;IAC5F,oGAAoG;IACpG,kGAAkG;IAClG,oGAAoG;IACpG,2DAA2D;IAC3D,kBAAkB,CAAC,uBAAuB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAiB,EAAE,CAAC;IAC7B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,oGAAoG;IACpG,uFAAuF;IACvF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAuB,EAAE;QACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,mBAAmB;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0C,CAAC;QACpE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC;YACnB,KAAK,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,OAAO,EAAE,EAAE,CAAC;YACZ,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAU,CAAC;YACf,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI;oBAAE,MAAM,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,gGAAgG;QAChG,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC;QACvB,CAAC;QACD,gGAAgG;QAChG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACzF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACjC,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,iGAAiG;QACjG,6FAA6F;QAC7F,iGAAiG;QACjG,6FAA6F;QAC7F,+FAA+F;QAC/F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,2FAA2F;YAC7F,CAAC;QACH,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type OpenedReplica } from "./ports.js";
2
+ export type { OpenedReplica } from "./ports.js";
3
+ /**
4
+ * Open the OPFS SAHPool replica at `dbPath` (absolute, leading slash REQUIRED) and bring its schema up
5
+ * to date via the shared migration bundle. Async — wasm init + SAHPool acquire are async, unlike the
6
+ * node engine's synchronous open. `clearOnInit:false` is load-bearing for persistence across reloads.
7
+ */
8
+ export declare function openReplica(dbPath: string, directory: string): Promise<OpenedReplica>;
9
+ //# sourceMappingURL=sqlite-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-db.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/sqlite-db.ts"],"names":[],"mappings":"AAaA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAS3F"}
@@ -0,0 +1,28 @@
1
+ // replica/browser/sqlite-db.ts — open the OPFS SAHPool replica (CTC-51 → CTC-114). Runs INSIDE the
2
+ // Worker (db.worker.ts); SAHPool's OPFS SyncAccessHandles are Worker-only. The port construction +
3
+ // migrations live in ports.ts (shared with the node-side `:memory:` test opener); this file owns only
4
+ // the OPFS-specific open.
5
+ //
6
+ // ⚠️ SINGLE-CONNECTION-PER-ORIGIN: SAHPool takes EXCLUSIVE SyncAccessHandles on the pool files, so a
7
+ // second tab (or a not-yet-released worker from a just-prior reload) booting the same `directory`
8
+ // throws `NoModificationAllowedError`. The main-thread Web Locks gate (browser-lock.ts) exists to
9
+ // keep a second tab from ever reaching this call — treat an escape here as the last line of defense,
10
+ // not the primary one.
11
+ import sqlite3InitModule from "@sqlite.org/sqlite-wasm";
12
+ import { buildOpenedReplica } from "./ports.js";
13
+ /**
14
+ * Open the OPFS SAHPool replica at `dbPath` (absolute, leading slash REQUIRED) and bring its schema up
15
+ * to date via the shared migration bundle. Async — wasm init + SAHPool acquire are async, unlike the
16
+ * node engine's synchronous open. `clearOnInit:false` is load-bearing for persistence across reloads.
17
+ */
18
+ export async function openReplica(dbPath, directory) {
19
+ const sqlite3 = await sqlite3InitModule();
20
+ const poolUtil = await sqlite3.installOpfsSAHPoolVfs({
21
+ clearOnInit: false, // PERSIST across reloads — true wipes the pool on every boot.
22
+ initialCapacity: 6, // ≥ 2× the db count (one db + journals).
23
+ directory, // one OPFS dir per app, so engines don't collide.
24
+ });
25
+ const db = new poolUtil.OpfsSAHPoolDb(dbPath);
26
+ return buildOpenedReplica(db);
27
+ }
28
+ //# sourceMappingURL=sqlite-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-db.js","sourceRoot":"","sources":["../../../src/replica/browser/sqlite-db.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,mGAAmG;AACnG,sGAAsG;AACtG,0BAA0B;AAC1B,EAAE;AACF,qGAAqG;AACrG,kGAAkG;AAClG,kGAAkG;AAClG,qGAAqG;AACrG,uBAAuB;AAEvB,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,YAAY,CAAC;AAIpE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,SAAiB;IACjE,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAgB,MAAM,OAAO,CAAC,qBAAqB,CAAC;QAChE,WAAW,EAAE,KAAK,EAAE,8DAA8D;QAClF,eAAe,EAAE,CAAC,EAAE,yCAAyC;QAC7D,SAAS,EAAE,kDAAkD;KAC9D,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isBrowserReplicaSupported(): boolean;
2
+ //# sourceMappingURL=support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/support.ts"],"names":[],"mappings":"AAoBA,wBAAgB,yBAAyB,IAAI,OAAO,CAOnD"}
@@ -0,0 +1,30 @@
1
+ // replica/browser/support.ts — feature-detect, FROM THE MAIN THREAD, whether this engine can run the
2
+ // OPFS SAHPool replica, so an unsupported browser falls back to its normal fetch path instead of
3
+ // booting a Worker that can only fail. Two main-thread-observable gates:
4
+ //
5
+ // • OPFS root — `navigator.storage.getDirectory`. Exposed on BOTH the window and a dedicated worker,
6
+ // AND only present in a secure context (`StorageManager` is `[SecureContext]`), so its
7
+ // presence is a sound main-thread proxy for "this engine has OPFS" — which on every
8
+ // shipping engine (Chromium 102+, Safari 16.4+, Firefox 111+) means the worker also has
9
+ // SyncAccessHandle.
10
+ // • ES-module Worker — `Worker` exists (the DB worker is `{ type: "module" }`).
11
+ //
12
+ // Deliberately NOT probed: `FileSystemFileHandle.prototype.createSyncAccessHandle`. That method is
13
+ // `[Exposed=DedicatedWorker]` — it does NOT exist on the main-thread prototype in ANY browser (incl.
14
+ // fully-capable Chrome), so a main-thread `typeof … === "function"` probe ALWAYS returns false and
15
+ // wrongly reports "unsupported" everywhere (CTC-51 bug). The AUTHORITATIVE SyncAccessHandle check is
16
+ // the worker-side `installOpfsSAHPoolVfs()` in sqlite-db.ts; a browser that has OPFS in a secure
17
+ // context but lacks worker SAH degrades there.
18
+ //
19
+ // Wrapped so a partial / non-browser runtime returns false rather than throwing.
20
+ export function isBrowserReplicaSupported() {
21
+ try {
22
+ if (typeof navigator === "undefined" || typeof Worker === "undefined")
23
+ return false;
24
+ return typeof navigator.storage?.getDirectory === "function";
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ }
30
+ //# sourceMappingURL=support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/replica/browser/support.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,iGAAiG;AACjG,yEAAyE;AACzE,EAAE;AACF,wGAAwG;AACxG,wGAAwG;AACxG,qGAAqG;AACrG,yGAAyG;AACzG,qCAAqC;AACrC,kFAAkF;AAClF,EAAE;AACF,mGAAmG;AACnG,qGAAqG;AACrG,mGAAmG;AACnG,qGAAqG;AACrG,iGAAiG;AACjG,+CAA+C;AAC/C,EAAE;AACF,iFAAiF;AAEjF,MAAM,UAAU,yBAAyB;IACvC,IAAI,CAAC;QACH,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACpF,OAAO,OAAO,SAAS,CAAC,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Require a positive integer (>= 1). Rejects `NaN`, `Infinity`, fractions, zero and negatives.
3
+ *
4
+ * `label` names the option in the error, so a consumer sees which knob they got wrong rather than a
5
+ * failure somewhere downstream — the whole point of validating at construction.
6
+ */
7
+ export declare function requirePositiveInt(owner: string, label: string, value: unknown): number;
8
+ /**
9
+ * Require a non-negative finite number — for values where 0 is meaningful (a delay, a retry count).
10
+ *
11
+ * Split from {@link requirePositiveInt} because collapsing them would force a legitimate `0` to be
12
+ * spelled `1`, and a retry delay of 0 (retry on the next tick) is a real configuration.
13
+ */
14
+ export declare function requireNonNegativeInt(owner: string, label: string, value: unknown): number;
15
+ /** Require a finite, non-negative number (fractions allowed — milliseconds, not counts). */
16
+ export declare function requireNonNegativeFinite(owner: string, label: string, value: unknown): number;
17
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/validate.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAOR;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAOR"}
@@ -0,0 +1,47 @@
1
+ // replica/browser/validate.ts — option validation shared by every PUBLIC entry point of ./browser.
2
+ //
3
+ // Why this exists (CTC-114 review rounds 5, 10 and 12). `DeltaQueue`, `DeltaQueueOptions`,
4
+ // `streamSnapshotBatches` and `acquireReplicaLock` are all exported from `@catalyst-cloud/sdk/browser`,
5
+ // so their numeric knobs are consumer-supplied and can arrive from unchecked runtime configuration —
6
+ // and TypeScript helps none of the untyped-JS callers those exports invite.
7
+ //
8
+ // The review found the SAME defect three times, each time in whichever module had not been guarded
9
+ // yet: `maxBatch` (round 5), `maxDepth`/`maxApplyRetries`/`retryDelayMs` (round 10), then `batchSize`
10
+ // and the lock's `retries` (round 12). Guarding them module by module is how a class of defect
11
+ // survives three rounds. One helper, used at every boundary, is the seam.
12
+ //
13
+ // `NaN` is the sharp value in every case, and always for the same reason: EVERY comparison against it
14
+ // is false, so a bound expressed as `x > limit` silently ceases to exist rather than degrading. That
15
+ // is worse than a wrong-but-finite value, because nothing downstream can detect it.
16
+ /**
17
+ * Require a positive integer (>= 1). Rejects `NaN`, `Infinity`, fractions, zero and negatives.
18
+ *
19
+ * `label` names the option in the error, so a consumer sees which knob they got wrong rather than a
20
+ * failure somewhere downstream — the whole point of validating at construction.
21
+ */
22
+ export function requirePositiveInt(owner, label, value) {
23
+ if (typeof value !== "number" || !Number.isInteger(value) || value < 1) {
24
+ throw new Error(`${owner}: ${label} must be a positive integer (got ${String(value)})`);
25
+ }
26
+ return value;
27
+ }
28
+ /**
29
+ * Require a non-negative finite number — for values where 0 is meaningful (a delay, a retry count).
30
+ *
31
+ * Split from {@link requirePositiveInt} because collapsing them would force a legitimate `0` to be
32
+ * spelled `1`, and a retry delay of 0 (retry on the next tick) is a real configuration.
33
+ */
34
+ export function requireNonNegativeInt(owner, label, value) {
35
+ if (typeof value !== "number" || !Number.isInteger(value) || value < 0) {
36
+ throw new Error(`${owner}: ${label} must be a non-negative integer (got ${String(value)})`);
37
+ }
38
+ return value;
39
+ }
40
+ /** Require a finite, non-negative number (fractions allowed — milliseconds, not counts). */
41
+ export function requireNonNegativeFinite(owner, label, value) {
42
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
43
+ throw new Error(`${owner}: ${label} must be a non-negative finite number (got ${String(value)})`);
44
+ }
45
+ return value;
46
+ }
47
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/replica/browser/validate.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,EAAE;AACF,2FAA2F;AAC3F,wGAAwG;AACxG,qGAAqG;AACrG,4EAA4E;AAC5E,EAAE;AACF,mGAAmG;AACnG,sGAAsG;AACtG,+FAA+F;AAC/F,0EAA0E;AAC1E,EAAE;AACF,sGAAsG;AACtG,qGAAqG;AACrG,oFAAoF;AAEpF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,KAAa,EACb,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,KAAK,KAAK,oCAAoC,MAAM,CAAC,KAAK,CAAC,GAAG,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,KAAa,EACb,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,KAAK,KAAK,wCAAwC,MAAM,CAAC,KAAK,CAAC,GAAG,CAC3E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,KAAa,EACb,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,KAAK,KAAK,8CAA8C,MAAM,CAAC,KAAK,CAAC,GAAG,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { OpenedReplica } from "./ports.js";
2
+ import type { OpenRequest, ReplicaRequest } from "./protocol.js";
3
+ /** The one OPFS-specific dependency, injected: how to open the replica for an `open` request. */
4
+ export type ReplicaOpener = (request: OpenRequest) => Promise<OpenedReplica>;
5
+ /** The dispatcher: `handle` resolves one request to its (untyped) result the client casts via ResultMap. */
6
+ export interface WorkerCore {
7
+ handle(request: ReplicaRequest): Promise<unknown>;
8
+ }
9
+ export declare function createWorkerCore(open: ReplicaOpener): WorkerCore;
10
+ //# sourceMappingURL=worker-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-core.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/worker-core.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAYhD,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EAEf,MAAM,eAAe,CAAC;AAEvB,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAE7E,4GAA4G;AAC5G,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CA2LhE"}
@@ -0,0 +1,181 @@
1
+ // replica/browser/worker-core.ts — the Worker's request dispatcher, extracted from the worker entry
2
+ // (CTC-114) so the ENTIRE open→seed→apply→query lifecycle is testable in plain vitest: the opener is
3
+ // INJECTED, so tests drive the exact production dispatch over a `:memory:` sqlite-wasm DB (sqlite-wasm
4
+ // runs under node) while db.worker.ts binds it to the OPFS SAHPool opener. This is the browser twin of
5
+ // the node CatalystReplica's engine seam, and it pays down CTC-131's logic half — the only part left
6
+ // untestable is the OPFS/SAHPool acquisition itself.
7
+ //
8
+ // Behavior is byte-for-byte the CTC-51/CTC-132 worker: one open replica per core, a single batched
9
+ // seed session at a time, reads deferred mid-seed (SeedReadGate), and the ok/err envelope discipline
10
+ // (the worker never throws across the boundary).
11
+ import { buildIssuesView, buildIssueDetail, buildPullsView, } from "@catalyst-cloud/read-model";
12
+ import { applyChange, setCursor, getCursor, truncateReplica, getIdentity, setIdentity, clearCursor, } from "./apply.js";
13
+ import { SeedSession } from "./seed-session.js";
14
+ import { SeedReadGate } from "./seed-read-gate.js";
15
+ export function createWorkerCore(open) {
16
+ /** The opened replica — set once by the `open` request, then reused for every subsequent command. */
17
+ let replica = null;
18
+ /** The tenant fence the open replica was admitted under, so a re-open can be checked against it. */
19
+ let openedIdentity = null;
20
+ /** The in-flight batched seed (CTC-132), if one is open — spans seedBegin → seedBatch* → seedCommit. */
21
+ let session = null;
22
+ /** Defers reads that arrive mid-seed until the seed settles, so a query never runs against the
23
+ * truncated, partially-repopulated transaction (CTC-132 — see seed-read-gate.ts). */
24
+ const readGate = new SeedReadGate();
25
+ /** Narrow `replica` to non-null or throw a message the client surfaces (never a raw undefined deref). */
26
+ function requireReplica() {
27
+ if (!replica)
28
+ throw new Error("replica not open — send an 'open' request first");
29
+ return replica;
30
+ }
31
+ async function handle(request) {
32
+ switch (request.type) {
33
+ case "open": {
34
+ // A re-open with a DIFFERENT identity is a programming error, not a tenant switch: the fence
35
+ // below runs only on the first open, so silently ignoring the second would leave the core
36
+ // serving tenant A's rows to a caller that believes it opened tenant B. Loud beats silent.
37
+ if (replica) {
38
+ if (openedIdentity !== request.identity) {
39
+ throw new Error("replica already open under a different identity — close() before reopening");
40
+ }
41
+ return undefined;
42
+ }
43
+ replica = await open(request);
44
+ // TENANT FENCE (CTC-114 review). dbPath/directory default to constants, so every tenant on
45
+ // an origin shares one OPFS database. Enforce the fence HERE, before any read can be served:
46
+ // on a mismatch wipe the entity tables and delete the cursor, which makes the client's
47
+ // warm-start check (`getCursor() != null`) read cold and take the /snapshot path. Without
48
+ // this, a cookie-user change left the previous tenant's rows both readable and unremovable —
49
+ // deltas carry changes, never "forget everything".
50
+ const stored = getIdentity(replica.write);
51
+ if (stored !== request.identity) {
52
+ // UNCONDITIONAL on mismatch — including `stored === null` (CTC-114 review, second round).
53
+ // An earlier version adopted a null-identity database on the theory that it was fresh. It is
54
+ // not: every OPFS replica written before this fence existed has no identity key, and those
55
+ // are exactly the databases that may belong to a different cookie user. Adopting one stamps
56
+ // the new identity over the OLD ROWS and leaves the old cursor intact, so start() reads warm,
57
+ // skips /snapshot, and serves the previous tenant. A missing identity cannot be validated,
58
+ // so it must force a cold re-seed.
59
+ //
60
+ // The cost on a genuinely fresh database is a truncate over empty tables and a DELETE that
61
+ // matches no row — which is why this is safe to do unconditionally, and why the alternative
62
+ // (clear the cursor only) is not enough: if the forced re-seed then FAILS, the client stays
63
+ // alive and queryIssues() would still read the previous tenant's rows. Truncating makes
64
+ // "wrong-identity rows are unreadable" unconditional rather than contingent on a later step.
65
+ //
66
+ // ONE transaction, so a crash mid-wipe can never leave rows from A under a stamp saying B.
67
+ const r = replica;
68
+ r.write.transaction(() => {
69
+ truncateReplica(r.write);
70
+ clearCursor(r.write);
71
+ setIdentity(r.write, request.identity);
72
+ });
73
+ }
74
+ openedIdentity = request.identity;
75
+ return undefined;
76
+ }
77
+ // Batched streaming seed (CTC-132) — one open transaction spanning many messages. All transaction
78
+ // logic lives in SeedSession; these handlers just drive it and surface state errors over the
79
+ // ok/err envelope (the worker never throws across the boundary).
80
+ case "seedBegin": {
81
+ // Reject a second concurrent seed instead of OVERWRITING the open one (CTC-132 review finding):
82
+ // reassigning `session` while a transaction is live would strand it — the next BEGIN fails as
83
+ // nested, and the replica is unusable until the Worker terminates. Seeds are serialized by
84
+ // design (start() awaits its reseed; the SDK awaits its reseed callback), so this only ever
85
+ // fires on a genuine double-drive, and rejecting keeps the first seed intact.
86
+ if (session)
87
+ throw new Error("seedBegin while a seed is already in progress");
88
+ const r = requireReplica();
89
+ session = new SeedSession(r.write, {
90
+ truncate: truncateReplica,
91
+ apply: applyChange,
92
+ setCursor,
93
+ });
94
+ session.begin();
95
+ return undefined;
96
+ }
97
+ case "seedBatch": {
98
+ if (!session)
99
+ throw new Error("seedBatch before seedBegin");
100
+ session.batch(request.rows);
101
+ return undefined;
102
+ }
103
+ case "seedCommit": {
104
+ if (!session)
105
+ throw new Error("seedCommit before seedBegin");
106
+ const cursor = session.commit(request.cursor);
107
+ session = null;
108
+ readGate.settle(); // release reads deferred during the seed — they now see the fresh snapshot.
109
+ return cursor;
110
+ }
111
+ case "seedAbort": {
112
+ session?.abort();
113
+ session = null;
114
+ readGate.settle(); // release deferred reads — the ROLLBACK restored the prior complete snapshot.
115
+ return undefined;
116
+ }
117
+ case "applyChanges": {
118
+ const r = requireReplica();
119
+ const since = getCursor(r.write) ?? 0;
120
+ let applied = 0;
121
+ let maxSeq = since;
122
+ r.write.transaction(() => {
123
+ for (const rec of request.changes) {
124
+ // SEQ STALE-GUARD (CTC-114 review). The transport deliberately forwards duplicate /
125
+ // out-of-order frames at `seq <= deliveredSeq` (live-sync-client.ts: "passed through
126
+ // unchanged: the consumer's stale-guard already dedups it") — WE are that stale-guard, and
127
+ // `applyDelta`'s only covers upserts (`ON CONFLICT ... WHERE excluded.updated_at > …`).
128
+ // The DELETE path keys on the PK alone and has no guard, so a replayed old delete removed a
129
+ // row that a NEWER change had created. `setCursor` still holds the newer cursor, so a
130
+ // reconnect resumes above the damage and nothing ever repairs it — only a re-seed does.
131
+ //
132
+ // The cursor's meaning is exactly the test we need: everything at or below it is already
133
+ // reflected in the DB — applied as a delta, dropped by the updated_at guard as stale (the
134
+ // DB then holds NEWER data), or carried in the snapshot that set it. So skipping is right
135
+ // in every case. Comparing against the ROLLING `maxSeq` rather than the entry `since` also
136
+ // catches a duplicate that repeats WITHIN one batch: the transport delivers in arrival
137
+ // order, so an oldie always trails the original it duplicates.
138
+ if (rec.seq <= maxSeq)
139
+ continue;
140
+ if (applyChange(r.write, rec))
141
+ applied++;
142
+ maxSeq = rec.seq;
143
+ }
144
+ // Advance to the max seq SEEN (not just applied) — a window of all-stale deltas still moves
145
+ // the cursor forward so we don't re-fetch forever. Twin of the node sync path.
146
+ setCursor(r.write, maxSeq);
147
+ });
148
+ const result = { applied, cursor: maxSeq };
149
+ return result;
150
+ }
151
+ // Reads DEFER while a seed is open (CTC-132 review finding) so they never observe the truncated,
152
+ // partially-repopulated transaction; readGate.settle() (on commit/abort) releases them against a
153
+ // complete DB. When no seed is open this awaits an already-resolved promise — no added latency.
154
+ case "queryIssues":
155
+ await readGate.whenReadable(session !== null);
156
+ return buildIssuesView(requireReplica().read, request.limit, request.offset);
157
+ case "queryIssueDetail":
158
+ await readGate.whenReadable(session !== null);
159
+ return buildIssueDetail(requireReplica().read, request.identifier);
160
+ case "queryPulls":
161
+ await readGate.whenReadable(session !== null);
162
+ return buildPullsView(requireReplica().read, request.limit, request.offset);
163
+ case "getCursor":
164
+ return getCursor(requireReplica().write);
165
+ // Cooperative teardown (CTC-114): roll back any open seed, release deferred reads, and close the
166
+ // DB so OPFS SyncAccessHandles are freed BEFORE the client terminates the Worker. Idempotent —
167
+ // a close with nothing open is a no-op.
168
+ case "close": {
169
+ session?.abort();
170
+ session = null;
171
+ readGate.settle();
172
+ replica?.close();
173
+ replica = null;
174
+ openedIdentity = null;
175
+ return undefined;
176
+ }
177
+ }
178
+ }
179
+ return { handle };
180
+ }
181
+ //# sourceMappingURL=worker-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-core.js","sourceRoot":"","sources":["../../../src/replica/browser/worker-core.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,16 @@
1
+ import { migrationsChangeRowShape } from "./migration-shape.js";
1
2
  import { type SqlExecutor, type IssueView, type IssueDetailView, type PullView, type ProjectView, type ProjectDetailView, type InitiativeView, type InitiativeDetailView } from "@catalyst-cloud/read-model";
2
3
  import { type AuthStrategy, type LiveSyncStatus, type LogLevel, type WebSocketFactory } from "../live-sync-client.js";
3
4
  import { type EngineFactory, type ReplicaEngine } from "./engine.js";
4
5
  import { type WriterGuardOptions } from "./writer-lock.js";
5
6
  import { type TelemetryConfig } from "../otel.js";
6
7
  /**
7
- * CTC-127: does any of the migrations applied THIS boot change a table's ROW SHAPE — i.e. add a column
8
- * (`ALTER TABLE ADD …`) or a new entity table (`CREATE TABLE`)? If so, a WARM replica's existing rows
9
- * were seeded/applied before that column existed and hold NULL for it, so `start()` forces one re-seed
10
- * to backfill. A pure `CREATE INDEX` migration changes no row shape → no re-seed. Detected by
11
- * string-matching the applied tags' SQL — drizzle-kit emits bare `ADD` and `CREATE TABLE` (the same
12
- * vocabulary @catalyst-cloud/schema's migration runner trusts). Conservative-safe: a false positive is
13
- * a harmless extra re-seed; there are no false negatives for real `ALTER TABLE ADD` / `CREATE TABLE`.
14
- * Exported for direct unit testing of the predicate.
8
+ * CTC-127's row-shape predicate. Defined in ./migration-shape.js so the BROWSER worker can use it too
9
+ * this module top-level-imports ./engine.js, which imports `node:module`, so the browser cannot
10
+ * cross-import from here. Re-exported (rather than moved outright) because it is public API and its
11
+ * unit tests import it from this path.
15
12
  */
16
- export declare function migrationsChangeRowShape(appliedTags: readonly string[]): boolean;
13
+ export { migrationsChangeRowShape };
17
14
  export interface CatalystReplicaOptions {
18
15
  /** http(s) origin incl. any path prefix (…/api/v1); the scheme is swapped to ws(s) for /connect. */
19
16
  baseUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"catalyst-replica.d.ts","sourceRoot":"","sources":["../../src/replica/catalyst-replica.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalyst-replica.d.ts","sourceRoot":"","sources":["../../src/replica/catalyst-replica.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@
18
18
  // runs the SAME @catalyst-cloud/read-model builders over the SAME @catalyst-cloud/replicate write path
19
19
  // and the SAME @catalyst-cloud/schema MIRROR_MIGRATIONS.
20
20
  import { applyMigrations, MIRROR_MIGRATIONS } from "@catalyst-cloud/schema";
21
+ import { migrationsChangeRowShape } from "./migration-shape.js";
21
22
  import { applyDelta, truncateReplica, getCursor, setCursor, } from "@catalyst-cloud/replicate";
22
23
  import { buildIssuesView, buildIssueDetail, buildPullsView, buildProjectsView, buildProjectDetail, buildInitiativesView, buildInitiativeDetail, } from "@catalyst-cloud/read-model";
23
24
  import { LiveSyncClient, stripTrailingSlashes, } from "../live-sync-client.js";
@@ -34,22 +35,12 @@ const SYNC_META_DDL = `CREATE TABLE IF NOT EXISTS sync_meta (
34
35
  * process the way host-sync's buffered `await res.text()` + `split("\n")` snapshot would. */
35
36
  const SEED_BATCH_ROWS = 1000;
36
37
  /**
37
- * CTC-127: does any of the migrations applied THIS boot change a table's ROW SHAPE — i.e. add a column
38
- * (`ALTER TABLE ADD …`) or a new entity table (`CREATE TABLE`)? If so, a WARM replica's existing rows
39
- * were seeded/applied before that column existed and hold NULL for it, so `start()` forces one re-seed
40
- * to backfill. A pure `CREATE INDEX` migration changes no row shape → no re-seed. Detected by
41
- * string-matching the applied tags' SQL — drizzle-kit emits bare `ADD` and `CREATE TABLE` (the same
42
- * vocabulary @catalyst-cloud/schema's migration runner trusts). Conservative-safe: a false positive is
43
- * a harmless extra re-seed; there are no false negatives for real `ALTER TABLE ADD` / `CREATE TABLE`.
44
- * Exported for direct unit testing of the predicate.
38
+ * CTC-127's row-shape predicate. Defined in ./migration-shape.js so the BROWSER worker can use it too
39
+ * this module top-level-imports ./engine.js, which imports `node:module`, so the browser cannot
40
+ * cross-import from here. Re-exported (rather than moved outright) because it is public API and its
41
+ * unit tests import it from this path.
45
42
  */
46
- export function migrationsChangeRowShape(appliedTags) {
47
- const byTag = MIRROR_MIGRATIONS.migrations;
48
- return appliedTags.some((tag) => {
49
- const sql = byTag[tag] ?? "";
50
- return /\bADD\b/i.test(sql) || /\bCREATE\s+TABLE\b/i.test(sql);
51
- });
52
- }
43
+ export { migrationsChangeRowShape };
53
44
  export class CatalystReplica {
54
45
  opts;
55
46
  baseUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"catalyst-replica.js","sourceRoot":"","sources":["../../src/replica/catalyst-replica.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalyst-replica.js","sourceRoot":"","sources":["../../src/replica/catalyst-replica.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CTC-127: does any of the migrations applied THIS boot change a table's ROW SHAPE — i.e. add a column
3
+ * (`ALTER TABLE … ADD …`) or a new entity table (`CREATE TABLE`)? If so, a WARM replica's existing rows
4
+ * were seeded/applied before that column existed and hold NULL for it, so the caller forces one re-seed
5
+ * to backfill. A pure `CREATE INDEX` migration changes no row shape → no re-seed. Detected by
6
+ * string-matching the applied tags' SQL — drizzle-kit emits bare `ADD` and `CREATE TABLE` (the same
7
+ * vocabulary @catalyst-cloud/schema's migration runner trusts). Conservative-safe: a false positive is
8
+ * a harmless extra re-seed; there are no false negatives for real `ALTER TABLE ADD` / `CREATE TABLE`.
9
+ */
10
+ export declare function migrationsChangeRowShape(appliedTags: readonly string[]): boolean;
11
+ //# sourceMappingURL=migration-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-shape.d.ts","sourceRoot":"","sources":["../../src/replica/migration-shape.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAST"}