@rocicorp/zero 0.12.2025012801 → 0.12.2025012901

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 (61) hide show
  1. package/out/{chunk-TYCUDFUS.js → chunk-VYAI3OU4.js} +2 -2
  2. package/out/solid.js +1 -1
  3. package/out/zero-cache/src/config/zero-config.d.ts +10 -0
  4. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  5. package/out/zero-cache/src/config/zero-config.js +10 -0
  6. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  7. package/out/zero-cache/src/db/specs.d.ts +6 -6
  8. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  9. package/out/zero-cache/src/server/change-streamer.js +5 -2
  10. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  11. package/out/zero-cache/src/server/multi/config.d.ts +5 -0
  12. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  13. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +27 -0
  14. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -0
  15. package/out/zero-cache/src/services/change-source/custom/change-source.js +169 -0
  16. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -0
  17. package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts +4 -0
  18. package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts.map +1 -0
  19. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +13 -0
  20. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -0
  21. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  22. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  23. package/out/zero-cache/src/services/change-source/pg/change-source.js +2 -2
  24. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  25. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +15 -15
  26. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +6 -6
  27. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  28. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +8 -8
  29. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +12 -12
  30. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +2 -2
  31. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  32. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +4 -4
  33. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +1 -1
  34. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  35. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js +2 -2
  36. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +1 -1
  37. package/out/zero-cache/src/services/replicator/change-processor.d.ts +1 -1
  38. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  39. package/out/zero-cache/src/services/replicator/change-processor.js +31 -9
  40. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  41. package/out/zero-cache/src/types/streams.d.ts +11 -1
  42. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  43. package/out/zero-cache/src/types/streams.js +98 -0
  44. package/out/zero-cache/src/types/streams.js.map +1 -1
  45. package/out/zero-cache/src/types/subscription.d.ts +1 -2
  46. package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
  47. package/out/zero-cache/src/types/ws.d.ts +4 -1
  48. package/out/zero-cache/src/types/ws.d.ts.map +1 -1
  49. package/out/zero-cache/src/types/ws.js +7 -3
  50. package/out/zero-cache/src/types/ws.js.map +1 -1
  51. package/out/zero-client/src/mod.d.ts +1 -0
  52. package/out/zero-client/src/mod.d.ts.map +1 -1
  53. package/out/zero.js +1 -1
  54. package/out/zqlite/src/db.d.ts.map +1 -1
  55. package/out/zqlite/src/db.js +1 -0
  56. package/out/zqlite/src/db.js.map +1 -1
  57. package/out/zqlite/src/table-source.d.ts.map +1 -1
  58. package/out/zqlite/src/table-source.js +6 -1
  59. package/out/zqlite/src/table-source.js.map +1 -1
  60. package/package.json +1 -1
  61. /package/out/{chunk-TYCUDFUS.js.map → chunk-VYAI3OU4.js.map} +0 -0
@@ -13418,7 +13418,7 @@ function makeMessage(message, context, logLevel) {
13418
13418
  }
13419
13419
 
13420
13420
  // ../zero-client/src/client/version.ts
13421
- var version2 = "0.12.2025012801";
13421
+ var version2 = "0.12.2025012901";
13422
13422
 
13423
13423
  // ../zero-client/src/client/log-options.ts
13424
13424
  var LevelFilterLogSink = class {
@@ -15485,4 +15485,4 @@ export {
15485
15485
  escapeLike,
15486
15486
  Zero
15487
15487
  };
15488
- //# sourceMappingURL=chunk-TYCUDFUS.js.map
15488
+ //# sourceMappingURL=chunk-VYAI3OU4.js.map
package/out/solid.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Zero
3
- } from "./chunk-TYCUDFUS.js";
3
+ } from "./chunk-VYAI3OU4.js";
4
4
  import "./chunk-HARIWJ2J.js";
5
5
  import "./chunk-ULOTOBTC.js";
6
6
  import {
@@ -62,6 +62,11 @@ export declare const zeroOptions: {
62
62
  type: v.Type<string>;
63
63
  desc: string[];
64
64
  };
65
+ type: {
66
+ type: v.Type<"pg" | "custom">;
67
+ desc: string[];
68
+ hidden: boolean;
69
+ };
65
70
  maxConns: {
66
71
  type: v.Type<number>;
67
72
  desc: string[];
@@ -243,6 +248,11 @@ export declare function getDebugConfig(env?: NodeJS.ProcessEnv, argv?: string[])
243
248
  type: v.Type<string>;
244
249
  desc: string[];
245
250
  };
251
+ type: {
252
+ type: v.Type<"pg" | "custom">;
253
+ desc: string[];
254
+ hidden: boolean;
255
+ };
246
256
  maxConns: {
247
257
  type: v.Type<number>;
248
258
  desc: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;CAqCjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEtD,QAAA,MAAM,UAAU;;;;;;;;;;CAyBf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAmBhB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8PvB,CAAC;AAsBF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB,GAC3B,UAAU,CAUZ;AAED,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG7B"}
1
+ {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;CAqCjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEtD,QAAA,MAAM,UAAU;;;;;;;;;;CAyBf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAmBhB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyQvB,CAAC;AAsBF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB,GAC3B,UAAU,CAUZ;AAED,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG7B"}
@@ -111,6 +111,16 @@ export const zeroOptions = {
111
111
  `In the future we will support other types of upstream besides PG.`,
112
112
  ],
113
113
  },
114
+ type: {
115
+ type: v.union(v.literal('pg'), v.literal('custom')).default('pg'),
116
+ desc: [
117
+ `The meaning of the {bold upstream-db} depends on the upstream type:`,
118
+ `* {bold pg}: The connection database string, e.g. "postgres://..."`,
119
+ `* {bold custom}: The base URI of the change source "endpoint, e.g.`,
120
+ ` "https://my-change-source.dev/changes/v0/stream?apiKey=..."`,
121
+ ],
122
+ hidden: true, // TODO: Unhide when ready to officially support.
123
+ },
114
124
  maxConns: {
115
125
  type: v.number().default(20),
116
126
  desc: [
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,YAAY,EAAc,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,IAAI,EAAE;YACJ,6CAA6C;YAC7C,EAAE;YACF,2EAA2E;YAC3E,uEAAuE;YACvE,EAAE;YACF,gFAAgF;YAChF,2DAA2D;YAC3D,EAAE;YACF,8EAA8E;YAC9E,4DAA4D;SAC7D;QACD,OAAO,EAAE,IAAI,EAAE,gCAAgC;KAChD;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC5C,IAAI,EAAE;YACJ,wEAAwE;YACxE,2EAA2E;YAC3E,mEAAmE;YACnE,EAAE;YACF,6EAA6E;YAC7E,yDAAyD;YACzD,EAAE;YACF,gEAAgE;YAChE,EAAE;YACF,0EAA0E;YAC1E,uEAAuE;YACvE,gDAAgD;YAChD,EAAE;YACF,wEAAwE;SACzE;KACF;CACF,CAAC;AAIF,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACnB;SACA,OAAO,CAAC,MAAM,CAAC;IAElB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,EAAE;YACJ,wDAAwD;YACxD,gEAAgE;SACjE;KACF;IAED,cAAc,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wFAAwF;YACxF,4CAA4C;SAC7C;KACF;CACF,CAAC;AAIF,MAAM,oBAAoB,GAAG;IAC3B,GAAG,EAAE;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,sEAAsE;YACtE,yCAAyC;SAC1C;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE;YACJ,+EAA+E;SAChF;KACF;CACF,CAAC;AAIF,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,sHAAsH;SACvH;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wHAAwH;SACzH;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,2GAA2G;SAC5G;KACF;CACF,CAAC;AAIF,4EAA4E;AAC5E,8EAA8E;AAC9E,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,EAAE,EAAE;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE;gBACJ,iDAAiD;gBACjD,mEAAmE;aACpE;SACF;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,EAAE;gBACJ,oEAAoE;gBACpE,wEAAwE;gBACxE,oEAAoE;gBACpE,qBAAqB;gBACrB,EAAE;gBACF,kEAAkE;gBAClE,4EAA4E;aAC7E;SACF;QAED,iBAAiB,EAAE;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,0CAA0C;SACzD;KACF;IAED,GAAG,EAAE;QACH,EAAE,EAAE;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE;gBACJ,+EAA+E;gBAC/E,+EAA+E;gBAC/E,8EAA8E;gBAC9E,oEAAoE;aACrE;SACF;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,EAAE;gBACJ,gEAAgE;gBAChE,8CAA8C;gBAC9C,EAAE;gBACF,kEAAkE;gBAClE,4EAA4E;aAC7E;SACF;QAED,iBAAiB,EAAE;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,0CAA0C;SACzD;KACF;IAED,mBAAmB,EAAE;QACnB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE;YACJ,0EAA0E;YAC1E,sDAAsD;SACvD;KACF;IAED,MAAM,EAAE;QACN,EAAE,EAAE;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,iEAAiE,CAAC;SAC1E;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,IAAI,EAAE;gBACJ,mEAAmE;gBACnE,4DAA4D;gBAC5D,8CAA8C;aAC/C;SACF;KACF;IAED,WAAW,EAAE;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE;YACJ,4DAA4D;YAC5D,2EAA2E;YAC3E,oBAAoB;SACrB;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC5C,IAAI,EAAE;gBACJ,uEAAuE;gBACvE,2BAA2B;aAC5B;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,qEAAqE;gBACrE,0DAA0D;aAC3D;SACF;KACF;IAED,GAAG,EAAE,UAAU;IAEf,KAAK,EAAE,YAAY;IAEnB,IAAI,EAAE,WAAW;IAEjB,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,CAAC,gCAAgC,CAAC;KACzC;IAED,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wEAAwE;YACxE,8EAA8E;YAC9E,gDAAgD;YAChD,EAAE;YACF,gDAAgD;SACjD;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,yDAAyD;YACzD,EAAE;YACF,kFAAkF;YAClF,mFAAmF;YACnF,0DAA0D;SAC3D;KACF;IAED,oBAAoB;IAEpB,cAAc,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,kDAAkD;YAClD,4DAA4D;YAC5D,iEAAiE;YACjE,2DAA2D;SAC5D;KACF;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,oEAAoE;YACpE,qEAAqE;YACrE,yEAAyE;YACzE,eAAe;SAChB;KACF;IAED,SAAS,EAAE;QACT,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE;YACJ,uEAAuE;YACvE,4EAA4E;YAC5E,2EAA2E;YAC3E,4EAA4E;YAC5E,8EAA8E;YAC9E,sDAAsD;YACtD,EAAE;YACF,+EAA+E;YAC/E,6EAA6E;YAC7E,0EAA0E;YAC1E,uDAAuD;SACxD;KACF;IAED,UAAU,EAAE;QACV,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,wEAAwE;gBACxE,8CAA8C;aAC/C;SACF;QAED,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC;YAChE,IAAI,EAAE;gBACJ,4EAA4E;gBAC5E,2EAA2E;gBAC3E,4BAA4B;gBAC5B,4CAA4C;gBAC5C,iEAAiE;gBACjE,sDAAsD;gBACtD,2CAA2C;aAC5C;SACF;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC;iBACJ,KAAK,CACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACnB;iBACA,OAAO,CAAC,MAAM,CAAC;SACnB;QAED,SAAS,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,qEAAqE;gBACrE,kEAAkE;aACnE;SACF;KACF;IAED,eAAe,EAAE;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wEAAwE;SACzE;KACF;IAED,WAAW,EAAE;QACX,gBAAgB,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,IAAI,EAAE;gBACJ,yEAAyE;gBACzE,0EAA0E;gBAC1E,wCAAwC;aACzC;SACF;QAED,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/B,IAAI,EAAE;gBACJ,oEAAoE;gBACpE,4EAA4E;gBAC5E,+EAA+E;gBAC/E,mBAAmB;aACpB;SACF;KACF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,8DAA8D,CAAC;QACtE,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,GAAG,WAAW;IACd,KAAK,EAAE;QACL,GAAG,EAAE;YACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE,CAAC,+CAA+C,CAAC;SACxD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,6EAA6E;aAC9E;SACF;KACF;CACF,CAAC;AAIF,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,IAAI,YAAoC,CAAC;AAEzC,MAAM,UAAU,aAAa,CAC3B,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,IAAI,CAAC,YAAY,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACzC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAEzE,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;YACrC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,OAAO,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"zero-config.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,YAAY,EAAc,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,IAAI,EAAE;YACJ,6CAA6C;YAC7C,EAAE;YACF,2EAA2E;YAC3E,uEAAuE;YACvE,EAAE;YACF,gFAAgF;YAChF,2DAA2D;YAC3D,EAAE;YACF,8EAA8E;YAC9E,4DAA4D;SAC7D;QACD,OAAO,EAAE,IAAI,EAAE,gCAAgC;KAChD;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC5C,IAAI,EAAE;YACJ,wEAAwE;YACxE,2EAA2E;YAC3E,mEAAmE;YACnE,EAAE;YACF,6EAA6E;YAC7E,yDAAyD;YACzD,EAAE;YACF,gEAAgE;YAChE,EAAE;YACF,0EAA0E;YAC1E,uEAAuE;YACvE,gDAAgD;YAChD,EAAE;YACF,wEAAwE;SACzE;KACF;CACF,CAAC;AAIF,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACnB;SACA,OAAO,CAAC,MAAM,CAAC;IAElB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,EAAE;YACJ,wDAAwD;YACxD,gEAAgE;SACjE;KACF;IAED,cAAc,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wFAAwF;YACxF,4CAA4C;SAC7C;KACF;CACF,CAAC;AAIF,MAAM,oBAAoB,GAAG;IAC3B,GAAG,EAAE;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,sEAAsE;YACtE,yCAAyC;SAC1C;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE;YACJ,+EAA+E;SAChF;KACF;CACF,CAAC;AAIF,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,sHAAsH;SACvH;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wHAAwH;SACzH;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,2GAA2G;SAC5G;KACF;CACF,CAAC;AAIF,4EAA4E;AAC5E,8EAA8E;AAC9E,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,EAAE,EAAE;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE;gBACJ,iDAAiD;gBACjD,mEAAmE;aACpE;SACF;QAED,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YACjE,IAAI,EAAE;gBACJ,qEAAqE;gBACrE,oEAAoE;gBACpE,oEAAoE;gBACpE,uEAAuE;aACxE;YACD,MAAM,EAAE,IAAI,EAAE,iDAAiD;SAChE;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,EAAE;gBACJ,oEAAoE;gBACpE,wEAAwE;gBACxE,oEAAoE;gBACpE,qBAAqB;gBACrB,EAAE;gBACF,kEAAkE;gBAClE,4EAA4E;aAC7E;SACF;QAED,iBAAiB,EAAE;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,0CAA0C;SACzD;KACF;IAED,GAAG,EAAE;QACH,EAAE,EAAE;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE;gBACJ,+EAA+E;gBAC/E,+EAA+E;gBAC/E,8EAA8E;gBAC9E,oEAAoE;aACrE;SACF;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,EAAE;gBACJ,gEAAgE;gBAChE,8CAA8C;gBAC9C,EAAE;gBACF,kEAAkE;gBAClE,4EAA4E;aAC7E;SACF;QAED,iBAAiB,EAAE;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,0CAA0C;SACzD;KACF;IAED,mBAAmB,EAAE;QACnB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE;YACJ,0EAA0E;YAC1E,sDAAsD;SACvD;KACF;IAED,MAAM,EAAE;QACN,EAAE,EAAE;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,iEAAiE,CAAC;SAC1E;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,IAAI,EAAE;gBACJ,mEAAmE;gBACnE,4DAA4D;gBAC5D,8CAA8C;aAC/C;SACF;KACF;IAED,WAAW,EAAE;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE;YACJ,4DAA4D;YAC5D,2EAA2E;YAC3E,oBAAoB;SACrB;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC5C,IAAI,EAAE;gBACJ,uEAAuE;gBACvE,2BAA2B;aAC5B;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,qEAAqE;gBACrE,0DAA0D;aAC3D;SACF;KACF;IAED,GAAG,EAAE,UAAU;IAEf,KAAK,EAAE,YAAY;IAEnB,IAAI,EAAE,WAAW;IAEjB,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,CAAC,gCAAgC,CAAC;KACzC;IAED,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wEAAwE;YACxE,8EAA8E;YAC9E,gDAAgD;YAChD,EAAE;YACF,gDAAgD;SACjD;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,yDAAyD;YACzD,EAAE;YACF,kFAAkF;YAClF,mFAAmF;YACnF,0DAA0D;SAC3D;KACF;IAED,oBAAoB;IAEpB,cAAc,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,kDAAkD;YAClD,4DAA4D;YAC5D,iEAAiE;YACjE,2DAA2D;SAC5D;KACF;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,oEAAoE;YACpE,qEAAqE;YACrE,yEAAyE;YACzE,eAAe;SAChB;KACF;IAED,SAAS,EAAE;QACT,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE;YACJ,uEAAuE;YACvE,4EAA4E;YAC5E,2EAA2E;YAC3E,4EAA4E;YAC5E,8EAA8E;YAC9E,sDAAsD;YACtD,EAAE;YACF,+EAA+E;YAC/E,6EAA6E;YAC7E,0EAA0E;YAC1E,uDAAuD;SACxD;KACF;IAED,UAAU,EAAE;QACV,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,wEAAwE;gBACxE,8CAA8C;aAC/C;SACF;QAED,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC;YAChE,IAAI,EAAE;gBACJ,4EAA4E;gBAC5E,2EAA2E;gBAC3E,4BAA4B;gBAC5B,4CAA4C;gBAC5C,iEAAiE;gBACjE,sDAAsD;gBACtD,2CAA2C;aAC5C;SACF;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC;iBACJ,KAAK,CACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACnB;iBACA,OAAO,CAAC,MAAM,CAAC;SACnB;QAED,SAAS,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,qEAAqE;gBACrE,kEAAkE;aACnE;SACF;KACF;IAED,eAAe,EAAE;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wEAAwE;SACzE;KACF;IAED,WAAW,EAAE;QACX,gBAAgB,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,IAAI,EAAE;gBACJ,yEAAyE;gBACzE,0EAA0E;gBAC1E,wCAAwC;aACzC;SACF;QAED,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/B,IAAI,EAAE;gBACJ,oEAAoE;gBACpE,4EAA4E;gBAC5E,+EAA+E;gBAC/E,mBAAmB;aACpB;SACF;KACF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,8DAA8D,CAAC;QACtE,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,GAAG,WAAW;IACd,KAAK,EAAE;QACL,GAAG,EAAE;YACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE,CAAC,+CAA+C,CAAC;SACxD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,6EAA6E;aAC9E;SACF;KACF;CACF,CAAC;AAIF,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,IAAI,YAAoC,CAAC;AAEzC,MAAM,UAAU,aAAa,CAC3B,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,IAAI,CAAC,YAAY,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACzC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAEzE,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;YACrC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,OAAO,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC"}
@@ -7,7 +7,7 @@ export declare const pgReplicaIdentitySchema: v.UnionType<[v.Type<"d">, v.Type<"
7
7
  export declare const columnSpec: v.ObjectType<{
8
8
  pos: v.Type<number>;
9
9
  dataType: v.Type<string>;
10
- pgTypeClass: v.Optional<"e" | "d" | "b" | "c" | "p" | "r" | "m">;
10
+ pgTypeClass: v.Optional<"d" | "b" | "c" | "e" | "p" | "r" | "m">;
11
11
  characterMaximumLength: v.Optional<number | null>;
12
12
  notNull: v.Optional<boolean | null>;
13
13
  dflt: v.Optional<string | null>;
@@ -16,7 +16,7 @@ export type ColumnSpec = Readonly<v.Infer<typeof columnSpec>>;
16
16
  export declare const liteTableSpec: v.ObjectType<{
17
17
  name: v.Type<string>;
18
18
  columns: v.Type<Record<string, {
19
- pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
19
+ pgTypeClass?: "d" | "b" | "c" | "e" | "p" | "r" | "m" | undefined;
20
20
  characterMaximumLength?: number | null | undefined;
21
21
  notNull?: boolean | null | undefined;
22
22
  dflt?: string | null | undefined;
@@ -28,7 +28,7 @@ export declare const liteTableSpec: v.ObjectType<{
28
28
  export declare const tableSpec: v.ObjectType<Omit<{
29
29
  name: v.Type<string>;
30
30
  columns: v.Type<Record<string, {
31
- pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
31
+ pgTypeClass?: "d" | "b" | "c" | "e" | "p" | "r" | "m" | undefined;
32
32
  characterMaximumLength?: number | null | undefined;
33
33
  notNull?: boolean | null | undefined;
34
34
  dflt?: string | null | undefined;
@@ -42,7 +42,7 @@ export declare const tableSpec: v.ObjectType<Omit<{
42
42
  export declare const publishedTableSpec: v.ObjectType<Omit<Omit<{
43
43
  name: v.Type<string>;
44
44
  columns: v.Type<Record<string, {
45
- pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
45
+ pgTypeClass?: "d" | "b" | "c" | "e" | "p" | "r" | "m" | undefined;
46
46
  characterMaximumLength?: number | null | undefined;
47
47
  notNull?: boolean | null | undefined;
48
48
  dflt?: string | null | undefined;
@@ -52,10 +52,10 @@ export declare const publishedTableSpec: v.ObjectType<Omit<Omit<{
52
52
  primaryKey: v.Optional<string[]>;
53
53
  }, "schema"> & {
54
54
  schema: v.Type<string>;
55
- }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
55
+ }, "publications" | "columns" | "oid" | "replicaIdentity"> & {
56
56
  oid: v.Type<number>;
57
57
  columns: v.Type<Record<string, {
58
- pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
58
+ pgTypeClass?: "d" | "b" | "c" | "e" | "p" | "r" | "m" | undefined;
59
59
  characterMaximumLength?: number | null | undefined;
60
60
  notNull?: boolean | null | undefined;
61
61
  dflt?: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAG/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAoEf"}
1
+ {"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAG/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CA4Ef"}
@@ -3,7 +3,8 @@ import { must } from "../../../shared/src/must.js";
3
3
  import { DatabaseInitError } from "../../../zqlite/src/db.js";
4
4
  import { getZeroConfig } from "../config/zero-config.js";
5
5
  import { deleteLiteDB } from "../db/delete-lite-db.js";
6
- import { initializeChangeSource } from "../services/change-source/pg/change-source.js";
6
+ import { initializeCustomChangeSource } from "../services/change-source/custom/change-source.js";
7
+ import { initializePostgresChangeSource } from "../services/change-source/pg/change-source.js";
7
8
  import { ChangeStreamerHttpServer } from "../services/change-streamer/change-streamer-http.js";
8
9
  import { initializeStreamer } from "../services/change-streamer/change-streamer-service.js";
9
10
  import { AutoResetSignal } from "../services/change-streamer/schema/tables.js";
@@ -26,7 +27,9 @@ export default async function runWorker(parent, env) {
26
27
  for (const first of [true, false]) {
27
28
  try {
28
29
  // Note: This performs initial sync of the replica if necessary.
29
- const { changeSource, replicationConfig } = await initializeChangeSource(lc, config.upstream.db, config.shard, config.replicaFile, config.initialSync);
30
+ const { changeSource, replicationConfig } = config.upstream.type === 'pg'
31
+ ? await initializePostgresChangeSource(lc, config.upstream.db, config.shard, config.replicaFile, config.initialSync)
32
+ : await initializeCustomChangeSource(lc, config.upstream.db, config.shard, config.replicaFile);
30
33
  changeStreamer = await initializeStreamer(lc, changeDB, changeSource, replicationConfig, autoReset ?? false);
31
34
  break;
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,11 @@ export declare const multiConfigSchema: {
10
10
  type: v.Type<string>;
11
11
  desc: string[];
12
12
  };
13
+ type: {
14
+ type: v.Type<"pg" | "custom">;
15
+ desc: string[];
16
+ hidden: boolean;
17
+ };
13
18
  maxConns: {
14
19
  type: v.Type<number>;
15
20
  desc: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/multi/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AAKtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C7B,CAAC;AA8BF,QAAA,MAAM,aAAa;;;;;;;;;;;;;EAkBf,CAAC;AAEL,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACzD,IAAI,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC;AAExD,wBAAgB,kBAAkB,CAChC,UAAU,GAAE,MAAM,CAAC,UAAwB,EAC3C,IAAI,WAAwB,GAC3B;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAC,CAgBnD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/multi/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AAKtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C7B,CAAC;AA8BF,QAAA,MAAM,aAAa;;;;;;;;;;;;;EAkBf,CAAC;AAEL,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACzD,IAAI,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC;AAExD,wBAAgB,kBAAkB,CAChC,UAAU,GAAE,MAAM,CAAC,UAAwB,EAC3C,IAAI,WAAwB,GAC3B;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAC,CAgBnD"}
@@ -0,0 +1,27 @@
1
+ import { LogContext } from '@rocicorp/logger';
2
+ import { Database } from '../../../../../zqlite/src/db.ts';
3
+ import type { ChangeSource } from '../../change-streamer/change-streamer-service.ts';
4
+ import { type ReplicationConfig } from '../../change-streamer/schema/tables.ts';
5
+ import type { ShardConfig } from '../pg/shard-config.ts';
6
+ /**
7
+ * Initializes a Postgres change source, including the initial sync of the
8
+ * replica, before streaming changes from the corresponding logical replication
9
+ * stream.
10
+ */
11
+ export declare function initializeCustomChangeSource(lc: LogContext, upstreamURI: string, shard: ShardConfig, replicaDbFile: string): Promise<{
12
+ replicationConfig: ReplicationConfig;
13
+ changeSource: ChangeSource;
14
+ }>;
15
+ /**
16
+ * Initial sync for a custom change source makes a request to the
17
+ * change source endpoint with no `replicaVersion` or `lastWatermark`.
18
+ * The initial transaction returned by the endpoint is treated as
19
+ * the initial sync, and the commit watermark of that transaction
20
+ * becomes the `replicaVersion` of the initialized replica.
21
+ *
22
+ * Note that this is equivalent to how the LSN of the Postgres WAL
23
+ * at initial sync time is the `replicaVersion` (and starting
24
+ * version for all initially-synced rows).
25
+ */
26
+ export declare function initialSync(lc: LogContext, shard: ShardConfig, tx: Database, upstreamURI: string): Promise<void>;
27
+ //# sourceMappingURL=change-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-source.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/custom/change-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAK5C,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AAKzD,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,KAAK,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AAO9E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAKvD;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAC,CAAC,CAgC7E;AAsDD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,iBAyDpB"}
@@ -0,0 +1,169 @@
1
+ import { LogContext } from '@rocicorp/logger';
2
+ import { WebSocket } from 'ws';
3
+ import { assert, unreachable } from "../../../../../shared/src/asserts.js";
4
+ import { deepEqual } from "../../../../../shared/src/json.js";
5
+ import { Database } from "../../../../../zqlite/src/db.js";
6
+ import { computeZqlSpecs } from "../../../db/lite-tables.js";
7
+ import { StatementRunner } from "../../../db/statements.js";
8
+ import { stringify } from "../../../types/bigint-json.js";
9
+ import { stream } from "../../../types/streams.js";
10
+ import {} from "../../change-streamer/schema/tables.js";
11
+ import { ChangeProcessor } from "../../replicator/change-processor.js";
12
+ import { initChangeLog } from "../../replicator/schema/change-log.js";
13
+ import { getSubscriptionState, initReplicationState, } from "../../replicator/schema/replication-state.js";
14
+ import { changeStreamMessageSchema } from "../protocol/current/downstream.js";
15
+ import {} from "../protocol/current/upstream.js";
16
+ import { initSyncSchema } from "./sync-schema.js";
17
+ /**
18
+ * Initializes a Postgres change source, including the initial sync of the
19
+ * replica, before streaming changes from the corresponding logical replication
20
+ * stream.
21
+ */
22
+ export async function initializeCustomChangeSource(lc, upstreamURI, shard, replicaDbFile) {
23
+ await initSyncSchema(lc, `replica-${shard.id}`, shard, replicaDbFile, upstreamURI);
24
+ const replica = new Database(lc, replicaDbFile);
25
+ const replicationConfig = getSubscriptionState(new StatementRunner(replica));
26
+ replica.close();
27
+ if (shard.publications.length) {
28
+ // Verify that the publications match what has been synced.
29
+ const requested = [...shard.publications].sort();
30
+ const replicated = replicationConfig.publications.sort();
31
+ if (!deepEqual(requested, replicated)) {
32
+ throw new Error(`Invalid ShardConfig. Requested publications [${requested}] do not match synced publications: [${replicated}]`);
33
+ }
34
+ }
35
+ const changeSource = new CustomChangeSource(lc, upstreamURI, shard.id, replicationConfig);
36
+ return { replicationConfig, changeSource };
37
+ }
38
+ class CustomChangeSource {
39
+ #lc;
40
+ #upstreamUri;
41
+ #shardID;
42
+ #replicationConfig;
43
+ constructor(lc, upstreamUri, shardID, replicationConfig) {
44
+ this.#lc = lc.withContext('component', 'change-source');
45
+ this.#upstreamUri = upstreamUri;
46
+ this.#shardID = shardID;
47
+ this.#replicationConfig = replicationConfig;
48
+ }
49
+ initialSync() {
50
+ return this.#startStream();
51
+ }
52
+ startStream(clientWatermark) {
53
+ return Promise.resolve(this.#startStream(clientWatermark));
54
+ }
55
+ #startStream(clientWatermark) {
56
+ const { publications, replicaVersion } = this.#replicationConfig;
57
+ const url = new URL(this.#upstreamUri);
58
+ url.searchParams.set('shardID', this.#shardID);
59
+ for (const pub of publications) {
60
+ url.searchParams.append('shardPublications', pub);
61
+ }
62
+ if (clientWatermark) {
63
+ assert(replicaVersion.length);
64
+ url.searchParams.set('lastWatermark', clientWatermark);
65
+ url.searchParams.set('replicaVersion', replicaVersion);
66
+ }
67
+ const ws = new WebSocket(url);
68
+ const { instream, outstream } = stream(this.#lc, ws, changeStreamMessageSchema,
69
+ // Upstream acks coalesce. If upstream exhibits back-pressure,
70
+ // only the last ACK is kept / buffered.
71
+ { coalesce: (curr) => curr });
72
+ return { changes: instream, acks: outstream };
73
+ }
74
+ }
75
+ /**
76
+ * Initial sync for a custom change source makes a request to the
77
+ * change source endpoint with no `replicaVersion` or `lastWatermark`.
78
+ * The initial transaction returned by the endpoint is treated as
79
+ * the initial sync, and the commit watermark of that transaction
80
+ * becomes the `replicaVersion` of the initialized replica.
81
+ *
82
+ * Note that this is equivalent to how the LSN of the Postgres WAL
83
+ * at initial sync time is the `replicaVersion` (and starting
84
+ * version for all initially-synced rows).
85
+ */
86
+ export async function initialSync(lc, shard, tx, upstreamURI) {
87
+ const { id, publications } = shard;
88
+ const changeSource = new CustomChangeSource(lc, upstreamURI, id, {
89
+ replicaVersion: '', // ignored for initialSync()
90
+ publications,
91
+ });
92
+ const { changes } = changeSource.initialSync();
93
+ const processor = new ChangeProcessor(new StatementRunner(tx), 'INITIAL-SYNC', (_, err) => {
94
+ throw err;
95
+ });
96
+ let num = 0;
97
+ for await (const change of changes) {
98
+ const [tag] = change;
99
+ switch (tag) {
100
+ case 'begin': {
101
+ const { commitWatermark } = change[2];
102
+ lc.info?.(`initial sync of shard ${id} at replicaVersion ${commitWatermark}`);
103
+ initReplicationState(tx, [...publications].sort(), commitWatermark);
104
+ initChangeLog(tx);
105
+ processor.processMessage(lc, change);
106
+ break;
107
+ }
108
+ case 'data':
109
+ processor.processMessage(lc, change);
110
+ if (++num % 1000 === 0) {
111
+ lc.debug?.(`processed ${num} changes`);
112
+ }
113
+ break;
114
+ case 'commit':
115
+ processor.processMessage(lc, change);
116
+ validateInitiallySyncedData(lc, tx, id);
117
+ lc.info?.(`finished initial-sync of ${num} changes`);
118
+ return;
119
+ case 'status':
120
+ break; // Ignored
121
+ case 'control':
122
+ case 'rollback':
123
+ throw new Error(`unexpected message during initial-sync: ${stringify(change)}`);
124
+ default:
125
+ unreachable(change);
126
+ }
127
+ }
128
+ throw new Error(`change source ${upstreamURI} closed before initial-sync completed`);
129
+ }
130
+ // Verify that the upstream tables expected by the sync logic
131
+ // have been properly initialized.
132
+ function getRequiredTables(shardID) {
133
+ return {
134
+ [`zero_${shardID}.clients`]: {
135
+ clientGroupID: { type: 'string' },
136
+ clientID: { type: 'string' },
137
+ lastMutationID: { type: 'number' },
138
+ userID: { type: 'string' },
139
+ },
140
+ [`zero.schemaVersions`]: {
141
+ minSupportedVersion: { type: 'number' },
142
+ maxSupportedVersion: { type: 'number' },
143
+ },
144
+ };
145
+ }
146
+ function validateInitiallySyncedData(lc, db, shardID) {
147
+ const tables = computeZqlSpecs(lc, db);
148
+ const required = getRequiredTables(shardID);
149
+ for (const [name, columns] of Object.entries(required)) {
150
+ const table = tables.get(name)?.zqlSpec;
151
+ if (!table) {
152
+ throw new Error(`Upstream is missing the "${name}" table. (Found ${[
153
+ ...tables.keys(),
154
+ ]})` +
155
+ `Please ensure that each table has a unique index over one ` +
156
+ `or more non-null columns.`);
157
+ }
158
+ for (const [col, { type }] of Object.entries(columns)) {
159
+ const found = table[col];
160
+ if (!found) {
161
+ throw new Error(`Upstream "${table}" table is missing the "${col}" column`);
162
+ }
163
+ if (found.type !== type) {
164
+ throw new Error(`Upstream "${table}.${col}" column is a ${found.type} type but must be a ${type} type.`);
165
+ }
166
+ }
167
+ }
168
+ }
169
+ //# sourceMappingURL=change-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-source.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/custom/change-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { LogContext } from '@rocicorp/logger';
2
+ import type { ShardConfig } from '../pg/shard-config.ts';
3
+ export declare function initSyncSchema(log: LogContext, debugName: string, shard: ShardConfig, dbPath: string, upstreamURI: string): Promise<void>;
4
+ //# sourceMappingURL=sync-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-schema.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/custom/sync-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAGvD,wBAAsB,cAAc,CAClC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -0,0 +1,13 @@
1
+ import { runSchemaMigrations, } from "../../../db/migration-lite.js";
2
+ import { initialSync } from "./change-source.js";
3
+ export async function initSyncSchema(log, debugName, shard, dbPath, upstreamURI) {
4
+ const setupMigration = {
5
+ migrateSchema: (log, tx) => initialSync(log, shard, tx, upstreamURI),
6
+ minSafeVersion: 1,
7
+ };
8
+ const schemaVersionMigrationMap = {
9
+ 1: setupMigration,
10
+ };
11
+ await runSchemaMigrations(log, debugName, dbPath, setupMigration, schemaVersionMigrationMap);
12
+ }
13
+ //# sourceMappingURL=sync-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-schema.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/custom/sync-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAGpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAe,EACf,SAAiB,EACjB,KAAkB,EAClB,MAAc,EACd,WAAmB;IAEnB,MAAM,cAAc,GAAc;QAChC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC;QACpE,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,MAAM,yBAAyB,GAA4B;QACzD,CAAC,EAAE,cAAc;KAClB,CAAC;IAEF,MAAM,mBAAmB,CACvB,GAAG,EACH,SAAS,EACT,MAAM,EACN,cAAc,EACd,yBAAyB,CAC1B,CAAC;AACJ,CAAC"}
@@ -13,7 +13,7 @@ import type { ShardConfig } from './shard-config.ts';
13
13
  * replica, before streaming changes from the corresponding logical replication
14
14
  * stream.
15
15
  */
16
- export declare function initializeChangeSource(lc: LogContext, upstreamURI: string, shard: ShardConfig, replicaDbFile: string, syncOptions: InitialSyncOptions): Promise<{
16
+ export declare function initializePostgresChangeSource(lc: LogContext, upstreamURI: string, shard: ShardConfig, replicaDbFile: string, syncOptions: InitialSyncOptions): Promise<{
17
17
  replicationConfig: ReplicationConfig;
18
18
  changeSource: ChangeSource;
19
19
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"change-source.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/change-source.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EACL,yBAAyB,EAG1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,uEAAuE,CAAC;AAc/E,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAW,KAAK,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAO1E,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wCAAwC,CAAC;AAYhD,OAAO,EAAkB,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAI3E,OAAO,EAAqB,KAAK,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAQ/E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAMnD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAC,CAAC,CA4C7E;AA+ND,qBAAa,KAAK;;gBAIJ,OAAO,EAAE,yBAAyB;IAI9C,SAAS;IAiBT,GAAG,CAAC,SAAS,EAAE,WAAW;CAa3B;AAoZD,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,EAClB,EAAE,CAAC,EAAE,UAAU,WAchB;AAMD,wBAAgB,eAAe,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,WAsB3E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,eAAe,WAkB1E;AAwBD,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,kCAAkC;;CAOhD"}
1
+ {"version":3,"file":"change-source.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/change-source.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EACL,yBAAyB,EAG1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,uEAAuE,CAAC;AAc/E,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAW,KAAK,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAO1E,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wCAAwC,CAAC;AAYhD,OAAO,EAAkB,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAI3E,OAAO,EAAqB,KAAK,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAQ/E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAMnD;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAC,CAAC,CA4C7E;AA+ND,qBAAa,KAAK;;gBAIJ,OAAO,EAAE,yBAAyB;IAI9C,SAAS;IAiBT,GAAG,CAAC,SAAS,EAAE,WAAW;CAa3B;AAoZD,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,EAClB,EAAE,CAAC,EAAE,UAAU,WAchB;AAMD,wBAAgB,eAAe,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,WAsB3E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,eAAe,WAkB1E;AAwBD,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,kCAAkC;;CAOhD"}
@@ -35,7 +35,7 @@ registerPostgresTypeParsers();
35
35
  * replica, before streaming changes from the corresponding logical replication
36
36
  * stream.
37
37
  */
38
- export async function initializeChangeSource(lc, upstreamURI, shard, replicaDbFile, syncOptions) {
38
+ export async function initializePostgresChangeSource(lc, upstreamURI, shard, replicaDbFile, syncOptions) {
39
39
  await initSyncSchema(lc, `replica-${shard.id}`, shard, replicaDbFile, upstreamURI, syncOptions);
40
40
  const replica = new Database(lc, replicaDbFile);
41
41
  const replicationConfig = getSubscriptionState(new StatementRunner(replica));
@@ -203,7 +203,7 @@ class PostgresChangeSource {
203
203
  service
204
204
  .subscribe(new PgoutputPlugin({
205
205
  protoVersion: 1,
206
- publicationNames: this.#replicationConfig.publications,
206
+ publicationNames: [...this.#replicationConfig.publications],
207
207
  messages: true,
208
208
  }), slot, fromLexiVersion(clientStart))
209
209
  .then(() => changes.cancel(), handleError);