@rocicorp/zero 0.25.0 → 0.26.0-canary.0

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 (1588) 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 +82 -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.d.ts +1 -1
  22. package/out/otel/src/log-options.d.ts.map +1 -1
  23. package/out/otel/src/log-options.js +35 -31
  24. package/out/otel/src/log-options.js.map +1 -1
  25. package/out/otel/src/maybe-time.js +14 -11
  26. package/out/otel/src/maybe-time.js.map +1 -1
  27. package/out/otel/src/span.js +30 -27
  28. package/out/otel/src/span.js.map +1 -1
  29. package/out/otel/src/test-log-config.js +10 -7
  30. package/out/otel/src/test-log-config.js.map +1 -1
  31. package/out/otel/src/version.js +5 -2
  32. package/out/otel/src/version.js.map +1 -1
  33. package/out/replicache/src/async-iterable-to-array.js +11 -0
  34. package/out/replicache/src/async-iterable-to-array.js.map +1 -0
  35. package/out/replicache/src/bg-interval.js +38 -0
  36. package/out/replicache/src/bg-interval.js.map +1 -0
  37. package/out/replicache/src/btree/diff.js +8 -0
  38. package/out/replicache/src/btree/diff.js.map +1 -0
  39. package/out/replicache/src/btree/node.js +400 -0
  40. package/out/replicache/src/btree/node.js.map +1 -0
  41. package/out/replicache/src/btree/read.d.ts +3 -2
  42. package/out/replicache/src/btree/read.d.ts.map +1 -1
  43. package/out/replicache/src/btree/read.js +266 -0
  44. package/out/replicache/src/btree/read.js.map +1 -0
  45. package/out/replicache/src/btree/splice.js +83 -0
  46. package/out/replicache/src/btree/splice.js.map +1 -0
  47. package/out/replicache/src/btree/write.d.ts +1 -1
  48. package/out/replicache/src/btree/write.d.ts.map +1 -1
  49. package/out/replicache/src/btree/write.js +163 -0
  50. package/out/replicache/src/btree/write.js.map +1 -0
  51. package/out/replicache/src/call-default-fetch.js +34 -0
  52. package/out/replicache/src/call-default-fetch.js.map +1 -0
  53. package/out/replicache/src/connection-loop-delegates.js +34 -0
  54. package/out/replicache/src/connection-loop-delegates.js.map +1 -0
  55. package/out/replicache/src/connection-loop.js +251 -0
  56. package/out/replicache/src/connection-loop.js.map +1 -0
  57. package/out/replicache/src/cookies.js +40 -0
  58. package/out/replicache/src/cookies.js.map +1 -0
  59. package/out/replicache/src/dag/chunk.js +59 -0
  60. package/out/replicache/src/dag/chunk.js.map +1 -0
  61. package/out/replicache/src/dag/gc.js +117 -0
  62. package/out/replicache/src/dag/gc.js.map +1 -0
  63. package/out/replicache/src/dag/key.js +20 -0
  64. package/out/replicache/src/dag/key.js.map +1 -0
  65. package/out/replicache/src/dag/lazy-store.d.ts +2 -1
  66. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
  67. package/out/replicache/src/dag/lazy-store.js +515 -0
  68. package/out/replicache/src/dag/lazy-store.js.map +1 -0
  69. package/out/replicache/src/dag/store-impl.js +183 -0
  70. package/out/replicache/src/dag/store-impl.js.map +1 -0
  71. package/out/replicache/src/dag/store.js +27 -0
  72. package/out/replicache/src/dag/store.js.map +1 -0
  73. package/out/replicache/src/dag/visitor.js +22 -0
  74. package/out/replicache/src/dag/visitor.js.map +1 -0
  75. package/out/replicache/src/db/commit.js +358 -0
  76. package/out/replicache/src/db/commit.js.map +1 -0
  77. package/out/replicache/src/db/index-operation-enum.js +7 -0
  78. package/out/replicache/src/db/index-operation-enum.js.map +1 -0
  79. package/out/replicache/src/db/index.js +134 -0
  80. package/out/replicache/src/db/index.js.map +1 -0
  81. package/out/replicache/src/db/meta-type-enum.js +7 -0
  82. package/out/replicache/src/db/meta-type-enum.js.map +1 -0
  83. package/out/replicache/src/db/read.d.ts +3 -2
  84. package/out/replicache/src/db/read.d.ts.map +1 -1
  85. package/out/replicache/src/db/read.js +72 -0
  86. package/out/replicache/src/db/read.js.map +1 -0
  87. package/out/replicache/src/db/rebase.d.ts +2 -2
  88. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  89. package/out/replicache/src/db/rebase.js +85 -0
  90. package/out/replicache/src/db/rebase.js.map +1 -0
  91. package/out/replicache/src/db/write.d.ts +2 -1
  92. package/out/replicache/src/db/write.d.ts.map +1 -1
  93. package/out/replicache/src/db/write.js +296 -0
  94. package/out/replicache/src/db/write.js.map +1 -0
  95. package/out/replicache/src/deleted-clients.js +104 -0
  96. package/out/replicache/src/deleted-clients.js.map +1 -0
  97. package/out/replicache/src/error-responses.js +34 -0
  98. package/out/replicache/src/error-responses.js.map +1 -0
  99. package/out/replicache/src/format-version-enum.js +11 -0
  100. package/out/replicache/src/format-version-enum.js.map +1 -0
  101. package/out/{chunk-EZM3XBAB.js → replicache/src/frozen-json.js} +8 -75
  102. package/out/replicache/src/frozen-json.js.map +1 -0
  103. package/out/replicache/src/get-default-puller.js +61 -0
  104. package/out/replicache/src/get-default-puller.js.map +1 -0
  105. package/out/replicache/src/get-default-pusher.js +39 -0
  106. package/out/replicache/src/get-default-pusher.js.map +1 -0
  107. package/out/replicache/src/get-kv-store-provider.js +23 -0
  108. package/out/replicache/src/get-kv-store-provider.js.map +1 -0
  109. package/out/replicache/src/hash.js +38 -0
  110. package/out/replicache/src/hash.js.map +1 -0
  111. package/out/replicache/src/http-request-info.js +10 -0
  112. package/out/replicache/src/http-request-info.js.map +1 -0
  113. package/out/replicache/src/http-status-unauthorized.js +5 -0
  114. package/out/replicache/src/http-status-unauthorized.js.map +1 -0
  115. package/out/replicache/src/index-defs.js +32 -0
  116. package/out/replicache/src/index-defs.js.map +1 -0
  117. package/out/replicache/src/invoke-kind-enum.js +7 -0
  118. package/out/replicache/src/invoke-kind-enum.js.map +1 -0
  119. package/out/{chunk-ZZXMKAAG.js → replicache/src/kv/expo-sqlite/store.js} +8 -16
  120. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
  121. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +80 -0
  122. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
  123. package/out/replicache/src/kv/idb-store.js +183 -0
  124. package/out/replicache/src/kv/idb-store.js.map +1 -0
  125. package/out/replicache/src/kv/mem-store.js +51 -0
  126. package/out/replicache/src/kv/mem-store.js.map +1 -0
  127. package/out/{op-sqlite.js → replicache/src/kv/op-sqlite/store.js} +7 -18
  128. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
  129. package/out/replicache/src/kv/op-sqlite/types.js +6 -0
  130. package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
  131. package/out/replicache/src/kv/read-impl.js +27 -0
  132. package/out/replicache/src/kv/read-impl.js.map +1 -0
  133. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  134. package/out/{chunk-ECUMGQGC.js → replicache/src/kv/sqlite-store.js} +27 -21
  135. package/out/replicache/src/kv/sqlite-store.js.map +1 -0
  136. package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
  137. package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
  138. package/out/replicache/src/kv/write-impl-base.js +57 -0
  139. package/out/replicache/src/kv/write-impl-base.js.map +1 -0
  140. package/out/replicache/src/kv/write-impl.js +30 -0
  141. package/out/replicache/src/kv/write-impl.js.map +1 -0
  142. package/out/replicache/src/lazy.js +13 -0
  143. package/out/replicache/src/lazy.js.map +1 -0
  144. package/out/replicache/src/log-options.js +9 -0
  145. package/out/replicache/src/log-options.js.map +1 -0
  146. package/out/replicache/src/make-idb-name.js +13 -0
  147. package/out/replicache/src/make-idb-name.js.map +1 -0
  148. package/out/replicache/src/new-client-channel.js +51 -0
  149. package/out/replicache/src/new-client-channel.js.map +1 -0
  150. package/out/replicache/src/on-persist-channel.js +36 -0
  151. package/out/replicache/src/on-persist-channel.js.map +1 -0
  152. package/out/replicache/src/patch-operation.js +42 -0
  153. package/out/replicache/src/patch-operation.js.map +1 -0
  154. package/out/replicache/src/pending-mutations.js +16 -0
  155. package/out/replicache/src/pending-mutations.js.map +1 -0
  156. package/out/replicache/src/persist/client-gc.js +58 -0
  157. package/out/replicache/src/persist/client-gc.js.map +1 -0
  158. package/out/replicache/src/persist/client-group-gc.js +43 -0
  159. package/out/replicache/src/persist/client-group-gc.js.map +1 -0
  160. package/out/replicache/src/persist/client-groups.js +184 -0
  161. package/out/replicache/src/persist/client-groups.js.map +1 -0
  162. package/out/replicache/src/persist/clients.d.ts +3 -2
  163. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  164. package/out/replicache/src/persist/clients.js +353 -0
  165. package/out/replicache/src/persist/clients.js.map +1 -0
  166. package/out/replicache/src/persist/collect-idb-databases.js +188 -0
  167. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
  168. package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
  169. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  170. package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
  171. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  172. package/out/replicache/src/persist/heartbeat.js +48 -0
  173. package/out/replicache/src/persist/heartbeat.js.map +1 -0
  174. package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
  175. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  176. package/out/replicache/src/persist/idb-databases-store.d.ts +1 -0
  177. package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -1
  178. package/out/replicache/src/persist/idb-databases-store.js +103 -0
  179. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  180. package/out/replicache/src/persist/make-client-id.js +12 -0
  181. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  182. package/out/replicache/src/persist/persist.d.ts +2 -2
  183. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  184. package/out/replicache/src/persist/persist.js +183 -0
  185. package/out/replicache/src/persist/persist.js.map +1 -0
  186. package/out/replicache/src/persist/refresh.d.ts +4 -3
  187. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  188. package/out/replicache/src/persist/refresh.js +198 -0
  189. package/out/replicache/src/persist/refresh.js.map +1 -0
  190. package/out/replicache/src/process-scheduler.js +96 -0
  191. package/out/replicache/src/process-scheduler.js.map +1 -0
  192. package/out/replicache/src/pusher.js +33 -0
  193. package/out/replicache/src/pusher.js.map +1 -0
  194. package/out/replicache/src/replicache-impl.d.ts +1 -1
  195. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  196. package/out/replicache/src/replicache-impl.js +1200 -0
  197. package/out/replicache/src/replicache-impl.js.map +1 -0
  198. package/out/replicache/src/replicache-options.d.ts +3 -2
  199. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  200. package/out/replicache/src/report-error.js +6 -0
  201. package/out/replicache/src/report-error.js.map +1 -0
  202. package/out/replicache/src/request-idle.js +13 -0
  203. package/out/replicache/src/request-idle.js.map +1 -0
  204. package/out/replicache/src/scan-iterator.js +146 -0
  205. package/out/replicache/src/scan-iterator.js.map +1 -0
  206. package/out/replicache/src/scan-options.js +45 -0
  207. package/out/replicache/src/scan-options.js.map +1 -0
  208. package/out/replicache/src/set-interval-with-signal.js +12 -0
  209. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  210. package/out/replicache/src/subscriptions.js +355 -0
  211. package/out/replicache/src/subscriptions.js.map +1 -0
  212. package/out/replicache/src/sync/diff.d.ts +3 -2
  213. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  214. package/out/replicache/src/sync/diff.js +72 -0
  215. package/out/replicache/src/sync/diff.js.map +1 -0
  216. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  217. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  218. package/out/replicache/src/sync/ids.js +9 -0
  219. package/out/replicache/src/sync/ids.js.map +1 -0
  220. package/out/replicache/src/sync/patch.js +49 -0
  221. package/out/replicache/src/sync/patch.js.map +1 -0
  222. package/out/replicache/src/sync/pull-error.js +16 -0
  223. package/out/replicache/src/sync/pull-error.js.map +1 -0
  224. package/out/replicache/src/sync/pull.d.ts +3 -2
  225. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  226. package/out/replicache/src/sync/pull.js +301 -0
  227. package/out/replicache/src/sync/pull.js.map +1 -0
  228. package/out/replicache/src/sync/push.js +88 -0
  229. package/out/replicache/src/sync/push.js.map +1 -0
  230. package/out/replicache/src/sync/request-id.js +20 -0
  231. package/out/replicache/src/sync/request-id.js.map +1 -0
  232. package/out/replicache/src/sync/sync-head-name.js +5 -0
  233. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  234. package/out/replicache/src/to-error.js +10 -0
  235. package/out/replicache/src/to-error.js.map +1 -0
  236. package/out/replicache/src/transaction-closed-error.js +19 -0
  237. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  238. package/out/replicache/src/transactions.js +152 -0
  239. package/out/replicache/src/transactions.js.map +1 -0
  240. package/out/replicache/src/version.js +5 -0
  241. package/out/replicache/src/version.js.map +1 -0
  242. package/out/replicache/src/with-transactions.js +28 -0
  243. package/out/replicache/src/with-transactions.js.map +1 -0
  244. package/out/shared/src/abort-error.js +6 -3
  245. package/out/shared/src/abort-error.js.map +1 -1
  246. package/out/shared/src/arrays.js +45 -43
  247. package/out/shared/src/arrays.js.map +1 -1
  248. package/out/shared/src/asserts.js +64 -68
  249. package/out/shared/src/asserts.js.map +1 -1
  250. package/out/shared/src/bigint-json.js +38 -42
  251. package/out/shared/src/bigint-json.js.map +1 -1
  252. package/out/shared/src/binary-search.js +18 -29
  253. package/out/shared/src/binary-search.js.map +1 -1
  254. package/out/shared/src/broadcast-channel.js +24 -0
  255. package/out/shared/src/broadcast-channel.js.map +1 -0
  256. package/out/shared/src/browser-env.js +25 -0
  257. package/out/shared/src/browser-env.js.map +1 -0
  258. package/out/shared/src/btree-set.js +464 -507
  259. package/out/shared/src/btree-set.js.map +1 -1
  260. package/out/shared/src/cache.js +34 -38
  261. package/out/shared/src/cache.js.map +1 -1
  262. package/out/shared/src/centroid.js +24 -24
  263. package/out/shared/src/centroid.js.map +1 -1
  264. package/out/shared/src/config.js +6 -3
  265. package/out/shared/src/config.js.map +1 -1
  266. package/out/shared/src/custom-key-map.js +58 -64
  267. package/out/shared/src/custom-key-map.js.map +1 -1
  268. package/out/shared/src/custom-key-set.js +51 -57
  269. package/out/shared/src/custom-key-set.js.map +1 -1
  270. package/out/shared/src/deep-clone.js +46 -0
  271. package/out/shared/src/deep-clone.js.map +1 -0
  272. package/out/shared/src/deep-merge.d.ts +26 -4
  273. package/out/shared/src/deep-merge.d.ts.map +1 -1
  274. package/out/shared/src/deep-merge.js +28 -0
  275. package/out/shared/src/deep-merge.js.map +1 -0
  276. package/out/shared/src/document-visible.js +74 -0
  277. package/out/shared/src/document-visible.js.map +1 -0
  278. package/out/shared/src/dotenv.js +5 -7
  279. package/out/shared/src/dotenv.js.map +1 -1
  280. package/out/shared/src/error.js +57 -56
  281. package/out/shared/src/error.js.map +1 -1
  282. package/out/shared/src/has-own.js +5 -3
  283. package/out/shared/src/has-own.js.map +1 -1
  284. package/out/shared/src/hash.js +15 -14
  285. package/out/shared/src/hash.js.map +1 -1
  286. package/out/shared/src/iterables.d.ts +0 -1
  287. package/out/shared/src/iterables.d.ts.map +1 -1
  288. package/out/shared/src/iterables.js +44 -80
  289. package/out/shared/src/iterables.js.map +1 -1
  290. package/out/shared/src/json-schema.js +30 -33
  291. package/out/shared/src/json-schema.js.map +1 -1
  292. package/out/shared/src/json.js +128 -143
  293. package/out/shared/src/json.js.map +1 -1
  294. package/out/shared/src/logging-test-utils.js +12 -19
  295. package/out/shared/src/logging-test-utils.js.map +1 -1
  296. package/out/shared/src/logging.d.ts.map +1 -1
  297. package/out/shared/src/logging.js +99 -83
  298. package/out/shared/src/logging.js.map +1 -1
  299. package/out/shared/src/must.js +9 -7
  300. package/out/shared/src/must.js.map +1 -1
  301. package/out/shared/src/navigator.js +5 -0
  302. package/out/shared/src/navigator.js.map +1 -0
  303. package/out/shared/src/object-traversal.d.ts +19 -0
  304. package/out/shared/src/object-traversal.d.ts.map +1 -0
  305. package/out/shared/src/object-traversal.js +27 -0
  306. package/out/shared/src/object-traversal.js.map +1 -0
  307. package/out/shared/src/objects.js +21 -22
  308. package/out/shared/src/objects.js.map +1 -1
  309. package/out/shared/src/options-types.d.ts +113 -0
  310. package/out/shared/src/options-types.d.ts.map +1 -0
  311. package/out/shared/src/options.d.ts +4 -111
  312. package/out/shared/src/options.d.ts.map +1 -1
  313. package/out/shared/src/options.js +289 -318
  314. package/out/shared/src/options.js.map +1 -1
  315. package/out/shared/src/parse-big-int.js +12 -10
  316. package/out/shared/src/parse-big-int.js.map +1 -1
  317. package/out/shared/src/promise-race.js +20 -0
  318. package/out/shared/src/promise-race.js.map +1 -0
  319. package/out/shared/src/queue.js +119 -122
  320. package/out/shared/src/queue.js.map +1 -1
  321. package/out/shared/src/rand.js +8 -10
  322. package/out/shared/src/rand.js.map +1 -1
  323. package/out/shared/src/random-uint64.js +9 -0
  324. package/out/shared/src/random-uint64.js.map +1 -0
  325. package/out/shared/src/random-values.js +13 -0
  326. package/out/shared/src/random-values.js.map +1 -0
  327. package/out/shared/src/record-proxy.d.ts +13 -0
  328. package/out/shared/src/record-proxy.d.ts.map +1 -0
  329. package/out/shared/src/record-proxy.js +59 -0
  330. package/out/shared/src/record-proxy.js.map +1 -0
  331. package/out/shared/src/resolved-promises.js +12 -9
  332. package/out/shared/src/resolved-promises.js.map +1 -1
  333. package/out/shared/src/sentinels.js +13 -6
  334. package/out/shared/src/sentinels.js.map +1 -1
  335. package/out/shared/src/set-utils.js +63 -62
  336. package/out/shared/src/set-utils.js.map +1 -1
  337. package/out/shared/src/size-of-value.js +58 -0
  338. package/out/shared/src/size-of-value.js.map +1 -0
  339. package/out/shared/src/sleep.js +45 -53
  340. package/out/shared/src/sleep.js.map +1 -1
  341. package/out/shared/src/string-compare.js +12 -9
  342. package/out/shared/src/string-compare.js.map +1 -1
  343. package/out/shared/src/subscribable.js +34 -0
  344. package/out/shared/src/subscribable.js.map +1 -0
  345. package/out/shared/src/tdigest-schema.js +7 -7
  346. package/out/shared/src/tdigest-schema.js.map +1 -1
  347. package/out/shared/src/tdigest.js +247 -271
  348. package/out/shared/src/tdigest.js.map +1 -1
  349. package/out/shared/src/valita.js +195 -207
  350. package/out/shared/src/valita.js.map +1 -1
  351. package/out/z2s/src/compiler.d.ts +2 -2
  352. package/out/z2s/src/compiler.d.ts.map +1 -1
  353. package/out/z2s/src/compiler.js +439 -310
  354. package/out/z2s/src/compiler.js.map +1 -1
  355. package/out/z2s/src/sql.d.ts +1 -1
  356. package/out/z2s/src/sql.d.ts.map +1 -1
  357. package/out/z2s/src/sql.js +186 -218
  358. package/out/z2s/src/sql.js.map +1 -1
  359. package/out/zero/package.json.js +9 -0
  360. package/out/zero/package.json.js.map +1 -0
  361. package/out/zero/src/adapters/drizzle.d.ts +1 -1
  362. package/out/zero/src/adapters/drizzle.d.ts.map +1 -1
  363. package/out/zero/src/adapters/drizzle.js +8 -2
  364. package/out/zero/src/adapters/drizzle.js.map +1 -1
  365. package/out/zero/src/adapters/pg.js +7 -2
  366. package/out/zero/src/adapters/pg.js.map +1 -1
  367. package/out/zero/src/adapters/postgresjs.js +7 -2
  368. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  369. package/out/zero/src/analyze-query.js +1 -1
  370. package/out/zero/src/analyze-query.js.map +1 -1
  371. package/out/zero/src/ast-to-zql.js +1 -1
  372. package/out/zero/src/ast-to-zql.js.map +1 -1
  373. package/out/zero/src/bindings.d.ts +2 -0
  374. package/out/zero/src/bindings.d.ts.map +1 -0
  375. package/out/zero/src/bindings.js +27 -0
  376. package/out/zero/src/bindings.js.map +1 -0
  377. package/out/zero/src/build-schema.js +3 -5
  378. package/out/zero/src/build-schema.js.map +1 -1
  379. package/out/zero/src/change-protocol/v0.js +5 -3
  380. package/out/zero/src/change-protocol/v0.js.map +1 -1
  381. package/out/zero/src/cli.js +2 -2
  382. package/out/zero/src/cli.js.map +1 -1
  383. package/out/zero/src/deploy-permissions.js +1 -1
  384. package/out/zero/src/deploy-permissions.js.map +1 -1
  385. package/out/zero/src/expo-sqlite.js +5 -0
  386. package/out/zero/src/expo-sqlite.js.map +1 -0
  387. package/out/zero/src/op-sqlite.js +5 -0
  388. package/out/zero/src/op-sqlite.js.map +1 -0
  389. package/out/zero/src/pg.js +31 -3
  390. package/out/zero/src/pg.js.map +1 -1
  391. package/out/zero/src/react-native.js +13 -0
  392. package/out/zero/src/react-native.js.map +1 -0
  393. package/out/zero/src/react.js +15 -0
  394. package/out/zero/src/react.js.map +1 -0
  395. package/out/zero/src/server.js +27 -3
  396. package/out/zero/src/server.js.map +1 -1
  397. package/out/zero/src/solid.js +15 -0
  398. package/out/zero/src/solid.js.map +1 -0
  399. package/out/zero/src/sqlite.js +7 -0
  400. package/out/zero/src/sqlite.js.map +1 -0
  401. package/out/zero/src/transform-query.js +1 -1
  402. package/out/zero/src/transform-query.js.map +1 -1
  403. package/out/zero/src/zero-cache-dev.js +138 -104
  404. package/out/zero/src/zero-cache-dev.js.map +1 -1
  405. package/out/zero/src/zero-out.js +6 -6
  406. package/out/zero/src/zero-out.js.map +1 -1
  407. package/out/zero/src/zero.js +71 -0
  408. package/out/zero/src/zero.js.map +1 -0
  409. package/out/zero/src/zqlite.js +11 -3
  410. package/out/zero/src/zqlite.js.map +1 -1
  411. package/out/zero-cache/src/auth/jwt.d.ts +3 -0
  412. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
  413. package/out/zero-cache/src/auth/jwt.js +33 -38
  414. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  415. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  416. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  417. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  418. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  419. package/out/zero-cache/src/auth/read-authorizer.d.ts +1 -1
  420. package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
  421. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  422. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  423. package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
  424. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  425. package/out/zero-cache/src/auth/write-authorizer.js +395 -328
  426. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  427. package/out/zero-cache/src/config/network.js +42 -45
  428. package/out/zero-cache/src/config/network.js.map +1 -1
  429. package/out/zero-cache/src/config/normalize.js +86 -83
  430. package/out/zero-cache/src/config/normalize.js.map +1 -1
  431. package/out/zero-cache/src/config/zero-config.d.ts +63 -0
  432. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  433. package/out/zero-cache/src/config/zero-config.js +743 -682
  434. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  435. package/out/zero-cache/src/custom/fetch.d.ts +5 -5
  436. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  437. package/out/zero-cache/src/custom/fetch.js +170 -162
  438. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  439. package/out/zero-cache/src/custom-queries/transform-query.d.ts +10 -3
  440. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  441. package/out/zero-cache/src/custom-queries/transform-query.js +101 -109
  442. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  443. package/out/zero-cache/src/db/create.js +32 -36
  444. package/out/zero-cache/src/db/create.js.map +1 -1
  445. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  446. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  447. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  448. package/out/zero-cache/src/db/lite-tables.js +150 -174
  449. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  450. package/out/zero-cache/src/db/migration-lite.js +170 -165
  451. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  452. package/out/zero-cache/src/db/migration.js +157 -137
  453. package/out/zero-cache/src/db/migration.js.map +1 -1
  454. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  455. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  456. package/out/zero-cache/src/db/mode-enum.js +9 -3
  457. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  458. package/out/zero-cache/src/db/pg-copy.js +51 -90
  459. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  460. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  461. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  462. package/out/zero-cache/src/db/pg-to-lite.js +116 -97
  463. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  464. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  465. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  466. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  467. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  468. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  469. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  470. package/out/zero-cache/src/db/specs.d.ts +1 -7
  471. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  472. package/out/zero-cache/src/db/specs.js +66 -40
  473. package/out/zero-cache/src/db/specs.js.map +1 -1
  474. package/out/zero-cache/src/db/statements.d.ts +1 -1
  475. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  476. package/out/zero-cache/src/db/statements.js +59 -52
  477. package/out/zero-cache/src/db/statements.js.map +1 -1
  478. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  479. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  480. package/out/zero-cache/src/db/transaction-pool.js +372 -501
  481. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  482. package/out/zero-cache/src/db/warmup.js +25 -12
  483. package/out/zero-cache/src/db/warmup.js.map +1 -1
  484. package/out/zero-cache/src/observability/events.js +71 -82
  485. package/out/zero-cache/src/observability/events.js.map +1 -1
  486. package/out/zero-cache/src/observability/metrics.js +54 -32
  487. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  488. package/out/zero-cache/src/scripts/decommission.js +47 -43
  489. package/out/zero-cache/src/scripts/decommission.js.map +1 -1
  490. package/out/zero-cache/src/scripts/deploy-permissions.js +132 -119
  491. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  492. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  493. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  494. package/out/zero-cache/src/scripts/permissions.js +106 -100
  495. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  496. package/out/zero-cache/src/server/anonymous-otel-start.d.ts +10 -1
  497. package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +1 -1
  498. package/out/zero-cache/src/server/anonymous-otel-start.js +426 -366
  499. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  500. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  501. package/out/zero-cache/src/server/change-streamer.js +99 -64
  502. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  503. package/out/zero-cache/src/server/inspector-delegate.js +112 -109
  504. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  505. package/out/zero-cache/src/server/logging.d.ts +1 -1
  506. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  507. package/out/zero-cache/src/server/logging.js +26 -19
  508. package/out/zero-cache/src/server/logging.js.map +1 -1
  509. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  510. package/out/zero-cache/src/server/main.js +137 -120
  511. package/out/zero-cache/src/server/main.js.map +1 -1
  512. package/out/zero-cache/src/server/mutator.js +19 -0
  513. package/out/zero-cache/src/server/mutator.js.map +1 -0
  514. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  515. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  516. package/out/zero-cache/src/server/otel-diag-logger.js +48 -71
  517. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  518. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  519. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  520. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  521. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  522. package/out/zero-cache/src/server/otel-start.js +53 -68
  523. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  524. package/out/zero-cache/src/server/reaper.js +34 -26
  525. package/out/zero-cache/src/server/reaper.js.map +1 -1
  526. package/out/zero-cache/src/server/replicator.js +53 -31
  527. package/out/zero-cache/src/server/replicator.js.map +1 -1
  528. package/out/zero-cache/src/server/runner/main.js +6 -4
  529. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  530. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  531. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  532. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  533. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  534. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  535. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  536. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  537. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  538. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  539. package/out/zero-cache/src/server/syncer.js +130 -63
  540. package/out/zero-cache/src/server/syncer.js.map +1 -1
  541. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  542. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  543. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  544. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  545. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  546. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  547. package/out/zero-cache/src/server/worker-urls.js +21 -0
  548. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  549. package/out/zero-cache/src/services/analyze.d.ts +4 -9
  550. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  551. package/out/zero-cache/src/services/analyze.js +118 -121
  552. package/out/zero-cache/src/services/analyze.js.map +1 -1
  553. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  554. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  555. package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
  556. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  557. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  558. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  559. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  560. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  561. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  562. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  563. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  564. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  565. package/out/zero-cache/src/services/change-source/pg/change-source.js +622 -623
  566. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  567. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  568. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  569. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  570. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  571. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  572. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  573. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  574. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  575. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  576. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  577. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  578. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  579. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  580. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  581. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  582. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  583. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
  584. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  585. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  586. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  587. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  588. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
  589. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
  590. package/out/zero-cache/src/services/change-source/pg/schema/published.js +70 -76
  591. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  592. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  593. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  594. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  595. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  596. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  597. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  598. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  599. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
  600. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
  601. package/out/zero-cache/src/services/change-source/protocol/current/control.js +13 -19
  602. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  603. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  604. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  605. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
  606. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  607. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  608. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  609. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts +8 -0
  610. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts.map +1 -0
  611. package/out/zero-cache/src/services/change-source/protocol/current/json.js +19 -0
  612. package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
  613. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  614. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  615. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  616. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  617. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  618. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  619. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  620. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  621. package/out/zero-cache/src/services/change-source/protocol/current.d.ts +1 -0
  622. package/out/zero-cache/src/services/change-source/protocol/current.d.ts.map +1 -1
  623. package/out/zero-cache/src/services/change-source/protocol/current.js +38 -7
  624. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  625. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  626. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  627. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  628. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  629. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  630. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  631. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  632. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -4
  633. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  634. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +208 -157
  635. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  636. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  637. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  638. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +242 -349
  639. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  640. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
  641. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  642. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  643. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  644. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  645. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  646. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  647. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  648. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  649. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  650. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  651. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  652. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  653. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  654. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  655. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  656. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  657. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  658. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  659. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  660. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  661. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  662. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  663. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  664. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  665. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  666. package/out/zero-cache/src/services/change-streamer/storer.js +308 -353
  667. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  668. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  669. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  670. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  671. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  672. package/out/zero-cache/src/services/heapz.js +21 -25
  673. package/out/zero-cache/src/services/heapz.js.map +1 -1
  674. package/out/zero-cache/src/services/http-service.d.ts +5 -5
  675. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  676. package/out/zero-cache/src/services/http-service.js +57 -59
  677. package/out/zero-cache/src/services/http-service.js.map +1 -1
  678. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  679. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  680. package/out/zero-cache/src/services/life-cycle.js +216 -255
  681. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  682. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  683. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  684. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  685. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  686. package/out/zero-cache/src/services/litestream/commands.js +202 -154
  687. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  688. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  689. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  690. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  691. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  692. package/out/zero-cache/src/services/mutagen/mutagen.js +271 -267
  693. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  694. package/out/zero-cache/src/services/mutagen/pusher.d.ts +202 -2
  695. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  696. package/out/zero-cache/src/services/mutagen/pusher.js +354 -348
  697. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  698. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  699. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  700. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  701. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  702. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  703. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  704. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  705. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  706. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  707. package/out/zero-cache/src/services/replicator/replication-status.d.ts +2 -0
  708. package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
  709. package/out/zero-cache/src/services/replicator/replication-status.js +113 -83
  710. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  711. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  712. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  713. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  714. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  715. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  716. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  717. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  718. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  719. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  720. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  721. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  722. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  723. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  724. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  725. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  726. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  727. package/out/zero-cache/src/services/run-ast.js +91 -78
  728. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  729. package/out/zero-cache/src/services/runner.d.ts +1 -1
  730. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  731. package/out/zero-cache/src/services/runner.js +40 -40
  732. package/out/zero-cache/src/services/runner.js.map +1 -1
  733. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  734. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  735. package/out/zero-cache/src/services/running-state.js +122 -119
  736. package/out/zero-cache/src/services/running-state.js.map +1 -1
  737. package/out/zero-cache/src/services/statz.js +184 -162
  738. package/out/zero-cache/src/services/statz.js.map +1 -1
  739. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +2 -1
  740. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +56 -42
  742. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  743. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
  744. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  745. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  746. package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
  747. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  748. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +1 -1
  749. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  750. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +110 -96
  751. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  752. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -5
  753. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  754. package/out/zero-cache/src/services/view-syncer/cvr-store.js +676 -611
  755. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  756. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +4 -1
  757. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  758. package/out/zero-cache/src/services/view-syncer/cvr.js +643 -694
  759. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  760. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -60
  761. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  762. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  763. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  764. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  765. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  766. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +23 -22
  767. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  768. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +584 -461
  769. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  770. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  771. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  772. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  773. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +1 -0
  775. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  776. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +79 -131
  777. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  778. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  779. package/out/zero-cache/src/services/view-syncer/schema/init.js +207 -131
  780. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  781. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  782. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  783. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  784. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +5 -5
  785. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  786. package/out/zero-cache/src/services/view-syncer/snapshotter.js +309 -337
  787. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  788. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  789. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  790. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +5 -4
  791. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  792. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1514 -1311
  793. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  794. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  795. package/out/zero-cache/src/types/error-with-level.js +30 -21
  796. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  797. package/out/zero-cache/src/types/http.js +27 -14
  798. package/out/zero-cache/src/types/http.js.map +1 -1
  799. package/out/zero-cache/src/types/lexi-version.js +46 -31
  800. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  801. package/out/zero-cache/src/types/lite.js +118 -125
  802. package/out/zero-cache/src/types/lite.js.map +1 -1
  803. package/out/zero-cache/src/types/names.js +6 -3
  804. package/out/zero-cache/src/types/names.js.map +1 -1
  805. package/out/zero-cache/src/types/pg-data-type.js +74 -68
  806. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  807. package/out/zero-cache/src/types/pg-types.js +17 -72
  808. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  809. package/out/zero-cache/src/types/pg.d.ts +1 -1
  810. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  811. package/out/zero-cache/src/types/pg.js +213 -233
  812. package/out/zero-cache/src/types/pg.js.map +1 -1
  813. package/out/zero-cache/src/types/processes.d.ts +2 -2
  814. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  815. package/out/zero-cache/src/types/processes.js +95 -143
  816. package/out/zero-cache/src/types/processes.js.map +1 -1
  817. package/out/zero-cache/src/types/profiler.js +29 -30
  818. package/out/zero-cache/src/types/profiler.js.map +1 -1
  819. package/out/zero-cache/src/types/row-key.js +30 -68
  820. package/out/zero-cache/src/types/row-key.js.map +1 -1
  821. package/out/zero-cache/src/types/schema-versions.js +25 -19
  822. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  823. package/out/zero-cache/src/types/shards.js +50 -36
  824. package/out/zero-cache/src/types/shards.js.map +1 -1
  825. package/out/zero-cache/src/types/sql.js +9 -13
  826. package/out/zero-cache/src/types/sql.js.map +1 -1
  827. package/out/zero-cache/src/types/streams.js +245 -254
  828. package/out/zero-cache/src/types/streams.js.map +1 -1
  829. package/out/zero-cache/src/types/strings.js +14 -11
  830. package/out/zero-cache/src/types/strings.js.map +1 -1
  831. package/out/zero-cache/src/types/subscription.js +200 -259
  832. package/out/zero-cache/src/types/subscription.js.map +1 -1
  833. package/out/zero-cache/src/types/url-params.js +35 -30
  834. package/out/zero-cache/src/types/url-params.js.map +1 -1
  835. package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
  836. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  837. package/out/zero-cache/src/types/websocket-handoff.js +68 -76
  838. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  839. package/out/zero-cache/src/types/ws.js +56 -59
  840. package/out/zero-cache/src/types/ws.js.map +1 -1
  841. package/out/zero-cache/src/workers/connect-params.d.ts +1 -0
  842. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
  843. package/out/zero-cache/src/workers/connect-params.js +46 -40
  844. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  845. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  846. package/out/zero-cache/src/workers/connection.js +282 -243
  847. package/out/zero-cache/src/workers/connection.js.map +1 -1
  848. package/out/zero-cache/src/workers/mutator.js +24 -0
  849. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  850. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  851. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  852. package/out/zero-cache/src/workers/replicator.js +103 -106
  853. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  854. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  855. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +181 -147
  856. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  857. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  858. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  859. package/out/zero-cache/src/workers/syncer.js +192 -169
  860. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  861. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  862. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  863. package/out/zero-client/src/client/bindings.d.ts +13 -0
  864. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  865. package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
  866. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  867. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  868. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  869. package/out/zero-client/src/client/connection-manager.d.ts +20 -40
  870. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  871. package/out/zero-client/src/client/connection-manager.js +310 -0
  872. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  873. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  874. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  875. package/out/zero-client/src/client/connection.d.ts +48 -5
  876. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  877. package/out/zero-client/src/client/connection.js +110 -0
  878. package/out/zero-client/src/client/connection.js.map +1 -0
  879. package/out/zero-client/src/client/context.d.ts +9 -10
  880. package/out/zero-client/src/client/context.d.ts.map +1 -1
  881. package/out/zero-client/src/client/context.js +104 -0
  882. package/out/zero-client/src/client/context.js.map +1 -0
  883. package/out/zero-client/src/client/crud-impl.d.ts +11 -0
  884. package/out/zero-client/src/client/crud-impl.d.ts.map +1 -0
  885. package/out/zero-client/src/client/crud-impl.js +102 -0
  886. package/out/zero-client/src/client/crud-impl.js.map +1 -0
  887. package/out/zero-client/src/client/crud.d.ts +17 -47
  888. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  889. package/out/zero-client/src/client/crud.js +143 -0
  890. package/out/zero-client/src/client/crud.js.map +1 -0
  891. package/out/zero-client/src/client/custom.d.ts +52 -25
  892. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  893. package/out/zero-client/src/client/custom.js +87 -0
  894. package/out/zero-client/src/client/custom.js.map +1 -0
  895. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  896. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  897. package/out/zero-client/src/client/delete-clients-manager.js +98 -0
  898. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  899. package/out/zero-client/src/client/enable-analytics.js +18 -0
  900. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  901. package/out/zero-client/src/client/error.d.ts +30 -12
  902. package/out/zero-client/src/client/error.d.ts.map +1 -1
  903. package/out/zero-client/src/client/error.js +148 -0
  904. package/out/zero-client/src/client/error.js.map +1 -0
  905. package/out/zero-client/src/client/http-string.js +11 -0
  906. package/out/zero-client/src/client/http-string.js.map +1 -0
  907. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  908. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  909. package/out/zero-client/src/client/inspector/client.js +28 -0
  910. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  911. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  912. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  913. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  914. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  915. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  916. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  917. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  918. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  919. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  920. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  921. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  922. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  923. package/out/zero-client/src/client/inspector/query.js +82 -0
  924. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  925. package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
  926. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  927. package/out/zero-client/src/client/ivm-branch.js +156 -0
  928. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  929. package/out/zero-client/src/client/keys.js +45 -0
  930. package/out/zero-client/src/client/keys.js.map +1 -0
  931. package/out/zero-client/src/client/log-options.js +60 -0
  932. package/out/zero-client/src/client/log-options.js.map +1 -0
  933. package/out/zero-client/src/client/make-mutate-property.d.ts +40 -0
  934. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  935. package/out/zero-client/src/client/make-mutate-property.js +33 -0
  936. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  937. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  938. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  939. package/out/zero-client/src/client/make-replicache-mutators.js +108 -0
  940. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  941. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  942. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  943. package/out/zero-client/src/client/metrics.d.ts +2 -2
  944. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  945. package/out/zero-client/src/client/metrics.js +249 -0
  946. package/out/zero-client/src/client/metrics.js.map +1 -0
  947. package/out/zero-client/src/client/mutation-tracker.d.ts +12 -4
  948. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  949. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  950. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  951. package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
  952. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  953. package/out/zero-client/src/client/mutator-proxy.js +143 -0
  954. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  955. package/out/zero-client/src/client/options.d.ts +70 -10
  956. package/out/zero-client/src/client/options.d.ts.map +1 -1
  957. package/out/zero-client/src/client/options.js +11 -0
  958. package/out/zero-client/src/client/options.js.map +1 -0
  959. package/out/zero-client/src/client/query-manager.d.ts +9 -2
  960. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  961. package/out/zero-client/src/client/query-manager.js +377 -0
  962. package/out/zero-client/src/client/query-manager.js.map +1 -0
  963. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  964. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  965. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  966. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  967. package/out/zero-client/src/client/server-option.js +64 -0
  968. package/out/zero-client/src/client/server-option.js.map +1 -0
  969. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  970. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  971. package/out/zero-client/src/client/version.js +5 -0
  972. package/out/zero-client/src/client/version.js.map +1 -0
  973. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  974. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  975. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  976. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  977. package/out/zero-client/src/client/zero-rep.d.ts +3 -2
  978. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  979. package/out/zero-client/src/client/zero-rep.js +72 -0
  980. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  981. package/out/zero-client/src/client/zero.d.ts +119 -28
  982. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  983. package/out/zero-client/src/client/zero.js +1800 -0
  984. package/out/zero-client/src/client/zero.js.map +1 -0
  985. package/out/zero-client/src/mod.d.ts +23 -20
  986. package/out/zero-client/src/mod.d.ts.map +1 -1
  987. package/out/zero-client/src/types/query-result.d.ts +5 -4
  988. package/out/zero-client/src/types/query-result.d.ts.map +1 -1
  989. package/out/zero-client/src/util/nanoid.js +21 -0
  990. package/out/zero-client/src/util/nanoid.js.map +1 -0
  991. package/out/zero-client/src/util/socket.js +7 -0
  992. package/out/zero-client/src/util/socket.js.map +1 -0
  993. package/out/zero-events/src/status.d.ts +1 -1
  994. package/out/zero-events/src/status.d.ts.map +1 -1
  995. package/out/zero-protocol/src/analyze-query-result.d.ts +238 -1
  996. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  997. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  998. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  999. package/out/zero-protocol/src/application-error.d.ts +2 -8
  1000. package/out/zero-protocol/src/application-error.d.ts.map +1 -1
  1001. package/out/zero-protocol/src/application-error.js +35 -34
  1002. package/out/zero-protocol/src/application-error.js.map +1 -1
  1003. package/out/zero-protocol/src/ast.d.ts +2 -2
  1004. package/out/zero-protocol/src/ast.js +296 -277
  1005. package/out/zero-protocol/src/ast.js.map +1 -1
  1006. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  1007. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  1008. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  1009. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  1010. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  1011. package/out/zero-protocol/src/client-schema.js +40 -26
  1012. package/out/zero-protocol/src/client-schema.js.map +1 -1
  1013. package/out/zero-protocol/src/close-connection.js +11 -18
  1014. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1015. package/out/zero-protocol/src/connect.d.ts +4 -4
  1016. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1017. package/out/zero-protocol/src/connect.js +50 -51
  1018. package/out/zero-protocol/src/connect.js.map +1 -1
  1019. package/out/zero-protocol/src/custom-queries.d.ts +4 -4
  1020. package/out/zero-protocol/src/custom-queries.js +61 -39
  1021. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1022. package/out/zero-protocol/src/data.js +9 -4
  1023. package/out/zero-protocol/src/data.js.map +1 -1
  1024. package/out/zero-protocol/src/delete-clients.js +16 -9
  1025. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1026. package/out/zero-protocol/src/down.d.ts +107 -7
  1027. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1028. package/out/zero-protocol/src/down.js +20 -4
  1029. package/out/zero-protocol/src/down.js.map +1 -1
  1030. package/out/zero-protocol/src/error-kind-enum.js +41 -23
  1031. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1032. package/out/zero-protocol/src/error-origin-enum.js +9 -4
  1033. package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
  1034. package/out/zero-protocol/src/error-reason-enum.js +17 -8
  1035. package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
  1036. package/out/zero-protocol/src/error.d.ts +17 -17
  1037. package/out/zero-protocol/src/error.js +151 -89
  1038. package/out/zero-protocol/src/error.js.map +1 -1
  1039. package/out/zero-protocol/src/inspect-down.d.ts +321 -21
  1040. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1041. package/out/zero-protocol/src/inspect-down.js +72 -54
  1042. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1043. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1044. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1045. package/out/zero-protocol/src/inspect-up.js +39 -26
  1046. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1047. package/out/zero-protocol/src/mutation-id.js +9 -5
  1048. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  1049. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1050. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1051. package/out/zero-protocol/src/mutations-patch.js +16 -17
  1052. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1053. package/out/zero-protocol/src/ping.js +9 -4
  1054. package/out/zero-protocol/src/ping.js.map +1 -1
  1055. package/out/zero-protocol/src/poke.js +55 -72
  1056. package/out/zero-protocol/src/poke.js.map +1 -1
  1057. package/out/zero-protocol/src/pong.js +9 -4
  1058. package/out/zero-protocol/src/pong.js.map +1 -1
  1059. package/out/zero-protocol/src/primary-key.js +19 -5
  1060. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1061. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1062. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1063. package/out/zero-protocol/src/protocol-version.js +7 -58
  1064. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1065. package/out/zero-protocol/src/pull.js +26 -19
  1066. package/out/zero-protocol/src/pull.js.map +1 -1
  1067. package/out/zero-protocol/src/push.d.ts +4 -4
  1068. package/out/zero-protocol/src/push.js +179 -176
  1069. package/out/zero-protocol/src/push.js.map +1 -1
  1070. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1071. package/out/zero-protocol/src/queries-patch.js +29 -22
  1072. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1073. package/out/zero-protocol/src/query-hash.js +18 -14
  1074. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1075. package/out/zero-protocol/src/row-patch.js +29 -20
  1076. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1077. package/out/zero-protocol/src/up.d.ts +6 -5
  1078. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1079. package/out/zero-protocol/src/up.js +18 -4
  1080. package/out/zero-protocol/src/up.js.map +1 -1
  1081. package/out/zero-protocol/src/version.js +9 -4
  1082. package/out/zero-protocol/src/version.js.map +1 -1
  1083. package/out/zero-react/src/bindings.d.ts +2 -0
  1084. package/out/zero-react/src/bindings.d.ts.map +1 -0
  1085. package/out/zero-react/src/mod.d.ts +2 -13
  1086. package/out/zero-react/src/mod.d.ts.map +1 -1
  1087. package/out/zero-react/src/use-connection-state.d.ts +9 -0
  1088. package/out/zero-react/src/use-connection-state.d.ts.map +1 -0
  1089. package/out/zero-react/src/use-connection-state.js +14 -0
  1090. package/out/zero-react/src/use-connection-state.js.map +1 -0
  1091. package/out/zero-react/src/use-query.d.ts +5 -9
  1092. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1093. package/out/zero-react/src/use-query.js +289 -0
  1094. package/out/zero-react/src/use-query.js.map +1 -0
  1095. package/out/zero-react/src/use-zero-online.d.ts +1 -1
  1096. package/out/zero-react/src/use-zero-online.js +14 -0
  1097. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1098. package/out/zero-react/src/zero-provider.d.ts +19 -10
  1099. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1100. package/out/zero-react/src/zero-provider.js +77 -0
  1101. package/out/zero-react/src/zero-provider.js.map +1 -0
  1102. package/out/zero-react/src/zero.d.ts +2 -0
  1103. package/out/zero-react/src/zero.d.ts.map +1 -0
  1104. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1105. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1106. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1107. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1108. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1109. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1110. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1111. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1112. package/out/zero-schema/src/compiled-permissions.d.ts +22 -2
  1113. package/out/zero-schema/src/compiled-permissions.d.ts.map +1 -1
  1114. package/out/zero-schema/src/compiled-permissions.js +24 -19
  1115. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1116. package/out/zero-schema/src/name-mapper.js +43 -38
  1117. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1118. package/out/zero-schema/src/permissions.d.ts +12 -9
  1119. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1120. package/out/zero-schema/src/permissions.js +193 -0
  1121. package/out/zero-schema/src/permissions.js.map +1 -0
  1122. package/out/zero-schema/src/schema-config.d.ts +1 -6
  1123. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1124. package/out/zero-schema/src/schema-config.js +35 -51
  1125. package/out/zero-schema/src/schema-config.js.map +1 -1
  1126. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1127. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1128. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1129. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1130. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1131. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1132. package/out/zero-server/src/adapters/pg.js +54 -74
  1133. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1134. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1135. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1136. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1137. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1138. package/out/zero-server/src/custom.d.ts +48 -19
  1139. package/out/zero-server/src/custom.d.ts.map +1 -1
  1140. package/out/zero-server/src/custom.js +278 -106
  1141. package/out/zero-server/src/custom.js.map +1 -1
  1142. package/out/zero-server/src/logging.js +7 -4
  1143. package/out/zero-server/src/logging.js.map +1 -1
  1144. package/out/zero-server/src/mod.d.ts +1 -1
  1145. package/out/zero-server/src/mod.d.ts.map +1 -1
  1146. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1147. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1148. package/out/zero-server/src/pg-query-executor.js +20 -0
  1149. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1150. package/out/zero-server/src/process-mutations.d.ts +13 -13
  1151. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1152. package/out/zero-server/src/process-mutations.js +328 -272
  1153. package/out/zero-server/src/process-mutations.js.map +1 -1
  1154. package/out/zero-server/src/push-processor.d.ts +5 -3
  1155. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1156. package/out/zero-server/src/push-processor.js +50 -32
  1157. package/out/zero-server/src/push-processor.js.map +1 -1
  1158. package/out/zero-server/src/queries/process-queries.d.ts +76 -3
  1159. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1160. package/out/zero-server/src/queries/process-queries.js +104 -93
  1161. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1162. package/out/zero-server/src/schema.d.ts +2 -2
  1163. package/out/zero-server/src/schema.d.ts.map +1 -1
  1164. package/out/zero-server/src/schema.js +136 -124
  1165. package/out/zero-server/src/schema.js.map +1 -1
  1166. package/out/zero-server/src/zql-database.d.ts +9 -6
  1167. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1168. package/out/zero-server/src/zql-database.js +56 -51
  1169. package/out/zero-server/src/zql-database.js.map +1 -1
  1170. package/out/zero-solid/src/bindings.d.ts +2 -0
  1171. package/out/zero-solid/src/bindings.d.ts.map +1 -0
  1172. package/out/zero-solid/src/mod.d.ts +1 -9
  1173. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1174. package/out/zero-solid/src/solid-view.d.ts +3 -5
  1175. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1176. package/out/{solid.js → zero-solid/src/solid-view.js} +47 -196
  1177. package/out/zero-solid/src/solid-view.js.map +1 -0
  1178. package/out/zero-solid/src/{use-zero-connection-state.d.ts → use-connection-state.d.ts} +3 -3
  1179. package/out/zero-solid/src/use-connection-state.d.ts.map +1 -0
  1180. package/out/zero-solid/src/use-connection-state.js +17 -0
  1181. package/out/zero-solid/src/use-connection-state.js.map +1 -0
  1182. package/out/zero-solid/src/use-query.d.ts +4 -7
  1183. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1184. package/out/zero-solid/src/use-query.js +92 -0
  1185. package/out/zero-solid/src/use-query.js.map +1 -0
  1186. package/out/zero-solid/src/use-zero-online.d.ts +1 -1
  1187. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1188. package/out/zero-solid/src/use-zero-online.js +15 -0
  1189. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1190. package/out/zero-solid/src/use-zero.d.ts +22 -11
  1191. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1192. package/out/zero-solid/src/use-zero.js +86 -0
  1193. package/out/zero-solid/src/use-zero.js.map +1 -0
  1194. package/out/zero-solid/src/zero.d.ts +2 -0
  1195. package/out/zero-solid/src/zero.d.ts.map +1 -0
  1196. package/out/zero-types/src/default-types.d.ts +38 -0
  1197. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1198. package/out/zero-types/src/format.js +7 -4
  1199. package/out/zero-types/src/format.js.map +1 -1
  1200. package/out/zero-types/src/name-mapper.js +43 -40
  1201. package/out/zero-types/src/name-mapper.js.map +1 -1
  1202. package/out/zero-types/src/schema.d.ts +4 -4
  1203. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1204. package/out/zql/src/builder/builder.d.ts +10 -2
  1205. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1206. package/out/zql/src/builder/builder.js +474 -427
  1207. package/out/zql/src/builder/builder.js.map +1 -1
  1208. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1209. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1210. package/out/zql/src/builder/debug-delegate.js +68 -47
  1211. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1212. package/out/zql/src/builder/filter.js +132 -138
  1213. package/out/zql/src/builder/filter.js.map +1 -1
  1214. package/out/zql/src/builder/like.js +44 -51
  1215. package/out/zql/src/builder/like.js.map +1 -1
  1216. package/out/zql/src/error.d.ts +5 -0
  1217. package/out/zql/src/error.d.ts.map +1 -1
  1218. package/out/zql/src/error.js +9 -6
  1219. package/out/zql/src/error.js.map +1 -1
  1220. package/out/zql/src/ivm/array-view.d.ts +2 -2
  1221. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  1222. package/out/zql/src/ivm/array-view.js +89 -92
  1223. package/out/zql/src/ivm/array-view.js.map +1 -1
  1224. package/out/zql/src/ivm/constraint.js +74 -127
  1225. package/out/zql/src/ivm/constraint.js.map +1 -1
  1226. package/out/zql/src/ivm/data.d.ts +7 -2
  1227. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1228. package/out/zql/src/ivm/data.js +53 -87
  1229. package/out/zql/src/ivm/data.js.map +1 -1
  1230. package/out/zql/src/ivm/exists.d.ts +6 -4
  1231. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  1232. package/out/zql/src/ivm/exists.js +206 -244
  1233. package/out/zql/src/ivm/exists.js.map +1 -1
  1234. package/out/zql/src/ivm/fan-in.d.ts +5 -3
  1235. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  1236. package/out/zql/src/ivm/fan-in.js +58 -52
  1237. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1238. package/out/zql/src/ivm/fan-out.d.ts +4 -2
  1239. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  1240. package/out/zql/src/ivm/fan-out.js +56 -48
  1241. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1242. package/out/zql/src/ivm/filter-operators.d.ts +13 -11
  1243. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  1244. package/out/zql/src/ivm/filter-operators.js +91 -88
  1245. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1246. package/out/zql/src/ivm/filter-push.d.ts +2 -1
  1247. package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
  1248. package/out/zql/src/ivm/filter-push.js +27 -24
  1249. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1250. package/out/zql/src/ivm/filter.d.ts +4 -2
  1251. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  1252. package/out/zql/src/ivm/filter.js +36 -32
  1253. package/out/zql/src/ivm/filter.js.map +1 -1
  1254. package/out/zql/src/ivm/flipped-join.d.ts +1 -2
  1255. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  1256. package/out/zql/src/ivm/flipped-join.js +372 -325
  1257. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1258. package/out/zql/src/ivm/join-utils.d.ts +9 -2
  1259. package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
  1260. package/out/zql/src/ivm/join-utils.js +104 -78
  1261. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1262. package/out/zql/src/ivm/join.d.ts +3 -16
  1263. package/out/zql/src/ivm/join.d.ts.map +1 -1
  1264. package/out/zql/src/ivm/join.js +225 -211
  1265. package/out/zql/src/ivm/join.js.map +1 -1
  1266. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
  1267. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
  1268. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1269. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1270. package/out/zql/src/ivm/memory-source.d.ts +9 -8
  1271. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1272. package/out/zql/src/ivm/memory-source.js +484 -491
  1273. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1274. package/out/zql/src/ivm/memory-storage.js +32 -31
  1275. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1276. package/out/zql/src/ivm/operator.d.ts +15 -12
  1277. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  1278. package/out/zql/src/ivm/operator.js +16 -9
  1279. package/out/zql/src/ivm/operator.js.map +1 -1
  1280. package/out/zql/src/ivm/push-accumulated.d.ts +2 -2
  1281. package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -1
  1282. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1283. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1284. package/out/zql/src/ivm/skip.d.ts +2 -3
  1285. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  1286. package/out/zql/src/ivm/skip.js +95 -106
  1287. package/out/zql/src/ivm/skip.js.map +1 -1
  1288. package/out/zql/src/ivm/source.d.ts +18 -8
  1289. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1290. package/out/zql/src/ivm/stream.d.ts +2 -0
  1291. package/out/zql/src/ivm/stream.d.ts.map +1 -1
  1292. package/out/zql/src/ivm/stream.js +12 -17
  1293. package/out/zql/src/ivm/stream.js.map +1 -1
  1294. package/out/zql/src/ivm/take.d.ts +2 -3
  1295. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1296. package/out/zql/src/ivm/take.js +525 -451
  1297. package/out/zql/src/ivm/take.js.map +1 -1
  1298. package/out/zql/src/ivm/union-fan-in.d.ts +4 -4
  1299. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  1300. package/out/zql/src/ivm/union-fan-in.js +213 -132
  1301. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1302. package/out/zql/src/ivm/union-fan-out.d.ts +2 -3
  1303. package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
  1304. package/out/zql/src/ivm/union-fan-out.js +43 -45
  1305. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1306. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  1307. package/out/zql/src/ivm/view-apply-change.js +247 -217
  1308. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1309. package/out/zql/src/ivm/view.d.ts +3 -2
  1310. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1311. package/out/zql/src/mutate/crud.d.ts +116 -0
  1312. package/out/zql/src/mutate/crud.d.ts.map +1 -0
  1313. package/out/zql/src/mutate/crud.js +41 -0
  1314. package/out/zql/src/mutate/crud.js.map +1 -0
  1315. package/out/zql/src/mutate/custom.d.ts +39 -63
  1316. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1317. package/out/zql/src/mutate/custom.js +12 -8
  1318. package/out/zql/src/mutate/custom.js.map +1 -1
  1319. package/out/zql/src/mutate/mutator-registry.d.ts +112 -0
  1320. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1321. package/out/zql/src/mutate/mutator-registry.js +88 -0
  1322. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1323. package/out/zql/src/mutate/mutator.d.ts +94 -0
  1324. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1325. package/out/zql/src/mutate/mutator.js +34 -0
  1326. package/out/zql/src/mutate/mutator.js.map +1 -0
  1327. package/out/zql/src/planner/planner-builder.d.ts +2 -1
  1328. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  1329. package/out/zql/src/planner/planner-builder.js +239 -148
  1330. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1331. package/out/zql/src/planner/planner-connection.d.ts +14 -15
  1332. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  1333. package/out/zql/src/planner/planner-connection.js +205 -247
  1334. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1335. package/out/zql/src/planner/planner-constraint.js +8 -11
  1336. package/out/zql/src/planner/planner-constraint.js.map +1 -1
  1337. package/out/zql/src/planner/planner-debug.d.ts +39 -44
  1338. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1339. package/out/zql/src/planner/planner-debug.js +227 -161
  1340. package/out/zql/src/planner/planner-debug.js.map +1 -1
  1341. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  1342. package/out/zql/src/planner/planner-fan-in.js +157 -159
  1343. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1344. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
  1345. package/out/zql/src/planner/planner-fan-out.js +73 -59
  1346. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1347. package/out/zql/src/planner/planner-graph.d.ts +10 -9
  1348. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  1349. package/out/zql/src/planner/planner-graph.js +323 -357
  1350. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1351. package/out/zql/src/planner/planner-join.d.ts +7 -3
  1352. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  1353. package/out/zql/src/planner/planner-join.js +239 -322
  1354. package/out/zql/src/planner/planner-join.js.map +1 -1
  1355. package/out/zql/src/planner/planner-node.d.ts +6 -1
  1356. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1357. package/out/zql/src/planner/planner-node.js +8 -2
  1358. package/out/zql/src/planner/planner-node.js.map +1 -1
  1359. package/out/zql/src/planner/planner-source.js +23 -12
  1360. package/out/zql/src/planner/planner-source.js.map +1 -1
  1361. package/out/zql/src/planner/planner-terminus.js +28 -27
  1362. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1363. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1364. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1365. package/out/zql/src/query/complete-ordering.js +71 -0
  1366. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1367. package/out/zql/src/query/create-builder.d.ts +10 -0
  1368. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1369. package/out/zql/src/query/create-builder.js +32 -0
  1370. package/out/zql/src/query/create-builder.js.map +1 -0
  1371. package/out/zql/src/query/error.js +12 -8
  1372. package/out/zql/src/query/error.js.map +1 -1
  1373. package/out/zql/src/query/escape-like.js +7 -0
  1374. package/out/zql/src/query/escape-like.js.map +1 -0
  1375. package/out/zql/src/query/expression.d.ts +5 -5
  1376. package/out/zql/src/query/expression.d.ts.map +1 -1
  1377. package/out/zql/src/query/expression.js +153 -151
  1378. package/out/zql/src/query/expression.js.map +1 -1
  1379. package/out/zql/src/query/measure-push-operator.d.ts +2 -3
  1380. package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
  1381. package/out/zql/src/query/measure-push-operator.js +39 -35
  1382. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1383. package/out/zql/src/query/metrics-delegate.js +9 -5
  1384. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1385. package/out/zql/src/query/named.d.ts +21 -12
  1386. package/out/zql/src/query/named.d.ts.map +1 -1
  1387. package/out/zql/src/query/named.js +46 -64
  1388. package/out/zql/src/query/named.js.map +1 -1
  1389. package/out/zql/src/query/query-delegate-base.d.ts +120 -0
  1390. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1391. package/out/zql/src/query/query-delegate-base.js +250 -0
  1392. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1393. package/out/zql/src/query/query-delegate.d.ts +27 -4
  1394. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1395. package/out/zql/src/query/query-impl.d.ts +30 -52
  1396. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1397. package/out/zql/src/query/query-impl.js +393 -459
  1398. package/out/zql/src/query/query-impl.js.map +1 -1
  1399. package/out/zql/src/query/query-internals.d.ts +68 -0
  1400. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1401. package/out/zql/src/query/query-internals.js +11 -0
  1402. package/out/zql/src/query/query-internals.js.map +1 -0
  1403. package/out/zql/src/query/query-registry.d.ts +239 -0
  1404. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1405. package/out/zql/src/query/query-registry.js +121 -0
  1406. package/out/zql/src/query/query-registry.js.map +1 -0
  1407. package/out/zql/src/query/query.d.ts +65 -242
  1408. package/out/zql/src/query/query.d.ts.map +1 -1
  1409. package/out/zql/src/query/runnable-query-impl.d.ts +22 -0
  1410. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -0
  1411. package/out/zql/src/query/runnable-query-impl.js +60 -0
  1412. package/out/zql/src/query/runnable-query-impl.js.map +1 -0
  1413. package/out/zql/src/query/schema-query.d.ts +7 -0
  1414. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1415. package/out/zql/src/query/static-query.d.ts +3 -25
  1416. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1417. package/out/zql/src/query/static-query.js +18 -32
  1418. package/out/zql/src/query/static-query.js.map +1 -1
  1419. package/out/zql/src/query/ttl.js +69 -62
  1420. package/out/zql/src/query/ttl.js.map +1 -1
  1421. package/out/zql/src/query/validate-input.d.ts +15 -0
  1422. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1423. package/out/zql/src/query/validate-input.js +24 -0
  1424. package/out/zql/src/query/validate-input.js.map +1 -0
  1425. package/out/zqlite/src/database-storage.d.ts +1 -1
  1426. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1427. package/out/zqlite/src/database-storage.js +99 -102
  1428. package/out/zqlite/src/database-storage.js.map +1 -1
  1429. package/out/zqlite/src/db.d.ts +2 -1
  1430. package/out/zqlite/src/db.d.ts.map +1 -1
  1431. package/out/zqlite/src/db.js +241 -192
  1432. package/out/zqlite/src/db.js.map +1 -1
  1433. package/out/zqlite/src/explain-queries.js +13 -16
  1434. package/out/zqlite/src/explain-queries.js.map +1 -1
  1435. package/out/zqlite/src/internal/sql-inline.d.ts +13 -0
  1436. package/out/zqlite/src/internal/sql-inline.d.ts.map +1 -0
  1437. package/out/zqlite/src/internal/sql-inline.js +45 -0
  1438. package/out/zqlite/src/internal/sql-inline.js.map +1 -0
  1439. package/out/zqlite/src/internal/sql.js +15 -10
  1440. package/out/zqlite/src/internal/sql.js.map +1 -1
  1441. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1442. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1443. package/out/zqlite/src/query-builder.js +172 -143
  1444. package/out/zqlite/src/query-builder.js.map +1 -1
  1445. package/out/zqlite/src/query-delegate.d.ts +5 -19
  1446. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1447. package/out/zqlite/src/query-delegate.js +56 -70
  1448. package/out/zqlite/src/query-delegate.js.map +1 -1
  1449. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
  1450. package/out/zqlite/src/sqlite-cost-model.js +97 -121
  1451. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1452. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1453. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1454. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1455. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1456. package/out/zqlite/src/table-source.d.ts +18 -6
  1457. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1458. package/out/zqlite/src/table-source.js +443 -311
  1459. package/out/zqlite/src/table-source.js.map +1 -1
  1460. package/package.json +32 -29
  1461. package/out/chunk-424PT5DM.js +0 -23
  1462. package/out/chunk-424PT5DM.js.map +0 -7
  1463. package/out/chunk-AFADJQ2O.js +0 -1
  1464. package/out/chunk-AFADJQ2O.js.map +0 -7
  1465. package/out/chunk-ASRS2LFV.js.map +0 -7
  1466. package/out/chunk-ECUMGQGC.js.map +0 -7
  1467. package/out/chunk-EZM3XBAB.js.map +0 -7
  1468. package/out/chunk-QZSBDHTA.js +0 -18337
  1469. package/out/chunk-QZSBDHTA.js.map +0 -7
  1470. package/out/chunk-TJFNGO7E.js +0 -4126
  1471. package/out/chunk-TJFNGO7E.js.map +0 -7
  1472. package/out/chunk-VZOYWIRW.js +0 -30
  1473. package/out/chunk-VZOYWIRW.js.map +0 -7
  1474. package/out/chunk-YTVU4GOY.js +0 -372
  1475. package/out/chunk-YTVU4GOY.js.map +0 -7
  1476. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1477. package/out/expo-sqlite.js +0 -11
  1478. package/out/expo-sqlite.js.map +0 -7
  1479. package/out/inspector-IU2HG74I.js +0 -43
  1480. package/out/inspector-IU2HG74I.js.map +0 -7
  1481. package/out/lazy-inspector-OXIFYSSQ.js +0 -574
  1482. package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
  1483. package/out/op-sqlite.js.map +0 -7
  1484. package/out/react-native.js +0 -25
  1485. package/out/react-native.js.map +0 -7
  1486. package/out/react.js +0 -479
  1487. package/out/react.js.map +0 -7
  1488. package/out/shared/src/enum.js +0 -2
  1489. package/out/shared/src/enum.js.map +0 -1
  1490. package/out/shared/src/expand.js +0 -2
  1491. package/out/shared/src/expand.js.map +0 -1
  1492. package/out/shared/src/immutable.js +0 -2
  1493. package/out/shared/src/immutable.js.map +0 -1
  1494. package/out/shared/src/types.js +0 -2
  1495. package/out/shared/src/types.js.map +0 -1
  1496. package/out/shared/src/writable.js +0 -2
  1497. package/out/shared/src/writable.js.map +0 -1
  1498. package/out/solid.js.map +0 -7
  1499. package/out/sqlite.js +0 -15
  1500. package/out/sqlite.js.map +0 -7
  1501. package/out/zero/package.json +0 -194
  1502. package/out/zero/src/server/change-streamer.js +0 -2
  1503. package/out/zero/src/server/change-streamer.js.map +0 -1
  1504. package/out/zero/src/server/main.js +0 -2
  1505. package/out/zero/src/server/main.js.map +0 -1
  1506. package/out/zero/src/server/reaper.js +0 -2
  1507. package/out/zero/src/server/reaper.js.map +0 -1
  1508. package/out/zero/src/server/replicator.js +0 -2
  1509. package/out/zero/src/server/replicator.js.map +0 -1
  1510. package/out/zero/src/server/runner/main.js +0 -2
  1511. package/out/zero/src/server/runner/main.js.map +0 -1
  1512. package/out/zero/src/server/syncer.js +0 -2
  1513. package/out/zero/src/server/syncer.js.map +0 -1
  1514. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1515. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1516. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1517. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1518. package/out/zero-cache/src/services/service.js +0 -2
  1519. package/out/zero-cache/src/services/service.js.map +0 -1
  1520. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1521. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1522. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
  1523. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1524. package/out/zero-cache/src/types/satisfies.js +0 -2
  1525. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1526. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1527. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1528. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1529. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1530. package/out/zero-events/src/index.js +0 -2
  1531. package/out/zero-events/src/index.js.map +0 -1
  1532. package/out/zero-events/src/json.js +0 -2
  1533. package/out/zero-events/src/json.js.map +0 -1
  1534. package/out/zero-events/src/status.js +0 -3
  1535. package/out/zero-events/src/status.js.map +0 -1
  1536. package/out/zero-pg/src/mod.js +0 -6
  1537. package/out/zero-pg/src/mod.js.map +0 -1
  1538. package/out/zero-protocol/src/error-kind.js +0 -3
  1539. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1540. package/out/zero-protocol/src/error-origin.js +0 -3
  1541. package/out/zero-protocol/src/error-origin.js.map +0 -1
  1542. package/out/zero-protocol/src/error-reason.js +0 -3
  1543. package/out/zero-protocol/src/error-reason.js.map +0 -1
  1544. package/out/zero-react/src/components/inspector.d.ts +0 -8
  1545. package/out/zero-react/src/components/inspector.d.ts.map +0 -1
  1546. package/out/zero-react/src/components/mark-icon.d.ts +0 -3
  1547. package/out/zero-react/src/components/mark-icon.d.ts.map +0 -1
  1548. package/out/zero-react/src/components/zero-inspector.d.ts +0 -7
  1549. package/out/zero-react/src/components/zero-inspector.d.ts.map +0 -1
  1550. package/out/zero-react/src/use-zero-connection-state.d.ts +0 -9
  1551. package/out/zero-react/src/use-zero-connection-state.d.ts.map +0 -1
  1552. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1553. package/out/zero-schema/src/server-schema.js +0 -2
  1554. package/out/zero-schema/src/server-schema.js.map +0 -1
  1555. package/out/zero-schema/src/table-schema.js +0 -7
  1556. package/out/zero-schema/src/table-schema.js.map +0 -1
  1557. package/out/zero-server/src/mod.js +0 -9
  1558. package/out/zero-server/src/mod.js.map +0 -1
  1559. package/out/zero-server/src/query.d.ts +0 -22
  1560. package/out/zero-server/src/query.d.ts.map +0 -1
  1561. package/out/zero-server/src/query.js +0 -61
  1562. package/out/zero-server/src/query.js.map +0 -1
  1563. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +0 -1
  1564. package/out/zero-types/src/schema-value.js +0 -2
  1565. package/out/zero-types/src/schema-value.js.map +0 -1
  1566. package/out/zero-types/src/schema.js +0 -2
  1567. package/out/zero-types/src/schema.js.map +0 -1
  1568. package/out/zero.js +0 -81
  1569. package/out/zero.js.map +0 -7
  1570. package/out/zql/src/ivm/change.js +0 -2
  1571. package/out/zql/src/ivm/change.js.map +0 -1
  1572. package/out/zql/src/ivm/default-format.js +0 -2
  1573. package/out/zql/src/ivm/default-format.js.map +0 -1
  1574. package/out/zql/src/ivm/schema.js +0 -2
  1575. package/out/zql/src/ivm/schema.js.map +0 -1
  1576. package/out/zql/src/ivm/source.js +0 -2
  1577. package/out/zql/src/ivm/source.js.map +0 -1
  1578. package/out/zql/src/ivm/view.js +0 -2
  1579. package/out/zql/src/ivm/view.js.map +0 -1
  1580. package/out/zql/src/query/query-delegate.js +0 -2
  1581. package/out/zql/src/query/query-delegate.js.map +0 -1
  1582. package/out/zql/src/query/query.js +0 -9
  1583. package/out/zql/src/query/query.js.map +0 -1
  1584. package/out/zql/src/query/typed-view.js +0 -2
  1585. package/out/zql/src/query/typed-view.js.map +0 -1
  1586. package/out/zqlite/src/mod.js +0 -5
  1587. package/out/zqlite/src/mod.js.map +0 -1
  1588. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-pool.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/transaction-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction-pool.js","sources":["../../../../../zero-cache/src/db/transaction-pool.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {type Resolver, resolver} from '@rocicorp/resolver';\nimport type postgres from 'postgres';\nimport {AbortError} from '../../../shared/src/abort-error.ts';\nimport {assert} from '../../../shared/src/asserts.ts';\nimport {stringify} from '../../../shared/src/bigint-json.ts';\nimport type {Enum} from '../../../shared/src/enum.ts';\nimport {Queue} from '../../../shared/src/queue.ts';\nimport {promiseVoid} from '../../../shared/src/resolved-promises.ts';\nimport {\n disableStatementTimeout,\n type PostgresDB,\n type PostgresTransaction,\n} from '../types/pg.ts';\nimport type * as Mode from './mode-enum.ts';\n\ntype Mode = Enum<typeof Mode>;\n\ntype MaybePromise<T> = Promise<T> | T;\n\nexport type Statement =\n | postgres.PendingQuery<(postgres.Row & Iterable<postgres.Row>)[]>\n | postgres.PendingQuery<postgres.Row[]>;\n\n/**\n * A {@link Task} is logic run from within a transaction in a {@link TransactionPool}.\n * It returns a list of `Statements` that the transaction executes asynchronously and\n * awaits when it receives the 'done' signal.\n *\n */\nexport type Task = (\n tx: PostgresTransaction,\n lc: LogContext,\n) => MaybePromise<Statement[]>;\n\n/**\n * A {@link ReadTask} is run from within a transaction, but unlike a {@link Task},\n * the results of a ReadTask are opaque to the TransactionPool and returned to the\n * caller of {@link TransactionPool.processReadTask}.\n */\nexport type ReadTask<T> = (\n tx: PostgresTransaction,\n lc: LogContext,\n) => MaybePromise<T>;\n\n/**\n * A TransactionPool is a pool of one or more {@link postgres.TransactionSql}\n * objects that participate in processing a dynamic queue of tasks.\n *\n * This can be used for serializing a set of tasks that arrive asynchronously\n * to a single transaction (for writing) or performing parallel reads across\n * multiple connections at the same snapshot (e.g. read only snapshot transactions).\n */\nexport class TransactionPool {\n #lc: LogContext;\n readonly #mode: Mode;\n readonly #init: TaskRunner | undefined;\n readonly #cleanup: TaskRunner | undefined;\n readonly #tasks = new Queue<TaskRunner | Error | 'done'>();\n readonly #workers: Promise<unknown>[] = [];\n readonly #initialWorkers: number;\n readonly #maxWorkers: number;\n readonly #timeoutTask: TimeoutTasks;\n #numWorkers: number;\n #numWorking = 0;\n #db: PostgresDB | undefined; // set when running. stored to allow adaptive pool sizing.\n\n #refCount = 1;\n #done = false;\n #failure: Error | undefined;\n\n /**\n * @param init A {@link Task} that is run in each Transaction before it begins\n * processing general tasks. This can be used to to set the transaction\n * mode, export/set snapshots, etc. This will be run even if\n * {@link fail} has been called on the pool.\n * @param cleanup A {@link Task} that is run in each Transaction before it closes.\n * This will be run even if {@link fail} has been called, or if a\n * preceding Task threw an Error.\n * @param initialWorkers The initial number of transaction workers to process tasks.\n * This is the steady state number of workers that will be kept\n * alive if the TransactionPool is long lived.\n * This must be greater than 0. Defaults to 1.\n * @param maxWorkers When specified, allows the pool to grow to `maxWorkers`. This\n * must be greater than or equal to `initialWorkers`. On-demand\n * workers will be shut down after an idle timeout of 5 seconds.\n */\n constructor(\n lc: LogContext,\n mode: Mode,\n init?: Task,\n cleanup?: Task,\n initialWorkers = 1,\n maxWorkers = initialWorkers,\n timeoutTasks = TIMEOUT_TASKS, // Overridden for tests.\n ) {\n assert(initialWorkers > 0);\n assert(maxWorkers >= initialWorkers);\n\n this.#lc = lc;\n this.#mode = mode;\n this.#init = init ? this.#stmtRunner(init) : undefined;\n this.#cleanup = cleanup ? this.#stmtRunner(cleanup) : undefined;\n this.#initialWorkers = initialWorkers;\n this.#numWorkers = initialWorkers;\n this.#maxWorkers = maxWorkers;\n this.#timeoutTask = timeoutTasks;\n }\n\n /**\n * Starts the pool of workers to process Tasks with transactions opened from the\n * specified {@link db}.\n */\n run(db: PostgresDB): this {\n assert(!this.#db, 'already running');\n this.#db = db;\n for (let i = 0; i < this.#numWorkers; i++) {\n this.#addWorker(db);\n }\n return this;\n }\n\n /**\n * Adds context parameters to internal LogContext. This is useful for context values that\n * are not known when the TransactionPool is constructed (e.g. determined after a database\n * call when the pool is running).\n *\n * Returns an object that can be used to add more parameters.\n */\n addLoggingContext(key: string, value: string) {\n this.#lc = this.#lc.withContext(key, value);\n\n return {\n addLoggingContext: (key: string, value: string) =>\n this.addLoggingContext(key, value),\n };\n }\n\n /**\n * Returns a promise that:\n *\n * * resolves after {@link setDone} has been called (or the the pool as been {@link unref}ed\n * to a 0 ref count), once all added tasks have been processed and all transactions have been\n * committed or closed.\n *\n * * rejects if processing was aborted with {@link fail} or if processing any of\n * the tasks resulted in an error. All uncommitted transactions will have been\n * rolled back.\n *\n * Note that partial failures are possible if processing writes with multiple workers\n * (e.g. `setDone` is called, allowing some workers to commit, after which other\n * workers encounter errors). Using a TransactionPool in this manner does not make\n * sense in terms of transactional semantics, and is thus not recommended.\n *\n * For reads, however, multiple workers is useful for performing parallel reads\n * at the same snapshot. See {@link synchronizedSnapshots} for an example.\n * Resolves or rejects when all workers are done or failed.\n */\n async done() {\n const numWorkers = this.#workers.length;\n await Promise.all(this.#workers);\n\n if (numWorkers < this.#workers.length) {\n // If workers were added after the initial set, they must be awaited to ensure\n // that the results (i.e. rejections) of all workers are accounted for. This only\n // needs to be re-done once, because the fact that the first `await` completed\n // guarantees that the pool is in a terminal state and no new workers can be added.\n await Promise.all(this.#workers);\n }\n this.#lc.debug?.('transaction pool done');\n }\n\n #addWorker(db: PostgresDB) {\n const id = this.#workers.length + 1;\n const lc = this.#lc.withContext('tx', id);\n\n const tt: TimeoutTask =\n this.#workers.length < this.#initialWorkers\n ? this.#timeoutTask.forInitialWorkers\n : this.#timeoutTask.forExtraWorkers;\n const {timeoutMs} = tt;\n const timeoutTask = tt.task === 'done' ? 'done' : this.#stmtRunner(tt.task);\n\n const worker = async (tx: PostgresTransaction) => {\n try {\n lc.debug?.('started transaction');\n disableStatementTimeout(tx);\n\n let last: Promise<void> = promiseVoid;\n\n const executeTask = async (runner: TaskRunner) => {\n runner !== this.#init && this.#numWorking++;\n const {pending} = await runner.run(tx, lc, () => {\n runner !== this.#init && this.#numWorking--;\n });\n last = pending ?? last;\n };\n\n let task: TaskRunner | Error | 'done' =\n this.#init ?? (await this.#tasks.dequeue(timeoutTask, timeoutMs));\n\n try {\n while (task !== 'done') {\n if (\n task instanceof Error ||\n (task !== this.#init && this.#failure)\n ) {\n throw this.#failure ?? task;\n }\n await executeTask(task);\n\n // await the next task.\n task = await this.#tasks.dequeue(timeoutTask, timeoutMs);\n }\n } finally {\n // Execute the cleanup task even on failure.\n if (this.#cleanup) {\n await executeTask(this.#cleanup);\n }\n }\n\n lc.debug?.('closing transaction');\n // Given the semantics of a Postgres transaction, the last statement\n // will only succeed if all of the preceding statements succeeded.\n return last;\n } catch (e) {\n if (e !== this.#failure) {\n this.fail(e); // A failure in any worker should fail the pool.\n }\n throw e;\n }\n };\n\n this.#workers.push(\n db\n .begin(this.#mode, worker)\n .catch(e => {\n if (e instanceof RollbackSignal) {\n // A RollbackSignal is used to gracefully rollback the postgres.js\n // transaction block. It should not be thrown up to the application.\n lc.debug?.('aborted transaction');\n } else {\n throw e;\n }\n })\n .finally(() => this.#numWorkers--),\n );\n\n // After adding the worker, enqueue a terminal signal if we are in either of the\n // terminal states (both of which prevent more tasks from being enqueued), to ensure\n // that the added worker eventually exits.\n if (this.#done) {\n this.#tasks.enqueue('done');\n }\n if (this.#failure) {\n this.#tasks.enqueue(this.#failure);\n }\n }\n\n /**\n * Processes the statements produced by the specified {@link Task},\n * returning a Promise that resolves when the statements are either processed\n * by the database or rejected.\n *\n * Note that statement failures will result in failing the entire\n * TransactionPool (per transaction semantics). However, the returned Promise\n * itself will resolve rather than reject. As such, it is fine to ignore\n * returned Promises in order to pipeline requests to the database. It is\n * recommended to occasionally await them (e.g. after some threshold) in\n * order to avoid memory blowup in the case of database slowness.\n */\n process(task: Task): Promise<void> {\n const r = resolver<void>();\n this.#process(this.#stmtRunner(task, r));\n return r.promise;\n }\n\n readonly #start = performance.now();\n #stmts = 0;\n\n /**\n * Implements the semantics specified in {@link process()}.\n *\n * Specifically:\n * * `freeWorker()` is called as soon as the statements are produced,\n * allowing them to be pipelined to the database.\n * * Statement errors result in failing the transaction pool.\n * * The client-supplied Resolver resolves on success or failure;\n * it is never rejected.\n */\n #stmtRunner(task: Task, r: {resolve: () => void} = resolver()): TaskRunner {\n return {\n run: async (tx, lc, freeWorker) => {\n let stmts: Statement[];\n try {\n stmts = await task(tx, lc);\n } catch (e) {\n r.resolve();\n throw e;\n } finally {\n freeWorker();\n }\n\n if (stmts.length === 0) {\n r.resolve();\n return {pending: null};\n }\n\n // Execute the statements (i.e. send to the db) immediately.\n // The last result is returned for the worker to await before\n // closing the transaction.\n const last = stmts.reduce(\n (_, stmt) =>\n stmt\n .execute()\n .then(() => {\n if (++this.#stmts % 1000 === 0) {\n const q = stmt as unknown as Query;\n lc.debug?.(\n `executed ${this.#stmts}th statement (${(performance.now() - this.#start).toFixed(3)} ms)`,\n {\n statement: q.string,\n params: stringify(q.parameters),\n },\n );\n }\n })\n .catch(e => this.fail(e)),\n promiseVoid,\n );\n return {pending: last.then(r.resolve)};\n },\n rejected: r.resolve,\n };\n }\n\n /**\n * Processes and returns the result of executing the {@link ReadTask} from\n * within the transaction. An error thrown by the task will result in\n * rejecting the returned Promise, but will not affect the transaction pool\n * itself.\n */\n processReadTask<T>(readTask: ReadTask<T>): Promise<T> {\n const r = resolver<T>();\n this.#process(this.#readRunner(readTask, r));\n return r.promise;\n }\n\n /**\n * Implements the semantics specified in {@link processReadTask()}.\n *\n * Specifically:\n * * `freeWorker()` is called as soon as the result is produced,\n * before resolving the client-supplied Resolver.\n * * Errors result in rejecting the client-supplied Resolver but\n * do not affect transaction pool.\n */\n #readRunner<T>(readTask: ReadTask<T>, r: Resolver<T>): TaskRunner {\n return {\n run: async (tx, lc, freeWorker) => {\n let result: T;\n try {\n result = await readTask(tx, lc);\n freeWorker();\n r.resolve(result);\n } catch (e) {\n freeWorker();\n r.reject(e);\n }\n return {pending: null};\n },\n rejected: r.reject,\n };\n }\n\n #process(runner: TaskRunner): void {\n assert(!this.#done, 'already set done');\n if (this.#failure) {\n runner.rejected(this.#failure);\n return;\n }\n\n this.#tasks.enqueue(runner);\n\n // Check if the pool size can and should be increased.\n if (this.#numWorkers < this.#maxWorkers) {\n const outstanding = this.#tasks.size();\n\n if (outstanding > this.#numWorkers - this.#numWorking) {\n this.#db && this.#addWorker(this.#db);\n this.#numWorkers++;\n this.#lc.debug?.(`Increased pool size to ${this.#numWorkers}`);\n }\n }\n }\n\n /**\n * Ends all workers with a ROLLBACK. Throws if the pool is already done\n * or aborted.\n */\n abort() {\n this.fail(new RollbackSignal());\n }\n\n /**\n * Signals to all workers to end their transaction once all pending tasks have\n * been completed. Throws if the pool is already done or aborted.\n */\n setDone() {\n assert(!this.#done, 'already set done');\n this.#done = true;\n\n for (let i = 0; i < this.#numWorkers; i++) {\n this.#tasks.enqueue('done');\n }\n }\n\n /**\n * An alternative to explicitly calling {@link setDone}, `ref()` increments an internal reference\n * count, and {@link unref} decrements it. When the reference count reaches 0, {@link setDone} is\n * automatically called. A TransactionPool is initialized with a reference count of 1.\n *\n * `ref()` should be called before sharing the pool with another component, and only after the\n * pool has been started with {@link run()}. It must not be called on a TransactionPool that is\n * already done (either via {@link unref()} or {@link setDone()}. (Doing so indicates a logical\n * error in the code.)\n *\n * It follows that:\n * * The creator of the TransactionPool is responsible for running it.\n * * The TransactionPool should be ref'ed before being sharing.\n * * The receiver of the TransactionPool is only responsible for unref'ing it.\n *\n * On the other hand, a transaction pool that fails with a runtime error can still be ref'ed;\n * attempts to use the pool will result in the runtime error as expected.\n */\n // TODO: Get rid of the ref-counting stuff. It's no longer needed.\n ref(count = 1) {\n assert(\n this.#db !== undefined && !this.#done,\n `Cannot ref() a TransactionPool that is not running`,\n );\n this.#refCount += count;\n }\n\n /**\n * Decrements the internal reference count, automatically invoking {@link setDone} when it reaches 0.\n */\n unref(count = 1) {\n assert(count <= this.#refCount);\n\n this.#refCount -= count;\n if (this.#refCount === 0) {\n this.setDone();\n }\n }\n\n isRunning(): boolean {\n return this.#db !== undefined && !this.#done && this.#failure === undefined;\n }\n\n /**\n * Signals all workers to fail their transactions with the given {@link err}.\n */\n fail(err: unknown) {\n if (!this.#failure) {\n this.#failure = ensureError(err); // Fail fast: this is checked in the worker loop.\n const level =\n this.#failure instanceof ControlFlowError\n ? 'debug'\n : this.#failure instanceof AbortError\n ? 'info'\n : 'error';\n this.#lc[level]?.(this.#failure);\n\n for (let i = 0; i < this.#numWorkers; i++) {\n // Enqueue the Error to terminate any workers waiting for tasks.\n this.#tasks.enqueue(this.#failure);\n }\n }\n }\n}\n\ntype SynchronizeSnapshotTasks = {\n /**\n * The `init` Task for the TransactionPool from which the snapshot originates.\n * The pool must have Mode.SERIALIZABLE, and will be set to READ ONLY by the\n * `exportSnapshot` init task. If the TransactionPool has multiple workers, the\n * first worker will export a snapshot that the others set.\n */\n exportSnapshot: Task;\n\n /**\n * The `cleanup` Task for the TransactionPool from which the snapshot\n * originates. This Task will wait for the follower pool to `setSnapshot`\n * to ensure that the snapshot is successfully shared before the originating\n * transaction is closed.\n */\n cleanupExport: Task;\n\n /**\n * The `init` Task for the TransactionPool in which workers will\n * consequently see the same snapshot as that of the first pool. The pool\n * must have Mode.SERIALIZABLE, and will have the ability to perform writes.\n */\n setSnapshot: Task;\n\n /** The ID of the shared snapshot. */\n snapshotID: Promise<string>;\n};\n\n/**\n * Init Tasks for Postgres snapshot synchronization across transactions.\n *\n * https://www.postgresql.org/docs/9.3/functions-admin.html#:~:text=Snapshot%20Synchronization%20Functions,identical%20content%20in%20the%20database.\n */\nexport function synchronizedSnapshots(): SynchronizeSnapshotTasks {\n const {\n promise: snapshotExported,\n resolve: exportSnapshot,\n reject: failExport,\n } = resolver<string>();\n\n const {\n promise: snapshotCaptured,\n resolve: captureSnapshot,\n reject: failCapture,\n } = resolver<unknown>();\n\n // Set by the first worker to run its initTask, who becomes responsible for\n // exporting the snapshot. TODO: Plumb the workerNum and use that instead.\n let firstWorkerRun = false;\n\n // Note: Neither init task should `await`, as processing in each pool can proceed\n // as soon as the statements have been sent to the db. However, the `cleanupExport`\n // task must `await` the result of `setSnapshot` to ensure that exporting transaction\n // does not close before the snapshot has been captured.\n return {\n exportSnapshot: tx => {\n if (!firstWorkerRun) {\n firstWorkerRun = true;\n const stmt =\n tx`SELECT pg_export_snapshot() AS snapshot; SET TRANSACTION READ ONLY;`.simple();\n // Intercept the promise to propagate the information to `snapshotExported`.\n stmt.then(result => exportSnapshot(result[0].snapshot), failExport);\n return [stmt]; // Also return the stmt so that it gets awaited (and errors handled).\n }\n return snapshotExported.then(snapshotID => [\n tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`),\n tx`SET TRANSACTION READ ONLY`.simple(),\n ]);\n },\n\n setSnapshot: tx =>\n snapshotExported.then(snapshotID => {\n const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);\n // Intercept the promise to propagate the information to `cleanupExport`.\n stmt.then(captureSnapshot, failCapture);\n return [stmt];\n }),\n\n cleanupExport: async () => {\n await snapshotCaptured;\n return [];\n },\n\n snapshotID: snapshotExported,\n };\n}\n\n/**\n * Returns `init` and `cleanup` {@link Task}s for a TransactionPool that ensure its workers\n * share a single view of the database. This is used for View Notifier and View Syncer logic\n * that allows multiple entities to perform parallel reads on the same snapshot of the database.\n */\nexport function sharedSnapshot(): {\n init: Task;\n cleanup: Task;\n snapshotID: Promise<string>;\n} {\n const {\n promise: snapshotExported,\n resolve: exportSnapshot,\n reject: failExport,\n } = resolver<string>();\n\n // Set by the first worker to run its initTask, who becomes responsible for\n // exporting the snapshot.\n let firstWorkerRun = false;\n\n // Set when any worker is done, signalling that all non-sentinel Tasks have been\n // dequeued, and thus any subsequently spawned workers should skip their initTask\n // since the snapshot is no longer needed (and soon to become invalid).\n let firstWorkerDone = false;\n\n return {\n init: (tx, lc) => {\n if (!firstWorkerRun) {\n firstWorkerRun = true;\n const stmt = tx`SELECT pg_export_snapshot() AS snapshot;`.simple();\n // Intercept the promise to propagate the information to `snapshotExported`.\n stmt.then(result => exportSnapshot(result[0].snapshot), failExport);\n return [stmt]; // Also return the stmt so that it gets awaited (and errors handled).\n }\n if (!firstWorkerDone) {\n return snapshotExported.then(snapshotID => [\n tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`),\n ]);\n }\n lc.debug?.('All work is done. No need to set snapshot');\n return [];\n },\n\n cleanup: () => {\n firstWorkerDone = true;\n return [];\n },\n\n snapshotID: snapshotExported,\n };\n}\n\n/**\n * @returns An `init` Task for importing a snapshot from another transaction.\n */\nexport function importSnapshot(snapshotID: string): {\n init: Task;\n imported: Promise<void>;\n} {\n const {promise: imported, resolve, reject} = resolver<void>();\n\n return {\n init: tx => {\n const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);\n stmt.then(() => resolve(), reject);\n return [stmt];\n },\n\n imported,\n };\n}\n\n/**\n * A superclass of Errors used for control flow that is needed to handle\n * another Error but does not constitute an error condition itself (e.g.\n * aborting transactions after a previous one fails). Subclassing this Error\n * will result in lowering the log level from `error` to `debug`.\n */\nexport class ControlFlowError extends Error {\n constructor(cause?: unknown) {\n super();\n this.cause = cause;\n }\n}\n\n/**\n * Internal error used to rollback the worker transaction. This is used\n * instead of executing a `ROLLBACK` statement because the postgres.js\n * library will otherwise try to execute an extraneous `COMMIT`, which\n * results in outputting a \"no transaction in progress\" warning to the\n * database logs.\n *\n * Throwing an exception, on the other hand, executes the postgres.js\n * codepath that calls `ROLLBACK` instead.\n */\nclass RollbackSignal extends ControlFlowError {\n readonly name = 'RollbackSignal';\n readonly message = 'rolling back transaction';\n}\n\nfunction ensureError(err: unknown): Error {\n if (err instanceof Error) {\n return err;\n }\n const error = new Error();\n error.cause = err;\n return error;\n}\n\ninterface TaskRunner {\n /**\n * Manages the running of a Task or ReadTask in two phases:\n *\n * - If the task involves blocking, this is done in the worker. Once the\n * blocking is done, `freeWorker()` is invoked to signal that the worker\n * is available to run another task. Note that this should be invoked\n * *before* resolving the result to the calling thread so that a\n * subsequent task can reuse the same worker.\n *\n * - Task statements are executed on the database asynchronously. The final\n * result of this processing is encapsulated in the returned `pending`\n * Promise. The worker will await the last pending Promise before closing\n * the transaction.\n *\n * @param freeWorker should be called as soon as all blocking operations are\n * completed in order to return the transaction to the pool.\n * @returns A `pending` Promise indicating when the statements have been\n * processed by the database, allowing the transaction to be closed.\n * This should be `null` if there are no transaction-dependent\n * statements to await.\n */\n run(\n tx: PostgresTransaction,\n lc: LogContext,\n freeWorker: () => void,\n ): Promise<{pending: Promise<void> | null}>;\n\n /**\n * Invoked if the TransactionPool is already in a failed state when the task\n * is requested.\n */\n rejected(reason: unknown): void;\n}\n\n// TODO: Get rid of the timeout stuff. It's no longer needed.\nconst IDLE_TIMEOUT_MS = 5_000;\n\nconst KEEPALIVE_TIMEOUT_MS = 60_000;\n\nconst KEEPALIVE_TASK: Task = tx => [tx`SELECT 1`.simple()];\n\ntype TimeoutTask = {\n timeoutMs: number;\n task: Task | 'done';\n};\n\ntype TimeoutTasks = {\n forInitialWorkers: TimeoutTask;\n forExtraWorkers: TimeoutTask;\n};\n\n// Production timeout tasks. Overridden in tests.\nexport const TIMEOUT_TASKS: TimeoutTasks = {\n forInitialWorkers: {\n timeoutMs: KEEPALIVE_TIMEOUT_MS,\n task: KEEPALIVE_TASK,\n },\n forExtraWorkers: {\n timeoutMs: IDLE_TIMEOUT_MS,\n task: 'done',\n },\n};\n\n// The slice of information from the Query object in Postgres.js that gets logged for debugging.\n// https://github.com/porsager/postgres/blob/f58cd4f3affd3e8ce8f53e42799672d86cd2c70b/src/connection.js#L219\ntype Query = {string: string; parameters: object[]};\n"],"names":["key","value"],"mappings":"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"}
@@ -1,13 +1,26 @@
1
- export async function warmupConnections(lc, db, name) {
2
- const { max, host } = db.options;
3
- await Promise.allSettled(Array.from({ length: max }, () => db `SELECT 1`.simple().execute()));
4
- const start = performance.now();
5
- const pingTimes = await Promise.all(Array.from({ length: Math.min(max, 5) }, () => db `SELECT 2`.simple().then(() => performance.now() - start, () => performance.now() - start)));
6
- const average = pingTimes.reduce((l, r) => l + r, 0) / pingTimes.length;
7
- const log = average >= 10 ? 'warn' : 'info';
8
- lc[log]?.(`average ping to ${name} db@${host}: ${average.toFixed(2)} ms`);
9
- if (log === 'warn') {
10
- lc.warn?.(`ideal db ping time is < 5 ms`);
11
- }
1
+ async function warmupConnections(lc, db, name) {
2
+ const { max, host } = db.options;
3
+ await Promise.allSettled(
4
+ Array.from({ length: max }, () => db`SELECT 1`.simple().execute())
5
+ );
6
+ const start = performance.now();
7
+ const pingTimes = await Promise.all(
8
+ Array.from(
9
+ { length: Math.min(max, 5) },
10
+ () => db`SELECT 2`.simple().then(
11
+ () => performance.now() - start,
12
+ () => performance.now() - start
13
+ )
14
+ )
15
+ );
16
+ const average = pingTimes.reduce((l, r) => l + r, 0) / pingTimes.length;
17
+ const log = average >= 10 ? "warn" : "info";
18
+ lc[log]?.(`average ping to ${name} db@${host}: ${average.toFixed(2)} ms`);
19
+ if (log === "warn") {
20
+ lc.warn?.(`ideal db ping time is < 5 ms`);
21
+ }
12
22
  }
13
- //# sourceMappingURL=warmup.js.map
23
+ export {
24
+ warmupConnections
25
+ };
26
+ //# sourceMappingURL=warmup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"warmup.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/warmup.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAc,EACd,EAAc,EACd,IAAY;IAEZ,MAAM,EAAC,GAAG,EAAE,IAAI,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAC/B,MAAM,OAAO,CAAC,UAAU,CACtB,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,GAAG,EAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAA,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,CACjE,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,GAAG,EAAE,CAC1C,EAAE,CAAA,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAC/B,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAChC,CACF,CACF,CAAC;IACF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;IACxE,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,IAAI,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,EAAE,CAAC,IAAI,EAAE,CAAC,8BAA8B,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"warmup.js","sources":["../../../../../zero-cache/src/db/warmup.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport type {PostgresDB} from '../types/pg.ts';\n\nexport async function warmupConnections(\n lc: LogContext,\n db: PostgresDB,\n name: string,\n) {\n const {max, host} = db.options;\n await Promise.allSettled(\n Array.from({length: max}, () => db`SELECT 1`.simple().execute()),\n );\n const start = performance.now();\n const pingTimes = await Promise.all(\n Array.from({length: Math.min(max, 5)}, () =>\n db`SELECT 2`.simple().then(\n () => performance.now() - start,\n () => performance.now() - start,\n ),\n ),\n );\n const average = pingTimes.reduce((l, r) => l + r, 0) / pingTimes.length;\n const log = average >= 10 ? 'warn' : 'info';\n lc[log]?.(`average ping to ${name} db@${host}: ${average.toFixed(2)} ms`);\n if (log === 'warn') {\n lc.warn?.(`ideal db ping time is < 5 ms`);\n }\n}\n"],"names":[],"mappings":"AAGA,eAAsB,kBACpB,IACA,IACA,MACA;AACA,QAAM,EAAC,KAAK,KAAA,IAAQ,GAAG;AACvB,QAAM,QAAQ;AAAA,IACZ,MAAM,KAAK,EAAC,QAAQ,IAAA,GAAM,MAAM,aAAa,OAAA,EAAS,QAAA,CAAS;AAAA,EAAA;AAEjE,QAAM,QAAQ,YAAY,IAAA;AAC1B,QAAM,YAAY,MAAM,QAAQ;AAAA,IAC9B,MAAM;AAAA,MAAK,EAAC,QAAQ,KAAK,IAAI,KAAK,CAAC,EAAA;AAAA,MAAI,MACrC,aAAa,OAAA,EAAS;AAAA,QACpB,MAAM,YAAY,IAAA,IAAQ;AAAA,QAC1B,MAAM,YAAY,QAAQ;AAAA,MAAA;AAAA,IAC5B;AAAA,EACF;AAEF,QAAM,UAAU,UAAU,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,UAAU;AACjE,QAAM,MAAM,WAAW,KAAK,SAAS;AACrC,KAAG,GAAG,IAAI,mBAAmB,IAAI,OAAO,IAAI,KAAK,QAAQ,QAAQ,CAAC,CAAC,KAAK;AACxE,MAAI,QAAQ,QAAQ;AAClB,OAAG,OAAO,8BAA8B;AAAA,EAC1C;AACF;"}
@@ -1,93 +1,82 @@
1
- import { CloudEvent, emitterFor, httpTransport } from 'cloudevents';
2
- import { nanoid } from 'nanoid';
1
+ import { emitterFor, httpTransport, CloudEvent } from "cloudevents";
2
+ import { nanoid } from "nanoid";
3
3
  import { isJSONValue } from "../../../shared/src/json.js";
4
4
  import { must } from "../../../shared/src/must.js";
5
5
  import { promiseVoid } from "../../../shared/src/resolved-promises.js";
6
- import * as v from "../../../shared/src/valita.js";
7
- import {} from "../../../zero-events/src/index.js";
6
+ import { parse } from "../../../shared/src/valita.js";
7
+ import { union, string, number, boolean, record, object } from "@badrap/valita";
8
8
  let publishFn = (lc, { type }) => {
9
- lc.warn?.(`Cannot publish "${type}" event before initEventSink(). ` +
10
- `This is only expected in unit tests.`);
11
- return promiseVoid;
9
+ lc.warn?.(
10
+ `Cannot publish "${type}" event before initEventSink(). This is only expected in unit tests.`
11
+ );
12
+ return promiseVoid;
12
13
  };
13
- const attributeValueSchema = v.union(v.string(), v.number(), v.boolean());
14
- const eventSchema = v.record(attributeValueSchema);
15
- // Note: This conforms to the format of the knative K_CE_OVERRIDES binding:
16
- // https://github.com/knative/eventing/blob/main/docs/spec/sources.md#sinkbinding
17
- const extensionsObjectSchema = v.object({ extensions: eventSchema });
18
- /**
19
- * Initializes a per-process event sink according to the cloud event
20
- * parameters in the ZeroConfig. This must be called at the beginning
21
- * of the process, before any ZeroEvents are generated / published.
22
- */
23
- export function initEventSink(lc, { taskID, cloudEvent }) {
24
- if (!cloudEvent.sinkEnv) {
25
- // The default implementation just outputs the events to logs.
26
- publishFn = (lc, event) => {
27
- lc.info?.(`ZeroEvent: ${event.type}`, event);
28
- return promiseVoid;
29
- };
30
- return;
31
- }
32
- let overrides = {};
33
- if (cloudEvent.extensionOverridesEnv) {
34
- const strVal = must(process.env[cloudEvent.extensionOverridesEnv]);
35
- const { extensions } = v.parse(JSON.parse(strVal), extensionsObjectSchema);
36
- overrides = extensions;
37
- }
38
- function createCloudEvent(data) {
39
- const { type, time } = data;
40
- return new CloudEvent({
41
- id: nanoid(),
42
- source: taskID,
43
- type,
44
- time,
45
- data,
46
- ...overrides,
47
- });
48
- }
49
- const sinkURI = must(process.env[cloudEvent.sinkEnv]);
50
- const emit = emitterFor(httpTransport(sinkURI));
51
- lc.debug?.(`Publishing ZeroEvents to ${sinkURI}`);
52
- publishFn = async (lc, event) => {
53
- const cloudEvent = createCloudEvent(event);
54
- lc.info?.(`Publishing CloudEvent: ${cloudEvent.type}`, cloudEvent);
55
- try {
56
- await emit(cloudEvent);
57
- }
58
- catch (e) {
59
- lc.warn?.(`Error publishing ${cloudEvent.type}`, e);
60
- }
61
- };
62
- }
63
- export function initEventSinkForTesting(sink, now = new Date()) {
64
- publishFn = (lc, event) => {
65
- lc.info?.(`Testing event sink received ${event.type} event`, event);
66
- // Replace the default Date.now() with the test instance for determinism.
67
- sink.push({ ...event, time: now.toISOString() });
68
- return promiseVoid;
14
+ const attributeValueSchema = union(string(), number(), boolean());
15
+ const eventSchema = record(attributeValueSchema);
16
+ const extensionsObjectSchema = object({ extensions: eventSchema });
17
+ function initEventSink(lc, { taskID, cloudEvent }) {
18
+ if (!cloudEvent.sinkEnv) {
19
+ publishFn = (lc2, event) => {
20
+ lc2.info?.(`ZeroEvent: ${event.type}`, event);
21
+ return promiseVoid;
69
22
  };
23
+ return;
24
+ }
25
+ let overrides = {};
26
+ if (cloudEvent.extensionOverridesEnv) {
27
+ const strVal = must(process.env[cloudEvent.extensionOverridesEnv]);
28
+ const { extensions } = parse(JSON.parse(strVal), extensionsObjectSchema);
29
+ overrides = extensions;
30
+ }
31
+ function createCloudEvent(data) {
32
+ const { type, time } = data;
33
+ return new CloudEvent({
34
+ id: nanoid(),
35
+ source: taskID,
36
+ type,
37
+ time,
38
+ data,
39
+ ...overrides
40
+ });
41
+ }
42
+ const sinkURI = must(process.env[cloudEvent.sinkEnv]);
43
+ const emit = emitterFor(httpTransport(sinkURI));
44
+ lc.debug?.(`Publishing ZeroEvents to ${sinkURI}`);
45
+ publishFn = async (lc2, event) => {
46
+ const cloudEvent2 = createCloudEvent(event);
47
+ lc2.info?.(`Publishing CloudEvent: ${cloudEvent2.type}`, cloudEvent2);
48
+ try {
49
+ await emit(cloudEvent2);
50
+ } catch (e) {
51
+ lc2.warn?.(`Error publishing ${cloudEvent2.type}`, e);
52
+ }
53
+ };
70
54
  }
71
- export function publishEvent(lc, event) {
72
- void publishFn(lc, event);
55
+ function publishEvent(lc, event) {
56
+ void publishFn(lc, event);
73
57
  }
74
- export async function publishCriticalEvent(lc, event) {
75
- await publishFn(lc, event);
58
+ async function publishCriticalEvent(lc, event) {
59
+ await publishFn(lc, event);
76
60
  }
77
- export function makeErrorDetails(e) {
78
- const err = e instanceof Error ? e : new Error(String(e));
79
- const errorDetails = {
80
- name: err.name,
81
- message: err.message,
82
- stack: err.stack,
83
- cause: err.cause ? makeErrorDetails(err.cause) : undefined,
84
- };
85
- // Include any enumerable properties (e.g. of Error subtypes).
86
- for (const [field, value] of Object.entries(err)) {
87
- if (isJSONValue(value, [])) {
88
- errorDetails[field] = value;
89
- }
61
+ function makeErrorDetails(e) {
62
+ const err = e instanceof Error ? e : new Error(String(e));
63
+ const errorDetails = {
64
+ name: err.name,
65
+ message: err.message,
66
+ stack: err.stack,
67
+ cause: err.cause ? makeErrorDetails(err.cause) : void 0
68
+ };
69
+ for (const [field, value] of Object.entries(err)) {
70
+ if (isJSONValue(value, [])) {
71
+ errorDetails[field] = value;
90
72
  }
91
- return errorDetails;
73
+ }
74
+ return errorDetails;
92
75
  }
93
- //# sourceMappingURL=events.js.map
76
+ export {
77
+ initEventSink,
78
+ makeErrorDetails,
79
+ publishCriticalEvent,
80
+ publishEvent
81
+ };
82
+ //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../../zero-cache/src/observability/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sources":["../../../../../zero-cache/src/observability/events.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {CloudEvent, emitterFor, httpTransport} from 'cloudevents';\nimport {nanoid} from 'nanoid';\nimport {isJSONValue, type JSONObject} from '../../../shared/src/json.ts';\nimport {must} from '../../../shared/src/must.ts';\nimport {promiseVoid} from '../../../shared/src/resolved-promises.ts';\nimport * as v from '../../../shared/src/valita.ts';\nimport {type ZeroEvent} from '../../../zero-events/src/index.ts';\nimport type {NormalizedZeroConfig} from '../config/normalize.ts';\n\ntype PublisherFn = (lc: LogContext, event: ZeroEvent) => Promise<void>;\n\nlet publishFn: PublisherFn = (lc, {type}) => {\n lc.warn?.(\n `Cannot publish \"${type}\" event before initEventSink(). ` +\n `This is only expected in unit tests.`,\n );\n return promiseVoid;\n};\n\nconst attributeValueSchema = v.union(v.string(), v.number(), v.boolean());\n\nconst eventSchema = v.record(attributeValueSchema);\n\ntype PartialEvent = v.Infer<typeof eventSchema>;\n\n// Note: This conforms to the format of the knative K_CE_OVERRIDES binding:\n// https://github.com/knative/eventing/blob/main/docs/spec/sources.md#sinkbinding\nconst extensionsObjectSchema = v.object({extensions: eventSchema});\n\n/**\n * Initializes a per-process event sink according to the cloud event\n * parameters in the ZeroConfig. This must be called at the beginning\n * of the process, before any ZeroEvents are generated / published.\n */\nexport function initEventSink(\n lc: LogContext,\n {taskID, cloudEvent}: Pick<NormalizedZeroConfig, 'taskID' | 'cloudEvent'>,\n) {\n if (!cloudEvent.sinkEnv) {\n // The default implementation just outputs the events to logs.\n publishFn = (lc, event) => {\n lc.info?.(`ZeroEvent: ${event.type}`, event);\n return promiseVoid;\n };\n return;\n }\n\n let overrides: PartialEvent = {};\n\n if (cloudEvent.extensionOverridesEnv) {\n const strVal = must(process.env[cloudEvent.extensionOverridesEnv]);\n const {extensions} = v.parse(JSON.parse(strVal), extensionsObjectSchema);\n overrides = extensions;\n }\n\n function createCloudEvent(data: ZeroEvent) {\n const {type, time} = data;\n return new CloudEvent({\n id: nanoid(),\n source: taskID,\n type,\n time,\n data,\n ...overrides,\n });\n }\n\n const sinkURI = must(process.env[cloudEvent.sinkEnv]);\n const emit = emitterFor(httpTransport(sinkURI));\n lc.debug?.(`Publishing ZeroEvents to ${sinkURI}`);\n\n publishFn = async (lc, event) => {\n const cloudEvent = createCloudEvent(event);\n lc.info?.(`Publishing CloudEvent: ${cloudEvent.type}`, cloudEvent);\n try {\n await emit(cloudEvent);\n } catch (e) {\n lc.warn?.(`Error publishing ${cloudEvent.type}`, e);\n }\n };\n}\n\nexport function initEventSinkForTesting(sink: ZeroEvent[], now = new Date()) {\n publishFn = (lc, event) => {\n lc.info?.(`Testing event sink received ${event.type} event`, event);\n // Replace the default Date.now() with the test instance for determinism.\n sink.push({...event, time: now.toISOString()});\n return promiseVoid;\n };\n}\n\nexport function publishEvent<E extends ZeroEvent>(lc: LogContext, event: E) {\n void publishFn(lc, event);\n}\n\nexport async function publishCriticalEvent<E extends ZeroEvent>(\n lc: LogContext,\n event: E,\n) {\n await publishFn(lc, event);\n}\n\nexport function makeErrorDetails(e: unknown): JSONObject {\n const err = e instanceof Error ? e : new Error(String(e));\n const errorDetails: JSONObject = {\n name: err.name,\n message: err.message,\n stack: err.stack,\n cause: err.cause ? makeErrorDetails(err.cause) : undefined,\n };\n // Include any enumerable properties (e.g. of Error subtypes).\n for (const [field, value] of Object.entries(err)) {\n if (isJSONValue(value, [])) {\n errorDetails[field] = value;\n }\n }\n return errorDetails;\n}\n"],"names":["v.union","v.string","v.number","v.boolean","v.record","v.object","lc","v.parse","cloudEvent"],"mappings":";;;;;;;AAYA,IAAI,YAAyB,CAAC,IAAI,EAAC,WAAU;AAC3C,KAAG;AAAA,IACD,mBAAmB,IAAI;AAAA,EAAA;AAGzB,SAAO;AACT;AAEA,MAAM,uBAAuBA,MAAQC,OAAE,GAAUC,OAAE,GAAUC,QAAE,CAAS;AAExE,MAAM,cAAcC,OAAS,oBAAoB;AAMjD,MAAM,yBAAyBC,OAAS,EAAC,YAAY,aAAY;AAO1D,SAAS,cACd,IACA,EAAC,QAAQ,cACT;AACA,MAAI,CAAC,WAAW,SAAS;AAEvB,gBAAY,CAACC,KAAI,UAAU;AACzBA,UAAG,OAAO,cAAc,MAAM,IAAI,IAAI,KAAK;AAC3C,aAAO;AAAA,IACT;AACA;AAAA,EACF;AAEA,MAAI,YAA0B,CAAA;AAE9B,MAAI,WAAW,uBAAuB;AACpC,UAAM,SAAS,KAAK,QAAQ,IAAI,WAAW,qBAAqB,CAAC;AACjE,UAAM,EAAC,eAAcC,MAAQ,KAAK,MAAM,MAAM,GAAG,sBAAsB;AACvE,gBAAY;AAAA,EACd;AAEA,WAAS,iBAAiB,MAAiB;AACzC,UAAM,EAAC,MAAM,KAAA,IAAQ;AACrB,WAAO,IAAI,WAAW;AAAA,MACpB,IAAI,OAAA;AAAA,MACJ,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AAAA,EACH;AAEA,QAAM,UAAU,KAAK,QAAQ,IAAI,WAAW,OAAO,CAAC;AACpD,QAAM,OAAO,WAAW,cAAc,OAAO,CAAC;AAC9C,KAAG,QAAQ,4BAA4B,OAAO,EAAE;AAEhD,cAAY,OAAOD,KAAI,UAAU;AAC/B,UAAME,cAAa,iBAAiB,KAAK;AACzCF,QAAG,OAAO,0BAA0BE,YAAW,IAAI,IAAIA,WAAU;AACjE,QAAI;AACF,YAAM,KAAKA,WAAU;AAAA,IACvB,SAAS,GAAG;AACVF,UAAG,OAAO,oBAAoBE,YAAW,IAAI,IAAI,CAAC;AAAA,IACpD;AAAA,EACF;AACF;AAWO,SAAS,aAAkC,IAAgB,OAAU;AAC1E,OAAK,UAAU,IAAI,KAAK;AAC1B;AAEA,eAAsB,qBACpB,IACA,OACA;AACA,QAAM,UAAU,IAAI,KAAK;AAC3B;AAEO,SAAS,iBAAiB,GAAwB;AACvD,QAAM,MAAM,aAAa,QAAQ,IAAI,IAAI,MAAM,OAAO,CAAC,CAAC;AACxD,QAAM,eAA2B;AAAA,IAC/B,MAAM,IAAI;AAAA,IACV,SAAS,IAAI;AAAA,IACb,OAAO,IAAI;AAAA,IACX,OAAO,IAAI,QAAQ,iBAAiB,IAAI,KAAK,IAAI;AAAA,EAAA;AAGnD,aAAW,CAAC,OAAO,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAChD,QAAI,YAAY,OAAO,CAAA,CAAE,GAAG;AAC1B,mBAAa,KAAK,IAAI;AAAA,IACxB;AAAA,EACF;AACA,SAAO;AACT;"}
@@ -1,45 +1,67 @@
1
- import { metrics } from '@opentelemetry/api';
1
+ import { metrics } from "@opentelemetry/api";
2
2
  let meter;
3
3
  function getMeter() {
4
- if (!meter) {
5
- meter = metrics.getMeter('zero');
6
- }
7
- return meter;
4
+ if (!meter) {
5
+ meter = metrics.getMeter("zero");
6
+ }
7
+ return meter;
8
8
  }
9
9
  function cache() {
10
- const instruments = new Map();
11
- return (name, creator) => {
12
- const existing = instruments.get(name);
13
- if (existing) {
14
- return existing;
15
- }
16
- const ret = creator(name);
17
- instruments.set(name, ret);
18
- return ret;
19
- };
10
+ const instruments = /* @__PURE__ */ new Map();
11
+ return (name, creator) => {
12
+ const existing = instruments.get(name);
13
+ if (existing) {
14
+ return existing;
15
+ }
16
+ const ret = creator(name);
17
+ instruments.set(name, ret);
18
+ return ret;
19
+ };
20
20
  }
21
21
  const upDownCounters = cache();
22
- export function getOrCreateUpDownCounter(category, name, opts) {
23
- return upDownCounters(name, name => getMeter().createUpDownCounter(`zero.${category}.${name}`, typeof opts === 'string' ? { description: opts } : opts));
22
+ function getOrCreateUpDownCounter(category, name, opts) {
23
+ return upDownCounters(
24
+ name,
25
+ (name2) => getMeter().createUpDownCounter(
26
+ `zero.${category}.${name2}`,
27
+ { description: opts }
28
+ )
29
+ );
24
30
  }
25
31
  const histograms = cache();
26
- export function getOrCreateHistogram(category, name, opts) {
27
- return histograms(name, name => {
28
- const options = typeof opts === 'string'
29
- ? {
30
- description: opts,
31
- unit: 'milliseconds',
32
- }
33
- : opts;
34
- return getMeter().createHistogram(`zero.${category}.${name}`, options);
35
- });
32
+ function getOrCreateHistogram(category, name, opts) {
33
+ return histograms(name, (name2) => {
34
+ const options = typeof opts === "string" ? {
35
+ description: opts,
36
+ unit: "milliseconds"
37
+ } : opts;
38
+ return getMeter().createHistogram(`zero.${category}.${name2}`, options);
39
+ });
36
40
  }
37
41
  const counters = cache();
38
- export function getOrCreateCounter(category, name, opts) {
39
- return counters(name, name => getMeter().createCounter(`zero.${category}.${name}`, typeof opts === 'string' ? { description: opts } : opts));
42
+ function getOrCreateCounter(category, name, opts) {
43
+ return counters(
44
+ name,
45
+ (name2) => getMeter().createCounter(
46
+ `zero.${category}.${name2}`,
47
+ typeof opts === "string" ? { description: opts } : opts
48
+ )
49
+ );
40
50
  }
41
51
  const gauges = cache();
42
- export function getOrCreateGauge(category, name, opts) {
43
- return gauges(name, name => getMeter().createObservableGauge(`zero.${category}.${name}`, typeof opts === 'string' ? { description: opts } : opts));
52
+ function getOrCreateGauge(category, name, opts) {
53
+ return gauges(
54
+ name,
55
+ (name2) => getMeter().createObservableGauge(
56
+ `zero.${category}.${name2}`,
57
+ typeof opts === "string" ? { description: opts } : opts
58
+ )
59
+ );
44
60
  }
45
- //# sourceMappingURL=metrics.js.map
61
+ export {
62
+ getOrCreateCounter,
63
+ getOrCreateGauge,
64
+ getOrCreateHistogram,
65
+ getOrCreateUpDownCounter
66
+ };
67
+ //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../zero-cache/src/observability/metrics.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAM3C,IAAI,KAAwB,CAAC;AAK7B,SAAS,QAAQ;IACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK;IAIZ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC5C,OAAO,CAAC,IAAY,EAAE,OAA+B,EAAE,EAAE;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,KAAK,EAAiB,CAAC;AAY9C,MAAM,UAAU,wBAAwB,CACtC,QAAkB,EAClB,IAAY,EACZ,IAAsB;IAEtB,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CACjC,QAAQ,EAAE,CAAC,mBAAmB,CAC5B,QAAQ,QAAQ,IAAI,IAAI,EAAE,EAC1B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,IAAI,CACtD,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,KAAK,EAAa,CAAC;AAYtC,MAAM,UAAU,oBAAoB,CAClC,QAAkB,EAClB,IAAY,EACZ,IAA8B;IAE9B,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAC7B,MAAM,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC;gBACE,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,cAAc;aACrB;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,OAAO,QAAQ,EAAE,CAAC,eAAe,CAAC,QAAQ,QAAQ,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,QAAQ,GAAG,KAAK,EAAW,CAAC;AAYlC,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,IAAY,EACZ,IAAsB;IAEtB,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAC3B,QAAQ,EAAE,CAAC,aAAa,CACtB,QAAQ,QAAQ,IAAI,IAAI,EAAE,EAC1B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,IAAI,CACtD,CACF,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,KAAK,EAAmB,CAAC;AAYxC,MAAM,UAAU,gBAAgB,CAC9B,QAAkB,EAClB,IAAY,EACZ,IAAsB;IAEtB,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CACzB,QAAQ,EAAE,CAAC,qBAAqB,CAC9B,QAAQ,QAAQ,IAAI,IAAI,EAAE,EAC1B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,IAAI,CACtD,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"metrics.js","sources":["../../../../../zero-cache/src/observability/metrics.ts"],"sourcesContent":["import type {\n Counter,\n Histogram,\n Meter,\n MetricOptions,\n ObservableGauge,\n UpDownCounter,\n} from '@opentelemetry/api';\nimport {metrics} from '@opentelemetry/api';\n\n// intentional lazy initialization so it is not started before the SDK is started.\n\nexport type Category = 'replication' | 'sync' | 'mutation' | 'server';\n\nlet meter: Meter | undefined;\n\ntype Options = MetricOptions & {description: string};\ntype OptionsWithUnit = MetricOptions & {description: string; unit: string};\n\nfunction getMeter() {\n if (!meter) {\n meter = metrics.getMeter('zero');\n }\n return meter;\n}\n\nfunction cache<TRet>(): (\n name: string,\n creator: (name: string) => TRet,\n) => TRet {\n const instruments = new Map<string, TRet>();\n return (name: string, creator: (name: string) => TRet) => {\n const existing = instruments.get(name);\n if (existing) {\n return existing;\n }\n\n const ret = creator(name);\n instruments.set(name, ret);\n return ret;\n };\n}\n\nconst upDownCounters = cache<UpDownCounter>();\n\nexport function getOrCreateUpDownCounter(\n category: Category,\n name: string,\n description: string,\n): UpDownCounter;\nexport function getOrCreateUpDownCounter(\n category: Category,\n name: string,\n opts: Options,\n): UpDownCounter;\nexport function getOrCreateUpDownCounter(\n category: Category,\n name: string,\n opts: string | Options,\n): UpDownCounter {\n return upDownCounters(name, name =>\n getMeter().createUpDownCounter(\n `zero.${category}.${name}`,\n typeof opts === 'string' ? {description: opts} : opts,\n ),\n );\n}\n\nconst histograms = cache<Histogram>();\n\nexport function getOrCreateHistogram(\n category: Category,\n name: string,\n description: string,\n): Histogram;\nexport function getOrCreateHistogram(\n category: Category,\n name: string,\n options: OptionsWithUnit,\n): Histogram;\nexport function getOrCreateHistogram(\n category: Category,\n name: string,\n opts: string | OptionsWithUnit,\n): Histogram {\n return histograms(name, name => {\n const options: {description: string; unit: string; boundaries?: number[]} =\n typeof opts === 'string'\n ? {\n description: opts,\n unit: 'milliseconds',\n }\n : opts;\n\n return getMeter().createHistogram(`zero.${category}.${name}`, options);\n });\n}\n\nconst counters = cache<Counter>();\n\nexport function getOrCreateCounter(\n category: Category,\n name: string,\n description: string,\n): Counter;\nexport function getOrCreateCounter(\n category: Category,\n name: string,\n opts: Options,\n): Counter;\nexport function getOrCreateCounter(\n category: Category,\n name: string,\n opts: string | Options,\n): Counter {\n return counters(name, name =>\n getMeter().createCounter(\n `zero.${category}.${name}`,\n typeof opts === 'string' ? {description: opts} : opts,\n ),\n );\n}\n\nconst gauges = cache<ObservableGauge>();\n\nexport function getOrCreateGauge(\n category: Category,\n name: string,\n description: string,\n): ObservableGauge;\nexport function getOrCreateGauge(\n category: Category,\n name: string,\n opts: Options,\n): ObservableGauge;\nexport function getOrCreateGauge(\n category: Category,\n name: string,\n opts: string | Options,\n): ObservableGauge {\n return gauges(name, name =>\n getMeter().createObservableGauge(\n `zero.${category}.${name}`,\n typeof opts === 'string' ? {description: opts} : opts,\n ),\n );\n}\n"],"names":["name"],"mappings":";AAcA,IAAI;AAKJ,SAAS,WAAW;AAClB,MAAI,CAAC,OAAO;AACV,YAAQ,QAAQ,SAAS,MAAM;AAAA,EACjC;AACA,SAAO;AACT;AAEA,SAAS,QAGC;AACR,QAAM,kCAAkB,IAAA;AACxB,SAAO,CAAC,MAAc,YAAoC;AACxD,UAAM,WAAW,YAAY,IAAI,IAAI;AACrC,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAEA,UAAM,MAAM,QAAQ,IAAI;AACxB,gBAAY,IAAI,MAAM,GAAG;AACzB,WAAO;AAAA,EACT;AACF;AAEA,MAAM,iBAAiB,MAAA;AAYhB,SAAS,yBACd,UACA,MACA,MACe;AACf,SAAO;AAAA,IAAe;AAAA,IAAM,CAAAA,UAC1B,SAAA,EAAW;AAAA,MACT,QAAQ,QAAQ,IAAIA,KAAI;AAAA,MACG,EAAC,aAAa;IAAQ;AAAA,EACnD;AAEJ;AAEA,MAAM,aAAa,MAAA;AAYZ,SAAS,qBACd,UACA,MACA,MACW;AACX,SAAO,WAAW,MAAM,CAAAA,UAAQ;AAC9B,UAAM,UACJ,OAAO,SAAS,WACZ;AAAA,MACE,aAAa;AAAA,MACb,MAAM;AAAA,IAAA,IAER;AAEN,WAAO,SAAA,EAAW,gBAAgB,QAAQ,QAAQ,IAAIA,KAAI,IAAI,OAAO;AAAA,EACvE,CAAC;AACH;AAEA,MAAM,WAAW,MAAA;AAYV,SAAS,mBACd,UACA,MACA,MACS;AACT,SAAO;AAAA,IAAS;AAAA,IAAM,CAAAA,UACpB,SAAA,EAAW;AAAA,MACT,QAAQ,QAAQ,IAAIA,KAAI;AAAA,MACxB,OAAO,SAAS,WAAW,EAAC,aAAa,SAAQ;AAAA,IAAA;AAAA,EACnD;AAEJ;AAEA,MAAM,SAAS,MAAA;AAYR,SAAS,iBACd,UACA,MACA,MACiB;AACjB,SAAO;AAAA,IAAO;AAAA,IAAM,CAAAA,UAClB,SAAA,EAAW;AAAA,MACT,QAAQ,QAAQ,IAAIA,KAAI;AAAA,MACxB,OAAO,SAAS,WAAW,EAAC,aAAa,SAAQ;AAAA,IAAA;AAAA,EACnD;AAEJ;"}
@@ -1,51 +1,55 @@
1
1
  import { logOptions } from "../../../otel/src/log-options.js";
2
- import { appOptions, shardOptions, zeroOptions } from "../config/zero-config.js";
2
+ import { zeroOptions, shardOptions, appOptions } from "../config/zero-config.js";
3
3
  import { decommissionShard } from "../services/change-source/pg/decommission.js";
4
4
  import { pgClient } from "../types/pg.js";
5
- import { cdcSchema, cvrSchema, getShardID } from "../types/shards.js";
5
+ import { getShardID, cvrSchema, cdcSchema } from "../types/shards.js";
6
6
  import { id } from "../types/sql.js";
7
- export const decommissionOptions = {
8
- app: {
9
- id: appOptions.id,
10
- },
11
- shard: {
12
- num: shardOptions.num,
13
- },
14
- upstream: {
15
- db: zeroOptions.upstream.db,
16
- type: zeroOptions.upstream.type,
17
- },
18
- cvr: {
19
- db: zeroOptions.cvr.db,
20
- },
21
- change: {
22
- db: zeroOptions.change.db,
23
- },
24
- log: { level: logOptions.level, format: logOptions.format },
7
+ const decommissionOptions = {
8
+ app: {
9
+ id: appOptions.id
10
+ },
11
+ shard: {
12
+ num: shardOptions.num
13
+ },
14
+ upstream: {
15
+ db: zeroOptions.upstream.db,
16
+ type: zeroOptions.upstream.type
17
+ },
18
+ cvr: {
19
+ db: zeroOptions.cvr.db
20
+ },
21
+ change: {
22
+ db: zeroOptions.change.db
23
+ },
24
+ log: { level: logOptions.level, format: logOptions.format }
25
25
  };
26
- export async function decommissionZero(lc, cfg) {
27
- const { app, shard } = cfg;
28
- const shardID = getShardID(cfg);
29
- lc.info?.(`Decommissioning app "${app.id}"`);
30
- if (cfg.upstream.type === 'pg') {
31
- const upstream = pgClient(lc, cfg.upstream.db);
32
- await decommissionShard(lc, upstream, app.id, shard.num);
33
- lc.debug?.(`Cleaning up upstream metadata from ${hostPort(upstream)}`);
34
- await upstream.unsafe(`DROP SCHEMA IF EXISTS ${id(app.id)} CASCADE`);
35
- await upstream.end();
36
- }
37
- const cvr = pgClient(lc, cfg.cvr.db ?? cfg.upstream.db);
38
- lc.debug?.(`Cleaning up cvc data from ${hostPort(cvr)}`);
39
- await cvr.unsafe(`DROP SCHEMA IF EXISTS ${id(cvrSchema(shardID))} CASCADE`);
40
- await cvr.end();
41
- const cdc = pgClient(lc, cfg.change.db ?? cfg.upstream.db);
42
- lc.debug?.(`Cleaning up cdc data from ${hostPort(cdc)}`);
43
- await cdc.unsafe(`DROP SCHEMA IF EXISTS ${id(cdcSchema(shardID))} CASCADE`);
44
- await cdc.end();
45
- lc.info?.(`App "${app.id}" decommissioned`);
26
+ async function decommissionZero(lc, cfg) {
27
+ const { app, shard } = cfg;
28
+ const shardID = getShardID(cfg);
29
+ lc.info?.(`Decommissioning app "${app.id}"`);
30
+ if (cfg.upstream.type === "pg") {
31
+ const upstream = pgClient(lc, cfg.upstream.db);
32
+ await decommissionShard(lc, upstream, app.id, shard.num);
33
+ lc.debug?.(`Cleaning up upstream metadata from ${hostPort(upstream)}`);
34
+ await upstream.unsafe(`DROP SCHEMA IF EXISTS ${id(app.id)} CASCADE`);
35
+ await upstream.end();
36
+ }
37
+ const cvr = pgClient(lc, cfg.cvr.db ?? cfg.upstream.db);
38
+ lc.debug?.(`Cleaning up cvc data from ${hostPort(cvr)}`);
39
+ await cvr.unsafe(`DROP SCHEMA IF EXISTS ${id(cvrSchema(shardID))} CASCADE`);
40
+ await cvr.end();
41
+ const cdc = pgClient(lc, cfg.change.db ?? cfg.upstream.db);
42
+ lc.debug?.(`Cleaning up cdc data from ${hostPort(cdc)}`);
43
+ await cdc.unsafe(`DROP SCHEMA IF EXISTS ${id(cdcSchema(shardID))} CASCADE`);
44
+ await cdc.end();
45
+ lc.info?.(`App "${app.id}" decommissioned`);
46
46
  }
47
47
  function hostPort(db) {
48
- const { host, port } = db.options;
49
- return `${host.join(',')}:${port?.at(0) ?? 5432}`;
48
+ const { host, port } = db.options;
49
+ return `${host.join(",")}:${port?.at(0) ?? 5432}`;
50
50
  }
51
- //# sourceMappingURL=decommission.js.map
51
+ export {
52
+ decommissionOptions,
53
+ decommissionZero
54
+ };
55
+ //# sourceMappingURL=decommission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decommission.js","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/decommission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decommission.js","sources":["../../../../../zero-cache/src/scripts/decommission.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {logOptions} from '../../../otel/src/log-options.ts';\nimport type {Config} from '../../../shared/src/options.ts';\nimport {appOptions, shardOptions, zeroOptions} from '../config/zero-config.ts';\nimport {decommissionShard} from '../services/change-source/pg/decommission.ts';\nimport {pgClient, type PostgresDB} from '../types/pg.ts';\nimport {cdcSchema, cvrSchema, getShardID} from '../types/shards.ts';\nimport {id} from '../types/sql.ts';\n\nexport const decommissionOptions = {\n app: {\n id: appOptions.id,\n },\n\n shard: {\n num: shardOptions.num,\n },\n\n upstream: {\n db: zeroOptions.upstream.db,\n type: zeroOptions.upstream.type,\n },\n\n cvr: {\n db: zeroOptions.cvr.db,\n },\n\n change: {\n db: zeroOptions.change.db,\n },\n\n log: {level: logOptions.level, format: logOptions.format},\n};\n\nexport type DecommissionConfig = Config<typeof decommissionOptions>;\n\nexport async function decommissionZero(\n lc: LogContext,\n cfg: DecommissionConfig,\n) {\n const {app, shard} = cfg;\n const shardID = getShardID(cfg);\n lc.info?.(`Decommissioning app \"${app.id}\"`);\n\n if (cfg.upstream.type === 'pg') {\n const upstream = pgClient(lc, cfg.upstream.db);\n await decommissionShard(lc, upstream, app.id, shard.num);\n\n lc.debug?.(`Cleaning up upstream metadata from ${hostPort(upstream)}`);\n await upstream.unsafe(`DROP SCHEMA IF EXISTS ${id(app.id)} CASCADE`);\n await upstream.end();\n }\n\n const cvr = pgClient(lc, cfg.cvr.db ?? cfg.upstream.db);\n lc.debug?.(`Cleaning up cvc data from ${hostPort(cvr)}`);\n await cvr.unsafe(`DROP SCHEMA IF EXISTS ${id(cvrSchema(shardID))} CASCADE`);\n await cvr.end();\n\n const cdc = pgClient(lc, cfg.change.db ?? cfg.upstream.db);\n lc.debug?.(`Cleaning up cdc data from ${hostPort(cdc)}`);\n await cdc.unsafe(`DROP SCHEMA IF EXISTS ${id(cdcSchema(shardID))} CASCADE`);\n await cdc.end();\n\n lc.info?.(`App \"${app.id}\" decommissioned`);\n}\n\nfunction hostPort(db: PostgresDB) {\n const {host, port} = db.options;\n return `${host.join(',')}:${port?.at(0) ?? 5432}`;\n}\n"],"names":[],"mappings":";;;;;;AASO,MAAM,sBAAsB;AAAA,EACjC,KAAK;AAAA,IACH,IAAI,WAAW;AAAA,EAAA;AAAA,EAGjB,OAAO;AAAA,IACL,KAAK,aAAa;AAAA,EAAA;AAAA,EAGpB,UAAU;AAAA,IACR,IAAI,YAAY,SAAS;AAAA,IACzB,MAAM,YAAY,SAAS;AAAA,EAAA;AAAA,EAG7B,KAAK;AAAA,IACH,IAAI,YAAY,IAAI;AAAA,EAAA;AAAA,EAGtB,QAAQ;AAAA,IACN,IAAI,YAAY,OAAO;AAAA,EAAA;AAAA,EAGzB,KAAK,EAAC,OAAO,WAAW,OAAO,QAAQ,WAAW,OAAA;AACpD;AAIA,eAAsB,iBACpB,IACA,KACA;AACA,QAAM,EAAC,KAAK,MAAA,IAAS;AACrB,QAAM,UAAU,WAAW,GAAG;AAC9B,KAAG,OAAO,wBAAwB,IAAI,EAAE,GAAG;AAE3C,MAAI,IAAI,SAAS,SAAS,MAAM;AAC9B,UAAM,WAAW,SAAS,IAAI,IAAI,SAAS,EAAE;AAC7C,UAAM,kBAAkB,IAAI,UAAU,IAAI,IAAI,MAAM,GAAG;AAEvD,OAAG,QAAQ,sCAAsC,SAAS,QAAQ,CAAC,EAAE;AACrE,UAAM,SAAS,OAAO,yBAAyB,GAAG,IAAI,EAAE,CAAC,UAAU;AACnE,UAAM,SAAS,IAAA;AAAA,EACjB;AAEA,QAAM,MAAM,SAAS,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS,EAAE;AACtD,KAAG,QAAQ,6BAA6B,SAAS,GAAG,CAAC,EAAE;AACvD,QAAM,IAAI,OAAO,yBAAyB,GAAG,UAAU,OAAO,CAAC,CAAC,UAAU;AAC1E,QAAM,IAAI,IAAA;AAEV,QAAM,MAAM,SAAS,IAAI,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE;AACzD,KAAG,QAAQ,6BAA6B,SAAS,GAAG,CAAC,EAAE;AACvD,QAAM,IAAI,OAAO,yBAAyB,GAAG,UAAU,OAAO,CAAC,CAAC,UAAU;AAC1E,QAAM,IAAI,IAAA;AAEV,KAAG,OAAO,QAAQ,IAAI,EAAE,kBAAkB;AAC5C;AAEA,SAAS,SAAS,IAAgB;AAChC,QAAM,EAAC,MAAM,KAAA,IAAQ,GAAG;AACxB,SAAO,GAAG,KAAK,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,IAAI;AACjD;"}