@rocicorp/zero 0.25.0-canary.2 → 0.25.0-canary.23

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 (1582) hide show
  1. package/out/analyze-query/src/bin-analyze.js +268 -257
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/analyze-query/src/bin-transform.js +31 -23
  4. package/out/analyze-query/src/bin-transform.js.map +1 -1
  5. package/out/analyze-query/src/explain-queries.js +13 -16
  6. package/out/analyze-query/src/explain-queries.js.map +1 -1
  7. package/out/analyze-query/src/run-ast.d.ts +3 -2
  8. package/out/analyze-query/src/run-ast.d.ts.map +1 -1
  9. package/out/analyze-query/src/run-ast.js +76 -74
  10. package/out/analyze-query/src/run-ast.js.map +1 -1
  11. package/out/ast-to-zql/src/ast-to-zql.js +146 -180
  12. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
  13. package/out/ast-to-zql/src/bin.js +51 -54
  14. package/out/ast-to-zql/src/bin.js.map +1 -1
  15. package/out/ast-to-zql/src/format.js +15 -14
  16. package/out/ast-to-zql/src/format.js.map +1 -1
  17. package/out/datadog/src/datadog-log-sink.js +223 -0
  18. package/out/datadog/src/datadog-log-sink.js.map +1 -0
  19. package/out/otel/src/enabled.js +15 -15
  20. package/out/otel/src/enabled.js.map +1 -1
  21. package/out/otel/src/log-options.js +36 -31
  22. package/out/otel/src/log-options.js.map +1 -1
  23. package/out/otel/src/maybe-time.js +14 -11
  24. package/out/otel/src/maybe-time.js.map +1 -1
  25. package/out/otel/src/span.js +30 -27
  26. package/out/otel/src/span.js.map +1 -1
  27. package/out/otel/src/test-log-config.js +10 -7
  28. package/out/otel/src/test-log-config.js.map +1 -1
  29. package/out/otel/src/version.js +5 -2
  30. package/out/otel/src/version.js.map +1 -1
  31. package/out/replicache/src/async-iterable-to-array.js +11 -0
  32. package/out/replicache/src/async-iterable-to-array.js.map +1 -0
  33. package/out/replicache/src/bg-interval.js +38 -0
  34. package/out/replicache/src/bg-interval.js.map +1 -0
  35. package/out/replicache/src/btree/diff.js +8 -0
  36. package/out/replicache/src/btree/diff.js.map +1 -0
  37. package/out/replicache/src/btree/node.js +400 -0
  38. package/out/replicache/src/btree/node.js.map +1 -0
  39. package/out/replicache/src/btree/read.d.ts +3 -2
  40. package/out/replicache/src/btree/read.d.ts.map +1 -1
  41. package/out/replicache/src/btree/read.js +266 -0
  42. package/out/replicache/src/btree/read.js.map +1 -0
  43. package/out/replicache/src/btree/splice.js +83 -0
  44. package/out/replicache/src/btree/splice.js.map +1 -0
  45. package/out/replicache/src/btree/write.d.ts +1 -1
  46. package/out/replicache/src/btree/write.d.ts.map +1 -1
  47. package/out/replicache/src/btree/write.js +163 -0
  48. package/out/replicache/src/btree/write.js.map +1 -0
  49. package/out/replicache/src/call-default-fetch.js +34 -0
  50. package/out/replicache/src/call-default-fetch.js.map +1 -0
  51. package/out/replicache/src/connection-loop-delegates.js +34 -0
  52. package/out/replicache/src/connection-loop-delegates.js.map +1 -0
  53. package/out/replicache/src/connection-loop.js +251 -0
  54. package/out/replicache/src/connection-loop.js.map +1 -0
  55. package/out/replicache/src/cookies.js +40 -0
  56. package/out/replicache/src/cookies.js.map +1 -0
  57. package/out/replicache/src/dag/chunk.js +59 -0
  58. package/out/replicache/src/dag/chunk.js.map +1 -0
  59. package/out/replicache/src/dag/gc.js +117 -0
  60. package/out/replicache/src/dag/gc.js.map +1 -0
  61. package/out/replicache/src/dag/key.js +20 -0
  62. package/out/replicache/src/dag/key.js.map +1 -0
  63. package/out/replicache/src/dag/lazy-store.d.ts +2 -1
  64. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
  65. package/out/replicache/src/dag/lazy-store.js +515 -0
  66. package/out/replicache/src/dag/lazy-store.js.map +1 -0
  67. package/out/replicache/src/dag/store-impl.js +183 -0
  68. package/out/replicache/src/dag/store-impl.js.map +1 -0
  69. package/out/replicache/src/dag/store.js +27 -0
  70. package/out/replicache/src/dag/store.js.map +1 -0
  71. package/out/replicache/src/dag/visitor.js +22 -0
  72. package/out/replicache/src/dag/visitor.js.map +1 -0
  73. package/out/replicache/src/db/commit.js +358 -0
  74. package/out/replicache/src/db/commit.js.map +1 -0
  75. package/out/replicache/src/db/index-operation-enum.js +7 -0
  76. package/out/replicache/src/db/index-operation-enum.js.map +1 -0
  77. package/out/replicache/src/db/index.js +134 -0
  78. package/out/replicache/src/db/index.js.map +1 -0
  79. package/out/replicache/src/db/meta-type-enum.js +7 -0
  80. package/out/replicache/src/db/meta-type-enum.js.map +1 -0
  81. package/out/replicache/src/db/read.d.ts +3 -2
  82. package/out/replicache/src/db/read.d.ts.map +1 -1
  83. package/out/replicache/src/db/read.js +72 -0
  84. package/out/replicache/src/db/read.js.map +1 -0
  85. package/out/replicache/src/db/rebase.d.ts +2 -2
  86. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  87. package/out/replicache/src/db/rebase.js +85 -0
  88. package/out/replicache/src/db/rebase.js.map +1 -0
  89. package/out/replicache/src/db/write.d.ts +2 -1
  90. package/out/replicache/src/db/write.d.ts.map +1 -1
  91. package/out/replicache/src/db/write.js +296 -0
  92. package/out/replicache/src/db/write.js.map +1 -0
  93. package/out/replicache/src/deleted-clients.js +104 -0
  94. package/out/replicache/src/deleted-clients.js.map +1 -0
  95. package/out/replicache/src/error-responses.js +34 -0
  96. package/out/replicache/src/error-responses.js.map +1 -0
  97. package/out/replicache/src/format-version-enum.js +11 -0
  98. package/out/replicache/src/format-version-enum.js.map +1 -0
  99. package/out/{chunk-EZM3XBAB.js → replicache/src/frozen-json.js} +8 -75
  100. package/out/replicache/src/frozen-json.js.map +1 -0
  101. package/out/replicache/src/get-default-puller.js +61 -0
  102. package/out/replicache/src/get-default-puller.js.map +1 -0
  103. package/out/replicache/src/get-default-pusher.js +39 -0
  104. package/out/replicache/src/get-default-pusher.js.map +1 -0
  105. package/out/replicache/src/get-kv-store-provider.js +23 -0
  106. package/out/replicache/src/get-kv-store-provider.js.map +1 -0
  107. package/out/replicache/src/hash.js +38 -0
  108. package/out/replicache/src/hash.js.map +1 -0
  109. package/out/replicache/src/http-request-info.js +10 -0
  110. package/out/replicache/src/http-request-info.js.map +1 -0
  111. package/out/replicache/src/http-status-unauthorized.js +5 -0
  112. package/out/replicache/src/http-status-unauthorized.js.map +1 -0
  113. package/out/replicache/src/index-defs.js +32 -0
  114. package/out/replicache/src/index-defs.js.map +1 -0
  115. package/out/replicache/src/invoke-kind-enum.js +7 -0
  116. package/out/replicache/src/invoke-kind-enum.js.map +1 -0
  117. package/out/{chunk-ZZXMKAAG.js → replicache/src/kv/expo-sqlite/store.js} +8 -16
  118. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
  119. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +80 -0
  120. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
  121. package/out/replicache/src/kv/idb-store.js +183 -0
  122. package/out/replicache/src/kv/idb-store.js.map +1 -0
  123. package/out/replicache/src/kv/mem-store.js +51 -0
  124. package/out/replicache/src/kv/mem-store.js.map +1 -0
  125. package/out/{op-sqlite.js → replicache/src/kv/op-sqlite/store.js} +7 -18
  126. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
  127. package/out/replicache/src/kv/op-sqlite/types.js +6 -0
  128. package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
  129. package/out/replicache/src/kv/read-impl.js +27 -0
  130. package/out/replicache/src/kv/read-impl.js.map +1 -0
  131. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  132. package/out/{chunk-ECUMGQGC.js → replicache/src/kv/sqlite-store.js} +27 -21
  133. package/out/replicache/src/kv/sqlite-store.js.map +1 -0
  134. package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
  135. package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
  136. package/out/replicache/src/kv/write-impl-base.js +57 -0
  137. package/out/replicache/src/kv/write-impl-base.js.map +1 -0
  138. package/out/replicache/src/kv/write-impl.js +30 -0
  139. package/out/replicache/src/kv/write-impl.js.map +1 -0
  140. package/out/replicache/src/lazy.js +13 -0
  141. package/out/replicache/src/lazy.js.map +1 -0
  142. package/out/replicache/src/log-options.js +9 -0
  143. package/out/replicache/src/log-options.js.map +1 -0
  144. package/out/replicache/src/make-idb-name.js +13 -0
  145. package/out/replicache/src/make-idb-name.js.map +1 -0
  146. package/out/replicache/src/new-client-channel.js +51 -0
  147. package/out/replicache/src/new-client-channel.js.map +1 -0
  148. package/out/replicache/src/on-persist-channel.js +36 -0
  149. package/out/replicache/src/on-persist-channel.js.map +1 -0
  150. package/out/replicache/src/patch-operation.js +42 -0
  151. package/out/replicache/src/patch-operation.js.map +1 -0
  152. package/out/replicache/src/pending-mutations.js +16 -0
  153. package/out/replicache/src/pending-mutations.js.map +1 -0
  154. package/out/replicache/src/persist/client-gc.js +58 -0
  155. package/out/replicache/src/persist/client-gc.js.map +1 -0
  156. package/out/replicache/src/persist/client-group-gc.js +43 -0
  157. package/out/replicache/src/persist/client-group-gc.js.map +1 -0
  158. package/out/replicache/src/persist/client-groups.js +184 -0
  159. package/out/replicache/src/persist/client-groups.js.map +1 -0
  160. package/out/replicache/src/persist/clients.d.ts +3 -2
  161. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  162. package/out/replicache/src/persist/clients.js +353 -0
  163. package/out/replicache/src/persist/clients.js.map +1 -0
  164. package/out/replicache/src/persist/collect-idb-databases.js +188 -0
  165. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
  166. package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
  167. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  168. package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
  169. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  170. package/out/replicache/src/persist/heartbeat.js +48 -0
  171. package/out/replicache/src/persist/heartbeat.js.map +1 -0
  172. package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
  173. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  174. package/out/replicache/src/persist/idb-databases-store.d.ts +1 -0
  175. package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -1
  176. package/out/replicache/src/persist/idb-databases-store.js +103 -0
  177. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  178. package/out/replicache/src/persist/make-client-id.js +12 -0
  179. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  180. package/out/replicache/src/persist/persist.d.ts +2 -2
  181. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  182. package/out/replicache/src/persist/persist.js +183 -0
  183. package/out/replicache/src/persist/persist.js.map +1 -0
  184. package/out/replicache/src/persist/refresh.d.ts +4 -3
  185. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  186. package/out/replicache/src/persist/refresh.js +198 -0
  187. package/out/replicache/src/persist/refresh.js.map +1 -0
  188. package/out/replicache/src/process-scheduler.js +96 -0
  189. package/out/replicache/src/process-scheduler.js.map +1 -0
  190. package/out/replicache/src/pusher.js +33 -0
  191. package/out/replicache/src/pusher.js.map +1 -0
  192. package/out/replicache/src/replicache-impl.d.ts +1 -1
  193. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  194. package/out/replicache/src/replicache-impl.js +1200 -0
  195. package/out/replicache/src/replicache-impl.js.map +1 -0
  196. package/out/replicache/src/replicache-options.d.ts +3 -2
  197. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  198. package/out/replicache/src/report-error.js +6 -0
  199. package/out/replicache/src/report-error.js.map +1 -0
  200. package/out/replicache/src/request-idle.js +13 -0
  201. package/out/replicache/src/request-idle.js.map +1 -0
  202. package/out/replicache/src/scan-iterator.js +146 -0
  203. package/out/replicache/src/scan-iterator.js.map +1 -0
  204. package/out/replicache/src/scan-options.js +45 -0
  205. package/out/replicache/src/scan-options.js.map +1 -0
  206. package/out/replicache/src/set-interval-with-signal.js +12 -0
  207. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  208. package/out/replicache/src/subscriptions.js +355 -0
  209. package/out/replicache/src/subscriptions.js.map +1 -0
  210. package/out/replicache/src/sync/diff.d.ts +3 -2
  211. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  212. package/out/replicache/src/sync/diff.js +72 -0
  213. package/out/replicache/src/sync/diff.js.map +1 -0
  214. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  215. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  216. package/out/replicache/src/sync/ids.js +9 -0
  217. package/out/replicache/src/sync/ids.js.map +1 -0
  218. package/out/replicache/src/sync/patch.js +49 -0
  219. package/out/replicache/src/sync/patch.js.map +1 -0
  220. package/out/replicache/src/sync/pull-error.js +16 -0
  221. package/out/replicache/src/sync/pull-error.js.map +1 -0
  222. package/out/replicache/src/sync/pull.d.ts +3 -2
  223. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  224. package/out/replicache/src/sync/pull.js +301 -0
  225. package/out/replicache/src/sync/pull.js.map +1 -0
  226. package/out/replicache/src/sync/push.js +88 -0
  227. package/out/replicache/src/sync/push.js.map +1 -0
  228. package/out/replicache/src/sync/request-id.js +20 -0
  229. package/out/replicache/src/sync/request-id.js.map +1 -0
  230. package/out/replicache/src/sync/sync-head-name.js +5 -0
  231. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  232. package/out/replicache/src/to-error.js +10 -0
  233. package/out/replicache/src/to-error.js.map +1 -0
  234. package/out/replicache/src/transaction-closed-error.js +19 -0
  235. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  236. package/out/replicache/src/transactions.js +152 -0
  237. package/out/replicache/src/transactions.js.map +1 -0
  238. package/out/replicache/src/version.js +5 -0
  239. package/out/replicache/src/version.js.map +1 -0
  240. package/out/replicache/src/with-transactions.js +28 -0
  241. package/out/replicache/src/with-transactions.js.map +1 -0
  242. package/out/shared/src/abort-error.js +6 -3
  243. package/out/shared/src/abort-error.js.map +1 -1
  244. package/out/shared/src/arrays.js +45 -43
  245. package/out/shared/src/arrays.js.map +1 -1
  246. package/out/shared/src/asserts.js +64 -68
  247. package/out/shared/src/asserts.js.map +1 -1
  248. package/out/shared/src/bigint-json.js +38 -42
  249. package/out/shared/src/bigint-json.js.map +1 -1
  250. package/out/shared/src/binary-search.js +18 -29
  251. package/out/shared/src/binary-search.js.map +1 -1
  252. package/out/shared/src/broadcast-channel.js +24 -0
  253. package/out/shared/src/broadcast-channel.js.map +1 -0
  254. package/out/shared/src/browser-env.js +25 -0
  255. package/out/shared/src/browser-env.js.map +1 -0
  256. package/out/shared/src/btree-set.js +464 -507
  257. package/out/shared/src/btree-set.js.map +1 -1
  258. package/out/shared/src/cache.js +34 -38
  259. package/out/shared/src/cache.js.map +1 -1
  260. package/out/shared/src/centroid.js +24 -24
  261. package/out/shared/src/centroid.js.map +1 -1
  262. package/out/shared/src/config.js +6 -3
  263. package/out/shared/src/config.js.map +1 -1
  264. package/out/shared/src/custom-key-map.js +58 -64
  265. package/out/shared/src/custom-key-map.js.map +1 -1
  266. package/out/shared/src/custom-key-set.js +51 -57
  267. package/out/shared/src/custom-key-set.js.map +1 -1
  268. package/out/shared/src/deep-clone.js +46 -0
  269. package/out/shared/src/deep-clone.js.map +1 -0
  270. package/out/shared/src/deep-merge.d.ts +26 -4
  271. package/out/shared/src/deep-merge.d.ts.map +1 -1
  272. package/out/shared/src/deep-merge.js +28 -0
  273. package/out/shared/src/deep-merge.js.map +1 -0
  274. package/out/shared/src/document-visible.js +74 -0
  275. package/out/shared/src/document-visible.js.map +1 -0
  276. package/out/shared/src/dotenv.js +5 -7
  277. package/out/shared/src/dotenv.js.map +1 -1
  278. package/out/shared/src/error.js +57 -56
  279. package/out/shared/src/error.js.map +1 -1
  280. package/out/shared/src/has-own.js +5 -3
  281. package/out/shared/src/has-own.js.map +1 -1
  282. package/out/shared/src/hash.js +15 -14
  283. package/out/shared/src/hash.js.map +1 -1
  284. package/out/shared/src/iterables.d.ts +0 -1
  285. package/out/shared/src/iterables.d.ts.map +1 -1
  286. package/out/shared/src/iterables.js +44 -80
  287. package/out/shared/src/iterables.js.map +1 -1
  288. package/out/shared/src/json-schema.js +30 -33
  289. package/out/shared/src/json-schema.js.map +1 -1
  290. package/out/shared/src/json.js +128 -143
  291. package/out/shared/src/json.js.map +1 -1
  292. package/out/shared/src/logging-test-utils.js +12 -19
  293. package/out/shared/src/logging-test-utils.js.map +1 -1
  294. package/out/shared/src/logging.d.ts.map +1 -1
  295. package/out/shared/src/logging.js +99 -83
  296. package/out/shared/src/logging.js.map +1 -1
  297. package/out/shared/src/must.js +9 -7
  298. package/out/shared/src/must.js.map +1 -1
  299. package/out/shared/src/navigator.js +5 -0
  300. package/out/shared/src/navigator.js.map +1 -0
  301. package/out/shared/src/object-traversal.d.ts +19 -0
  302. package/out/shared/src/object-traversal.d.ts.map +1 -0
  303. package/out/shared/src/object-traversal.js +27 -0
  304. package/out/shared/src/object-traversal.js.map +1 -0
  305. package/out/shared/src/objects.js +21 -22
  306. package/out/shared/src/objects.js.map +1 -1
  307. package/out/shared/src/options.d.ts +2 -0
  308. package/out/shared/src/options.d.ts.map +1 -1
  309. package/out/shared/src/options.js +289 -318
  310. package/out/shared/src/options.js.map +1 -1
  311. package/out/shared/src/parse-big-int.js +12 -10
  312. package/out/shared/src/parse-big-int.js.map +1 -1
  313. package/out/shared/src/promise-race.js +20 -0
  314. package/out/shared/src/promise-race.js.map +1 -0
  315. package/out/shared/src/queue.js +119 -122
  316. package/out/shared/src/queue.js.map +1 -1
  317. package/out/shared/src/rand.js +8 -10
  318. package/out/shared/src/rand.js.map +1 -1
  319. package/out/shared/src/random-uint64.js +9 -0
  320. package/out/shared/src/random-uint64.js.map +1 -0
  321. package/out/shared/src/random-values.js +13 -0
  322. package/out/shared/src/random-values.js.map +1 -0
  323. package/out/shared/src/record-proxy.d.ts +13 -0
  324. package/out/shared/src/record-proxy.d.ts.map +1 -0
  325. package/out/shared/src/record-proxy.js +59 -0
  326. package/out/shared/src/record-proxy.js.map +1 -0
  327. package/out/shared/src/resolved-promises.js +12 -9
  328. package/out/shared/src/resolved-promises.js.map +1 -1
  329. package/out/shared/src/sentinels.js +13 -6
  330. package/out/shared/src/sentinels.js.map +1 -1
  331. package/out/shared/src/set-utils.js +63 -62
  332. package/out/shared/src/set-utils.js.map +1 -1
  333. package/out/shared/src/size-of-value.js +58 -0
  334. package/out/shared/src/size-of-value.js.map +1 -0
  335. package/out/shared/src/sleep.js +45 -53
  336. package/out/shared/src/sleep.js.map +1 -1
  337. package/out/shared/src/string-compare.js +12 -9
  338. package/out/shared/src/string-compare.js.map +1 -1
  339. package/out/shared/src/subscribable.js +34 -0
  340. package/out/shared/src/subscribable.js.map +1 -0
  341. package/out/shared/src/tdigest-schema.js +7 -7
  342. package/out/shared/src/tdigest-schema.js.map +1 -1
  343. package/out/shared/src/tdigest.js +247 -271
  344. package/out/shared/src/tdigest.js.map +1 -1
  345. package/out/shared/src/valita.js +195 -207
  346. package/out/shared/src/valita.js.map +1 -1
  347. package/out/z2s/src/compiler.d.ts +2 -2
  348. package/out/z2s/src/compiler.d.ts.map +1 -1
  349. package/out/z2s/src/compiler.js +439 -310
  350. package/out/z2s/src/compiler.js.map +1 -1
  351. package/out/z2s/src/sql.d.ts +1 -1
  352. package/out/z2s/src/sql.d.ts.map +1 -1
  353. package/out/z2s/src/sql.js +186 -218
  354. package/out/z2s/src/sql.js.map +1 -1
  355. package/out/zero/package.json.js +9 -0
  356. package/out/zero/package.json.js.map +1 -0
  357. package/out/zero/src/adapters/drizzle.d.ts +1 -1
  358. package/out/zero/src/adapters/drizzle.d.ts.map +1 -1
  359. package/out/zero/src/adapters/drizzle.js +8 -2
  360. package/out/zero/src/adapters/drizzle.js.map +1 -1
  361. package/out/zero/src/adapters/pg.js +7 -2
  362. package/out/zero/src/adapters/pg.js.map +1 -1
  363. package/out/zero/src/adapters/postgresjs.js +7 -2
  364. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  365. package/out/zero/src/analyze-query.js +1 -1
  366. package/out/zero/src/analyze-query.js.map +1 -1
  367. package/out/zero/src/ast-to-zql.js +1 -1
  368. package/out/zero/src/ast-to-zql.js.map +1 -1
  369. package/out/zero/src/bindings.d.ts +2 -0
  370. package/out/zero/src/bindings.d.ts.map +1 -0
  371. package/out/zero/src/bindings.js +27 -0
  372. package/out/zero/src/bindings.js.map +1 -0
  373. package/out/zero/src/build-schema.js +3 -5
  374. package/out/zero/src/build-schema.js.map +1 -1
  375. package/out/zero/src/change-protocol/v0.js +5 -3
  376. package/out/zero/src/change-protocol/v0.js.map +1 -1
  377. package/out/zero/src/cli.js +2 -2
  378. package/out/zero/src/cli.js.map +1 -1
  379. package/out/zero/src/deploy-permissions.js +1 -1
  380. package/out/zero/src/deploy-permissions.js.map +1 -1
  381. package/out/zero/src/expo-sqlite.js +5 -0
  382. package/out/zero/src/expo-sqlite.js.map +1 -0
  383. package/out/zero/src/op-sqlite.js +5 -0
  384. package/out/zero/src/op-sqlite.js.map +1 -0
  385. package/out/zero/src/pg.js +32 -3
  386. package/out/zero/src/pg.js.map +1 -1
  387. package/out/zero/src/react-native.js +13 -0
  388. package/out/zero/src/react-native.js.map +1 -0
  389. package/out/zero/src/react.js +15 -0
  390. package/out/zero/src/react.js.map +1 -0
  391. package/out/zero/src/server.js +28 -3
  392. package/out/zero/src/server.js.map +1 -1
  393. package/out/zero/src/solid.js +15 -0
  394. package/out/zero/src/solid.js.map +1 -0
  395. package/out/zero/src/sqlite.js +7 -0
  396. package/out/zero/src/sqlite.js.map +1 -0
  397. package/out/zero/src/transform-query.js +1 -1
  398. package/out/zero/src/transform-query.js.map +1 -1
  399. package/out/zero/src/zero-cache-dev.js +133 -105
  400. package/out/zero/src/zero-cache-dev.js.map +1 -1
  401. package/out/zero/src/zero-out.js +6 -6
  402. package/out/zero/src/zero-out.js.map +1 -1
  403. package/out/zero/src/zero.js +73 -0
  404. package/out/zero/src/zero.js.map +1 -0
  405. package/out/zero/src/zqlite.js +11 -3
  406. package/out/zero/src/zqlite.js.map +1 -1
  407. package/out/zero-cache/src/auth/jwt.d.ts +3 -0
  408. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
  409. package/out/zero-cache/src/auth/jwt.js +33 -38
  410. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  411. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  412. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  413. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  414. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  415. package/out/zero-cache/src/auth/read-authorizer.d.ts +1 -1
  416. package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
  417. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  418. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  419. package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
  420. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  421. package/out/zero-cache/src/auth/write-authorizer.js +395 -328
  422. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  423. package/out/zero-cache/src/config/network.js +42 -45
  424. package/out/zero-cache/src/config/network.js.map +1 -1
  425. package/out/zero-cache/src/config/normalize.js +86 -83
  426. package/out/zero-cache/src/config/normalize.js.map +1 -1
  427. package/out/zero-cache/src/config/zero-config.d.ts +63 -0
  428. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  429. package/out/zero-cache/src/config/zero-config.js +741 -682
  430. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  431. package/out/zero-cache/src/custom/fetch.d.ts +5 -5
  432. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  433. package/out/zero-cache/src/custom/fetch.js +170 -162
  434. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  435. package/out/zero-cache/src/custom-queries/transform-query.d.ts +10 -3
  436. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  437. package/out/zero-cache/src/custom-queries/transform-query.js +101 -109
  438. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  439. package/out/zero-cache/src/db/create.js +32 -36
  440. package/out/zero-cache/src/db/create.js.map +1 -1
  441. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  442. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  443. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  444. package/out/zero-cache/src/db/lite-tables.js +150 -174
  445. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  446. package/out/zero-cache/src/db/migration-lite.js +170 -165
  447. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  448. package/out/zero-cache/src/db/migration.js +157 -137
  449. package/out/zero-cache/src/db/migration.js.map +1 -1
  450. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  451. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  452. package/out/zero-cache/src/db/mode-enum.js +9 -3
  453. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  454. package/out/zero-cache/src/db/pg-copy.js +51 -90
  455. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  456. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  457. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  458. package/out/zero-cache/src/db/pg-to-lite.js +116 -97
  459. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  460. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  461. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  462. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  463. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  464. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  465. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  466. package/out/zero-cache/src/db/specs.d.ts +1 -7
  467. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  468. package/out/zero-cache/src/db/specs.js +66 -40
  469. package/out/zero-cache/src/db/specs.js.map +1 -1
  470. package/out/zero-cache/src/db/statements.d.ts +1 -1
  471. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  472. package/out/zero-cache/src/db/statements.js +59 -52
  473. package/out/zero-cache/src/db/statements.js.map +1 -1
  474. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  475. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  476. package/out/zero-cache/src/db/transaction-pool.js +372 -501
  477. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  478. package/out/zero-cache/src/db/warmup.js +25 -12
  479. package/out/zero-cache/src/db/warmup.js.map +1 -1
  480. package/out/zero-cache/src/observability/events.js +71 -82
  481. package/out/zero-cache/src/observability/events.js.map +1 -1
  482. package/out/zero-cache/src/observability/metrics.js +54 -32
  483. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  484. package/out/zero-cache/src/scripts/decommission.js +47 -43
  485. package/out/zero-cache/src/scripts/decommission.js.map +1 -1
  486. package/out/zero-cache/src/scripts/deploy-permissions.js +128 -118
  487. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  488. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  489. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  490. package/out/zero-cache/src/scripts/permissions.js +108 -100
  491. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  492. package/out/zero-cache/src/server/anonymous-otel-start.d.ts +10 -1
  493. package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +1 -1
  494. package/out/zero-cache/src/server/anonymous-otel-start.js +426 -366
  495. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  496. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  497. package/out/zero-cache/src/server/change-streamer.js +99 -64
  498. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  499. package/out/zero-cache/src/server/inspector-delegate.js +112 -109
  500. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  501. package/out/zero-cache/src/server/logging.d.ts +1 -1
  502. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  503. package/out/zero-cache/src/server/logging.js +26 -19
  504. package/out/zero-cache/src/server/logging.js.map +1 -1
  505. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  506. package/out/zero-cache/src/server/main.js +137 -120
  507. package/out/zero-cache/src/server/main.js.map +1 -1
  508. package/out/zero-cache/src/server/mutator.js +19 -0
  509. package/out/zero-cache/src/server/mutator.js.map +1 -0
  510. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  511. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  512. package/out/zero-cache/src/server/otel-diag-logger.js +48 -71
  513. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  514. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  515. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  516. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  517. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  518. package/out/zero-cache/src/server/otel-start.js +53 -68
  519. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  520. package/out/zero-cache/src/server/reaper.js +34 -26
  521. package/out/zero-cache/src/server/reaper.js.map +1 -1
  522. package/out/zero-cache/src/server/replicator.js +53 -31
  523. package/out/zero-cache/src/server/replicator.js.map +1 -1
  524. package/out/zero-cache/src/server/runner/main.js +6 -4
  525. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  526. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  527. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  528. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  529. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  530. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  531. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  532. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  533. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  534. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  535. package/out/zero-cache/src/server/syncer.js +130 -63
  536. package/out/zero-cache/src/server/syncer.js.map +1 -1
  537. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  538. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  539. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  540. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  541. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  542. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  543. package/out/zero-cache/src/server/worker-urls.js +21 -0
  544. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  545. package/out/zero-cache/src/services/analyze.d.ts +4 -9
  546. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  547. package/out/zero-cache/src/services/analyze.js +118 -121
  548. package/out/zero-cache/src/services/analyze.js.map +1 -1
  549. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  550. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  551. package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
  552. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  553. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  554. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  555. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  556. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  557. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  558. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  559. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  560. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  561. package/out/zero-cache/src/services/change-source/pg/change-source.js +622 -623
  562. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  563. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  564. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  565. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  566. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  567. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  568. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  569. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  570. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  571. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  572. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  573. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  574. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  575. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  576. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  577. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  578. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  579. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
  580. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  581. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  582. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  583. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  584. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
  585. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
  586. package/out/zero-cache/src/services/change-source/pg/schema/published.js +70 -76
  587. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  588. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  589. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  590. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  591. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  592. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  593. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  594. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  595. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
  596. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
  597. package/out/zero-cache/src/services/change-source/protocol/current/control.js +13 -19
  598. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  599. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  600. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  601. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
  602. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  603. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  604. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  605. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts +8 -0
  606. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts.map +1 -0
  607. package/out/zero-cache/src/services/change-source/protocol/current/json.js +19 -0
  608. package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
  609. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  610. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  611. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  612. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  613. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  614. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  615. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  616. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  617. package/out/zero-cache/src/services/change-source/protocol/current.d.ts +1 -0
  618. package/out/zero-cache/src/services/change-source/protocol/current.d.ts.map +1 -1
  619. package/out/zero-cache/src/services/change-source/protocol/current.js +38 -7
  620. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  621. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  622. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  623. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  624. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  625. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  626. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  627. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  628. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -4
  629. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  630. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +208 -157
  631. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  632. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  633. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  634. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +242 -349
  635. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  636. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
  637. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  638. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  639. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  640. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  641. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  642. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  643. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  644. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  645. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  646. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  647. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  648. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  649. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  650. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  651. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  652. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  653. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  654. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  655. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  656. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  657. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  658. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  659. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  660. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  661. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  662. package/out/zero-cache/src/services/change-streamer/storer.js +308 -353
  663. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  664. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  665. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  666. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  667. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  668. package/out/zero-cache/src/services/heapz.js +21 -25
  669. package/out/zero-cache/src/services/heapz.js.map +1 -1
  670. package/out/zero-cache/src/services/http-service.d.ts +5 -5
  671. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  672. package/out/zero-cache/src/services/http-service.js +57 -59
  673. package/out/zero-cache/src/services/http-service.js.map +1 -1
  674. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  675. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  676. package/out/zero-cache/src/services/life-cycle.js +216 -255
  677. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  678. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  679. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  680. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  681. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  682. package/out/zero-cache/src/services/litestream/commands.js +202 -154
  683. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  684. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  685. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  686. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  687. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  688. package/out/zero-cache/src/services/mutagen/mutagen.js +271 -267
  689. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  690. package/out/zero-cache/src/services/mutagen/pusher.d.ts +202 -2
  691. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  692. package/out/zero-cache/src/services/mutagen/pusher.js +354 -348
  693. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  694. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  695. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  696. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  697. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  698. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  699. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  700. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  701. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  702. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  703. package/out/zero-cache/src/services/replicator/replication-status.d.ts +2 -0
  704. package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
  705. package/out/zero-cache/src/services/replicator/replication-status.js +113 -83
  706. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  707. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  708. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  709. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  710. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  711. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  712. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  713. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  714. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  715. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  716. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  717. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  718. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  719. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  720. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  721. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  722. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  723. package/out/zero-cache/src/services/run-ast.js +91 -78
  724. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  725. package/out/zero-cache/src/services/runner.d.ts +1 -1
  726. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  727. package/out/zero-cache/src/services/runner.js +40 -40
  728. package/out/zero-cache/src/services/runner.js.map +1 -1
  729. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  730. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  731. package/out/zero-cache/src/services/running-state.js +122 -119
  732. package/out/zero-cache/src/services/running-state.js.map +1 -1
  733. package/out/zero-cache/src/services/statz.js +184 -162
  734. package/out/zero-cache/src/services/statz.js.map +1 -1
  735. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +2 -1
  736. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +1 -1
  737. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +56 -42
  738. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  739. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
  740. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  742. package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
  743. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  744. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +1 -1
  745. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  746. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +110 -96
  747. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  748. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -5
  749. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  750. package/out/zero-cache/src/services/view-syncer/cvr-store.js +676 -611
  751. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  752. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +4 -1
  753. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  754. package/out/zero-cache/src/services/view-syncer/cvr.js +643 -694
  755. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  756. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -60
  757. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  758. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  759. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  760. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  761. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  762. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +23 -22
  763. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  764. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +584 -461
  765. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  766. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  767. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  768. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  769. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  770. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +1 -0
  771. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  772. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +79 -131
  773. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  775. package/out/zero-cache/src/services/view-syncer/schema/init.js +207 -131
  776. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  777. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  778. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  779. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  780. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +5 -5
  781. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  782. package/out/zero-cache/src/services/view-syncer/snapshotter.js +309 -337
  783. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  784. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  785. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  786. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +5 -4
  787. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  788. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1514 -1311
  789. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  790. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  791. package/out/zero-cache/src/types/error-with-level.js +30 -21
  792. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  793. package/out/zero-cache/src/types/http.js +27 -14
  794. package/out/zero-cache/src/types/http.js.map +1 -1
  795. package/out/zero-cache/src/types/lexi-version.js +46 -31
  796. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  797. package/out/zero-cache/src/types/lite.js +118 -125
  798. package/out/zero-cache/src/types/lite.js.map +1 -1
  799. package/out/zero-cache/src/types/names.js +6 -3
  800. package/out/zero-cache/src/types/names.js.map +1 -1
  801. package/out/zero-cache/src/types/pg-data-type.js +74 -68
  802. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  803. package/out/zero-cache/src/types/pg-types.js +17 -72
  804. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  805. package/out/zero-cache/src/types/pg.d.ts +1 -1
  806. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  807. package/out/zero-cache/src/types/pg.js +213 -233
  808. package/out/zero-cache/src/types/pg.js.map +1 -1
  809. package/out/zero-cache/src/types/processes.d.ts +2 -2
  810. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  811. package/out/zero-cache/src/types/processes.js +95 -143
  812. package/out/zero-cache/src/types/processes.js.map +1 -1
  813. package/out/zero-cache/src/types/profiler.js +29 -30
  814. package/out/zero-cache/src/types/profiler.js.map +1 -1
  815. package/out/zero-cache/src/types/row-key.js +30 -68
  816. package/out/zero-cache/src/types/row-key.js.map +1 -1
  817. package/out/zero-cache/src/types/schema-versions.js +25 -19
  818. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  819. package/out/zero-cache/src/types/shards.js +50 -36
  820. package/out/zero-cache/src/types/shards.js.map +1 -1
  821. package/out/zero-cache/src/types/sql.js +9 -13
  822. package/out/zero-cache/src/types/sql.js.map +1 -1
  823. package/out/zero-cache/src/types/streams.js +245 -254
  824. package/out/zero-cache/src/types/streams.js.map +1 -1
  825. package/out/zero-cache/src/types/strings.js +14 -11
  826. package/out/zero-cache/src/types/strings.js.map +1 -1
  827. package/out/zero-cache/src/types/subscription.js +200 -259
  828. package/out/zero-cache/src/types/subscription.js.map +1 -1
  829. package/out/zero-cache/src/types/url-params.js +35 -30
  830. package/out/zero-cache/src/types/url-params.js.map +1 -1
  831. package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
  832. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  833. package/out/zero-cache/src/types/websocket-handoff.js +68 -76
  834. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  835. package/out/zero-cache/src/types/ws.js +56 -59
  836. package/out/zero-cache/src/types/ws.js.map +1 -1
  837. package/out/zero-cache/src/workers/connect-params.d.ts +1 -0
  838. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
  839. package/out/zero-cache/src/workers/connect-params.js +46 -40
  840. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  841. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  842. package/out/zero-cache/src/workers/connection.js +282 -243
  843. package/out/zero-cache/src/workers/connection.js.map +1 -1
  844. package/out/zero-cache/src/workers/mutator.js +24 -0
  845. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  846. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  847. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  848. package/out/zero-cache/src/workers/replicator.js +103 -106
  849. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  850. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  851. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +181 -147
  852. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  853. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  854. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  855. package/out/zero-cache/src/workers/syncer.js +192 -169
  856. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  857. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  858. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  859. package/out/zero-client/src/client/bindings.d.ts +13 -0
  860. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  861. package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
  862. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  863. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  864. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  865. package/out/zero-client/src/client/connection-manager.d.ts +20 -40
  866. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  867. package/out/zero-client/src/client/connection-manager.js +310 -0
  868. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  869. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  870. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  871. package/out/zero-client/src/client/connection.d.ts +47 -4
  872. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  873. package/out/zero-client/src/client/connection.js +110 -0
  874. package/out/zero-client/src/client/connection.js.map +1 -0
  875. package/out/zero-client/src/client/context.d.ts +9 -10
  876. package/out/zero-client/src/client/context.d.ts.map +1 -1
  877. package/out/zero-client/src/client/context.js +104 -0
  878. package/out/zero-client/src/client/context.js.map +1 -0
  879. package/out/zero-client/src/client/crud-impl.d.ts +11 -0
  880. package/out/zero-client/src/client/crud-impl.d.ts.map +1 -0
  881. package/out/zero-client/src/client/crud-impl.js +102 -0
  882. package/out/zero-client/src/client/crud-impl.js.map +1 -0
  883. package/out/zero-client/src/client/crud.d.ts +15 -46
  884. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  885. package/out/zero-client/src/client/crud.js +139 -0
  886. package/out/zero-client/src/client/crud.js.map +1 -0
  887. package/out/zero-client/src/client/custom.d.ts +51 -25
  888. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  889. package/out/zero-client/src/client/custom.js +87 -0
  890. package/out/zero-client/src/client/custom.js.map +1 -0
  891. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  892. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  893. package/out/zero-client/src/client/delete-clients-manager.js +98 -0
  894. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  895. package/out/zero-client/src/client/enable-analytics.js +18 -0
  896. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  897. package/out/zero-client/src/client/error.d.ts +30 -12
  898. package/out/zero-client/src/client/error.d.ts.map +1 -1
  899. package/out/zero-client/src/client/error.js +148 -0
  900. package/out/zero-client/src/client/error.js.map +1 -0
  901. package/out/zero-client/src/client/http-string.js +11 -0
  902. package/out/zero-client/src/client/http-string.js.map +1 -0
  903. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  904. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  905. package/out/zero-client/src/client/inspector/client.js +28 -0
  906. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  907. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  908. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  909. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  910. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  911. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  912. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  913. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  914. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  915. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  916. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  917. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  918. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  919. package/out/zero-client/src/client/inspector/query.js +82 -0
  920. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  921. package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
  922. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  923. package/out/zero-client/src/client/ivm-branch.js +156 -0
  924. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  925. package/out/zero-client/src/client/keys.js +45 -0
  926. package/out/zero-client/src/client/keys.js.map +1 -0
  927. package/out/zero-client/src/client/log-options.js +60 -0
  928. package/out/zero-client/src/client/log-options.js.map +1 -0
  929. package/out/zero-client/src/client/make-mutate-property.d.ts +40 -0
  930. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  931. package/out/zero-client/src/client/make-mutate-property.js +33 -0
  932. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  933. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  934. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  935. package/out/zero-client/src/client/make-replicache-mutators.js +108 -0
  936. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  937. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  938. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  939. package/out/zero-client/src/client/metrics.d.ts +2 -2
  940. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  941. package/out/zero-client/src/client/metrics.js +249 -0
  942. package/out/zero-client/src/client/metrics.js.map +1 -0
  943. package/out/zero-client/src/client/mutation-tracker.d.ts +12 -4
  944. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  945. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  946. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  947. package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
  948. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  949. package/out/zero-client/src/client/mutator-proxy.js +144 -0
  950. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  951. package/out/zero-client/src/client/options.d.ts +70 -10
  952. package/out/zero-client/src/client/options.d.ts.map +1 -1
  953. package/out/zero-client/src/client/options.js +11 -0
  954. package/out/zero-client/src/client/options.js.map +1 -0
  955. package/out/zero-client/src/client/query-manager.d.ts +9 -2
  956. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  957. package/out/zero-client/src/client/query-manager.js +377 -0
  958. package/out/zero-client/src/client/query-manager.js.map +1 -0
  959. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  960. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  961. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  962. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  963. package/out/zero-client/src/client/server-option.js +64 -0
  964. package/out/zero-client/src/client/server-option.js.map +1 -0
  965. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  966. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  967. package/out/zero-client/src/client/version.js +5 -0
  968. package/out/zero-client/src/client/version.js.map +1 -0
  969. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  970. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  971. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  972. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  973. package/out/zero-client/src/client/zero-rep.d.ts +3 -2
  974. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  975. package/out/zero-client/src/client/zero-rep.js +72 -0
  976. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  977. package/out/zero-client/src/client/zero.d.ts +106 -26
  978. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  979. package/out/zero-client/src/client/zero.js +1787 -0
  980. package/out/zero-client/src/client/zero.js.map +1 -0
  981. package/out/zero-client/src/mod.d.ts +24 -20
  982. package/out/zero-client/src/mod.d.ts.map +1 -1
  983. package/out/zero-client/src/types/query-result.d.ts +5 -4
  984. package/out/zero-client/src/types/query-result.d.ts.map +1 -1
  985. package/out/zero-client/src/util/nanoid.js +21 -0
  986. package/out/zero-client/src/util/nanoid.js.map +1 -0
  987. package/out/zero-client/src/util/socket.js +7 -0
  988. package/out/zero-client/src/util/socket.js.map +1 -0
  989. package/out/zero-events/src/status.d.ts +1 -1
  990. package/out/zero-events/src/status.d.ts.map +1 -1
  991. package/out/zero-protocol/src/analyze-query-result.d.ts +238 -1
  992. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  993. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  994. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  995. package/out/zero-protocol/src/application-error.d.ts +2 -8
  996. package/out/zero-protocol/src/application-error.d.ts.map +1 -1
  997. package/out/zero-protocol/src/application-error.js +35 -34
  998. package/out/zero-protocol/src/application-error.js.map +1 -1
  999. package/out/zero-protocol/src/ast.d.ts +2 -2
  1000. package/out/zero-protocol/src/ast.js +296 -277
  1001. package/out/zero-protocol/src/ast.js.map +1 -1
  1002. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  1003. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  1004. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  1005. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  1006. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  1007. package/out/zero-protocol/src/client-schema.js +40 -26
  1008. package/out/zero-protocol/src/client-schema.js.map +1 -1
  1009. package/out/zero-protocol/src/close-connection.js +11 -18
  1010. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1011. package/out/zero-protocol/src/connect.d.ts +4 -4
  1012. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1013. package/out/zero-protocol/src/connect.js +50 -51
  1014. package/out/zero-protocol/src/connect.js.map +1 -1
  1015. package/out/zero-protocol/src/custom-queries.d.ts +4 -4
  1016. package/out/zero-protocol/src/custom-queries.js +61 -39
  1017. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1018. package/out/zero-protocol/src/data.js +9 -4
  1019. package/out/zero-protocol/src/data.js.map +1 -1
  1020. package/out/zero-protocol/src/delete-clients.js +16 -9
  1021. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1022. package/out/zero-protocol/src/down.d.ts +107 -7
  1023. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1024. package/out/zero-protocol/src/down.js +20 -4
  1025. package/out/zero-protocol/src/down.js.map +1 -1
  1026. package/out/zero-protocol/src/error-kind-enum.js +41 -23
  1027. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1028. package/out/zero-protocol/src/error-origin-enum.js +9 -4
  1029. package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
  1030. package/out/zero-protocol/src/error-reason-enum.js +17 -8
  1031. package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
  1032. package/out/zero-protocol/src/error.d.ts +17 -17
  1033. package/out/zero-protocol/src/error.js +151 -89
  1034. package/out/zero-protocol/src/error.js.map +1 -1
  1035. package/out/zero-protocol/src/inspect-down.d.ts +321 -21
  1036. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1037. package/out/zero-protocol/src/inspect-down.js +72 -54
  1038. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1039. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1040. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1041. package/out/zero-protocol/src/inspect-up.js +39 -26
  1042. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1043. package/out/zero-protocol/src/mutation-id.js +9 -5
  1044. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  1045. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1046. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1047. package/out/zero-protocol/src/mutations-patch.js +16 -17
  1048. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1049. package/out/zero-protocol/src/ping.js +9 -4
  1050. package/out/zero-protocol/src/ping.js.map +1 -1
  1051. package/out/zero-protocol/src/poke.js +55 -72
  1052. package/out/zero-protocol/src/poke.js.map +1 -1
  1053. package/out/zero-protocol/src/pong.js +9 -4
  1054. package/out/zero-protocol/src/pong.js.map +1 -1
  1055. package/out/zero-protocol/src/primary-key.js +19 -5
  1056. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1057. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1058. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1059. package/out/zero-protocol/src/protocol-version.js +7 -58
  1060. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1061. package/out/zero-protocol/src/pull.js +26 -19
  1062. package/out/zero-protocol/src/pull.js.map +1 -1
  1063. package/out/zero-protocol/src/push.d.ts +4 -4
  1064. package/out/zero-protocol/src/push.js +179 -176
  1065. package/out/zero-protocol/src/push.js.map +1 -1
  1066. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1067. package/out/zero-protocol/src/queries-patch.js +29 -22
  1068. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1069. package/out/zero-protocol/src/query-hash.js +18 -14
  1070. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1071. package/out/zero-protocol/src/row-patch.js +29 -20
  1072. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1073. package/out/zero-protocol/src/up.d.ts +6 -5
  1074. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1075. package/out/zero-protocol/src/up.js +18 -4
  1076. package/out/zero-protocol/src/up.js.map +1 -1
  1077. package/out/zero-protocol/src/version.js +9 -4
  1078. package/out/zero-protocol/src/version.js.map +1 -1
  1079. package/out/zero-react/src/bindings.d.ts +2 -0
  1080. package/out/zero-react/src/bindings.d.ts.map +1 -0
  1081. package/out/zero-react/src/mod.d.ts +2 -13
  1082. package/out/zero-react/src/mod.d.ts.map +1 -1
  1083. package/out/zero-react/src/use-connection-state.d.ts +9 -0
  1084. package/out/zero-react/src/use-connection-state.d.ts.map +1 -0
  1085. package/out/zero-react/src/use-connection-state.js +14 -0
  1086. package/out/zero-react/src/use-connection-state.js.map +1 -0
  1087. package/out/zero-react/src/use-query.d.ts +5 -9
  1088. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1089. package/out/zero-react/src/use-query.js +289 -0
  1090. package/out/zero-react/src/use-query.js.map +1 -0
  1091. package/out/zero-react/src/use-zero-online.d.ts +1 -1
  1092. package/out/zero-react/src/use-zero-online.js +14 -0
  1093. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1094. package/out/zero-react/src/zero-provider.d.ts +19 -10
  1095. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1096. package/out/zero-react/src/zero-provider.js +77 -0
  1097. package/out/zero-react/src/zero-provider.js.map +1 -0
  1098. package/out/zero-react/src/zero.d.ts +2 -0
  1099. package/out/zero-react/src/zero.d.ts.map +1 -0
  1100. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1101. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1102. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1103. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1104. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1105. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1106. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1107. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1108. package/out/zero-schema/src/compiled-permissions.js +23 -19
  1109. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1110. package/out/zero-schema/src/name-mapper.js +43 -38
  1111. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1112. package/out/zero-schema/src/permissions.d.ts +12 -9
  1113. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1114. package/out/zero-schema/src/permissions.js +193 -0
  1115. package/out/zero-schema/src/permissions.js.map +1 -0
  1116. package/out/zero-schema/src/schema-config.d.ts +1 -1
  1117. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1118. package/out/zero-schema/src/schema-config.js +35 -51
  1119. package/out/zero-schema/src/schema-config.js.map +1 -1
  1120. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1121. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1122. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1123. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1124. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1125. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1126. package/out/zero-server/src/adapters/pg.js +54 -74
  1127. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1128. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1129. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1130. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1131. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1132. package/out/zero-server/src/custom.d.ts +57 -19
  1133. package/out/zero-server/src/custom.d.ts.map +1 -1
  1134. package/out/zero-server/src/custom.js +289 -107
  1135. package/out/zero-server/src/custom.js.map +1 -1
  1136. package/out/zero-server/src/logging.js +7 -4
  1137. package/out/zero-server/src/logging.js.map +1 -1
  1138. package/out/zero-server/src/mod.d.ts +1 -1
  1139. package/out/zero-server/src/mod.d.ts.map +1 -1
  1140. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1141. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1142. package/out/zero-server/src/pg-query-executor.js +20 -0
  1143. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1144. package/out/zero-server/src/process-mutations.d.ts +13 -13
  1145. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1146. package/out/zero-server/src/process-mutations.js +328 -272
  1147. package/out/zero-server/src/process-mutations.js.map +1 -1
  1148. package/out/zero-server/src/push-processor.d.ts +5 -3
  1149. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1150. package/out/zero-server/src/push-processor.js +50 -32
  1151. package/out/zero-server/src/push-processor.js.map +1 -1
  1152. package/out/zero-server/src/queries/process-queries.d.ts +76 -3
  1153. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1154. package/out/zero-server/src/queries/process-queries.js +104 -93
  1155. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1156. package/out/zero-server/src/schema.d.ts +2 -2
  1157. package/out/zero-server/src/schema.d.ts.map +1 -1
  1158. package/out/zero-server/src/schema.js +136 -124
  1159. package/out/zero-server/src/schema.js.map +1 -1
  1160. package/out/zero-server/src/zql-database.d.ts +9 -6
  1161. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1162. package/out/zero-server/src/zql-database.js +56 -51
  1163. package/out/zero-server/src/zql-database.js.map +1 -1
  1164. package/out/zero-solid/src/bindings.d.ts +2 -0
  1165. package/out/zero-solid/src/bindings.d.ts.map +1 -0
  1166. package/out/zero-solid/src/mod.d.ts +1 -9
  1167. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1168. package/out/zero-solid/src/solid-view.d.ts +3 -5
  1169. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1170. package/out/{solid.js → zero-solid/src/solid-view.js} +47 -196
  1171. package/out/zero-solid/src/solid-view.js.map +1 -0
  1172. package/out/zero-solid/src/{use-zero-connection-state.d.ts → use-connection-state.d.ts} +3 -3
  1173. package/out/zero-solid/src/use-connection-state.d.ts.map +1 -0
  1174. package/out/zero-solid/src/use-connection-state.js +17 -0
  1175. package/out/zero-solid/src/use-connection-state.js.map +1 -0
  1176. package/out/zero-solid/src/use-query.d.ts +4 -7
  1177. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1178. package/out/zero-solid/src/use-query.js +92 -0
  1179. package/out/zero-solid/src/use-query.js.map +1 -0
  1180. package/out/zero-solid/src/use-zero-online.d.ts +1 -1
  1181. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1182. package/out/zero-solid/src/use-zero-online.js +15 -0
  1183. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1184. package/out/zero-solid/src/use-zero.d.ts +22 -11
  1185. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1186. package/out/zero-solid/src/use-zero.js +86 -0
  1187. package/out/zero-solid/src/use-zero.js.map +1 -0
  1188. package/out/zero-solid/src/zero.d.ts +2 -0
  1189. package/out/zero-solid/src/zero.d.ts.map +1 -0
  1190. package/out/zero-types/src/default-types.d.ts +38 -0
  1191. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1192. package/out/zero-types/src/format.js +7 -4
  1193. package/out/zero-types/src/format.js.map +1 -1
  1194. package/out/zero-types/src/name-mapper.js +43 -40
  1195. package/out/zero-types/src/name-mapper.js.map +1 -1
  1196. package/out/zero-types/src/schema.d.ts +4 -4
  1197. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1198. package/out/zql/src/builder/builder.d.ts +10 -2
  1199. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1200. package/out/zql/src/builder/builder.js +474 -427
  1201. package/out/zql/src/builder/builder.js.map +1 -1
  1202. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1203. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1204. package/out/zql/src/builder/debug-delegate.js +68 -47
  1205. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1206. package/out/zql/src/builder/filter.js +132 -138
  1207. package/out/zql/src/builder/filter.js.map +1 -1
  1208. package/out/zql/src/builder/like.js +44 -51
  1209. package/out/zql/src/builder/like.js.map +1 -1
  1210. package/out/zql/src/error.d.ts +5 -0
  1211. package/out/zql/src/error.d.ts.map +1 -1
  1212. package/out/zql/src/error.js +9 -6
  1213. package/out/zql/src/error.js.map +1 -1
  1214. package/out/zql/src/ivm/array-view.d.ts +2 -2
  1215. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  1216. package/out/zql/src/ivm/array-view.js +89 -92
  1217. package/out/zql/src/ivm/array-view.js.map +1 -1
  1218. package/out/zql/src/ivm/constraint.js +74 -127
  1219. package/out/zql/src/ivm/constraint.js.map +1 -1
  1220. package/out/zql/src/ivm/data.d.ts +7 -2
  1221. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1222. package/out/zql/src/ivm/data.js +53 -87
  1223. package/out/zql/src/ivm/data.js.map +1 -1
  1224. package/out/zql/src/ivm/exists.d.ts +6 -4
  1225. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  1226. package/out/zql/src/ivm/exists.js +206 -244
  1227. package/out/zql/src/ivm/exists.js.map +1 -1
  1228. package/out/zql/src/ivm/fan-in.d.ts +5 -3
  1229. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  1230. package/out/zql/src/ivm/fan-in.js +58 -52
  1231. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1232. package/out/zql/src/ivm/fan-out.d.ts +4 -2
  1233. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  1234. package/out/zql/src/ivm/fan-out.js +56 -48
  1235. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1236. package/out/zql/src/ivm/filter-operators.d.ts +13 -11
  1237. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  1238. package/out/zql/src/ivm/filter-operators.js +91 -88
  1239. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1240. package/out/zql/src/ivm/filter-push.d.ts +2 -1
  1241. package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
  1242. package/out/zql/src/ivm/filter-push.js +27 -24
  1243. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1244. package/out/zql/src/ivm/filter.d.ts +4 -2
  1245. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  1246. package/out/zql/src/ivm/filter.js +36 -32
  1247. package/out/zql/src/ivm/filter.js.map +1 -1
  1248. package/out/zql/src/ivm/flipped-join.d.ts +1 -2
  1249. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  1250. package/out/zql/src/ivm/flipped-join.js +372 -325
  1251. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1252. package/out/zql/src/ivm/join-utils.d.ts +9 -2
  1253. package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
  1254. package/out/zql/src/ivm/join-utils.js +104 -78
  1255. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1256. package/out/zql/src/ivm/join.d.ts +3 -16
  1257. package/out/zql/src/ivm/join.d.ts.map +1 -1
  1258. package/out/zql/src/ivm/join.js +225 -211
  1259. package/out/zql/src/ivm/join.js.map +1 -1
  1260. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
  1261. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
  1262. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1263. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1264. package/out/zql/src/ivm/memory-source.d.ts +9 -8
  1265. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1266. package/out/zql/src/ivm/memory-source.js +484 -491
  1267. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1268. package/out/zql/src/ivm/memory-storage.js +32 -31
  1269. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1270. package/out/zql/src/ivm/operator.d.ts +15 -12
  1271. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  1272. package/out/zql/src/ivm/operator.js +16 -9
  1273. package/out/zql/src/ivm/operator.js.map +1 -1
  1274. package/out/zql/src/ivm/push-accumulated.d.ts +2 -2
  1275. package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -1
  1276. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1277. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1278. package/out/zql/src/ivm/skip.d.ts +2 -3
  1279. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  1280. package/out/zql/src/ivm/skip.js +95 -106
  1281. package/out/zql/src/ivm/skip.js.map +1 -1
  1282. package/out/zql/src/ivm/source.d.ts +18 -8
  1283. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1284. package/out/zql/src/ivm/stream.d.ts +2 -0
  1285. package/out/zql/src/ivm/stream.d.ts.map +1 -1
  1286. package/out/zql/src/ivm/stream.js +12 -17
  1287. package/out/zql/src/ivm/stream.js.map +1 -1
  1288. package/out/zql/src/ivm/take.d.ts +2 -3
  1289. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1290. package/out/zql/src/ivm/take.js +525 -451
  1291. package/out/zql/src/ivm/take.js.map +1 -1
  1292. package/out/zql/src/ivm/union-fan-in.d.ts +4 -4
  1293. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  1294. package/out/zql/src/ivm/union-fan-in.js +213 -132
  1295. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1296. package/out/zql/src/ivm/union-fan-out.d.ts +2 -3
  1297. package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
  1298. package/out/zql/src/ivm/union-fan-out.js +43 -45
  1299. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1300. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  1301. package/out/zql/src/ivm/view-apply-change.js +247 -217
  1302. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1303. package/out/zql/src/ivm/view.d.ts +3 -2
  1304. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1305. package/out/zql/src/mutate/crud.d.ts +139 -0
  1306. package/out/zql/src/mutate/crud.d.ts.map +1 -0
  1307. package/out/zql/src/mutate/crud.js +53 -0
  1308. package/out/zql/src/mutate/crud.js.map +1 -0
  1309. package/out/zql/src/mutate/custom.d.ts +40 -63
  1310. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1311. package/out/zql/src/mutate/custom.js +12 -8
  1312. package/out/zql/src/mutate/custom.js.map +1 -1
  1313. package/out/zql/src/mutate/mutator-registry.d.ts +112 -0
  1314. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1315. package/out/zql/src/mutate/mutator-registry.js +88 -0
  1316. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1317. package/out/zql/src/mutate/mutator.d.ts +94 -0
  1318. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1319. package/out/zql/src/mutate/mutator.js +34 -0
  1320. package/out/zql/src/mutate/mutator.js.map +1 -0
  1321. package/out/zql/src/planner/planner-builder.d.ts +2 -1
  1322. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  1323. package/out/zql/src/planner/planner-builder.js +239 -148
  1324. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1325. package/out/zql/src/planner/planner-connection.d.ts +14 -15
  1326. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  1327. package/out/zql/src/planner/planner-connection.js +205 -247
  1328. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1329. package/out/zql/src/planner/planner-constraint.js +8 -11
  1330. package/out/zql/src/planner/planner-constraint.js.map +1 -1
  1331. package/out/zql/src/planner/planner-debug.d.ts +39 -44
  1332. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1333. package/out/zql/src/planner/planner-debug.js +227 -161
  1334. package/out/zql/src/planner/planner-debug.js.map +1 -1
  1335. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  1336. package/out/zql/src/planner/planner-fan-in.js +157 -159
  1337. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1338. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
  1339. package/out/zql/src/planner/planner-fan-out.js +73 -59
  1340. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1341. package/out/zql/src/planner/planner-graph.d.ts +10 -9
  1342. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  1343. package/out/zql/src/planner/planner-graph.js +323 -357
  1344. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1345. package/out/zql/src/planner/planner-join.d.ts +7 -3
  1346. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  1347. package/out/zql/src/planner/planner-join.js +237 -322
  1348. package/out/zql/src/planner/planner-join.js.map +1 -1
  1349. package/out/zql/src/planner/planner-node.d.ts +6 -1
  1350. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1351. package/out/zql/src/planner/planner-node.js +8 -2
  1352. package/out/zql/src/planner/planner-node.js.map +1 -1
  1353. package/out/zql/src/planner/planner-source.js +23 -12
  1354. package/out/zql/src/planner/planner-source.js.map +1 -1
  1355. package/out/zql/src/planner/planner-terminus.js +28 -27
  1356. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1357. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1358. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1359. package/out/zql/src/query/complete-ordering.js +71 -0
  1360. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1361. package/out/zql/src/query/create-builder.d.ts +10 -0
  1362. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1363. package/out/zql/src/query/create-builder.js +32 -0
  1364. package/out/zql/src/query/create-builder.js.map +1 -0
  1365. package/out/zql/src/query/error.js +12 -8
  1366. package/out/zql/src/query/error.js.map +1 -1
  1367. package/out/zql/src/query/escape-like.js +7 -0
  1368. package/out/zql/src/query/escape-like.js.map +1 -0
  1369. package/out/zql/src/query/expression.d.ts +5 -5
  1370. package/out/zql/src/query/expression.d.ts.map +1 -1
  1371. package/out/zql/src/query/expression.js +153 -151
  1372. package/out/zql/src/query/expression.js.map +1 -1
  1373. package/out/zql/src/query/measure-push-operator.d.ts +2 -3
  1374. package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
  1375. package/out/zql/src/query/measure-push-operator.js +39 -35
  1376. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1377. package/out/zql/src/query/metrics-delegate.js +9 -5
  1378. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1379. package/out/zql/src/query/named.d.ts +21 -12
  1380. package/out/zql/src/query/named.d.ts.map +1 -1
  1381. package/out/zql/src/query/named.js +46 -64
  1382. package/out/zql/src/query/named.js.map +1 -1
  1383. package/out/zql/src/query/query-delegate-base.d.ts +120 -0
  1384. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1385. package/out/zql/src/query/query-delegate-base.js +250 -0
  1386. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1387. package/out/zql/src/query/query-delegate.d.ts +27 -4
  1388. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1389. package/out/zql/src/query/query-impl.d.ts +30 -52
  1390. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1391. package/out/zql/src/query/query-impl.js +393 -459
  1392. package/out/zql/src/query/query-impl.js.map +1 -1
  1393. package/out/zql/src/query/query-internals.d.ts +68 -0
  1394. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1395. package/out/zql/src/query/query-internals.js +11 -0
  1396. package/out/zql/src/query/query-internals.js.map +1 -0
  1397. package/out/zql/src/query/query-registry.d.ts +239 -0
  1398. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1399. package/out/zql/src/query/query-registry.js +121 -0
  1400. package/out/zql/src/query/query-registry.js.map +1 -0
  1401. package/out/zql/src/query/query.d.ts +65 -242
  1402. package/out/zql/src/query/query.d.ts.map +1 -1
  1403. package/out/zql/src/query/runnable-query-impl.d.ts +22 -0
  1404. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -0
  1405. package/out/zql/src/query/runnable-query-impl.js +60 -0
  1406. package/out/zql/src/query/runnable-query-impl.js.map +1 -0
  1407. package/out/zql/src/query/schema-query.d.ts +8 -0
  1408. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1409. package/out/zql/src/query/static-query.d.ts +3 -25
  1410. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1411. package/out/zql/src/query/static-query.js +18 -32
  1412. package/out/zql/src/query/static-query.js.map +1 -1
  1413. package/out/zql/src/query/ttl.js +69 -62
  1414. package/out/zql/src/query/ttl.js.map +1 -1
  1415. package/out/zql/src/query/validate-input.d.ts +15 -0
  1416. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1417. package/out/zql/src/query/validate-input.js +24 -0
  1418. package/out/zql/src/query/validate-input.js.map +1 -0
  1419. package/out/zqlite/src/database-storage.d.ts +1 -1
  1420. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1421. package/out/zqlite/src/database-storage.js +99 -102
  1422. package/out/zqlite/src/database-storage.js.map +1 -1
  1423. package/out/zqlite/src/db.d.ts +2 -1
  1424. package/out/zqlite/src/db.d.ts.map +1 -1
  1425. package/out/zqlite/src/db.js +241 -192
  1426. package/out/zqlite/src/db.js.map +1 -1
  1427. package/out/zqlite/src/explain-queries.js +13 -16
  1428. package/out/zqlite/src/explain-queries.js.map +1 -1
  1429. package/out/zqlite/src/internal/sql-inline.d.ts +13 -0
  1430. package/out/zqlite/src/internal/sql-inline.d.ts.map +1 -0
  1431. package/out/zqlite/src/internal/sql-inline.js +45 -0
  1432. package/out/zqlite/src/internal/sql-inline.js.map +1 -0
  1433. package/out/zqlite/src/internal/sql.js +15 -10
  1434. package/out/zqlite/src/internal/sql.js.map +1 -1
  1435. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1436. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1437. package/out/zqlite/src/query-builder.js +172 -143
  1438. package/out/zqlite/src/query-builder.js.map +1 -1
  1439. package/out/zqlite/src/query-delegate.d.ts +5 -19
  1440. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1441. package/out/zqlite/src/query-delegate.js +56 -70
  1442. package/out/zqlite/src/query-delegate.js.map +1 -1
  1443. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
  1444. package/out/zqlite/src/sqlite-cost-model.js +97 -121
  1445. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1446. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1447. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1448. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1449. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1450. package/out/zqlite/src/table-source.d.ts +18 -6
  1451. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1452. package/out/zqlite/src/table-source.js +443 -311
  1453. package/out/zqlite/src/table-source.js.map +1 -1
  1454. package/package.json +30 -27
  1455. package/out/chunk-424PT5DM.js +0 -23
  1456. package/out/chunk-424PT5DM.js.map +0 -7
  1457. package/out/chunk-AFADJQ2O.js +0 -1
  1458. package/out/chunk-AFADJQ2O.js.map +0 -7
  1459. package/out/chunk-ASRS2LFV.js.map +0 -7
  1460. package/out/chunk-COKJ5W7V.js +0 -18337
  1461. package/out/chunk-COKJ5W7V.js.map +0 -7
  1462. package/out/chunk-ECUMGQGC.js.map +0 -7
  1463. package/out/chunk-EZM3XBAB.js.map +0 -7
  1464. package/out/chunk-TJFNGO7E.js +0 -4126
  1465. package/out/chunk-TJFNGO7E.js.map +0 -7
  1466. package/out/chunk-VZOYWIRW.js +0 -30
  1467. package/out/chunk-VZOYWIRW.js.map +0 -7
  1468. package/out/chunk-YWU2DZ23.js +0 -372
  1469. package/out/chunk-YWU2DZ23.js.map +0 -7
  1470. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1471. package/out/expo-sqlite.js +0 -11
  1472. package/out/expo-sqlite.js.map +0 -7
  1473. package/out/inspector-IU2HG74I.js +0 -43
  1474. package/out/inspector-IU2HG74I.js.map +0 -7
  1475. package/out/lazy-inspector-OXIFYSSQ.js +0 -574
  1476. package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
  1477. package/out/op-sqlite.js.map +0 -7
  1478. package/out/react-native.js +0 -25
  1479. package/out/react-native.js.map +0 -7
  1480. package/out/react.js +0 -479
  1481. package/out/react.js.map +0 -7
  1482. package/out/shared/src/enum.js +0 -2
  1483. package/out/shared/src/enum.js.map +0 -1
  1484. package/out/shared/src/expand.js +0 -2
  1485. package/out/shared/src/expand.js.map +0 -1
  1486. package/out/shared/src/immutable.js +0 -2
  1487. package/out/shared/src/immutable.js.map +0 -1
  1488. package/out/shared/src/types.js +0 -2
  1489. package/out/shared/src/types.js.map +0 -1
  1490. package/out/shared/src/writable.js +0 -2
  1491. package/out/shared/src/writable.js.map +0 -1
  1492. package/out/solid.js.map +0 -7
  1493. package/out/sqlite.js +0 -15
  1494. package/out/sqlite.js.map +0 -7
  1495. package/out/zero/package.json +0 -194
  1496. package/out/zero/src/server/change-streamer.js +0 -2
  1497. package/out/zero/src/server/change-streamer.js.map +0 -1
  1498. package/out/zero/src/server/main.js +0 -2
  1499. package/out/zero/src/server/main.js.map +0 -1
  1500. package/out/zero/src/server/reaper.js +0 -2
  1501. package/out/zero/src/server/reaper.js.map +0 -1
  1502. package/out/zero/src/server/replicator.js +0 -2
  1503. package/out/zero/src/server/replicator.js.map +0 -1
  1504. package/out/zero/src/server/runner/main.js +0 -2
  1505. package/out/zero/src/server/runner/main.js.map +0 -1
  1506. package/out/zero/src/server/syncer.js +0 -2
  1507. package/out/zero/src/server/syncer.js.map +0 -1
  1508. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1509. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1510. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1511. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1512. package/out/zero-cache/src/services/service.js +0 -2
  1513. package/out/zero-cache/src/services/service.js.map +0 -1
  1514. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1515. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1516. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
  1517. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1518. package/out/zero-cache/src/types/satisfies.js +0 -2
  1519. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1520. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1521. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1522. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1523. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1524. package/out/zero-events/src/index.js +0 -2
  1525. package/out/zero-events/src/index.js.map +0 -1
  1526. package/out/zero-events/src/json.js +0 -2
  1527. package/out/zero-events/src/json.js.map +0 -1
  1528. package/out/zero-events/src/status.js +0 -3
  1529. package/out/zero-events/src/status.js.map +0 -1
  1530. package/out/zero-pg/src/mod.js +0 -6
  1531. package/out/zero-pg/src/mod.js.map +0 -1
  1532. package/out/zero-protocol/src/error-kind.js +0 -3
  1533. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1534. package/out/zero-protocol/src/error-origin.js +0 -3
  1535. package/out/zero-protocol/src/error-origin.js.map +0 -1
  1536. package/out/zero-protocol/src/error-reason.js +0 -3
  1537. package/out/zero-protocol/src/error-reason.js.map +0 -1
  1538. package/out/zero-react/src/components/inspector.d.ts +0 -8
  1539. package/out/zero-react/src/components/inspector.d.ts.map +0 -1
  1540. package/out/zero-react/src/components/mark-icon.d.ts +0 -3
  1541. package/out/zero-react/src/components/mark-icon.d.ts.map +0 -1
  1542. package/out/zero-react/src/components/zero-inspector.d.ts +0 -7
  1543. package/out/zero-react/src/components/zero-inspector.d.ts.map +0 -1
  1544. package/out/zero-react/src/use-zero-connection-state.d.ts +0 -9
  1545. package/out/zero-react/src/use-zero-connection-state.d.ts.map +0 -1
  1546. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1547. package/out/zero-schema/src/server-schema.js +0 -2
  1548. package/out/zero-schema/src/server-schema.js.map +0 -1
  1549. package/out/zero-schema/src/table-schema.js +0 -7
  1550. package/out/zero-schema/src/table-schema.js.map +0 -1
  1551. package/out/zero-server/src/mod.js +0 -9
  1552. package/out/zero-server/src/mod.js.map +0 -1
  1553. package/out/zero-server/src/query.d.ts +0 -22
  1554. package/out/zero-server/src/query.d.ts.map +0 -1
  1555. package/out/zero-server/src/query.js +0 -61
  1556. package/out/zero-server/src/query.js.map +0 -1
  1557. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +0 -1
  1558. package/out/zero-types/src/schema-value.js +0 -2
  1559. package/out/zero-types/src/schema-value.js.map +0 -1
  1560. package/out/zero-types/src/schema.js +0 -2
  1561. package/out/zero-types/src/schema.js.map +0 -1
  1562. package/out/zero.js +0 -81
  1563. package/out/zero.js.map +0 -7
  1564. package/out/zql/src/ivm/change.js +0 -2
  1565. package/out/zql/src/ivm/change.js.map +0 -1
  1566. package/out/zql/src/ivm/default-format.js +0 -2
  1567. package/out/zql/src/ivm/default-format.js.map +0 -1
  1568. package/out/zql/src/ivm/schema.js +0 -2
  1569. package/out/zql/src/ivm/schema.js.map +0 -1
  1570. package/out/zql/src/ivm/source.js +0 -2
  1571. package/out/zql/src/ivm/source.js.map +0 -1
  1572. package/out/zql/src/ivm/view.js +0 -2
  1573. package/out/zql/src/ivm/view.js.map +0 -1
  1574. package/out/zql/src/query/query-delegate.js +0 -2
  1575. package/out/zql/src/query/query-delegate.js.map +0 -1
  1576. package/out/zql/src/query/query.js +0 -9
  1577. package/out/zql/src/query/query.js.map +0 -1
  1578. package/out/zql/src/query/typed-view.js +0 -2
  1579. package/out/zql/src/query/typed-view.js.map +0 -1
  1580. package/out/zqlite/src/mod.js +0 -5
  1581. package/out/zqlite/src/mod.js.map +0 -1
  1582. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
@@ -1,78 +1,38 @@
1
- import { literal as lit } from 'pg-format';
1
+ import { literal as literal$1 } from "pg-format";
2
2
  import { assert } from "../../../../../../shared/src/asserts.js";
3
- import * as v from "../../../../../../shared/src/valita.js";
3
+ import "../../../../../../shared/src/valita.js";
4
4
  import { upstreamSchema } from "../../../../types/shards.js";
5
5
  import { id } from "../../../../types/sql.js";
6
- import { indexDefinitionsQuery, publishedSchema, publishedTableQuery, } from "./published.js";
7
- // Sent in the 'version' tag of "ddlStart" and "ddlUpdate" event messages.
8
- // This is used to ensure that the message constructed in the upstream
9
- // Trigger function is compatible with the code processing it in the zero-cache.
10
- //
11
- // Increment this when changing the format of the contents of the "ddl" events.
12
- // This will allow old / incompatible code to detect the change and abort.
13
- export const PROTOCOL_VERSION = 1;
14
- const triggerEvent = v.object({
15
- context: v.object({ query: v.string() }).rest(v.string()),
6
+ import { publishedSchema, publishedTableQuery, indexDefinitionsQuery } from "./published.js";
7
+ import { object, string, literal, union } from "@badrap/valita";
8
+ const PROTOCOL_VERSION = 1;
9
+ const triggerEvent = object({
10
+ context: object({ query: string() }).rest(string())
16
11
  });
17
- // All DDL events contain a snapshot of the current tables and indexes that
18
- // are published / relevant to the shard.
19
- export const ddlEventSchema = triggerEvent.extend({
20
- version: v.literal(PROTOCOL_VERSION),
21
- schema: publishedSchema,
12
+ const ddlEventSchema = triggerEvent.extend({
13
+ version: literal(PROTOCOL_VERSION),
14
+ schema: publishedSchema
22
15
  });
23
- // The `ddlStart` message is computed before every DDL event, regardless of
24
- // whether the subsequent event affects the shard. Downstream processing should
25
- // capture the contained schema information in order to determine the schema
26
- // changes necessary to apply a subsequent `ddlUpdate` message. Note that a
27
- // `ddlUpdate` message may not follow, as updates determined to be irrelevant
28
- // to the shard will not result in a message. However, all `ddlUpdate` messages
29
- // are guaranteed to be preceded by a `ddlStart` message.
30
- export const ddlStartEventSchema = ddlEventSchema.extend({
31
- type: v.literal('ddlStart'),
16
+ const ddlStartEventSchema = ddlEventSchema.extend({
17
+ type: literal("ddlStart")
32
18
  });
33
- /**
34
- * The {@link DdlUpdateEvent} contains an updated schema resulting from
35
- * a particular ddl event. The event type provides information
36
- * (i.e. constraints) on the difference from the schema of the preceding
37
- * {@link DdlStartEvent}.
38
- *
39
- * Note that in almost all cases (the exception being `CREATE` events),
40
- * it is possible that there is no relevant difference between the
41
- * ddl-start schema and the ddl-update schema, as many aspects of the
42
- * schema (e.g. column constraints) are not relevant to downstream
43
- * replication.
44
- */
45
- export const ddlUpdateEventSchema = ddlEventSchema.extend({
46
- type: v.literal('ddlUpdate'),
47
- event: v.object({ tag: v.string() }),
19
+ const ddlUpdateEventSchema = ddlEventSchema.extend({
20
+ type: literal("ddlUpdate"),
21
+ event: object({ tag: string() })
48
22
  });
49
- export const replicationEventSchema = v.union(ddlStartEventSchema, ddlUpdateEventSchema);
50
- // Creates a function that appends `_{shard-num}` to the input and
51
- // quotes the result to be a valid identifier.
23
+ const replicationEventSchema = union(
24
+ ddlStartEventSchema,
25
+ ddlUpdateEventSchema
26
+ );
52
27
  function append(shardNum) {
53
- return (name) => id(name + '_' + String(shardNum));
28
+ return (name) => id(name + "_" + String(shardNum));
54
29
  }
55
- /**
56
- * Event trigger functions contain the core logic that are invoked by triggers.
57
- *
58
- * Note that although many of these functions can theoretically be parameterized and
59
- * shared across shards, it is advantageous to keep the functions in each shard
60
- * isolated from each other in order to avoid the complexity of shared-function
61
- * versioning.
62
- *
63
- * In a sense, shards (and their triggers and functions) should be thought of as
64
- * execution environments that can be updated at different schedules. If per-shard
65
- * triggers called into shared functions, we would have to consider versioning the
66
- * functions when changing their behavior, backwards compatibility, removal of
67
- * unused versions, etc. (not unlike versioning of npm packages).
68
- *
69
- * Instead, we opt for the simplicity and isolation of having each shard
70
- * completely own (and maintain) the entirety of its trigger/function stack.
71
- */
72
30
  function createEventFunctionStatements(shard) {
73
- const { appID, shardNum, publications } = shard;
74
- const schema = id(upstreamSchema(shard)); // e.g. "{APP_ID}_{SHARD_ID}"
75
- return /*sql*/ `
31
+ const { appID, shardNum, publications } = shard;
32
+ const schema = id(upstreamSchema(shard));
33
+ return (
34
+ /*sql*/
35
+ `
76
36
  CREATE SCHEMA IF NOT EXISTS ${schema};
77
37
 
78
38
  CREATE OR REPLACE FUNCTION ${schema}.get_trigger_context()
@@ -89,7 +49,7 @@ $$ LANGUAGE plpgsql;
89
49
  CREATE OR REPLACE FUNCTION ${schema}.notice_ignore(object_id TEXT)
90
50
  RETURNS void AS $$
91
51
  BEGIN
92
- RAISE NOTICE 'zero(%) ignoring %', ${lit(shardNum)}, object_id;
52
+ RAISE NOTICE 'zero(%) ignoring %', ${literal$1(shardNum)}, object_id;
93
53
  END
94
54
  $$ LANGUAGE plpgsql;
95
55
 
@@ -125,7 +85,9 @@ BEGIN
125
85
  'context', ${schema}.get_trigger_context()
126
86
  ) INTO message;
127
87
 
128
- PERFORM pg_logical_emit_message(true, ${lit(`${appID}/${shardNum}`)}, message);
88
+ PERFORM pg_logical_emit_message(true, ${literal$1(
89
+ `${appID}/${shardNum}`
90
+ )}, message);
129
91
  END
130
92
  $$ LANGUAGE plpgsql;
131
93
 
@@ -141,7 +103,7 @@ DECLARE
141
103
  message TEXT;
142
104
  event TEXT;
143
105
  BEGIN
144
- publications := ARRAY[${lit(publications)}];
106
+ publications := ARRAY[${literal$1(publications)}];
145
107
 
146
108
  SELECT objid, object_type, object_identity
147
109
  FROM pg_event_trigger_ddl_commands()
@@ -238,74 +200,89 @@ BEGIN
238
200
  'context', ${schema}.get_trigger_context()
239
201
  ) INTO message;
240
202
 
241
- PERFORM pg_logical_emit_message(true, ${lit(`${appID}/${shardNum}`)}, message);
203
+ PERFORM pg_logical_emit_message(true, ${literal$1(
204
+ `${appID}/${shardNum}`
205
+ )}, message);
242
206
  END
243
207
  $$ LANGUAGE plpgsql;
244
- `;
208
+ `
209
+ );
245
210
  }
246
- // Exported for testing.
247
- export const TAGS = [
248
- 'CREATE TABLE',
249
- 'ALTER TABLE',
250
- 'CREATE INDEX',
251
- 'DROP TABLE',
252
- 'DROP INDEX',
253
- 'ALTER PUBLICATION',
254
- 'ALTER SCHEMA',
211
+ const TAGS = [
212
+ "CREATE TABLE",
213
+ "ALTER TABLE",
214
+ "CREATE INDEX",
215
+ "DROP TABLE",
216
+ "DROP INDEX",
217
+ "ALTER PUBLICATION",
218
+ "ALTER SCHEMA"
255
219
  ];
256
- export function createEventTriggerStatements(shard) {
257
- // Better to assert here than get a cryptic syntax error from Postgres.
258
- assert(shard.publications.length, `shard publications must be non-empty`);
259
- // Unlike functions, which are namespaced in shard-specific schemas,
260
- // EVENT TRIGGER names are in the global namespace and thus must include
261
- // the appID and shardNum.
262
- const { appID, shardNum } = shard;
263
- const sharded = append(shardNum);
264
- const schema = id(upstreamSchema(shard));
265
- const triggers = [
266
- dropEventTriggerStatements(shard.appID, shard.shardNum),
267
- createEventFunctionStatements(shard),
268
- ];
269
- // A single ddl_command_start trigger covering all relevant tags.
270
- triggers.push(/*sql*/ `
220
+ function createEventTriggerStatements(shard) {
221
+ assert(shard.publications.length, `shard publications must be non-empty`);
222
+ const { appID, shardNum } = shard;
223
+ const sharded = append(shardNum);
224
+ const schema = id(upstreamSchema(shard));
225
+ const triggers = [
226
+ dropEventTriggerStatements(shard.appID, shard.shardNum),
227
+ createEventFunctionStatements(shard)
228
+ ];
229
+ triggers.push(
230
+ /*sql*/
231
+ `
271
232
  CREATE EVENT TRIGGER ${sharded(`${appID}_ddl_start`)}
272
233
  ON ddl_command_start
273
- WHEN TAG IN (${lit(TAGS)})
234
+ WHEN TAG IN (${literal$1(TAGS)})
274
235
  EXECUTE PROCEDURE ${schema}.emit_ddl_start();
275
- `);
276
- // A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)
277
- for (const tag of TAGS) {
278
- const tagID = tag.toLowerCase().replace(' ', '_');
279
- triggers.push(/*sql*/ `
236
+ `
237
+ );
238
+ for (const tag of TAGS) {
239
+ const tagID = tag.toLowerCase().replace(" ", "_");
240
+ triggers.push(
241
+ /*sql*/
242
+ `
280
243
  CREATE OR REPLACE FUNCTION ${schema}.emit_${tagID}()
281
244
  RETURNS event_trigger AS $$
282
245
  BEGIN
283
- PERFORM ${schema}.emit_ddl_end(${lit(tag)});
246
+ PERFORM ${schema}.emit_ddl_end(${literal$1(tag)});
284
247
  END
285
248
  $$ LANGUAGE plpgsql;
286
249
 
287
250
  CREATE EVENT TRIGGER ${sharded(`${appID}_${tagID}`)}
288
251
  ON ddl_command_end
289
- WHEN TAG IN (${lit(tag)})
252
+ WHEN TAG IN (${literal$1(tag)})
290
253
  EXECUTE PROCEDURE ${schema}.emit_${tagID}();
291
- `);
292
- }
293
- return triggers.join('');
254
+ `
255
+ );
256
+ }
257
+ return triggers.join("");
294
258
  }
295
- // Exported for testing.
296
- export function dropEventTriggerStatements(appID, shardID) {
297
- const stmts = [];
298
- // A single ddl_command_start trigger covering all relevant tags.
299
- stmts.push(/*sql*/ `
259
+ function dropEventTriggerStatements(appID, shardID) {
260
+ const stmts = [];
261
+ stmts.push(
262
+ /*sql*/
263
+ `
300
264
  DROP EVENT TRIGGER IF EXISTS ${id(`${appID}_ddl_start_${shardID}`)};
301
- `);
302
- // A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)
303
- for (const tag of TAGS) {
304
- const tagID = tag.toLowerCase().replace(' ', '_');
305
- stmts.push(/*sql*/ `
265
+ `
266
+ );
267
+ for (const tag of TAGS) {
268
+ const tagID = tag.toLowerCase().replace(" ", "_");
269
+ stmts.push(
270
+ /*sql*/
271
+ `
306
272
  DROP EVENT TRIGGER IF EXISTS ${id(`${appID}_${tagID}_${shardID}`)};
307
- `);
308
- }
309
- return stmts.join('');
273
+ `
274
+ );
275
+ }
276
+ return stmts.join("");
310
277
  }
311
- //# sourceMappingURL=ddl.js.map
278
+ export {
279
+ PROTOCOL_VERSION,
280
+ TAGS,
281
+ createEventTriggerStatements,
282
+ ddlEventSchema,
283
+ ddlStartEventSchema,
284
+ ddlUpdateEventSchema,
285
+ dropEventTriggerStatements,
286
+ replicationEventSchema
287
+ };
288
+ //# sourceMappingURL=ddl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/ddl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ddl.js","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/ddl.ts"],"sourcesContent":["import {literal as lit} from 'pg-format';\nimport {assert} from '../../../../../../shared/src/asserts.ts';\nimport * as v from '../../../../../../shared/src/valita.ts';\nimport {upstreamSchema, type ShardConfig} from '../../../../types/shards.ts';\nimport {id} from '../../../../types/sql.ts';\nimport {\n indexDefinitionsQuery,\n publishedSchema,\n publishedTableQuery,\n} from './published.ts';\n\n// Sent in the 'version' tag of \"ddlStart\" and \"ddlUpdate\" event messages.\n// This is used to ensure that the message constructed in the upstream\n// Trigger function is compatible with the code processing it in the zero-cache.\n//\n// Increment this when changing the format of the contents of the \"ddl\" events.\n// This will allow old / incompatible code to detect the change and abort.\nexport const PROTOCOL_VERSION = 1;\n\nconst triggerEvent = v.object({\n context: v.object({query: v.string()}).rest(v.string()),\n});\n\n// All DDL events contain a snapshot of the current tables and indexes that\n// are published / relevant to the shard.\nexport const ddlEventSchema = triggerEvent.extend({\n version: v.literal(PROTOCOL_VERSION),\n schema: publishedSchema,\n});\n\n// The `ddlStart` message is computed before every DDL event, regardless of\n// whether the subsequent event affects the shard. Downstream processing should\n// capture the contained schema information in order to determine the schema\n// changes necessary to apply a subsequent `ddlUpdate` message. Note that a\n// `ddlUpdate` message may not follow, as updates determined to be irrelevant\n// to the shard will not result in a message. However, all `ddlUpdate` messages\n// are guaranteed to be preceded by a `ddlStart` message.\nexport const ddlStartEventSchema = ddlEventSchema.extend({\n type: v.literal('ddlStart'),\n});\n\nexport type DdlStartEvent = v.Infer<typeof ddlStartEventSchema>;\n\n/**\n * The {@link DdlUpdateEvent} contains an updated schema resulting from\n * a particular ddl event. The event type provides information\n * (i.e. constraints) on the difference from the schema of the preceding\n * {@link DdlStartEvent}.\n *\n * Note that in almost all cases (the exception being `CREATE` events),\n * it is possible that there is no relevant difference between the\n * ddl-start schema and the ddl-update schema, as many aspects of the\n * schema (e.g. column constraints) are not relevant to downstream\n * replication.\n */\nexport const ddlUpdateEventSchema = ddlEventSchema.extend({\n type: v.literal('ddlUpdate'),\n event: v.object({tag: v.string()}),\n});\n\nexport type DdlUpdateEvent = v.Infer<typeof ddlUpdateEventSchema>;\n\nexport const replicationEventSchema = v.union(\n ddlStartEventSchema,\n ddlUpdateEventSchema,\n);\n\nexport type ReplicationEvent = v.Infer<typeof replicationEventSchema>;\n\n// Creates a function that appends `_{shard-num}` to the input and\n// quotes the result to be a valid identifier.\nfunction append(shardNum: number) {\n return (name: string) => id(name + '_' + String(shardNum));\n}\n\n/**\n * Event trigger functions contain the core logic that are invoked by triggers.\n *\n * Note that although many of these functions can theoretically be parameterized and\n * shared across shards, it is advantageous to keep the functions in each shard\n * isolated from each other in order to avoid the complexity of shared-function\n * versioning.\n *\n * In a sense, shards (and their triggers and functions) should be thought of as\n * execution environments that can be updated at different schedules. If per-shard\n * triggers called into shared functions, we would have to consider versioning the\n * functions when changing their behavior, backwards compatibility, removal of\n * unused versions, etc. (not unlike versioning of npm packages).\n *\n * Instead, we opt for the simplicity and isolation of having each shard\n * completely own (and maintain) the entirety of its trigger/function stack.\n */\nfunction createEventFunctionStatements(shard: ShardConfig) {\n const {appID, shardNum, publications} = shard;\n const schema = id(upstreamSchema(shard)); // e.g. \"{APP_ID}_{SHARD_ID}\"\n return /*sql*/ `\nCREATE SCHEMA IF NOT EXISTS ${schema};\n\nCREATE OR REPLACE FUNCTION ${schema}.get_trigger_context()\nRETURNS record AS $$\nDECLARE\n result record;\nBEGIN\n SELECT current_query() AS \"query\" into result;\n RETURN result;\nEND\n$$ LANGUAGE plpgsql;\n\n\nCREATE OR REPLACE FUNCTION ${schema}.notice_ignore(object_id TEXT)\nRETURNS void AS $$\nBEGIN\n RAISE NOTICE 'zero(%) ignoring %', ${lit(shardNum)}, object_id;\nEND\n$$ LANGUAGE plpgsql;\n\n\nCREATE OR REPLACE FUNCTION ${schema}.schema_specs()\nRETURNS TEXT AS $$\nDECLARE\n tables record;\n indexes record;\nBEGIN\n ${publishedTableQuery(publications)} INTO tables;\n ${indexDefinitionsQuery(publications)} INTO indexes;\n RETURN json_build_object(\n 'tables', tables.tables,\n 'indexes', indexes.indexes\n );\nEND\n$$ LANGUAGE plpgsql;\n\n\nCREATE OR REPLACE FUNCTION ${schema}.emit_ddl_start()\nRETURNS event_trigger AS $$\nDECLARE\n schema_specs TEXT;\n message TEXT;\nBEGIN\n SELECT ${schema}.schema_specs() INTO schema_specs;\n\n SELECT json_build_object(\n 'type', 'ddlStart',\n 'version', ${PROTOCOL_VERSION},\n 'schema', schema_specs::json,\n 'context', ${schema}.get_trigger_context()\n ) INTO message;\n\n PERFORM pg_logical_emit_message(true, ${lit(\n `${appID}/${shardNum}`,\n )}, message);\nEND\n$$ LANGUAGE plpgsql;\n\n\nCREATE OR REPLACE FUNCTION ${schema}.emit_ddl_end(tag TEXT)\nRETURNS void AS $$\nDECLARE\n publications TEXT[];\n cmd RECORD;\n relevant RECORD;\n deprecated RECORD;\n schema_specs TEXT;\n message TEXT;\n event TEXT;\nBEGIN\n publications := ARRAY[${lit(publications)}];\n\n SELECT objid, object_type, object_identity \n FROM pg_event_trigger_ddl_commands() \n WHERE object_type IN (\n 'table',\n 'table column',\n 'index',\n 'publication relation',\n 'publication namespace',\n 'schema')\n LIMIT 1 INTO cmd;\n\n -- Filter DDL updates that are not relevant to the shard (i.e. publications) when possible.\n\n IF cmd.object_type = 'table' OR cmd.object_type = 'table column' THEN\n SELECT ns.nspname AS \"schema\", c.relname AS \"name\" FROM pg_class AS c\n JOIN pg_namespace AS ns ON c.relnamespace = ns.oid\n JOIN pg_publication_tables AS pb ON pb.schemaname = ns.nspname AND pb.tablename = c.relname\n WHERE c.oid = cmd.objid AND pb.pubname = ANY (publications)\n INTO relevant;\n IF relevant IS NULL THEN\n PERFORM ${schema}.notice_ignore(cmd.object_identity);\n RETURN;\n END IF;\n\n cmd.object_type := 'table'; -- normalize the 'table column' target to 'table'\n\n ELSIF cmd.object_type = 'index' THEN\n SELECT ns.nspname AS \"schema\", c.relname AS \"name\" FROM pg_class AS c\n JOIN pg_namespace AS ns ON c.relnamespace = ns.oid\n JOIN pg_indexes as ind ON ind.schemaname = ns.nspname AND ind.indexname = c.relname\n JOIN pg_publication_tables AS pb ON pb.schemaname = ns.nspname AND pb.tablename = ind.tablename\n WHERE c.oid = cmd.objid AND pb.pubname = ANY (publications)\n INTO relevant;\n IF relevant IS NULL THEN\n PERFORM ${schema}.notice_ignore(cmd.object_identity);\n RETURN;\n END IF;\n\n ELSIF cmd.object_type = 'publication relation' THEN\n SELECT pb.pubname FROM pg_publication_rel AS rel\n JOIN pg_publication AS pb ON pb.oid = rel.prpubid\n WHERE rel.oid = cmd.objid AND pb.pubname = ANY (publications) \n INTO relevant;\n IF relevant IS NULL THEN\n PERFORM ${schema}.notice_ignore(cmd.object_identity);\n RETURN;\n END IF;\n\n ELSIF cmd.object_type = 'publication namespace' THEN\n SELECT pb.pubname FROM pg_publication_namespace AS ns\n JOIN pg_publication AS pb ON pb.oid = ns.pnpubid\n WHERE ns.oid = cmd.objid AND pb.pubname = ANY (publications) \n INTO relevant;\n IF relevant IS NULL THEN\n PERFORM ${schema}.notice_ignore(cmd.object_identity);\n RETURN;\n END IF;\n\n ELSIF cmd.object_type = 'schema' THEN\n SELECT ns.nspname AS \"schema\", c.relname AS \"name\" FROM pg_class AS c\n JOIN pg_namespace AS ns ON c.relnamespace = ns.oid\n JOIN pg_publication_tables AS pb ON pb.schemaname = ns.nspname AND pb.tablename = c.relname\n WHERE ns.oid = cmd.objid AND pb.pubname = ANY (publications)\n INTO relevant;\n IF relevant IS NULL THEN\n PERFORM ${schema}.notice_ignore(cmd.object_identity);\n RETURN;\n END IF;\n\n ELSIF tag LIKE 'CREATE %' THEN\n PERFORM ${schema}.notice_ignore('noop ' || tag);\n RETURN;\n END IF;\n\n -- Construct and emit the DdlUpdateEvent message.\n\n -- TODO: Remove backwards-compatibility fields after a few releases.\n SELECT 'deprecated' as \"schema\", 'deprecated' as \"name\" INTO deprecated;\n\n SELECT json_build_object(\n 'tag', tag,\n 'table', deprecated,\n 'index', deprecated\n ) INTO event;\n \n SELECT ${schema}.schema_specs() INTO schema_specs;\n\n SELECT json_build_object(\n 'type', 'ddlUpdate',\n 'version', ${PROTOCOL_VERSION},\n 'schema', schema_specs::json,\n 'event', event::json,\n 'context', ${schema}.get_trigger_context()\n ) INTO message;\n\n PERFORM pg_logical_emit_message(true, ${lit(\n `${appID}/${shardNum}`,\n )}, message);\nEND\n$$ LANGUAGE plpgsql;\n`;\n}\n\n// Exported for testing.\nexport const TAGS = [\n 'CREATE TABLE',\n 'ALTER TABLE',\n 'CREATE INDEX',\n 'DROP TABLE',\n 'DROP INDEX',\n 'ALTER PUBLICATION',\n 'ALTER SCHEMA',\n] as const;\n\nexport function createEventTriggerStatements(shard: ShardConfig) {\n // Better to assert here than get a cryptic syntax error from Postgres.\n assert(shard.publications.length, `shard publications must be non-empty`);\n\n // Unlike functions, which are namespaced in shard-specific schemas,\n // EVENT TRIGGER names are in the global namespace and thus must include\n // the appID and shardNum.\n const {appID, shardNum} = shard;\n const sharded = append(shardNum);\n const schema = id(upstreamSchema(shard));\n\n const triggers = [\n dropEventTriggerStatements(shard.appID, shard.shardNum),\n createEventFunctionStatements(shard),\n ];\n\n // A single ddl_command_start trigger covering all relevant tags.\n triggers.push(/*sql*/ `\nCREATE EVENT TRIGGER ${sharded(`${appID}_ddl_start`)}\n ON ddl_command_start\n WHEN TAG IN (${lit(TAGS)})\n EXECUTE PROCEDURE ${schema}.emit_ddl_start();\n`);\n\n // A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)\n for (const tag of TAGS) {\n const tagID = tag.toLowerCase().replace(' ', '_');\n triggers.push(/*sql*/ `\nCREATE OR REPLACE FUNCTION ${schema}.emit_${tagID}() \nRETURNS event_trigger AS $$\nBEGIN\n PERFORM ${schema}.emit_ddl_end(${lit(tag)});\nEND\n$$ LANGUAGE plpgsql;\n\nCREATE EVENT TRIGGER ${sharded(`${appID}_${tagID}`)}\n ON ddl_command_end\n WHEN TAG IN (${lit(tag)})\n EXECUTE PROCEDURE ${schema}.emit_${tagID}();\n`);\n }\n return triggers.join('');\n}\n\n// Exported for testing.\nexport function dropEventTriggerStatements(\n appID: string,\n shardID: string | number,\n) {\n const stmts: string[] = [];\n // A single ddl_command_start trigger covering all relevant tags.\n stmts.push(/*sql*/ `\n DROP EVENT TRIGGER IF EXISTS ${id(`${appID}_ddl_start_${shardID}`)};\n `);\n\n // A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)\n for (const tag of TAGS) {\n const tagID = tag.toLowerCase().replace(' ', '_');\n stmts.push(/*sql*/ `\n DROP EVENT TRIGGER IF EXISTS ${id(`${appID}_${tagID}_${shardID}`)};\n `);\n }\n return stmts.join('');\n}\n"],"names":["v.object","v.string","v.literal","v.union","lit"],"mappings":"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"}
@@ -1,147 +1,168 @@
1
1
  import { assert } from "../../../../../../shared/src/asserts.js";
2
- import * as v from "../../../../../../shared/src/valita.js";
3
- import { getVersionHistory, runSchemaMigrations, } from "../../../../db/migration.js";
2
+ import { parse } from "../../../../../../shared/src/valita.js";
3
+ import { runSchemaMigrations, getVersionHistory } from "../../../../db/migration.js";
4
4
  import { upstreamSchema } from "../../../../types/shards.js";
5
5
  import { AutoResetSignal } from "../../../change-streamer/schema/tables.js";
6
6
  import { decommissionShard } from "../decommission.js";
7
7
  import { publishedSchema } from "./published.js";
8
- import { getMutationsTableDefinition, legacyReplicationSlot, metadataPublicationName, setupTablesAndReplication, setupTriggers, } from "./shard.js";
8
+ import { getMutationsTableDefinition, metadataPublicationName, setupTriggers, legacyReplicationSlot, setupTablesAndReplication } from "./shard.js";
9
9
  import { id } from "../../../../types/sql.js";
10
- /**
11
- * Ensures that a shard is set up for initial sync.
12
- */
13
- export async function ensureShardSchema(lc, db, shard) {
14
- const initialSetup = {
15
- migrateSchema: (lc, tx) => setupTablesAndReplication(lc, tx, shard),
16
- minSafeVersion: 1,
17
- };
18
- await runSchemaMigrations(lc, `upstream-shard-${shard.appID}`, upstreamSchema(shard), db, initialSetup,
10
+ import { object, string } from "@badrap/valita";
11
+ async function ensureShardSchema(lc, db, shard) {
12
+ const initialSetup = {
13
+ migrateSchema: (lc2, tx) => setupTablesAndReplication(lc2, tx, shard),
14
+ minSafeVersion: 1
15
+ };
16
+ await runSchemaMigrations(
17
+ lc,
18
+ `upstream-shard-${shard.appID}`,
19
+ upstreamSchema(shard),
20
+ db,
21
+ initialSetup,
19
22
  // The incremental migration of any existing replicas will be replaced by
20
23
  // the incoming replica being synced, so the replicaVersion here is
21
24
  // unnecessary.
22
- getIncrementalMigrations(shard, 'obsolete'));
25
+ getIncrementalMigrations(shard, "obsolete")
26
+ );
23
27
  }
24
- /**
25
- * Updates the schema for an existing shard.
26
- */
27
- export async function updateShardSchema(lc, db, shard, replicaVersion) {
28
- await runSchemaMigrations(lc, `upstream-shard-${shard.appID}`, upstreamSchema(shard), db, {
29
- // If the expected existing shard is absent, throw an
30
- // AutoResetSignal to backtrack and initial sync.
31
- migrateSchema: () => {
32
- throw new AutoResetSignal(`upstream shard ${upstreamSchema(shard)} is not initialized`);
33
- },
34
- }, getIncrementalMigrations(shard, replicaVersion));
35
- // The decommission check is run in updateShardSchema so that it happens
36
- // after initial sync, and not when the shard schema is initially set up.
37
- await decommissionLegacyShard(lc, db, shard);
28
+ async function updateShardSchema(lc, db, shard, replicaVersion) {
29
+ await runSchemaMigrations(
30
+ lc,
31
+ `upstream-shard-${shard.appID}`,
32
+ upstreamSchema(shard),
33
+ db,
34
+ {
35
+ // If the expected existing shard is absent, throw an
36
+ // AutoResetSignal to backtrack and initial sync.
37
+ migrateSchema: () => {
38
+ throw new AutoResetSignal(
39
+ `upstream shard ${upstreamSchema(shard)} is not initialized`
40
+ );
41
+ }
42
+ },
43
+ getIncrementalMigrations(shard, replicaVersion)
44
+ );
45
+ await decommissionLegacyShard(lc, db, shard);
38
46
  }
39
47
  function getIncrementalMigrations(shard, replicaVersion) {
40
- const shardConfigTable = `${upstreamSchema(shard)}.shardConfig`;
41
- return {
42
- 4: {
43
- migrateSchema: () => {
44
- throw new AutoResetSignal('resetting to upgrade shard schema');
45
- },
46
- minSafeVersion: 3,
47
- },
48
- // v5 changes the upstream schema organization from "zero_{SHARD_ID}" to
49
- // the "{APP_ID}_0". An incremental migration indicates that the previous
50
- // SHARD_ID was "0" and the new APP_ID is "zero" (i.e. the default values
51
- // for those options). In this case, the upstream format is identical, and
52
- // no migration is necessary. However, the version is bumped to v5 to
53
- // indicate that it was created with the {APP_ID} configuration and should
54
- // not be decommissioned as a legacy shard.
55
- 5: {},
56
- 6: {
57
- migrateSchema: async (lc, sql) => {
58
- assert(replicaVersion, `replicaVersion is always passed for incremental migrations`);
59
- await Promise.all([
60
- sql `
48
+ const shardConfigTable = `${upstreamSchema(shard)}.shardConfig`;
49
+ return {
50
+ 4: {
51
+ migrateSchema: () => {
52
+ throw new AutoResetSignal("resetting to upgrade shard schema");
53
+ },
54
+ minSafeVersion: 3
55
+ },
56
+ // v5 changes the upstream schema organization from "zero_{SHARD_ID}" to
57
+ // the "{APP_ID}_0". An incremental migration indicates that the previous
58
+ // SHARD_ID was "0" and the new APP_ID is "zero" (i.e. the default values
59
+ // for those options). In this case, the upstream format is identical, and
60
+ // no migration is necessary. However, the version is bumped to v5 to
61
+ // indicate that it was created with the {APP_ID} configuration and should
62
+ // not be decommissioned as a legacy shard.
63
+ 5: {},
64
+ 6: {
65
+ migrateSchema: async (lc, sql) => {
66
+ assert(
67
+ replicaVersion,
68
+ `replicaVersion is always passed for incremental migrations`
69
+ );
70
+ await Promise.all([
71
+ sql`
61
72
  ALTER TABLE ${sql(shardConfigTable)} ADD "replicaVersion" TEXT`,
62
- sql `
63
- UPDATE ${sql(shardConfigTable)} SET ${sql({ replicaVersion })}`,
64
- ]);
65
- lc.info?.(`Recorded replicaVersion ${replicaVersion} in upstream shardConfig`);
66
- },
67
- },
68
- // Updates the DDL event trigger protocol to v2, and adds support for
69
- // ALTER SCHEMA x RENAME TO y
70
- 7: {
71
- migrateSchema: async (lc, sql) => {
72
- const [{ publications }] = await sql `
73
+ sql`
74
+ UPDATE ${sql(shardConfigTable)} SET ${sql({ replicaVersion })}`
75
+ ]);
76
+ lc.info?.(
77
+ `Recorded replicaVersion ${replicaVersion} in upstream shardConfig`
78
+ );
79
+ }
80
+ },
81
+ // Updates the DDL event trigger protocol to v2, and adds support for
82
+ // ALTER SCHEMA x RENAME TO y
83
+ 7: {
84
+ migrateSchema: async (lc, sql) => {
85
+ const [{ publications }] = await sql`
73
86
  SELECT publications FROM ${sql(shardConfigTable)}`;
74
- await setupTriggers(lc, sql, { ...shard, publications });
75
- lc.info?.(`Upgraded to v2 event triggers`);
76
- },
77
- },
78
- // Adds support for non-disruptive resyncs, which tracks multiple
79
- // replicas with different slot names.
80
- 8: {
81
- migrateSchema: async (lc, sql) => {
82
- const legacyShardConfigSchema = v.object({
83
- replicaVersion: v.string().nullable(),
84
- initialSchema: publishedSchema.nullable(),
85
- });
86
- const result = await sql `
87
+ await setupTriggers(lc, sql, { ...shard, publications });
88
+ lc.info?.(`Upgraded to v2 event triggers`);
89
+ }
90
+ },
91
+ // Adds support for non-disruptive resyncs, which tracks multiple
92
+ // replicas with different slot names.
93
+ 8: {
94
+ migrateSchema: async (lc, sql) => {
95
+ const legacyShardConfigSchema = object({
96
+ replicaVersion: string().nullable(),
97
+ initialSchema: publishedSchema.nullable()
98
+ });
99
+ const result = await sql`
87
100
  SELECT "replicaVersion", "initialSchema" FROM ${sql(shardConfigTable)}`;
88
- assert(result.length === 1);
89
- const { replicaVersion, initialSchema } = v.parse(result[0], legacyShardConfigSchema, 'passthrough');
90
- await Promise.all([
91
- sql `
101
+ assert(result.length === 1);
102
+ const { replicaVersion: replicaVersion2, initialSchema } = parse(
103
+ result[0],
104
+ legacyShardConfigSchema,
105
+ "passthrough"
106
+ );
107
+ await Promise.all([
108
+ sql`
92
109
  CREATE TABLE ${sql(upstreamSchema(shard))}.replicas (
93
110
  "slot" TEXT PRIMARY KEY,
94
111
  "version" TEXT NOT NULL,
95
112
  "initialSchema" JSON NOT NULL
96
113
  );
97
114
  `,
98
- sql `
115
+ sql`
99
116
  INSERT INTO ${sql(upstreamSchema(shard))}.replicas ${sql({
100
- slot: legacyReplicationSlot(shard),
101
- version: replicaVersion,
102
- initialSchema,
103
- })}
117
+ slot: legacyReplicationSlot(shard),
118
+ version: replicaVersion2,
119
+ initialSchema
120
+ })}
104
121
  `,
105
- sql `
122
+ sql`
106
123
  ALTER TABLE ${sql(shardConfigTable)} DROP "replicaVersion", DROP "initialSchema"
107
- `,
108
- ]);
109
- lc.info?.(`Upgraded schema to support non-disruptive resyncs`);
110
- },
111
- },
112
- // Fixes field ordering of compound indexes. This incremental migration
113
- // only fixes indexes resulting from new schema changes. A full resync is
114
- // required to fix existing indexes.
115
- 9: {
116
- migrateSchema: async (lc, sql) => {
117
- const [{ publications }] = await sql `
124
+ `
125
+ ]);
126
+ lc.info?.(`Upgraded schema to support non-disruptive resyncs`);
127
+ }
128
+ },
129
+ // Fixes field ordering of compound indexes. This incremental migration
130
+ // only fixes indexes resulting from new schema changes. A full resync is
131
+ // required to fix existing indexes.
132
+ 9: {
133
+ migrateSchema: async (lc, sql) => {
134
+ const [{ publications }] = await sql`
118
135
  SELECT publications FROM ${sql(shardConfigTable)}`;
119
- await setupTriggers(lc, sql, { ...shard, publications });
120
- lc.info?.(`Upgraded DDL event triggers`);
121
- },
122
- },
123
- // Adds the `mutations` table used to track mutation results.
124
- 10: {
125
- migrateSchema: async (lc, sql) => {
126
- await sql.unsafe(/*sql*/ `
136
+ await setupTriggers(lc, sql, { ...shard, publications });
137
+ lc.info?.(`Upgraded DDL event triggers`);
138
+ }
139
+ },
140
+ // Adds the `mutations` table used to track mutation results.
141
+ 10: {
142
+ migrateSchema: async (lc, sql) => {
143
+ await sql.unsafe(
144
+ /*sql*/
145
+ `
127
146
  ${getMutationsTableDefinition(upstreamSchema(shard))}
128
147
  ALTER PUBLICATION ${id(metadataPublicationName(shard.appID, shard.shardNum))} ADD TABLE ${id(upstreamSchema(shard))}."mutations";
129
- `);
130
- lc.info?.('Upgraded schema with new mutations table');
131
- },
132
- },
133
- };
148
+ `
149
+ );
150
+ lc.info?.("Upgraded schema with new mutations table");
151
+ }
152
+ }
153
+ };
134
154
  }
135
- export async function decommissionLegacyShard(lc, db, shard) {
136
- if (shard.appID !== 'zero') {
137
- // When migration from non-default shard ids, e.g. "zero_prod" => "prod_0",
138
- // clean up the old "zero_prod" shard if it is pre-v5. Note that the v5
139
- // check is important to guard against cleaning up a **new** "zero_0" app
140
- // that coexists with the current App (with app-id === "0").
141
- const versionHistory = await getVersionHistory(db, `zero_${shard.appID}`);
142
- if (versionHistory !== null && versionHistory.schemaVersion < 5) {
143
- await decommissionShard(lc, db, 'zero', shard.appID);
144
- }
155
+ async function decommissionLegacyShard(lc, db, shard) {
156
+ if (shard.appID !== "zero") {
157
+ const versionHistory = await getVersionHistory(db, `zero_${shard.appID}`);
158
+ if (versionHistory !== null && versionHistory.schemaVersion < 5) {
159
+ await decommissionShard(lc, db, "zero", shard.appID);
145
160
  }
161
+ }
146
162
  }
147
- //# sourceMappingURL=init.js.map
163
+ export {
164
+ decommissionLegacyShard,
165
+ ensureShardSchema,
166
+ updateShardSchema
167
+ };
168
+ //# sourceMappingURL=init.js.map