@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,25 @@
1
+ // replica/migration-shape.ts — CTC-127's row-shape predicate, hoisted so BOTH replicas can use it.
2
+ //
3
+ // It lived in catalyst-replica.ts, which is unreachable from the browser: that module top-level-imports
4
+ // ./engine.js, which imports `node:module`. Cross-importing it into the worker would drag a node builtin
5
+ // into a bundle destined for a Worker. This file imports ONLY @catalyst-cloud/schema, so both the node
6
+ // replica (catalyst-replica.ts, which re-exports it) and the browser worker (ports.ts) share one
7
+ // definition — and neither can drift from the other's idea of what a shape change is.
8
+ import { MIRROR_MIGRATIONS } from "@catalyst-cloud/schema";
9
+ /**
10
+ * CTC-127: does any of the migrations applied THIS boot change a table's ROW SHAPE — i.e. add a column
11
+ * (`ALTER TABLE … ADD …`) or a new entity table (`CREATE TABLE`)? If so, a WARM replica's existing rows
12
+ * were seeded/applied before that column existed and hold NULL for it, so the caller forces one re-seed
13
+ * to backfill. A pure `CREATE INDEX` migration changes no row shape → no re-seed. Detected by
14
+ * string-matching the applied tags' SQL — drizzle-kit emits bare `ADD` and `CREATE TABLE` (the same
15
+ * vocabulary @catalyst-cloud/schema's migration runner trusts). Conservative-safe: a false positive is
16
+ * a harmless extra re-seed; there are no false negatives for real `ALTER TABLE ADD` / `CREATE TABLE`.
17
+ */
18
+ export function migrationsChangeRowShape(appliedTags) {
19
+ const byTag = MIRROR_MIGRATIONS.migrations;
20
+ return appliedTags.some((tag) => {
21
+ const sql = byTag[tag] ?? "";
22
+ return /\bADD\b/i.test(sql) || /\bCREATE\s+TABLE\b/i.test(sql);
23
+ });
24
+ }
25
+ //# sourceMappingURL=migration-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-shape.js","sourceRoot":"","sources":["../../src/replica/migration-shape.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,EAAE;AACF,wGAAwG;AACxG,yGAAyG;AACzG,uGAAuG;AACvG,iGAAiG;AACjG,sFAAsF;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAA8B;IAE9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAG/B,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@catalyst-cloud/sdk",
3
- "version": "0.7.0",
4
- "description": "Keep a live local copy of your Linear and GitHub project data pushed in real time, without polling rate limits or webhook tunnels.",
3
+ "version": "0.8.0",
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",
7
7
  "homepage": "https://github.com/coalesce-labs/catalyst-cloud-sdk#readme",
@@ -25,6 +25,16 @@
25
25
  "import": "./dist/index.js",
26
26
  "default": "./dist/index.js"
27
27
  },
28
+ "./browser": {
29
+ "types": "./dist/browser.d.ts",
30
+ "import": "./dist/browser.js",
31
+ "default": "./dist/browser.js"
32
+ },
33
+ "./browser/db-worker": {
34
+ "types": "./dist/replica/browser/db.worker.d.ts",
35
+ "import": "./dist/replica/browser/db.worker.js",
36
+ "default": "./dist/replica/browser/db.worker.js"
37
+ },
28
38
  "./node": {
29
39
  "types": "./dist/node.d.ts",
30
40
  "import": "./dist/node.js",
@@ -34,7 +44,9 @@
34
44
  "files": [
35
45
  "dist"
36
46
  ],
37
- "sideEffects": false,
47
+ "sideEffects": [
48
+ "./dist/replica/browser/db.worker.js"
49
+ ],
38
50
  "engines": {
39
51
  "node": ">=22"
40
52
  },
@@ -59,6 +71,7 @@
59
71
  "@opentelemetry/resources": "^2.8.0",
60
72
  "@opentelemetry/sdk-metrics": "^2.8.0",
61
73
  "@opentelemetry/sdk-trace-base": "^2.8.0",
74
+ "@sqlite.org/sqlite-wasm": "^3.53.0-build1",
62
75
  "typescript": "^5.6.3",
63
76
  "vitest": "^2.1.8"
64
77
  },