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

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 (1581) 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.js +67 -74
  586. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  587. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  588. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  589. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  590. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  591. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  592. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  593. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  594. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
  595. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
  596. package/out/zero-cache/src/services/change-source/protocol/current/control.js +13 -19
  597. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  598. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  599. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  600. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
  601. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  602. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  603. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  604. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts +8 -0
  605. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts.map +1 -0
  606. package/out/zero-cache/src/services/change-source/protocol/current/json.js +19 -0
  607. package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
  608. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  609. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  610. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  611. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  612. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  613. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  614. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  615. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  616. package/out/zero-cache/src/services/change-source/protocol/current.d.ts +1 -0
  617. package/out/zero-cache/src/services/change-source/protocol/current.d.ts.map +1 -1
  618. package/out/zero-cache/src/services/change-source/protocol/current.js +38 -7
  619. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  620. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  621. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  622. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  623. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  624. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  625. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  626. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  627. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -4
  628. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  629. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +208 -157
  630. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  631. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  632. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  633. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +242 -349
  634. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  635. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
  636. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  637. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  638. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  639. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  640. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  641. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  642. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  643. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  644. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  645. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  646. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  647. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  648. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  649. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  650. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  651. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  652. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  653. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  654. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  655. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  656. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  657. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  658. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  659. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  660. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  661. package/out/zero-cache/src/services/change-streamer/storer.js +308 -353
  662. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  663. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  664. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  665. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  666. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  667. package/out/zero-cache/src/services/heapz.js +21 -25
  668. package/out/zero-cache/src/services/heapz.js.map +1 -1
  669. package/out/zero-cache/src/services/http-service.d.ts +5 -5
  670. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  671. package/out/zero-cache/src/services/http-service.js +57 -59
  672. package/out/zero-cache/src/services/http-service.js.map +1 -1
  673. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  674. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  675. package/out/zero-cache/src/services/life-cycle.js +216 -255
  676. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  677. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  678. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  679. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  680. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  681. package/out/zero-cache/src/services/litestream/commands.js +202 -154
  682. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  683. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  684. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  685. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  686. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  687. package/out/zero-cache/src/services/mutagen/mutagen.js +271 -267
  688. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  689. package/out/zero-cache/src/services/mutagen/pusher.d.ts +202 -2
  690. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  691. package/out/zero-cache/src/services/mutagen/pusher.js +354 -348
  692. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  693. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  694. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  695. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  696. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  697. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  698. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  699. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  700. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  701. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  702. package/out/zero-cache/src/services/replicator/replication-status.d.ts +2 -0
  703. package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
  704. package/out/zero-cache/src/services/replicator/replication-status.js +113 -83
  705. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  706. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  707. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  708. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  709. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  710. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  711. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  712. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  713. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  714. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  715. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  716. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  717. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  718. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  719. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  720. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  721. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  722. package/out/zero-cache/src/services/run-ast.js +91 -78
  723. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  724. package/out/zero-cache/src/services/runner.d.ts +1 -1
  725. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  726. package/out/zero-cache/src/services/runner.js +40 -40
  727. package/out/zero-cache/src/services/runner.js.map +1 -1
  728. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  729. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  730. package/out/zero-cache/src/services/running-state.js +122 -119
  731. package/out/zero-cache/src/services/running-state.js.map +1 -1
  732. package/out/zero-cache/src/services/statz.js +184 -162
  733. package/out/zero-cache/src/services/statz.js.map +1 -1
  734. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +2 -1
  735. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +1 -1
  736. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +56 -42
  737. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  738. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
  739. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  740. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
  742. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  743. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +1 -1
  744. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  745. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +110 -96
  746. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  747. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -5
  748. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  749. package/out/zero-cache/src/services/view-syncer/cvr-store.js +676 -611
  750. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  751. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +4 -1
  752. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  753. package/out/zero-cache/src/services/view-syncer/cvr.js +643 -694
  754. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  755. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -60
  756. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  757. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  758. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  759. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  760. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  761. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +23 -22
  762. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  763. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +584 -461
  764. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  765. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  766. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  767. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  768. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  769. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +1 -0
  770. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  771. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +79 -131
  772. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  773. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/schema/init.js +207 -131
  775. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  776. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  777. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  778. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  779. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +5 -5
  780. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  781. package/out/zero-cache/src/services/view-syncer/snapshotter.js +309 -337
  782. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  783. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  784. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  785. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +5 -4
  786. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  787. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1514 -1311
  788. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  789. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  790. package/out/zero-cache/src/types/error-with-level.js +30 -21
  791. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  792. package/out/zero-cache/src/types/http.js +27 -14
  793. package/out/zero-cache/src/types/http.js.map +1 -1
  794. package/out/zero-cache/src/types/lexi-version.js +46 -31
  795. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  796. package/out/zero-cache/src/types/lite.js +118 -125
  797. package/out/zero-cache/src/types/lite.js.map +1 -1
  798. package/out/zero-cache/src/types/names.js +6 -3
  799. package/out/zero-cache/src/types/names.js.map +1 -1
  800. package/out/zero-cache/src/types/pg-data-type.js +74 -68
  801. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  802. package/out/zero-cache/src/types/pg-types.js +17 -72
  803. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  804. package/out/zero-cache/src/types/pg.d.ts +1 -1
  805. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  806. package/out/zero-cache/src/types/pg.js +213 -233
  807. package/out/zero-cache/src/types/pg.js.map +1 -1
  808. package/out/zero-cache/src/types/processes.d.ts +2 -2
  809. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  810. package/out/zero-cache/src/types/processes.js +95 -143
  811. package/out/zero-cache/src/types/processes.js.map +1 -1
  812. package/out/zero-cache/src/types/profiler.js +29 -30
  813. package/out/zero-cache/src/types/profiler.js.map +1 -1
  814. package/out/zero-cache/src/types/row-key.js +30 -68
  815. package/out/zero-cache/src/types/row-key.js.map +1 -1
  816. package/out/zero-cache/src/types/schema-versions.js +25 -19
  817. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  818. package/out/zero-cache/src/types/shards.js +50 -36
  819. package/out/zero-cache/src/types/shards.js.map +1 -1
  820. package/out/zero-cache/src/types/sql.js +9 -13
  821. package/out/zero-cache/src/types/sql.js.map +1 -1
  822. package/out/zero-cache/src/types/streams.js +245 -254
  823. package/out/zero-cache/src/types/streams.js.map +1 -1
  824. package/out/zero-cache/src/types/strings.js +14 -11
  825. package/out/zero-cache/src/types/strings.js.map +1 -1
  826. package/out/zero-cache/src/types/subscription.js +200 -259
  827. package/out/zero-cache/src/types/subscription.js.map +1 -1
  828. package/out/zero-cache/src/types/url-params.js +35 -30
  829. package/out/zero-cache/src/types/url-params.js.map +1 -1
  830. package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
  831. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  832. package/out/zero-cache/src/types/websocket-handoff.js +68 -76
  833. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  834. package/out/zero-cache/src/types/ws.js +56 -59
  835. package/out/zero-cache/src/types/ws.js.map +1 -1
  836. package/out/zero-cache/src/workers/connect-params.d.ts +1 -0
  837. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
  838. package/out/zero-cache/src/workers/connect-params.js +46 -40
  839. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  840. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  841. package/out/zero-cache/src/workers/connection.js +282 -243
  842. package/out/zero-cache/src/workers/connection.js.map +1 -1
  843. package/out/zero-cache/src/workers/mutator.js +24 -0
  844. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  845. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  846. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  847. package/out/zero-cache/src/workers/replicator.js +103 -106
  848. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  849. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  850. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +181 -147
  851. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  852. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  853. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  854. package/out/zero-cache/src/workers/syncer.js +192 -169
  855. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  856. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  857. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  858. package/out/zero-client/src/client/bindings.d.ts +13 -0
  859. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  860. package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
  861. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  862. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  863. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  864. package/out/zero-client/src/client/connection-manager.d.ts +20 -40
  865. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  866. package/out/zero-client/src/client/connection-manager.js +310 -0
  867. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  868. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  869. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  870. package/out/zero-client/src/client/connection.d.ts +47 -4
  871. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  872. package/out/zero-client/src/client/connection.js +110 -0
  873. package/out/zero-client/src/client/connection.js.map +1 -0
  874. package/out/zero-client/src/client/context.d.ts +9 -10
  875. package/out/zero-client/src/client/context.d.ts.map +1 -1
  876. package/out/zero-client/src/client/context.js +104 -0
  877. package/out/zero-client/src/client/context.js.map +1 -0
  878. package/out/zero-client/src/client/crud-impl.d.ts +11 -0
  879. package/out/zero-client/src/client/crud-impl.d.ts.map +1 -0
  880. package/out/zero-client/src/client/crud-impl.js +102 -0
  881. package/out/zero-client/src/client/crud-impl.js.map +1 -0
  882. package/out/zero-client/src/client/crud.d.ts +15 -46
  883. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  884. package/out/zero-client/src/client/crud.js +139 -0
  885. package/out/zero-client/src/client/crud.js.map +1 -0
  886. package/out/zero-client/src/client/custom.d.ts +51 -25
  887. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  888. package/out/zero-client/src/client/custom.js +87 -0
  889. package/out/zero-client/src/client/custom.js.map +1 -0
  890. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  891. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  892. package/out/zero-client/src/client/delete-clients-manager.js +98 -0
  893. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  894. package/out/zero-client/src/client/enable-analytics.js +18 -0
  895. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  896. package/out/zero-client/src/client/error.d.ts +30 -12
  897. package/out/zero-client/src/client/error.d.ts.map +1 -1
  898. package/out/zero-client/src/client/error.js +148 -0
  899. package/out/zero-client/src/client/error.js.map +1 -0
  900. package/out/zero-client/src/client/http-string.js +11 -0
  901. package/out/zero-client/src/client/http-string.js.map +1 -0
  902. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  903. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  904. package/out/zero-client/src/client/inspector/client.js +28 -0
  905. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  906. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  907. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  908. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  909. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  910. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  911. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  912. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  913. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  914. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  915. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  916. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  917. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  918. package/out/zero-client/src/client/inspector/query.js +82 -0
  919. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  920. package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
  921. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  922. package/out/zero-client/src/client/ivm-branch.js +156 -0
  923. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  924. package/out/zero-client/src/client/keys.js +45 -0
  925. package/out/zero-client/src/client/keys.js.map +1 -0
  926. package/out/zero-client/src/client/log-options.js +60 -0
  927. package/out/zero-client/src/client/log-options.js.map +1 -0
  928. package/out/zero-client/src/client/make-mutate-property.d.ts +40 -0
  929. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  930. package/out/zero-client/src/client/make-mutate-property.js +33 -0
  931. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  932. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  933. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  934. package/out/zero-client/src/client/make-replicache-mutators.js +108 -0
  935. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  936. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  937. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  938. package/out/zero-client/src/client/metrics.d.ts +2 -2
  939. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  940. package/out/zero-client/src/client/metrics.js +249 -0
  941. package/out/zero-client/src/client/metrics.js.map +1 -0
  942. package/out/zero-client/src/client/mutation-tracker.d.ts +12 -4
  943. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  944. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  945. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  946. package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
  947. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  948. package/out/zero-client/src/client/mutator-proxy.js +144 -0
  949. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  950. package/out/zero-client/src/client/options.d.ts +70 -10
  951. package/out/zero-client/src/client/options.d.ts.map +1 -1
  952. package/out/zero-client/src/client/options.js +11 -0
  953. package/out/zero-client/src/client/options.js.map +1 -0
  954. package/out/zero-client/src/client/query-manager.d.ts +9 -2
  955. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  956. package/out/zero-client/src/client/query-manager.js +377 -0
  957. package/out/zero-client/src/client/query-manager.js.map +1 -0
  958. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  959. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  960. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  961. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  962. package/out/zero-client/src/client/server-option.js +64 -0
  963. package/out/zero-client/src/client/server-option.js.map +1 -0
  964. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  965. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  966. package/out/zero-client/src/client/version.js +5 -0
  967. package/out/zero-client/src/client/version.js.map +1 -0
  968. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  969. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  970. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  971. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  972. package/out/zero-client/src/client/zero-rep.d.ts +3 -2
  973. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  974. package/out/zero-client/src/client/zero-rep.js +72 -0
  975. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  976. package/out/zero-client/src/client/zero.d.ts +106 -26
  977. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  978. package/out/zero-client/src/client/zero.js +1787 -0
  979. package/out/zero-client/src/client/zero.js.map +1 -0
  980. package/out/zero-client/src/mod.d.ts +24 -20
  981. package/out/zero-client/src/mod.d.ts.map +1 -1
  982. package/out/zero-client/src/types/query-result.d.ts +5 -4
  983. package/out/zero-client/src/types/query-result.d.ts.map +1 -1
  984. package/out/zero-client/src/util/nanoid.js +21 -0
  985. package/out/zero-client/src/util/nanoid.js.map +1 -0
  986. package/out/zero-client/src/util/socket.js +7 -0
  987. package/out/zero-client/src/util/socket.js.map +1 -0
  988. package/out/zero-events/src/status.d.ts +1 -1
  989. package/out/zero-events/src/status.d.ts.map +1 -1
  990. package/out/zero-protocol/src/analyze-query-result.d.ts +238 -1
  991. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  992. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  993. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  994. package/out/zero-protocol/src/application-error.d.ts +2 -8
  995. package/out/zero-protocol/src/application-error.d.ts.map +1 -1
  996. package/out/zero-protocol/src/application-error.js +35 -34
  997. package/out/zero-protocol/src/application-error.js.map +1 -1
  998. package/out/zero-protocol/src/ast.d.ts +2 -2
  999. package/out/zero-protocol/src/ast.js +296 -277
  1000. package/out/zero-protocol/src/ast.js.map +1 -1
  1001. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  1002. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  1003. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  1004. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  1005. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  1006. package/out/zero-protocol/src/client-schema.js +40 -26
  1007. package/out/zero-protocol/src/client-schema.js.map +1 -1
  1008. package/out/zero-protocol/src/close-connection.js +11 -18
  1009. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1010. package/out/zero-protocol/src/connect.d.ts +4 -4
  1011. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1012. package/out/zero-protocol/src/connect.js +50 -51
  1013. package/out/zero-protocol/src/connect.js.map +1 -1
  1014. package/out/zero-protocol/src/custom-queries.d.ts +4 -4
  1015. package/out/zero-protocol/src/custom-queries.js +61 -39
  1016. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1017. package/out/zero-protocol/src/data.js +9 -4
  1018. package/out/zero-protocol/src/data.js.map +1 -1
  1019. package/out/zero-protocol/src/delete-clients.js +16 -9
  1020. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1021. package/out/zero-protocol/src/down.d.ts +107 -7
  1022. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1023. package/out/zero-protocol/src/down.js +20 -4
  1024. package/out/zero-protocol/src/down.js.map +1 -1
  1025. package/out/zero-protocol/src/error-kind-enum.js +41 -23
  1026. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1027. package/out/zero-protocol/src/error-origin-enum.js +9 -4
  1028. package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
  1029. package/out/zero-protocol/src/error-reason-enum.js +17 -8
  1030. package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
  1031. package/out/zero-protocol/src/error.d.ts +17 -17
  1032. package/out/zero-protocol/src/error.js +151 -89
  1033. package/out/zero-protocol/src/error.js.map +1 -1
  1034. package/out/zero-protocol/src/inspect-down.d.ts +321 -21
  1035. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1036. package/out/zero-protocol/src/inspect-down.js +72 -54
  1037. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1038. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1039. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1040. package/out/zero-protocol/src/inspect-up.js +39 -26
  1041. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1042. package/out/zero-protocol/src/mutation-id.js +9 -5
  1043. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  1044. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1045. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1046. package/out/zero-protocol/src/mutations-patch.js +16 -17
  1047. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1048. package/out/zero-protocol/src/ping.js +9 -4
  1049. package/out/zero-protocol/src/ping.js.map +1 -1
  1050. package/out/zero-protocol/src/poke.js +55 -72
  1051. package/out/zero-protocol/src/poke.js.map +1 -1
  1052. package/out/zero-protocol/src/pong.js +9 -4
  1053. package/out/zero-protocol/src/pong.js.map +1 -1
  1054. package/out/zero-protocol/src/primary-key.js +19 -5
  1055. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1056. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1057. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1058. package/out/zero-protocol/src/protocol-version.js +7 -58
  1059. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1060. package/out/zero-protocol/src/pull.js +26 -19
  1061. package/out/zero-protocol/src/pull.js.map +1 -1
  1062. package/out/zero-protocol/src/push.d.ts +4 -4
  1063. package/out/zero-protocol/src/push.js +179 -176
  1064. package/out/zero-protocol/src/push.js.map +1 -1
  1065. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1066. package/out/zero-protocol/src/queries-patch.js +29 -22
  1067. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1068. package/out/zero-protocol/src/query-hash.js +18 -14
  1069. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1070. package/out/zero-protocol/src/row-patch.js +29 -20
  1071. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1072. package/out/zero-protocol/src/up.d.ts +6 -5
  1073. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1074. package/out/zero-protocol/src/up.js +18 -4
  1075. package/out/zero-protocol/src/up.js.map +1 -1
  1076. package/out/zero-protocol/src/version.js +9 -4
  1077. package/out/zero-protocol/src/version.js.map +1 -1
  1078. package/out/zero-react/src/bindings.d.ts +2 -0
  1079. package/out/zero-react/src/bindings.d.ts.map +1 -0
  1080. package/out/zero-react/src/mod.d.ts +2 -13
  1081. package/out/zero-react/src/mod.d.ts.map +1 -1
  1082. package/out/zero-react/src/use-connection-state.d.ts +9 -0
  1083. package/out/zero-react/src/use-connection-state.d.ts.map +1 -0
  1084. package/out/zero-react/src/use-connection-state.js +14 -0
  1085. package/out/zero-react/src/use-connection-state.js.map +1 -0
  1086. package/out/zero-react/src/use-query.d.ts +5 -9
  1087. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1088. package/out/zero-react/src/use-query.js +289 -0
  1089. package/out/zero-react/src/use-query.js.map +1 -0
  1090. package/out/zero-react/src/use-zero-online.d.ts +1 -1
  1091. package/out/zero-react/src/use-zero-online.js +14 -0
  1092. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1093. package/out/zero-react/src/zero-provider.d.ts +19 -10
  1094. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1095. package/out/zero-react/src/zero-provider.js +77 -0
  1096. package/out/zero-react/src/zero-provider.js.map +1 -0
  1097. package/out/zero-react/src/zero.d.ts +2 -0
  1098. package/out/zero-react/src/zero.d.ts.map +1 -0
  1099. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1100. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1101. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1102. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1103. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1104. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1105. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1106. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1107. package/out/zero-schema/src/compiled-permissions.js +23 -19
  1108. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1109. package/out/zero-schema/src/name-mapper.js +43 -38
  1110. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1111. package/out/zero-schema/src/permissions.d.ts +12 -9
  1112. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1113. package/out/zero-schema/src/permissions.js +193 -0
  1114. package/out/zero-schema/src/permissions.js.map +1 -0
  1115. package/out/zero-schema/src/schema-config.d.ts +1 -1
  1116. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1117. package/out/zero-schema/src/schema-config.js +35 -51
  1118. package/out/zero-schema/src/schema-config.js.map +1 -1
  1119. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1120. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1121. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1122. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1123. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1124. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1125. package/out/zero-server/src/adapters/pg.js +54 -74
  1126. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1127. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1128. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1129. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1130. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1131. package/out/zero-server/src/custom.d.ts +57 -19
  1132. package/out/zero-server/src/custom.d.ts.map +1 -1
  1133. package/out/zero-server/src/custom.js +289 -107
  1134. package/out/zero-server/src/custom.js.map +1 -1
  1135. package/out/zero-server/src/logging.js +7 -4
  1136. package/out/zero-server/src/logging.js.map +1 -1
  1137. package/out/zero-server/src/mod.d.ts +1 -1
  1138. package/out/zero-server/src/mod.d.ts.map +1 -1
  1139. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1140. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1141. package/out/zero-server/src/pg-query-executor.js +20 -0
  1142. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1143. package/out/zero-server/src/process-mutations.d.ts +13 -13
  1144. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1145. package/out/zero-server/src/process-mutations.js +328 -272
  1146. package/out/zero-server/src/process-mutations.js.map +1 -1
  1147. package/out/zero-server/src/push-processor.d.ts +5 -3
  1148. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1149. package/out/zero-server/src/push-processor.js +50 -32
  1150. package/out/zero-server/src/push-processor.js.map +1 -1
  1151. package/out/zero-server/src/queries/process-queries.d.ts +76 -3
  1152. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1153. package/out/zero-server/src/queries/process-queries.js +104 -93
  1154. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1155. package/out/zero-server/src/schema.d.ts +2 -2
  1156. package/out/zero-server/src/schema.d.ts.map +1 -1
  1157. package/out/zero-server/src/schema.js +136 -124
  1158. package/out/zero-server/src/schema.js.map +1 -1
  1159. package/out/zero-server/src/zql-database.d.ts +9 -6
  1160. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1161. package/out/zero-server/src/zql-database.js +56 -51
  1162. package/out/zero-server/src/zql-database.js.map +1 -1
  1163. package/out/zero-solid/src/bindings.d.ts +2 -0
  1164. package/out/zero-solid/src/bindings.d.ts.map +1 -0
  1165. package/out/zero-solid/src/mod.d.ts +1 -9
  1166. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1167. package/out/zero-solid/src/solid-view.d.ts +3 -5
  1168. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1169. package/out/{solid.js → zero-solid/src/solid-view.js} +47 -196
  1170. package/out/zero-solid/src/solid-view.js.map +1 -0
  1171. package/out/zero-solid/src/{use-zero-connection-state.d.ts → use-connection-state.d.ts} +3 -3
  1172. package/out/zero-solid/src/use-connection-state.d.ts.map +1 -0
  1173. package/out/zero-solid/src/use-connection-state.js +17 -0
  1174. package/out/zero-solid/src/use-connection-state.js.map +1 -0
  1175. package/out/zero-solid/src/use-query.d.ts +4 -7
  1176. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1177. package/out/zero-solid/src/use-query.js +92 -0
  1178. package/out/zero-solid/src/use-query.js.map +1 -0
  1179. package/out/zero-solid/src/use-zero-online.d.ts +1 -1
  1180. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1181. package/out/zero-solid/src/use-zero-online.js +15 -0
  1182. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1183. package/out/zero-solid/src/use-zero.d.ts +22 -11
  1184. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1185. package/out/zero-solid/src/use-zero.js +86 -0
  1186. package/out/zero-solid/src/use-zero.js.map +1 -0
  1187. package/out/zero-solid/src/zero.d.ts +2 -0
  1188. package/out/zero-solid/src/zero.d.ts.map +1 -0
  1189. package/out/zero-types/src/default-types.d.ts +38 -0
  1190. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1191. package/out/zero-types/src/format.js +7 -4
  1192. package/out/zero-types/src/format.js.map +1 -1
  1193. package/out/zero-types/src/name-mapper.js +43 -40
  1194. package/out/zero-types/src/name-mapper.js.map +1 -1
  1195. package/out/zero-types/src/schema.d.ts +4 -4
  1196. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1197. package/out/zql/src/builder/builder.d.ts +10 -2
  1198. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1199. package/out/zql/src/builder/builder.js +474 -427
  1200. package/out/zql/src/builder/builder.js.map +1 -1
  1201. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1202. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1203. package/out/zql/src/builder/debug-delegate.js +68 -47
  1204. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1205. package/out/zql/src/builder/filter.js +132 -138
  1206. package/out/zql/src/builder/filter.js.map +1 -1
  1207. package/out/zql/src/builder/like.js +44 -51
  1208. package/out/zql/src/builder/like.js.map +1 -1
  1209. package/out/zql/src/error.d.ts +5 -0
  1210. package/out/zql/src/error.d.ts.map +1 -1
  1211. package/out/zql/src/error.js +9 -6
  1212. package/out/zql/src/error.js.map +1 -1
  1213. package/out/zql/src/ivm/array-view.d.ts +2 -2
  1214. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  1215. package/out/zql/src/ivm/array-view.js +89 -92
  1216. package/out/zql/src/ivm/array-view.js.map +1 -1
  1217. package/out/zql/src/ivm/constraint.js +74 -127
  1218. package/out/zql/src/ivm/constraint.js.map +1 -1
  1219. package/out/zql/src/ivm/data.d.ts +7 -2
  1220. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1221. package/out/zql/src/ivm/data.js +53 -87
  1222. package/out/zql/src/ivm/data.js.map +1 -1
  1223. package/out/zql/src/ivm/exists.d.ts +6 -4
  1224. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  1225. package/out/zql/src/ivm/exists.js +206 -244
  1226. package/out/zql/src/ivm/exists.js.map +1 -1
  1227. package/out/zql/src/ivm/fan-in.d.ts +5 -3
  1228. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  1229. package/out/zql/src/ivm/fan-in.js +58 -52
  1230. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1231. package/out/zql/src/ivm/fan-out.d.ts +4 -2
  1232. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  1233. package/out/zql/src/ivm/fan-out.js +56 -48
  1234. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1235. package/out/zql/src/ivm/filter-operators.d.ts +13 -11
  1236. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  1237. package/out/zql/src/ivm/filter-operators.js +91 -88
  1238. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1239. package/out/zql/src/ivm/filter-push.d.ts +2 -1
  1240. package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
  1241. package/out/zql/src/ivm/filter-push.js +27 -24
  1242. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1243. package/out/zql/src/ivm/filter.d.ts +4 -2
  1244. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  1245. package/out/zql/src/ivm/filter.js +36 -32
  1246. package/out/zql/src/ivm/filter.js.map +1 -1
  1247. package/out/zql/src/ivm/flipped-join.d.ts +1 -2
  1248. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  1249. package/out/zql/src/ivm/flipped-join.js +372 -325
  1250. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1251. package/out/zql/src/ivm/join-utils.d.ts +9 -2
  1252. package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
  1253. package/out/zql/src/ivm/join-utils.js +104 -78
  1254. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1255. package/out/zql/src/ivm/join.d.ts +3 -16
  1256. package/out/zql/src/ivm/join.d.ts.map +1 -1
  1257. package/out/zql/src/ivm/join.js +225 -211
  1258. package/out/zql/src/ivm/join.js.map +1 -1
  1259. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
  1260. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
  1261. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1262. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1263. package/out/zql/src/ivm/memory-source.d.ts +9 -8
  1264. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1265. package/out/zql/src/ivm/memory-source.js +484 -491
  1266. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1267. package/out/zql/src/ivm/memory-storage.js +32 -31
  1268. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1269. package/out/zql/src/ivm/operator.d.ts +15 -12
  1270. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  1271. package/out/zql/src/ivm/operator.js +16 -9
  1272. package/out/zql/src/ivm/operator.js.map +1 -1
  1273. package/out/zql/src/ivm/push-accumulated.d.ts +2 -2
  1274. package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -1
  1275. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1276. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1277. package/out/zql/src/ivm/skip.d.ts +2 -3
  1278. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  1279. package/out/zql/src/ivm/skip.js +95 -106
  1280. package/out/zql/src/ivm/skip.js.map +1 -1
  1281. package/out/zql/src/ivm/source.d.ts +18 -8
  1282. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1283. package/out/zql/src/ivm/stream.d.ts +2 -0
  1284. package/out/zql/src/ivm/stream.d.ts.map +1 -1
  1285. package/out/zql/src/ivm/stream.js +12 -17
  1286. package/out/zql/src/ivm/stream.js.map +1 -1
  1287. package/out/zql/src/ivm/take.d.ts +2 -3
  1288. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1289. package/out/zql/src/ivm/take.js +525 -451
  1290. package/out/zql/src/ivm/take.js.map +1 -1
  1291. package/out/zql/src/ivm/union-fan-in.d.ts +4 -4
  1292. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  1293. package/out/zql/src/ivm/union-fan-in.js +213 -132
  1294. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1295. package/out/zql/src/ivm/union-fan-out.d.ts +2 -3
  1296. package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
  1297. package/out/zql/src/ivm/union-fan-out.js +43 -45
  1298. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1299. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  1300. package/out/zql/src/ivm/view-apply-change.js +247 -217
  1301. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1302. package/out/zql/src/ivm/view.d.ts +3 -2
  1303. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1304. package/out/zql/src/mutate/crud.d.ts +139 -0
  1305. package/out/zql/src/mutate/crud.d.ts.map +1 -0
  1306. package/out/zql/src/mutate/crud.js +53 -0
  1307. package/out/zql/src/mutate/crud.js.map +1 -0
  1308. package/out/zql/src/mutate/custom.d.ts +40 -63
  1309. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1310. package/out/zql/src/mutate/custom.js +12 -8
  1311. package/out/zql/src/mutate/custom.js.map +1 -1
  1312. package/out/zql/src/mutate/mutator-registry.d.ts +112 -0
  1313. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1314. package/out/zql/src/mutate/mutator-registry.js +88 -0
  1315. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1316. package/out/zql/src/mutate/mutator.d.ts +94 -0
  1317. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1318. package/out/zql/src/mutate/mutator.js +34 -0
  1319. package/out/zql/src/mutate/mutator.js.map +1 -0
  1320. package/out/zql/src/planner/planner-builder.d.ts +2 -1
  1321. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  1322. package/out/zql/src/planner/planner-builder.js +239 -148
  1323. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1324. package/out/zql/src/planner/planner-connection.d.ts +14 -15
  1325. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  1326. package/out/zql/src/planner/planner-connection.js +205 -247
  1327. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1328. package/out/zql/src/planner/planner-constraint.js +8 -11
  1329. package/out/zql/src/planner/planner-constraint.js.map +1 -1
  1330. package/out/zql/src/planner/planner-debug.d.ts +39 -44
  1331. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1332. package/out/zql/src/planner/planner-debug.js +227 -161
  1333. package/out/zql/src/planner/planner-debug.js.map +1 -1
  1334. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  1335. package/out/zql/src/planner/planner-fan-in.js +157 -159
  1336. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1337. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
  1338. package/out/zql/src/planner/planner-fan-out.js +73 -59
  1339. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1340. package/out/zql/src/planner/planner-graph.d.ts +10 -9
  1341. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  1342. package/out/zql/src/planner/planner-graph.js +323 -357
  1343. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1344. package/out/zql/src/planner/planner-join.d.ts +7 -3
  1345. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  1346. package/out/zql/src/planner/planner-join.js +237 -322
  1347. package/out/zql/src/planner/planner-join.js.map +1 -1
  1348. package/out/zql/src/planner/planner-node.d.ts +6 -1
  1349. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1350. package/out/zql/src/planner/planner-node.js +8 -2
  1351. package/out/zql/src/planner/planner-node.js.map +1 -1
  1352. package/out/zql/src/planner/planner-source.js +23 -12
  1353. package/out/zql/src/planner/planner-source.js.map +1 -1
  1354. package/out/zql/src/planner/planner-terminus.js +28 -27
  1355. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1356. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1357. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1358. package/out/zql/src/query/complete-ordering.js +71 -0
  1359. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1360. package/out/zql/src/query/create-builder.d.ts +10 -0
  1361. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1362. package/out/zql/src/query/create-builder.js +32 -0
  1363. package/out/zql/src/query/create-builder.js.map +1 -0
  1364. package/out/zql/src/query/error.js +12 -8
  1365. package/out/zql/src/query/error.js.map +1 -1
  1366. package/out/zql/src/query/escape-like.js +7 -0
  1367. package/out/zql/src/query/escape-like.js.map +1 -0
  1368. package/out/zql/src/query/expression.d.ts +5 -5
  1369. package/out/zql/src/query/expression.d.ts.map +1 -1
  1370. package/out/zql/src/query/expression.js +153 -151
  1371. package/out/zql/src/query/expression.js.map +1 -1
  1372. package/out/zql/src/query/measure-push-operator.d.ts +2 -3
  1373. package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
  1374. package/out/zql/src/query/measure-push-operator.js +39 -35
  1375. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1376. package/out/zql/src/query/metrics-delegate.js +9 -5
  1377. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1378. package/out/zql/src/query/named.d.ts +21 -12
  1379. package/out/zql/src/query/named.d.ts.map +1 -1
  1380. package/out/zql/src/query/named.js +46 -64
  1381. package/out/zql/src/query/named.js.map +1 -1
  1382. package/out/zql/src/query/query-delegate-base.d.ts +120 -0
  1383. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1384. package/out/zql/src/query/query-delegate-base.js +250 -0
  1385. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1386. package/out/zql/src/query/query-delegate.d.ts +27 -4
  1387. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1388. package/out/zql/src/query/query-impl.d.ts +30 -52
  1389. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1390. package/out/zql/src/query/query-impl.js +393 -459
  1391. package/out/zql/src/query/query-impl.js.map +1 -1
  1392. package/out/zql/src/query/query-internals.d.ts +68 -0
  1393. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1394. package/out/zql/src/query/query-internals.js +11 -0
  1395. package/out/zql/src/query/query-internals.js.map +1 -0
  1396. package/out/zql/src/query/query-registry.d.ts +239 -0
  1397. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1398. package/out/zql/src/query/query-registry.js +121 -0
  1399. package/out/zql/src/query/query-registry.js.map +1 -0
  1400. package/out/zql/src/query/query.d.ts +65 -242
  1401. package/out/zql/src/query/query.d.ts.map +1 -1
  1402. package/out/zql/src/query/runnable-query-impl.d.ts +22 -0
  1403. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -0
  1404. package/out/zql/src/query/runnable-query-impl.js +60 -0
  1405. package/out/zql/src/query/runnable-query-impl.js.map +1 -0
  1406. package/out/zql/src/query/schema-query.d.ts +8 -0
  1407. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1408. package/out/zql/src/query/static-query.d.ts +3 -25
  1409. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1410. package/out/zql/src/query/static-query.js +18 -32
  1411. package/out/zql/src/query/static-query.js.map +1 -1
  1412. package/out/zql/src/query/ttl.js +69 -62
  1413. package/out/zql/src/query/ttl.js.map +1 -1
  1414. package/out/zql/src/query/validate-input.d.ts +15 -0
  1415. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1416. package/out/zql/src/query/validate-input.js +24 -0
  1417. package/out/zql/src/query/validate-input.js.map +1 -0
  1418. package/out/zqlite/src/database-storage.d.ts +1 -1
  1419. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1420. package/out/zqlite/src/database-storage.js +99 -102
  1421. package/out/zqlite/src/database-storage.js.map +1 -1
  1422. package/out/zqlite/src/db.d.ts +2 -1
  1423. package/out/zqlite/src/db.d.ts.map +1 -1
  1424. package/out/zqlite/src/db.js +241 -192
  1425. package/out/zqlite/src/db.js.map +1 -1
  1426. package/out/zqlite/src/explain-queries.js +13 -16
  1427. package/out/zqlite/src/explain-queries.js.map +1 -1
  1428. package/out/zqlite/src/internal/sql-inline.d.ts +13 -0
  1429. package/out/zqlite/src/internal/sql-inline.d.ts.map +1 -0
  1430. package/out/zqlite/src/internal/sql-inline.js +45 -0
  1431. package/out/zqlite/src/internal/sql-inline.js.map +1 -0
  1432. package/out/zqlite/src/internal/sql.js +15 -10
  1433. package/out/zqlite/src/internal/sql.js.map +1 -1
  1434. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1435. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1436. package/out/zqlite/src/query-builder.js +172 -143
  1437. package/out/zqlite/src/query-builder.js.map +1 -1
  1438. package/out/zqlite/src/query-delegate.d.ts +5 -19
  1439. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1440. package/out/zqlite/src/query-delegate.js +56 -70
  1441. package/out/zqlite/src/query-delegate.js.map +1 -1
  1442. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
  1443. package/out/zqlite/src/sqlite-cost-model.js +97 -121
  1444. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1445. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1446. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1447. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1448. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1449. package/out/zqlite/src/table-source.d.ts +18 -6
  1450. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1451. package/out/zqlite/src/table-source.js +443 -311
  1452. package/out/zqlite/src/table-source.js.map +1 -1
  1453. package/package.json +30 -27
  1454. package/out/chunk-424PT5DM.js +0 -23
  1455. package/out/chunk-424PT5DM.js.map +0 -7
  1456. package/out/chunk-AFADJQ2O.js +0 -1
  1457. package/out/chunk-AFADJQ2O.js.map +0 -7
  1458. package/out/chunk-ASRS2LFV.js.map +0 -7
  1459. package/out/chunk-COKJ5W7V.js +0 -18337
  1460. package/out/chunk-COKJ5W7V.js.map +0 -7
  1461. package/out/chunk-ECUMGQGC.js.map +0 -7
  1462. package/out/chunk-EZM3XBAB.js.map +0 -7
  1463. package/out/chunk-TJFNGO7E.js +0 -4126
  1464. package/out/chunk-TJFNGO7E.js.map +0 -7
  1465. package/out/chunk-VZOYWIRW.js +0 -30
  1466. package/out/chunk-VZOYWIRW.js.map +0 -7
  1467. package/out/chunk-YWU2DZ23.js +0 -372
  1468. package/out/chunk-YWU2DZ23.js.map +0 -7
  1469. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1470. package/out/expo-sqlite.js +0 -11
  1471. package/out/expo-sqlite.js.map +0 -7
  1472. package/out/inspector-IU2HG74I.js +0 -43
  1473. package/out/inspector-IU2HG74I.js.map +0 -7
  1474. package/out/lazy-inspector-OXIFYSSQ.js +0 -574
  1475. package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
  1476. package/out/op-sqlite.js.map +0 -7
  1477. package/out/react-native.js +0 -25
  1478. package/out/react-native.js.map +0 -7
  1479. package/out/react.js +0 -479
  1480. package/out/react.js.map +0 -7
  1481. package/out/shared/src/enum.js +0 -2
  1482. package/out/shared/src/enum.js.map +0 -1
  1483. package/out/shared/src/expand.js +0 -2
  1484. package/out/shared/src/expand.js.map +0 -1
  1485. package/out/shared/src/immutable.js +0 -2
  1486. package/out/shared/src/immutable.js.map +0 -1
  1487. package/out/shared/src/types.js +0 -2
  1488. package/out/shared/src/types.js.map +0 -1
  1489. package/out/shared/src/writable.js +0 -2
  1490. package/out/shared/src/writable.js.map +0 -1
  1491. package/out/solid.js.map +0 -7
  1492. package/out/sqlite.js +0 -15
  1493. package/out/sqlite.js.map +0 -7
  1494. package/out/zero/package.json +0 -194
  1495. package/out/zero/src/server/change-streamer.js +0 -2
  1496. package/out/zero/src/server/change-streamer.js.map +0 -1
  1497. package/out/zero/src/server/main.js +0 -2
  1498. package/out/zero/src/server/main.js.map +0 -1
  1499. package/out/zero/src/server/reaper.js +0 -2
  1500. package/out/zero/src/server/reaper.js.map +0 -1
  1501. package/out/zero/src/server/replicator.js +0 -2
  1502. package/out/zero/src/server/replicator.js.map +0 -1
  1503. package/out/zero/src/server/runner/main.js +0 -2
  1504. package/out/zero/src/server/runner/main.js.map +0 -1
  1505. package/out/zero/src/server/syncer.js +0 -2
  1506. package/out/zero/src/server/syncer.js.map +0 -1
  1507. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1508. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1509. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1510. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1511. package/out/zero-cache/src/services/service.js +0 -2
  1512. package/out/zero-cache/src/services/service.js.map +0 -1
  1513. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1514. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1515. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
  1516. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1517. package/out/zero-cache/src/types/satisfies.js +0 -2
  1518. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1519. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1520. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1521. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1522. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1523. package/out/zero-events/src/index.js +0 -2
  1524. package/out/zero-events/src/index.js.map +0 -1
  1525. package/out/zero-events/src/json.js +0 -2
  1526. package/out/zero-events/src/json.js.map +0 -1
  1527. package/out/zero-events/src/status.js +0 -3
  1528. package/out/zero-events/src/status.js.map +0 -1
  1529. package/out/zero-pg/src/mod.js +0 -6
  1530. package/out/zero-pg/src/mod.js.map +0 -1
  1531. package/out/zero-protocol/src/error-kind.js +0 -3
  1532. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1533. package/out/zero-protocol/src/error-origin.js +0 -3
  1534. package/out/zero-protocol/src/error-origin.js.map +0 -1
  1535. package/out/zero-protocol/src/error-reason.js +0 -3
  1536. package/out/zero-protocol/src/error-reason.js.map +0 -1
  1537. package/out/zero-react/src/components/inspector.d.ts +0 -8
  1538. package/out/zero-react/src/components/inspector.d.ts.map +0 -1
  1539. package/out/zero-react/src/components/mark-icon.d.ts +0 -3
  1540. package/out/zero-react/src/components/mark-icon.d.ts.map +0 -1
  1541. package/out/zero-react/src/components/zero-inspector.d.ts +0 -7
  1542. package/out/zero-react/src/components/zero-inspector.d.ts.map +0 -1
  1543. package/out/zero-react/src/use-zero-connection-state.d.ts +0 -9
  1544. package/out/zero-react/src/use-zero-connection-state.d.ts.map +0 -1
  1545. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1546. package/out/zero-schema/src/server-schema.js +0 -2
  1547. package/out/zero-schema/src/server-schema.js.map +0 -1
  1548. package/out/zero-schema/src/table-schema.js +0 -7
  1549. package/out/zero-schema/src/table-schema.js.map +0 -1
  1550. package/out/zero-server/src/mod.js +0 -9
  1551. package/out/zero-server/src/mod.js.map +0 -1
  1552. package/out/zero-server/src/query.d.ts +0 -22
  1553. package/out/zero-server/src/query.d.ts.map +0 -1
  1554. package/out/zero-server/src/query.js +0 -61
  1555. package/out/zero-server/src/query.js.map +0 -1
  1556. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +0 -1
  1557. package/out/zero-types/src/schema-value.js +0 -2
  1558. package/out/zero-types/src/schema-value.js.map +0 -1
  1559. package/out/zero-types/src/schema.js +0 -2
  1560. package/out/zero-types/src/schema.js.map +0 -1
  1561. package/out/zero.js +0 -81
  1562. package/out/zero.js.map +0 -7
  1563. package/out/zql/src/ivm/change.js +0 -2
  1564. package/out/zql/src/ivm/change.js.map +0 -1
  1565. package/out/zql/src/ivm/default-format.js +0 -2
  1566. package/out/zql/src/ivm/default-format.js.map +0 -1
  1567. package/out/zql/src/ivm/schema.js +0 -2
  1568. package/out/zql/src/ivm/schema.js.map +0 -1
  1569. package/out/zql/src/ivm/source.js +0 -2
  1570. package/out/zql/src/ivm/source.js.map +0 -1
  1571. package/out/zql/src/ivm/view.js +0 -2
  1572. package/out/zql/src/ivm/view.js.map +0 -1
  1573. package/out/zql/src/query/query-delegate.js +0 -2
  1574. package/out/zql/src/query/query-delegate.js.map +0 -1
  1575. package/out/zql/src/query/query.js +0 -9
  1576. package/out/zql/src/query/query.js.map +0 -1
  1577. package/out/zql/src/query/typed-view.js +0 -2
  1578. package/out/zql/src/query/typed-view.js.map +0 -1
  1579. package/out/zqlite/src/mod.js +0 -5
  1580. package/out/zqlite/src/mod.js.map +0 -1
  1581. /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