@rocicorp/zero 0.25.0-canary.1 → 0.25.0-canary.11

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 (1563) 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.js +92 -0
  175. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  176. package/out/replicache/src/persist/make-client-id.js +12 -0
  177. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  178. package/out/replicache/src/persist/persist.d.ts +2 -2
  179. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  180. package/out/replicache/src/persist/persist.js +183 -0
  181. package/out/replicache/src/persist/persist.js.map +1 -0
  182. package/out/replicache/src/persist/refresh.d.ts +4 -3
  183. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  184. package/out/replicache/src/persist/refresh.js +198 -0
  185. package/out/replicache/src/persist/refresh.js.map +1 -0
  186. package/out/replicache/src/process-scheduler.js +96 -0
  187. package/out/replicache/src/process-scheduler.js.map +1 -0
  188. package/out/replicache/src/pusher.js +33 -0
  189. package/out/replicache/src/pusher.js.map +1 -0
  190. package/out/replicache/src/replicache-impl.d.ts +1 -1
  191. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  192. package/out/replicache/src/replicache-impl.js +1200 -0
  193. package/out/replicache/src/replicache-impl.js.map +1 -0
  194. package/out/replicache/src/replicache-options.d.ts +3 -2
  195. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  196. package/out/replicache/src/report-error.js +6 -0
  197. package/out/replicache/src/report-error.js.map +1 -0
  198. package/out/replicache/src/request-idle.js +13 -0
  199. package/out/replicache/src/request-idle.js.map +1 -0
  200. package/out/replicache/src/scan-iterator.js +146 -0
  201. package/out/replicache/src/scan-iterator.js.map +1 -0
  202. package/out/replicache/src/scan-options.js +45 -0
  203. package/out/replicache/src/scan-options.js.map +1 -0
  204. package/out/replicache/src/set-interval-with-signal.js +12 -0
  205. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  206. package/out/replicache/src/subscriptions.js +355 -0
  207. package/out/replicache/src/subscriptions.js.map +1 -0
  208. package/out/replicache/src/sync/diff.d.ts +3 -2
  209. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  210. package/out/replicache/src/sync/diff.js +72 -0
  211. package/out/replicache/src/sync/diff.js.map +1 -0
  212. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  213. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  214. package/out/replicache/src/sync/ids.js +9 -0
  215. package/out/replicache/src/sync/ids.js.map +1 -0
  216. package/out/replicache/src/sync/patch.js +49 -0
  217. package/out/replicache/src/sync/patch.js.map +1 -0
  218. package/out/replicache/src/sync/pull-error.js +16 -0
  219. package/out/replicache/src/sync/pull-error.js.map +1 -0
  220. package/out/replicache/src/sync/pull.d.ts +3 -2
  221. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  222. package/out/replicache/src/sync/pull.js +301 -0
  223. package/out/replicache/src/sync/pull.js.map +1 -0
  224. package/out/replicache/src/sync/push.js +88 -0
  225. package/out/replicache/src/sync/push.js.map +1 -0
  226. package/out/replicache/src/sync/request-id.js +20 -0
  227. package/out/replicache/src/sync/request-id.js.map +1 -0
  228. package/out/replicache/src/sync/sync-head-name.js +5 -0
  229. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  230. package/out/replicache/src/to-error.js +10 -0
  231. package/out/replicache/src/to-error.js.map +1 -0
  232. package/out/replicache/src/transaction-closed-error.js +19 -0
  233. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  234. package/out/replicache/src/transactions.js +152 -0
  235. package/out/replicache/src/transactions.js.map +1 -0
  236. package/out/replicache/src/version.js +5 -0
  237. package/out/replicache/src/version.js.map +1 -0
  238. package/out/replicache/src/with-transactions.js +28 -0
  239. package/out/replicache/src/with-transactions.js.map +1 -0
  240. package/out/shared/src/abort-error.js +6 -3
  241. package/out/shared/src/abort-error.js.map +1 -1
  242. package/out/shared/src/arrays.js +45 -43
  243. package/out/shared/src/arrays.js.map +1 -1
  244. package/out/shared/src/asserts.js +64 -68
  245. package/out/shared/src/asserts.js.map +1 -1
  246. package/out/shared/src/bigint-json.js +38 -42
  247. package/out/shared/src/bigint-json.js.map +1 -1
  248. package/out/shared/src/binary-search.js +18 -29
  249. package/out/shared/src/binary-search.js.map +1 -1
  250. package/out/shared/src/broadcast-channel.js +24 -0
  251. package/out/shared/src/broadcast-channel.js.map +1 -0
  252. package/out/shared/src/browser-env.js +25 -0
  253. package/out/shared/src/browser-env.js.map +1 -0
  254. package/out/shared/src/btree-set.js +464 -507
  255. package/out/shared/src/btree-set.js.map +1 -1
  256. package/out/shared/src/cache.js +34 -38
  257. package/out/shared/src/cache.js.map +1 -1
  258. package/out/shared/src/centroid.js +24 -24
  259. package/out/shared/src/centroid.js.map +1 -1
  260. package/out/shared/src/config.js +6 -3
  261. package/out/shared/src/config.js.map +1 -1
  262. package/out/shared/src/custom-key-map.js +58 -64
  263. package/out/shared/src/custom-key-map.js.map +1 -1
  264. package/out/shared/src/custom-key-set.js +51 -57
  265. package/out/shared/src/custom-key-set.js.map +1 -1
  266. package/out/shared/src/deep-clone.js +46 -0
  267. package/out/shared/src/deep-clone.js.map +1 -0
  268. package/out/shared/src/deep-merge.d.ts +24 -4
  269. package/out/shared/src/deep-merge.d.ts.map +1 -1
  270. package/out/shared/src/deep-merge.js +27 -0
  271. package/out/shared/src/deep-merge.js.map +1 -0
  272. package/out/shared/src/document-visible.js +74 -0
  273. package/out/shared/src/document-visible.js.map +1 -0
  274. package/out/shared/src/dotenv.js +5 -7
  275. package/out/shared/src/dotenv.js.map +1 -1
  276. package/out/shared/src/error.d.ts +4 -0
  277. package/out/shared/src/error.d.ts.map +1 -0
  278. package/out/shared/src/error.js +71 -0
  279. package/out/shared/src/error.js.map +1 -0
  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/resolved-promises.js +12 -9
  324. package/out/shared/src/resolved-promises.js.map +1 -1
  325. package/out/shared/src/sentinels.js +13 -6
  326. package/out/shared/src/sentinels.js.map +1 -1
  327. package/out/shared/src/set-utils.js +63 -62
  328. package/out/shared/src/set-utils.js.map +1 -1
  329. package/out/shared/src/size-of-value.js +58 -0
  330. package/out/shared/src/size-of-value.js.map +1 -0
  331. package/out/shared/src/sleep.js +45 -53
  332. package/out/shared/src/sleep.js.map +1 -1
  333. package/out/shared/src/string-compare.js +12 -9
  334. package/out/shared/src/string-compare.js.map +1 -1
  335. package/out/shared/src/subscribable.js +34 -0
  336. package/out/shared/src/subscribable.js.map +1 -0
  337. package/out/shared/src/tdigest-schema.js +7 -7
  338. package/out/shared/src/tdigest-schema.js.map +1 -1
  339. package/out/shared/src/tdigest.js +247 -271
  340. package/out/shared/src/tdigest.js.map +1 -1
  341. package/out/shared/src/valita.js +195 -207
  342. package/out/shared/src/valita.js.map +1 -1
  343. package/out/z2s/src/compiler.d.ts +2 -2
  344. package/out/z2s/src/compiler.d.ts.map +1 -1
  345. package/out/z2s/src/compiler.js +437 -310
  346. package/out/z2s/src/compiler.js.map +1 -1
  347. package/out/z2s/src/sql.d.ts +1 -1
  348. package/out/z2s/src/sql.d.ts.map +1 -1
  349. package/out/z2s/src/sql.js +186 -218
  350. package/out/z2s/src/sql.js.map +1 -1
  351. package/out/zero/package.json.js +9 -0
  352. package/out/zero/package.json.js.map +1 -0
  353. package/out/zero/src/adapters/drizzle.js +5 -2
  354. package/out/zero/src/adapters/drizzle.js.map +1 -1
  355. package/out/zero/src/adapters/pg.js +7 -2
  356. package/out/zero/src/adapters/pg.js.map +1 -1
  357. package/out/zero/src/adapters/postgresjs.js +7 -2
  358. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  359. package/out/zero/src/analyze-query.js +1 -1
  360. package/out/zero/src/analyze-query.js.map +1 -1
  361. package/out/zero/src/ast-to-zql.js +1 -1
  362. package/out/zero/src/ast-to-zql.js.map +1 -1
  363. package/out/zero/src/build-schema.js +3 -5
  364. package/out/zero/src/build-schema.js.map +1 -1
  365. package/out/zero/src/change-protocol/v0.js +5 -3
  366. package/out/zero/src/change-protocol/v0.js.map +1 -1
  367. package/out/zero/src/cli.js +2 -2
  368. package/out/zero/src/cli.js.map +1 -1
  369. package/out/zero/src/deploy-permissions.js +1 -1
  370. package/out/zero/src/deploy-permissions.js.map +1 -1
  371. package/out/zero/src/expo-sqlite.js +5 -0
  372. package/out/zero/src/expo-sqlite.js.map +1 -0
  373. package/out/zero/src/op-sqlite.js +5 -0
  374. package/out/zero/src/op-sqlite.js.map +1 -0
  375. package/out/zero/src/pg.js +29 -3
  376. package/out/zero/src/pg.js.map +1 -1
  377. package/out/zero/src/react-native.js +13 -0
  378. package/out/zero/src/react-native.js.map +1 -0
  379. package/out/zero/src/react.js +17 -0
  380. package/out/zero/src/react.js.map +1 -0
  381. package/out/zero/src/server.js +25 -3
  382. package/out/zero/src/server.js.map +1 -1
  383. package/out/zero/src/solid.js +15 -0
  384. package/out/zero/src/solid.js.map +1 -0
  385. package/out/zero/src/sqlite.js +7 -0
  386. package/out/zero/src/sqlite.js.map +1 -0
  387. package/out/zero/src/transform-query.js +1 -1
  388. package/out/zero/src/transform-query.js.map +1 -1
  389. package/out/zero/src/zero-cache-dev.js +133 -105
  390. package/out/zero/src/zero-cache-dev.js.map +1 -1
  391. package/out/zero/src/zero-out.d.ts +3 -0
  392. package/out/zero/src/zero-out.d.ts.map +1 -0
  393. package/out/zero/src/zero-out.js +13 -0
  394. package/out/zero/src/zero-out.js.map +1 -0
  395. package/out/zero/src/zero.js +67 -0
  396. package/out/zero/src/zero.js.map +1 -0
  397. package/out/zero/src/zqlite.js +11 -3
  398. package/out/zero/src/zqlite.js.map +1 -1
  399. package/out/zero-cache/src/auth/jwt.d.ts +3 -0
  400. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
  401. package/out/zero-cache/src/auth/jwt.js +33 -38
  402. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  403. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  404. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  405. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  406. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  407. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  408. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  409. package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
  410. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  411. package/out/zero-cache/src/auth/write-authorizer.js +387 -328
  412. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  413. package/out/zero-cache/src/config/network.js +42 -45
  414. package/out/zero-cache/src/config/network.js.map +1 -1
  415. package/out/zero-cache/src/config/normalize.js +86 -83
  416. package/out/zero-cache/src/config/normalize.js.map +1 -1
  417. package/out/zero-cache/src/config/zero-config.d.ts +23 -0
  418. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  419. package/out/zero-cache/src/config/zero-config.js +694 -682
  420. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  421. package/out/zero-cache/src/custom/fetch.d.ts +5 -5
  422. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  423. package/out/zero-cache/src/custom/fetch.js +170 -162
  424. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  425. package/out/zero-cache/src/custom-queries/transform-query.d.ts +10 -3
  426. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  427. package/out/zero-cache/src/custom-queries/transform-query.js +101 -109
  428. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  429. package/out/zero-cache/src/db/create.js +32 -36
  430. package/out/zero-cache/src/db/create.js.map +1 -1
  431. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  432. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  433. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  434. package/out/zero-cache/src/db/lite-tables.js +150 -174
  435. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  436. package/out/zero-cache/src/db/migration-lite.js +170 -165
  437. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  438. package/out/zero-cache/src/db/migration.js +157 -137
  439. package/out/zero-cache/src/db/migration.js.map +1 -1
  440. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  441. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  442. package/out/zero-cache/src/db/mode-enum.js +9 -3
  443. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  444. package/out/zero-cache/src/db/pg-copy.js +51 -90
  445. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  446. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  447. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  448. package/out/zero-cache/src/db/pg-to-lite.js +116 -97
  449. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  450. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  451. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  452. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  453. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  454. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  455. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  456. package/out/zero-cache/src/db/specs.d.ts +1 -7
  457. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  458. package/out/zero-cache/src/db/specs.js +66 -40
  459. package/out/zero-cache/src/db/specs.js.map +1 -1
  460. package/out/zero-cache/src/db/statements.d.ts +1 -1
  461. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  462. package/out/zero-cache/src/db/statements.js +59 -52
  463. package/out/zero-cache/src/db/statements.js.map +1 -1
  464. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  465. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  466. package/out/zero-cache/src/db/transaction-pool.js +372 -501
  467. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  468. package/out/zero-cache/src/db/warmup.js +25 -12
  469. package/out/zero-cache/src/db/warmup.js.map +1 -1
  470. package/out/zero-cache/src/observability/events.js +71 -82
  471. package/out/zero-cache/src/observability/events.js.map +1 -1
  472. package/out/zero-cache/src/observability/metrics.js +54 -32
  473. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  474. package/out/zero-cache/src/scripts/decommission.d.ts +50 -0
  475. package/out/zero-cache/src/scripts/decommission.d.ts.map +1 -0
  476. package/out/zero-cache/src/scripts/decommission.js +55 -0
  477. package/out/zero-cache/src/scripts/decommission.js.map +1 -0
  478. package/out/zero-cache/src/scripts/deploy-permissions.js +128 -118
  479. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  480. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  481. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  482. package/out/zero-cache/src/scripts/permissions.js +108 -100
  483. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  484. package/out/zero-cache/src/server/anonymous-otel-start.js +410 -366
  485. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  486. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  487. package/out/zero-cache/src/server/change-streamer.js +99 -64
  488. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  489. package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
  490. package/out/zero-cache/src/server/inspector-delegate.js +112 -108
  491. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  492. package/out/zero-cache/src/server/logging.d.ts +1 -1
  493. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  494. package/out/zero-cache/src/server/logging.js +26 -19
  495. package/out/zero-cache/src/server/logging.js.map +1 -1
  496. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  497. package/out/zero-cache/src/server/main.js +137 -120
  498. package/out/zero-cache/src/server/main.js.map +1 -1
  499. package/out/zero-cache/src/server/mutator.js +19 -0
  500. package/out/zero-cache/src/server/mutator.js.map +1 -0
  501. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  502. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  503. package/out/zero-cache/src/server/otel-diag-logger.js +67 -70
  504. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  505. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  506. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  507. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  508. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  509. package/out/zero-cache/src/server/otel-start.js +57 -68
  510. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  511. package/out/zero-cache/src/server/reaper.js +34 -26
  512. package/out/zero-cache/src/server/reaper.js.map +1 -1
  513. package/out/zero-cache/src/server/replicator.js +53 -31
  514. package/out/zero-cache/src/server/replicator.js.map +1 -1
  515. package/out/zero-cache/src/server/runner/main.js +6 -4
  516. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  517. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  518. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  519. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  520. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  521. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  522. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  523. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  524. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  525. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  526. package/out/zero-cache/src/server/syncer.js +124 -63
  527. package/out/zero-cache/src/server/syncer.js.map +1 -1
  528. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  529. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  530. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  531. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  532. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  533. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  534. package/out/zero-cache/src/server/worker-urls.js +21 -0
  535. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  536. package/out/zero-cache/src/services/analyze.d.ts +4 -9
  537. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  538. package/out/zero-cache/src/services/analyze.js +118 -121
  539. package/out/zero-cache/src/services/analyze.js.map +1 -1
  540. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  541. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  542. package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
  543. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  544. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  545. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  546. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  547. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  548. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  549. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  550. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  551. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  552. package/out/zero-cache/src/services/change-source/pg/change-source.js +622 -623
  553. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  554. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  555. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  556. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  557. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  558. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  559. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  560. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  561. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  562. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  563. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  564. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  565. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  566. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  567. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  568. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  569. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  570. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
  571. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  572. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  573. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  574. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  575. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
  576. package/out/zero-cache/src/services/change-source/pg/schema/published.js +67 -74
  577. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  578. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  579. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  580. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  581. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  582. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  583. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  584. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  585. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
  586. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
  587. package/out/zero-cache/src/services/change-source/protocol/current/control.js +13 -19
  588. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  589. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  590. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  591. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
  592. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  593. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  594. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  595. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts +8 -0
  596. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts.map +1 -0
  597. package/out/zero-cache/src/services/change-source/protocol/current/json.js +19 -0
  598. package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
  599. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  600. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  601. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  602. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  603. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  604. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  605. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  606. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  607. package/out/zero-cache/src/services/change-source/protocol/current.d.ts +1 -0
  608. package/out/zero-cache/src/services/change-source/protocol/current.d.ts.map +1 -1
  609. package/out/zero-cache/src/services/change-source/protocol/current.js +38 -7
  610. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  611. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  612. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  613. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  614. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  615. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  616. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  617. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  618. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -4
  619. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  620. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +208 -157
  621. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  622. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  623. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  624. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +242 -349
  625. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  626. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
  627. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  628. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  629. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  630. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  631. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  632. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  633. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  634. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  635. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  636. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  637. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  638. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  639. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  640. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  641. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  642. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  643. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  644. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  645. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  646. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  647. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  648. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  649. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  650. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  651. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  652. package/out/zero-cache/src/services/change-streamer/storer.js +308 -353
  653. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  654. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  655. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  656. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  657. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  658. package/out/zero-cache/src/services/heapz.js +21 -25
  659. package/out/zero-cache/src/services/heapz.js.map +1 -1
  660. package/out/zero-cache/src/services/http-service.d.ts +5 -5
  661. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  662. package/out/zero-cache/src/services/http-service.js +57 -59
  663. package/out/zero-cache/src/services/http-service.js.map +1 -1
  664. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  665. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  666. package/out/zero-cache/src/services/life-cycle.js +216 -255
  667. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  668. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  669. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  670. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  671. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  672. package/out/zero-cache/src/services/litestream/commands.js +201 -154
  673. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  674. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  675. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  676. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  677. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  678. package/out/zero-cache/src/services/mutagen/mutagen.js +271 -267
  679. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  680. package/out/zero-cache/src/services/mutagen/pusher.d.ts +217 -21
  681. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  682. package/out/zero-cache/src/services/mutagen/pusher.js +354 -348
  683. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  684. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  685. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  686. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  687. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  688. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  689. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  690. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  691. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  692. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  693. package/out/zero-cache/src/services/replicator/replication-status.d.ts +2 -0
  694. package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
  695. package/out/zero-cache/src/services/replicator/replication-status.js +113 -83
  696. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  697. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  698. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  699. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  700. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  701. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  702. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  703. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  704. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  705. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  706. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  707. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  708. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  709. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  710. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  711. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  712. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  713. package/out/zero-cache/src/services/run-ast.js +91 -78
  714. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  715. package/out/zero-cache/src/services/runner.d.ts +1 -1
  716. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  717. package/out/zero-cache/src/services/runner.js +40 -40
  718. package/out/zero-cache/src/services/runner.js.map +1 -1
  719. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  720. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  721. package/out/zero-cache/src/services/running-state.js +122 -119
  722. package/out/zero-cache/src/services/running-state.js.map +1 -1
  723. package/out/zero-cache/src/services/statz.js +184 -162
  724. package/out/zero-cache/src/services/statz.js.map +1 -1
  725. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +40 -39
  726. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  727. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
  728. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  729. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  730. package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
  731. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  732. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  733. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +84 -94
  734. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  735. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +2 -4
  736. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  737. package/out/zero-cache/src/services/view-syncer/cvr-store.js +654 -611
  738. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  739. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
  740. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/cvr.js +633 -695
  742. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  743. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +1 -0
  744. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
  745. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -55
  746. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  747. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  748. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  749. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  750. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  751. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +18 -15
  752. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  753. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +579 -462
  754. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  755. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  756. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  757. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  758. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  759. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  760. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +57 -122
  761. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  762. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  763. package/out/zero-cache/src/services/view-syncer/schema/init.js +177 -131
  764. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  765. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  766. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  767. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  768. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +3 -3
  769. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  770. package/out/zero-cache/src/services/view-syncer/snapshotter.js +295 -338
  771. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  772. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  773. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +11 -4
  775. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  776. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1512 -1284
  777. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  778. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  779. package/out/zero-cache/src/types/error-with-level.js +30 -21
  780. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  781. package/out/zero-cache/src/types/http.js +27 -14
  782. package/out/zero-cache/src/types/http.js.map +1 -1
  783. package/out/zero-cache/src/types/lexi-version.js +46 -31
  784. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  785. package/out/zero-cache/src/types/lite.js +118 -125
  786. package/out/zero-cache/src/types/lite.js.map +1 -1
  787. package/out/zero-cache/src/types/names.js +6 -3
  788. package/out/zero-cache/src/types/names.js.map +1 -1
  789. package/out/zero-cache/src/types/pg-data-type.js +74 -68
  790. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  791. package/out/zero-cache/src/types/pg-types.js +17 -72
  792. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  793. package/out/zero-cache/src/types/pg.d.ts +1 -1
  794. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  795. package/out/zero-cache/src/types/pg.js +213 -233
  796. package/out/zero-cache/src/types/pg.js.map +1 -1
  797. package/out/zero-cache/src/types/processes.d.ts +2 -2
  798. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  799. package/out/zero-cache/src/types/processes.js +95 -143
  800. package/out/zero-cache/src/types/processes.js.map +1 -1
  801. package/out/zero-cache/src/types/profiler.js +29 -30
  802. package/out/zero-cache/src/types/profiler.js.map +1 -1
  803. package/out/zero-cache/src/types/row-key.js +30 -68
  804. package/out/zero-cache/src/types/row-key.js.map +1 -1
  805. package/out/zero-cache/src/types/schema-versions.js +25 -19
  806. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  807. package/out/zero-cache/src/types/shards.js +50 -36
  808. package/out/zero-cache/src/types/shards.js.map +1 -1
  809. package/out/zero-cache/src/types/sql.js +9 -13
  810. package/out/zero-cache/src/types/sql.js.map +1 -1
  811. package/out/zero-cache/src/types/streams.d.ts +1 -1
  812. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  813. package/out/zero-cache/src/types/streams.js +246 -245
  814. package/out/zero-cache/src/types/streams.js.map +1 -1
  815. package/out/zero-cache/src/types/strings.js +14 -11
  816. package/out/zero-cache/src/types/strings.js.map +1 -1
  817. package/out/zero-cache/src/types/subscription.d.ts +16 -1
  818. package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
  819. package/out/zero-cache/src/types/subscription.js +202 -225
  820. package/out/zero-cache/src/types/subscription.js.map +1 -1
  821. package/out/zero-cache/src/types/url-params.js +35 -30
  822. package/out/zero-cache/src/types/url-params.js.map +1 -1
  823. package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
  824. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  825. package/out/zero-cache/src/types/websocket-handoff.js +68 -76
  826. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  827. package/out/zero-cache/src/types/ws.js +56 -59
  828. package/out/zero-cache/src/types/ws.js.map +1 -1
  829. package/out/zero-cache/src/workers/connect-params.js +44 -40
  830. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  831. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  832. package/out/zero-cache/src/workers/connection.js +282 -243
  833. package/out/zero-cache/src/workers/connection.js.map +1 -1
  834. package/out/zero-cache/src/workers/mutator.js +24 -0
  835. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  836. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  837. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  838. package/out/zero-cache/src/workers/replicator.js +103 -106
  839. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  840. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +179 -147
  841. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  842. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  843. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  844. package/out/zero-cache/src/workers/syncer.js +192 -171
  845. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  846. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  847. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  848. package/out/zero-client/src/client/bindings.d.ts +43 -0
  849. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  850. package/out/zero-client/src/client/bindings.js +33 -0
  851. package/out/zero-client/src/client/bindings.js.map +1 -0
  852. package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
  853. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  854. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  855. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  856. package/out/zero-client/src/client/connection-manager.d.ts +36 -40
  857. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  858. package/out/zero-client/src/client/connection-manager.js +310 -0
  859. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  860. package/out/zero-client/src/client/connection-status-enum.d.ts +2 -0
  861. package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
  862. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  863. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  864. package/out/zero-client/src/client/connection.d.ts +57 -6
  865. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  866. package/out/zero-client/src/client/connection.js +103 -0
  867. package/out/zero-client/src/client/connection.js.map +1 -0
  868. package/out/zero-client/src/client/context.d.ts +9 -10
  869. package/out/zero-client/src/client/context.d.ts.map +1 -1
  870. package/out/zero-client/src/client/context.js +104 -0
  871. package/out/zero-client/src/client/context.js.map +1 -0
  872. package/out/zero-client/src/client/crud.d.ts +8 -6
  873. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  874. package/out/zero-client/src/client/crud.js +225 -0
  875. package/out/zero-client/src/client/crud.js.map +1 -0
  876. package/out/zero-client/src/client/custom.d.ts +48 -25
  877. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  878. package/out/zero-client/src/client/custom.js +128 -0
  879. package/out/zero-client/src/client/custom.js.map +1 -0
  880. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  881. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  882. package/out/zero-client/src/client/delete-clients-manager.js +71 -0
  883. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  884. package/out/zero-client/src/client/enable-analytics.js +18 -0
  885. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  886. package/out/zero-client/src/client/error.d.ts +51 -166
  887. package/out/zero-client/src/client/error.d.ts.map +1 -1
  888. package/out/zero-client/src/client/error.js +148 -0
  889. package/out/zero-client/src/client/error.js.map +1 -0
  890. package/out/zero-client/src/client/http-string.js +11 -0
  891. package/out/zero-client/src/client/http-string.js.map +1 -0
  892. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  893. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  894. package/out/zero-client/src/client/inspector/client.js +28 -0
  895. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  896. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  897. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  898. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  899. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  900. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  901. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  902. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  903. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  904. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  905. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  906. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  907. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  908. package/out/zero-client/src/client/inspector/query.js +82 -0
  909. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  910. package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
  911. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  912. package/out/zero-client/src/client/ivm-branch.js +149 -0
  913. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  914. package/out/zero-client/src/client/keys.js +45 -0
  915. package/out/zero-client/src/client/keys.js.map +1 -0
  916. package/out/zero-client/src/client/log-options.js +60 -0
  917. package/out/zero-client/src/client/log-options.js.map +1 -0
  918. package/out/zero-client/src/client/make-mutate-property.d.ts +43 -0
  919. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  920. package/out/zero-client/src/client/make-mutate-property.js +38 -0
  921. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  922. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  923. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  924. package/out/zero-client/src/client/make-replicache-mutators.js +103 -0
  925. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  926. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  927. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  928. package/out/zero-client/src/client/metrics.d.ts +2 -2
  929. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  930. package/out/zero-client/src/client/metrics.js +249 -0
  931. package/out/zero-client/src/client/metrics.js.map +1 -0
  932. package/out/zero-client/src/client/mutation-tracker.d.ts +12 -4
  933. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  934. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  935. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  936. package/out/zero-client/src/client/mutator-proxy.d.ts +15 -0
  937. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  938. package/out/zero-client/src/client/mutator-proxy.js +132 -0
  939. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  940. package/out/zero-client/src/client/options.d.ts +77 -24
  941. package/out/zero-client/src/client/options.d.ts.map +1 -1
  942. package/out/zero-client/src/client/options.js +11 -0
  943. package/out/zero-client/src/client/options.js.map +1 -0
  944. package/out/zero-client/src/client/query-manager.d.ts +9 -2
  945. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  946. package/out/zero-client/src/client/query-manager.js +377 -0
  947. package/out/zero-client/src/client/query-manager.js.map +1 -0
  948. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  949. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  950. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  951. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  952. package/out/zero-client/src/client/server-option.js +64 -0
  953. package/out/zero-client/src/client/server-option.js.map +1 -0
  954. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  955. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  956. package/out/zero-client/src/client/version.js +5 -0
  957. package/out/zero-client/src/client/version.js.map +1 -0
  958. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  959. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  960. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  961. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  962. package/out/zero-client/src/client/zero-rep.d.ts +5 -2
  963. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  964. package/out/zero-client/src/client/zero-rep.js +72 -0
  965. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  966. package/out/zero-client/src/client/zero.d.ts +104 -26
  967. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  968. package/out/zero-client/src/client/zero.js +1763 -0
  969. package/out/zero-client/src/client/zero.js.map +1 -0
  970. package/out/zero-client/src/mod.d.ts +24 -18
  971. package/out/zero-client/src/mod.d.ts.map +1 -1
  972. package/out/zero-client/src/types/query-result.d.ts +24 -0
  973. package/out/zero-client/src/types/query-result.d.ts.map +1 -0
  974. package/out/zero-client/src/util/nanoid.js +21 -0
  975. package/out/zero-client/src/util/nanoid.js.map +1 -0
  976. package/out/zero-client/src/util/socket.js +7 -0
  977. package/out/zero-client/src/util/socket.js.map +1 -0
  978. package/out/zero-events/src/status.d.ts +1 -1
  979. package/out/zero-events/src/status.d.ts.map +1 -1
  980. package/out/zero-protocol/src/analyze-query-result.d.ts +237 -0
  981. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  982. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  983. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  984. package/out/zero-protocol/src/application-error.d.ts +27 -0
  985. package/out/zero-protocol/src/application-error.d.ts.map +1 -0
  986. package/out/zero-protocol/src/application-error.js +38 -0
  987. package/out/zero-protocol/src/application-error.js.map +1 -0
  988. package/out/zero-protocol/src/ast.d.ts +2 -2
  989. package/out/zero-protocol/src/ast.js +296 -277
  990. package/out/zero-protocol/src/ast.js.map +1 -1
  991. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  992. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  993. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  994. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  995. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  996. package/out/zero-protocol/src/client-schema.js +40 -26
  997. package/out/zero-protocol/src/client-schema.js.map +1 -1
  998. package/out/zero-protocol/src/close-connection.js +11 -18
  999. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1000. package/out/zero-protocol/src/connect.d.ts +4 -4
  1001. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1002. package/out/zero-protocol/src/connect.js +50 -51
  1003. package/out/zero-protocol/src/connect.js.map +1 -1
  1004. package/out/zero-protocol/src/custom-queries.d.ts +31 -99
  1005. package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
  1006. package/out/zero-protocol/src/custom-queries.js +61 -54
  1007. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1008. package/out/zero-protocol/src/data.js +9 -4
  1009. package/out/zero-protocol/src/data.js.map +1 -1
  1010. package/out/zero-protocol/src/delete-clients.js +16 -9
  1011. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1012. package/out/zero-protocol/src/down.d.ts +113 -15
  1013. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1014. package/out/zero-protocol/src/down.js +20 -4
  1015. package/out/zero-protocol/src/down.js.map +1 -1
  1016. package/out/zero-protocol/src/error-kind-enum.js +41 -23
  1017. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1018. package/out/zero-protocol/src/error-origin-enum.js +9 -4
  1019. package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
  1020. package/out/zero-protocol/src/error-reason-enum.js +17 -8
  1021. package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
  1022. package/out/zero-protocol/src/error.d.ts +59 -17
  1023. package/out/zero-protocol/src/error.d.ts.map +1 -1
  1024. package/out/zero-protocol/src/error.js +151 -82
  1025. package/out/zero-protocol/src/error.js.map +1 -1
  1026. package/out/zero-protocol/src/inspect-down.d.ts +318 -18
  1027. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1028. package/out/zero-protocol/src/inspect-down.js +72 -54
  1029. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1030. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1031. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1032. package/out/zero-protocol/src/inspect-up.js +39 -26
  1033. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1034. package/out/zero-protocol/src/mutation-id.js +9 -5
  1035. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  1036. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1037. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1038. package/out/zero-protocol/src/mutations-patch.d.ts +3 -0
  1039. package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
  1040. package/out/zero-protocol/src/mutations-patch.js +16 -17
  1041. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1042. package/out/zero-protocol/src/ping.js +9 -4
  1043. package/out/zero-protocol/src/ping.js.map +1 -1
  1044. package/out/zero-protocol/src/poke.d.ts +2 -0
  1045. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  1046. package/out/zero-protocol/src/poke.js +55 -72
  1047. package/out/zero-protocol/src/poke.js.map +1 -1
  1048. package/out/zero-protocol/src/pong.js +9 -4
  1049. package/out/zero-protocol/src/pong.js.map +1 -1
  1050. package/out/zero-protocol/src/primary-key.js +19 -5
  1051. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1052. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1053. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1054. package/out/zero-protocol/src/protocol-version.js +7 -57
  1055. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1056. package/out/zero-protocol/src/pull.js +26 -19
  1057. package/out/zero-protocol/src/pull.js.map +1 -1
  1058. package/out/zero-protocol/src/push.d.ts +11 -4
  1059. package/out/zero-protocol/src/push.d.ts.map +1 -1
  1060. package/out/zero-protocol/src/push.js +179 -175
  1061. package/out/zero-protocol/src/push.js.map +1 -1
  1062. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1063. package/out/zero-protocol/src/queries-patch.js +29 -22
  1064. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1065. package/out/zero-protocol/src/query-hash.js +18 -14
  1066. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1067. package/out/zero-protocol/src/row-patch.js +29 -20
  1068. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1069. package/out/zero-protocol/src/up.d.ts +6 -5
  1070. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1071. package/out/zero-protocol/src/up.js +18 -4
  1072. package/out/zero-protocol/src/up.js.map +1 -1
  1073. package/out/zero-protocol/src/version.js +9 -4
  1074. package/out/zero-protocol/src/version.js.map +1 -1
  1075. package/out/zero-react/src/components/inspector.d.ts +5 -3
  1076. package/out/zero-react/src/components/inspector.d.ts.map +1 -1
  1077. package/out/{inspector-IU2HG74I.js → zero-react/src/components/inspector.js} +4 -9
  1078. package/out/zero-react/src/components/inspector.js.map +1 -0
  1079. package/out/{chunk-VZOYWIRW.js → zero-react/src/components/mark-icon.js} +3 -5
  1080. package/out/zero-react/src/components/mark-icon.js.map +1 -0
  1081. package/out/zero-react/src/components/zero-inspector.d.ts +5 -3
  1082. package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
  1083. package/out/zero-react/src/components/zero-inspector.js +44 -0
  1084. package/out/zero-react/src/components/zero-inspector.js.map +1 -0
  1085. package/out/zero-react/src/mod.d.ts +5 -3
  1086. package/out/zero-react/src/mod.d.ts.map +1 -1
  1087. package/out/zero-react/src/use-query.d.ts +11 -28
  1088. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1089. package/out/zero-react/src/use-query.js +286 -0
  1090. package/out/zero-react/src/use-query.js.map +1 -0
  1091. package/out/zero-react/src/use-zero-connection-state.d.ts +1 -1
  1092. package/out/zero-react/src/use-zero-connection-state.d.ts.map +1 -1
  1093. package/out/zero-react/src/use-zero-connection-state.js +14 -0
  1094. package/out/zero-react/src/use-zero-connection-state.js.map +1 -0
  1095. package/out/zero-react/src/use-zero-online.js +14 -0
  1096. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1097. package/out/zero-react/src/zero-provider.d.ts +21 -7
  1098. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1099. package/out/zero-react/src/zero-provider.js +61 -0
  1100. package/out/zero-react/src/zero-provider.js.map +1 -0
  1101. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1102. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1103. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1104. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1105. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1106. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1107. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1108. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1109. package/out/zero-schema/src/compiled-permissions.js +23 -19
  1110. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1111. package/out/zero-schema/src/name-mapper.js +43 -38
  1112. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1113. package/out/zero-schema/src/permissions.d.ts +9 -9
  1114. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1115. package/out/{chunk-55BOUNXO.js → zero-schema/src/permissions.js} +16 -173
  1116. package/out/zero-schema/src/permissions.js.map +1 -0
  1117. package/out/zero-schema/src/schema-config.d.ts +1 -1
  1118. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1119. package/out/zero-schema/src/schema-config.js +35 -51
  1120. package/out/zero-schema/src/schema-config.js.map +1 -1
  1121. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1122. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1123. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1124. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1125. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1126. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1127. package/out/zero-server/src/adapters/pg.js +54 -74
  1128. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1129. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1130. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1131. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1132. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1133. package/out/zero-server/src/custom.d.ts +14 -18
  1134. package/out/zero-server/src/custom.d.ts.map +1 -1
  1135. package/out/zero-server/src/custom.js +185 -105
  1136. package/out/zero-server/src/custom.js.map +1 -1
  1137. package/out/zero-server/src/logging.js +7 -4
  1138. package/out/zero-server/src/logging.js.map +1 -1
  1139. package/out/zero-server/src/mod.d.ts +5 -4
  1140. package/out/zero-server/src/mod.d.ts.map +1 -1
  1141. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1142. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1143. package/out/zero-server/src/pg-query-executor.js +20 -0
  1144. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1145. package/out/zero-server/src/process-mutations.d.ts +11 -15
  1146. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1147. package/out/zero-server/src/process-mutations.js +341 -163
  1148. package/out/zero-server/src/process-mutations.js.map +1 -1
  1149. package/out/zero-server/src/push-processor.d.ts +5 -3
  1150. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1151. package/out/zero-server/src/push-processor.js +48 -32
  1152. package/out/zero-server/src/push-processor.js.map +1 -1
  1153. package/out/zero-server/src/queries/process-queries.d.ts +66 -4
  1154. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1155. package/out/zero-server/src/queries/process-queries.js +101 -27
  1156. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1157. package/out/zero-server/src/schema.d.ts +2 -2
  1158. package/out/zero-server/src/schema.d.ts.map +1 -1
  1159. package/out/zero-server/src/schema.js +136 -124
  1160. package/out/zero-server/src/schema.js.map +1 -1
  1161. package/out/zero-server/src/zql-database.d.ts +9 -6
  1162. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1163. package/out/zero-server/src/zql-database.js +68 -51
  1164. package/out/zero-server/src/zql-database.js.map +1 -1
  1165. package/out/zero-solid/src/mod.d.ts +7 -0
  1166. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1167. package/out/zero-solid/src/solid-view.d.ts +3 -23
  1168. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1169. package/out/{solid.js → zero-solid/src/solid-view.js} +57 -182
  1170. package/out/zero-solid/src/solid-view.js.map +1 -0
  1171. package/out/zero-solid/src/use-query.d.ts +7 -6
  1172. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1173. package/out/zero-solid/src/use-query.js +57 -0
  1174. package/out/zero-solid/src/use-query.js.map +1 -0
  1175. package/out/zero-solid/src/use-zero-connection-state.d.ts +1 -1
  1176. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +1 -1
  1177. package/out/zero-solid/src/use-zero-connection-state.js +17 -0
  1178. package/out/zero-solid/src/use-zero-connection-state.js.map +1 -0
  1179. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1180. package/out/zero-solid/src/use-zero-online.js +15 -0
  1181. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1182. package/out/zero-solid/src/use-zero.d.ts +24 -7
  1183. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1184. package/out/zero-solid/src/use-zero.js +70 -0
  1185. package/out/zero-solid/src/use-zero.js.map +1 -0
  1186. package/out/zero-types/src/default-types.d.ts +38 -0
  1187. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1188. package/out/zero-types/src/format.js +7 -4
  1189. package/out/zero-types/src/format.js.map +1 -1
  1190. package/out/zero-types/src/name-mapper.js +43 -40
  1191. package/out/zero-types/src/name-mapper.js.map +1 -1
  1192. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1193. package/out/zql/src/builder/builder.d.ts +10 -2
  1194. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1195. package/out/zql/src/builder/builder.js +485 -427
  1196. package/out/zql/src/builder/builder.js.map +1 -1
  1197. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1198. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1199. package/out/zql/src/builder/debug-delegate.js +68 -47
  1200. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1201. package/out/zql/src/builder/filter.js +132 -138
  1202. package/out/zql/src/builder/filter.js.map +1 -1
  1203. package/out/zql/src/builder/like.js +44 -51
  1204. package/out/zql/src/builder/like.js.map +1 -1
  1205. package/out/zql/src/error.d.ts +5 -0
  1206. package/out/zql/src/error.d.ts.map +1 -1
  1207. package/out/zql/src/error.js +18 -6
  1208. package/out/zql/src/error.js.map +1 -1
  1209. package/out/zql/src/ivm/array-view.d.ts +1 -1
  1210. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  1211. package/out/zql/src/ivm/array-view.js +87 -92
  1212. package/out/zql/src/ivm/array-view.js.map +1 -1
  1213. package/out/zql/src/ivm/constraint.js +74 -127
  1214. package/out/zql/src/ivm/constraint.js.map +1 -1
  1215. package/out/zql/src/ivm/data.d.ts +7 -2
  1216. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1217. package/out/zql/src/ivm/data.js +62 -85
  1218. package/out/zql/src/ivm/data.js.map +1 -1
  1219. package/out/zql/src/ivm/exists.d.ts +3 -2
  1220. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  1221. package/out/zql/src/ivm/exists.js +190 -244
  1222. package/out/zql/src/ivm/exists.js.map +1 -1
  1223. package/out/zql/src/ivm/fan-in.d.ts +2 -0
  1224. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  1225. package/out/zql/src/ivm/fan-in.js +54 -51
  1226. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1227. package/out/zql/src/ivm/fan-out.d.ts +2 -0
  1228. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  1229. package/out/zql/src/ivm/fan-out.js +52 -50
  1230. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1231. package/out/zql/src/ivm/filter-operators.d.ts +6 -2
  1232. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  1233. package/out/zql/src/ivm/filter-operators.js +103 -87
  1234. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1235. package/out/zql/src/ivm/filter-push.js +26 -23
  1236. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1237. package/out/zql/src/ivm/filter.d.ts +2 -0
  1238. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  1239. package/out/zql/src/ivm/filter.js +34 -32
  1240. package/out/zql/src/ivm/filter.js.map +1 -1
  1241. package/out/zql/src/ivm/flipped-join.d.ts +1 -1
  1242. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  1243. package/out/zql/src/ivm/flipped-join.js +354 -324
  1244. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1245. package/out/zql/src/ivm/join-utils.d.ts +2 -1
  1246. package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
  1247. package/out/zql/src/ivm/join-utils.js +92 -78
  1248. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1249. package/out/zql/src/ivm/join.d.ts +1 -1
  1250. package/out/zql/src/ivm/join.d.ts.map +1 -1
  1251. package/out/zql/src/ivm/join.js +305 -206
  1252. package/out/zql/src/ivm/join.js.map +1 -1
  1253. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1254. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1255. package/out/zql/src/ivm/memory-source.d.ts +3 -3
  1256. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1257. package/out/zql/src/ivm/memory-source.js +478 -489
  1258. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1259. package/out/zql/src/ivm/memory-storage.js +32 -31
  1260. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1261. package/out/zql/src/ivm/operator.d.ts +9 -1
  1262. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  1263. package/out/zql/src/ivm/operator.js +16 -9
  1264. package/out/zql/src/ivm/operator.js.map +1 -1
  1265. package/out/zql/src/ivm/push-accumulated.d.ts +1 -1
  1266. package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -1
  1267. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1268. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1269. package/out/zql/src/ivm/skip.d.ts +1 -1
  1270. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  1271. package/out/zql/src/ivm/skip.js +97 -105
  1272. package/out/zql/src/ivm/skip.js.map +1 -1
  1273. package/out/zql/src/ivm/source.d.ts +3 -1
  1274. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1275. package/out/zql/src/ivm/stream.js +20 -16
  1276. package/out/zql/src/ivm/stream.js.map +1 -1
  1277. package/out/zql/src/ivm/take.d.ts +1 -1
  1278. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1279. package/out/zql/src/ivm/take.js +525 -451
  1280. package/out/zql/src/ivm/take.js.map +1 -1
  1281. package/out/zql/src/ivm/union-fan-in.d.ts +2 -1
  1282. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  1283. package/out/zql/src/ivm/union-fan-in.js +216 -132
  1284. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1285. package/out/zql/src/ivm/union-fan-out.d.ts +1 -1
  1286. package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
  1287. package/out/zql/src/ivm/union-fan-out.js +46 -45
  1288. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1289. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  1290. package/out/zql/src/ivm/view-apply-change.js +247 -216
  1291. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1292. package/out/zql/src/ivm/view.d.ts +3 -2
  1293. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1294. package/out/zql/src/mutate/custom.d.ts +26 -11
  1295. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1296. package/out/zql/src/mutate/custom.js +15 -7
  1297. package/out/zql/src/mutate/custom.js.map +1 -1
  1298. package/out/zql/src/mutate/mutator-registry.d.ts +93 -0
  1299. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1300. package/out/zql/src/mutate/mutator-registry.js +93 -0
  1301. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1302. package/out/zql/src/mutate/mutator.d.ts +79 -0
  1303. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1304. package/out/zql/src/mutate/mutator.js +31 -0
  1305. package/out/zql/src/mutate/mutator.js.map +1 -0
  1306. package/out/zql/src/planner/planner-builder.d.ts +2 -1
  1307. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  1308. package/out/zql/src/planner/planner-builder.js +237 -146
  1309. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1310. package/out/zql/src/planner/planner-connection.d.ts +19 -14
  1311. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  1312. package/out/zql/src/planner/planner-connection.js +205 -291
  1313. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1314. package/out/zql/src/planner/planner-constraint.js +8 -11
  1315. package/out/zql/src/planner/planner-constraint.js.map +1 -1
  1316. package/out/zql/src/planner/planner-debug.d.ts +62 -37
  1317. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1318. package/out/zql/src/planner/planner-debug.js +234 -117
  1319. package/out/zql/src/planner/planner-debug.js.map +1 -1
  1320. package/out/zql/src/planner/planner-fan-in.d.ts +5 -3
  1321. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  1322. package/out/zql/src/planner/planner-fan-in.js +157 -141
  1323. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1324. package/out/zql/src/planner/planner-fan-out.d.ts +5 -3
  1325. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
  1326. package/out/zql/src/planner/planner-fan-out.js +73 -42
  1327. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1328. package/out/zql/src/planner/planner-graph.d.ts +9 -10
  1329. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  1330. package/out/zql/src/planner/planner-graph.js +323 -388
  1331. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1332. package/out/zql/src/planner/planner-join.d.ts +67 -8
  1333. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  1334. package/out/zql/src/planner/planner-join.js +239 -241
  1335. package/out/zql/src/planner/planner-join.js.map +1 -1
  1336. package/out/zql/src/planner/planner-node.d.ts +35 -3
  1337. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1338. package/out/zql/src/planner/planner-node.js +8 -2
  1339. package/out/zql/src/planner/planner-node.js.map +1 -1
  1340. package/out/zql/src/planner/planner-source.d.ts +1 -1
  1341. package/out/zql/src/planner/planner-source.d.ts.map +1 -1
  1342. package/out/zql/src/planner/planner-source.js +23 -12
  1343. package/out/zql/src/planner/planner-source.js.map +1 -1
  1344. package/out/zql/src/planner/planner-terminus.d.ts +4 -3
  1345. package/out/zql/src/planner/planner-terminus.d.ts.map +1 -1
  1346. package/out/zql/src/planner/planner-terminus.js +28 -27
  1347. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1348. package/out/zql/src/query/abstract-query.d.ts +43 -0
  1349. package/out/zql/src/query/abstract-query.d.ts.map +1 -0
  1350. package/out/zql/src/query/abstract-query.js +408 -0
  1351. package/out/zql/src/query/abstract-query.js.map +1 -0
  1352. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1353. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1354. package/out/zql/src/query/complete-ordering.js +71 -0
  1355. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1356. package/out/zql/src/query/create-builder.d.ts +9 -0
  1357. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1358. package/out/zql/src/query/create-builder.js +49 -0
  1359. package/out/zql/src/query/create-builder.js.map +1 -0
  1360. package/out/zql/src/query/error.d.ts +4 -0
  1361. package/out/zql/src/query/error.d.ts.map +1 -0
  1362. package/out/zql/src/query/error.js +13 -0
  1363. package/out/zql/src/query/error.js.map +1 -0
  1364. package/out/zql/src/query/escape-like.js +7 -0
  1365. package/out/zql/src/query/escape-like.js.map +1 -0
  1366. package/out/zql/src/query/expression.d.ts +5 -5
  1367. package/out/zql/src/query/expression.d.ts.map +1 -1
  1368. package/out/zql/src/query/expression.js +153 -151
  1369. package/out/zql/src/query/expression.js.map +1 -1
  1370. package/out/zql/src/query/measure-push-operator.d.ts +1 -1
  1371. package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
  1372. package/out/zql/src/query/measure-push-operator.js +42 -35
  1373. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1374. package/out/zql/src/query/metrics-delegate.js +9 -5
  1375. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1376. package/out/zql/src/query/named.d.ts +21 -12
  1377. package/out/zql/src/query/named.d.ts.map +1 -1
  1378. package/out/zql/src/query/named.js +47 -57
  1379. package/out/zql/src/query/named.js.map +1 -1
  1380. package/out/zql/src/query/query-delegate-base.d.ts +120 -0
  1381. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1382. package/out/zql/src/query/query-delegate-base.js +250 -0
  1383. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1384. package/out/zql/src/query/query-delegate.d.ts +27 -4
  1385. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1386. package/out/zql/src/query/query-impl.d.ts +7 -62
  1387. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1388. package/out/zql/src/query/query-impl.js +33 -490
  1389. package/out/zql/src/query/query-impl.js.map +1 -1
  1390. package/out/zql/src/query/query-internals.d.ts +68 -0
  1391. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1392. package/out/zql/src/query/query-internals.js +11 -0
  1393. package/out/zql/src/query/query-internals.js.map +1 -0
  1394. package/out/zql/src/query/query-registry.d.ts +163 -0
  1395. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1396. package/out/zql/src/query/query-registry.js +123 -0
  1397. package/out/zql/src/query/query-registry.js.map +1 -0
  1398. package/out/zql/src/query/query.d.ts +65 -240
  1399. package/out/zql/src/query/query.d.ts.map +1 -1
  1400. package/out/zql/src/query/runnable-query-impl.d.ts +22 -0
  1401. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -0
  1402. package/out/zql/src/query/runnable-query-impl.js +60 -0
  1403. package/out/zql/src/query/runnable-query-impl.js.map +1 -0
  1404. package/out/zql/src/query/schema-query.d.ts +6 -0
  1405. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1406. package/out/zql/src/query/static-query.d.ts +6 -15
  1407. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1408. package/out/zql/src/query/static-query.js +44 -31
  1409. package/out/zql/src/query/static-query.js.map +1 -1
  1410. package/out/zql/src/query/ttl.js +69 -62
  1411. package/out/zql/src/query/ttl.js.map +1 -1
  1412. package/out/zql/src/query/validate-input.d.ts +15 -0
  1413. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1414. package/out/zql/src/query/validate-input.js +24 -0
  1415. package/out/zql/src/query/validate-input.js.map +1 -0
  1416. package/out/zqlite/src/database-storage.d.ts +1 -1
  1417. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1418. package/out/zqlite/src/database-storage.js +99 -102
  1419. package/out/zqlite/src/database-storage.js.map +1 -1
  1420. package/out/zqlite/src/db.d.ts +2 -1
  1421. package/out/zqlite/src/db.d.ts.map +1 -1
  1422. package/out/zqlite/src/db.js +241 -192
  1423. package/out/zqlite/src/db.js.map +1 -1
  1424. package/out/zqlite/src/explain-queries.js +13 -16
  1425. package/out/zqlite/src/explain-queries.js.map +1 -1
  1426. package/out/zqlite/src/internal/sql.js +15 -10
  1427. package/out/zqlite/src/internal/sql.js.map +1 -1
  1428. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1429. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1430. package/out/zqlite/src/query-builder.js +172 -143
  1431. package/out/zqlite/src/query-builder.js.map +1 -1
  1432. package/out/zqlite/src/query-delegate.d.ts +5 -19
  1433. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1434. package/out/zqlite/src/query-delegate.js +56 -70
  1435. package/out/zqlite/src/query-delegate.js.map +1 -1
  1436. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
  1437. package/out/zqlite/src/sqlite-cost-model.js +96 -120
  1438. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1439. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1440. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1441. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1442. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1443. package/out/zqlite/src/table-source.d.ts +15 -4
  1444. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1445. package/out/zqlite/src/table-source.js +444 -311
  1446. package/out/zqlite/src/table-source.js.map +1 -1
  1447. package/package.json +27 -27
  1448. package/out/chunk-424PT5DM.js +0 -23
  1449. package/out/chunk-424PT5DM.js.map +0 -7
  1450. package/out/chunk-55BOUNXO.js.map +0 -7
  1451. package/out/chunk-AFADJQ2O.js +0 -1
  1452. package/out/chunk-AFADJQ2O.js.map +0 -7
  1453. package/out/chunk-AIPM77UE.js +0 -18139
  1454. package/out/chunk-AIPM77UE.js.map +0 -7
  1455. package/out/chunk-ASRS2LFV.js.map +0 -7
  1456. package/out/chunk-ECUMGQGC.js.map +0 -7
  1457. package/out/chunk-EZM3XBAB.js.map +0 -7
  1458. package/out/chunk-TJFNGO7E.js +0 -4126
  1459. package/out/chunk-TJFNGO7E.js.map +0 -7
  1460. package/out/chunk-VZOYWIRW.js.map +0 -7
  1461. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1462. package/out/expo-sqlite.js +0 -11
  1463. package/out/expo-sqlite.js.map +0 -7
  1464. package/out/inspector-IU2HG74I.js.map +0 -7
  1465. package/out/lazy-inspector-OXIFYSSQ.js +0 -574
  1466. package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
  1467. package/out/op-sqlite.js.map +0 -7
  1468. package/out/react-native.js +0 -25
  1469. package/out/react-native.js.map +0 -7
  1470. package/out/react.js +0 -460
  1471. package/out/react.js.map +0 -7
  1472. package/out/shared/src/enum.js +0 -2
  1473. package/out/shared/src/enum.js.map +0 -1
  1474. package/out/shared/src/expand.js +0 -2
  1475. package/out/shared/src/expand.js.map +0 -1
  1476. package/out/shared/src/immutable.js +0 -2
  1477. package/out/shared/src/immutable.js.map +0 -1
  1478. package/out/shared/src/types.js +0 -2
  1479. package/out/shared/src/types.js.map +0 -1
  1480. package/out/shared/src/writable.js +0 -2
  1481. package/out/shared/src/writable.js.map +0 -1
  1482. package/out/solid.js.map +0 -7
  1483. package/out/sqlite.js +0 -15
  1484. package/out/sqlite.js.map +0 -7
  1485. package/out/zero/package.json +0 -193
  1486. package/out/zero/src/server/change-streamer.js +0 -2
  1487. package/out/zero/src/server/change-streamer.js.map +0 -1
  1488. package/out/zero/src/server/main.js +0 -2
  1489. package/out/zero/src/server/main.js.map +0 -1
  1490. package/out/zero/src/server/reaper.js +0 -2
  1491. package/out/zero/src/server/reaper.js.map +0 -1
  1492. package/out/zero/src/server/replicator.js +0 -2
  1493. package/out/zero/src/server/replicator.js.map +0 -1
  1494. package/out/zero/src/server/runner/main.js +0 -2
  1495. package/out/zero/src/server/runner/main.js.map +0 -1
  1496. package/out/zero/src/server/syncer.js +0 -2
  1497. package/out/zero/src/server/syncer.js.map +0 -1
  1498. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1499. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1500. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1501. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1502. package/out/zero-cache/src/services/service.js +0 -2
  1503. package/out/zero-cache/src/services/service.js.map +0 -1
  1504. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1505. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1506. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
  1507. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1508. package/out/zero-cache/src/types/satisfies.js +0 -2
  1509. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1510. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1511. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1512. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1513. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1514. package/out/zero-events/src/index.js +0 -2
  1515. package/out/zero-events/src/index.js.map +0 -1
  1516. package/out/zero-events/src/json.js +0 -2
  1517. package/out/zero-events/src/json.js.map +0 -1
  1518. package/out/zero-events/src/status.js +0 -3
  1519. package/out/zero-events/src/status.js.map +0 -1
  1520. package/out/zero-pg/src/mod.js +0 -6
  1521. package/out/zero-pg/src/mod.js.map +0 -1
  1522. package/out/zero-protocol/src/error-kind.js +0 -3
  1523. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1524. package/out/zero-protocol/src/error-origin.js +0 -3
  1525. package/out/zero-protocol/src/error-origin.js.map +0 -1
  1526. package/out/zero-protocol/src/error-reason.js +0 -3
  1527. package/out/zero-protocol/src/error-reason.js.map +0 -1
  1528. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1529. package/out/zero-schema/src/server-schema.js +0 -2
  1530. package/out/zero-schema/src/server-schema.js.map +0 -1
  1531. package/out/zero-schema/src/table-schema.js +0 -7
  1532. package/out/zero-schema/src/table-schema.js.map +0 -1
  1533. package/out/zero-server/src/mod.js +0 -8
  1534. package/out/zero-server/src/mod.js.map +0 -1
  1535. package/out/zero-server/src/query.d.ts +0 -22
  1536. package/out/zero-server/src/query.d.ts.map +0 -1
  1537. package/out/zero-server/src/query.js +0 -61
  1538. package/out/zero-server/src/query.js.map +0 -1
  1539. package/out/zero-types/src/schema-value.js +0 -2
  1540. package/out/zero-types/src/schema-value.js.map +0 -1
  1541. package/out/zero-types/src/schema.js +0 -2
  1542. package/out/zero-types/src/schema.js.map +0 -1
  1543. package/out/zero.js +0 -79
  1544. package/out/zero.js.map +0 -7
  1545. package/out/zql/src/ivm/change.js +0 -2
  1546. package/out/zql/src/ivm/change.js.map +0 -1
  1547. package/out/zql/src/ivm/default-format.js +0 -2
  1548. package/out/zql/src/ivm/default-format.js.map +0 -1
  1549. package/out/zql/src/ivm/schema.js +0 -2
  1550. package/out/zql/src/ivm/schema.js.map +0 -1
  1551. package/out/zql/src/ivm/source.js +0 -2
  1552. package/out/zql/src/ivm/source.js.map +0 -1
  1553. package/out/zql/src/ivm/view.js +0 -2
  1554. package/out/zql/src/ivm/view.js.map +0 -1
  1555. package/out/zql/src/query/query-delegate.js +0 -2
  1556. package/out/zql/src/query/query-delegate.js.map +0 -1
  1557. package/out/zql/src/query/query.js +0 -9
  1558. package/out/zql/src/query/query.js.map +0 -1
  1559. package/out/zql/src/query/typed-view.js +0 -2
  1560. package/out/zql/src/query/typed-view.js.map +0 -1
  1561. package/out/zqlite/src/mod.js +0 -5
  1562. package/out/zqlite/src/mod.js.map +0 -1
  1563. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
@@ -1,529 +1,400 @@
1
- import { resolver } from '@rocicorp/resolver';
1
+ import { resolver } from "@rocicorp/resolver";
2
+ import { AbortError } from "../../../shared/src/abort-error.js";
2
3
  import { assert } from "../../../shared/src/asserts.js";
3
4
  import { stringify } from "../../../shared/src/bigint-json.js";
4
5
  import { Queue } from "../../../shared/src/queue.js";
5
6
  import { promiseVoid } from "../../../shared/src/resolved-promises.js";
6
- import { disableStatementTimeout, } from "../types/pg.js";
7
- import * as Mode from "./mode-enum.js";
8
- /**
9
- * A TransactionPool is a pool of one or more {@link postgres.TransactionSql}
10
- * objects that participate in processing a dynamic queue of tasks.
11
- *
12
- * This can be used for serializing a set of tasks that arrive asynchronously
13
- * to a single transaction (for writing) or performing parallel reads across
14
- * multiple connections at the same snapshot (e.g. read only snapshot transactions).
15
- */
16
- export class TransactionPool {
17
- #lc;
18
- #mode;
19
- #init;
20
- #cleanup;
21
- #tasks = new Queue();
22
- #workers = [];
23
- #initialWorkers;
24
- #maxWorkers;
25
- #timeoutTask;
26
- #numWorkers;
27
- #numWorking = 0;
28
- #db; // set when running. stored to allow adaptive pool sizing.
29
- #refCount = 1;
30
- #done = false;
31
- #failure;
32
- /**
33
- * @param init A {@link Task} that is run in each Transaction before it begins
34
- * processing general tasks. This can be used to to set the transaction
35
- * mode, export/set snapshots, etc. This will be run even if
36
- * {@link fail} has been called on the pool.
37
- * @param cleanup A {@link Task} that is run in each Transaction before it closes.
38
- * This will be run even if {@link fail} has been called, or if a
39
- * preceding Task threw an Error.
40
- * @param initialWorkers The initial number of transaction workers to process tasks.
41
- * This is the steady state number of workers that will be kept
42
- * alive if the TransactionPool is long lived.
43
- * This must be greater than 0. Defaults to 1.
44
- * @param maxWorkers When specified, allows the pool to grow to `maxWorkers`. This
45
- * must be greater than or equal to `initialWorkers`. On-demand
46
- * workers will be shut down after an idle timeout of 5 seconds.
47
- */
48
- constructor(lc, mode, init, cleanup, initialWorkers = 1, maxWorkers = initialWorkers, timeoutTasks = TIMEOUT_TASKS) {
49
- assert(initialWorkers > 0);
50
- assert(maxWorkers >= initialWorkers);
51
- this.#lc = lc;
52
- this.#mode = mode;
53
- this.#init = init ? this.#stmtRunner(init) : undefined;
54
- this.#cleanup = cleanup ? this.#stmtRunner(cleanup) : undefined;
55
- this.#initialWorkers = initialWorkers;
56
- this.#numWorkers = initialWorkers;
57
- this.#maxWorkers = maxWorkers;
58
- this.#timeoutTask = timeoutTasks;
7
+ import { disableStatementTimeout } from "../types/pg.js";
8
+ class TransactionPool {
9
+ #lc;
10
+ #mode;
11
+ #init;
12
+ #cleanup;
13
+ #tasks = new Queue();
14
+ #workers = [];
15
+ #initialWorkers;
16
+ #maxWorkers;
17
+ #timeoutTask;
18
+ #numWorkers;
19
+ #numWorking = 0;
20
+ #db;
21
+ // set when running. stored to allow adaptive pool sizing.
22
+ #refCount = 1;
23
+ #done = false;
24
+ #failure;
25
+ /**
26
+ * @param init A {@link Task} that is run in each Transaction before it begins
27
+ * processing general tasks. This can be used to to set the transaction
28
+ * mode, export/set snapshots, etc. This will be run even if
29
+ * {@link fail} has been called on the pool.
30
+ * @param cleanup A {@link Task} that is run in each Transaction before it closes.
31
+ * This will be run even if {@link fail} has been called, or if a
32
+ * preceding Task threw an Error.
33
+ * @param initialWorkers The initial number of transaction workers to process tasks.
34
+ * This is the steady state number of workers that will be kept
35
+ * alive if the TransactionPool is long lived.
36
+ * This must be greater than 0. Defaults to 1.
37
+ * @param maxWorkers When specified, allows the pool to grow to `maxWorkers`. This
38
+ * must be greater than or equal to `initialWorkers`. On-demand
39
+ * workers will be shut down after an idle timeout of 5 seconds.
40
+ */
41
+ constructor(lc, mode, init, cleanup, initialWorkers = 1, maxWorkers = initialWorkers, timeoutTasks = TIMEOUT_TASKS) {
42
+ assert(initialWorkers > 0);
43
+ assert(maxWorkers >= initialWorkers);
44
+ this.#lc = lc;
45
+ this.#mode = mode;
46
+ this.#init = init ? this.#stmtRunner(init) : void 0;
47
+ this.#cleanup = cleanup ? this.#stmtRunner(cleanup) : void 0;
48
+ this.#initialWorkers = initialWorkers;
49
+ this.#numWorkers = initialWorkers;
50
+ this.#maxWorkers = maxWorkers;
51
+ this.#timeoutTask = timeoutTasks;
52
+ }
53
+ /**
54
+ * Starts the pool of workers to process Tasks with transactions opened from the
55
+ * specified {@link db}.
56
+ */
57
+ run(db) {
58
+ assert(!this.#db, "already running");
59
+ this.#db = db;
60
+ for (let i = 0; i < this.#numWorkers; i++) {
61
+ this.#addWorker(db);
59
62
  }
60
- /**
61
- * Starts the pool of workers to process Tasks with transactions opened from the
62
- * specified {@link db}.
63
- */
64
- run(db) {
65
- assert(!this.#db, 'already running');
66
- this.#db = db;
67
- for (let i = 0; i < this.#numWorkers; i++) {
68
- this.#addWorker(db);
69
- }
70
- return this;
63
+ return this;
64
+ }
65
+ /**
66
+ * Adds context parameters to internal LogContext. This is useful for context values that
67
+ * are not known when the TransactionPool is constructed (e.g. determined after a database
68
+ * call when the pool is running).
69
+ *
70
+ * Returns an object that can be used to add more parameters.
71
+ */
72
+ addLoggingContext(key, value) {
73
+ this.#lc = this.#lc.withContext(key, value);
74
+ return {
75
+ addLoggingContext: (key2, value2) => this.addLoggingContext(key2, value2)
76
+ };
77
+ }
78
+ /**
79
+ * Returns a promise that:
80
+ *
81
+ * * resolves after {@link setDone} has been called (or the the pool as been {@link unref}ed
82
+ * to a 0 ref count), once all added tasks have been processed and all transactions have been
83
+ * committed or closed.
84
+ *
85
+ * * rejects if processing was aborted with {@link fail} or if processing any of
86
+ * the tasks resulted in an error. All uncommitted transactions will have been
87
+ * rolled back.
88
+ *
89
+ * Note that partial failures are possible if processing writes with multiple workers
90
+ * (e.g. `setDone` is called, allowing some workers to commit, after which other
91
+ * workers encounter errors). Using a TransactionPool in this manner does not make
92
+ * sense in terms of transactional semantics, and is thus not recommended.
93
+ *
94
+ * For reads, however, multiple workers is useful for performing parallel reads
95
+ * at the same snapshot. See {@link synchronizedSnapshots} for an example.
96
+ * Resolves or rejects when all workers are done or failed.
97
+ */
98
+ async done() {
99
+ const numWorkers = this.#workers.length;
100
+ await Promise.all(this.#workers);
101
+ if (numWorkers < this.#workers.length) {
102
+ await Promise.all(this.#workers);
71
103
  }
72
- /**
73
- * Adds context parameters to internal LogContext. This is useful for context values that
74
- * are not known when the TransactionPool is constructed (e.g. determined after a database
75
- * call when the pool is running).
76
- *
77
- * Returns an object that can be used to add more parameters.
78
- */
79
- addLoggingContext(key, value) {
80
- this.#lc = this.#lc.withContext(key, value);
81
- return {
82
- addLoggingContext: (key, value) => this.addLoggingContext(key, value),
104
+ this.#lc.debug?.("transaction pool done");
105
+ }
106
+ #addWorker(db) {
107
+ const id = this.#workers.length + 1;
108
+ const lc = this.#lc.withContext("tx", id);
109
+ const tt = this.#workers.length < this.#initialWorkers ? this.#timeoutTask.forInitialWorkers : this.#timeoutTask.forExtraWorkers;
110
+ const { timeoutMs } = tt;
111
+ const timeoutTask = tt.task === "done" ? "done" : this.#stmtRunner(tt.task);
112
+ const worker = async (tx) => {
113
+ try {
114
+ lc.debug?.("started transaction");
115
+ disableStatementTimeout(tx);
116
+ let last = promiseVoid;
117
+ const executeTask = async (runner) => {
118
+ runner !== this.#init && this.#numWorking++;
119
+ const { pending } = await runner.run(tx, lc, () => {
120
+ runner !== this.#init && this.#numWorking--;
121
+ });
122
+ last = pending ?? last;
83
123
  };
84
- }
85
- /**
86
- * Returns a promise that:
87
- *
88
- * * resolves after {@link setDone} has been called (or the the pool as been {@link unref}ed
89
- * to a 0 ref count), once all added tasks have been processed and all transactions have been
90
- * committed or closed.
91
- *
92
- * * rejects if processing was aborted with {@link fail} or if processing any of
93
- * the tasks resulted in an error. All uncommitted transactions will have been
94
- * rolled back.
95
- *
96
- * Note that partial failures are possible if processing writes with multiple workers
97
- * (e.g. `setDone` is called, allowing some workers to commit, after which other
98
- * workers encounter errors). Using a TransactionPool in this manner does not make
99
- * sense in terms of transactional semantics, and is thus not recommended.
100
- *
101
- * For reads, however, multiple workers is useful for performing parallel reads
102
- * at the same snapshot. See {@link synchronizedSnapshots} for an example.
103
- * Resolves or rejects when all workers are done or failed.
104
- */
105
- async done() {
106
- const numWorkers = this.#workers.length;
107
- await Promise.all(this.#workers);
108
- if (numWorkers < this.#workers.length) {
109
- // If workers were added after the initial set, they must be awaited to ensure
110
- // that the results (i.e. rejections) of all workers are accounted for. This only
111
- // needs to be re-done once, because the fact that the first `await` completed
112
- // guarantees that the pool is in a terminal state and no new workers can be added.
113
- await Promise.all(this.#workers);
114
- }
115
- this.#lc.debug?.('transaction pool done');
116
- }
117
- #addWorker(db) {
118
- const id = this.#workers.length + 1;
119
- const lc = this.#lc.withContext('tx', id);
120
- const tt = this.#workers.length < this.#initialWorkers
121
- ? this.#timeoutTask.forInitialWorkers
122
- : this.#timeoutTask.forExtraWorkers;
123
- const { timeoutMs } = tt;
124
- const timeoutTask = tt.task === 'done' ? 'done' : this.#stmtRunner(tt.task);
125
- const worker = async (tx) => {
126
- try {
127
- lc.debug?.('started transaction');
128
- disableStatementTimeout(tx);
129
- let last = promiseVoid;
130
- const executeTask = async (runner) => {
131
- runner !== this.#init && this.#numWorking++;
132
- const { pending } = await runner.run(tx, lc, () => {
133
- runner !== this.#init && this.#numWorking--;
134
- });
135
- last = pending ?? last;
136
- };
137
- let task = this.#init ?? (await this.#tasks.dequeue(timeoutTask, timeoutMs));
138
- try {
139
- while (task !== 'done') {
140
- if (task instanceof Error ||
141
- (task !== this.#init && this.#failure)) {
142
- throw this.#failure ?? task;
143
- }
144
- await executeTask(task);
145
- // await the next task.
146
- task = await this.#tasks.dequeue(timeoutTask, timeoutMs);
147
- }
148
- }
149
- finally {
150
- // Execute the cleanup task even on failure.
151
- if (this.#cleanup) {
152
- await executeTask(this.#cleanup);
153
- }
154
- }
155
- lc.debug?.('closing transaction');
156
- // Given the semantics of a Postgres transaction, the last statement
157
- // will only succeed if all of the preceding statements succeeded.
158
- return last;
124
+ let task = this.#init ?? await this.#tasks.dequeue(timeoutTask, timeoutMs);
125
+ try {
126
+ while (task !== "done") {
127
+ if (task instanceof Error || task !== this.#init && this.#failure) {
128
+ throw this.#failure ?? task;
159
129
  }
160
- catch (e) {
161
- if (e !== this.#failure) {
162
- lc.error?.('error from worker', e);
163
- this.fail(e); // A failure in any worker should fail the pool.
164
- }
165
- throw e;
166
- }
167
- };
168
- this.#workers.push(db
169
- .begin(this.#mode, worker)
170
- .catch(e => {
171
- if (e instanceof RollbackSignal) {
172
- // A RollbackSignal is used to gracefully rollback the postgres.js
173
- // transaction block. It should not be thrown up to the application.
174
- lc.debug?.('aborted transaction');
175
- }
176
- else {
177
- throw e;
178
- }
179
- })
180
- .finally(() => this.#numWorkers--));
181
- // After adding the worker, enqueue a terminal signal if we are in either of the
182
- // terminal states (both of which prevent more tasks from being enqueued), to ensure
183
- // that the added worker eventually exits.
184
- if (this.#done) {
185
- this.#tasks.enqueue('done');
130
+ await executeTask(task);
131
+ task = await this.#tasks.dequeue(timeoutTask, timeoutMs);
132
+ }
133
+ } finally {
134
+ if (this.#cleanup) {
135
+ await executeTask(this.#cleanup);
136
+ }
186
137
  }
187
- if (this.#failure) {
188
- this.#tasks.enqueue(this.#failure);
138
+ lc.debug?.("closing transaction");
139
+ return last;
140
+ } catch (e) {
141
+ if (e !== this.#failure) {
142
+ this.fail(e);
189
143
  }
144
+ throw e;
145
+ }
146
+ };
147
+ this.#workers.push(
148
+ db.begin(this.#mode, worker).catch((e) => {
149
+ if (e instanceof RollbackSignal) {
150
+ lc.debug?.("aborted transaction");
151
+ } else {
152
+ throw e;
153
+ }
154
+ }).finally(() => this.#numWorkers--)
155
+ );
156
+ if (this.#done) {
157
+ this.#tasks.enqueue("done");
190
158
  }
191
- /**
192
- * Processes the statements produced by the specified {@link Task},
193
- * returning a Promise that resolves when the statements are either processed
194
- * by the database or rejected.
195
- *
196
- * Note that statement failures will result in failing the entire
197
- * TransactionPool (per transaction semantics). However, the returned Promise
198
- * itself will resolve rather than reject. As such, it is fine to ignore
199
- * returned Promises in order to pipeline requests to the database. It is
200
- * recommended to occasionally await them (e.g. after some threshold) in
201
- * order to avoid memory blowup in the case of database slowness.
202
- */
203
- process(task) {
204
- const r = resolver();
205
- this.#process(this.#stmtRunner(task, r));
206
- return r.promise;
207
- }
208
- #start = performance.now();
209
- #stmts = 0;
210
- /**
211
- * Implements the semantics specified in {@link process()}.
212
- *
213
- * Specifically:
214
- * * `freeWorker()` is called as soon as the statements are produced,
215
- * allowing them to be pipelined to the database.
216
- * * Statement errors result in failing the transaction pool.
217
- * * The client-supplied Resolver resolves on success or failure;
218
- * it is never rejected.
219
- */
220
- #stmtRunner(task, r = resolver()) {
221
- return {
222
- run: async (tx, lc, freeWorker) => {
223
- let stmts;
224
- try {
225
- stmts = await task(tx, lc);
226
- }
227
- catch (e) {
228
- r.resolve();
229
- throw e;
230
- }
231
- finally {
232
- freeWorker();
233
- }
234
- if (stmts.length === 0) {
235
- r.resolve();
236
- return { pending: null };
237
- }
238
- // Execute the statements (i.e. send to the db) immediately.
239
- // The last result is returned for the worker to await before
240
- // closing the transaction.
241
- const last = stmts.reduce((_, stmt) => stmt
242
- .execute()
243
- .then(() => {
244
- if (++this.#stmts % 1000 === 0) {
245
- const q = stmt;
246
- lc.debug?.(`executed ${this.#stmts}th statement (${(performance.now() - this.#start).toFixed(3)} ms)`, {
247
- statement: q.string,
248
- params: stringify(q.parameters),
249
- });
250
- }
251
- })
252
- .catch(e => this.fail(e)), promiseVoid);
253
- return { pending: last.then(r.resolve) };
254
- },
255
- rejected: r.resolve,
256
- };
257
- }
258
- /**
259
- * Processes and returns the result of executing the {@link ReadTask} from
260
- * within the transaction. An error thrown by the task will result in
261
- * rejecting the returned Promise, but will not affect the transaction pool
262
- * itself.
263
- */
264
- processReadTask(readTask) {
265
- const r = resolver();
266
- this.#process(this.#readRunner(readTask, r));
267
- return r.promise;
268
- }
269
- /**
270
- * Implements the semantics specified in {@link processReadTask()}.
271
- *
272
- * Specifically:
273
- * * `freeWorker()` is called as soon as the result is produced,
274
- * before resolving the client-supplied Resolver.
275
- * * Errors result in rejecting the client-supplied Resolver but
276
- * do not affect transaction pool.
277
- */
278
- #readRunner(readTask, r) {
279
- return {
280
- run: async (tx, lc, freeWorker) => {
281
- let result;
282
- try {
283
- result = await readTask(tx, lc);
284
- freeWorker();
285
- r.resolve(result);
286
- }
287
- catch (e) {
288
- freeWorker();
289
- r.reject(e);
290
- }
291
- return { pending: null };
292
- },
293
- rejected: r.reject,
294
- };
159
+ if (this.#failure) {
160
+ this.#tasks.enqueue(this.#failure);
295
161
  }
296
- #process(runner) {
297
- assert(!this.#done, 'already set done');
298
- if (this.#failure) {
299
- runner.rejected(this.#failure);
300
- return;
162
+ }
163
+ /**
164
+ * Processes the statements produced by the specified {@link Task},
165
+ * returning a Promise that resolves when the statements are either processed
166
+ * by the database or rejected.
167
+ *
168
+ * Note that statement failures will result in failing the entire
169
+ * TransactionPool (per transaction semantics). However, the returned Promise
170
+ * itself will resolve rather than reject. As such, it is fine to ignore
171
+ * returned Promises in order to pipeline requests to the database. It is
172
+ * recommended to occasionally await them (e.g. after some threshold) in
173
+ * order to avoid memory blowup in the case of database slowness.
174
+ */
175
+ process(task) {
176
+ const r = resolver();
177
+ this.#process(this.#stmtRunner(task, r));
178
+ return r.promise;
179
+ }
180
+ #start = performance.now();
181
+ #stmts = 0;
182
+ /**
183
+ * Implements the semantics specified in {@link process()}.
184
+ *
185
+ * Specifically:
186
+ * * `freeWorker()` is called as soon as the statements are produced,
187
+ * allowing them to be pipelined to the database.
188
+ * * Statement errors result in failing the transaction pool.
189
+ * * The client-supplied Resolver resolves on success or failure;
190
+ * it is never rejected.
191
+ */
192
+ #stmtRunner(task, r = resolver()) {
193
+ return {
194
+ run: async (tx, lc, freeWorker) => {
195
+ let stmts;
196
+ try {
197
+ stmts = await task(tx, lc);
198
+ } catch (e) {
199
+ r.resolve();
200
+ throw e;
201
+ } finally {
202
+ freeWorker();
301
203
  }
302
- this.#tasks.enqueue(runner);
303
- // Check if the pool size can and should be increased.
304
- if (this.#numWorkers < this.#maxWorkers) {
305
- const outstanding = this.#tasks.size();
306
- if (outstanding > this.#numWorkers - this.#numWorking) {
307
- this.#db && this.#addWorker(this.#db);
308
- this.#numWorkers++;
309
- this.#lc.debug?.(`Increased pool size to ${this.#numWorkers}`);
310
- }
204
+ if (stmts.length === 0) {
205
+ r.resolve();
206
+ return { pending: null };
311
207
  }
312
- }
313
- /**
314
- * Ends all workers with a ROLLBACK. Throws if the pool is already done
315
- * or aborted.
316
- */
317
- abort() {
318
- this.fail(new RollbackSignal());
319
- }
320
- /**
321
- * Signals to all workers to end their transaction once all pending tasks have
322
- * been completed. Throws if the pool is already done or aborted.
323
- */
324
- setDone() {
325
- assert(!this.#done, 'already set done');
326
- this.#done = true;
327
- for (let i = 0; i < this.#numWorkers; i++) {
328
- this.#tasks.enqueue('done');
208
+ const last = stmts.reduce(
209
+ (_, stmt) => stmt.execute().then(() => {
210
+ if (++this.#stmts % 1e3 === 0) {
211
+ const q = stmt;
212
+ lc.debug?.(
213
+ `executed ${this.#stmts}th statement (${(performance.now() - this.#start).toFixed(3)} ms)`,
214
+ {
215
+ statement: q.string,
216
+ params: stringify(q.parameters)
217
+ }
218
+ );
219
+ }
220
+ }).catch((e) => this.fail(e)),
221
+ promiseVoid
222
+ );
223
+ return { pending: last.then(r.resolve) };
224
+ },
225
+ rejected: r.resolve
226
+ };
227
+ }
228
+ /**
229
+ * Processes and returns the result of executing the {@link ReadTask} from
230
+ * within the transaction. An error thrown by the task will result in
231
+ * rejecting the returned Promise, but will not affect the transaction pool
232
+ * itself.
233
+ */
234
+ processReadTask(readTask) {
235
+ const r = resolver();
236
+ this.#process(this.#readRunner(readTask, r));
237
+ return r.promise;
238
+ }
239
+ /**
240
+ * Implements the semantics specified in {@link processReadTask()}.
241
+ *
242
+ * Specifically:
243
+ * * `freeWorker()` is called as soon as the result is produced,
244
+ * before resolving the client-supplied Resolver.
245
+ * * Errors result in rejecting the client-supplied Resolver but
246
+ * do not affect transaction pool.
247
+ */
248
+ #readRunner(readTask, r) {
249
+ return {
250
+ run: async (tx, lc, freeWorker) => {
251
+ let result;
252
+ try {
253
+ result = await readTask(tx, lc);
254
+ freeWorker();
255
+ r.resolve(result);
256
+ } catch (e) {
257
+ freeWorker();
258
+ r.reject(e);
329
259
  }
260
+ return { pending: null };
261
+ },
262
+ rejected: r.reject
263
+ };
264
+ }
265
+ #process(runner) {
266
+ assert(!this.#done, "already set done");
267
+ if (this.#failure) {
268
+ runner.rejected(this.#failure);
269
+ return;
330
270
  }
331
- /**
332
- * An alternative to explicitly calling {@link setDone}, `ref()` increments an internal reference
333
- * count, and {@link unref} decrements it. When the reference count reaches 0, {@link setDone} is
334
- * automatically called. A TransactionPool is initialized with a reference count of 1.
335
- *
336
- * `ref()` should be called before sharing the pool with another component, and only after the
337
- * pool has been started with {@link run()}. It must not be called on a TransactionPool that is
338
- * already done (either via {@link unref()} or {@link setDone()}. (Doing so indicates a logical
339
- * error in the code.)
340
- *
341
- * It follows that:
342
- * * The creator of the TransactionPool is responsible for running it.
343
- * * The TransactionPool should be ref'ed before being sharing.
344
- * * The receiver of the TransactionPool is only responsible for unref'ing it.
345
- *
346
- * On the other hand, a transaction pool that fails with a runtime error can still be ref'ed;
347
- * attempts to use the pool will result in the runtime error as expected.
348
- */
349
- // TODO: Get rid of the ref-counting stuff. It's no longer needed.
350
- ref(count = 1) {
351
- assert(this.#db !== undefined && !this.#done, `Cannot ref() a TransactionPool that is not running`);
352
- this.#refCount += count;
271
+ this.#tasks.enqueue(runner);
272
+ if (this.#numWorkers < this.#maxWorkers) {
273
+ const outstanding = this.#tasks.size();
274
+ if (outstanding > this.#numWorkers - this.#numWorking) {
275
+ this.#db && this.#addWorker(this.#db);
276
+ this.#numWorkers++;
277
+ this.#lc.debug?.(`Increased pool size to ${this.#numWorkers}`);
278
+ }
353
279
  }
354
- /**
355
- * Decrements the internal reference count, automatically invoking {@link setDone} when it reaches 0.
356
- */
357
- unref(count = 1) {
358
- assert(count <= this.#refCount);
359
- this.#refCount -= count;
360
- if (this.#refCount === 0) {
361
- this.setDone();
362
- }
280
+ }
281
+ /**
282
+ * Ends all workers with a ROLLBACK. Throws if the pool is already done
283
+ * or aborted.
284
+ */
285
+ abort() {
286
+ this.fail(new RollbackSignal());
287
+ }
288
+ /**
289
+ * Signals to all workers to end their transaction once all pending tasks have
290
+ * been completed. Throws if the pool is already done or aborted.
291
+ */
292
+ setDone() {
293
+ assert(!this.#done, "already set done");
294
+ this.#done = true;
295
+ for (let i = 0; i < this.#numWorkers; i++) {
296
+ this.#tasks.enqueue("done");
363
297
  }
364
- isRunning() {
365
- return this.#db !== undefined && !this.#done && this.#failure === undefined;
298
+ }
299
+ /**
300
+ * An alternative to explicitly calling {@link setDone}, `ref()` increments an internal reference
301
+ * count, and {@link unref} decrements it. When the reference count reaches 0, {@link setDone} is
302
+ * automatically called. A TransactionPool is initialized with a reference count of 1.
303
+ *
304
+ * `ref()` should be called before sharing the pool with another component, and only after the
305
+ * pool has been started with {@link run()}. It must not be called on a TransactionPool that is
306
+ * already done (either via {@link unref()} or {@link setDone()}. (Doing so indicates a logical
307
+ * error in the code.)
308
+ *
309
+ * It follows that:
310
+ * * The creator of the TransactionPool is responsible for running it.
311
+ * * The TransactionPool should be ref'ed before being sharing.
312
+ * * The receiver of the TransactionPool is only responsible for unref'ing it.
313
+ *
314
+ * On the other hand, a transaction pool that fails with a runtime error can still be ref'ed;
315
+ * attempts to use the pool will result in the runtime error as expected.
316
+ */
317
+ // TODO: Get rid of the ref-counting stuff. It's no longer needed.
318
+ ref(count = 1) {
319
+ assert(
320
+ this.#db !== void 0 && !this.#done,
321
+ `Cannot ref() a TransactionPool that is not running`
322
+ );
323
+ this.#refCount += count;
324
+ }
325
+ /**
326
+ * Decrements the internal reference count, automatically invoking {@link setDone} when it reaches 0.
327
+ */
328
+ unref(count = 1) {
329
+ assert(count <= this.#refCount);
330
+ this.#refCount -= count;
331
+ if (this.#refCount === 0) {
332
+ this.setDone();
366
333
  }
367
- /**
368
- * Signals all workers to fail their transactions with the given {@link err}.
369
- */
370
- fail(err) {
371
- if (!this.#failure) {
372
- this.#failure = ensureError(err); // Fail fast: this is checked in the worker loop.
373
- if (this.#failure instanceof ControlFlowError) {
374
- this.#lc.debug?.(this.#failure);
375
- }
376
- else {
377
- this.#lc.error?.(this.#failure);
378
- }
379
- for (let i = 0; i < this.#numWorkers; i++) {
380
- // Enqueue the Error to terminate any workers waiting for tasks.
381
- this.#tasks.enqueue(this.#failure);
382
- }
383
- }
334
+ }
335
+ isRunning() {
336
+ return this.#db !== void 0 && !this.#done && this.#failure === void 0;
337
+ }
338
+ /**
339
+ * Signals all workers to fail their transactions with the given {@link err}.
340
+ */
341
+ fail(err) {
342
+ if (!this.#failure) {
343
+ this.#failure = ensureError(err);
344
+ const level = this.#failure instanceof ControlFlowError ? "debug" : this.#failure instanceof AbortError ? "info" : "error";
345
+ this.#lc[level]?.(this.#failure);
346
+ for (let i = 0; i < this.#numWorkers; i++) {
347
+ this.#tasks.enqueue(this.#failure);
348
+ }
384
349
  }
350
+ }
385
351
  }
386
- /**
387
- * Init Tasks for Postgres snapshot synchronization across transactions.
388
- *
389
- * https://www.postgresql.org/docs/9.3/functions-admin.html#:~:text=Snapshot%20Synchronization%20Functions,identical%20content%20in%20the%20database.
390
- */
391
- export function synchronizedSnapshots() {
392
- const { promise: snapshotExported, resolve: exportSnapshot, reject: failExport, } = resolver();
393
- const { promise: snapshotCaptured, resolve: captureSnapshot, reject: failCapture, } = resolver();
394
- // Set by the first worker to run its initTask, who becomes responsible for
395
- // exporting the snapshot. TODO: Plumb the workerNum and use that instead.
396
- let firstWorkerRun = false;
397
- // Note: Neither init task should `await`, as processing in each pool can proceed
398
- // as soon as the statements have been sent to the db. However, the `cleanupExport`
399
- // task must `await` the result of `setSnapshot` to ensure that exporting transaction
400
- // does not close before the snapshot has been captured.
401
- return {
402
- exportSnapshot: tx => {
403
- if (!firstWorkerRun) {
404
- firstWorkerRun = true;
405
- const stmt = tx `SELECT pg_export_snapshot() AS snapshot; SET TRANSACTION READ ONLY;`.simple();
406
- // Intercept the promise to propagate the information to `snapshotExported`.
407
- stmt.then(result => exportSnapshot(result[0].snapshot), failExport);
408
- return [stmt]; // Also return the stmt so that it gets awaited (and errors handled).
409
- }
410
- return snapshotExported.then(snapshotID => [
411
- tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`),
412
- tx `SET TRANSACTION READ ONLY`.simple(),
413
- ]);
414
- },
415
- setSnapshot: tx => snapshotExported.then(snapshotID => {
416
- const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);
417
- // Intercept the promise to propagate the information to `cleanupExport`.
418
- stmt.then(captureSnapshot, failCapture);
419
- return [stmt];
420
- }),
421
- cleanupExport: async () => {
422
- await snapshotCaptured;
423
- return [];
424
- },
425
- snapshotID: snapshotExported,
426
- };
427
- }
428
- /**
429
- * Returns `init` and `cleanup` {@link Task}s for a TransactionPool that ensure its workers
430
- * share a single view of the database. This is used for View Notifier and View Syncer logic
431
- * that allows multiple entities to perform parallel reads on the same snapshot of the database.
432
- */
433
- export function sharedSnapshot() {
434
- const { promise: snapshotExported, resolve: exportSnapshot, reject: failExport, } = resolver();
435
- // Set by the first worker to run its initTask, who becomes responsible for
436
- // exporting the snapshot.
437
- let firstWorkerRun = false;
438
- // Set when any worker is done, signalling that all non-sentinel Tasks have been
439
- // dequeued, and thus any subsequently spawned workers should skip their initTask
440
- // since the snapshot is no longer needed (and soon to become invalid).
441
- let firstWorkerDone = false;
442
- return {
443
- init: (tx, lc) => {
444
- if (!firstWorkerRun) {
445
- firstWorkerRun = true;
446
- const stmt = tx `SELECT pg_export_snapshot() AS snapshot;`.simple();
447
- // Intercept the promise to propagate the information to `snapshotExported`.
448
- stmt.then(result => exportSnapshot(result[0].snapshot), failExport);
449
- return [stmt]; // Also return the stmt so that it gets awaited (and errors handled).
450
- }
451
- if (!firstWorkerDone) {
452
- return snapshotExported.then(snapshotID => [
453
- tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`),
454
- ]);
455
- }
456
- lc.debug?.('All work is done. No need to set snapshot');
457
- return [];
458
- },
459
- cleanup: () => {
460
- firstWorkerDone = true;
461
- return [];
462
- },
463
- snapshotID: snapshotExported,
464
- };
465
- }
466
- /**
467
- * @returns An `init` Task for importing a snapshot from another transaction.
468
- */
469
- export function importSnapshot(snapshotID) {
470
- const { promise: imported, resolve, reject } = resolver();
471
- return {
472
- init: tx => {
473
- const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);
474
- stmt.then(() => resolve(), reject);
475
- return [stmt];
476
- },
477
- imported,
478
- };
352
+ function importSnapshot(snapshotID) {
353
+ const { promise: imported, resolve, reject } = resolver();
354
+ return {
355
+ init: (tx) => {
356
+ const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);
357
+ stmt.then(() => resolve(), reject);
358
+ return [stmt];
359
+ },
360
+ imported
361
+ };
479
362
  }
480
- /**
481
- * A superclass of Errors used for control flow that is needed to handle
482
- * another Error but does not constitute an error condition itself (e.g.
483
- * aborting transactions after a previous one fails). Subclassing this Error
484
- * will result in lowering the log level from `error` to `debug`.
485
- */
486
- export class ControlFlowError extends Error {
487
- constructor(cause) {
488
- super();
489
- this.cause = cause;
490
- }
363
+ class ControlFlowError extends Error {
364
+ constructor(cause) {
365
+ super();
366
+ this.cause = cause;
367
+ }
491
368
  }
492
- /**
493
- * Internal error used to rollback the worker transaction. This is used
494
- * instead of executing a `ROLLBACK` statement because the postgres.js
495
- * library will otherwise try to execute an extraneous `COMMIT`, which
496
- * results in outputting a "no transaction in progress" warning to the
497
- * database logs.
498
- *
499
- * Throwing an exception, on the other hand, executes the postgres.js
500
- * codepath that calls `ROLLBACK` instead.
501
- */
502
369
  class RollbackSignal extends ControlFlowError {
503
- name = 'RollbackSignal';
504
- message = 'rolling back transaction';
370
+ name = "RollbackSignal";
371
+ message = "rolling back transaction";
505
372
  }
506
373
  function ensureError(err) {
507
- if (err instanceof Error) {
508
- return err;
509
- }
510
- const error = new Error();
511
- error.cause = err;
512
- return error;
374
+ if (err instanceof Error) {
375
+ return err;
376
+ }
377
+ const error = new Error();
378
+ error.cause = err;
379
+ return error;
513
380
  }
514
- // TODO: Get rid of the timeout stuff. It's no longer needed.
515
- const IDLE_TIMEOUT_MS = 5_000;
516
- const KEEPALIVE_TIMEOUT_MS = 60_000;
517
- const KEEPALIVE_TASK = tx => [tx `SELECT 1`.simple()];
518
- // Production timeout tasks. Overridden in tests.
519
- export const TIMEOUT_TASKS = {
520
- forInitialWorkers: {
521
- timeoutMs: KEEPALIVE_TIMEOUT_MS,
522
- task: KEEPALIVE_TASK,
523
- },
524
- forExtraWorkers: {
525
- timeoutMs: IDLE_TIMEOUT_MS,
526
- task: 'done',
527
- },
381
+ const IDLE_TIMEOUT_MS = 5e3;
382
+ const KEEPALIVE_TIMEOUT_MS = 6e4;
383
+ const KEEPALIVE_TASK = (tx) => [tx`SELECT 1`.simple()];
384
+ const TIMEOUT_TASKS = {
385
+ forInitialWorkers: {
386
+ timeoutMs: KEEPALIVE_TIMEOUT_MS,
387
+ task: KEEPALIVE_TASK
388
+ },
389
+ forExtraWorkers: {
390
+ timeoutMs: IDLE_TIMEOUT_MS,
391
+ task: "done"
392
+ }
393
+ };
394
+ export {
395
+ ControlFlowError,
396
+ TIMEOUT_TASKS,
397
+ TransactionPool,
398
+ importSnapshot
528
399
  };
529
- //# sourceMappingURL=transaction-pool.js.map
400
+ //# sourceMappingURL=transaction-pool.js.map