@catalyst-cloud/sdk 0.8.5 → 0.8.7

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/node.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { CatalystReplica, type CatalystReplicaOptions, type CatalystReplicaReadOnlyOptions, } from "./replica/catalyst-replica.js";
1
+ export { CatalystReplica, ReplicaAccountMismatchError, type AccountSource, type CatalystReplicaOptions, type CatalystReplicaReadOnlyOptions, } from "./replica/catalyst-replica.js";
2
2
  export { bunSqliteEngine, bunSqliteReadonlyEngine, nodeSqliteEngine, nodeSqliteReadonlyEngine, betterSqlite3Engine, betterSqlite3ReadonlyEngine, autoDetectEngine, autoDetectReadonlyEngine, type ReplicaEngine, type EngineFactory, type EngineBindable, type BetterSqlite3Driver, } from "./replica/engine.js";
3
3
  export { claimWriterLock, type WriterGuardOptions, type WriterLockHandle, } from "./replica/writer-lock.js";
4
4
  export { LiveSyncClient, type AuthStrategy, type LiveSyncStatus, type LogLevel, type WebSocketLike, type WebSocketFactory, } from "./live-sync-client.js";
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,GACpC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACT,eAAe,EACf,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EAIf,2BAA2B,EAC3B,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,GACpC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACT,eAAe,EACf,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/node.js CHANGED
@@ -8,7 +8,11 @@
8
8
  //
9
9
  // The root entrypoint ("@catalyst-cloud/sdk") stays the transport-only, isomorphic surface; this
10
10
  // subpath adds the replica. Import this only from a node/bun backend.
11
- export { CatalystReplica, } from "./replica/catalyst-replica.js";
11
+ export { CatalystReplica,
12
+ // CTC-582 — exported so a caller can tell "you are pointed at the wrong tenant's database" (a
13
+ // config fault that must page a human) apart from a transient open failure (retry). A consumer
14
+ // that cannot name the difference will retry a misconfiguration forever.
15
+ ReplicaAccountMismatchError, } from "./replica/catalyst-replica.js";
12
16
  export { bunSqliteEngine, bunSqliteReadonlyEngine, nodeSqliteEngine, nodeSqliteReadonlyEngine, betterSqlite3Engine, betterSqlite3ReadonlyEngine, autoDetectEngine, autoDetectReadonlyEngine, } from "./replica/engine.js";
13
17
  export { claimWriterLock, } from "./replica/writer-lock.js";
14
18
  // Re-export the transport surface so a consumer can stay on one import.
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,gGAAgG;AAChG,uGAAuG;AACvG,qGAAqG;AACrG,sGAAsG;AACtG,sFAAsF;AACtF,EAAE;AACF,iGAAiG;AACjG,sEAAsE;AAEtE,OAAO,EACL,eAAe,GAGhB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,GAKzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,GAGhB,MAAM,0BAA0B,CAAC;AAElC,wEAAwE;AACxE,OAAO,EACL,cAAc,GAMf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,UAAU,GAKX,MAAM,YAAY,CAAC;AAEpB,kGAAkG;AAClG,sGAAsG;AACtG,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,GAIpB,MAAM,WAAW,CAAC;AAenB,+FAA+F;AAC/F,mGAAmG;AACnG,sDAAsD;AACtD,8EAA8E;AAC9E,OAAO,EAAE,YAAY,EAAyB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,gGAAgG;AAChG,uGAAuG;AACvG,qGAAqG;AACrG,sGAAsG;AACtG,sFAAsF;AACtF,EAAE;AACF,iGAAiG;AACjG,sEAAsE;AAEtE,OAAO,EACL,eAAe;AACf,8FAA8F;AAC9F,+FAA+F;AAC/F,yEAAyE;AACzE,2BAA2B,GAI5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,GAKzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,GAGhB,MAAM,0BAA0B,CAAC;AAElC,wEAAwE;AACxE,OAAO,EACL,cAAc,GAMf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,UAAU,GAKX,MAAM,YAAY,CAAC;AAEpB,kGAAkG;AAClG,sGAAsG;AACtG,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,GAIpB,MAAM,WAAW,CAAC;AAenB,+FAA+F;AAC/F,mGAAmG;AACnG,sDAAsD;AACtD,8EAA8E;AAC9E,OAAO,EAAE,YAAY,EAAyB,MAAM,wBAAwB,CAAC"}
@@ -24,6 +24,12 @@ export declare function clearCursor(db: ReplicaDb): void;
24
24
  * Apply ONE change-feed record to the replica via the shared, schema-driven write path. Returns true
25
25
  * iff a row was actually written (a stale upsert rejected by the updated_at guard, or a delete of an
26
26
  * already-absent row, returns false).
27
+ *
28
+ * `knownColumns` (CTC-603): the caller's PRAGMA-derived column set for `change.entity`
29
+ * (`OpenedReplica.knownColumnsByEntity.get(change.entity)`), overriding
30
+ * @catalyst-cloud/replicate's own bundled-schema default — see that map's doc for why. Omit (or pass
31
+ * `undefined`, the entity-not-found case) to fall back to replicate's default, same as before this
32
+ * override existed.
27
33
  */
28
- export declare function applyChange(db: ReplicaDb, change: WireChange): boolean;
34
+ export declare function applyChange(db: ReplicaDb, change: WireChange, knownColumns?: ReadonlySet<string>): boolean;
29
35
  //# sourceMappingURL=apply.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/apply.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAEnD;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7D;AAKD,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAIxD;AAED,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAEtE"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/apply.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAEnD;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7D;AAKD,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAIxD;AAED,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAE/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,UAAU,EAClB,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,OAAO,CAET"}
@@ -52,8 +52,14 @@ export function clearCursor(db) {
52
52
  * Apply ONE change-feed record to the replica via the shared, schema-driven write path. Returns true
53
53
  * iff a row was actually written (a stale upsert rejected by the updated_at guard, or a delete of an
54
54
  * already-absent row, returns false).
55
+ *
56
+ * `knownColumns` (CTC-603): the caller's PRAGMA-derived column set for `change.entity`
57
+ * (`OpenedReplica.knownColumnsByEntity.get(change.entity)`), overriding
58
+ * @catalyst-cloud/replicate's own bundled-schema default — see that map's doc for why. Omit (or pass
59
+ * `undefined`, the entity-not-found case) to fall back to replicate's default, same as before this
60
+ * override existed.
55
61
  */
56
- export function applyChange(db, change) {
57
- return applyDelta(db, change, toBindable);
62
+ export function applyChange(db, change, knownColumns) {
63
+ return applyDelta(db, change, toBindable, { knownColumns });
58
64
  }
59
65
  //# sourceMappingURL=apply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/replica/browser/apply.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,gGAAgG;AAChG,sGAAsG;AACtG,yGAAyG;AACzG,mGAAmG;AACnG,yFAAyF;AACzF,EAAE;AACF,wGAAwG;AACxG,+FAA+F;AAC/F,EAAE;AACF,yGAAyG;AAEzG,OAAO,EACL,UAAU,EACV,SAAS,IAAI,gBAAgB,EAC7B,SAAS,IAAI,gBAAgB,EAC7B,eAAe,IAAI,eAAe,GACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAa;IAC3C,eAAe,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,SAAS,CAAC,EAAa;IACrC,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,EAAa,EAAE,MAAc;IACrD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,iGAAiG;AACjG,MAAM,UAAU,WAAW,CAAC,EAAa;IACvC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,WAAW,CAAC,EAAa,EAAE,QAAgB;IACzD,EAAE,CAAC,GAAG,CACJ,wGAAwG,EACxG,YAAY,EACZ,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAa;IACvC,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAAa,EAAE,MAAkB;IAC3D,OAAO,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/replica/browser/apply.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,gGAAgG;AAChG,sGAAsG;AACtG,yGAAyG;AACzG,mGAAmG;AACnG,yFAAyF;AACzF,EAAE;AACF,wGAAwG;AACxG,+FAA+F;AAC/F,EAAE;AACF,yGAAyG;AAEzG,OAAO,EACL,UAAU,EACV,SAAS,IAAI,gBAAgB,EAC7B,SAAS,IAAI,gBAAgB,EAC7B,eAAe,IAAI,eAAe,GACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAa;IAC3C,eAAe,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,SAAS,CAAC,EAAa;IACrC,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,EAAa,EAAE,MAAc;IACrD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,iGAAiG;AACjG,MAAM,UAAU,WAAW,CAAC,EAAa;IACvC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,WAAW,CAAC,EAAa,EAAE,QAAgB;IACzD,EAAE,CAAC,GAAG,CACJ,wGAAwG,EACxG,YAAY,EACZ,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAa;IACvC,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,EAAa,EACb,MAAkB,EAClB,YAAkC;IAElC,OAAO,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AAC9D,CAAC"}
@@ -11,6 +11,10 @@ export interface ReplicaDb {
11
11
  run(sql: string, ...bindings: SqlValue[]): number;
12
12
  /** Run a single-row query; returns the first row as an object, or undefined. */
13
13
  get(sql: string, ...bindings: SqlValue[]): Record<string, SqlValue> | undefined;
14
+ /** Run a MULTI-row query; returns every row as an object. CTC-603: the port capability
15
+ * `buildKnownColumnsByTable` needs to enumerate `sqlite_master` + run `PRAGMA table_info(...)` —
16
+ * the node engine's `ReplicaEngine.all` twin. */
17
+ all(sql: string, ...bindings: SqlValue[]): Record<string, SqlValue>[];
14
18
  /** Wrap `fn` in a transaction (BEGIN/COMMIT; ROLLBACK + rethrow on error). */
15
19
  transaction<T>(fn: () => T): T;
16
20
  }
@@ -26,6 +30,14 @@ export interface OpenedReplica {
26
30
  readonly write: ReplicaDb;
27
31
  /** the underlying OO1 db handle (for close / capacity introspection). */
28
32
  readonly db: Database;
33
+ /**
34
+ * CTC-603: per-entity `PRAGMA table_info`-derived column sets — the ACTUAL local table shape, built
35
+ * ONCE here (right after migrations run), not @catalyst-cloud/replicate's (or this SDK's own)
36
+ * bundled @catalyst-cloud/schema copy. Passed as `ApplyOptions.knownColumns` at every `applyChange`
37
+ * call site (worker-core.ts) so a dropped/unknown column reflects what SQLite itself reports the
38
+ * table having, not which package's schema version created it.
39
+ */
40
+ readonly knownColumnsByEntity: ReadonlyMap<string, ReadonlySet<string>>;
29
41
  /** release the handle (under OPFS SAHPool this frees the SyncAccessHandles for another tab). */
30
42
  close(): void;
31
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/ports.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAIxE;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAClD,gFAAgF;IAChF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;IAChF,8EAA8E;IAC9E,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAED;;wCAEwC;AACxC,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAa/C;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,gGAAgG;IAChG,KAAK,IAAI,IAAI,CAAC;CACf;AAuBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,CAsF9D"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/replica/browser/ports.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKxE;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAClD,gFAAgF;IAChF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;IAChF;;sDAEkD;IAClD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;IACtE,8EAA8E;IAC9E,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAED;;wCAEwC;AACxC,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAa/C;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,gGAAgG;IAChG,KAAK,IAAI,IAAI,CAAC;CACf;AAuBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,CAkG9D"}
@@ -14,6 +14,7 @@
14
14
  // • ReplicaDb (write) — run/get with positional bindings, for the apply path (apply.ts).
15
15
  import { applyMigrations, MIRROR_MIGRATIONS } from "@catalyst-cloud/schema";
16
16
  import { migrationsChangeRowShape } from "../migration-shape.js";
17
+ import { buildKnownColumnsByTable } from "../known-columns.js";
17
18
  /** Coerce a wire JSON value to a sqlite-wasm-bindable scalar. Booleans → 0/1, nested objects → JSON
18
19
  * text, undefined/null → null. Mirrors the node engine's `toBindable` so both replicas store the
19
20
  * same bytes for the same wire row. */
@@ -88,6 +89,11 @@ export function buildOpenedReplica(db) {
88
89
  });
89
90
  return rows[0];
90
91
  },
92
+ all: (sql, ...bindings) => db.exec(sql, {
93
+ bind: bindArgs(bindings),
94
+ rowMode: "object",
95
+ returnValue: "resultRows",
96
+ }),
91
97
  transaction: (fn) => {
92
98
  db.exec("BEGIN");
93
99
  try {
@@ -134,10 +140,15 @@ export function buildOpenedReplica(db) {
134
140
  if (readCursorRow(db) != null && migrationsChangeRowShape(appliedTags)) {
135
141
  db.exec("DELETE FROM sync_meta WHERE key = 'cursor'");
136
142
  }
143
+ // CTC-603: build the PRAGMA-derived known-columns map from the table shape migrations just produced
144
+ // — see OpenedReplica.knownColumnsByEntity's doc. `write` is already fully constructed above, so its
145
+ // `all` port is usable here.
146
+ const knownColumnsByEntity = buildKnownColumnsByTable(write);
137
147
  return {
138
148
  read,
139
149
  write,
140
150
  db,
151
+ knownColumnsByEntity,
141
152
  close: () => db.close(),
142
153
  };
143
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../src/replica/browser/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../src/replica/browser/ports.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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,CA8LhE"}
@@ -88,7 +88,9 @@ export function createWorkerCore(open) {
88
88
  const r = requireReplica();
89
89
  session = new SeedSession(r.write, {
90
90
  truncate: truncateReplica,
91
- apply: applyChange,
91
+ // CTC-603: PRAGMA-derived knownColumns for the batch row's own entity, looked up per row —
92
+ // see OpenedReplica.knownColumnsByEntity's doc.
93
+ apply: (db, rec) => applyChange(db, rec, r.knownColumnsByEntity.get(rec.entity)),
92
94
  setCursor,
93
95
  });
94
96
  session.begin();
@@ -137,7 +139,8 @@ export function createWorkerCore(open) {
137
139
  // order, so an oldie always trails the original it duplicates.
138
140
  if (rec.seq <= maxSeq)
139
141
  continue;
140
- if (applyChange(r.write, rec))
142
+ // CTC-603: PRAGMA-derived knownColumns for this delta's own entity.
143
+ if (applyChange(r.write, rec, r.knownColumnsByEntity.get(rec.entity)))
141
144
  applied++;
142
145
  maxSeq = rec.seq;
143
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker-core.js","sourceRoot":"","sources":["../../../src/replica/browser/worker-core.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,qGAAqG;AACrG,uGAAuG;AACvG,uGAAuG;AACvG,qGAAqG;AACrG,qDAAqD;AACrD,EAAE;AACF,mGAAmG;AACnG,qGAAqG;AACrG,iDAAiD;AAEjD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,eAAe,EACf,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAenD,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,qGAAqG;IACrG,IAAI,OAAO,GAAyB,IAAI,CAAC;IAEzC,oGAAoG;IACpG,IAAI,cAAc,GAAkB,IAAI,CAAC;IAEzC,wGAAwG;IACxG,IAAI,OAAO,GAAuB,IAAI,CAAC;IAEvC;0FACsF;IACtF,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAEpC,yGAAyG;IACzG,SAAS,cAAc;QACrB,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,OAAuB;QAC3C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,6FAA6F;gBAC7F,0FAA0F;gBAC1F,2FAA2F;gBAC3F,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,cAAc,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACxC,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;oBACJ,CAAC;oBACD,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9B,2FAA2F;gBAC3F,6FAA6F;gBAC7F,uFAAuF;gBACvF,0FAA0F;gBAC1F,6FAA6F;gBAC7F,mDAAmD;gBACnD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChC,0FAA0F;oBAC1F,6FAA6F;oBAC7F,2FAA2F;oBAC3F,4FAA4F;oBAC5F,8FAA8F;oBAC9F,2FAA2F;oBAC3F,mCAAmC;oBACnC,EAAE;oBACF,2FAA2F;oBAC3F,4FAA4F;oBAC5F,4FAA4F;oBAC5F,wFAAwF;oBACxF,6FAA6F;oBAC7F,EAAE;oBACF,2FAA2F;oBAC3F,MAAM,CAAC,GAAG,OAAO,CAAC;oBAClB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;wBACvB,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACzB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACrB,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAClC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,kGAAkG;YAClG,6FAA6F;YAC7F,iEAAiE;YACjE,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,gGAAgG;gBAChG,8FAA8F;gBAC9F,2FAA2F;gBAC3F,4FAA4F;gBAC5F,8EAA8E;gBAC9E,IAAI,OAAO;oBACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;gBAC3B,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE;oBACjC,QAAQ,EAAE,eAAe;oBACzB,KAAK,EAAE,WAAW;oBAClB,SAAS;iBACV,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC5D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC9C,OAAO,GAAG,IAAI,CAAC;gBACf,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,4EAA4E;gBAC/F,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,OAAO,EAAE,KAAK,EAAE,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;gBACf,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,8EAA8E;gBACjG,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;oBACvB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBAClC,oFAAoF;wBACpF,qFAAqF;wBACrF,2FAA2F;wBAC3F,wFAAwF;wBACxF,4FAA4F;wBAC5F,sFAAsF;wBACtF,wFAAwF;wBACxF,EAAE;wBACF,yFAAyF;wBACzF,0FAA0F;wBAC1F,0FAA0F;wBAC1F,2FAA2F;wBAC3F,uFAAuF;wBACvF,+DAA+D;wBAC/D,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM;4BAAE,SAAS;wBAChC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;4BAAE,OAAO,EAAE,CAAC;wBACzC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;oBACnB,CAAC;oBACD,4FAA4F;oBAC5F,+EAA+E;oBAC/E,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC/D,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,iGAAiG;YACjG,iGAAiG;YACjG,gGAAgG;YAChG,KAAK,aAAa;gBAChB,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAC9C,OAAO,eAAe,CACpB,cAAc,EAAE,CAAC,IAAI,EACrB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,CACf,CAAC;YAEJ,KAAK,kBAAkB;gBACrB,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAC9C,OAAO,gBAAgB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAErE,KAAK,YAAY;gBACf,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAC9C,OAAO,cAAc,CACnB,cAAc,EAAE,CAAC,IAAI,EACrB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,CACf,CAAC;YAEJ,KAAK,WAAW;gBACd,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;YAE3C,iGAAiG;YACjG,+FAA+F;YAC/F,wCAAwC;YACxC,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,OAAO,EAAE,KAAK,EAAE,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;gBACf,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,KAAK,EAAE,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;gBACf,cAAc,GAAG,IAAI,CAAC;gBACtB,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"worker-core.js","sourceRoot":"","sources":["../../../src/replica/browser/worker-core.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,34 @@ import { type AuthStrategy, type LiveSyncStatus, type LogLevel, type WebSocketFa
4
4
  import { type EngineFactory, type ReplicaEngine } from "./engine.js";
5
5
  import { type WriterGuardOptions } from "./writer-lock.js";
6
6
  import { type TelemetryConfig } from "../otel.js";
7
+ /**
8
+ * How confident the caller is that `account` is the account this replica should hold.
9
+ *
10
+ * `"declared"` — a human, a config file, or an explicit environment variable named it.
11
+ * `"default"` — nothing named it; the caller fell back to a built-in.
12
+ */
13
+ export type AccountSource = "declared" | "default";
14
+ /**
15
+ * Thrown when a replica file already belongs to a DIFFERENT account than the one configured.
16
+ *
17
+ * Its own class, not a bare Error: a caller (host-sync, a supervisor) must be able to tell "you are
18
+ * pointed at the wrong tenant's database" apart from a transient open failure, because the remedies
19
+ * are opposite — one is a config fix that must page a human, the other is a retry.
20
+ */
21
+ export declare class ReplicaAccountMismatchError extends Error {
22
+ readonly dbPath: string;
23
+ readonly storedAccount: string;
24
+ readonly configuredAccount: string;
25
+ /** How the STORED account got there — `declared` (someone asserted it) or `default` (nobody did).
26
+ * A caller needs this to tell "you are pointed at another tenant's replica" from "two builds
27
+ * disagree about the fallback account", which have different remedies. */
28
+ readonly storedAccountSource: AccountSource;
29
+ constructor(dbPath: string, storedAccount: string, configuredAccount: string,
30
+ /** How the STORED account got there — `declared` (someone asserted it) or `default` (nobody did).
31
+ * A caller needs this to tell "you are pointed at another tenant's replica" from "two builds
32
+ * disagree about the fallback account", which have different remedies. */
33
+ storedAccountSource?: AccountSource);
34
+ }
7
35
  /**
8
36
  * CTC-127's row-shape predicate. Defined in ./migration-shape.js so the BROWSER worker can use it too
9
37
  * — this module top-level-imports ./engine.js, which imports `node:module`, so the browser cannot
@@ -16,6 +44,23 @@ export interface CatalystReplicaOptions {
16
44
  baseUrl: string;
17
45
  /** Tenant id = mirror name → `?account=` on every feed request. */
18
46
  account: string;
47
+ /**
48
+ * CTC-582 — whether `account` above was DECLARED (a human, a config file, or an explicit env var
49
+ * named it) or merely DEFAULTED (nothing named it; you fell back to a built-in).
50
+ *
51
+ * ⛔ SET THIS TO `"declared"` ONLY WHEN IT IS TRUE. It is what licenses the account fence to REFUSE,
52
+ * and a refusal on a value nobody chose holds a host to a fallback it never agreed to. Measured on
53
+ * the live fleet during review: `cloud-sync.mjs` resolves
54
+ * `process.env.CATALYST_CLOUD_ACCOUNT || "tenant-0"` — env-only, never consulting config — and that
55
+ * variable is unset everywhere, so an unconditional stamp would have written `tenant-0` on 100% of
56
+ * hosts as though someone had asked for it.
57
+ *
58
+ * ⚠️ Omitted means `"default"`, the SAFE direction: a caller who really did declare but forgot this
59
+ * flag gets a weaker fence (a mismatch re-seeds instead of refusing), which costs strictness. The
60
+ * opposite default would convert every silent fallback in every existing caller into a permanent
61
+ * assertion, which costs correctness.
62
+ */
63
+ accountSource?: AccountSource;
19
64
  /** How to authorize: {kind:'token',token} (host bearer rides /connect as ?token= and /snapshot as
20
65
  * Authorization) | {kind:'cookie'} (same-origin session cookie). */
21
66
  auth: AuthStrategy;
@@ -164,10 +209,22 @@ export declare class CatalystReplica {
164
209
  /** CTC-127: `table.column` keys already warned about (a mirror-ahead column this client's schema
165
210
  * lacks), so the per-row drop signal warns ONCE, not per delta (a drifted seed would else spam). */
166
211
  private readonly warnedDrift;
167
- /** CTC-127: hoisted apply options passed to every applyDelta — the forward-compat column filter is
168
- * automatic inside @catalyst-cloud/replicate; this only wires the warn-once drift signal. Hoisted so
169
- * the synchronous applyFrame/seed hot paths allocate no per-row options object. */
212
+ /**
213
+ * CTC-603: per-entity `PRAGMA table_info`-derived column sets, built ONCE in `start()` right after
214
+ * `applyMigrations` — the ACTUAL local table shape, not @catalyst-cloud/replicate's (or this SDK's
215
+ * own) bundled @catalyst-cloud/schema copy. Looked up per `applyDelta` call via {@link applyOptsFor}.
216
+ * Empty (never populated) in read-only mode, where the write path is unreachable anyway.
217
+ */
218
+ private knownColumnsByEntity;
219
+ /** CTC-127/CTC-603: hoisted apply options object, mutated (not reallocated) per call by
220
+ * {@link applyOptsFor} — the forward-compat column filter now gets the PRAGMA-derived override for
221
+ * the delta's own entity, plus the warn-once drift signal. Hoisted so the synchronous
222
+ * applyFrame/seed hot paths allocate no per-row options object. */
170
223
  private readonly applyOpts;
224
+ /** Resolve {@link applyOpts} for one delta's entity: sets `knownColumns` to that entity's
225
+ * PRAGMA-derived set (or `undefined` when the entity's table wasn't found locally, which falls
226
+ * back to replicate's own bundled default — the safe direction, never stripping a row to PK-only). */
227
+ private applyOptsFor;
171
228
  constructor(opts: CatalystReplicaOptions);
172
229
  /**
173
230
  * Open a CatalystReplica as a READ-ONLY READER over a file another process owns as the WRITER
@@ -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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"}
@@ -19,6 +19,7 @@
19
19
  // and the SAME @catalyst-cloud/schema MIRROR_MIGRATIONS.
20
20
  import { applyMigrations, MIRROR_MIGRATIONS } from "@catalyst-cloud/schema";
21
21
  import { migrationsChangeRowShape } from "./migration-shape.js";
22
+ import { buildKnownColumnsByTable } from "./known-columns.js";
22
23
  import { applyDelta, truncateReplica, getCursor, setCursor, } from "@catalyst-cloud/replicate";
23
24
  import { buildIssuesView, buildIssueDetail, buildPullsView, buildProjectsView, buildProjectDetail, buildInitiativesView, buildInitiativeDetail, } from "@catalyst-cloud/read-model";
24
25
  import { LiveSyncClient, stripTrailingSlashes, } from "../live-sync-client.js";
@@ -31,6 +32,88 @@ import { NOOP_TELEMETRY, createTelemetry, CATALYST_ATTR, REPLICA_METRIC, REPLICA
31
32
  const SYNC_META_DDL = `CREATE TABLE IF NOT EXISTS sync_meta (
32
33
  key TEXT PRIMARY KEY, value TEXT
33
34
  );`;
35
+ /** `sync_meta` key naming the account whose rows this file holds (CTC-582). */
36
+ const ACCOUNT_KEY = "account";
37
+ /**
38
+ * `sync_meta` key recording HOW the stamped account was arrived at (CTC-582 review, CTL).
39
+ *
40
+ * ⛔ THE STAMP WITHOUT THIS IS A TRAP, AND IT WAS MEASURED ON THE LIVE FLEET. The host's
41
+ * `cloud-sync.mjs` resolves `process.env.CATALYST_CLOUD_ACCOUNT || "tenant-0"` — env-only, it never
42
+ * consults config — and that variable is unset on every host. So the first open under a
43
+ * stamp-unconditionally build would have written `tenant-0` on 100% of the fleet: a value NOBODY
44
+ * DECLARED. The damage lands later, when a host legitimately becomes `tenant-3` and the fence refuses
45
+ * it from its OWN replica on the strength of an assertion no human or config ever made.
46
+ *
47
+ * ⭐ That is the defect this whole ticket is about, turned on itself: something meaning "nobody said"
48
+ * recorded as if it meant "somebody said this". A stamp that cannot express its own confidence is not
49
+ * a fence, it is a trap that happens to be pointed the right way today.
50
+ */
51
+ const ACCOUNT_SOURCE_KEY = "account_source";
52
+ /**
53
+ * ⚠️ ABSENT MEANS `"default"`, NOT `"declared"` — the safe direction on omission.
54
+ *
55
+ * A caller that genuinely declared its account but forgets this option gets the WEAKER fence (a
56
+ * mismatch re-seeds instead of refusing): a lost opportunity to catch a misconfiguration loudly, but
57
+ * never wrong data. The opposite default converts every silent fallback in every existing caller into
58
+ * a permanent assertion — which is exactly the fleet-wide trap described above. When one direction
59
+ * costs strictness and the other costs correctness, omission must land on the first.
60
+ */
61
+ const DEFAULT_ACCOUNT_SOURCE = "default";
62
+ /**
63
+ * Thrown when a replica file already belongs to a DIFFERENT account than the one configured.
64
+ *
65
+ * Its own class, not a bare Error: a caller (host-sync, a supervisor) must be able to tell "you are
66
+ * pointed at the wrong tenant's database" apart from a transient open failure, because the remedies
67
+ * are opposite — one is a config fix that must page a human, the other is a retry.
68
+ */
69
+ export class ReplicaAccountMismatchError extends Error {
70
+ dbPath;
71
+ storedAccount;
72
+ configuredAccount;
73
+ storedAccountSource;
74
+ constructor(dbPath, storedAccount, configuredAccount,
75
+ /** How the STORED account got there — `declared` (someone asserted it) or `default` (nobody did).
76
+ * A caller needs this to tell "you are pointed at another tenant's replica" from "two builds
77
+ * disagree about the fallback account", which have different remedies. */
78
+ storedAccountSource = "declared") {
79
+ super(`CatalystReplica: refusing to open ${dbPath} — it holds account "${storedAccount}" ` +
80
+ `(${storedAccountSource}), but this writer is configured for "${configuredAccount}". ` +
81
+ (storedAccountSource === "default"
82
+ ? `Neither account was declared, so nothing can be safely preferred — set ` +
83
+ `CATALYST_CLOUD_ACCOUNT (or the config equivalent) to say which is right. `
84
+ : `Check CATALYST_REPLICA_DB and the account this process was started for. `) +
85
+ `Nothing was written and the existing replica was left intact.`);
86
+ this.dbPath = dbPath;
87
+ this.storedAccount = storedAccount;
88
+ this.configuredAccount = configuredAccount;
89
+ this.storedAccountSource = storedAccountSource;
90
+ this.name = "ReplicaAccountMismatchError";
91
+ }
92
+ }
93
+ /**
94
+ * Read the account stamp WITHOUT assuming `sync_meta` exists.
95
+ *
96
+ * ⚠️ This runs before `applyMigrations` and before `SYNC_META_DDL`, so on a cold file the table is
97
+ * genuinely absent and a bare SELECT would throw. Probing `sqlite_master` first keeps "no table yet"
98
+ * an ordinary answer instead of an exception that a `catch` would have to guess the meaning of.
99
+ */
100
+ function readAccountStamp(engine) {
101
+ const table = engine.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'sync_meta'");
102
+ if (table == null)
103
+ return null;
104
+ const read = (key) => {
105
+ const row = engine.get("SELECT value FROM sync_meta WHERE key = ?", key);
106
+ const v = row?.value;
107
+ return typeof v === "string" && v !== "" ? v : null;
108
+ };
109
+ const account = read(ACCOUNT_KEY);
110
+ if (account == null)
111
+ return null;
112
+ // ⚠️ A stamp with no source is one written by 0.8.7 before this review landed (unpublished, but a
113
+ // dev machine may hold one). Read it as `default` — the weaker claim — because we cannot know it
114
+ // was declared, and reading an unknown as the stronger claim is the very mistake being fixed.
115
+ return { account, source: read(ACCOUNT_SOURCE_KEY) === "declared" ? "declared" : "default" };
116
+ }
34
117
  /** Rows per streamed seed transaction — bounds memory + fsync so a large tenant never OOMs the node/bun
35
118
  * process the way host-sync's buffered `await res.text()` + `split("\n")` snapshot would. */
36
119
  const SEED_BATCH_ROWS = 1000;
@@ -87,12 +170,27 @@ export class CatalystReplica {
87
170
  /** CTC-127: `table.column` keys already warned about (a mirror-ahead column this client's schema
88
171
  * lacks), so the per-row drop signal warns ONCE, not per delta (a drifted seed would else spam). */
89
172
  warnedDrift = new Set();
90
- /** CTC-127: hoisted apply options passed to every applyDelta — the forward-compat column filter is
91
- * automatic inside @catalyst-cloud/replicate; this only wires the warn-once drift signal. Hoisted so
92
- * the synchronous applyFrame/seed hot paths allocate no per-row options object. */
173
+ /**
174
+ * CTC-603: per-entity `PRAGMA table_info`-derived column sets, built ONCE in `start()` right after
175
+ * `applyMigrations` — the ACTUAL local table shape, not @catalyst-cloud/replicate's (or this SDK's
176
+ * own) bundled @catalyst-cloud/schema copy. Looked up per `applyDelta` call via {@link applyOptsFor}.
177
+ * Empty (never populated) in read-only mode, where the write path is unreachable anyway.
178
+ */
179
+ knownColumnsByEntity = new Map();
180
+ /** CTC-127/CTC-603: hoisted apply options object, mutated (not reallocated) per call by
181
+ * {@link applyOptsFor} — the forward-compat column filter now gets the PRAGMA-derived override for
182
+ * the delta's own entity, plus the warn-once drift signal. Hoisted so the synchronous
183
+ * applyFrame/seed hot paths allocate no per-row options object. */
93
184
  applyOpts = {
94
185
  onDroppedColumns: (table, dropped) => this.reportDroppedColumns(table, dropped),
95
186
  };
187
+ /** Resolve {@link applyOpts} for one delta's entity: sets `knownColumns` to that entity's
188
+ * PRAGMA-derived set (or `undefined` when the entity's table wasn't found locally, which falls
189
+ * back to replicate's own bundled default — the safe direction, never stripping a row to PK-only). */
190
+ applyOptsFor(entity) {
191
+ this.applyOpts.knownColumns = this.knownColumnsByEntity.get(entity);
192
+ return this.applyOpts;
193
+ }
96
194
  constructor(opts) {
97
195
  this.opts = opts;
98
196
  this.baseUrl = stripTrailingSlashes(opts.baseUrl);
@@ -152,6 +250,67 @@ export class CatalystReplica {
152
250
  this.writerLock = claimWriterLock(this.opts.dbPath, this.opts.writerGuard ?? {}, this.log);
153
251
  const engine = await this.resolveEngine();
154
252
  this.engine = engine;
253
+ // ── CTC-582: THE ACCOUNT FENCE ────────────────────────────────────────────────────────────────
254
+ //
255
+ // ⛔ THIS RUNS BEFORE `applyMigrations`, AND THAT ORDERING IS THE POINT. The acceptance criterion
256
+ // is that opening someone else's replica "refuses loudly and writes NOTHING". Migrations write —
257
+ // so a fence placed after them would already have altered another tenant's file before deciding
258
+ // it had no right to. There is nothing to read here that needs migrating first: the stamp lives
259
+ // in `sync_meta`, which is host-only bookkeeping, and `readAccountStamp` tolerates its absence.
260
+ //
261
+ // ⛔ AND IT REFUSES RATHER THAN REPAIRING. Re-seeding "to fix it" would destroy the other tenant's
262
+ // replica to resolve OUR misconfiguration — deleting real data to paper over a path typo.
263
+ //
264
+ // WHY THIS EXISTS AT ALL: today's fixed `~/catalyst/catalyst-replica.db` makes a wrong path
265
+ // harmless (one path, one file, everyone correct). CTL-1893 derives the path from the account, at
266
+ // which point a stale launchd plist or a typo'd override silently points account B's writer at
267
+ // account A's file — and the single-writer lock CANNOT object, because it is claimed as
268
+ // `dbPath + '.writer.lock'`: same path, same lock. It looks like correct exclusion while mixing
269
+ // tenants, and the output is plausible data rather than an error.
270
+ //
271
+ // ⚠️ COMPLEMENTARY TO CTL's HOST-SIDE GUARD, NOT A DUPLICATE OF IT. That guard compares an
272
+ // explicit `CATALYST_REPLICA_DB` against the path derived for the resolved account: it fails
273
+ // earlier and more legibly, using only host-local information. This one catches what no amount of
274
+ // host-local config checking can see — TWO DIFFERENT HOSTS sharing ONE file, each correctly
275
+ // configured on its own terms. Only the database knows whose data it holds.
276
+ // THE DECISION IS MADE HERE, IN FULL, AND WRITES NOTHING. Only its *consequences* are applied
277
+ // after the migrations below — because every refusal must leave the file byte-identical, and
278
+ // migrations write. Deciding in one place also keeps the four outcomes legible side by side
279
+ // instead of split across the migration boundary.
280
+ const stored = readAccountStamp(engine);
281
+ const mySource = this.opts.accountSource ?? DEFAULT_ACCOUNT_SOURCE;
282
+ /**
283
+ * `stamp` — no stamp yet: adopt this file.
284
+ * `keep` — already ours; nothing to do (or only a `default` → `declared` upgrade).
285
+ * `reseed` — the stamp is a DEFAULT that disagrees with a DECLARED account: a legitimate
286
+ * transition, so wipe and cold-seed rather than rename or refuse.
287
+ * `refuse` — either a DECLARED stamp disagrees (someone asserted this file is another
288
+ * tenant's), or two DEFAULTS disagree (nobody asserted anything, so nothing
289
+ * licenses deleting either).
290
+ */
291
+ const verdict = stored == null
292
+ ? "stamp"
293
+ : stored.account === this.opts.account
294
+ ? "keep"
295
+ : stored.source === "declared" || mySource !== "declared"
296
+ ? "refuse"
297
+ : "reseed";
298
+ if (verdict === "refuse") {
299
+ // Give the file back untouched: drop the handle and the lock before throwing, so a supervisor
300
+ // that restarts us doesn't leave a stale lock sitting on another tenant's replica.
301
+ this.log("error", "replica account mismatch — refusing to open", {
302
+ dbPath: this.opts.dbPath,
303
+ storedAccount: stored.account,
304
+ storedSource: stored.source,
305
+ configuredAccount: this.opts.account,
306
+ configuredSource: mySource,
307
+ });
308
+ engine.close();
309
+ this.engine = null;
310
+ this.writerLock?.release();
311
+ this.writerLock = null;
312
+ throw new ReplicaAccountMismatchError(this.opts.dbPath, stored.account, this.opts.account, stored.source);
313
+ }
155
314
  this.writeDb = {
156
315
  run: (sql, ...bindings) => engine.run(sql, ...bindings),
157
316
  get: (sql, ...bindings) => engine.get(sql, ...bindings),
@@ -168,6 +327,86 @@ export class CatalystReplica {
168
327
  };
169
328
  const { appliedTags } = applyMigrations(migrationDb, MIRROR_MIGRATIONS);
170
329
  engine.exec(SYNC_META_DDL);
330
+ // CTC-582, the other half: ADOPT an unstamped replica — never reject one.
331
+ //
332
+ // ⛔ ABSENT IS NOT MISMATCHED. Every replica seeded before this shipped has no stamp, so treating
333
+ // a missing one as a conflict would refuse to open on every existing host the moment they
334
+ // upgrade — bricking the fleet to protect against a hazard that does not exist yet.
335
+ //
336
+ // ⚠️ THE BROWSER FENCE DOES THE OPPOSITE ON PURPOSE, AND THE TWO MUST NOT BE "HARMONISED".
337
+ // `browser/worker-core.ts` treats `stored === null` as a mismatch and WIPES — correct there, and
338
+ // corrected TO that during CTC-114 review. The threat models genuinely differ:
339
+ //
340
+ // • Browser: dbPath/directory default to constants, so every tenant on an origin shares ONE
341
+ // OPFS database. A null stamp there may well be a different cookie user's data, and the cost
342
+ // of being wrong is a truncate over tables that re-seed from the network anyway.
343
+ // • Node: an operator-chosen file on one host. A null stamp means "written before this feature
344
+ // existed", the data may be very large, and the cost of being wrong is deleting a real
345
+ // tenant's replica — which is also why the MISMATCH path above refuses instead of wiping.
346
+ //
347
+ // Making either side match the other re-opens the hole it was written to close. If you are here
348
+ // to unify them, the thing to unify is the doc, not the behaviour.
349
+ //
350
+ // ⚠️ RESIDUAL, STATED SO IT IS NOT MISTAKEN FOR COVERAGE: adoption cannot retroactively verify an
351
+ // unstamped file. A pre-existing replica sitting at a wrong path is adopted, not caught. The
352
+ // fence protects everything from its first stamp onward; it cannot audit the past. CTL's
353
+ // host-side path guard is what covers that case.
354
+ const writeStamp = () => {
355
+ engine.run("INSERT INTO sync_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value", ACCOUNT_KEY, this.opts.account);
356
+ engine.run("INSERT INTO sync_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value", ACCOUNT_SOURCE_KEY, mySource);
357
+ };
358
+ if (verdict === "stamp") {
359
+ writeStamp();
360
+ // Loud only when adopting a WARM replica — a cold file being stamped is the ordinary first boot
361
+ // and does not deserve a line in the log every time.
362
+ if (getCursor(this.writeDb) != null) {
363
+ this.log("info", "adopting an unstamped replica — stamping it with this account", {
364
+ dbPath: this.opts.dbPath,
365
+ account: this.opts.account,
366
+ accountSource: mySource,
367
+ });
368
+ }
369
+ }
370
+ else if (verdict === "keep") {
371
+ // Upgrade `default` → `declared` when the caller now names the account: a declaration CONFIRMS
372
+ // what was previously only a fallback, and from here the fence may refuse on it. Never
373
+ // downgrade — a declaration already made is not unmade by a later caller that forgot to say.
374
+ if (stored.source === "default" && mySource === "declared")
375
+ writeStamp();
376
+ }
377
+ else {
378
+ // ── verdict === "reseed": a DEFAULT stamp yielding to a DECLARED account. ────────────────────
379
+ //
380
+ // Nobody ever asserted the stored value, so refusing would hold this host to a fallback it never
381
+ // agreed to — the fleet-wide trap `ACCOUNT_SOURCE_KEY` exists to prevent.
382
+ //
383
+ // ⛔ BUT RE-LABELLING ALONE WOULD BE WORSE THAN EITHER. The rows in this file were fetched for
384
+ // the STORED account; stamping the new name over them would leave real data from account A under
385
+ // a stamp that says B — a mislabelled replica every later check believes. CTL's review proposed
386
+ // "a declared value may overwrite a defaulted one exactly once", which is right about the STAMP;
387
+ // this is the part that makes it safe about the DATA. The transition is a wipe, not a rename.
388
+ //
389
+ // ⚠️ THIS IS THE ONLY PATH THAT DELETES ROWS, AND ITS LICENCE IS PROVENANCE — we know nobody
390
+ // claimed them. A `declared` mismatch still REFUSES rather than wiping, because there the rows
391
+ // may be another tenant's genuine replica; and two disagreeing DEFAULTS refuse too, because
392
+ // nothing licenses preferring either.
393
+ //
394
+ // ONE transaction, so a crash mid-wipe can never leave rows from A under a stamp saying B — the
395
+ // same reason the browser fence wraps its wipe (browser/worker-core.ts).
396
+ this.log("warn", "replica was stamped from a DEFAULTED account and this one is declared — re-seeding it", {
397
+ dbPath: this.opts.dbPath,
398
+ storedAccount: stored.account,
399
+ configuredAccount: this.opts.account,
400
+ });
401
+ engine.transaction(() => {
402
+ truncateReplica(this.writeDb);
403
+ engine.run("DELETE FROM sync_meta WHERE key = 'cursor'");
404
+ writeStamp();
405
+ });
406
+ }
407
+ // CTC-603: build the PRAGMA-derived known-columns map from the table shape migrations just
408
+ // produced — the ACTUAL local shape, not any package's bundled schema. See applyOptsFor's doc.
409
+ this.knownColumnsByEntity = buildKnownColumnsByTable(engine);
171
410
  // CTC-127 auto-reseed: a migration that CHANGES ROW SHAPE (adds a column, or a new entity table)
172
411
  // just ran on a WARM replica → existing rows lack the new column's values (they were seeded/applied
173
412
  // before the column existed; the forward-compat filter dropped it). Force ONE full re-seed to
@@ -503,7 +742,7 @@ export class CatalystReplica {
503
742
  // stale-guard (`false`) — the applied-vs-skipped signal (CTL-1402).
504
743
  let written = false;
505
744
  engine.transaction(() => {
506
- written = applyDelta(writeDb, { entity: frame.entity, op: frame.op, row: frame.row ?? {}, entityId: frame.entityId }, engine.toBindable, this.applyOpts);
745
+ written = applyDelta(writeDb, { entity: frame.entity, op: frame.op, row: frame.row ?? {}, entityId: frame.entityId }, engine.toBindable, this.applyOptsFor(frame.entity));
507
746
  // Advance to the seq we SAW (not just applied), so a stale-but-newer-seq delta still moves the
508
747
  // cursor forward and a reconnect doesn't re-request it. Safe ONLY because the transport now
509
748
  // guarantees contiguity (CTL-1402): LiveSyncClient never delivers a frame beyond
@@ -673,7 +912,7 @@ export class CatalystReplica {
673
912
  for (const rec of rows) {
674
913
  if (rec.entity === undefined)
675
914
  continue;
676
- applyDelta(writeDb, { entity: rec.entity, op: rec.op ?? "upsert", row: rec.row ?? {} }, engine.toBindable, this.applyOpts);
915
+ applyDelta(writeDb, { entity: rec.entity, op: rec.op ?? "upsert", row: rec.row ?? {} }, engine.toBindable, this.applyOptsFor(rec.entity));
677
916
  }
678
917
  });
679
918
  });
@@ -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,15 @@
1
+ /** The minimal multi-row query capability this needs. Satisfied structurally by the node engine's
2
+ * `ReplicaEngine.all` and the browser's `ReplicaDb.all` — no import from either lives here, so this
3
+ * module stays shareable with the browser bundle (unlike engine.ts, which pulls in `node:module`). */
4
+ export interface QueryAllPort {
5
+ all(sql: string): Array<Record<string, unknown>>;
6
+ }
7
+ /**
8
+ * Build a per-table known-columns map from the LOCAL database's ACTUAL shape (`PRAGMA table_info`),
9
+ * for use as `ApplyOptions.knownColumns` at every `applyDelta` call site.
10
+ *
11
+ * Call ONCE, right after `applyMigrations` runs — the table shape it reflects is fixed until the next
12
+ * migration run (a fresh `start()` / worker `open`).
13
+ */
14
+ export declare function buildKnownColumnsByTable(db: QueryAllPort): Map<string, ReadonlySet<string>>;
15
+ //# sourceMappingURL=known-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-columns.d.ts","sourceRoot":"","sources":["../../src/replica/known-columns.ts"],"names":[],"mappings":"AAoBA;;uGAEuG;AACvG,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD;AAsBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAQ3F"}
@@ -0,0 +1,55 @@
1
+ // replica/known-columns.ts — CTC-603: the REAL local table shape via PRAGMA introspection, shared by
2
+ // the node engine (catalyst-replica.ts) and the browser/OPFS port (ports.ts).
3
+ //
4
+ // @catalyst-cloud/replicate's `applyUpsert` defaults its forward-compat column filter
5
+ // (`ApplyOptions.knownColumns`) to ITS OWN bundled `@catalyst-cloud/schema` dependency — a separate,
6
+ // independently-versioned nested copy from whatever schema version THIS SDK's own `applyMigrations`
7
+ // actually used to create the local replica table. When replicate's nested schema lags behind, that
8
+ // default silently drops columns the local table genuinely has (CTC-529/575) — and when the local
9
+ // table is for an entity replicate's bundled schema doesn't recognize AT ALL, the whole delta failed
10
+ // (CTC-393, separately mitigated by a no-throw fix in replicate itself).
11
+ //
12
+ // `ApplyOptions.knownColumns` exists exactly to override that default (see the doc comment on it in
13
+ // @catalyst-cloud/replicate's src/replicate.ts: "a caller that wants PRAGMA-accurate columns"). This
14
+ // module builds that override from the ACTUAL local database — `PRAGMA table_info(<table>)` — rather
15
+ // than from ANY package's bundled, compile-time column list (replicate's OR this SDK's own
16
+ // @catalyst-cloud/schema). That is the whole point: the property this buys is "the delta-apply column
17
+ // filter always agrees with what SQLite itself reports the table having," independent of which
18
+ // package's schema version created it and independent of any two packages' pins staying in sync by
19
+ // hand — durable against a FUTURE version-skew instance, not just the one already fixed by exact pins.
20
+ /**
21
+ * Quote a SQL identifier for interpolation into `PRAGMA table_info(...)`.
22
+ *
23
+ * PRAGMA statements don't accept a bound `?` parameter for the table-name argument on any engine this
24
+ * SDK supports (bun:sqlite, node:sqlite, sqlite-wasm) — the identifier must be inlined. SAFE here only
25
+ * because every caller passes a name that came from {@link listLocalTables} (an enumeration of the
26
+ * database's OWN `sqlite_master` rows), never external input.
27
+ */
28
+ function quoteIdent(ident) {
29
+ return `"${ident.replace(/"/g, '""')}"`;
30
+ }
31
+ /** Every real user table currently in the local sqlite file — excludes sqlite-internal `sqlite_*`
32
+ * bookkeeping tables (e.g. `sqlite_sequence`). Includes host-only tables like `sync_meta` harmlessly:
33
+ * `change.entity` never names one, so an unused map entry costs nothing. */
34
+ function listLocalTables(db) {
35
+ const rows = db.all("SELECT name FROM sqlite_master WHERE type = 'table'");
36
+ return rows.map((r) => String(r.name)).filter((name) => !name.startsWith("sqlite_"));
37
+ }
38
+ /**
39
+ * Build a per-table known-columns map from the LOCAL database's ACTUAL shape (`PRAGMA table_info`),
40
+ * for use as `ApplyOptions.knownColumns` at every `applyDelta` call site.
41
+ *
42
+ * Call ONCE, right after `applyMigrations` runs — the table shape it reflects is fixed until the next
43
+ * migration run (a fresh `start()` / worker `open`).
44
+ */
45
+ export function buildKnownColumnsByTable(db) {
46
+ const map = new Map();
47
+ for (const table of listLocalTables(db)) {
48
+ const rows = db.all(`PRAGMA table_info(${quoteIdent(table)})`);
49
+ if (rows.length === 0)
50
+ continue; // defensive — a real table always reports at least one column
51
+ map.set(table, new Set(rows.map((r) => String(r.name))));
52
+ }
53
+ return map;
54
+ }
55
+ //# sourceMappingURL=known-columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-columns.js","sourceRoot":"","sources":["../../src/replica/known-columns.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,8EAA8E;AAC9E,EAAE;AACF,sFAAsF;AACtF,qGAAqG;AACrG,oGAAoG;AACpG,oGAAoG;AACpG,kGAAkG;AAClG,qGAAqG;AACrG,yEAAyE;AACzE,EAAE;AACF,oGAAoG;AACpG,qGAAqG;AACrG,qGAAqG;AACrG,2FAA2F;AAC3F,sGAAsG;AACtG,+FAA+F;AAC/F,mGAAmG;AACnG,uGAAuG;AASvG;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED;;6EAE6E;AAC7E,SAAS,eAAe,CAAC,EAAgB;IACvC,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAgB;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS,CAAC,8DAA8D;QAC/F,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@catalyst-cloud/sdk",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "description": "Keep a live local copy of your Linear and GitHub project data \u2014 pushed in real time, without polling rate limits or webhook tunnels.",
5
5
  "license": "MIT",
6
6
  "author": "Coalesce Labs",