@rocicorp/zero 0.10.2025010800 → 0.10.2025011100

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 (200) hide show
  1. package/README.md +32 -0
  2. package/out/change-protocol.js +257 -0
  3. package/out/change-protocol.js.map +7 -0
  4. package/out/{chunk-PPRTDNXA.js → chunk-FEVIDCUL.js} +1597 -2356
  5. package/out/chunk-FEVIDCUL.js.map +7 -0
  6. package/out/chunk-ZRR54VX5.js +224 -0
  7. package/out/chunk-ZRR54VX5.js.map +7 -0
  8. package/out/react.js +1 -1
  9. package/out/react.js.map +1 -1
  10. package/out/replicache/src/db/commit.d.ts +12 -35
  11. package/out/replicache/src/db/commit.d.ts.map +1 -1
  12. package/out/replicache/src/db/meta-type-enum.d.ts +1 -7
  13. package/out/replicache/src/db/meta-type-enum.d.ts.map +1 -1
  14. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  15. package/out/replicache/src/db/write.d.ts +0 -1
  16. package/out/replicache/src/db/write.d.ts.map +1 -1
  17. package/out/replicache/src/get-default-puller.d.ts +1 -3
  18. package/out/replicache/src/get-default-puller.d.ts.map +1 -1
  19. package/out/replicache/src/mod.d.ts +5 -5
  20. package/out/replicache/src/mod.d.ts.map +1 -1
  21. package/out/replicache/src/mutation-recovery.d.ts +1 -2
  22. package/out/replicache/src/mutation-recovery.d.ts.map +1 -1
  23. package/out/replicache/src/puller.d.ts +2 -20
  24. package/out/replicache/src/puller.d.ts.map +1 -1
  25. package/out/replicache/src/replicache-impl.d.ts +1 -2
  26. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  27. package/out/replicache/src/sync/pull.d.ts +3 -30
  28. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  29. package/out/replicache/src/sync/push.d.ts +3 -30
  30. package/out/replicache/src/sync/push.d.ts.map +1 -1
  31. package/out/shared/src/options.d.ts.map +1 -1
  32. package/out/shared/src/options.js +15 -7
  33. package/out/shared/src/options.js.map +1 -1
  34. package/out/solid.js +30 -35
  35. package/out/solid.js.map +3 -3
  36. package/out/zero/src/change-protocol.d.ts +2 -0
  37. package/out/zero/src/change-protocol.d.ts.map +1 -0
  38. package/out/zero/src/change-protocol.js +2 -0
  39. package/out/zero/src/change-protocol.js.map +1 -0
  40. package/out/zero-cache/src/config/zero-config.d.ts +30 -4
  41. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  42. package/out/zero-cache/src/config/zero-config.js +31 -15
  43. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  44. package/out/zero-cache/src/db/specs.d.ts +1 -1
  45. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  46. package/out/zero-cache/src/server/change-streamer.js +2 -6
  47. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  48. package/out/zero-cache/src/server/life-cycle.d.ts +3 -2
  49. package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
  50. package/out/zero-cache/src/server/life-cycle.js +15 -12
  51. package/out/zero-cache/src/server/life-cycle.js.map +1 -1
  52. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  53. package/out/zero-cache/src/server/main.js +21 -11
  54. package/out/zero-cache/src/server/main.js.map +1 -1
  55. package/out/zero-cache/src/server/multi/config.d.ts +20 -3
  56. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  57. package/out/zero-cache/src/server/multi/config.js +10 -2
  58. package/out/zero-cache/src/server/multi/config.js.map +1 -1
  59. package/out/zero-cache/src/server/multi/main.d.ts.map +1 -1
  60. package/out/zero-cache/src/server/multi/main.js +9 -3
  61. package/out/zero-cache/src/server/multi/main.js.map +1 -1
  62. package/out/zero-cache/src/services/{change-streamer → change-source}/pg/change-source.d.ts +2 -2
  63. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -0
  64. package/out/zero-cache/src/services/{change-streamer → change-source}/pg/change-source.js +1 -1
  65. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -0
  66. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -0
  67. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -0
  68. package/out/zero-cache/src/services/{change-streamer → change-source}/pg/lsn.d.ts +1 -1
  69. package/out/zero-cache/src/services/change-source/pg/lsn.d.ts.map +1 -0
  70. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -0
  71. package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/ddl.d.ts +5 -5
  72. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -0
  73. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -0
  74. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -0
  75. package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/init.js +1 -1
  76. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -0
  77. package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/published.d.ts +2 -2
  78. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -0
  79. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -0
  80. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -0
  81. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -0
  82. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -0
  83. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -0
  84. package/out/zero-cache/src/services/change-source/pg/shard-config.d.ts.map +1 -0
  85. package/out/zero-cache/src/services/change-source/pg/shard-config.js.map +1 -0
  86. package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -0
  87. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -0
  88. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +38 -0
  89. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -0
  90. package/out/zero-cache/src/services/change-source/protocol/current/control.js +36 -0
  91. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -0
  92. package/out/zero-cache/src/services/{change-streamer/schema/change.d.ts → change-source/protocol/current/data.d.ts} +28 -23
  93. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -0
  94. package/out/zero-cache/src/services/{change-streamer/schema/change.js → change-source/protocol/current/data.js} +9 -4
  95. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -0
  96. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +469 -0
  97. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -0
  98. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +19 -0
  99. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -0
  100. package/out/zero-cache/src/services/change-source/protocol/current/mod.d.ts +6 -0
  101. package/out/zero-cache/src/services/change-source/protocol/current/mod.d.ts.map +1 -0
  102. package/out/zero-cache/src/services/change-source/protocol/current/mod.js +6 -0
  103. package/out/zero-cache/src/services/change-source/protocol/current/mod.js.map +1 -0
  104. package/out/zero-cache/src/services/change-source/protocol/current/path.d.ts +20 -0
  105. package/out/zero-cache/src/services/change-source/protocol/current/path.d.ts.map +1 -0
  106. package/out/zero-cache/src/services/change-source/protocol/current/path.js +20 -0
  107. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -0
  108. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +17 -0
  109. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -0
  110. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +12 -0
  111. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -0
  112. package/out/zero-cache/src/services/change-source/protocol/mod.d.ts +2 -0
  113. package/out/zero-cache/src/services/change-source/protocol/mod.d.ts.map +1 -0
  114. package/out/zero-cache/src/services/change-source/protocol/mod.js +5 -0
  115. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +1 -0
  116. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +3 -157
  117. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  118. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +3 -13
  119. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  120. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +1 -309
  121. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  122. package/out/zero-cache/src/services/change-streamer/change-streamer.js +3 -11
  123. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  124. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +1 -1
  125. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  126. package/out/zero-cache/src/services/change-streamer/storer.d.ts +1 -1
  127. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  128. package/out/zero-cache/src/services/change-streamer/storer.js +1 -0
  129. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  130. package/out/zero-cache/src/services/litestream/commands.d.ts +8 -0
  131. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -0
  132. package/out/zero-cache/src/services/litestream/commands.js +61 -0
  133. package/out/zero-cache/src/services/litestream/commands.js.map +1 -0
  134. package/out/zero-cache/src/services/litestream/config.yml +7 -0
  135. package/out/zero-cache/src/services/mutagen/mutagen.js +1 -1
  136. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  137. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +3 -2
  138. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  139. package/out/zero-cache/src/services/view-syncer/client-handler.js +1 -1
  140. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  141. package/out/zero-cache/src/services/view-syncer/cvr.js +1 -1
  142. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  143. package/out/zero-cache/src/types/processes.d.ts +4 -2
  144. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  145. package/out/zero-cache/src/types/processes.js.map +1 -1
  146. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  147. package/out/zero-schema/src/normalize-table-schema.d.ts +4 -3
  148. package/out/zero-schema/src/normalize-table-schema.d.ts.map +1 -1
  149. package/out/zero-schema/src/normalize-table-schema.js +27 -23
  150. package/out/zero-schema/src/normalize-table-schema.js.map +1 -1
  151. package/out/zero-schema/src/normalized-schema.d.ts.map +1 -1
  152. package/out/zero-schema/src/normalized-schema.js +19 -2
  153. package/out/zero-schema/src/normalized-schema.js.map +1 -1
  154. package/out/zero-schema/src/schema.d.ts +1 -1
  155. package/out/zero-schema/src/schema.d.ts.map +1 -1
  156. package/out/zero-schema/src/schema.js +5 -4
  157. package/out/zero-schema/src/schema.js.map +1 -1
  158. package/out/zero-solid/src/solid-view.d.ts +4 -1
  159. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  160. package/out/zero-solid/src/use-query.d.ts +4 -7
  161. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  162. package/out/zero.js +2 -1
  163. package/package.json +9 -5
  164. package/out/chunk-PPRTDNXA.js.map +0 -7
  165. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +0 -1
  166. package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +0 -1
  167. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +0 -1
  168. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +0 -1
  169. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +0 -1
  170. package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +0 -1
  171. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +0 -1
  172. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +0 -1
  173. package/out/zero-cache/src/services/change-streamer/pg/schema/init.d.ts.map +0 -1
  174. package/out/zero-cache/src/services/change-streamer/pg/schema/init.js.map +0 -1
  175. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +0 -1
  176. package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +0 -1
  177. package/out/zero-cache/src/services/change-streamer/pg/schema/shard.d.ts.map +0 -1
  178. package/out/zero-cache/src/services/change-streamer/pg/schema/shard.js.map +0 -1
  179. package/out/zero-cache/src/services/change-streamer/pg/schema/validation.d.ts.map +0 -1
  180. package/out/zero-cache/src/services/change-streamer/pg/schema/validation.js.map +0 -1
  181. package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts.map +0 -1
  182. package/out/zero-cache/src/services/change-streamer/pg/shard-config.js.map +0 -1
  183. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts.map +0 -1
  184. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +0 -1
  185. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +0 -1
  186. package/out/zero-cache/src/services/change-streamer/schema/change.js.map +0 -1
  187. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/initial-sync.d.ts +0 -0
  188. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/initial-sync.js +0 -0
  189. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/lsn.js +0 -0
  190. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/ddl.js +0 -0
  191. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/init.d.ts +0 -0
  192. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/published.js +0 -0
  193. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/shard.d.ts +0 -0
  194. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/shard.js +0 -0
  195. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/validation.d.ts +0 -0
  196. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/schema/validation.js +0 -0
  197. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/shard-config.d.ts +0 -0
  198. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/shard-config.js +0 -0
  199. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/sync-schema.d.ts +0 -0
  200. /package/out/zero-cache/src/services/{change-streamer → change-source}/pg/sync-schema.js +0 -0
package/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # Zero
2
+
3
+ ## Documentation
4
+
5
+ [https://zero.rocicorp.dev/docs/introduction](https://zero.rocicorp.dev/docs/introduction)
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @rocicorp/zero
11
+ ```
12
+
13
+ ## Contributing
14
+
15
+ ### Building and Installing locally
16
+
17
+ To build and install the package locally, run the following commands:
18
+
19
+ ```bash
20
+ git clone git@github.com:rocicorp/mono.git
21
+ cd mono
22
+ npm install
23
+ npm run build
24
+ cd packages/zero
25
+ npm pack
26
+ ```
27
+
28
+ This creates a tgz (tarball) file in the `packages/zero` directory. You can then install this package in another project by running:
29
+
30
+ ```bash
31
+ npm install /path/to/rocicorp-zero-<VERSION>.tgz
32
+ ```
@@ -0,0 +1,257 @@
1
+ import {
2
+ readonly,
3
+ valita_exports
4
+ } from "./chunk-ZRR54VX5.js";
5
+ import {
6
+ __export
7
+ } from "./chunk-F5QR3K72.js";
8
+
9
+ // ../zero-cache/src/services/change-source/protocol/current/mod.ts
10
+ var mod_exports = {};
11
+ __export(mod_exports, {
12
+ CHANGE_SOURCE_PATH: () => CHANGE_SOURCE_PATH,
13
+ ackRequestedSchema: () => ackRequestedSchema,
14
+ ackSchema: () => ackSchema,
15
+ addColumnSchema: () => addColumnSchema,
16
+ beginSchema: () => beginSchema,
17
+ changeSourceUpstreamSchema: () => changeSourceUpstreamSchema,
18
+ changeStreamControlSchema: () => changeStreamControlSchema,
19
+ changeStreamDataSchema: () => changeStreamDataSchema,
20
+ changeStreamMessageSchema: () => changeStreamMessageSchema,
21
+ commitSchema: () => commitSchema,
22
+ createIndexSchema: () => createIndexSchema,
23
+ createTableSchema: () => createTableSchema,
24
+ dataChangeSchema: () => dataChangeSchema,
25
+ deleteSchema: () => deleteSchema,
26
+ dropColumnSchema: () => dropColumnSchema,
27
+ dropIndexSchema: () => dropIndexSchema,
28
+ dropTableSchema: () => dropTableSchema,
29
+ insertSchema: () => insertSchema,
30
+ relationSchema: () => relationSchema,
31
+ renameTableSchema: () => renameTableSchema,
32
+ resetRequiredSchema: () => resetRequiredSchema,
33
+ rollbackSchema: () => rollbackSchema,
34
+ rowSchema: () => rowSchema,
35
+ truncateSchema: () => truncateSchema,
36
+ updateColumnSchema: () => updateColumnSchema,
37
+ updateSchema: () => updateSchema
38
+ });
39
+
40
+ // ../zero-cache/src/services/change-source/protocol/current/control.ts
41
+ var ackRequestedSchema = valita_exports.object({
42
+ tag: valita_exports.literal("ack-requested"),
43
+ /**
44
+ * If specified, indicates the latest watermark on upstream, which may encompass
45
+ * changes that are unrelated to the ChangeStreamer's subscription. If the
46
+ * ChangeStreamer has consumed and acked all of its data messages, it will include
47
+ * this watermark in its acknowledgment to indicate that it is caught up and
48
+ * upstream can purge its logs up to that watermark. If, on the other hand, it is
49
+ * still processing data messages, it will acknowledge immediately without a
50
+ * watermark to indicate that it is still "alive" but upstream logs still need to
51
+ * be preserved.
52
+ */
53
+ latestUpstreamWatermark: valita_exports.string().optional()
54
+ });
55
+ var resetRequiredSchema = valita_exports.object({ tag: valita_exports.literal("reset-required") });
56
+
57
+ // ../zero-cache/src/db/specs.ts
58
+ var pgTypeClassSchema = valita_exports.union(
59
+ valita_exports.literal("b" /* Base */),
60
+ valita_exports.literal("c" /* Composite */),
61
+ valita_exports.literal("d" /* Domain */),
62
+ valita_exports.literal("e" /* Enum */),
63
+ valita_exports.literal("p" /* Pseudo */),
64
+ valita_exports.literal("r" /* Range */),
65
+ valita_exports.literal("m" /* Multirange */)
66
+ );
67
+ var columnSpec = valita_exports.object({
68
+ pos: valita_exports.number(),
69
+ dataType: valita_exports.string(),
70
+ pgTypeClass: pgTypeClassSchema.optional(),
71
+ characterMaximumLength: valita_exports.number().nullable().optional(),
72
+ notNull: valita_exports.boolean().nullable().optional(),
73
+ dflt: valita_exports.string().nullable().optional()
74
+ });
75
+ var publishedColumnSpec = columnSpec.extend({
76
+ typeOID: valita_exports.number()
77
+ });
78
+ var liteTableSpec = valita_exports.object({
79
+ name: valita_exports.string(),
80
+ columns: valita_exports.record(columnSpec),
81
+ primaryKey: valita_exports.array(valita_exports.string())
82
+ });
83
+ var tableSpec = liteTableSpec.extend({
84
+ schema: valita_exports.string()
85
+ });
86
+ var publishedTableSpec = tableSpec.extend({
87
+ oid: valita_exports.number(),
88
+ columns: valita_exports.record(publishedColumnSpec),
89
+ publications: valita_exports.record(valita_exports.object({ rowFilter: valita_exports.string().nullable() }))
90
+ });
91
+ var directionSchema = valita_exports.union(valita_exports.literal("ASC"), valita_exports.literal("DESC"));
92
+ var liteIndexSpec = valita_exports.object({
93
+ name: valita_exports.string(),
94
+ tableName: valita_exports.string(),
95
+ unique: valita_exports.boolean(),
96
+ columns: valita_exports.record(directionSchema)
97
+ });
98
+ var indexSpec = liteIndexSpec.extend({
99
+ schema: valita_exports.string()
100
+ });
101
+
102
+ // ../zero-cache/src/types/bigint-json.ts
103
+ import {
104
+ parse as customParse,
105
+ stringify as customStringify
106
+ } from "json-custom-numbers";
107
+ var jsonValueSchema = valita_exports.lazy(() => {
108
+ const jsonObjectSchema2 = readonly(valita_exports.record(jsonValueSchema));
109
+ return valita_exports.union(
110
+ valita_exports.null(),
111
+ valita_exports.string(),
112
+ valita_exports.number(),
113
+ valita_exports.bigint(),
114
+ valita_exports.boolean(),
115
+ readonly(valita_exports.array(jsonValueSchema)),
116
+ jsonObjectSchema2
117
+ );
118
+ });
119
+ var jsonObjectSchema = readonly(valita_exports.record(jsonValueSchema));
120
+
121
+ // ../zero-cache/src/services/change-source/protocol/current/data.ts
122
+ var beginSchema = valita_exports.object({
123
+ tag: valita_exports.literal("begin")
124
+ });
125
+ var commitSchema = valita_exports.object({
126
+ tag: valita_exports.literal("commit")
127
+ });
128
+ var rollbackSchema = valita_exports.object({
129
+ tag: valita_exports.literal("rollback")
130
+ });
131
+ var relationSchema = valita_exports.object({
132
+ tag: valita_exports.literal("relation"),
133
+ schema: valita_exports.string(),
134
+ name: valita_exports.string(),
135
+ replicaIdentity: valita_exports.union(
136
+ valita_exports.literal("default"),
137
+ valita_exports.literal("nothing"),
138
+ valita_exports.literal("full"),
139
+ valita_exports.literal("index")
140
+ ),
141
+ keyColumns: valita_exports.array(valita_exports.string())
142
+ });
143
+ var rowSchema = valita_exports.record(jsonValueSchema);
144
+ var insertSchema = valita_exports.object({
145
+ tag: valita_exports.literal("insert"),
146
+ relation: relationSchema,
147
+ new: rowSchema
148
+ });
149
+ var updateSchema = valita_exports.object({
150
+ tag: valita_exports.literal("update"),
151
+ relation: relationSchema,
152
+ key: rowSchema.nullable(),
153
+ old: rowSchema.nullable(),
154
+ new: rowSchema
155
+ });
156
+ var deleteSchema = valita_exports.object({
157
+ tag: valita_exports.literal("delete"),
158
+ relation: relationSchema,
159
+ key: rowSchema
160
+ });
161
+ var truncateSchema = valita_exports.object({
162
+ tag: valita_exports.literal("truncate"),
163
+ relations: valita_exports.array(relationSchema)
164
+ });
165
+ var identifierSchema = valita_exports.object({
166
+ schema: valita_exports.string(),
167
+ name: valita_exports.string()
168
+ });
169
+ var createTableSchema = valita_exports.object({
170
+ tag: valita_exports.literal("create-table"),
171
+ spec: tableSpec
172
+ });
173
+ var renameTableSchema = valita_exports.object({
174
+ tag: valita_exports.literal("rename-table"),
175
+ old: identifierSchema,
176
+ new: identifierSchema
177
+ });
178
+ var columnSchema = valita_exports.object({
179
+ name: valita_exports.string(),
180
+ spec: columnSpec
181
+ });
182
+ var addColumnSchema = valita_exports.object({
183
+ tag: valita_exports.literal("add-column"),
184
+ table: identifierSchema,
185
+ column: columnSchema
186
+ });
187
+ var updateColumnSchema = valita_exports.object({
188
+ tag: valita_exports.literal("update-column"),
189
+ table: identifierSchema,
190
+ old: columnSchema,
191
+ new: columnSchema
192
+ });
193
+ var dropColumnSchema = valita_exports.object({
194
+ tag: valita_exports.literal("drop-column"),
195
+ table: identifierSchema,
196
+ column: valita_exports.string()
197
+ });
198
+ var dropTableSchema = valita_exports.object({
199
+ tag: valita_exports.literal("drop-table"),
200
+ id: identifierSchema
201
+ });
202
+ var createIndexSchema = valita_exports.object({
203
+ tag: valita_exports.literal("create-index"),
204
+ spec: indexSpec
205
+ });
206
+ var dropIndexSchema = valita_exports.object({
207
+ tag: valita_exports.literal("drop-index"),
208
+ id: identifierSchema
209
+ });
210
+ var dataChangeSchema = valita_exports.union(
211
+ insertSchema,
212
+ updateSchema,
213
+ deleteSchema,
214
+ truncateSchema,
215
+ createTableSchema,
216
+ renameTableSchema,
217
+ addColumnSchema,
218
+ updateColumnSchema,
219
+ dropColumnSchema,
220
+ dropTableSchema,
221
+ createIndexSchema,
222
+ dropIndexSchema
223
+ );
224
+
225
+ // ../zero-cache/src/services/change-source/protocol/current/downstream.ts
226
+ var begin = valita_exports.tuple([valita_exports.literal("begin"), beginSchema]);
227
+ var data = valita_exports.tuple([valita_exports.literal("data"), dataChangeSchema]);
228
+ var commit = valita_exports.tuple([
229
+ valita_exports.literal("commit"),
230
+ commitSchema,
231
+ valita_exports.object({ watermark: valita_exports.string() })
232
+ ]);
233
+ var rollback = valita_exports.tuple([valita_exports.literal("rollback"), rollbackSchema]);
234
+ var changeStreamDataSchema = valita_exports.union(begin, data, commit, rollback);
235
+ var changeStreamControlSchema = valita_exports.tuple([
236
+ valita_exports.literal("control"),
237
+ resetRequiredSchema
238
+ // TODO: Add statusRequestedSchema
239
+ ]);
240
+ var changeStreamMessageSchema = valita_exports.union(
241
+ changeStreamDataSchema,
242
+ changeStreamControlSchema
243
+ );
244
+
245
+ // ../zero-cache/src/services/change-source/protocol/current/path.ts
246
+ var CHANGE_SOURCE_PATH = "/changes/v0/stream";
247
+
248
+ // ../zero-cache/src/services/change-source/protocol/current/upstream.ts
249
+ var ackSchema = valita_exports.union(
250
+ valita_exports.tuple([valita_exports.literal("ack")]),
251
+ valita_exports.tuple([valita_exports.literal("ack"), valita_exports.object({ watermark: valita_exports.string() })])
252
+ );
253
+ var changeSourceUpstreamSchema = ackSchema;
254
+ export {
255
+ mod_exports as v0
256
+ };
257
+ //# sourceMappingURL=change-protocol.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../zero-cache/src/services/change-source/protocol/current/mod.ts", "../../zero-cache/src/services/change-source/protocol/current/control.ts", "../../zero-cache/src/db/specs.ts", "../../zero-cache/src/types/bigint-json.ts", "../../zero-cache/src/services/change-source/protocol/current/data.ts", "../../zero-cache/src/services/change-source/protocol/current/downstream.ts", "../../zero-cache/src/services/change-source/protocol/current/path.ts", "../../zero-cache/src/services/change-source/protocol/current/upstream.ts"],
4
+ "sourcesContent": ["export * from './control.js';\nexport * from './data.js';\nexport * from './downstream.js';\nexport * from './path.js';\nexport * from './upstream.js';\n", "/**\n * Control plane messages communicate non-content related signals between a\n * ChangeSource and ChangeStreamer. These are not forwarded to subscribers\n * of the ChangeStreamer.\n */\nimport * as v from '../../../../../../shared/src/valita.js';\n\n/**\n * Indicates that upstream has requested an acknowledgment from the ChangeStreamer,\n * often referred to as a heartbeat or keepalive message. The ChangeStreamer responds\n * to these messages immediately.\n */\nexport const ackRequestedSchema = v.object({\n tag: v.literal('ack-requested'),\n\n /**\n * If specified, indicates the latest watermark on upstream, which may encompass\n * changes that are unrelated to the ChangeStreamer's subscription. If the\n * ChangeStreamer has consumed and acked all of its data messages, it will include\n * this watermark in its acknowledgment to indicate that it is caught up and\n * upstream can purge its logs up to that watermark. If, on the other hand, it is\n * still processing data messages, it will acknowledge immediately without a\n * watermark to indicate that it is still \"alive\" but upstream logs still need to\n * be preserved.\n */\n latestUpstreamWatermark: v.string().optional(),\n});\n\n/**\n * Indicates that replication cannot continue and that the replica must be resynced\n * from scratch. The replication-manager will shutdown in response to this message,\n * and upon being restarted, it will wipe the current replica and resync if the\n * `--auto-reset` option is specified.\n *\n * This signal should only be used in well advertised scenarios, and is not suitable\n * as a common occurrence in production.\n */\nexport const resetRequiredSchema = v.object({tag: v.literal('reset-required')});\n", "import type {DeepReadonly} from '../../../shared/src/json.js';\nimport * as v from '../../../shared/src/valita.js';\nimport type {SchemaValue} from '../../../zero-schema/src/table-schema.js';\n\n// Values of the `typtype` column in https://www.postgresql.org/docs/17/catalog-pg-type.html#CATALOG-PG-TYPE\nexport enum PostgresTypeClass {\n Base = 'b',\n Composite = 'c',\n Domain = 'd',\n Enum = 'e',\n Pseudo = 'p',\n Range = 'r',\n Multirange = 'm',\n}\n\nexport const pgTypeClassSchema = v.union(\n v.literal(PostgresTypeClass.Base),\n v.literal(PostgresTypeClass.Composite),\n v.literal(PostgresTypeClass.Domain),\n v.literal(PostgresTypeClass.Enum),\n v.literal(PostgresTypeClass.Pseudo),\n v.literal(PostgresTypeClass.Range),\n v.literal(PostgresTypeClass.Multirange),\n);\n\nexport const columnSpec = v.object({\n pos: v.number(),\n dataType: v.string(),\n pgTypeClass: pgTypeClassSchema.optional(),\n characterMaximumLength: v.number().nullable().optional(),\n notNull: v.boolean().nullable().optional(),\n dflt: v.string().nullable().optional(),\n});\n\nexport type ColumnSpec = Readonly<v.Infer<typeof columnSpec>>;\n\nconst publishedColumnSpec = columnSpec.extend({\n typeOID: v.number(),\n});\n\nexport const liteTableSpec = v.object({\n name: v.string(),\n columns: v.record(columnSpec),\n primaryKey: v.array(v.string()),\n});\n\nexport const tableSpec = liteTableSpec.extend({\n schema: v.string(),\n});\n\nexport const publishedTableSpec = tableSpec.extend({\n oid: v.number(),\n columns: v.record(publishedColumnSpec),\n publications: v.record(v.object({rowFilter: v.string().nullable()})),\n});\n\nexport type LiteTableSpec = Readonly<v.Infer<typeof liteTableSpec>>;\n\nexport type LiteAndZqlSpec = {\n tableSpec: LiteTableSpec;\n zqlSpec: Record<string, SchemaValue>;\n};\n\nexport type TableSpec = Readonly<v.Infer<typeof tableSpec>>;\n\nexport type PublishedTableSpec = Readonly<v.Infer<typeof publishedTableSpec>>;\n\nexport const directionSchema = v.union(v.literal('ASC'), v.literal('DESC'));\n\nexport const liteIndexSpec = v.object({\n name: v.string(),\n tableName: v.string(),\n unique: v.boolean(),\n columns: v.record(directionSchema),\n});\n\nexport type MutableLiteIndexSpec = v.Infer<typeof liteIndexSpec>;\n\nexport type LiteIndexSpec = Readonly<MutableLiteIndexSpec>;\n\nexport const indexSpec = liteIndexSpec.extend({\n schema: v.string(),\n});\n\nexport type IndexSpec = DeepReadonly<v.Infer<typeof indexSpec>>;\n", "/**\n * Background for using `json-custom-numbers`:\n *\n * https://neon.tech/blog/parsing-json-from-postgres-in-js\n */\nimport {\n parse as customParse,\n stringify as customStringify,\n} from 'json-custom-numbers';\nimport * as v from '../../../shared/src/valita.js';\n\nfunction numberParser(_: unknown, v: string) {\n const n = +v;\n if (n >= Number.MIN_SAFE_INTEGER && n <= Number.MAX_SAFE_INTEGER) return n;\n if (v.indexOf('.') !== -1 || v.indexOf('e') !== -1 || v.indexOf('E') !== -1)\n return n;\n return BigInt(v);\n}\n\n// Variant of postgres.JSONValue adapted to include bigints\nexport type JSONValue =\n | null\n | string\n | number\n | bigint\n | boolean\n | Date // serialized as `string`\n | readonly JSONValue[]\n | JSONObject;\n\nexport type JSONObject = {readonly [prop: string]: JSONValue | undefined};\n\nexport const jsonValueSchema: v.Type<JSONValue> = v.lazy(() => {\n const jsonObjectSchema = v.readonly(v.record(jsonValueSchema));\n\n return v.union(\n v.null(),\n v.string(),\n v.number(),\n v.bigint(),\n v.boolean(),\n v.readonly(v.array(jsonValueSchema)),\n jsonObjectSchema,\n );\n});\n\nexport const jsonObjectSchema = v.readonly(v.record(jsonValueSchema));\n\n/**\n * Parses JSON strings that may contain arbitrarily large integers. Integers\n * larger than {@link Number.MAX_SAFE_INTEGER} are deserialized as a `bigint`.\n */\nexport function parse(\n str: string,\n reviver?: (k: string, v: unknown) => unknown,\n): JSONValue {\n return customParse(str, reviver, numberParser);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction customSerializer(_: string, v: any, type: string) {\n if (type === 'bigint') return v.toString();\n}\n\n/**\n * Stringifies objects to JSON, supporting objects containing bigint values.\n * Note that the resulting JSON string may not be deserializable by\n * all environments, but it is supported by Postgres. The string should be\n * deserialized with the corresponding {@link parse} method that will represent\n * large numbers as bigints. From there it is up to the application to suitably\n * handle bigints passed to downstream logic.\n */\nexport function stringify(\n obj: unknown,\n replacer?:\n | (string | number)[]\n | ((key: string, value: unknown) => unknown)\n | null,\n indent?: string | number,\n) {\n return customStringify(obj, replacer, indent, customSerializer);\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const BigIntJSON = {\n parse,\n stringify,\n} as const;\n", "/**\n * Data plane messages encapsulate changes that are sent by ChangeSources,\n * forwarded / fanned out to subscribers by the ChangeStreamerService, and\n * stored in the Change DB for catchup of old subscribers.\n */\n\nimport * as v from '../../../../../../shared/src/valita.js';\nimport {columnSpec, indexSpec, tableSpec} from '../../../../db/specs.js';\nimport {\n jsonValueSchema,\n type JSONObject,\n} from '../../../../types/bigint-json.js';\nimport type {Satisfies} from '../../../../types/satisfies.js';\n\nexport const beginSchema = v.object({\n tag: v.literal('begin'),\n});\n\nexport const commitSchema = v.object({\n tag: v.literal('commit'),\n});\n\nexport const rollbackSchema = v.object({\n tag: v.literal('rollback'),\n});\n\nexport const relationSchema = v.object({\n tag: v.literal('relation'),\n schema: v.string(),\n name: v.string(),\n replicaIdentity: v.union(\n v.literal('default'),\n v.literal('nothing'),\n v.literal('full'),\n v.literal('index'),\n ),\n keyColumns: v.array(v.string()),\n});\n\nexport const rowSchema = v.record(jsonValueSchema);\n\nexport const insertSchema = v.object({\n tag: v.literal('insert'),\n relation: relationSchema,\n new: rowSchema,\n});\n\nexport const updateSchema = v.object({\n tag: v.literal('update'),\n relation: relationSchema,\n key: rowSchema.nullable(),\n old: rowSchema.nullable(),\n new: rowSchema,\n});\n\nexport const deleteSchema = v.object({\n tag: v.literal('delete'),\n relation: relationSchema,\n key: rowSchema,\n});\n\nexport const truncateSchema = v.object({\n tag: v.literal('truncate'),\n relations: v.array(relationSchema),\n});\n\nconst identifierSchema = v.object({\n schema: v.string(),\n name: v.string(),\n});\n\nexport type Identifier = v.Infer<typeof identifierSchema>;\n\nexport const createTableSchema = v.object({\n tag: v.literal('create-table'),\n spec: tableSpec,\n});\n\nexport const renameTableSchema = v.object({\n tag: v.literal('rename-table'),\n old: identifierSchema,\n new: identifierSchema,\n});\n\nconst columnSchema = v.object({\n name: v.string(),\n spec: columnSpec,\n});\n\nexport const addColumnSchema = v.object({\n tag: v.literal('add-column'),\n table: identifierSchema,\n column: columnSchema,\n});\n\nexport const updateColumnSchema = v.object({\n tag: v.literal('update-column'),\n table: identifierSchema,\n old: columnSchema,\n new: columnSchema,\n});\n\nexport const dropColumnSchema = v.object({\n tag: v.literal('drop-column'),\n table: identifierSchema,\n column: v.string(),\n});\n\nexport const dropTableSchema = v.object({\n tag: v.literal('drop-table'),\n id: identifierSchema,\n});\n\nexport const createIndexSchema = v.object({\n tag: v.literal('create-index'),\n spec: indexSpec,\n});\n\nexport const dropIndexSchema = v.object({\n tag: v.literal('drop-index'),\n id: identifierSchema,\n});\n\nexport type MessageBegin = v.Infer<typeof beginSchema>;\nexport type MessageCommit = v.Infer<typeof commitSchema>;\nexport type MessageRollback = v.Infer<typeof rollbackSchema>;\n\nexport type MessageRelation = v.Infer<typeof relationSchema>;\nexport type MessageInsert = v.Infer<typeof insertSchema>;\nexport type MessageUpdate = v.Infer<typeof updateSchema>;\nexport type MessageDelete = v.Infer<typeof deleteSchema>;\nexport type MessageTruncate = v.Infer<typeof truncateSchema>;\n\nexport type TableCreate = v.Infer<typeof createTableSchema>;\nexport type TableRename = v.Infer<typeof renameTableSchema>;\nexport type ColumnAdd = v.Infer<typeof addColumnSchema>;\nexport type ColumnUpdate = v.Infer<typeof updateColumnSchema>;\nexport type ColumnDrop = v.Infer<typeof dropColumnSchema>;\nexport type TableDrop = v.Infer<typeof dropTableSchema>;\nexport type IndexCreate = v.Infer<typeof createIndexSchema>;\nexport type IndexDrop = v.Infer<typeof dropIndexSchema>;\n\nexport const dataChangeSchema = v.union(\n insertSchema,\n updateSchema,\n deleteSchema,\n truncateSchema,\n createTableSchema,\n renameTableSchema,\n addColumnSchema,\n updateColumnSchema,\n dropColumnSchema,\n dropTableSchema,\n createIndexSchema,\n dropIndexSchema,\n);\n\nexport type DataChange = Satisfies<\n JSONObject, // guarantees serialization over IPC or network\n v.Infer<typeof dataChangeSchema>\n>;\n\nexport type Change =\n | MessageBegin\n | DataChange\n | MessageCommit\n | MessageRollback;\n\nexport type ChangeTag = Change['tag'];\n", "import * as v from '../../../../../../shared/src/valita.js';\nimport {resetRequiredSchema} from './control.js';\nimport {\n beginSchema,\n commitSchema,\n dataChangeSchema,\n rollbackSchema,\n} from './data.js';\n\nconst begin = v.tuple([v.literal('begin'), beginSchema]);\nconst data = v.tuple([v.literal('data'), dataChangeSchema]);\nconst commit = v.tuple([\n v.literal('commit'),\n commitSchema,\n v.object({watermark: v.string()}),\n]);\nconst rollback = v.tuple([v.literal('rollback'), rollbackSchema]);\n\nexport type Begin = v.Infer<typeof begin>;\nexport type Data = v.Infer<typeof data>;\nexport type Commit = v.Infer<typeof commit>;\nexport type Rollback = v.Infer<typeof rollback>;\n\nexport const changeStreamDataSchema = v.union(begin, data, commit, rollback);\nexport type ChangeStreamData = v.Infer<typeof changeStreamDataSchema>;\n\nexport const changeStreamControlSchema = v.tuple([\n v.literal('control'),\n resetRequiredSchema, // TODO: Add statusRequestedSchema\n]);\nexport type ChangeStreamControl = v.Infer<typeof changeStreamControlSchema>;\n\n/** Downstream messages consist of data plane and control plane messages. */\nexport const changeStreamMessageSchema = v.union(\n changeStreamDataSchema,\n changeStreamControlSchema,\n);\n\nexport type ChangeStreamMessage = v.Infer<typeof changeStreamMessageSchema>;\n", "/**\n * The path required for a custom Change Source endpoint implementing the\n * Change Source protocol. The version in the path indicates the current\n * (i.e. latest) protocol version of the code, and is the only protocol\n * supported by the code.\n *\n * Eventually, when a backwards incompatible change is made to the protocol,\n * the version will be bumped to ensure that the protocol is only used for an\n * endpoint that explicitly understands it. (While the protocol is in flux\n * and being developed, a starting \"v0\" version will not follow this\n * convention.)\n *\n * Historic versions are kept in the source code (e.g. v1, v2, etc.) to\n * allow Change Source implementations to import and support multiple\n * versions simultaneously. This is necessary to seamlessly transitioning\n * from a `zero-cache` speaking one version to a `zero-cache` speaking\n * another.\n */\nexport const CHANGE_SOURCE_PATH = '/changes/v0/stream';\n", "import * as v from '../../../../../../shared/src/valita.js';\n\n/**\n * An acknowledgement is sent from the Change Streamer to the Change Source to\n * either or both:\n * * Indicate that it is connected and running, e.g. in response to an\n * \"ack-requested\" message.\n * * Indicate that it is caught up to a specific `watermark`.\n */\nexport const ackSchema = v.union(\n v.tuple([v.literal('ack')]),\n v.tuple([v.literal('ack'), v.object({watermark: v.string()})]),\n);\n\n/** At the moment, the only upstream messages are acks. */\nexport const changeSourceUpstreamSchema = ackSchema;\nexport type ChangeSourceUpstream = v.Infer<typeof changeSourceUpstreamSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["jsonObjectSchema"]
7
+ }